/* ============================================================
   MOYU BOOKS — readability pass
   Loaded after the page styles. Raises the micro-type floor and
   gives small screens more breathing room without changing the
   overall editorial look.
   ============================================================ */

:root {
  --read-xs: 10.5px;
  --read-sm: 12px;
  --read-md: 13.5px;
  --read-lg: 15px;
}

body {
  font-size: 16px;
}

/* Shared small type */
.eyebrow {
  font-size: 12px;
  letter-spacing: 0.15em;
}

.text-link,
.section-heading-action,
.inline-link {
  font-size: 12.5px;
}

.btn {
  font-size: 14px;
}

.field label,
.form-label {
  font-size: 12.5px;
}

.input,
.select,
.textarea {
  font-size: 14px;
}

.form-help,
.help-text,
.field-help,
.form-note {
  font-size: 11.5px;
}

.toast {
  font-size: 13px;
}

/* Header / announcement */
.announcement-inner p {
  font-size: 12px;
}

.announcement-inner a {
  font-size: 12px;
}

.brand-type small {
  font-size: 8.5px;
  letter-spacing: 0.2em;
}

.main-nav a {
  font-size: 14.5px;
}

.main-nav a small {
  font-size: 9.5px;
}

.search-pill {
  font-size: 13px;
}

.search-pill kbd {
  font-size: 10px;
}

.header-login {
  font-size: 13.5px;
}

.login-short {
  display: none;
}

.mobile-nav-links a {
  font-size: 16px;
}

.mobile-nav-links small {
  font-size: 10px;
}

.mobile-theme-toggle strong {
  font-size: 14px;
}

.mobile-theme-toggle small {
  font-size: 11px;
}

/* Hero */
.hero-kicker .eyebrow {
  font-size: 12px;
}

.hero-kicker span:not(.eyebrow) {
  font-size: 11px;
}

.hero-subcopy {
  font-size: 16.5px;
  line-height: 1.9;
}

.hero-stat strong {
  font-size: 31px;
}

.hero-stat span {
  font-size: 11.5px;
}

.hero-issue {
  font-size: 11px;
}

.hero-float-quote span {
  font-size: 13.5px;
}

.hero-float-quote small {
  font-size: 10.5px;
}

.hero-float-live {
  font-size: 12px;
}

.hero-float-live span {
  font-size: 11.5px;
}

.hero-float-live strong {
  font-size: 12.5px;
}

.hero-float-rating small {
  font-size: 10.5px;
}

.hero-vertical {
  font-size: 9.5px;
}

/* Book covers */
.cover-category,
.cover-badge {
  font-size: 9.5px;
}

.cover-author {
  font-size: 10.5px;
}

.cover-brand {
  font-size: 8px;
}

/* Book cards */
.book-card-info h3 {
  font-size: 17.5px;
}

.book-card-author {
  font-size: 12.5px;
}

.book-card-foot {
  font-size: 11.5px;
}

.book-rating,
.editorial-feature .book-rating {
  font-size: 12px;
}

.book-serial {
  font-size: 10px;
}

.book-meta-dot {
  font-size: 10.5px;
}

/* Home sections */
.section-heading p {
  font-size: 14px;
}

.section-heading-action,
.section-heading-actions .text-link {
  font-size: 12.5px;
}

.campaign-copy strong {
  font-size: 12.5px;
}

.campaign-copy small {
  font-size: 11px;
}

.tabs button {
  font-size: 12.5px;
}

/* Editorial */
.editorial-feature-label,
.editorial-mini-label {
  font-size: 11px;
}

.editorial-feature-author {
  font-size: 12.5px;
}

.editorial-quote {
  font-size: 17px;
}

.editorial-meta,
.editorial-mini-foot {
  font-size: 11.5px;
}

.editorial-mini h3 {
  font-size: 18px;
}

.editorial-mini p {
  font-size: 12px;
}

/* Ranking */
.rank-list strong,
.rank-title {
  font-size: 14px;
}

.rank-list small,
.rank-author {
  font-size: 11.5px;
}

.rank-heat {
  font-size: 10.5px;
}

/* Categories / authors */
.category-tile p {
  font-size: 12px;
}

.category-tile h3 {
  font-size: 21px;
}

.category-index {
  font-size: 10.5px;
}

.category-en {
  font-size: 9.5px;
}

.author-quote {
  font-size: 18.5px;
}

.author-bio,
.author-card p {
  font-size: 12.5px;
}

.author-meta {
  font-size: 11px;
}

/* Membership band */
.membership-band-copy p {
  font-size: 14px;
}

.membership-perks span {
  font-size: 12px;
}

/* Footer */
.footer-columns a,
.footer-columns p,
.footer-subscribe p {
  font-size: 12px;
}

.footer-bottom,
.footer-bottom-center {
  font-size: 11.5px;
}

.footer-tagline {
  font-size: 20px;
}

/* Auth pages */
.auth-art-index {
  font-size: 9.5px;
}

.auth-art-quote {
  font-size: 13px;
}

.auth-card p,
.auth-note {
  font-size: 12.5px;
}

.auth-tabs button {
  font-size: 13px;
}

.demo-account-body strong {
  font-size: 11.5px;
}

.demo-account-body small,
.demo-account > span:last-child {
  font-size: 10px;
}

.auth-footer {
  font-size: 11.5px;
}

.auth-switch {
  font-size: 12px;
}

/* Detail / chapters / reviews */
.detail-kicker .eyebrow {
  font-size: 11px;
}

.detail-kicker .chip {
  font-size: 10.5px;
}

.detail-author-line,
.detail-meta {
  font-size: 12.5px;
}

.detail-stat span {
  font-size: 10.5px;
}

.detail-progress-note {
  font-size: 11.5px;
}

.detail-tags a,
.detail-tag {
  font-size: 11px;
}

.detail-tab,
.chapter-section-head span {
  font-size: 10.5px;
}

.chapter-index {
  font-size: 11.5px;
}

.chapter-row-title {
  font-size: 14px;
}

.chapter-row-meta,
.chapter-lock {
  font-size: 10.5px;
}

.review-author strong {
  font-size: 13px;
}

.review-author small,
.review-time {
  font-size: 10.5px;
}

.review-body {
  font-size: 14px;
}

.review-actions {
  font-size: 10.5px;
}

.review-compose-head strong {
  font-size: 13px;
}

.review-compose textarea {
  font-size: 14px;
}

.review-compose-foot {
  font-size: 10.5px;
}

.detail-recommend-head .text-link {
  font-size: 11px;
}

.side-card-label {
  font-size: 10px;
}

.side-card p,
.author-side-bio,
.side-member p {
  font-size: 12px;
}

.side-book-row-text small {
  font-size: 10.5px;
}

.side-member-price,
.side-member-foot {
  font-size: 10.5px;
}

/* Bookshelf */
.shelf-user p {
  font-size: 12px;
}

.shelf-extra-en,
.shelf-extra-quote small {
  font-size: 9.5px;
}

.shelf-extra p,
.shelf-extra-quote p {
  font-size: 11.5px;
}

/* Wallet */
.wallet-balance span {
  font-size: 11.5px;
}

.wallet-yuan {
  font-size: 11px;
}

.wallet-badge {
  font-size: 10px;
}

.wallet-actions .btn {
  font-size: 12px;
}

.panel-head p {
  font-size: 11.5px;
}

.pack-card strong small,
.pack-card p,
.pack-price span {
  font-size: 10.5px;
}

.pack-card .pack-tag {
  font-size: 9.5px;
}

.pack-card .btn {
  font-size: 12.5px;
}

.promo-card p,
.promo-card-foot {
  font-size: 11.5px;
}

.transaction-body strong {
  font-size: 12.5px;
}

.transaction-body small,
.transaction-meta {
  font-size: 10.5px;
}

/* Payment modal */
.pay-amount small {
  font-size: 11px;
}

.pay-hint,
.pay-note,
.pay-tip {
  font-size: 11px;
}

.pay-actions .btn {
  font-size: 13px;
}

.pay-actions .cancel-link {
  font-size: 10.5px;
}

/* Membership page */
.membership-seal small {
  font-size: 8.5px;
}

.membership-seal .plan-en {
  font-size: 9.5px;
}

.plan-card .plan-desc,
.plan-card .plan-feature {
  font-size: 11.5px;
}

.plan-card .plan-price span {
  font-size: 10.5px;
}

.plan-card .btn {
  font-size: 13px;
}

.checkout-price span,
.checkout-note,
.coupon-row .btn {
  font-size: 11.5px;
}

.benefit-table-row {
  font-size: 11.5px;
}

.faq-question {
  font-size: 13px;
}

.faq-answer-inner {
  font-size: 12.5px;
}

/* Studio */
.studio-header p {
  font-size: 13px;
}

.studio-nav a,
.studio-side-label,
.chapter-admin-meta,
.studio-stat span {
  font-size: 11.5px;
}

.studio-chart-head span,
.studio-chart-legend {
  font-size: 10.5px;
}

/* ============================================================
   Admin console
   ============================================================ */

.admin-shell {
  font-size: 14px;
}

.admin-sidebar {
  font-size: 14px;
}

.admin-brand .brand-type small {
  font-size: 7.5px;
}

.admin-console-tag {
  font-size: 9.5px;
}

.admin-nav-label {
  font-size: 10.5px;
}

.admin-nav-item {
  font-size: 14px;
}

.admin-nav-item small {
  font-size: 10px;
}

.admin-nav-badge {
  font-size: 9.5px;
}

.admin-sidebar-foot,
.admin-sidebar-links {
  font-size: 11.5px;
}

.admin-sidebar-foot strong {
  font-size: 12px;
}

.admin-sidebar-foot small {
  font-size: 10px;
}

.admin-crumb {
  font-size: 11px;
}

.admin-crumb span {
  font-size: 10px;
}

.admin-crumb strong {
  font-size: 15px;
}

.admin-live {
  font-size: 10.5px;
}

.admin-topbar-date {
  font-size: 10.5px;
}

.admin-page-head h1 {
  font-size: 31px;
}

.admin-page-head p {
  font-size: 14px;
}

.admin-page-head-actions .btn {
  font-size: 13px;
}

.admin-card-head h2 {
  font-size: 18px;
}

.admin-card-head p {
  font-size: 12px;
}

.admin-card-body {
  font-size: 13px;
}

.admin-metric-label {
  font-size: 12px;
}

.admin-metric-value {
  font-size: 34px;
}

.admin-metric-foot,
.admin-metric-note {
  font-size: 11.5px;
}

.admin-metric-value small {
  font-size: 11px;
}

.admin-chart-head h3,
.admin-chart-title {
  font-size: 16px;
}

.admin-chart-head p,
.admin-chart-legend {
  font-size: 11px;
}

.admin-chart-total small {
  font-size: 10.5px;
}

.admin-chart-foot {
  font-size: 10.5px;
}

.admin-chart-wrap > svg text {
  font-size: 10px;
}

/* Tables are the worst offender in the admin console */
.admin-table {
  font-size: 14px;
}

.admin-table th {
  padding: 13px 16px;
  font-size: 11.5px;
}

.admin-table td {
  padding: 15px 16px;
}

.admin-table .cell-user strong {
  font-size: 14px;
}

.admin-table .cell-user small {
  font-size: 11px;
}

.admin-table .cell-title strong {
  font-size: 14.5px;
}

.admin-table .cell-title small {
  font-size: 11px;
}

.admin-table .mono {
  font-size: 11.5px;
}

.admin-table .amount {
  font-size: 14.5px;
}

.admin-shell .text-link,
.admin-shell .chip,
.admin-shell .status-pill,
.admin-shell .badge {
  font-size: 11px;
}

.admin-table .avatar {
  font-size: 11px;
}

.admin-table .icon-btn {
  width: 32px;
  height: 32px;
}

.admin-toolbar .input,
.admin-search .input,
.admin-toolbar .select {
  font-size: 12.5px;
}

.admin-toolbar .btn {
  font-size: 12px;
}

.filter-pills button {
  font-size: 11.5px;
}

.table-empty {
  font-size: 12px;
}

/* Dashboard secondary content */
.pending-info strong {
  font-size: 14px;
}

.pending-info small {
  font-size: 11px;
}

.audit-row {
  font-size: 11.5px;
}

.audit-row span {
  font-size: 10.5px;
}

.recent-user-row strong {
  font-size: 13px;
}

.recent-user-row small,
.recent-user-row > span:last-child {
  font-size: 11px;
}

.donut-legend-row {
  font-size: 11.5px;
}

.donut-legend-row b {
  font-size: 11px;
}

/* Pricing / promotions / settings */
.admin-subsection-head h2 {
  font-size: 18px;
}

.admin-subsection-head p {
  font-size: 11.5px;
}

.editable-table {
  font-size: 12px;
}

.editable-table th {
  font-size: 10.5px;
}

.editable-table .input,
.editable-table .select {
  font-size: 12px;
}

.pricing-note {
  font-size: 11px;
}

.pricing-side-card h3 {
  font-size: 18px;
}

.pricing-side-row {
  font-size: 11.5px;
}

.plan-editor-top strong {
  font-size: 14px;
}

.plan-editor .field label {
  font-size: 10.5px;
}

.plan-editor .input,
.plan-editor .textarea {
  font-size: 11.5px;
}

.promo-admin-badge {
  font-size: 9.5px;
}

.promo-admin-card > p {
  font-size: 11.5px;
}

.promo-admin-value small,
.promo-admin-meta,
.promo-admin-meta code,
.promo-usage small {
  font-size: 10px;
}

.admin-form .field label,
.settings-card .field label {
  font-size: 12px;
}

.admin-form .input,
.admin-form .select,
.admin-form .textarea,
.settings-card .input,
.settings-card .select,
.settings-card .textarea {
  font-size: 13px;
}

.admin-form .field-help,
.settings-card .field-help {
  font-size: 11px;
}

.admin-login-copy .eyebrow,
.admin-login-console {
  font-size: 10px;
}

.admin-login-copy p {
  font-size: 13px;
}

.admin-login-metrics strong {
  font-size: 26px;
}

.admin-login-metrics span {
  font-size: 10px;
}

.admin-login-form .field label {
  font-size: 12px;
}

.admin-login-form .input {
  font-size: 14px;
}

.admin-login-form .btn {
  font-size: 13px;
}

.admin-login-foot {
  font-size: 11px;
}

/* ============================================================
   Mobile
   ============================================================ */

@media (max-width: 780px) {
  body {
    font-size: 15.5px;
  }

  .container,
  .container-narrow,
  .header-inner,
  .announcement-inner,
  .footer-main,
  .footer-bottom,
  .campaign-ribbon,
  .hero-inner {
    width: calc(100% - 32px);
  }

  .announcement-inner p {
    font-size: 11.5px;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
  }

  .brand-type small {
    font-size: 7.5px;
  }

  .header-login {
    font-size: 13px;
    padding: 0 12px;
  }

  .login-long {
    display: none;
  }

  .login-short {
    display: inline;
  }

  .hero-subcopy {
    font-size: 15.5px;
    max-width: 100%;
    line-height: 1.9;
  }

  .hero-stat strong {
    font-size: 20px;
  }

  .hero-stat span {
    font-size: 11px;
  }

  .hero-float-quote span {
    font-size: 13.5px;
  }

  .hero-float-quote small {
    font-size: 10.5px;
  }

  .campaign-copy strong {
    font-size: 13px;
  }

  .campaign-copy small {
    font-size: 11px;
  }

  .section-heading p {
    font-size: 13px;
  }

  .section-heading-action,
  .section-heading-actions .text-link {
    font-size: 12px;
  }

  .book-card-info h3 {
    font-size: 16px;
  }

  .book-card-author {
    font-size: 12px;
  }

  .book-card-foot {
    font-size: 11px;
  }

  .cover-category {
    font-size: 8.5px;
  }

  .cover-badge {
    font-size: 8px;
  }

  .cover-author {
    font-size: 9.5px;
  }

  .cover-brand {
    font-size: 7.5px;
  }

  .tabs button {
    font-size: 12.5px;
    padding: 10px 13px 13px;
  }

  .editorial-feature-label,
  .editorial-mini-label {
    font-size: 10.5px;
  }

  .editorial-feature-author {
    font-size: 11.5px;
  }

  .editorial-quote {
    font-size: 14.5px;
    line-height: 1.8;
  }

  .editorial-meta,
  .editorial-mini-foot {
    font-size: 10.5px;
  }

  .editorial-mini p {
    font-size: 11.5px;
  }

  .category-tile p {
    font-size: 11.5px;
  }

  .category-tile h3 {
    font-size: 20px;
  }

  .author-quote {
    font-size: 17px;
  }

  .author-bio,
  .author-card p {
    font-size: 12px;
  }

  .membership-perks span {
    font-size: 11.5px;
  }

  .footer-tagline {
    font-size: 19px;
  }

  .footer-columns a,
  .footer-columns p,
  .footer-subscribe p {
    font-size: 11.5px;
  }

  .footer-bottom,
  .footer-bottom-center {
    font-size: 11.5px;
  }

  .modal-card {
    padding: 24px 19px;
  }

  .modal-head h2 {
    font-size: 23px;
  }

  .toast {
    font-size: 12.5px;
    max-width: calc(100vw - 32px);
  }

  .detail-author-line,
  .detail-meta {
    font-size: 12px;
  }

  .detail-stat span {
    font-size: 10px;
  }

  .chapter-row-title {
    font-size: 13.5px;
  }

  .chapter-row-meta,
  .chapter-lock {
    font-size: 10px;
  }

  .review-body {
    font-size: 13.5px;
  }

  .wallet-balance span {
    font-size: 11px;
  }

  .pack-card p,
  .pack-card strong small,
  .pack-price span {
    font-size: 10px;
  }

  .membership-seal small {
    font-size: 8px;
  }

  .plan-card .plan-desc {
    font-size: 11px;
  }

  .faq-answer-inner {
    font-size: 12px;
  }

  /* Admin on small screens: let tables scroll, but keep text legible. */
  .admin-page-head h1 {
    font-size: 26px;
  }

  .admin-page-head p {
    font-size: 12.5px;
  }

  .admin-table {
    font-size: 13.5px;
    min-width: 840px;
  }

  .admin-table-wrap {
    -webkit-overflow-scrolling: touch;
  }

  .admin-table th {
    font-size: 11px;
  }

  .admin-table .cell-user strong,
  .admin-table .cell-title strong {
    font-size: 14px;
  }

  .admin-table .cell-user small,
  .admin-table .cell-title small,
  .admin-table .mono {
    font-size: 11px;
  }

  .admin-metric-value {
    font-size: 27px;
  }

  .admin-metric-foot {
    flex-wrap: wrap;
    gap: 2px 8px;
    line-height: 1.55;
  }

  .admin-metric-foot > span {
    white-space: nowrap;
  }

  .admin-login-form h2 {
    font-size: 25px;
  }
}

@media (max-width: 430px) {
  .container,
  .container-narrow,
  .header-inner,
  .announcement-inner,
  .footer-main,
  .footer-bottom,
  .campaign-ribbon,
  .hero-inner {
    width: calc(100% - 28px);
  }

  .header-inner {
    gap: 8px;
  }

  .brand {
    gap: 8px;
  }

  .brand-seal {
    width: 33px;
    height: 33px;
  }

  .brand-type strong {
    font-size: 20px;
  }

  .header-actions {
    gap: 2px;
  }

  .header-login {
    height: 33px;
    padding: 0 10px;
  }

  .hero-title {
    font-size: clamp(2.65rem, 11vw, 3.4rem);
  }

  .hero-subcopy {
    font-size: 15px;
  }

  .book-grid,
  .book-grid-3,
  .book-grid-5,
  .trending-books {
    gap: 25px 14px;
  }

  .section {
    padding: 57px 0;
  }

  .section-heading h2 {
    font-size: 1.8rem;
  }

  .announcement-inner p {
    font-size: 11.5px;
  }
}
