/* Trang "Tài khoản của tôi" — màn hình Đăng nhập / Tạo tài khoản.
 *
 * Template gốc của WooCommerce đổ 2 form nằm cạnh nhau thành 2 cột (.u-columns > .u-column1 +
 * .u-column2, di sản từ theme Storefront cũ). Bố cục đó đặt 2 lời kêu gọi hành động ngang hàng
 * nhau nên khách phải đọc cả 2 khối mới biết mình cần khối nào, và trên mobile form Đăng ký bị
 * đẩy khuất khỏi màn hình đầu. Đã thay bằng MỘT card có 2 tab — xem
 * woocommerce/myaccount/form-login.php.
 *
 * Token dùng lại từ design system sẵn có: accent-2 xanh cho nút chính (giống "Thêm vào giỏ
 * hàng"), accent-1 đỏ cho link và gạch chân tab đang mở (giống .bjj-red-link), bo góc 4px +
 * shadow nhẹ giống card sản phẩm (shop-archive.css), input cao 48px giống ô tìm kiếm ở header.
 *
 * bjjfightgear.com KHÔNG dùng được làm tham chiếu — họ đã chuyển sang Shopify Customer Accounts
 * (redirect hẳn sang shopify.com, không còn giao diện riêng theo theme để đo). Bố cục 1 card /
 * 2 tab dưới đây theo mô hình chung của các shop thời trang VN (Coolmate, Routine). */

/* PHẠM VI ÁP DỤNG — vì sao mỗi luật ở mục 1-9 đều mở đầu bằng
   :is(.woocommerce-account, .bjj-login-dialog):

   Cùng một card đăng nhập được dùng ở HAI chỗ: trang /tai-khoan (body có class
   .woocommerce-account) và popup mở từ icon tài khoản trên header (<dialog class=
   "bjj-login-dialog">, xuất hiện ở mọi trang nên body KHÔNG có .woocommerce-account).

   Dùng :is() chứ không tách thành 2 nhóm selector riêng vì :is() lấy specificity của nhánh nặng
   nhất — cả hai nhánh đều là 1 class nên độ nặng y hệt bản cũ. Điều này quan trọng: gần như mọi
   luật ở dưới đều đang phải thắng sát nút một luật của woocommerce.css / woocommerce-layout.css,
   hạ specificity dù chỉ một bậc là hỏng hàng loạt. */

/* ==========================================================================
   1. Khung ngoài
   ========================================================================== */

:is(.woocommerce-account, .bjj-login-dialog) .bjj-auth {
	max-width: 460px;
	margin: 40px auto 64px;
	padding: 0 25px;
}

/* Notice của các màn tài khoản KHÁC (quên mật khẩu, đặt lại mật khẩu) vẫn in thành dải rời phía
   trên form theo mặc định của WooCommerce — ép cùng bề rộng để nó thẳng hàng với card.
   Riêng màn Đăng nhập/Đăng ký thì notice đã được form-login.php dời hẳn vào trong card
   (.bjj-auth__notices ngay dưới), nên rule này không còn chạm tới nó nữa.
   :not(.logged-in) là bắt buộc — khi đã đăng nhập, cùng khối notice đó phục vụ trang tài khoản
   rộng 1120px, bó nó về 460px sẽ thành một dải hẹp lạc lõng giữa trang. */
.woocommerce-account:not(.logged-in) .woocommerce-notices-wrapper:not(:empty) {
	max-width: 460px;
	margin: 32px auto 0;
	padding: 0 25px;
}

/* VÌ SAO NOTICE NẰM TRONG PANEL: mặc định WooCommerce in nó thành một dải rời bên trên card, cách
   form một khoảng trắng — ở popup thì dải đó còn rơi hẳn ra ngoài popup. Thông báo lỗi phải nằm
   sát thứ gây ra lỗi mới đọc được như một khối, và phải biến mất khi khách đổi sang tab kia (lỗi
   đăng nhập không có việc gì treo trên form đăng ký) — xem chú thích $bjj_notices_panel trong
   form-login.php. Nằm trong panel nên KHÔNG cần padding ngang: panel đã có sẵn 32px. */
:is(.woocommerce-account, .bjj-login-dialog) .bjj-auth__notices {
	margin-bottom: 20px;
}

/* Trung hoà luật "dải rời" ở ngay trên: trên trang /tai-khoan, cái wrapper giờ nằm TRONG card
   vẫn khớp selector đó (vẫn là .woocommerce-notices-wrapper trên body .woocommerce-account) nên
   ăn thêm max-width 460px + padding 25px, đẩy alert thụt vào so với ô nhập ngay dưới nó.
   Phải kèm .bjj-auth cho đủ (0,4,0) — bằng đúng luật kia và đứng sau nó, chứ (0,3,0) là thua. */
:is(.woocommerce-account, .bjj-login-dialog) .bjj-auth .bjj-auth__notices .woocommerce-notices-wrapper {
	max-width: none;
	margin: 0;
	padding: 0;
}

/* woocommerce_output_all_notices() luôn in ra <div class="woocommerce-notices-wrapper"> kể cả khi
   không có notice nào, và div đó chứa vài ký tự xuống dòng nên KHÔNG khớp :empty. Bắt theo "có
   banner con hay không" mới đúng, nếu không trang lúc bình thường vẫn dính 20px padding thừa. */
:is(.woocommerce-account, .bjj-login-dialog) .bjj-auth__notices:not(:has(.wc-block-components-notice-banner)) {
	display: none;
}

/* Dáng thẻ cho từng notice. WooCommerce (bản có block-theme support) đã tự bọc notice cổ điển
   (wc_add_notice) thành .wc-block-components-notice-banner.is-error/is-success/is-info — KHÔNG
   còn ra <ul class="woocommerce-error"> như bản classic nữa. Viền mặc định là khung mỏng bao
   quanh, không khớp dáng "viền trái nhấn màu" dùng xuyên suốt màn hình này (input focus, tab
   đang mở — xem mục 2 và 4). Màu NGỮ NGHĨA (đỏ/xanh lá/xanh dương) cố ý viết cứng, tách khỏi
   bảng màu thương hiệu — giống cách --bjj-status-*-bg/fg ở mục 13 đã làm. auth-notices.js dựa
   vào chính các selector .is-error/.is-success/.is-info này để tự ẩn sau vài giây. */
:is(.woocommerce-account, .bjj-login-dialog) .bjj-auth__notices .wc-block-components-notice-banner {
	gap: 10px;
	margin: 0 0 12px;
	padding: 12px 14px;
	border: none;
	border-radius: 4px;
	font-size: 14px;
	line-height: 1.5;
	transition: opacity 0.25s ease, transform 0.25s ease, max-height 0.25s ease 0.25s, margin 0.25s ease 0.25s, padding 0.25s ease 0.25s;
}

/* Icon mặc định 24px to ngang hai dòng chữ, kéo cả khối lệch xuống. 18px vừa bằng chiều cao một
   dòng nên nó đọc như dấu đầu dòng của câu đầu tiên. */
:is(.woocommerce-account, .bjj-login-dialog) .bjj-auth__notices .wc-block-components-notice-banner svg {
	flex: 0 0 auto;
	width: 18px;
	height: 18px;
	margin: 1px 0 0;
}

:is(.woocommerce-account, .bjj-login-dialog) .bjj-auth__notices .wc-block-components-notice-banner__content {
	font-size: 14px;
	line-height: 1.5;
}

/* WordPress nhét sẵn <strong>Lỗi:</strong> vào đầu vài thông báo (vd "Trường mật khẩu đang
   trống"). Chữ đã đỏ, đã có icon cảnh báo — thêm nhãn "Lỗi:" in đậm nữa là thừa và nghe như
   máy báo lỗi hệ thống. Phần lớn đã được lọc bỏ ở mu-plugin bjj-email-otp; luật này chỉ hạ
   giọng những chuỗi lọt lưới (plugin khác thêm vào chẳng hạn). */
:is(.woocommerce-account, .bjj-login-dialog) .bjj-auth__notices .wc-block-components-notice-banner__content strong {
	font-weight: 600;
}

:is(.woocommerce-account, .bjj-login-dialog) .bjj-auth__notices .wc-block-components-notice-banner.is-error {
	background: color-mix(in srgb, #c0392b 8%, white);
	border-left: 3px solid #c0392b;
	color: #8f2c22;
	fill: #c0392b;
}

:is(.woocommerce-account, .bjj-login-dialog) .bjj-auth__notices .wc-block-components-notice-banner.is-success {
	background: color-mix(in srgb, #2f8f4e 8%, white);
	border-left: 3px solid #2f8f4e;
	color: #1f6b39;
	fill: #2f8f4e;
}

:is(.woocommerce-account, .bjj-login-dialog) .bjj-auth__notices .wc-block-components-notice-banner.is-info {
	background: color-mix(in srgb, var(--wp--preset--color--accent-2) 6%, white);
	border-left: 3px solid var(--wp--preset--color--accent-2);
	color: var(--wp--preset--color--accent-2);
	fill: var(--wp--preset--color--accent-2);
}

/* Trạng thái đang tự ẩn (gắn bởi auth-notices.js sau vài giây): mờ dần rồi thu gọn khoảng
   trống nó chiếm, không để lại lỗ hổng trong layout. Hai giai đoạn nối tiếp qua transition-delay
   ở rule trên — mờ trước, thu gọn sau — để chữ không bị "cắt cụt" giữa chừng lúc đang mờ. */
:is(.woocommerce-account, .bjj-login-dialog) .bjj-auth__notices .bjj-notice--dismissing {
	opacity: 0;
	transform: translateY(-4px);
	max-height: 0;
	margin: 0;
	padding-top: 0;
	padding-bottom: 0;
	overflow: hidden;
}

/* Radio điều khiển tab: ẩn khỏi mắt nhưng VẪN focus được bằng bàn phím (không dùng
   display:none / visibility:hidden vì cả hai đều loại element khỏi thứ tự tab). */
:is(.woocommerce-account, .bjj-login-dialog) .bjj-auth__radio {
	position: absolute;
	width: 1px;
	height: 1px;
	margin: -1px;
	padding: 0;
	overflow: hidden;
	clip: rect(0 0 0 0);
	clip-path: inset(50%);
	white-space: nowrap;
	border: 0;
}

:is(.woocommerce-account, .bjj-login-dialog) .bjj-auth__card {
	background: var(--wp--preset--color--base);
	border: 1px solid var(--wp--preset--color--accent-6);
	border-radius: 4px;
	box-shadow: 0 1px 4px rgba(128, 128, 128, 0.11);
	overflow: hidden;
}

/* ==========================================================================
   2. Thanh tab
   ========================================================================== */

:is(.woocommerce-account, .bjj-login-dialog) .bjj-auth__tabs {
	display: grid;
	grid-template-columns: 1fr 1fr;
	border-bottom: 1px solid var(--wp--preset--color--accent-6);
}

:is(.woocommerce-account, .bjj-login-dialog) .bjj-auth__tab {
	display: flex;
	align-items: center;
	justify-content: center;
	padding: 18px 12px;
	font-family: var(--wp--preset--font-family--montserrat);
	font-size: 14px;
	font-weight: 800;
	text-transform: uppercase;
	letter-spacing: 0.4px;
	color: var(--wp--preset--color--accent-3);
	background: var(--wp--preset--color--accent-5);
	cursor: pointer;
	user-select: none;
	/* woocommerce.css/theme đặt margin-bottom ~0.7em cho MỌI <label>. Ở đây label đóng vai nút
	   tab, margin đó đội thanh tab cao thêm ~11px và đẩy gạch chân đỏ tách rời khỏi đường kẻ
	   dưới thanh tab. */
	margin: 0;
	/* Gạch chân đỏ của tab đang mở vẽ bằng box-shadow inset để không làm đổi chiều cao tab khi
	   chuyển qua lại (border-bottom sẽ cộng thêm 3px vào layout). */
	box-shadow: inset 0 -3px 0 transparent;
	transition: color 200ms ease, background-color 200ms ease, box-shadow 200ms ease;
}

:is(.woocommerce-account, .bjj-login-dialog) .bjj-auth__tab:hover {
	color: var(--wp--preset--color--accent-4);
}

/* Tab đang mở: nền trắng liền mạch với thân card + gạch chân đỏ */
:is(.woocommerce-account, .bjj-login-dialog) .bjj-auth__radio--login:checked ~ .bjj-auth__card .bjj-auth__tab--login,
:is(.woocommerce-account, .bjj-login-dialog) .bjj-auth__radio--register:checked ~ .bjj-auth__card .bjj-auth__tab--register {
	color: var(--wp--preset--color--contrast);
	background: var(--wp--preset--color--base);
	box-shadow: inset 0 -3px 0 var(--wp--preset--color--accent-1);
}

/* Focus bằng bàn phím: radio bị ẩn nên phải tự vẽ vòng focus lên label tương ứng, nếu không
   người dùng bàn phím hoàn toàn không thấy mình đang đứng ở đâu. */
:is(.woocommerce-account, .bjj-login-dialog) .bjj-auth__radio--login:focus-visible ~ .bjj-auth__card .bjj-auth__tab--login,
:is(.woocommerce-account, .bjj-login-dialog) .bjj-auth__radio--register:focus-visible ~ .bjj-auth__card .bjj-auth__tab--register {
	outline: 2px solid var(--wp--preset--color--accent-1);
	outline-offset: -2px;
}

/* ==========================================================================
   3. Đổi panel — thuần CSS, không JS
   ========================================================================== */

:is(.woocommerce-account, .bjj-login-dialog) .bjj-auth__panel {
	display: none;
	padding: 32px;
}

:is(.woocommerce-account, .bjj-login-dialog) .bjj-auth__radio--login:checked ~ .bjj-auth__card .bjj-auth__panel--login,
:is(.woocommerce-account, .bjj-login-dialog) .bjj-auth__radio--register:checked ~ .bjj-auth__card .bjj-auth__panel--register {
	display: block;
}

/* Khi admin tắt "cho phép đăng ký ở trang tài khoản": không có radio nào trong DOM, chỉ còn
   panel Đăng nhập — phải hiện nó ra bằng luật riêng này. */
:is(.woocommerce-account, .bjj-login-dialog) .bjj-auth--login-only .bjj-auth__panel--login {
	display: block;
}

:is(.woocommerce-account, .bjj-login-dialog) .bjj-auth__heading {
	font-family: var(--wp--preset--font-family--montserrat);
	font-size: 20px;
	font-weight: 800;
	text-transform: uppercase;
	letter-spacing: 0.2px;
	color: var(--wp--preset--color--contrast);
	margin: 0 0 8px;
}

:is(.woocommerce-account, .bjj-login-dialog) .bjj-auth__lede {
	font-family: var(--wp--preset--font-family--open-sans);
	font-size: 14px;
	line-height: 1.6;
	color: var(--wp--preset--color--accent-4);
	margin: 0 0 24px;
}

/* ==========================================================================
   4. Trường nhập liệu
   ========================================================================== */

/* padding:0 xoá padding:3px mà woocommerce-layout.css áp cho mọi .form-row. Phải xoá ở TẤT CẢ
   các hàng chứ không riêng hàng nào — bỏ sót một hàng là hàng đó lệch 3px so với các hàng khác,
   đủ để nhìn ra khi các ô xếp chồng lên nhau. */
:is(.woocommerce-account, .bjj-login-dialog) .bjj-auth form .woocommerce-form-row {
	padding: 0;
	margin: 0 0 20px;
}

:is(.woocommerce-account, .bjj-login-dialog) .bjj-auth .woocommerce-form-row > label {
	display: block;
	font-family: var(--wp--preset--font-family--open-sans);
	font-size: 14px;
	font-weight: 600;
	color: var(--wp--preset--color--contrast);
	margin-bottom: 6px;
}

:is(.woocommerce-account, .bjj-login-dialog) .bjj-auth form .woocommerce-form-row .required {
	color: var(--wp--preset--color--accent-1);
	text-decoration: none;
}

:is(.woocommerce-account, .bjj-login-dialog) .bjj-auth__hint {
	display: block;
	font-family: var(--wp--preset--font-family--open-sans);
	font-size: 12.5px;
	line-height: 1.5;
	color: var(--wp--preset--color--accent-3);
	margin-top: 6px;
}

:is(.woocommerce-account, .bjj-login-dialog) .bjj-auth__hint--block {
	margin: 0 0 20px;
}

/* woocommerce.css bọc cả 2 form trong một cái khung riêng:
       .woocommerce form.login, .woocommerce form.register { border: 1px solid #d3ced2;
                                                             padding: 20px; margin: 2em 0;
                                                             border-radius: 5px }
   Khung đó vẽ thêm một hộp viền LỒNG BÊN TRONG card — thừa hẳn một lớp viền, và bo góc 5px
   lệch với 4px của cả site. Gỡ bỏ để form chảy liền trong panel. */
:is(.woocommerce-account, .bjj-login-dialog) .bjj-auth form.login,
:is(.woocommerce-account, .bjj-login-dialog) .bjj-auth form.register {
	border: 0;
	border-radius: 0;
	padding: 0;
	margin: 0;
}

/* Input cao 48px, bo góc 4px, viền xám nhạt — giống ô tìm kiếm ở header.
   Chọn selector đủ nặng (0,4,1) để thắng luật .woocommerce form .form-row input.input-text
   (0,3,2) của woocommerce.css — nếu không, ô text sẽ giữ viền đen mặc định của WooCommerce
   trong khi ô mật khẩu lại theo style của mình, hai ô cạnh nhau trông lệch hẳn nhau. */
:is(.woocommerce-account, .bjj-login-dialog) .bjj-auth .woocommerce-form-row input.input-text,
:is(.woocommerce-account, .bjj-login-dialog) .bjj-auth .woocommerce-form-row input[type="password"] {
	width: 100%;
	height: 48px;
	padding: 0 15px;
	border: 1px solid rgba(128, 128, 128, 0.3);
	border-radius: 4px;
	font-family: var(--wp--preset--font-family--open-sans);
	font-size: 15px;
	color: var(--wp--preset--color--contrast);
	background: var(--wp--preset--color--base);
	box-sizing: border-box;
	transition: border-color 200ms ease, box-shadow 200ms ease;
}

:is(.woocommerce-account, .bjj-login-dialog) .bjj-auth .woocommerce-form-row input.input-text:focus,
:is(.woocommerce-account, .bjj-login-dialog) .bjj-auth .woocommerce-form-row input[type="password"]:focus {
	outline: none;
	border-color: var(--wp--preset--color--accent-2);
	box-shadow: 0 0 0 3px rgba(29, 177, 33, 0.12);
}

/* Nút hiện/ẩn mật khẩu do JS của WooCommerce tự chèn (bọc input trong span.password-input rồi
   thêm button.show-password-input). Chừa chỗ bên phải input để icon không đè lên chữ. */
:is(.woocommerce-account, .bjj-login-dialog) .bjj-auth .password-input {
	display: block;
	position: relative;
}

:is(.woocommerce-account, .bjj-login-dialog) .bjj-auth .password-input input[type="password"],
:is(.woocommerce-account, .bjj-login-dialog) .bjj-auth .password-input input[type="text"] {
	padding-right: 46px;
}

:is(.woocommerce-account, .bjj-login-dialog) .bjj-auth .show-password-input {
	position: absolute;
	top: 0;
	right: 0;
	width: 44px;
	height: 48px;
	padding: 0;
	border: 0;
	background: transparent;
	cursor: pointer;
	color: var(--wp--preset--color--accent-3);
	/* woocommerce.css căn nút này bằng top:50% + transform:translateY(-50%). Mình đã đặt lại
	   top:0 với chiều cao đúng bằng input (48px), nên phải gỡ luôn transform — nếu không nó
	   vẫn kéo icon lên 24px và con mắt nằm chỏng chơ trên mép ô nhập. */
	transform: none;
}

/* WooCommerce đã tự vẽ icon con mắt bằng ::before của chính nút này. Chỉ THAY ảnh nền của
   ::before đó, tuyệt đối không thêm ::after icon thứ hai — làm vậy sẽ ra 2 con mắt chồng lên
   nhau (đúng lỗi đã gặp ở bản đầu). Icon mặc định của WooCommerce màu đen đặc, ở đây đổi sang
   xám accent-3 cho lùi về sau nội dung, và sang đỏ accent-1 khi mật khẩu đang hiện. */
:is(.woocommerce-account, .bjj-login-dialog) .bjj-auth .show-password-input::before {
	position: absolute;
	inset: 0;
	/* BẮT BUỘC đi kèm inset:0. woocommerce.css đặt width/height cứng 22px cho ::before này. Khi
	   một phần tử absolute có cả top:0, bottom:0 LẪN height tường minh thì CSS coi là quá ràng
	   buộc và bỏ qua bottom — nên inset:0 một mình không kéo giãn được, ::before nằm nguyên
	   22px neo ở đỉnh nút cao 48px và icon lệch hẳn lên trên. */
	width: 100%;
	height: 100%;
	background-repeat: no-repeat;
	background-position: center;
	background-size: 20px 20px;
	background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23949494' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M1 12s4-8 11-8 11 8 11 8-4 8-11 8-11-8-11-8z'%3E%3C/path%3E%3Ccircle cx='12' cy='12' r='3'%3E%3C/circle%3E%3C/svg%3E");
}

:is(.woocommerce-account, .bjj-login-dialog) .bjj-auth .show-password-input.display-password::before {
	background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23ce2219' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M17.94 17.94A10.07 10.07 0 0 1 12 20c-7 0-11-8-11-8a18.45 18.45 0 0 1 5.06-5.94M9.9 4.24A9.12 9.12 0 0 1 12 4c7 0 11 8 11 8a18.5 18.5 0 0 1-2.16 3.19m-6.72-1.07a3 3 0 1 1-4.24-4.24'%3E%3C/path%3E%3Cline x1='1' y1='1' x2='23' y2='23'%3E%3C/line%3E%3C/svg%3E");
}

:is(.woocommerce-account, .bjj-login-dialog) .bjj-auth .show-password-input:focus-visible {
	outline: 2px solid var(--wp--preset--color--accent-2);
	outline-offset: -2px;
	border-radius: 4px;
}

/* ==========================================================================
   5. Hàng "Ghi nhớ đăng nhập" + "Quên mật khẩu?"
   ========================================================================== */

/* Hai thứ này xếp cùng một hàng, hai đầu đối nhau — quy ước quen thuộc ở mọi form đăng nhập,
   và giữ nút submit đứng riêng một hàng full-width bên dưới cho dễ bấm trên mobile. */
:is(.woocommerce-account, .bjj-login-dialog) .bjj-auth form .bjj-auth__form-meta {
	display: flex;
	align-items: center;
	justify-content: space-between;
	flex-wrap: wrap;
	gap: 12px;
	/* padding:0 để xoá padding:3px mà woocommerce.css áp cho .form-row — 3px đó làm hàng này
	   thụt vào so với mép ô nhập ngay phía trên. */
	padding: 0;
	margin: 4px 0 20px;
}

/* BẮT BUỘC phải có khi biến một .form-row thành flex container.
   woocommerce-layout.css gắn clearfix lên .form-row:
       .woocommerce form .form-row::before,
       .woocommerce form .form-row::after { content: " "; display: table }
   Selector đó nặng (0,2,2) nên luật đè phải có ít nhất 3 class + 1 element mới thắng — đó là
   lý do mọi luật nhắm .form-row bên dưới đều phải kèm tiền tố ".bjj-auth form".
   Trong bố cục flex, ::before và ::after KHÔNG còn là clearfix nữa mà trở thành hai flex item
   vô hình nằm đầu và cuối hàng. Hậu quả đo được: với space-between, khoảng trống bị chia cho
   cả 2 item ma này nên checkbox và link "Quên mật khẩu?" bị thụt vào đều 44px mỗi bên thay vì
   dạt về hai mép. Tắt hẳn chúng đi. */
:is(.woocommerce-account, .bjj-login-dialog) .bjj-auth form .bjj-auth__form-meta::before,
:is(.woocommerce-account, .bjj-login-dialog) .bjj-auth form .bjj-auth__form-meta::after {
	display: none;
}

:is(.woocommerce-account, .bjj-login-dialog) .bjj-auth .woocommerce-form__label-for-checkbox {
	display: flex;
	align-items: center;
	gap: 8px;
	font-family: var(--wp--preset--font-family--open-sans);
	font-size: 14px;
	font-weight: 400;
	color: var(--wp--preset--color--accent-4);
	/* Ghi đè margin-bottom ~0.7em mặc định của label — ở hàng ngang nó đẩy checkbox lệch lên
	   so với link "Quên mật khẩu?" bên cạnh. */
	margin: 0;
	cursor: pointer;
}

:is(.woocommerce-account, .bjj-login-dialog) .woocommerce-form__input-checkbox {
	width: 16px;
	height: 16px;
	accent-color: var(--wp--preset--color--accent-2);
}

:is(.woocommerce-account, .bjj-login-dialog) .bjj-auth__lost-password {
	font-family: var(--wp--preset--font-family--open-sans);
	font-size: 14px;
	color: var(--wp--preset--color--accent-1);
	text-decoration: none;
}

:is(.woocommerce-account, .bjj-login-dialog) .bjj-auth__lost-password:hover {
	text-decoration: underline;
}

/* ==========================================================================
   6. Nút chính
   ========================================================================== */

/* Xanh accent-2, full width, cùng style nút "Thêm vào giỏ hàng" (uppercase/bold/letter-spacing,
   radius 3px). Global button style trong theme.json đã set background và màu chữ — ở đây chỉ bổ
   sung kích thước/khoảng cách cho khớp bối cảnh form. */
:is(.woocommerce-account, .bjj-login-dialog) .bjj-auth form .bjj-auth__submit-row {
	margin: 0;
}

:is(.woocommerce-account, .bjj-login-dialog) .woocommerce-form-login__submit,
:is(.woocommerce-account, .bjj-login-dialog) .woocommerce-form-register__submit,
:is(.woocommerce-account, .bjj-login-dialog) .bjj-otp__submit {
	width: 100%;
	border-radius: 3px !important;
	font-size: 15px;
	padding: 14px !important;
	transition: background-color 200ms ease;
}

:is(.woocommerce-account, .bjj-login-dialog) .woocommerce-form-login__submit:hover,
:is(.woocommerce-account, .bjj-login-dialog) .woocommerce-form-register__submit:hover,
:is(.woocommerce-account, .bjj-login-dialog) .bjj-otp__submit:hover {
	background: color-mix(in srgb, var(--wp--preset--color--accent-2) 85%, black) !important;
}

/* ==========================================================================
   7. Link đổi tab dưới form
   ========================================================================== */

/* Nhắc lại lối sang tab kia ngay dưới nút submit, cho người đã cuộn xuống hết form mà không
   ngước lên thanh tab. <label> chứ không phải <a> — bấm vào là tick radio điều khiển tab, nên
   phải tự vẽ lại toàn bộ dáng vẻ của một link. */
:is(.woocommerce-account, .bjj-login-dialog) .bjj-auth__switch {
	margin: 24px 0 0;
	padding-top: 20px;
	border-top: 1px solid var(--wp--preset--color--accent-6);
	text-align: center;
	font-family: var(--wp--preset--font-family--open-sans);
	font-size: 14px;
	color: var(--wp--preset--color--accent-4);
}

:is(.woocommerce-account, .bjj-login-dialog) .bjj-auth .bjj-auth__switch label {
	display: inline;
	margin: 0 0 0 4px;
	/* nowrap: ở màn hình hẹp, cụm "Tạo tài khoản mới" bị ngắt giữa chừng thành "Tạo tài / khoản
	   mới". Giữ cả cụm liền khối — không đủ chỗ thì cả cụm xuống dòng, đọc vẫn ra nghĩa. */
	white-space: nowrap;
	font-size: 14px;
	font-weight: 600;
	color: var(--wp--preset--color--accent-1);
	cursor: pointer;
}

:is(.woocommerce-account, .bjj-login-dialog) .bjj-auth .bjj-auth__switch label:hover {
	text-decoration: underline;
}

/* ==========================================================================
   8. Ghi chú quyền riêng tư & thanh đo độ mạnh mật khẩu
   ========================================================================== */

:is(.woocommerce-account, .bjj-login-dialog) .woocommerce-privacy-policy-text {
	margin: 4px 0 20px;
}

:is(.woocommerce-account, .bjj-login-dialog) .woocommerce-privacy-policy-text p {
	font-family: var(--wp--preset--font-family--open-sans);
	font-size: 12.5px;
	line-height: 1.6;
	color: var(--wp--preset--color--accent-3);
	margin: 0;
}

:is(.woocommerce-account, .bjj-login-dialog) .woocommerce-privacy-policy-link {
	color: var(--wp--preset--color--accent-3);
	text-decoration: underline;
}

/* JS của WooCommerce tự chèn khi gõ mật khẩu. Chỉ chỉnh bo góc/khoảng cách/font cho khớp, giữ
   nguyên màu đỏ/vàng/xanh mặc định (quy ước UX phổ biến, đổi màu là đổi ý nghĩa). */
:is(.woocommerce-account, .bjj-login-dialog) .woocommerce-password-strength {
	margin: -12px 0 20px;
	padding: 8px 12px !important;
	border-radius: 4px;
	font-family: var(--wp--preset--font-family--open-sans);
	font-size: 13px;
	text-align: center;
}

:is(.woocommerce-account, .bjj-login-dialog) .woocommerce-password-hint {
	display: block;
	margin: -12px 0 20px;
	font-family: var(--wp--preset--font-family--open-sans);
	font-size: 12.5px;
	line-height: 1.5;
	color: var(--wp--preset--color--accent-3);
}

/* ==========================================================================
   9. Mobile
   ========================================================================== */

@media (max-width: 782px) {
	:is(.woocommerce-account, .bjj-login-dialog) .bjj-auth {
		margin: 24px auto 48px;
	}

	:is(.woocommerce-account, .bjj-login-dialog) .bjj-auth__panel {
		padding: 26px 22px;
	}

	:is(.woocommerce-account, .bjj-login-dialog) .bjj-auth__tab {
		padding: 16px 8px;
		font-size: 13px;
	}
}

@media (prefers-reduced-motion: reduce) {
	.bjj-login-dialog__close,
	:is(.woocommerce-account, .bjj-login-dialog) .bjj-auth__tab,
	:is(.woocommerce-account, .bjj-login-dialog) .woocommerce-Input.input-text,
	:is(.woocommerce-account, .bjj-login-dialog) .woocommerce-form-login__submit,
	:is(.woocommerce-account, .bjj-login-dialog) .woocommerce-form-register__submit,
	:is(.woocommerce-account, .bjj-login-dialog) .bjj-otp__submit,
	:is(.woocommerce-account, .bjj-login-dialog) .bjj-auth__notices .wc-block-components-notice-banner {
		transition: none;
	}
}

/* ==========================================================================
   10. KHU VỰC ĐÃ ĐĂNG NHẬP — bố cục sidebar + nội dung
   ========================================================================== */

/* woocommerce-layout.css dựng trang này bằng float:
       .woocommerce-account .woocommerce-MyAccount-navigation { float: left;  width: 30% }
       .woocommerce-account .woocommerce-MyAccount-content    { float: right; width: 68% }
   Float không cho hai cột cao bằng nhau và không có cơ chế gap, nên phải chuyển hẳn sang grid.
   Cả hai selector gốc đều là (0,2,0) và my-account.css tải SAU woocommerce-layout.css, nhưng
   vẫn viết đủ nặng ở đây để không phụ thuộc thứ tự tải — thứ tự đó do WordPress quyết định và
   có thể đổi khi thêm plugin cache/gộp CSS.

   PHẢI dùng :has(> .woocommerce-MyAccount-navigation) chứ KHÔNG được nhắm ".woocommerce" trần:
   class "woocommerce" không hề độc nhất trên trang. Plugin Ajax Search for WooCommerce gắn nó
   lên chính ô tìm kiếm ở header (div.dgwt-wcas-search-wrapp.woocommerce), nên selector trần sẽ
   biến luôn ô tìm kiếm thành grid rộng 1120px và làm vỡ header. Điều kiện :has chỉ khớp đúng
   khối bọc nav + nội dung của trang tài khoản. */
.woocommerce-account .woocommerce:has(> .woocommerce-MyAccount-navigation) {
	display: grid;
	grid-template-columns: 264px minmax(0, 1fr);
	gap: 32px;
	align-items: start;
	max-width: 1120px;
	margin: 40px auto 72px;
	padding: 0 25px;
}

/* Cùng cái bẫy đã gặp ở hàng "Ghi nhớ đăng nhập", lần này ở cấp container: woocommerce.css
   gắn clearfix content:" ";display:table lên ::before VÀ ::after của chính .woocommerce. Khi
   khối này thành grid, hai pseudo đó biến thành 2 Ô GRID VÔ HÌNH chiếm chỗ trước — sidebar bị
   đẩy sang cột 2 và phần nội dung rớt hẳn xuống hàng dưới. Đo thực tế trước khi sửa: nav ở
   left 899 (cột phải), content ở top 826 (hàng 2). Tắt hai pseudo là hết.
   Quy tắc rút ra: hễ biến một phần tử của WooCommerce thành flex/grid thì luôn phải tắt kèm
   ::before/::after của nó. */
.woocommerce-account .woocommerce:has(> .woocommerce-MyAccount-navigation)::before,
.woocommerce-account .woocommerce:has(> .woocommerce-MyAccount-navigation)::after {
	display: none;
}

/* main của theme là is-layout-constrained nên bó mọi con về contentSize (645px) — vừa cho một
   cột chữ đọc, quá hẹp cho bố cục 2 cột sidebar + bảng đơn hàng. page.css đã chừa
   :not(.woocommerce-account) cho phần typography của nó, nhưng giới hạn 645px này đến từ layout
   block của WordPress chứ không phải page.css, nên phải gỡ riêng ở đây. Luật gốc của WordPress
   dùng :where() (specificity 0) nên (0,2,1) thắng thoải mái.

   .logged-in là BẮT BUỘC: màn hình đăng nhập (chưa đăng nhập) chỉ có một card rộng 460px căn
   giữa bằng margin:auto, và nó căn giữa TRONG khung 645px đó. Gỡ giới hạn cho cả trang chưa
   đăng nhập thì card tụt hẳn về mép trái. Chỉ khu vực đã đăng nhập mới cần rộng. */
body.woocommerce-account.logged-in .bjj-page-content {
	max-width: none;
}

/* Notice trải ngang cả 2 cột — nếu để nó rơi vào ô grid đầu tiên thì sidebar bị đẩy xuống
   dưới thông báo. */
.woocommerce-account .woocommerce:has(> .woocommerce-MyAccount-navigation) > .woocommerce-notices-wrapper {
	grid-column: 1 / -1;
}

.woocommerce-account .woocommerce:has(> .woocommerce-MyAccount-navigation) > .woocommerce-notices-wrapper:empty {
	display: none;
}

.woocommerce-account .woocommerce .woocommerce-MyAccount-navigation,
.woocommerce-account .woocommerce .woocommerce-MyAccount-content {
	float: none;
	width: auto;
}

/* ==========================================================================
   11. Sidebar tài khoản
   ========================================================================== */

.woocommerce-account .bjj-account-nav {
	background: var(--wp--preset--color--base);
	border: 1px solid var(--wp--preset--color--accent-6);
	border-radius: 4px;
	box-shadow: 0 1px 4px rgba(128, 128, 128, 0.11);
	overflow: hidden;
	position: sticky;
	top: 24px;
}

.woocommerce-account .bjj-account-nav__identity {
	display: flex;
	align-items: center;
	gap: 12px;
	padding: 18px 18px;
	background: var(--wp--preset--color--accent-5);
	border-bottom: 1px solid var(--wp--preset--color--accent-6);
}

.woocommerce-account .bjj-account-nav__avatar {
	display: flex;
	align-items: center;
	justify-content: center;
	flex-shrink: 0;
	width: 42px;
	height: 42px;
	border-radius: 50%;
	background: var(--wp--preset--color--accent-1);
	color: var(--wp--preset--color--base);
	font-family: var(--wp--preset--font-family--montserrat);
	font-size: 18px;
	font-weight: 800;
	line-height: 1;
}

/* min-width:0 để text-overflow bên trong hoạt động — flex item mặc định min-width:auto sẽ
   không chịu co lại dưới kích thước nội dung, email dài sẽ đẩy vỡ card thay vì bị cắt. */
.woocommerce-account .bjj-account-nav__who {
	display: flex;
	flex-direction: column;
	gap: 2px;
	min-width: 0;
}

.woocommerce-account .bjj-account-nav__name,
.woocommerce-account .bjj-account-nav__email {
	overflow: hidden;
	text-overflow: ellipsis;
	white-space: nowrap;
	font-family: var(--wp--preset--font-family--open-sans);
}

.woocommerce-account .bjj-account-nav__name {
	font-size: 15px;
	font-weight: 700;
	color: var(--wp--preset--color--contrast);
}

.woocommerce-account .bjj-account-nav__email {
	font-size: 12.5px;
	color: var(--wp--preset--color--accent-3);
}

.woocommerce-account .bjj-account-nav ul {
	list-style: none;
	margin: 0;
	padding: 6px;
}

.woocommerce-account .bjj-account-nav li {
	margin: 0;
}

.woocommerce-account .bjj-account-nav li a {
	display: flex;
	align-items: center;
	gap: 12px;
	padding: 11px 12px;
	border-radius: 3px;
	font-family: var(--wp--preset--font-family--open-sans);
	font-size: 14.5px;
	font-weight: 600;
	color: var(--wp--preset--color--accent-4);
	text-decoration: none;
	/* Vạch đỏ của mục đang mở vẽ bằng box-shadow inset thay vì border-left, để mục không bị
	   thụt ngang 3px mỗi khi chuyển qua lại — cùng lý do đã dùng ở thanh tab đăng nhập. */
	box-shadow: inset 3px 0 0 transparent;
	transition: background-color 200ms ease, color 200ms ease, box-shadow 200ms ease;
}

.woocommerce-account .bjj-account-nav li a svg {
	width: 18px;
	height: 18px;
	flex-shrink: 0;
	color: var(--wp--preset--color--accent-3);
	transition: color 200ms ease;
}

.woocommerce-account .bjj-account-nav li a:hover {
	background: var(--wp--preset--color--accent-5);
	color: var(--wp--preset--color--contrast);
}

.woocommerce-account .bjj-account-nav li a:focus-visible {
	outline: 2px solid var(--wp--preset--color--accent-1);
	outline-offset: -2px;
}

.woocommerce-account .bjj-account-nav li.is-active a {
	background: var(--wp--preset--color--accent-5);
	color: var(--wp--preset--color--contrast);
	box-shadow: inset 3px 0 0 var(--wp--preset--color--accent-1);
}

.woocommerce-account .bjj-account-nav li.is-active a svg {
	color: var(--wp--preset--color--accent-1);
}

/* Đăng xuất tách khỏi nhóm điều hướng bằng một đường kẻ: nó không phải "một trang khác để xem"
   mà là hành động kết thúc phiên, đặt lẫn vào danh sách dễ bị bấm nhầm. */
.woocommerce-account .bjj-account-nav li.woocommerce-MyAccount-navigation-link--customer-logout {
	margin-top: 6px;
	padding-top: 6px;
	border-top: 1px solid var(--wp--preset--color--accent-6);
}

.woocommerce-account .bjj-account-nav li.woocommerce-MyAccount-navigation-link--customer-logout a {
	color: var(--wp--preset--color--accent-3);
}

/* --- Đè woocommerce-blocktheme.css ---------------------------------------
   Ngoài woocommerce.css và woocommerce-layout.css, WooCommerce còn nạp một file thứ ba dành
   RIÊNG cho block theme là woocommerce-blocktheme.css, và chính nó mới là file áp luật lên
   menu tài khoản:
       .woocommerce-account .woocommerce-MyAccount-navigation ul        { margin: 0 0 2em }
       .woocommerce-account .woocommerce-MyAccount-navigation li        { padding: 1em 0 }
       .woocommerce-account .woocommerce-MyAccount-navigation li        { padding: .35em 0 }
       .woocommerce-account .woocommerce-MyAccount-navigation li.is-active a { text-decoration: underline }
       .woocommerce-account .woocommerce-MyAccount-navigation li a:hover     { text-decoration: underline }
   Padding 1em trên mỗi <li> đội khoảng cách giữa các mục lên gần gấp đôi (đo được: mỗi mục cao
   64px trong khi link bên trong chỉ 42px), còn text-decoration làm mục đang mở bị gạch chân —
   thừa, vì đã có nền xám + vạch đỏ để đánh dấu rồi.

   Các selector dưới đây cố ý kèm cả .woocommerce-MyAccount-navigation để đạt specificity CAO
   HƠN hẳn bản gốc, không dựa vào thứ tự tải file. */

.woocommerce-account .bjj-account-nav.woocommerce-MyAccount-navigation ul {
	margin: 0;
	padding: 6px;
}

.woocommerce-account .bjj-account-nav.woocommerce-MyAccount-navigation li {
	margin: 0;
	padding: 0;
	list-style: none;
}

.woocommerce-account .bjj-account-nav.woocommerce-MyAccount-navigation li a,
.woocommerce-account .bjj-account-nav.woocommerce-MyAccount-navigation li a:hover,
.woocommerce-account .bjj-account-nav.woocommerce-MyAccount-navigation li.is-active a {
	text-decoration: none;
}

/* Trả lại padding cho mục Đăng xuất — luật padding:0 ở trên đã xoá cả phần tách nhóm. */
.woocommerce-account .bjj-account-nav.woocommerce-MyAccount-navigation li.woocommerce-MyAccount-navigation-link--customer-logout {
	margin-top: 6px;
	padding-top: 6px;
}

/* ==========================================================================
   12. Khung nội dung
   ========================================================================== */

.woocommerce-account .woocommerce-MyAccount-content {
	background: var(--wp--preset--color--base);
	border: 1px solid var(--wp--preset--color--accent-6);
	border-radius: 4px;
	box-shadow: 0 1px 4px rgba(128, 128, 128, 0.11);
	padding: 28px 30px;
	font-family: var(--wp--preset--font-family--open-sans);
	font-size: 15px;
	color: var(--wp--preset--color--accent-4);
}

.woocommerce-account .woocommerce-MyAccount-content > :first-child {
	margin-top: 0;
}

.woocommerce-account .woocommerce-MyAccount-content > :last-child {
	margin-bottom: 0;
}

.woocommerce-account .woocommerce-MyAccount-content a {
	color: var(--wp--preset--color--accent-1);
}

/* Tiêu đề do WooCommerce tự in ra ở các endpoint mình KHÔNG override (rõ nhất là trang chi tiết
   đơn: "Chi tiết đơn hàng", "Địa chỉ thanh toán"). Không đặt luật này thì chúng rơi về heading
   mặc định của theme — cỡ to, không uppercase, lạc hẳn với các tiêu đề Montserrat 800 ở phần
   còn lại của trang tài khoản.
   Đặt ở mục 12 (trước mục 14) là có chủ ý: luật cho .bjj-dash__section-head h2 có cùng độ nặng
   (0,2,1), nên phải nằm SAU thì mới thắng được ở trang tổng quan. */
.woocommerce-account .woocommerce-MyAccount-content h2,
.woocommerce-account .woocommerce-MyAccount-content h3 {
	font-family: var(--wp--preset--font-family--montserrat);
	font-size: 15px;
	font-weight: 800;
	line-height: 1.4;
	text-transform: uppercase;
	letter-spacing: 0.3px;
	color: var(--wp--preset--color--contrast);
	margin: 28px 0 12px;
}

.woocommerce-account .woocommerce-MyAccount-content p {
	margin: 0 0 14px;
	line-height: 1.65;
}

/* Khối địa chỉ ở trang chi tiết đơn — cùng dáng thẻ địa chỉ ở trang tổng quan. */
.woocommerce-account .woocommerce-customer-details address {
	padding: 16px 18px;
	border: 1px solid var(--wp--preset--color--accent-6);
	border-radius: 4px;
	font-style: normal;
	font-size: 14.5px;
	line-height: 1.7;
	color: var(--wp--preset--color--accent-4);
}

/* ==========================================================================
   13. Nhãn trạng thái đơn hàng
   ========================================================================== */

/* theme.json chỉ có đỏ, xanh lá và dải xám — không có màu cảnh báo hay màu thông tin. Mà trạng
   thái đơn cần tới 4 nghĩa khác nhau: đang chờ, đang chạy, xong, hỏng. Nếu ép dùng đỏ cho "chờ
   thanh toán" thì khách đọc thành "đơn có lỗi", nên khai báo thêm 2 màu ngữ nghĩa tại chỗ.
   Đây là màu NGỮ NGHĨA, cố ý tách khỏi màu thương hiệu — không dùng chúng ở đâu khác. */
.woocommerce-account {
	--bjj-status-wait-bg: #fbf1de;
	--bjj-status-wait-fg: #8a5a00;
	--bjj-status-run-bg: #e4f0fb;
	--bjj-status-run-fg: #1b5e93;
}

.woocommerce-account .bjj-order-status {
	display: inline-block;
	padding: 4px 11px;
	border-radius: 999px;
	font-family: var(--wp--preset--font-family--open-sans);
	font-size: 12px;
	font-weight: 700;
	line-height: 1.5;
	letter-spacing: 0.2px;
	white-space: nowrap;
	background: var(--wp--preset--color--accent-5);
	color: var(--wp--preset--color--accent-4);
}

.woocommerce-account .bjj-order-status--pending,
.woocommerce-account .bjj-order-status--on-hold {
	background: var(--bjj-status-wait-bg);
	color: var(--bjj-status-wait-fg);
}

.woocommerce-account .bjj-order-status--processing {
	background: var(--bjj-status-run-bg);
	color: var(--bjj-status-run-fg);
}

.woocommerce-account .bjj-order-status--completed {
	background: color-mix(in srgb, var(--wp--preset--color--accent-2) 13%, white);
	color: color-mix(in srgb, var(--wp--preset--color--accent-2) 78%, black);
}

.woocommerce-account .bjj-order-status--cancelled,
.woocommerce-account .bjj-order-status--failed,
.woocommerce-account .bjj-order-status--refunded {
	background: color-mix(in srgb, var(--wp--preset--color--accent-1) 10%, white);
	color: var(--wp--preset--color--accent-1);
}

/* ==========================================================================
   14. Trang tổng quan
   ========================================================================== */

.woocommerce-account .bjj-dash__greeting {
	font-size: 17px;
	color: var(--wp--preset--color--accent-4);
	margin: 0 0 22px;
}

.woocommerce-account .bjj-dash__greeting strong {
	color: var(--wp--preset--color--contrast);
}

.woocommerce-account .bjj-dash__stats {
	list-style: none;
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: 12px;
	margin: 0;
	padding: 0;
}

.woocommerce-account .bjj-dash__stat {
	display: flex;
	flex-direction: column;
	gap: 4px;
	padding: 16px 18px;
	margin: 0;
	border: 1px solid var(--wp--preset--color--accent-6);
	border-radius: 4px;
	background: var(--wp--preset--color--accent-5);
}

.woocommerce-account .bjj-dash__stat-value {
	font-family: var(--wp--preset--font-family--montserrat);
	font-size: 27px;
	font-weight: 800;
	line-height: 1.1;
	color: var(--wp--preset--color--contrast);
	/* Số ở 3 ô phải thẳng cột với nhau khi lên 2-3 chữ số */
	font-variant-numeric: tabular-nums;
}

/* Cùng quy ước màu với nhãn trạng thái: đang chạy = xanh dương, đã xong = xám lùi về sau.
   Tổng đơn giữ màu chữ chính vì nó là con số trung tính, không mang trạng thái. */
.woocommerce-account .bjj-dash__stat--open .bjj-dash__stat-value {
	color: var(--bjj-status-run-fg);
}

.woocommerce-account .bjj-dash__stat--done .bjj-dash__stat-value {
	color: color-mix(in srgb, var(--wp--preset--color--accent-2) 78%, black);
}

.woocommerce-account .bjj-dash__stat-label {
	font-size: 12px;
	font-weight: 600;
	text-transform: uppercase;
	letter-spacing: 0.5px;
	color: var(--wp--preset--color--accent-3);
}

.woocommerce-account .bjj-dash__section {
	margin-top: 30px;
}

.woocommerce-account .bjj-dash__section-head {
	display: flex;
	align-items: baseline;
	justify-content: space-between;
	gap: 16px;
	margin-bottom: 12px;
}

.woocommerce-account .bjj-dash__section-head h2 {
	font-family: var(--wp--preset--font-family--montserrat);
	font-size: 15px;
	font-weight: 800;
	text-transform: uppercase;
	letter-spacing: 0.3px;
	color: var(--wp--preset--color--contrast);
	margin: 0;
}

.woocommerce-account .bjj-dash__section-head a {
	font-size: 13.5px;
	font-weight: 600;
	color: var(--wp--preset--color--accent-1);
	text-decoration: none;
	white-space: nowrap;
}

.woocommerce-account .bjj-dash__section-head a:hover {
	text-decoration: underline;
}

.woocommerce-account .bjj-dash__orders {
	list-style: none;
	margin: 0;
	padding: 0;
	border: 1px solid var(--wp--preset--color--accent-6);
	border-radius: 4px;
	overflow: hidden;
}

.woocommerce-account .bjj-dash__order + .bjj-dash__order {
	border-top: 1px solid var(--wp--preset--color--accent-6);
}

.woocommerce-account .bjj-dash__order {
	margin: 0;
}

/* Cả dòng là vùng bấm được, không chỉ mỗi mã đơn — đích bấm to hơn hẳn trên điện thoại. */
.woocommerce-account .bjj-dash__order-link {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 16px;
	padding: 14px 16px;
	text-decoration: none;
	color: inherit;
	transition: background-color 200ms ease;
}

.woocommerce-account .bjj-dash__order-link:hover {
	background: var(--wp--preset--color--accent-5);
}

.woocommerce-account .bjj-dash__order-link:focus-visible {
	outline: 2px solid var(--wp--preset--color--accent-1);
	outline-offset: -2px;
}

.woocommerce-account .bjj-dash__order-main {
	display: flex;
	flex-direction: column;
	gap: 3px;
	min-width: 0;
}

.woocommerce-account .bjj-dash__order-number {
	font-size: 15px;
	font-weight: 700;
	color: var(--wp--preset--color--accent-1);
}

.woocommerce-account .bjj-dash__order-meta {
	font-size: 12.5px;
	color: var(--wp--preset--color--accent-3);
}

.woocommerce-account .bjj-dash__order-side {
	display: flex;
	align-items: center;
	gap: 14px;
	flex-shrink: 0;
}

.woocommerce-account .bjj-dash__order-total {
	font-size: 15px;
	font-weight: 700;
	color: var(--wp--preset--color--contrast);
	white-space: nowrap;
}

.woocommerce-account .bjj-dash__address {
	margin: 0;
	padding: 16px 18px;
	border: 1px solid var(--wp--preset--color--accent-6);
	border-radius: 4px;
	/* Thẻ <address> mặc định của trình duyệt là in nghiêng — địa chỉ giao hàng cần đọc rõ ràng,
	   không phải trích dẫn. */
	font-style: normal;
	font-size: 14.5px;
	line-height: 1.7;
	color: var(--wp--preset--color--accent-4);
}

.woocommerce-account .bjj-dash__address--empty {
	color: var(--wp--preset--color--accent-3);
	font-size: 14px;
}

/* --- Trạng thái rỗng --- */

.woocommerce-account .bjj-dash__empty {
	display: flex;
	flex-direction: column;
	align-items: center;
	text-align: center;
	gap: 6px;
	margin-top: 28px;
	padding: 40px 24px;
	border: 1px dashed var(--wp--preset--color--accent-6);
	border-radius: 4px;
}

.woocommerce-account .bjj-dash__empty svg {
	width: 40px;
	height: 40px;
	color: var(--wp--preset--color--accent-3);
	margin-bottom: 6px;
}

.woocommerce-account .bjj-dash__empty-title {
	font-family: var(--wp--preset--font-family--montserrat);
	font-size: 16px;
	font-weight: 800;
	color: var(--wp--preset--color--contrast);
	margin: 0;
}

.woocommerce-account .bjj-dash__empty-text {
	font-size: 14px;
	color: var(--wp--preset--color--accent-3);
	margin: 0;
	max-width: 34ch;
}

.woocommerce-account .bjj-dash__empty-cta {
	margin-top: 14px;
	padding: 12px 26px;
	border-radius: 3px;
	background: var(--wp--preset--color--accent-2);
	color: var(--wp--preset--color--base) !important;
	font-family: var(--wp--preset--font-family--montserrat);
	font-size: 14px;
	font-weight: 800;
	text-transform: uppercase;
	letter-spacing: 0.4px;
	text-decoration: none;
	transition: background-color 200ms ease;
}

.woocommerce-account .bjj-dash__empty-cta:hover {
	background: color-mix(in srgb, var(--wp--preset--color--accent-2) 85%, black);
}

/* ==========================================================================
   15. Bảng đơn hàng
   ========================================================================== */

/* Bảng ở đây KHÔNG override template orders.php — nội dung 2 cột Trạng thái và Tổng tiền được
   thay bằng hook woocommerce_my_account_my_orders_column_* trong functions.php. */
.woocommerce-account .woocommerce-MyAccount-content table.shop_table {
	border: 1px solid var(--wp--preset--color--accent-6);
	border-radius: 4px;
	border-collapse: separate;
	border-spacing: 0;
	margin: 0;
	width: 100%;
	font-size: 14.5px;
}

/* CHỈ thead th. Ô mã đơn ở mỗi dòng cũng là <th scope="row"> (orders.php cố ý dùng th cho ô
   nhận diện dòng, đúng chuẩn a11y) — nếu nhắm "th" trần thì ô mã đơn cũng ăn nền xám và cỡ chữ
   11.5px uppercase của hàng tiêu đề, biến mã đơn thành thứ mờ nhạt nhất trong bảng. */
.woocommerce-account .woocommerce-MyAccount-content table.shop_table thead th {
	padding: 12px 14px;
	background: var(--wp--preset--color--accent-5);
	border-bottom: 1px solid var(--wp--preset--color--accent-6);
	font-family: var(--wp--preset--font-family--open-sans);
	font-size: 11.5px;
	font-weight: 700;
	text-transform: uppercase;
	letter-spacing: 0.6px;
	color: var(--wp--preset--color--accent-3);
	text-align: left;
}

.woocommerce-account .woocommerce-MyAccount-content table.shop_table td,
.woocommerce-account .woocommerce-MyAccount-content table.shop_table tbody th {
	padding: 14px;
	border-top: 1px solid var(--wp--preset--color--accent-6);
	vertical-align: middle;
	text-align: left;
	font-weight: 400;
}

.woocommerce-account .woocommerce-MyAccount-content table.shop_table tbody tr:first-child td,
.woocommerce-account .woocommerce-MyAccount-content table.shop_table tbody tr:first-child th {
	border-top: 0;
}

.woocommerce-account .woocommerce-orders-table__cell-order-number a {
	font-weight: 700;
	text-decoration: none;
}

.woocommerce-account .woocommerce-orders-table__cell-order-number a:hover {
	text-decoration: underline;
}

.woocommerce-account .bjj-order-total {
	display: block;
	font-weight: 700;
	color: var(--wp--preset--color--contrast);
	white-space: nowrap;
}

.woocommerce-account .bjj-order-items {
	display: block;
	margin-top: 2px;
	font-size: 12.5px;
	color: var(--wp--preset--color--accent-3);
}

/* Nút "Xem"/"Thanh toán" trong cột thao tác: nút phụ viền mảnh, không tranh sự chú ý với nút
   chính màu xanh ở các trang khác. */
.woocommerce-account .woocommerce-orders-table__cell-order-actions .button {
	display: inline-block;
	padding: 7px 14px !important;
	border: 1px solid var(--wp--preset--color--accent-6) !important;
	border-radius: 3px !important;
	background: var(--wp--preset--color--base) !important;
	color: var(--wp--preset--color--contrast) !important;
	font-size: 13px !important;
	font-weight: 700;
	text-decoration: none;
	transition: border-color 200ms ease, background-color 200ms ease;
}

.woocommerce-account .woocommerce-orders-table__cell-order-actions .button:hover {
	background: var(--wp--preset--color--accent-5) !important;
	border-color: var(--wp--preset--color--accent-3) !important;
}

.woocommerce-account .woocommerce-orders-table__cell-order-actions .button + .button {
	margin-left: 6px;
}

/* ==========================================================================
   16. Trang Địa chỉ
   ========================================================================== */

/* my-address.php vẫn dùng bố cục .u-columns/.u-column1/.u-column2 cũ (float). Chuyển sang grid
   auto-fit để 1 hay 2 thẻ địa chỉ đều dàn đúng, không cần biết trước số lượng — shop bật/tắt
   "giao tới địa chỉ thanh toán" là số thẻ đổi từ 2 xuống 1. */
.woocommerce-account .woocommerce-MyAccount-content .woocommerce-Addresses {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(240px, 1fr));
	gap: 20px;
	margin-top: 18px;
}

/* Lần thứ ba dính đúng một cái bẫy: .woocommerce-Addresses mang kèm class .col2-set, mà
   woocommerce.css gắn clearfix content:" ";display:table lên ::before/::after của .col2-set.
   Thành grid thì 2 pseudo đó chiếm 2 ô đầu, đẩy 2 thẻ địa chỉ thật sang nửa phải và chừa một
   khoảng trống to bên trái. */
.woocommerce-account .woocommerce-MyAccount-content .woocommerce-Addresses::before,
.woocommerce-account .woocommerce-MyAccount-content .woocommerce-Addresses::after {
	display: none;
}

.woocommerce-account .woocommerce-MyAccount-content .woocommerce-Address {
	float: none;
	width: auto;
	/* Mốc cho container query ở cuối mục này — tiêu đề thẻ phải xếp dọc khi CHÍNH THẺ hẹp, chứ
	   không phải khi màn hình hẹp. */
	container-type: inline-size;
	padding: 20px;
	border: 1px solid var(--wp--preset--color--accent-6);
	border-radius: 4px;
}

/* flex-wrap + min-width:0 để khi thẻ hẹp thì link "Sửa..." xuống dòng, thay vì ép tiêu đề co
   lại thành cột chữ dọc mỗi dòng một từ. woocommerce-blocktheme.css còn đặt .addresses .title
   .edit { display:block; margin-bottom:1em } — margin đó thừa ở bố cục này nên bỏ. */
/* Dùng grid với vị trí cột TƯỜNG MINH thay vì flex + space-between.
   Lý do: woocommerce.css đặt float:right cho .edit, và đo thực tế cho thấy thứ tự hiển thị của
   thẻ đầu bị đảo ngược (link "Sửa..." nằm TRƯỚC tiêu đề) trong khi thẻ thứ hai lại đúng — hành
   vi không ổn định giữa hai thẻ có cùng cấu trúc HTML. Chỉ định thẳng grid-column cho từng phần
   tử thì thứ tự do CSS quyết định dứt khoát, không phụ thuộc luật sắp xếp ngầm nào. */
.woocommerce-account .woocommerce-MyAccount-content .woocommerce-Address-title {
	display: grid;
	grid-template-columns: 1fr auto;
	align-items: baseline;
	gap: 6px 14px;
	margin-bottom: 12px;
}

.woocommerce-account .woocommerce-MyAccount-content .woocommerce-Address-title h2 {
	grid-column: 1;
	min-width: 0;
}

.woocommerce-account .woocommerce-MyAccount-content .woocommerce-Address-title .edit {
	grid-column: 2;
	justify-self: end;
	float: none;
	display: inline;
	margin-bottom: 0;
}

/* Clearfix của .woocommerce-Address-title (nó cũng mang class .title) — cùng lý do đã gặp ở
   .form-row, .woocommerce và .col2-set. */
.woocommerce-account .woocommerce-MyAccount-content .woocommerce-Address-title::before,
.woocommerce-account .woocommerce-MyAccount-content .woocommerce-Address-title::after {
	display: none;
}

.woocommerce-account .woocommerce-Address-title h2 {
	font-family: var(--wp--preset--font-family--montserrat);
	font-size: 14px;
	font-weight: 800;
	text-transform: uppercase;
	letter-spacing: 0.3px;
	color: var(--wp--preset--color--contrast);
	margin: 0;
}

.woocommerce-account .woocommerce-Address-title .edit {
	font-size: 13.5px;
	font-weight: 600;
	white-space: nowrap;
	text-decoration: none;
}

.woocommerce-account .woocommerce-Address address {
	font-style: normal;
	font-size: 14.5px;
	line-height: 1.7;
	color: var(--wp--preset--color--accent-4);
	margin: 0;
}

/* ==========================================================================
   17. Form trong khu vực tài khoản (Sửa địa chỉ, Chi tiết tài khoản)
   ========================================================================== */

/* Dùng lại đúng dáng input của màn hình đăng nhập. Không gộp chung selector với phần .bjj-auth
   ở trên được vì hai bên có tổ tiên khác nhau, nhưng giá trị phải khớp tuyệt đối — lệch một
   pixel chiều cao là hai màn hình trông như hai website. */
.woocommerce-account .woocommerce-MyAccount-content form .form-row {
	padding: 0;
	margin: 0 0 18px;
}

.woocommerce-account .woocommerce-MyAccount-content form .form-row::before,
.woocommerce-account .woocommerce-MyAccount-content form .form-row::after {
	display: none;
}

.woocommerce-account .woocommerce-MyAccount-content form .form-row > label {
	display: block;
	font-size: 14px;
	font-weight: 600;
	color: var(--wp--preset--color--contrast);
	margin: 0 0 6px;
	line-height: 1.5;
}

.woocommerce-account .woocommerce-MyAccount-content form .form-row .required {
	color: var(--wp--preset--color--accent-1);
	text-decoration: none;
}

.woocommerce-account .woocommerce-MyAccount-content form .form-row input.input-text,
.woocommerce-account .woocommerce-MyAccount-content form .form-row input[type="password"],
.woocommerce-account .woocommerce-MyAccount-content form .form-row .select2-selection--single {
	width: 100%;
	height: 48px;
	padding: 0 15px;
	border: 1px solid rgba(128, 128, 128, 0.3);
	border-radius: 4px;
	font-family: var(--wp--preset--font-family--open-sans);
	font-size: 15px;
	color: var(--wp--preset--color--contrast);
	background: var(--wp--preset--color--base);
	box-sizing: border-box;
	transition: border-color 200ms ease, box-shadow 200ms ease;
}

.woocommerce-account .woocommerce-MyAccount-content form .form-row input.input-text:focus,
.woocommerce-account .woocommerce-MyAccount-content form .form-row input[type="password"]:focus {
	outline: none;
	border-color: var(--wp--preset--color--accent-2);
	box-shadow: 0 0 0 3px rgba(29, 177, 33, 0.12);
}

/* Nút hiện/ẩn mật khẩu — cùng cách xử lý như ở màn hình đăng nhập: width/height 100% là BẮT
   BUỘC vì woocommerce.css đặt cứng 22px cho ::before, mà height tường minh sẽ vô hiệu hoá
   bottom:0 của inset. */
.woocommerce-account .woocommerce-MyAccount-content .password-input {
	display: block;
	position: relative;
}

.woocommerce-account .woocommerce-MyAccount-content .password-input input {
	padding-right: 46px;
}

.woocommerce-account .woocommerce-MyAccount-content .show-password-input {
	position: absolute;
	top: 0;
	right: 0;
	width: 44px;
	height: 48px;
	padding: 0;
	border: 0;
	background: transparent;
	cursor: pointer;
	transform: none;
}

.woocommerce-account .woocommerce-MyAccount-content .show-password-input::before {
	position: absolute;
	inset: 0;
	width: 100%;
	height: 100%;
	background-repeat: no-repeat;
	background-position: center;
	background-size: 20px 20px;
	background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23949494' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M1 12s4-8 11-8 11 8 11 8-4 8-11 8-11-8-11-8z'%3E%3C/path%3E%3Ccircle cx='12' cy='12' r='3'%3E%3C/circle%3E%3C/svg%3E");
}

.woocommerce-account .woocommerce-MyAccount-content .show-password-input.display-password::before {
	background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23ce2219' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M17.94 17.94A10.07 10.07 0 0 1 12 20c-7 0-11-8-11-8a18.45 18.45 0 0 1 5.06-5.94M9.9 4.24A9.12 9.12 0 0 1 12 4c7 0 11 8 11 8a18.5 18.5 0 0 1-2.16 3.19m-6.72-1.07a3 3 0 1 1-4.24-4.24'%3E%3C/path%3E%3Cline x1='1' y1='1' x2='23' y2='23'%3E%3C/line%3E%3C/svg%3E");
}

.woocommerce-account .woocommerce-MyAccount-content fieldset {
	margin: 28px 0 0;
	padding: 22px 0 0;
	border: 0;
	border-top: 1px solid var(--wp--preset--color--accent-6);
}

.woocommerce-account .woocommerce-MyAccount-content fieldset legend {
	padding: 0;
	font-family: var(--wp--preset--font-family--montserrat);
	font-size: 14px;
	font-weight: 800;
	text-transform: uppercase;
	letter-spacing: 0.3px;
	color: var(--wp--preset--color--contrast);
}

/* Dáng nút dùng chung cho CẢ khu vực tài khoản — không giới hạn trong form.
   Trước đây luật này chỉ nhắm "form .button" nên nút "Đặt hàng lại" ở trang chi tiết đơn
   (WooCommerce in ra <p class="order-again"><a class="button">, nằm ngoài mọi form) rơi về style
   nút mặc định của theme: Open Sans 18px, padding 16px 36px — to và lạc hẳn so với các nút khác
   trong khu vực này.

   display:inline-block là phần QUAN TRỌNG NHẤT, không phải chuyện thẩm mỹ: nút là thẻ <a> nội
   tuyến, mà padding của phần tử inline KHÔNG làm tăng chiều cao dòng. Đo thực tế: <p> bọc ngoài
   chỉ cao 30px trong khi <a> bên trong cao 57px, nên nút tràn lên trên 13px và đè vào đáy bảng
   đơn hàng. inline-block khiến hộp của nút được tính vào layout, hết đè. */
.woocommerce-account .woocommerce-MyAccount-content .button {
	display: inline-block;
	/* Đặt màu chữ TƯỜNG MINH: luật ".woocommerce-MyAccount-content a { color: accent-1 }" ở mục
	   12 ăn cả vào <a class="button"> — nút "Đặt hàng lại" là thẻ <a>, không phải <button> như
	   các nút trong form, nên nó ra chữ ĐỎ trên nền XANH, gần như không đọc được.
	   Selector này (0,3,0) nặng hơn luật link kia (0,2,1) nên thắng mà không cần !important. */
	color: var(--wp--preset--color--base);
	padding: 13px 28px !important;
	border-radius: 3px !important;
	font-family: var(--wp--preset--font-family--montserrat);
	font-size: 14px !important;
	font-weight: 800;
	line-height: 1.25;
	text-transform: uppercase;
	letter-spacing: 0.4px;
	text-decoration: none;
	transition: background-color 200ms ease;
}

.woocommerce-account .woocommerce-MyAccount-content .button:hover {
	background: color-mix(in srgb, var(--wp--preset--color--accent-2) 85%, black) !important;
}

/* Tách nút "Đặt hàng lại" khỏi bảng phía trên. Bảng đã bị đặt margin:0 ở mục 15 nên nếu không
   cho khoảng cách ở đây thì nút dính sát mép bảng. */
.woocommerce-account .woocommerce-MyAccount-content p.order-again {
	margin: 22px 0 0;
}

/* ==========================================================================
   18. Mobile — khu vực đã đăng nhập
   ========================================================================== */

@media (max-width: 900px) {
	/* Dưới 900px, sidebar 264px chiếm quá nửa chiều ngang. Xếp dọc và bỏ sticky — sidebar dính
	   ở đầu màn hình trên điện thoại sẽ ăn mất phần lớn vùng nhìn. */
	.woocommerce-account .woocommerce:has(> .woocommerce-MyAccount-navigation) {
		grid-template-columns: minmax(0, 1fr);
		gap: 20px;
		margin: 24px auto 48px;
	}

	.woocommerce-account .bjj-account-nav {
		position: static;
	}
}

@media (max-width: 600px) {
	.woocommerce-account .woocommerce-MyAccount-content {
		padding: 22px 18px;
	}

	/* 3 ô thống kê ép trên 1 hàng ở màn hình hẹp sẽ làm nhãn "Đã hoàn thành" xuống 3 dòng.
	   2 cột, ô Tổng đơn trải ngang cả hàng đầu vì nó là con số quan trọng nhất. */
	.woocommerce-account .bjj-dash__stats {
		grid-template-columns: repeat(2, 1fr);
	}

	.woocommerce-account .bjj-dash__stat--total {
		grid-column: 1 / -1;
	}

	/* Dòng đơn hàng: dồn ngang trên màn hẹp sẽ ép mã đơn và tổng tiền vào nhau, xuống dòng cho
	   mỗi phần có đủ chỗ thở. */
	.woocommerce-account .bjj-dash__order-link {
		flex-direction: column;
		align-items: flex-start;
		gap: 10px;
	}

	.woocommerce-account .bjj-dash__order-side {
		width: 100%;
		justify-content: space-between;
	}
}

/* ==========================================================================
   19. Popup đăng nhập mở từ header
   ========================================================================== */

/* Toàn bộ dáng vẻ của card đã có sẵn ở mục 1-9 (các luật đó nhận cả .bjj-login-dialog làm gốc
   phạm vi — xem ghi chú đầu file). Ở đây chỉ lo phần hộp thoại: căn giữa màn hình, nền mờ, và
   chỉnh lại mấy khoảng cách vốn tính cho bối cảnh giữa trang. */

.bjj-login-dialog {
	width: 100%;
	max-width: 460px;
	/* Chừa 44px phía trên cho nút Đóng. Không đặt nút đè lên góc card được: thanh tab trải hết
	   chiều ngang card nên nút sẽ nằm chồng lên chữ "TẠO TÀI KHOẢN". Nền dialog trong suốt nên
	   vùng padding này nhìn xuyên xuống lớp backdrop tối. */
	padding: 44px 0 0;
	border: 0;
	border-radius: 4px;
	background: transparent;
	/* Màn hình thấp (điện thoại nằm ngang, laptop 13"): tab Tạo tài khoản cao hơn tab Đăng nhập,
	   không cho cuộn thì phần dưới form bị cắt, không tới được nút submit. */
	max-height: calc(100dvh - 24px);
	overflow-y: auto;
}

/* <dialog> mặc định neo theo margin auto của UA stylesheet; đặt lại tường minh để hộp luôn nằm
   chính giữa màn hình bất kể chiều cao nội dung. */
.bjj-login-dialog[open] {
	position: fixed;
	inset: 0;
	margin: auto;
}

.bjj-login-dialog::backdrop {
	background: rgba(29, 29, 29, 0.55);
}

/* Card bên trong popup: bỏ margin dọc 40px/64px vốn để tách card khỏi header và footer khi nằm
   giữa trang — trong popup thì không có gì để tách, margin đó chỉ làm hộp cao vô ích. */
.bjj-login-dialog .bjj-auth {
	margin: 0;
	padding: 0;
	max-width: none;
}

.bjj-login-dialog .bjj-auth__card {
	box-shadow: 0 18px 50px -12px rgba(29, 29, 29, 0.4);
}

/* Nút đóng nằm NGOÀI card, ngay phía trên góc phải — icon trắng trên nền tối của backdrop. */
.bjj-login-dialog__close {
	position: absolute;
	top: 4px;
	right: 0;
	z-index: 2;
	display: flex;
	align-items: center;
	justify-content: center;
	width: 34px;
	height: 34px;
	padding: 0;
	border: 0;
	border-radius: 50%;
	background: transparent;
	color: #ffffff;
	cursor: pointer;
	transition: background-color 200ms ease;
}

.bjj-login-dialog__close:hover {
	background: rgba(255, 255, 255, 0.18);
}

.bjj-login-dialog__close:focus-visible {
	outline: 2px solid var(--wp--preset--color--accent-1);
	outline-offset: 2px;
}

.bjj-login-dialog__close svg {
	width: 18px;
	height: 18px;
}

@media (max-width: 520px) {
	.bjj-login-dialog {
		max-width: calc(100vw - 24px);
	}

	.bjj-login-dialog .bjj-auth__panel {
		padding: 26px 22px;
	}
}



/* ==========================================================================
   20. Sửa lỗi phát hiện khi đo ở 390px
   ========================================================================== */

/* --- Link đổi tab bị ngắt giữa cụm từ ---------------------------------- */

/* --- Mã đơn biến mất khỏi bảng đơn hàng trên mobile --------------------- */

/* woocommerce-smallscreen.css (nạp với media="only screen and (max-width: 768px)", xem
   class-wc-frontend-scripts.php:91) chuyển bảng đơn thành dạng thẻ, kèm luật:
       .woocommerce table.shop_table_responsive tbody th { display: none }
   Mà ô MÃ ĐƠN trong orders.php lại là <th scope="row"> — dùng th cho ô nhận diện dòng là đúng
   chuẩn a11y. Hệ quả: trên điện thoại mỗi thẻ chỉ còn Ngày / Trạng thái / Tổng, KHÔNG có mã
   đơn, khách không biết đang xem đơn nào. Đây là thiếu sót sẵn có của WooCommerce.
   Hiện lại nó, và cho làm tiêu đề của thẻ thay vì một dòng thuộc tính như các dòng khác. */
@media (max-width: 768px) {
	.woocommerce-account .woocommerce-MyAccount-content table.shop_table_responsive tbody th {
		display: block;
		padding: 14px 14px 10px;
		border-bottom: 1px solid var(--wp--preset--color--accent-6);
		font-family: var(--wp--preset--font-family--montserrat);
		font-size: 16px;
		font-weight: 800;
	}

	/* Không in nhãn "Đơn hàng:" phía trước — dấu # đã đủ cho biết đó là mã đơn, và ô này đang
	   đóng vai tiêu đề thẻ chứ không phải một cặp nhãn/giá trị. */
	.woocommerce-account .woocommerce-MyAccount-content table.shop_table_responsive tbody th::before {
		content: none;
	}

	.woocommerce-account .woocommerce-MyAccount-content table.shop_table_responsive tbody th a {
		color: var(--wp--preset--color--accent-1);
		text-decoration: none;
	}
}

/* --- Tiêu đề thẻ địa chỉ bị bóp thành cột chữ dọc ---------------------- */

/* Container query chứ KHÔNG phải media query: thẻ địa chỉ bị bóp là do BỀ RỘNG CỦA CHÍNH THẺ,
   không phải bề rộng màn hình. Lưới địa chỉ là repeat(auto-fit, minmax(240px, 1fr)) nên cùng
   một thẻ có thể hẹp ở điện thoại (1 cột) lẫn ở màn hình vừa (2 cột cạnh nhau). Media query sẽ
   phải đoán mò cả hai; container query hỏi thẳng "thẻ này rộng bao nhiêu". */
@container (max-width: 380px) {
	.woocommerce-account .woocommerce-MyAccount-content .woocommerce-Address-title {
		grid-template-columns: 1fr;
	}

	.woocommerce-account .woocommerce-MyAccount-content .woocommerce-Address-title .edit {
		grid-column: 1;
		justify-self: start;
	}
}

/* ==========================================================================
   21. Màn nhập mã OTP (bước xác thực email khi đăng ký)
   ========================================================================== */

/* Màn này thay chỗ form đăng ký ngay trong panel .bjj-auth__panel--register (xem
   woocommerce/myaccount/form-login.php và mu-plugin bjj-email-otp), nên nó thừa hưởng sẵn khung
   card, khoảng đệm panel và style ô nhập ở mục 4. Ở đây chỉ định nghĩa những gì thật sự khác:
   một ô nhập kiểu "mã", và hai hành động phụ dạng link. */

/* Email hiện trong câu dẫn: in đậm và không xuống dòng giữa chừng — địa chỉ email bị ngắt làm đôi
   rất khó soi xem có gõ nhầm không, mà soi lại đúng là việc khách cần làm ở màn hình này. */
:is(.woocommerce-account, .bjj-login-dialog) .bjj-otp__email {
	color: var(--wp--preset--color--contrast);
	word-break: break-all;
}

/* Ô nhập mã. Giãn chữ + canh giữa + font đẳng chiều để 6 chữ số đọc ra thành từng ký tự rời,
   giống hình dáng quen thuộc của ô OTP dù đây chỉ là MỘT input (lý do vì sao là một ô: xem
   comment trong templates/otp-form.php của mu-plugin). */
:is(.woocommerce-account, .bjj-login-dialog) .bjj-auth .woocommerce-form-row input.bjj-otp__input {
	height: 56px;
	padding: 0;
	text-align: center;
	font-family: var(--wp--preset--font-family--montserrat);
	font-size: 26px;
	font-weight: 700;
	/* letter-spacing đẩy nội dung lệch sang trái vì khoảng cách được thêm sau ký tự CUỐI cùng.
	   text-indent bù lại đúng một khoảng đó để cụm số nằm giữa thật. */
	letter-spacing: 10px;
	text-indent: 10px;
}

:is(.woocommerce-account, .bjj-login-dialog) .bjj-otp__actions {
	display: flex;
	flex-wrap: wrap;
	justify-content: center;
	align-items: center;
	gap: 8px 20px;
	margin: 18px 0 0;
	font-family: var(--wp--preset--font-family--open-sans);
	font-size: 14px;
}

/* "Gửi lại mã" và "Đổi email khác" là <button type="submit"> chứ không phải <a>: cả hai gửi form
   kèm nonce, mà một cú GET thì không làm được việc đó cho an toàn. Đổi lại phải tự xoá sạch dáng
   vẻ nút mặc định của trình duyệt và của theme để chúng đọc ra là link. */
:is(.woocommerce-account, .bjj-login-dialog) .bjj-auth .bjj-otp__link {
	padding: 0;
	border: 0;
	background: none;
	font-family: inherit;
	font-size: 14px;
	font-weight: 600;
	line-height: 1.4;
	color: var(--wp--preset--color--accent-1);
	cursor: pointer;
}

:is(.woocommerce-account, .bjj-login-dialog) .bjj-auth .bjj-otp__link:hover {
	background: none;
	text-decoration: underline;
}

/* Đang trong thời gian chờ giữa hai lần gửi: chỗ của nút "Gửi lại mã" hiện chữ xám cho biết còn
   bao lâu. Số giây do PHP in ra lúc tải trang nên nó KHÔNG tự đếm lùi — khách phải tải lại trang
   mới thấy nút. Chấp nhận: thà một dòng chữ đứng yên còn hơn thêm JS chỉ để trang trí một hàng
   rào chống gửi rác mà máy chủ mới là nơi thực thi thật. */
:is(.woocommerce-account, .bjj-login-dialog) .bjj-otp__wait {
	color: var(--wp--preset--color--accent-3);
}
