/*
 * Giao diện sáng/tối kiểu tạp chí (sân thử, phương án 2 — "phong cách 2").
 *
 * Nạp ở MỌI trang qua _mz_theme_head.html, luôn là stylesheet cuối cùng trong <head>.
 * Cơ chế: <html data-mz-theme="light|dark">, do script nhỏ trong <head> đặt trước khi vẽ trang
 * (lựa chọn trên máy -> cài đặt tài khoản -> hệ điều hành). Thay hoàn toàn giao diện tối cũ
 * (body.khai-thac-dark-ui), không còn luật nào của giao diện cũ.
 *
 * Nguyên tắc:
 * - Tối = "giấy đêm": nền mực nâu đen, chữ màu kem, chỉ vàng trầm, đỏ thương hiệu sáng hơn để đủ tương phản.
 *   Cùng bố cục, kiểu chữ, đường kẻ với giao diện sáng; chỉ đổi token màu và vá chỗ màu viết cứng.
 * - Ảnh, bìa sách, huân chương không đảo màu, không lọc màu.
 * - Chữ >= 4.5:1 (chữ lớn >= 3:1): bảng B · Giấy đêm ấm.
 * - Chủ đề toàn trang (Quốc tang...) vẫn được ưu tiên: ở chế độ tối, Quốc tang thành xám đen, không màu.
 * - Không đổ bóng, không gradient mới.
 */

/* ------------------------------------------------------------------ */
/* 0b. Khung quản trị (_admin_shell.html): token --mz-* / --ui-* sáng,  */
/*     Quốc tang và vòng focus bàn phím                                  */
/* ------------------------------------------------------------------ */
/* Chuyển nguyên từ admin_magazine.css mục 1–2 (lô dọn CSS 4, 2026-10-14): cùng giá trị, cùng độ đặc hiệu.
 * :where([data-admin-chrome="shell"]) không cộng độ đặc hiệu, chỉ để màn đăng nhập quản trị (cũng có
 * body.page-admin-workspace nhưng chưa từng nạp admin_magazine.css) không nhận thêm luật. Giao diện tối: mục 3 bên dưới.
 * Màn quản trị mới dùng --adm-* (admin_patterns.css); --mz-* còn cho Sửa khối (admin_homepage.css),
 * soạn Tin tức (admin_news_edit.css); --ui-* cho thành phần cũ của styles.css. */
html body.page-admin-workspace:where([data-admin-chrome="shell"]) {
  --mz-red: #8f131a;
  --mz-red-dark: #6e0f15;
  --mz-red-wash: #f7e6e3;
  --mz-paper: #fbf7ef;
  --mz-paper-deep: #f6efe2;
  --mz-card: #fffdf9;
  --mz-ink: #231a14;
  --mz-ink-soft: #3a2d23;
  --mz-muted: #6b5d4f;
  --mz-gold: #b08d4a;
  --mz-rule: #e3d7c3;
  --mz-rule-mid: #d3c3a8;
  --mz-rule-strong: rgba(35, 26, 20, 0.55);
  --mz-zebra: #fcf8f1;
  --mz-hover: #f5ecdc;
  --mz-danger: #b3121c;
  --mz-serif: "Merriweather", Georgia, "Times New Roman", serif;
  --mz-condensed: "Roboto Condensed", "Arial Narrow", Arial, sans-serif;
  --mz-focus: #8f131a;
  --mz-white: #ffffff;
  --mz-on-red: #ffffff;
  --mz-on-ink: #ffffff;
  --mz-red-line: rgba(143, 19, 26, 0.35);
}

html body.page-admin-workspace:where([data-admin-chrome="shell"]):not(.theme-quoc-tang) {
  --ui-bg: var(--mz-paper);
  --ui-bg-soft: var(--mz-paper);
  --ui-surface: var(--mz-card);
  --ui-surface-solid: #ffffff;
  --ui-surface-muted: var(--mz-paper-deep);
  --ui-surface-hover: var(--mz-hover);
  --ui-surface-elevated: var(--mz-card);
  --ui-control-surface: #ffffff;
  --ui-control-surface-hover: var(--mz-paper);
  --ui-text: #2b211a;
  --ui-text-strong: var(--mz-ink);
  --ui-text-muted: var(--mz-muted);
  --ui-text-soft: #7d6d5c;
  --ui-link: var(--mz-red);
  --ui-link-hover: var(--mz-red-dark);
  --ui-border: var(--mz-rule);
  --ui-border-soft: rgba(35, 26, 20, 0.1);
  --ui-border-subtle: rgba(35, 26, 20, 0.07);
  --ui-border-strong: var(--mz-rule-mid);
  --ui-border-hover: #a88b5a;
  --ui-divider: var(--ui-border-soft);
  --ui-accent: var(--mz-red);
  --ui-accent-hover: var(--mz-red-dark);
  --ui-accent-muted: var(--mz-ink-soft);
  --ui-on-accent: #ffffff;
  --ui-accent-border-soft: rgba(143, 19, 26, 0.18);
  --ui-accent-border: rgba(143, 19, 26, 0.55);
  --ui-accent-focus: rgba(143, 19, 26, 0.16);
  --ui-warning: #7a4a12;
  --ui-warning-surface: #fbf1dc;
  --ui-warning-border: #e2c893;
  --ui-danger: var(--mz-danger);
  --ui-danger-surface: #fcecea;
  --ui-danger-border: rgba(179, 18, 28, 0.45);
  --ui-danger-border-hover: rgba(179, 18, 28, 0.75);
  --ui-success: #2c6a33;
  --ui-success-surface: #eef6ec;
  --ui-success-border: #c5dcc2;
  /* Token ghép ở :root đã tính sẵn, phải khai báo lại để nhận màu mới. */
  --ui-table-header-surface: var(--mz-paper-deep);
  --ui-table-row-surface: #ffffff;
  --ui-card-surface: var(--mz-card);
  --ui-card-border: var(--mz-rule);
  --ui-form-surface: #ffffff;
  --ui-form-border: var(--mz-rule-mid);
  --ui-button-surface: #ffffff;
  --ui-button-surface-hover: var(--mz-paper);
  --ui-button-border: var(--mz-rule-mid);
  --ui-button-border-hover: #a88b5a;
  --ui-badge-surface: var(--ui-warning-surface);
  --ui-badge-text: var(--ui-warning);
  --ui-badge-border: var(--ui-warning-border);
  --ui-chip-surface: #ffffff;
  --ui-chip-text: var(--mz-muted);
  --ui-chip-border: var(--mz-rule);
  --bg: var(--mz-paper);
  --text: #2b211a;
  --card: var(--mz-card);
  --accent: var(--mz-red);
  --line: var(--mz-rule);
  background: var(--mz-paper);
  color: var(--ui-text);
}

html body.theme-quoc-tang.page-admin-workspace:where([data-admin-chrome="shell"]) {
  --mz-red: var(--ui-text-strong);
  --mz-red-dark: var(--ui-accent-hover);
  --mz-red-wash: var(--ui-surface-muted);
  --mz-red-line: var(--ui-border-strong);
  --mz-paper: var(--ui-bg);
  --mz-paper-deep: var(--ui-surface-muted);
  --mz-card: var(--ui-surface);
  --mz-white: var(--ui-surface-solid);
  --mz-on-red: var(--ui-surface-solid);
  --mz-on-ink: var(--ui-surface-solid);
  --mz-ink: var(--ui-text-strong);
  --mz-ink-soft: var(--ui-text);
  --mz-muted: var(--ui-text-muted);
  --mz-gold: var(--ui-border-strong);
  --mz-rule: var(--ui-border);
  --mz-rule-mid: var(--ui-border-strong);
  --mz-rule-strong: var(--ui-border-strong);
  --mz-zebra: var(--ui-bg-soft);
  --mz-hover: var(--ui-surface-hover);
  --mz-danger: var(--ui-danger);
  --mz-focus: var(--ui-text-strong);
}

html body.page-admin-workspace:where([data-admin-chrome="shell"]) :is(a[href], button, [role="button"], [role="tab"], summary, input, select, textarea, [tabindex]):focus-visible {
  outline: 2px solid var(--mz-focus) !important;
  outline-offset: 2px !important;
  box-shadow: none !important;
}

html body.page-admin-workspace:where([data-admin-chrome="shell"]) :is(input:not([type="checkbox"], [type="radio"], [type="range"], [type="color"], [type="file"]), select, textarea):focus-visible {
  outline-offset: 0 !important;
  border-color: var(--mz-red) !important;
}

/* ------------------------------------------------------------------ */
/* 0. Nút sáng/tối ở đầu trang (mọi trang)                              */
/* ------------------------------------------------------------------ */
html body .mz-theme-toggle.mz-theme-toggle {
  display: inline-flex;
  flex: 0 0 auto;
  align-items: center;
  justify-content: center;
  box-sizing: border-box;
  width: 40px;
  min-width: 40px;
  height: 40px;
  min-height: 40px;
  margin: 0;
  padding: 0;
  border: 1px solid transparent;
  border-radius: 0;
  background: transparent;
  color: var(--mz-ink, var(--ui-text-strong, currentColor));
  box-shadow: none;
  cursor: pointer;
  transition: color 160ms ease, border-color 160ms ease;
}

html body .mz-theme-toggle.mz-theme-toggle:hover {
  border-color: var(--mz-rule-strong, var(--ui-border-strong));
  background: transparent;
  color: var(--mz-red, var(--ui-link));
}

html body .mz-theme-toggle .mz-theme-toggle__icon {
  display: block;
  width: 20px;
  height: 20px;
  flex: 0 0 auto;
}

html body .mz-theme-toggle .mz-theme-toggle__icon--sun,
html[data-mz-theme="dark"] body .mz-theme-toggle .mz-theme-toggle__icon--moon {
  display: none;
}

html[data-mz-theme="dark"] body .mz-theme-toggle .mz-theme-toggle__icon--sun {
  display: block;
}

@media (max-width: 767px) {
  html body .mz-theme-toggle.mz-theme-toggle {
    width: 40px;
    min-width: 40px;
    height: 40px;
  }
}

/* ------------------------------------------------------------------ */
/* 1. Bảng màu tối                                                      */
/* ------------------------------------------------------------------ */
html[data-mz-theme="dark"] {
  color-scheme: dark;
  background-color: #292825;
}

html[data-mz-theme="dark"]:has(> body.st-non-reader-shell.theme-quoc-tang) {
  background-color: #161616;
}

html[data-mz-theme="dark"] body:not(.theme-quoc-tang):not(.theme-quoc-tang) {
  /* Bảng gốc */
  --mzd-page: #292825;
  --mzd-surface: #34322f;
  --mzd-raised: #3e3d39;
  --mzd-hover: #484742;
  --mzd-field: #21201d;
  --mzd-text: #f3e9d8;
  --mzd-strong: #faf3e6;
  --mzd-muted: #cdbda8;
  --mzd-soft: #bcaa95;
  --mzd-disabled: #9c8b78;
  --mzd-gold: #b08d4a;
  --mzd-gold-bright: #d9b877;
  --mzd-rule: rgba(243, 233, 216, 0.16);
  --mzd-rule-soft: rgba(243, 233, 216, 0.09);
  --mzd-rule-solid: #514f4a;
  --mzd-red: #ef8a80;
  --mzd-red-hover: #f5a79e;
  --mzd-red-fill: #b8352f;
  --mzd-red-fill-hover: #c4423c;
  --mzd-red-wash: rgba(239, 138, 128, 0.14);
  --mzd-on-red: #fff7ed;
  --mzd-band: #6e0f15;
  --mzd-ink-soft: #e3d6c2;
  --mzd-zebra: #2e2d29;
  --mzd-focus: #d9b877;
  --mzd-success: #a5d49c;
  --mzd-success-surface: rgba(125, 190, 115, 0.12);
  --mzd-success-border: rgba(165, 212, 156, 0.4);
  --mzd-warning: #e9c37e;
  --mzd-warning-surface: rgba(217, 184, 119, 0.12);
  --mzd-warning-border: rgba(217, 184, 119, 0.42);
  --mzd-danger: #f29488;
  --mzd-danger-surface: rgba(239, 138, 128, 0.12);
  --mzd-danger-border: rgba(242, 148, 136, 0.45);

  /* Token kiểu tạp chí (public_magazine.css) */
  --mz-focus: var(--mzd-focus);
  --mz-red: var(--mzd-red);
  --mz-red-dark: var(--mzd-red-hover);
  --mz-red-fill: var(--mzd-red-fill);
  --mz-red-fill-hover: var(--mzd-red-fill-hover);
  --mz-paper: var(--mzd-page);
  --mz-paper-deep: var(--mzd-surface);
  --mz-ink: var(--mzd-text);
  --mz-muted: var(--mzd-muted);
  --mz-gold: var(--mzd-gold);
  --mz-rule: var(--mzd-rule);
  --mz-rule-strong: var(--mzd-gold);
  --mz-band: var(--mzd-band);
  --mz-band-text: var(--mzd-text);
  --mz-band-muted: rgba(243, 233, 216, 0.8);
  --mz-band-accent: var(--mzd-gold-bright);
  --mz-band-strong: #ffffff;
  --mz-on-red: var(--mzd-on-red);
  --mz-field: var(--mzd-field);
  --mz-cover-placeholder: var(--mzd-raised);
  --mz-dropdown-rule: var(--mzd-gold);

  /* Token hệ thống (styles.css, admin_ui.css) — kể cả token ghép đã tính sẵn ở :root */
  --ui-bg: var(--mzd-page);
  --ui-bg-soft: var(--mzd-page);
  --ui-surface: var(--mzd-surface);
  --ui-surface-solid: var(--mzd-field);
  --ui-surface-muted: var(--mzd-raised);
  --ui-surface-hover: var(--mzd-hover);
  --ui-surface-elevated: var(--mzd-raised);
  --ui-control-surface: var(--mzd-field);
  --ui-control-surface-hover: var(--mzd-raised);
  --ui-text: var(--mzd-text);
  --ui-text-strong: var(--mzd-strong);
  --ui-text-muted: var(--mzd-muted);
  --ui-text-soft: var(--mzd-soft);
  --ui-text-disabled: var(--mzd-disabled);
  --ui-link: var(--mzd-red);
  --ui-link-hover: var(--mzd-red-hover);
  --ui-border: var(--mzd-rule-solid);
  --ui-border-soft: var(--mzd-rule);
  --ui-border-subtle: var(--mzd-rule-soft);
  --ui-border-hairline: var(--mzd-rule-soft);
  --ui-border-overlay: var(--mzd-rule);
  --ui-border-strong: var(--mzd-gold);
  --ui-border-hover: var(--mzd-gold-bright);
  --ui-divider: var(--mzd-rule);
  --ui-divider-strong: var(--mzd-gold);
  --ui-link-decoration: rgba(239, 138, 128, 0.4);
  --ui-link-decoration-hover: rgba(245, 167, 158, 0.7);
  --ui-accent: var(--mzd-red-fill);
  --ui-accent-hover: var(--mzd-red-fill-hover);
  --ui-accent-muted: var(--mzd-rule-solid);
  --ui-on-accent: var(--mzd-on-red);
  --ui-accent-border-soft: rgba(239, 138, 128, 0.28);
  --ui-accent-border: rgba(239, 138, 128, 0.6);
  --ui-accent-focus: rgba(217, 184, 119, 0.22);
  --ui-accent-shadow: transparent;
  --ui-backdrop: rgba(8, 5, 3, 0.66);
  --ui-overlay: rgba(12, 9, 7, 0.92);
  --ui-shadow-soft: rgba(0, 0, 0, 0.36);
  --ui-shadow-subtle: rgba(0, 0, 0, 0.2);
  --ui-shadow-card: rgba(0, 0, 0, 0.4);
  --ui-surface-glass: var(--mzd-surface);
  --ui-surface-glass-strong: var(--mzd-surface);
  --ui-surface-wash: rgba(243, 233, 216, 0.06);
  --ui-surface-wash-soft: rgba(243, 233, 216, 0.03);
  --ui-success: var(--mzd-success);
  --ui-success-surface: var(--mzd-success-surface);
  --ui-success-border: var(--mzd-success-border);
  --ui-warning: var(--mzd-warning);
  --ui-warning-surface: var(--mzd-warning-surface);
  --ui-warning-border: var(--mzd-warning-border);
  --ui-danger: var(--mzd-danger);
  --ui-danger-surface: var(--mzd-danger-surface);
  --ui-danger-border: var(--mzd-danger-border);
  --ui-danger-border-hover: var(--mzd-danger);
  --ui-banner-default-bg: var(--mzd-surface);
  --ui-banner-default-text: var(--mzd-text);
  --ui-banner-border: var(--mzd-rule);
  --ui-banner-shadow: transparent;
  --ui-notification-dot: var(--mzd-red);
  --ui-notification-dot-muted: rgba(243, 233, 216, 0.26);
  --ui-selection-surface: rgba(243, 233, 216, 0.08);
  --ui-selection-surface-soft: rgba(243, 233, 216, 0.05);
  --ui-selection-ring: rgba(217, 184, 119, 0.3);
  --ui-selection-ring-soft: rgba(217, 184, 119, 0.2);
  --ui-selection-ring-muted: rgba(217, 184, 119, 0.24);
  --ui-selection-ring-strong: rgba(217, 184, 119, 0.5);
  --ui-selection-shadow: transparent;
  --ui-swatch-border: rgba(243, 233, 216, 0.3);
  --ui-swatch-border-strong: rgba(243, 233, 216, 0.45);
  --ui-swatch-inset: rgba(0, 0, 0, 0.2);
  --ui-swatch-inset-strong: rgba(0, 0, 0, 0.3);
  --ui-preview-object-surface: rgba(126, 170, 236, 0.12);
  --ui-preview-object-border: rgba(150, 190, 250, 0.55);
  --ui-preview-selection-surface: rgba(217, 184, 119, 0.2);
  --ui-preview-selection-border: rgba(217, 184, 119, 0.6);
  --ui-preview-hotspot-surface: rgba(126, 170, 236, 0.2);
  --ui-preview-hotspot-border: rgba(150, 190, 250, 0.55);
  --ui-preview-transparent-hit: rgba(255, 255, 255, 0.01);
  --ui-table-header-surface: var(--mzd-raised);
  --ui-table-row-surface: var(--mzd-surface);
  --ui-card-surface: var(--mzd-surface);
  --ui-card-border: var(--mzd-rule-solid);
  --ui-form-surface: var(--mzd-field);
  --ui-form-border: var(--mzd-gold);
  --ui-button-surface: var(--mzd-field);
  --ui-button-surface-hover: var(--mzd-raised);
  --ui-button-border: var(--mzd-gold);
  --ui-button-border-hover: var(--mzd-gold-bright);
  --ui-badge-surface: var(--mzd-warning-surface);
  --ui-badge-text: var(--mzd-warning);
  --ui-badge-border: var(--mzd-warning-border);
  --ui-chip-surface: var(--mzd-raised);
  --ui-chip-text: var(--mzd-muted);
  --ui-chip-border: var(--mzd-rule);
  --ui-symbol-hammer-sickle: var(--mzd-red);

  /* Bí danh cũ */
  --bg: var(--mzd-page);
  --page: var(--mzd-page);
  --text: var(--mzd-text);
  --card: var(--mzd-surface);
  --accent: var(--mzd-red-fill);
  --line: var(--mzd-rule-solid);
  --muted: var(--mzd-muted);
  --line-2: var(--mzd-rule);
  --bg-soft: var(--mzd-raised);
  --text-dim: var(--mzd-muted);
  --text-main: var(--mzd-strong);
  --danger: var(--mzd-danger);
  --danger-soft: var(--mzd-danger-surface);
  --danger-line: var(--mzd-danger-border);
  --report-text-dim: var(--mzd-muted);
  --report-line-soft: var(--mzd-rule);
  --report-surface: var(--mzd-surface);
  --compact-action-hover-surface-base: rgba(243, 233, 216, 0.06);
  --admin-panel-bg: var(--mzd-surface);

  /* Đầu trang, danh sách sách, banner, public v2 */
  --shared-header-surface: var(--mzd-page);
  --shared-header-surface-solid: var(--mzd-page);
  --shared-header-border-color: var(--mzd-rule);
  --shared-header-library-divider-color: var(--mzd-rule);
  --shared-header-hover-surface: var(--mzd-raised);
  --shared-header-action-color: var(--mzd-text);
  --shared-header-action-color-strong: var(--mzd-strong);
  --public-header-surface: var(--mzd-page);
  --topbar-surface: var(--mzd-page);
  --public-brand: var(--mzd-red);
  --public-brand-hover: var(--mzd-red-hover);
  --book-list-title-color: var(--mzd-text);
  --book-list-title-hover-color: var(--mzd-red);
  --book-list-author-color: var(--mzd-muted);
  --book-list-cta-color: var(--mzd-red);
  --book-list-cta-color-hover: var(--mzd-red-hover);
  --public-v2-canvas: var(--mzd-page);
  --public-v2-surface: var(--mzd-surface);
  --public-v2-surface-paper: var(--mzd-page);
  --public-v2-surface-muted: var(--mzd-raised);
  --public-v2-text-primary: var(--mzd-text);
  --public-v2-text-secondary: var(--mzd-muted);
  --public-v2-border: var(--mzd-rule-solid);
  --public-v2-brand: var(--mzd-red);
  --public-v2-brand-hover: var(--mzd-red-hover);
  --public-v2-focus-color: var(--mzd-focus);

}

/* D-255(f) «trình đọc không đổi»: nền than (D-255a) chỉ áp cho trang web. Trong trình đọc PDF (reader.html: body.flip-page[data-page-kind="reader"])
   và EPUB (reader_v2.html: body.epub-v2-reader-page) ghim lại ĐÚNG giá trị họ nâu cũ của các biến nền; mọi token dẫn xuất (--ui-*, --mz-*,
   --rm-*, --em-*) tự tính lại từ đây. Chỉ ghim biến nền; không sửa tệp trình đọc, không đụng bố cục, nút, tile hay watermark. */
html[data-mz-theme="dark"]:has(> body.flip-page[data-page-kind="reader"]),
html[data-mz-theme="dark"]:has(> body.epub-v2-reader-page) {
  background-color: #2a2119;
}

html[data-mz-theme="dark"] body.flip-page[data-page-kind="reader"]:not(.theme-quoc-tang):not(.theme-quoc-tang),
html[data-mz-theme="dark"] body.epub-v2-reader-page:not(.theme-quoc-tang):not(.theme-quoc-tang) {
  --mzd-page: #2a2119;
  --mzd-surface: #352a1f;
  --mzd-raised: #403326;
  --mzd-hover: #4a3c2d;
  --mzd-field: #221a13;
  --mzd-rule-solid: #54432f;
  --mzd-zebra: #2f251c;
}

/* Reader page palettes paint their own body; keep shared website tokens above. */
html[data-mz-theme="dark"] body:not(.theme-quoc-tang):not(.theme-quoc-tang):not([data-reader-theme]):not([data-epub-reader-theme]) {
  background: var(--mzd-page);
  color: var(--mzd-text);
}

/* Quản trị: bộ token --mz-* riêng của khung quản trị (bản sáng ở mục 0b). */
html[data-mz-theme="dark"] body:is(.page-admin-workspace, .page-account-workspace):not(.theme-quoc-tang) {
  --mz-red: var(--mzd-red);
  --mz-red-dark: var(--mzd-red-hover);
  --mz-red-fill: var(--mzd-red-fill);
  --mz-red-fill-hover: var(--mzd-red-fill-hover);
  --mz-red-wash: var(--mzd-red-wash);
  --mz-red-line: rgba(239, 138, 128, 0.45);
  --mz-paper: var(--mzd-page);
  --mz-paper-deep: var(--mzd-raised);
  --mz-card: var(--mzd-surface);
  --mz-ink: var(--mzd-text);
  --mz-ink-soft: var(--mzd-ink-soft);
  --mz-muted: var(--mzd-muted);
  --mz-gold: var(--mzd-gold);
  --mz-rule: var(--mzd-rule-solid);
  --mz-rule-mid: var(--mzd-gold);
  --mz-rule-strong: var(--mzd-gold);
  --mz-zebra: var(--mzd-zebra);
  --mz-hover: var(--mzd-hover);
  --mz-danger: var(--mzd-danger);
  --mz-focus: var(--mzd-focus);
  --mz-white: var(--mzd-field);
  --mz-on-red: var(--mzd-on-red);
  --mz-on-ink: var(--mzd-page);
  --mz-dropdown-rule: var(--mzd-gold);
  background: var(--mzd-page);
  color: var(--mzd-text);
}

/* Quốc tang ở chế độ tối: xám đen, không màu thương hiệu (chủ đề toàn trang vẫn được ưu tiên). */
html[data-mz-theme="dark"] body.theme-quoc-tang {
  --quoc-tang-page: #161616;
  --quoc-tang-page-soft: #1a1a1a;
  --quoc-tang-surface: #1f1f1f;
  --quoc-tang-elevated: #292929;
  --quoc-tang-elevated-hover: #323232;
  --quoc-tang-border: #3b3b3b;
  --quoc-tang-border-strong: #7a7a7a;
  --quoc-tang-text: #e4e4e4;
  --quoc-tang-text-strong: #f2f2f2;
  --quoc-tang-text-muted: #b4b4b4;
  --quoc-tang-text-soft: #a0a0a0;
  --quoc-tang-link: #eaeaea;
  --quoc-tang-link-hover: #ffffff;
  --quoc-tang-action-surface: #1f1f1f;
  --quoc-tang-action-surface-hover: #2c2c2c;
  --quoc-tang-action-border: #7a7a7a;
  --quoc-tang-action-border-strong: #a6a6a6;
  --quoc-tang-action-text: #eaeaea;
  --quoc-tang-banner-surface: #232323;
  --quoc-tang-banner-frame-surface: #262626;
  --quoc-tang-danger: #e6e6e6;
  --quoc-tang-danger-surface: #2a2a2a;
  --quoc-tang-danger-border: #6e6e6e;
  --quoc-tang-admin-text: #e2e2e2;
  --quoc-tang-admin-text-strong: #f4f4f4;
  --quoc-tang-admin-text-muted: #b2b2b2;
  --quoc-tang-admin-text-soft: #a2a2a2;
  --quoc-tang-admin-text-disabled: #8c8c8c;
  --quoc-tang-admin-surface: #1f1f1f;
  --quoc-tang-admin-surface-elevated: #272727;
  --quoc-tang-admin-surface-muted: #2a2a2a;
  --quoc-tang-admin-surface-hover: #333333;
  --quoc-tang-admin-border: #3f3f3f;
  --quoc-tang-admin-border-strong: #7c7c7c;
  --quoc-tang-admin-border-soft: #343434;
  --quoc-tang-admin-control-surface: #181818;
  --quoc-tang-admin-control-surface-hover: #262626;
  --quoc-tang-admin-status-surface: #2a2a2a;
  --quoc-tang-admin-status-border: #5a5a5a;
  --quoc-tang-admin-status-text: #e4e4e4;
  --ui-accent: #d6d6d6;
  --ui-accent-hover: #f0f0f0;
  --ui-accent-muted: #9a9a9a;
  --ui-on-accent: #161616;
  --ui-success: #e0e0e0;
  --ui-success-surface: #2a2a2a;
  --ui-warning: #e0e0e0;
  --ui-warning-surface: #2a2a2a;
  --ui-backdrop: rgba(0, 0, 0, 0.66);
}

/* ------------------------------------------------------------------ */
/* 2. Phần tử chung: ô nhập, chọn, bảng — nền trắng viết cứng ở CSS gốc  */
/* ------------------------------------------------------------------ */
html[data-mz-theme="dark"] body:not(.theme-quoc-tang):not([data-reader-theme]):not([data-epub-reader-theme]) :where(
  input:not([type="checkbox"], [type="radio"], [type="range"], [type="color"], [type="file"], [type="submit"], [type="button"], [type="reset"], [type="image"], [type="hidden"]),
  select,
  textarea
) {
  border-color: var(--mzd-gold);
  background-color: var(--mzd-field);
  color: var(--mzd-text);
}

html[data-mz-theme="dark"] body:not(.theme-quoc-tang):not([data-reader-theme]):not([data-epub-reader-theme]) :where(input, textarea)::placeholder {
  color: var(--mzd-soft);
  opacity: 1;
}

html[data-mz-theme="dark"] body:not(.theme-quoc-tang):not([data-reader-theme]):not([data-epub-reader-theme]) :where(input[type="checkbox"], input[type="radio"], input[type="range"], progress) {
  accent-color: var(--mzd-red-fill);
}

html[data-mz-theme="dark"] body :where(option, optgroup) {
  background-color: var(--mzd-field, #1f1f1f);
  color: var(--mzd-text, #e4e4e4);
}

html[data-mz-theme="dark"] ::selection {
  background: rgba(217, 184, 119, 0.35);
  color: inherit;
}

/* ------------------------------------------------------------------ */
/* 3. Trang công khai                                                   */
/* ------------------------------------------------------------------ */
/* Nút "Mở sách" (chi tiết): nền đỏ đặc, chữ kem. */
html[data-mz-theme="dark"] body:not(.theme-quoc-tang):not(.theme-quoc-tang) .detail-action-btn--read {
  --detail-action-bg: var(--mzd-red-fill);
  --detail-action-bg-hover: var(--mzd-red-fill-hover);
  --detail-action-border: var(--mzd-red-fill);
  --detail-action-border-hover: var(--mzd-red-fill-hover);
  --detail-action-text: var(--mzd-on-red);
}

/* Banner: màu cấu hình hoà vào nền đêm (giữ sắc độ), trống đồng mờ, chữ kem. */
html[data-mz-theme="dark"] body:not(.theme-quoc-tang):not(.theme-quoc-tang) .st-public-banner-band .st-public-banner__surface.st-public-banner__surface {
  --st-public-banner-surface-bg: color-mix(in srgb, var(--st-public-banner-config-bg, var(--mzd-surface)) 16%, var(--mzd-page));
  --st-public-banner-text-color: var(--mzd-text);
  --st-public-banner-title-color: var(--mzd-strong);
  --st-public-banner-muted-color: var(--mzd-muted);
  --st-public-banner-action-color: var(--mzd-text);
  --st-public-banner-action-border-color: var(--mzd-gold);
  --st-public-banner-action-hover-color: var(--mzd-strong);
  --st-public-banner-action-border-hover-color: var(--mzd-gold-bright);
  --st-public-banner-layer-opacity: 0.06;
}

/* Màu tự động lấy từ bìa (D-059): phủ một lớp màu đêm (--st-public-banner-field-dark-veil-opacity)
   để chữ kem luôn đủ tương phản, kể cả trên điểm sáng nhất của trường màu. */
html[data-mz-theme="dark"] body:not(.theme-quoc-tang) .st-public-banner__surface--field::before {
  content: "";
  position: absolute;
  inset: 0;
  z-index: 0;
  pointer-events: none;
  background: var(--mzd-page);
  opacity: var(--st-public-banner-field-dark-veil-opacity);
}

@media (prefers-contrast: more), (prefers-reduced-transparency: reduce) {
  html[data-mz-theme="dark"] body:not(.theme-quoc-tang) .st-public-banner-band .st-public-banner__surface--field::before {
    content: none;
  }
}

html[data-mz-theme="dark"] body:not(.theme-quoc-tang):not(.theme-quoc-tang) .st-public-banner-band .st-public-banner-slider.st-public-banner-slider {
  --st-public-banner-dot-color: var(--mzd-muted);
  --st-public-banner-dot-active-color: var(--mzd-strong);
  --st-public-banner-dot-hover-color: var(--mzd-text);
}

/* Tin tức (news v2): token riêng + vài chữ #333 viết cứng. */
html[data-mz-theme="dark"] body.news-v2-shell:not(.theme-quoc-tang):not(.theme-quoc-tang) {
  --news-v2-text: var(--mzd-text);
  --news-v2-muted: var(--mzd-muted);
  --news-v2-soft: var(--mzd-soft);
  --news-v2-divider: var(--mzd-rule-solid);
  --news-v2-paper: var(--mzd-page);
}

html[data-mz-theme="dark"] body.news-v2-shell:not(.theme-quoc-tang) :is(
  .news-v2-article-dek, .news-v2-story-summary, .news-v2-blog-masthead p, .news-v2-latest-dek,
  .news-v2-rail-link, .news-v2-book-item h3, .news-v2-book-author, .news-v2-editor-note, .news-v2-related p
) {
  color: var(--mzd-muted);
}

html[data-mz-theme="dark"] body.news-v2-shell:not(.theme-quoc-tang) .news-v2-latest-meta {
  color: var(--mzd-soft);
}

html[data-mz-theme="dark"] body.news-v2-shell:not(.theme-quoc-tang) .news-v2-front-image {
  background: var(--mzd-raised);
}

/* Tra cứu toàn văn: ô chọn và ô năm dùng bảng màu tối của trình duyệt, mũi tên chọn màu kem. */
html[data-mz-theme="dark"] body:not(.theme-quoc-tang) .library-search-shell {
  --library-search-select-chevron-color: var(--mzd-text);
  color-scheme: dark;
}

html[data-mz-theme="dark"] body:not(.theme-quoc-tang) .library-search-field input[type="number"] {
  color-scheme: dark;
}

/* Nút hiện/ẩn mật khẩu (đăng ký, đặt lại mật khẩu). */
html[data-mz-theme="dark"] body:not(.theme-quoc-tang) .password-toggle-btn.password-toggle-btn {
  border-color: var(--mzd-gold);
  background: var(--mzd-field);
  color: var(--mzd-text);
}

/* Trang chủ, khối "Giới thiệu sách hay" (public_magazine.css mục 15).
   A · Dải đỏ: khung kem quanh bìa dịu xuống màu chữ phụ (không loá trên dải đỏ đêm), chỉ vàng mờ hơn.
   B · Trang bìa tạp chí: khung bìa là nền nổi, bóng bìa đậm hơn để còn thấy mép trên nền tối. */
html[data-mz-theme="dark"] body:not(.theme-quoc-tang):not(.theme-quoc-tang) .mz-pick-band {
  --mz-pick-frame: var(--mzd-muted);
  --mz-pick-rule: color-mix(in srgb, var(--mzd-gold-bright) 45%, var(--mzd-band));
}

html[data-mz-theme="dark"] body:not(.theme-quoc-tang) .mz-pick-frame {
  background: var(--mzd-raised);
}

html[data-mz-theme="dark"] body:not(.theme-quoc-tang) .mz-pick-frame img {
  box-shadow: 0 16px 28px -18px rgba(0, 0, 0, 0.8);
}

/* Trang chủ, "Khối chia cột" (public_magazine.css mục 16).
   Tấm nền: nền mặt / nền nổi của giao diện tối (không pha vàng, khỏi ngả nâu). Dải tiêu đề "Đỏ sẫm":
   sáng hơn dải đêm chung một bậc để còn thấy mép dải trên nền trang và trên tấm nền; chữ kem / vàng
   giữ tương phản ≥ 7:1. Kẻ vàng giữa cột và kẻ đỏ đầu tấm dùng token tối sẵn có. */
html[data-mz-theme="dark"] body:not(.theme-quoc-tang):not(.theme-quoc-tang) .mz-cols {
  --mz-cols-panel-light: var(--mzd-surface);
  --mz-cols-panel-deep: var(--mzd-raised);
  --mz-cols-band: var(--mzd-band);
}

/* Form quản trị "Khối chia cột" (admin_homepage.css, mục 18 cũ của admin_magazine.css): mẫu màu "Đỏ sẫm" khớp dải tiêu đề tối ở trên. */
html[data-mz-theme="dark"] body.page-admin-workspace:not(.theme-quoc-tang) .homepage-columns-section {
  --homepage-columns-band: var(--mzd-band);
}

/* ------------------------------------------------------------------ */
/* 4. Menu thả xuống ở đầu trang: "Tủ sách", "Quản trị" (☭), "Tìm kiếm"  */
/*    và menu điện thoại dùng CHUNG một kiểu ở mọi trang.                */
/*    Nền giấy, nhãn nhóm đỏ chữ đứng giãn chữ, mục chữ có chân 16px đậm,  */
/*    hàng gọn (cách 8px), kẻ đáy 2px màu mực. Sáng và tối cùng token.     */
/* ------------------------------------------------------------------ */
html body .shared-header .topbar-library-group:has(> .topbar-categories-empty):not(.topbar-library-group--categories),
html body .shared-header-shell .topbar-library-groups--mobile .topbar-library-group:not(:has(li)) {
  display: none;
}

html body .shared-header .topbar-library-group::before,
html body .shared-header-shell .topbar-library-groups--mobile .topbar-library-group::before {
  content: attr(aria-label);
  display: block;
  margin: 0 0 8px;
  color: var(--mz-red, #8f131a);
  font-family: var(--mz-condensed, "Roboto Condensed", "Arial Narrow", Arial, sans-serif);
  font-size: 12px;
  font-weight: 700;
  letter-spacing: 0.16em;
  line-height: 1.3;
  text-transform: uppercase;
}

@media (min-width: 1025px) {
  /* Khối định vị là vùng đệm của thanh (không gồm đường kẻ đỏ 2px) nên cộng thêm 2px. */
  html body .shared-header .topbar-categories-dropdown.shared-header__dropdown {
    top: calc(100% + 2px);
    z-index: 210;
    border-bottom: 2px solid var(--mz-dropdown-rule, var(--mz-ink, #231a14));
    background: var(--mz-paper, #fbf7ef);
    box-shadow: 0 14px 24px -18px rgba(35, 26, 20, 0.5);
  }

  html body .shared-header .topbar-categories-panel .topbar-categories-panel-inner.topbar-categories-panel-inner {
    border-top: 0;
    background: transparent;
  }

  html body .shared-header .topbar-library-groups,
  html body .shared-header .topbar-nav-item-editor .topbar-categories-desktop-groups.topbar-categories-desktop-groups {
    padding-block: 6px 10px;
  }

  html body .shared-header-shell .shared-header .topbar-library-panel .topbar-library-group:has(> .topbar-categories-empty) + .topbar-library-group--categories {
    margin-top: 0;
    padding-top: 0;
    border-top: 0;
  }

  /* Quản trị: giữ 4 cột theo nhóm, nhịp hàng như Tủ sách. */
  html body .shared-header .topbar-nav-item-editor .topbar-categories-desktop-groups.topbar-categories-desktop-groups {
    gap: 8px 32px;
  }

  html body .shared-header .topbar-nav-item-editor .topbar-category-group.topbar-category-group {
    gap: 0;
  }

  html body .shared-header .topbar-nav-item-editor .topbar-categories-desktop-group-head.topbar-categories-desktop-group-head {
    margin: 0 0 8px;
    padding: 0;
    border: 0;
  }

  html body .shared-header .topbar-nav-item-editor .topbar-category-group-title.topbar-category-group-title {
    display: block;
    width: auto;
    margin: 0;
    padding: 0;
    border: 0;
    color: var(--mz-red, #8f131a);
    font-family: var(--mz-condensed, "Roboto Condensed", "Arial Narrow", Arial, sans-serif);
    font-size: 12px;
    font-weight: 700;
    letter-spacing: 0.16em;
    line-height: 1.3;
    text-transform: uppercase;
  }

  html body .shared-header .topbar-nav-item-editor .topbar-category-group-links.topbar-category-group-links {
    gap: 8px;
  }

  html body .shared-header-shell .shared-header :is(.topbar-library-panel .topbar-library-list, .topbar-nav-item-editor .topbar-category-group-links) .topbar-category-link.topbar-category-link,
  html body .shared-header-shell .shared-header :is(.topbar-library-panel .topbar-library-list, .topbar-nav-item-editor .topbar-category-group-links) .topbar-category-link .topbar-category-link-name.topbar-category-link-name {
    min-height: 0;
    padding: 0;
    border: 0;
    color: var(--mz-ink, #231a14);
    font-family: var(--mz-serif, "Merriweather", Georgia, "Times New Roman", serif);
    font-size: 16px;
    font-weight: 700;
    line-height: 1.7;
    letter-spacing: 0;
    opacity: 1;
  }

  html body .shared-header-shell .shared-header :is(.topbar-library-panel .topbar-library-list, .topbar-nav-item-editor .topbar-category-group-links) .topbar-category-link.topbar-category-link:is(:hover, :focus-visible, [aria-current="page"]),
  html body .shared-header-shell .shared-header :is(.topbar-library-panel .topbar-library-list, .topbar-nav-item-editor .topbar-category-group-links) .topbar-category-link:is(:hover, :focus-visible, [aria-current="page"]) .topbar-category-link-name.topbar-category-link-name {
    color: var(--mz-red, #8f131a);
  }
}

/* Menu điện thoại (mọi trang): một kiểu tiêu đề nhóm, một kiểu mục; mở ra không nhấp nháy mờ.
   Chuyển từ public_magazine.css 13.4 để trang quản trị/tài khoản dùng cùng kiểu. */
@media (max-width: 1024px) {
  /* Lớp phủ hiện đục ngay (không mờ dần qua nửa giây); chỉ nội dung bảng trượt xuống. */
  html body .shared-header-shell .topbar-mobile-domains.topbar-mobile-domains {
    transition: none;
  }

  html body .shared-header-shell .topbar-mobile-domains.topbar-mobile-domains:is([data-mobile-menu-state="opening"], [data-mobile-menu-state="open"], [data-mobile-menu-state="closing"]) {
    opacity: 1;
    transition-delay: 0s;
  }

  html body .shared-header-shell .topbar-mobile-domains .topbar-mobile-domains-panel.topbar-mobile-domains-panel {
    opacity: 1;
    background: var(--mz-paper, #fbf7ef);
  }

  html body .shared-header-shell .topbar-mobile-domains .topbar-mobile-shell-close.topbar-mobile-shell-close {
    opacity: 1;
  }

  html body .shared-header-shell .topbar-mobile-domains .topbar-mobile-group .topbar-mobile-group-label.topbar-mobile-group-label {
    margin: 0 0 6px;
    color: var(--mz-red, #8f131a);
    font-family: var(--mz-condensed, "Roboto Condensed", "Arial Narrow", Arial, sans-serif);
    font-size: 12px;
    font-weight: 700;
    letter-spacing: 0.16em;
  }

  html body .shared-header-shell .topbar-mobile-domains .topbar-mobile-group + .topbar-mobile-group {
    margin-top: 28px;
    padding-top: 0;
    border-top: 0;
  }

  /* Mục chính và mục tài khoản cùng một kiểu: chữ có chân 18px, kẻ mảnh dưới, cao 48px. */
  html body .shared-header-shell .topbar-mobile-domains .topbar-mobile-primary-item .topbar-mobile-primary-toggle.topbar-mobile-primary-toggle,
  html body .shared-header-shell .topbar-mobile-domains .topbar-mobile-primary-item .topbar-mobile-primary-link.topbar-mobile-primary-link,
  html body .shared-header-shell .topbar-mobile-domains .topbar-mobile-auth-block .topbar-mobile-secondary-link.topbar-mobile-secondary-link {
    display: flex;
    align-items: center;
    min-height: 48px;
    padding: 4px 0;
    color: var(--mz-ink, #231a14);
    font-family: var(--mz-serif, "Merriweather", Georgia, "Times New Roman", serif);
    font-size: 18px;
    font-weight: 700;
    letter-spacing: 0;
    line-height: 1.3;
    text-transform: none;
  }

  html body .shared-header-shell .topbar-mobile-domains .topbar-mobile-auth-block.topbar-mobile-auth-block {
    display: grid;
    gap: 0;
  }

  html body .shared-header-shell .topbar-mobile-domains .topbar-mobile-auth-block .topbar-mobile-secondary-link.topbar-mobile-secondary-link {
    border-bottom: 1px solid var(--mz-rule, rgba(35, 26, 20, 0.2));
  }

  html body .shared-header-shell .topbar-mobile-domains .topbar-mobile-primary-item .topbar-mobile-primary-link.topbar-mobile-primary-link[aria-current="page"] {
    color: var(--mz-red, #8f131a);
  }

  /* Mục con trong "Tủ sách": chữ có chân thường, thụt vào, có tiêu đề nhóm nhỏ. */
  html body .shared-header-shell .topbar-mobile-domains .topbar-library-groups--mobile {
    display: grid;
    gap: 14px;
    padding: 4px 0 14px 14px;
    border-left: 2px solid var(--mz-red, #8f131a);
    margin-left: 2px;
  }

  html body .shared-header-shell .topbar-mobile-domains .topbar-library-groups--mobile .topbar-library-group.topbar-library-group {
    margin-top: 0;
    padding-top: 0;
    border-top: 0;
  }

  html body .shared-header-shell .topbar-mobile-domains .topbar-categories-mobile-list.topbar-categories-mobile-list {
    gap: 0;
    padding: 0;
  }

  html body .shared-header-shell .topbar-mobile-domains .topbar-mobile-category-link.topbar-mobile-category-link {
    min-height: 40px;
    padding: 4px 0;
    color: var(--mz-ink, #231a14);
    font-family: var(--mz-serif, "Merriweather", Georgia, "Times New Roman", serif);
    font-size: 16px;
    font-weight: 400;
  }

  html body .shared-header-shell .topbar-mobile-domains .topbar-mobile-category-link.topbar-mobile-category-link[aria-current="page"] {
    color: var(--mz-red, #8f131a);
  }

  /* Nút hỏi đáp nằm dưới/ẩn khi menu điện thoại đang mở. */
  html body:has(.topbar-mobile-domains:is([data-mobile-menu-state="opening"], [data-mobile-menu-state="open"], [data-mobile-menu-state="closing"])) .book-qa-messenger.is-minimized {
    visibility: hidden;
  }
}

/* Menu điện thoại: mục con "Quản trị" cùng kiểu mục con "Tủ sách"
   (thụt vào, kẻ đỏ bên trái, nhãn nhóm đỏ, mục chữ có chân 16px). */
@media (max-width: 1024px) {
  html body .shared-header-shell .topbar-mobile-domains .topbar-mobile-primary-item--admin > .topbar-mobile-primary-panel:not([hidden]) {
    padding: 4px 0 14px 14px;
    margin-left: 2px;
    border-left: 2px solid var(--mz-red, #8f131a);
  }

  html body .shared-header-shell .topbar-mobile-domains .topbar-mobile-primary-item--admin .topbar-mobile-group.topbar-mobile-group {
    margin: 0;
    padding: 0;
    border: 0;
  }

  html body .shared-header-shell .topbar-mobile-domains .topbar-mobile-primary-item--admin .topbar-mobile-group.topbar-mobile-group + .topbar-mobile-group {
    margin-top: 14px;
    padding-top: 0;
    border-top: 0;
  }

  html body .shared-header-shell .topbar-mobile-domains .topbar-mobile-primary-item--admin .topbar-mobile-group .topbar-mobile-group-label.topbar-mobile-group-label {
    margin: 0 0 8px;
    padding: 0;
    border: 0;
    color: var(--mz-red, #8f131a);
    font-family: var(--mz-condensed, "Roboto Condensed", "Arial Narrow", Arial, sans-serif);
    font-size: 12px;
    font-weight: 700;
    letter-spacing: 0.16em;
    line-height: 1.3;
    text-transform: uppercase;
  }

  html body .shared-header-shell .topbar-mobile-domains :is(.topbar-mobile-primary-item--admin, .topbar-mobile-primary-item--library) .topbar-mobile-category-list.topbar-mobile-category-list {
    gap: 0;
    padding: 0;
  }

  html body .shared-header-shell .topbar-mobile-domains :is(.topbar-mobile-primary-item--admin, .topbar-mobile-primary-item--library) .topbar-mobile-category-link.topbar-mobile-category-link {
    display: flex;
    align-items: center;
    min-height: 40px;
    padding: 4px 0;
    border: 0;
    color: var(--mz-ink, #231a14);
    font-family: var(--mz-serif, "Merriweather", Georgia, "Times New Roman", serif);
    font-size: 16px;
    font-weight: 400;
    letter-spacing: 0;
    text-transform: none;
  }

  html body .shared-header-shell .topbar-mobile-domains :is(.topbar-mobile-primary-item--admin, .topbar-mobile-primary-item--library) .topbar-mobile-category-link.topbar-mobile-category-link[aria-current="page"] {
    color: var(--mz-red, #8f131a);
  }
}

/* Bảng tìm kiếm (kính lúp): cùng kiểu với "Tủ sách" — nền giấy, kẻ đáy màu mực, nhãn "Lối tắt"
   đỏ chữ đứng giãn chữ, lối tắt chữ có chân; ô tìm chữ có chân, kẻ chân chỉ vàng, focus kẻ đỏ. */
html body .shared-header .topbar-slot-search .topbar-search-dropdown.topbar-search-dropdown {
  top: calc(100% + 2px);
  border-top: 0;
  border-bottom: 2px solid var(--mz-dropdown-rule, var(--mz-ink, #231a14));
  background: var(--mz-paper, #fbf7ef);
}

@media (min-width: 1025px) {
  html body .shared-header .topbar-slot-search .topbar-search-dropdown.topbar-search-dropdown {
    box-shadow: 0 14px 24px -18px rgba(35, 26, 20, 0.5);
  }
}

html body .shared-header .topbar-search-panel .topbar-search-panel-inner.topbar-search-panel-inner {
  background: transparent;
}

html body .shared-header .topbar-search-panel .topbar-search-form.topbar-search-form {
  border-bottom: 1px solid var(--mz-gold, #b08d4a);
  background: transparent;
  box-shadow: none;
}

html body .shared-header .topbar-search-panel .topbar-search-form.topbar-search-form:has(.topbar-search-input:focus) {
  border-bottom-color: var(--mz-red, #8f131a);
  box-shadow: inset 0 -1px 0 var(--mz-red, #8f131a);
}

html body .shared-header .topbar-search-panel .topbar-search-leading.topbar-search-leading {
  color: var(--mz-ink, #231a14);
}

html body .shared-header .topbar-search-panel .topbar-search-input.topbar-search-input {
  background: transparent;
  color: var(--mz-ink, #231a14);
  font-family: var(--mz-serif, "Merriweather", Georgia, "Times New Roman", serif);
  letter-spacing: 0;
}

html body .shared-header .topbar-search-panel .topbar-search-input.topbar-search-input::placeholder {
  color: var(--mz-muted, #6b5d4f);
  font-family: var(--mz-serif, "Merriweather", Georgia, "Times New Roman", serif);
  opacity: 1;
}

/* Vòng focus của ô tìm nằm ở kẻ chân (đỏ, 2px) thay cho viền quanh ô. */
html body .shared-header .topbar-search-panel .topbar-search-input.topbar-search-input:focus-visible {
  outline: none !important;
}

html body .shared-header .topbar-search-panel .topbar-search-meta.topbar-search-meta {
  color: var(--mz-muted, #6b5d4f);
  font-family: var(--mz-serif, "Merriweather", Georgia, "Times New Roman", serif);
  font-size: 14px;
  font-style: italic;
}

html body .shared-header .topbar-search-panel .topbar-search-shortcuts.topbar-search-shortcuts {
  gap: 0;
  padding-top: 6px;
}

html body .shared-header .topbar-search-panel .topbar-search-shortcuts-label.topbar-search-shortcuts-label {
  margin: 0 0 8px;
  color: var(--mz-red, #8f131a);
  font-family: var(--mz-condensed, "Roboto Condensed", "Arial Narrow", Arial, sans-serif);
  font-size: 12px;
  font-weight: 700;
  letter-spacing: 0.16em;
  line-height: 1.3;
  text-transform: uppercase;
}

html body .shared-header .topbar-search-panel .topbar-search-shortcuts-list.topbar-search-shortcuts-list {
  gap: 8px 32px;
}

html body .shared-header .topbar-search-panel .topbar-search-shortcuts-link.topbar-search-shortcuts-link {
  min-height: 0;
  padding: 0;
  border: 0;
  color: var(--mz-ink, #231a14);
  font-family: var(--mz-serif, "Merriweather", Georgia, "Times New Roman", serif);
  font-size: 16px;
  font-weight: 700;
  line-height: 1.7;
  letter-spacing: 0;
}

html body .shared-header .topbar-search-panel .topbar-search-shortcuts-link.topbar-search-shortcuts-link:is(:hover, :focus-visible, [aria-current="page"]) {
  border: 0;
  color: var(--mz-red, #8f131a);
}

@media (max-width: 1024px) {
  html body .shared-header .topbar-search-panel .topbar-search-shortcuts-list.topbar-search-shortcuts-list {
    display: grid;
    gap: 0;
  }

  html body .shared-header .topbar-search-panel .topbar-search-shortcuts-link.topbar-search-shortcuts-link {
    display: flex;
    align-items: center;
    min-height: 40px;
    padding: 4px 0;
    font-size: 16px;
    font-weight: 400;
  }
}

html[data-mz-theme="dark"] body:not(.theme-quoc-tang):not([data-reader-theme]):not([data-epub-reader-theme]) :is(
  button:not([class]),
  .tool-download-link,
  .reset-link-open,
  .auth-link-box a,
  .watermark-library-dim,
  .interactive-selected-preview-tab:not(.is-active),
  .interactive-multi-anchor-btn,
  .interactive-page-slot.is-active .interactive-page-slot-badge
) {
  color: var(--mzd-on-red);
}

html[data-mz-theme="dark"] body:not(.theme-quoc-tang):not([data-reader-theme]):not([data-epub-reader-theme]) :is(
  .interactive-selected-preview-tab.is-active
) {
  border-color: var(--mzd-text);
  background: var(--mzd-text);
  color: var(--mzd-page);
}

/* Hình thu nhỏ kiểu "Dải đỏ" ở thẻ chọn kiểu (sửa khối trang chủ): màu dải đêm quá tối, gần như
   lẫn vào nền; dùng đỏ nút (--mzd-red-fill) cho dải và vàng sáng cho bìa để đọc được hình. */
html[data-mz-theme="dark"] body.page-admin-workspace:not(.theme-quoc-tang) .homepage-featured-thumb__band {
  border-top-color: var(--mzd-gold-bright);
  background: var(--mzd-red-fill);
}

html[data-mz-theme="dark"] body.page-admin-workspace:not(.theme-quoc-tang) .homepage-featured-thumb--red-band .homepage-featured-thumb__cover {
  background: var(--mzd-gold-bright);
}

/* ------------------------------------------------------------------ */
/* 5b. D-256: nền tối đổi đường viền/đường kẻ ĐỎ sang vàng đồng tối        */
/*     (--mzd-gold = color.toi.gold). Chỉ đổi MÀU; độ dày, kiểu, vị trí    */
/*     giữ y như nền sáng. Không đổi nền đỏ (banner, band, chân trang),    */
/*     nút son, chữ son, logo, huân chương. Quốc tang giữ nguyên.          */
/* ------------------------------------------------------------------ */
/* Đường dưới măng-sét (dải đỏ giữa hai chỉ vàng): chỉ đổi màu dải. */
html[data-mz-theme="dark"] body:not(.theme-quoc-tang):not(.theme-quoc-tang) .public-masthead.public-masthead::after {
  background: var(--mzd-gold);
}

/* Đường dưới thanh menu (máy tính và điện thoại). */
html[data-mz-theme="dark"] body:not(.theme-quoc-tang):not(.theme-quoc-tang) .shared-header-shell > .topbar.shared-header.shared-header,
html[data-mz-theme="dark"] body:not(.theme-quoc-tang):not(.theme-quoc-tang) .shared-header-shell .topbar-mobile-shell-header.topbar-mobile-shell-header {
  border-bottom-color: var(--mzd-gold);
}

/* Đường đôi trên tiêu đề mục và tiêu đề cột (chỉ đổi màu vạch trên; vạch mảnh vốn đã là vàng). */
html[data-mz-theme="dark"] body:not(.theme-quoc-tang):not(.theme-quoc-tang) .mz-section-head,
html[data-mz-theme="dark"] body:not(.theme-quoc-tang):not(.theme-quoc-tang) .mz-cols__head {
  border-top-color: var(--mzd-gold);
}

/* Viền trên chân trang (nền band đỏ sẫm giữ nguyên). */
html[data-mz-theme="dark"] body:not(.theme-quoc-tang):not(.theme-quoc-tang) .public-footer-v2.public-footer-v2 {
  border-top-color: var(--mzd-gold);
}

/* Viền trên panel trợ lý. */
html[data-mz-theme="dark"] body:not(.theme-quoc-tang):not(.theme-quoc-tang) .book-qa-messenger .book-qa-messenger__panel {
  border-top-color: var(--mzd-gold);
}

/* Quản trị: các đường đỏ tương đương trong khung quản trị. */
html[data-mz-theme="dark"] body.page-admin-workspace:not(.theme-quoc-tang) .shared-header-shell > .topbar.shared-header,
html[data-mz-theme="dark"] body.page-admin-workspace:not(.theme-quoc-tang) .shared-header-shell .topbar-mobile-shell-header {
  border-bottom-color: var(--mzd-gold);
}

html[data-mz-theme="dark"] body:is(.page-admin-workspace, .page-account-workspace):not(.theme-quoc-tang) .admin-ui-head[data-mz-kicker],
html[data-mz-theme="dark"] body.page-admin-workspace:not(.theme-quoc-tang) :is([class*="-modal__dialog"], [class*="modal-dialog"], [class*="-dialog__panel"]),
html[data-mz-theme="dark"] body:is(.page-admin-workspace, .page-account-workspace):not(.theme-quoc-tang) .admin-ui-modal__dialog,
html[data-mz-theme="dark"] body.page-account-workspace:not(.theme-quoc-tang) .account-page .account-shell,
html[data-mz-theme="dark"] body.page-admin-workspace:not(.theme-quoc-tang) .homepage-featured-thumb__rule,
html[data-mz-theme="dark"] body.page-admin-workspace:not(.theme-quoc-tang) .admin-ui-page .admin-ui-card.homepage-admin-group--hero {
  border-top-color: var(--mzd-gold);
}

html[data-mz-theme="dark"] body:is(.page-admin-workspace, .page-account-workspace):not(.theme-quoc-tang) .admin-ui-page :is(.admin-ui-table, .forensics-table, .source-page-table) th,
html[data-mz-theme="dark"] body.page-admin-workspace:not(.theme-quoc-tang) .homepage-featured-thumb__rule {
  border-bottom-color: var(--mzd-gold);
}

/* ------------------------------------------------------------------ */
/* 5c. Tương phản AA: chữ và biểu tượng SON đặt trên nền `raised` / `hover`  */
/*     (menu thả, mục đang rê, ô chọn, tấm nền đậm) dùng `accent-pressed`    */
/*     (--mzd-red-hover = color.toi.accent-pressed #F5A79E): 5,65:1 trên     */
/*     raised #3E3D39 và 4,83:1 trên hover #484742. #EF8A80 chỉ 4,46:1 và    */
/*     3,82:1. Chỉ đổi màu chữ son; không đổi nền, không đổi token nền.      */
/* ------------------------------------------------------------------ */
html[data-mz-theme="dark"] body:not(.theme-quoc-tang) :is(
  .mz-cols--panel .mz-cols__col[data-tone="deep"],
  .mzp-menu .mzp-menu__item:is(:hover, :focus),
  .mzp-card .mzp-more-btn:is(:hover, [aria-expanded="true"]),
  .mzs-new:hover,
  .account-page .account-nav-link:is(:hover, :focus-visible),
  :is(.admin-ui-table, .forensics-table, .source-page-table) tbody tr:hover td
) {
  --mz-red: var(--mzd-red-hover);
  --ui-link: var(--mzd-red-hover);
}

/* ------------------------------------------------------------------ */
/* Reader palette attributes own the chrome; legacy rules apply before initialization. */
/* 6. Trình đọc: giao diện tối của trang web chỉ đổi "khung" (thanh trên,  */
/*    thanh công cụ, bảng phụ, nền quanh trang). Trang sách giữ màu của     */
/*    chế độ đọc đang chọn (Sáng/Dịu); chế độ "Tối" của trình đọc giữ nguyên. */
/*    Không đụng cách nạp trang (tile q1..q4), watermark hay JS.            */
/* ------------------------------------------------------------------ */
html[data-mz-theme="dark"] body.flip-page[data-page-kind="reader"]:not([data-reader-theme]):not(.eye-negative-mode) {
  --rm-surround: #241c15;
  --rm-paper: var(--mzd-surface);
  --rm-paper-deep: var(--mzd-raised);
  --rm-ink: var(--mzd-text);
  --rm-ink-soft: var(--mzd-ink-soft);
  --rm-muted: var(--mzd-muted);
  --rm-rule: rgba(243, 233, 216, 0.16);
  --rm-rule-strong: rgba(243, 233, 216, 0.32);
  --rm-page: var(--mzd-field);
  --rm-page-edge: var(--rm-surround);
  --rm-skeleton-line: rgba(243, 233, 216, 0.06);
  --rm-accent: var(--mzd-red);
  --rm-accent-dark: var(--mzd-red-hover);
  --rm-on-accent: var(--mzd-page);
  --rm-gold: var(--mzd-gold);
  --rm-hover: rgba(239, 138, 128, 0.12);
  background: var(--rm-surround);
  color: var(--rm-ink);
}

/* Chế độ đọc "Tối" dùng cùng màu nhấn đỏ với giao diện tối của trang. */
html[data-mz-theme="dark"] body.flip-page[data-page-kind="reader"]:not([data-reader-theme]).eye-negative-mode {
  --rm-accent: var(--mzd-red);
  --rm-accent-dark: var(--mzd-red-hover);
  --rm-on-accent: var(--mzd-page);
  --rm-hover: rgba(239, 138, 128, 0.12);
}

/* --rm-page ở trên là nền ô nhập/bảng phụ của khung; tờ sách chế độ "Dịu" vẫn giữ giấy sepia. */
html[data-mz-theme="dark"] body.flip-page[data-page-kind="reader"]:not([data-reader-theme]).eye-soft-mode:not(.eye-negative-mode) :is(.flip-sheet, .flip-sheet-grid) {
  background: #f7eedd;
}

html[data-mz-theme="dark"] body.flip-page[data-page-kind="reader"]:not([data-reader-theme]) .reader-toolbar .goto-wrap input {
  border: 0;
  background: transparent;
}



/* Trình đọc EPUB (/reader-v2): giao diện tối của trang đổi thanh trên, thanh công cụ dọc, bảng phụ,
   thanh trạng thái. Nội dung chương giữ chế độ đọc đang chọn (Sáng/Giấy/Tối). */
html[data-mz-theme="dark"] body.epub-v2-reader-page:not([data-epub-reader-theme]) {
  --em-red: var(--mzd-red);
  --em-paper: var(--mzd-surface);
  --shared-header-surface: var(--mzd-surface);
  --shared-header-surface-solid: var(--mzd-surface);
  --shared-header-border-color: rgba(243, 233, 216, 0.16);
  --shared-header-action-color: var(--mzd-muted);
  --shared-header-action-color-strong: var(--mzd-text);
  background: var(--mzd-page);
}

html[data-mz-theme="dark"] body.epub-v2-reader-page:not([data-epub-reader-theme]) .epub-v2-reader :is(
  .epub-v2-reader__rail,
  .epub-v2-reader__statusbar,
  .epub-v2-reader__side-panel,
  .epub-v2-reader__settings,
  .epub-v2-reader__search-surface,
  .epub-v2-reader__error
) {
  --epub-reader-page: var(--mzd-page);
  --epub-reader-panel: var(--mzd-surface);
  --epub-reader-panel-strong: var(--mzd-raised);
  --epub-reader-text: var(--mzd-text);
  --epub-reader-muted: var(--mzd-muted);
  --epub-reader-dim: var(--mzd-soft);
  --epub-reader-rule: rgba(243, 233, 216, 0.16);
  --epub-reader-accent: var(--mzd-red);
  --epub-reader-danger: #f29488;
}

html[data-mz-theme="dark"] body.epub-v2-reader-page:not([data-epub-reader-theme]) .epub-v2-reader[data-theme="dark"] {
  --epub-reader-accent: var(--mzd-red);
}

html[data-mz-theme="dark"] body.epub-v2-reader-page:not([data-epub-reader-theme]) .epub-v2-reader:not([data-theme="dark"]) .epub-v2-reader__rail {
  border-left: 1px solid var(--epub-reader-rule);
  background: var(--epub-reader-panel);
}

/* Dấu phân cách là chữ 19px: vàng sáng đạt ngưỡng 4.5:1 trên nền admin. */
html[data-mz-theme="dark"] body.page-admin-workspace:not(.theme-quoc-tang) .homepage-admin-group__dash {
  color: var(--mzd-gold-bright);
}
