/* Bắt buộc toàn bộ hệ thống sử dụng font Times New Roman chuẩn học thuật */
    * {
      font-family: "Times New Roman", Times, "Cambria", "Georgia", serif !important;
    }
    .custom-scroll::-webkit-scrollbar {
      width: 6px;
      height: 6px;
    }
    .custom-scroll::-webkit-scrollbar-thumb {
      background-color: #cbd5e1;
      border-radius: 4px;
    }

/* Keep the header steady while the page content enters and leaves. */
main {
  animation: page-enter 280ms ease-out both;
  transition: opacity 180ms ease, transform 180ms ease;
}
body.page-leaving main {
  animation: none;
  opacity: 0;
  transform: translateY(-8px);
  pointer-events: none;
}
.nav-link {
  position: relative;
  display: inline-flex;
  align-items: center;
  transition: color 180ms ease, background-color 180ms ease;
}
.nav-link::after {
  content: '';
  position: absolute;
  left: 12px;
  right: 12px;
  bottom: 2px;
  height: 2px;
  background: #1e3a8a;
  transform: scaleX(0);
  transition: transform 180ms ease;
}
.nav-link:hover::after,
.nav-link[aria-current="page"]::after { transform: scaleX(1); }
.nav-link[aria-current="page"] { color: #1e3a8a; }
.nav-link:focus-visible { outline: 2px solid #1e3a8a; outline-offset: 2px; }
@keyframes page-enter {
  from { opacity: 0; transform: translateY(10px); }
  to { opacity: 1; transform: translateY(0); }
}
@media (prefers-reduced-motion: reduce) {
  main, .nav-link, .nav-link::after { animation: none; transition: none; }
}
.book-cover { position: relative; overflow: hidden; }
.book-cover-image { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.book-cover:has(.book-cover-image) > div { visibility: hidden; }
#book-editor label { display: block; font-size: 14px; }
#book-editor input:not([type=checkbox]):not([type=hidden]), #book-editor select, #book-editor textarea {
 display: block; width: 100%; border: 1px solid #d6d3d1; border-radius: 4px; padding: 8px; margin-top: 4px;
}
#member-login label, #account-create label { display: block; font-size: 14px; }
#member-login input, #account-create input:not([type=checkbox]), #account-create select {
 display: block; width: 100%; border: 1px solid #d6d3d1; border-radius: 4px; padding: 10px; margin-top: 6px;
}
html.auth-required body { visibility: hidden; }
body[data-loading="true"] main { visibility: hidden; }
button:disabled { cursor: wait; opacity: .6; }
