@import url('https://fonts.googleapis.com/css2?family=Cormorant+Garamond:ital,wght@0,400;0,600;0,700;1,400;1,600&family=Plus+Jakarta+Sans:wght@300;400;500;600&display=swap');

:root {
  --ac-navy: #0d1b2a;
  --ac-navy2: #16293d;
  --ac-navy3: #1e3a54;
  --ac-blue: #2563a8;
  --ac-blue-light: #3b82c4;
  --ac-blue-pale: #ddeaf8;
  --ac-amber: #c8860a;
  --ac-amber2: #e09b1a;
  --ac-amber-light: #fef3dc;
  --ac-rose: #b5475a;
  --ac-rose-light: #fbeaed;
  --ac-cream: #faf8f3;
  --ac-cream2: #f2ede3;
  --ac-cream3: #e4ddd0;
  --ac-ink: #0f1923;
  --ac-ink2: #2d3f50;
  --ac-ink3: #6b7f92;
  --ac-page-bg: var(--ac-cream);
}

:root[data-theme="dark"] {
  --ac-cream: #0d1b2a;
  --ac-cream2: #16293d;
  --ac-cream3: #2a3f56;
  --ac-ink: #f3efe5;
  --ac-ink2: #c7d2dc;
  --ac-ink3: #8aa0b5;
}

:root[data-theme="light"] {
  --ac-page-bg: var(--ac-blue-pale);
}

* { box-sizing: border-box; }

body {
  font-family: 'Plus Jakarta Sans', sans-serif;
  background: var(--ac-page-bg);
  color: var(--ac-ink);
  min-height: 100vh;
}

/* ===== TYPOGRAPHY ===== */
h1, h2, h3, h4, h5 {
  font-family: 'Cormorant Garamond', serif;
  font-weight: 600;
  color: var(--ac-ink);
}

/* ===== NAVBAR ===== */
.ac-navbar {
  background: var(--ac-navy);
  padding: 6px 0;
}
.ac-navbar .navbar-brand {
  display: flex;
  align-items: center;
  gap: 10px;
  text-decoration: none;
}
.ac-navbar .nav-link {
  color: rgba(255,255,255,.55) !important;
  font-size: 13.5px;
  transition: color .2s;
}
.ac-navbar .nav-link:hover { color: rgba(255,255,255,.9) !important; }

.btn-ac-primary {
  background: var(--ac-amber);
  color: var(--ac-navy) !important;
  font-size: 13px;
  font-weight: 600;
  border: none;
  padding: 8px 20px;
  border-radius: 5px;
  transition: background .15s;
}
.btn-ac-primary:hover { background: var(--ac-amber2); }

.btn-ac-outline {
  background: transparent;
  color: rgba(255,255,255,.65) !important;
  border: 1px solid rgba(255,255,255,.2);
  font-size: 13px;
  padding: 8px 20px;
  border-radius: 5px;
  transition: all .15s;
}
.btn-ac-outline:hover {
  background: rgba(255,255,255,.08);
  color: #fff !important;
}

/* ===== HERO ===== */
.ac-hero {
  background: var(--ac-navy);
  padding: 4rem 0 3rem;
  position: relative;
  overflow: hidden;
  border-bottom: 2px solid var(--ac-amber2);
}
.ac-hero::before {
  content: '';
  position: absolute;
  top: -80px; right: -80px;
  width: 400px; height: 400px;
  border-radius: 50%;
  background: radial-gradient(circle, rgba(37,99,168,.2) 0%, transparent 70%);
  pointer-events: none;
}
.ac-hero-tag {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  background: rgba(200,134,10,.15);
  border: 1px solid rgba(200,134,10,.3);
  color: var(--ac-amber2);
  font-size: 11px;
  letter-spacing: 1.5px;
  text-transform: uppercase;
  padding: 4px 14px;
  border-radius: 20px;
  margin-bottom: 16px;
}
.ac-hero-title {
  font-family: 'Cormorant Garamond', serif;
  font-size: 3.2rem;
  line-height: 1.1;
  color: #fff;
  margin-bottom: 14px;
}
.ac-hero-title em { color: var(--ac-amber2); }
.ac-hero-sub {
  font-size: 14px;
  color: rgba(255,255,255,.5);
  line-height: 1.8;
  margin-bottom: 2rem;
}
.ac-hero-stat-num {
  font-family: 'Cormorant Garamond', serif;
  font-size: 1.6rem;
  font-weight: 600;
  color: #fff;
}
.ac-hero-stat-label {
  font-size: 10.5px;
  color: rgba(255,255,255,.35);
  text-transform: uppercase;
  letter-spacing: .5px;
}

/* ===== OG STRIP ===== */
.ac-og-strip {
  background: linear-gradient(90deg, var(--ac-navy3), var(--ac-blue));
  border-top: 2px solid var(--ac-amber2);
  padding: 12px 0;
}
.ac-badge-original {
  background: var(--ac-amber);
  color: var(--ac-navy);
  font-size: 9.5px;
  font-weight: 700;
  letter-spacing: 1.5px;
  text-transform: uppercase;
  padding: 3px 10px;
  border-radius: 2px;
}

/* ===== SECTION HEADINGS ===== */
.ac-section-title {
  font-family: 'Cormorant Garamond', serif;
  font-size: 1.5rem;
  font-weight: 600;
  color: var(--ac-ink);
}
.ac-section-title span { color: var(--ac-blue); }
.ac-see-all {
  font-size: 12.5px;
  color: var(--ac-amber2);
  font-weight: 500;
  text-decoration: none;
}
.ac-see-all:hover { color: var(--ac-amber); }

/* ===== BOOK CARDS ===== */
.ac-book-card {
  cursor: pointer;
  transition: transform .2s;
  text-decoration: none;
  color: inherit;
  display: block;
}
.ac-book-card:hover { transform: translateY(-3px); }
.ac-book-cover {
  border-radius: 7px;
  overflow: hidden;
  margin-bottom: 9px;
  box-shadow: 0 4px 18px rgba(13,27,42,.18);
  aspect-ratio: 2/3;
  background: var(--ac-navy2);
  position: relative;
}
.ac-book-cover img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  border-radius: 7px;
}
.ac-original-badge {
  position: absolute;
  top: 8px;
  left: 8px;
  background: rgba(10,22,40,0.85);
  color: var(--ac-amber2);
  border-radius: 8px;
  padding: 6px 10px;
  font-weight: 800;
  font-size: 0.85rem;
  letter-spacing: 1px;
  line-height: 1;
  z-index: 2;
}
.ac-book-title {
  font-size: 13px;
  font-weight: 600;
  color: var(--ac-ink);
  line-height: 1.3;
  margin-bottom: 2px;
}
.ac-book-author {
  font-size: 11.5px;
  color: var(--ac-ink3);
}
.ac-book-rating {
  font-size: 11.5px;
  color: var(--ac-ink3);
  margin-top: 3px;
}
.ac-book-rating .star { color: var(--ac-amber); }

/* ===== GENRE CHIPS ===== */
.ac-chip {
  display: inline-block;
  padding: 6px 16px;
  border-radius: 20px;
  font-size: 12.5px;
  border: 1px solid rgba(13,27,42,.15);
  color: var(--ac-ink);
  background: rgba(255,255,255,.5);
  backdrop-filter: blur(8px);
  font-weight: 500;
  text-decoration: none;
  transition: all .2s;
  cursor: pointer;
}
.ac-chip:hover, .ac-chip.active {
  background: var(--ac-amber2);
  color: #0d1b2a;
  border-color: var(--ac-amber2);
}

/* ===== BOOK DETAIL PAGE ===== */
.ac-book-hero { background: var(--ac-navy); padding: 3rem 0; }
.ac-big-cover {
  border-radius: 10px;
  overflow: hidden;
  box-shadow: 0 20px 60px rgba(0,0,0,.5);
  aspect-ratio: 2/3;
  width: 100%;
  max-width: 200px;
  position: relative;
}
.ac-big-cover > img,
.ac-big-cover > div {
  border-radius: 10px;
}
.ac-book-main-title {
  font-family: 'Cormorant Garamond', serif;
  font-size: 2.2rem;
  color: #fff;
  line-height: 1.15;
  font-style: italic;
}
.ac-pen-name { color: var(--ac-amber2) !important; font-weight: 600; }
.ac-avatar-initials {
  border-radius: 50%;
  background: linear-gradient(135deg, var(--ac-blue), var(--ac-navy2));
  display: flex;
  align-items: center;
  justify-content: center;
  font-family: 'Cormorant Garamond', serif;
  font-weight: 700;
  color: #fff;
  flex-shrink: 0;
  overflow: hidden;
}
.ac-avatar-initials img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}
.ac-stat-num {
  font-family: 'Cormorant Garamond', serif;
  font-size: 1.4rem;
  color: #fff;
  font-weight: 600;
}
.ac-stat-label {
  font-size: 10px;
  color: rgba(255,255,255,.35);
  text-transform: uppercase;
  letter-spacing: .5px;
}
.ac-genre-pill {
  background: rgba(37,99,168,.2);
  color: #5da3e8;
  font-size: 12px;
  padding: 4px 12px;
  border-radius: 4px;
  border: 1px solid rgba(37,99,168,.3);
  display: inline-block;
  margin: 2px;
}
.ac-tag-chip {
  background: rgba(200,134,10,.15);
  color: var(--ac-amber2);
  font-size: 11px;
  padding: 3px 10px;
  border-radius: 4px;
  border: 1px solid rgba(200,134,10,.3);
  display: inline-block;
  margin: 2px;
  text-decoration: none;
  transition: all .15s;
}
.ac-tag-chip:hover {
  background: var(--ac-amber);
  color: var(--ac-navy);
  border-color: var(--ac-amber);
}
.btn-read-now {
  background: var(--ac-amber);
  color: var(--ac-navy);
  font-weight: 700;
  font-size: 14px;
  padding: 12px 0;
  border: none;
  border-radius: 6px;
  width: 100%;
  transition: background .15s;
}
.btn-read-now:hover { background: var(--ac-amber2); color: var(--ac-navy); }

.btn-fav {
  background: transparent;
  color: rgba(255,255,255,.6);
  border: 1px solid rgba(255,255,255,.15);
  padding: 10px 0;
  border-radius: 6px;
  width: 100%;
  font-size: 13px;
  transition: all .2s;
}
.btn-fav:hover, .btn-fav.active {
  background: rgba(224,155,26,.18);
  border-color: var(--ac-amber2);
  color: var(--ac-amber2);
}
.btn-fav.active { color: var(--ac-amber2); }

.btn-gold-outline {
  background: transparent;
  color: var(--ac-amber2);
  border: 1px solid rgba(200,134,10,0.4);
  padding: 10px 0;
  border-radius: 6px;
  width: 100%;
  font-size: 13px;
  transition: all .2s;
}
.btn-gold-outline:hover {
  background: rgba(224,155,26,.12);
  border-color: var(--ac-amber2);
  color: var(--ac-amber2);
}

.btn-follow {
  background: var(--ac-amber2) !important;
  color: #0d1b2a !important;
  border: 1px solid var(--ac-amber2) !important;
  font-weight: 600;
}
.btn-follow:hover {
  background: var(--ac-amber) !important;
  border-color: var(--ac-amber) !important;
  color: #0d1b2a !important;
}
.btn-follow.active {
  background: transparent !important;
  color: var(--ac-amber2) !important;
  border: 1px solid var(--ac-amber2) !important;
}
.btn-follow.active:hover {
  background: rgba(224,155,26,.12) !important;
}

/* ===== CHAPTER LIST ===== */
.ac-chapter-item {
  display: flex;
  justify-content: space-between;
  align-items: center;
  padding: 13px 0;
  border-bottom: 1px solid var(--ac-cream3);
  text-decoration: none;
  color: var(--ac-ink);
  transition: color .2s;
}
.ac-chapter-item:hover .ac-ch-name { color: var(--ac-blue); }
.ac-ch-num { font-size: 11px; color: var(--ac-ink3); letter-spacing: .3px; }
.ac-ch-name { font-size: 14px; font-weight: 500; color: var(--ac-ink); }
.ac-ch-date { font-size: 11px; color: var(--ac-ink3); }
.ac-new-badge {
  background: var(--ac-rose);
  color: #fff;
  font-size: 9px;
  padding: 2px 7px;
  border-radius: 2px;
  font-weight: 700;
  letter-spacing: .5px;
}

/* ===== READER ===== */
.ac-reader-bar {
  background: var(--ac-navy);
  padding: 11px 0;
  position: sticky;
  top: 0;
  z-index: 100;
}
.ac-reader-progress {
  height: 3px;
  background: rgba(255,255,255,.08);
  position: sticky;
  top: 49px;
  z-index: 99;
}
.ac-reader-progress-fill {
  height: 100%;
  background: linear-gradient(90deg, var(--ac-blue), var(--ac-amber));
  transition: width .3s ease;
}
.ac-reader-body {
  max-width: 640px;
  margin: 0 auto;
  padding: 3rem 1.5rem;
}
.ac-chapter-title {
  font-family: 'Cormorant Garamond', serif;
  font-size: 2.2rem;
  color: var(--ac-ink);
  margin-bottom: .3rem;
}
.ac-reader-text {
  font-family: 'Cormorant Garamond', serif;
  font-size: 1.1rem;
  line-height: 2.1;
  color: var(--ac-ink2);
}
.ac-reader-text p { margin-bottom: 1.5rem; }
.ac-reader-text p:first-of-type::first-letter {
  font-size: 3.8rem;
  float: left;
  line-height: .75;
  margin-right: 10px;
  margin-top: 8px;
  color: var(--ac-blue);
  font-weight: 700;
  font-family: 'Cormorant Garamond', serif;
}
.ac-reader-divider {
  text-align: center;
  color: var(--ac-amber2);
  font-size: 1.1rem;
  letter-spacing: 10px;
  opacity: .45;
  margin: 2rem 0;
}

/* Reader themes */
body.reader-dark {
  background: #12191f;
}
body.reader-dark .ac-reader-body { color: #c8c0b4; }
body.reader-dark .ac-reader-text { color: #a8a090; }
body.reader-dark .ac-chapter-title { color: #e8e0d4; }

body.reader-sepia {
  background: #f4efe6;
}
body.reader-sepia .ac-reader-text { color: #4a3728; }

/* ===== AUTH PAGES ===== */
.ac-auth-wrap {
  min-height: 100vh;
  background: var(--ac-navy);
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 2rem;
}
.ac-auth-solo-wrap {
  background: var(--ac-navy);
}
.ac-auth-solo-wrap > div > p {
  color: rgba(255,255,255,.25);
}
:root[data-theme="light"] .ac-auth-solo-wrap > div > p {
  color: var(--ac-ink3) !important;
}
.ac-auth-card {
  background: var(--ac-cream);
  border-radius: 12px;
  overflow: hidden;
  width: 100%;
  max-width: 860px;
  display: grid;
  grid-template-columns: 1fr 1fr;
  box-shadow: 0 30px 80px rgba(0,0,0,.4);
}
.ac-auth-left {
  background: var(--ac-navy2);
  padding: 3rem 2.5rem;
  display: flex;
  flex-direction: column;
  justify-content: space-between;
}
.ac-auth-right { padding: 3rem 2.5rem; }
.ac-auth-title {
  font-family: 'Cormorant Garamond', serif;
  font-size: 1.9rem;
  color: #fff;
  line-height: 1.2;
  margin-bottom: .8rem;
}
.ac-auth-title em { color: var(--ac-amber2); font-style: italic; }
.ac-auth-sub { font-size: 13px; color: rgba(255,255,255,.45); line-height: 1.75; }
.ac-feat-item {
  display: flex;
  align-items: center;
  gap: 8px;
  font-size: 13px;
  color: rgba(255,255,255,.6);
}
.ac-feat-dot {
  width: 5px;
  height: 5px;
  border-radius: 50%;
  background: var(--ac-amber);
  flex-shrink: 0;
}
.google-btn {
  width: 100%;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 10px;
  padding: 11px;
  border-radius: 6px;
  border: 1px solid var(--ac-cream3);
  background: #fff;
  font-size: 14px;
  font-weight: 500;
  color: var(--ac-ink);
  cursor: pointer;
  transition: background .15s;
}
.google-btn:hover { background: var(--ac-cream2); }
.ac-divider {
  display: flex;
  align-items: center;
  gap: 10px;
  margin: 1.2rem 0;
}
.ac-divider-line { flex: 1; height: 1px; background: var(--ac-cream3); }
.ac-divider-text { font-size: 12px; color: var(--ac-ink3); }

/* Role selector */
.role-card {
  border: 1px solid var(--ac-cream3);
  border-radius: 8px;
  padding: 12px;
  cursor: pointer;
  text-align: center;
  transition: all .2s;
}
.role-card:hover { border-color: var(--ac-blue); }
.role-card.selected {
  border-color: var(--ac-blue);
  border-width: 1.5px;
  background: rgba(37,99,168,.05);
}
.role-card .role-icon { font-size: 22px; color: var(--ac-ink3); margin-bottom: 4px; }
.role-card.selected .role-icon { color: var(--ac-blue); }
.role-card .role-title { font-size: 13px; font-weight: 600; color: var(--ac-ink); }
.role-card .role-sub { font-size: 11px; color: var(--ac-ink3); }

/* ===== LIBRARY PAGE ===== */
.ac-lib-tab {
  padding: 10px 18px;
  font-size: 13.5px;
  color: var(--ac-ink3);
  cursor: pointer;
  border-bottom: 2px solid transparent;
  transition: all .2s;
}
.ac-lib-tab.active {
  color: var(--ac-blue);
  border-bottom-color: var(--ac-blue);
  font-weight: 600;
}

/* ===== TABS: dark mode (book detail + my library) ===== */
:root[data-theme="dark"] .ac-tabs-bar {
  border-bottom-color: rgba(200,134,10,0.3) !important;
}
:root[data-theme="dark"] .ac-lib-tab {
  color: rgba(255,255,255,0.6);
  background: transparent;
}
:root[data-theme="dark"] .ac-lib-tab:hover {
  color: var(--ac-amber2);
}
:root[data-theme="dark"] .ac-lib-tab.active {
  color: var(--ac-amber2);
  background: rgba(200,134,10,0.08);
  border-bottom-color: var(--ac-amber2);
}

/* ===== FOOTER ===== */
.ac-footer {
  background: var(--ac-navy);
  color: rgba(255,255,255,.4);
  font-size: 13px;
  padding: 2rem 0;
  margin-top: 4rem;
}
.ac-footer a { color: rgba(255,255,255,.4); text-decoration: none; }
.ac-footer a:hover { color: var(--ac-amber2); }

/* ===== UTILITIES ===== */
.text-amber { color: var(--ac-amber2) !important; }
.text-navy { color: var(--ac-navy) !important; }
.bg-navy { background: var(--ac-navy) !important; }
.bg-cream { background: var(--ac-cream) !important; }

/* ===== SMOOTH SCROLL ===== */
html { scroll-behavior: smooth; }

/* ===== GLOBAL LINK TRANSITION ===== */
a { transition: color .18s ease, opacity .18s ease; }

/* ===== NAVBAR POLISH ===== */
.ac-navbar {
  box-shadow: 0 1px 0 rgba(255,255,255,.04), 0 4px 24px rgba(0,0,0,.3);
  transition: box-shadow .3s ease;
}
.ac-navbar .navbar-brand img {
  transition: opacity .2s ease, transform .25s ease;
}
.ac-navbar .navbar-brand:hover img {
  opacity: .88;
  transform: scale(1.03);
}
.ac-navbar .nav-link {
  position: relative;
  padding-bottom: 4px !important;
}
.ac-navbar .nav-link::after {
  content: '';
  position: absolute;
  bottom: 0; left: 50%;
  width: 0; height: 1.5px;
  background: var(--ac-amber);
  border-radius: 2px;
  transform: translateX(-50%);
  transition: width .22s ease;
}
.ac-navbar .nav-link:hover::after { width: 60%; }

/* ===== BUTTON POLISH ===== */
.btn-ac-primary {
  transition: background .2s ease, transform .15s ease, box-shadow .2s ease;
}
.btn-ac-primary:hover {
  background: var(--ac-amber2);
  transform: translateY(-1px);
  box-shadow: 0 4px 14px rgba(200,134,10,.35);
}
.btn-ac-primary:active { transform: translateY(0); }

.btn-ac-outline {
  transition: all .2s ease;
}
.btn-ac-outline:hover {
  background: rgba(255,255,255,.1);
  color: #fff !important;
  transform: translateY(-1px);
}

.btn-read-now {
  transition: background .2s ease, transform .15s ease, box-shadow .2s ease;
}
.btn-read-now:hover {
  background: var(--ac-amber2);
  transform: translateY(-1px);
  box-shadow: 0 6px 18px rgba(200,134,10,.4);
}
.btn-read-now:active { transform: translateY(0); }

/* Generic Bootstrap btn smooth transitions */
.btn {
  transition: background .18s ease, color .18s ease, border-color .18s ease,
              transform .14s ease, box-shadow .18s ease;
}
.btn:active { transform: translateY(0) !important; }

/* ===== BOOK CARD POLISH ===== */
.ac-book-card {
  transition: transform .28s cubic-bezier(.22,.68,0,1.2);
}
.ac-book-card:hover { transform: translateY(-6px); }
.ac-book-cover {
  transition: box-shadow .28s ease;
}
.ac-book-card:hover .ac-book-cover {
  box-shadow: 0 14px 40px rgba(13,27,42,.3);
}
.ac-book-title {
  transition: color .18s ease;
}
.ac-book-card:hover .ac-book-title { color: var(--ac-blue); }

/* ===== CHAPTER LIST POLISH ===== */
.ac-chapter-item {
  padding-left: 10px;
  padding-right: 10px;
  margin-left: -10px;
  margin-right: -10px;
  border-radius: 7px;
  transition: background .2s ease, padding-left .2s ease;
}
.ac-chapter-item:hover {
  background: var(--ac-cream2);
  padding-left: 16px;
}
.ac-chapter-item:hover .ac-ch-name { color: var(--ac-blue); }

/* ===== GENRE CHIP POLISH ===== */
.ac-chip {
  transition: all .2s ease;
}
.ac-chip:hover {
  background: var(--ac-amber2);
  color: #0d1b2a;
  border-color: var(--ac-amber2);
  transform: translateY(-1px);
  box-shadow: 0 3px 10px rgba(13,27,42,.15);
}
.ac-chip.active {
  box-shadow: 0 2px 8px rgba(13,27,42,.2);
}

/* ===== FORM INPUT POLISH ===== */
.form-control,
.form-select {
  transition: border-color .18s ease, box-shadow .18s ease;
}
.form-control:focus,
.form-select:focus {
  border-color: var(--ac-blue);
  box-shadow: 0 0 0 3px rgba(37,99,168,.14);
  outline: none;
}

/* ===== PASSWORD VISIBILITY TOGGLE ===== */
.ac-password-wrap {
  position: relative;
}
.ac-password-wrap .ac-form-control {
  padding-right: 42px;
}
.ac-password-toggle {
  position: absolute;
  right: 10px;
  top: 50%;
  transform: translateY(-50%);
  background: none;
  border: none;
  color: var(--ac-ink3);
  cursor: pointer;
  padding: 4px;
  display: flex;
  align-items: center;
  font-size: 15px;
}
.ac-password-toggle:hover {
  color: var(--ac-ink);
}

/* ===== FAV / SOCIAL BUTTONS ===== */
.btn-fav {
  transition: all .22s ease;
}
.btn-fav:hover, .btn-fav.active {
  transform: scale(1.02);
}

/* ===== FOOTER LINK POLISH ===== */
.ac-footer a {
  transition: color .2s ease;
}

/* ===== HERO ENTRANCE ANIMATION ===== */
@keyframes ac-fade-up {
  from { opacity: 0; transform: translateY(20px); }
  to   { opacity: 1; transform: translateY(0); }
}
@keyframes ac-fade-in {
  from { opacity: 0; }
  to   { opacity: 1; }
}

.ac-hero-tag  { animation: ac-fade-up .5s ease .05s both; }
.ac-hero-title { animation: ac-fade-up .52s ease .1s both; }
.ac-hero-sub   { animation: ac-fade-up .52s ease .18s both; }
.ac-hero .d-flex { animation: ac-fade-up .52s ease .25s both; }

/* ===== HERO CHARACTER IMAGE ===== */
@keyframes float {
  0%, 100% { transform: translateY(0px); }
  50% { transform: translateY(-4px); }
}
.hero-character {
  animation: float 3s ease-in-out infinite;
  filter: drop-shadow(0 20px 40px rgba(0,0,0,.4)) drop-shadow(0 0 18px rgba(200,134,10,.35)) drop-shadow(0 0 40px rgba(200,134,10,.15));
  position: relative;
  z-index: 1;
}
.hero-character-wrap {
  position: relative;
  display: inline-block;
}
.hero-character-wrap::before {
  content: '';
  position: absolute;
  inset: -20px;
  background: radial-gradient(ellipse at center, rgba(200,134,10,.18) 0%, transparent 70%);
  pointer-events: none;
  border-radius: 50%;
}

/* ===== BOOK CARD STAGGER (applied via nth-child selectors) ===== */
.ac-book-card { animation: ac-fade-up .45s ease both; }
.col:nth-child(1) .ac-book-card,
.col-6:nth-child(1) .ac-book-card { animation-delay: .04s; }
.col:nth-child(2) .ac-book-card,
.col-6:nth-child(2) .ac-book-card { animation-delay: .1s; }
.col:nth-child(3) .ac-book-card,
.col-6:nth-child(3) .ac-book-card { animation-delay: .16s; }
.col:nth-child(4) .ac-book-card,
.col-6:nth-child(4) .ac-book-card { animation-delay: .22s; }
.col:nth-child(5) .ac-book-card,
.col-6:nth-child(5) .ac-book-card { animation-delay: .28s; }
.col:nth-child(6) .ac-book-card,
.col-6:nth-child(6) .ac-book-card { animation-delay: .34s; }

/* ===== SECTION TITLE ENTRANCE ===== */
.ac-section-title { animation: ac-fade-up .45s ease both; }

/* ===== READER SETTINGS PANEL ===== */
#reader-settings-panel {
  transform-origin: top right;
  transition: opacity .2s ease, transform .22s ease, visibility .2s;
  opacity: 1;
  transform: scale(1) translateY(0);
  visibility: visible;
}
#reader-settings-panel.ac-panel-hidden {
  opacity: 0;
  transform: scale(.94) translateY(-8px);
  pointer-events: none;
  visibility: hidden;
}

/* ===== AUDIO PLAYER ===== */
body.ac-audio-bar-open .ac-reader-body {
  padding-bottom: 110px;
}
.ac-audio-collapsed {
  position: fixed;
  bottom: 20px;
  right: 20px;
  z-index: 100;
  transition: opacity .2s ease, transform .2s ease, visibility .2s;
  opacity: 1;
  transform: translateY(0);
  visibility: visible;
}
.ac-audio-collapsed.ac-audio-hidden {
  opacity: 0;
  transform: translateY(10px);
  visibility: hidden;
  pointer-events: none;
}
.ac-audio-listen-btn {
  background: var(--ac-amber2);
  color: #0d1b2a;
  border: none;
  border-radius: 24px;
  padding: 10px 20px;
  font-size: 13px;
  font-weight: 700;
  cursor: pointer;
  box-shadow: 0 6px 20px rgba(200,134,10,.4);
  transition: background .15s ease, transform .15s ease;
}
.ac-audio-listen-btn:hover {
  background: var(--ac-amber);
  transform: translateY(-2px);
}

.ac-audio-bar {
  position: fixed;
  left: 0;
  right: 0;
  bottom: 0;
  z-index: 100;
  background: #0d1b2a;
  border-top: 1px solid rgba(200,134,10,0.3);
  box-shadow: 0 -8px 30px rgba(0,0,0,.3);
  transform: translateY(100%);
  transition: transform .3s ease;
}
.ac-audio-bar.expanded {
  transform: translateY(0);
}
:root[data-theme="light"] .ac-audio-bar {
  background: #ffffff;
  border-top: 1px solid rgba(13,27,42,0.15);
}

.ac-audio-collapse-btn {
  background: none;
  border: none;
  color: rgba(255,255,255,.5);
  font-size: 11px;
  cursor: pointer;
  padding: 4px 6px;
  flex-shrink: 0;
}
.ac-audio-collapse-btn:hover { color: var(--ac-amber2); }
:root[data-theme="light"] .ac-audio-collapse-btn { color: var(--ac-ink3); }

.ac-audio-play-btn {
  width: 38px;
  height: 38px;
  border-radius: 50%;
  border: none;
  background: var(--ac-amber2);
  color: #0d1b2a;
  font-size: 14px;
  cursor: pointer;
  flex-shrink: 0;
  display: flex;
  align-items: center;
  justify-content: center;
  transition: background .15s ease;
}
.ac-audio-play-btn:hover { background: var(--ac-amber); }

.ac-audio-mode-label {
  font-size: 12px;
  font-weight: 600;
  color: var(--ac-amber2);
  white-space: nowrap;
  flex-shrink: 0;
}

.ac-audio-seek-wrap {
  display: flex;
  align-items: center;
  gap: 8px;
  min-width: 160px;
}
.ac-audio-seek {
  flex-grow: 1;
  accent-color: var(--ac-amber2);
}
.ac-audio-times {
  font-size: 11px;
  color: rgba(255,255,255,.5);
  white-space: nowrap;
}
:root[data-theme="light"] .ac-audio-times { color: var(--ac-ink3); }

.ac-audio-speed-select,
.ac-audio-voice-select {
  background: rgba(255,255,255,.06);
  color: rgba(255,255,255,.85);
  border: 1px solid rgba(255,255,255,.15);
  border-radius: 6px;
  font-size: 12px;
  padding: 5px 8px;
  max-width: 160px;
}
:root[data-theme="light"] .ac-audio-speed-select,
:root[data-theme="light"] .ac-audio-voice-select {
  background: rgba(13,27,42,.04);
  color: var(--ac-ink);
  border-color: rgba(13,27,42,.15);
}
[data-theme="dark"] #audio-player-bar select,
[data-theme="dark"] #audio-player-bar select option {
  background-color: #0d1b2a;
  color: rgba(255,255,255,0.85);
  border: 1px solid rgba(200,134,10,0.3);
}

.ac-audio-volume-wrap {
  display: flex;
  align-items: center;
  gap: 6px;
  color: rgba(255,255,255,.6);
  flex-shrink: 0;
}
:root[data-theme="light"] .ac-audio-volume-wrap { color: var(--ac-ink3); }
.ac-audio-volume-wrap input[type="range"] {
  width: 70px;
  accent-color: var(--ac-amber2);
}

.ac-audio-progress-label {
  font-size: 11.5px;
  color: rgba(255,255,255,.5);
  white-space: nowrap;
  margin-left: auto;
}
:root[data-theme="light"] .ac-audio-progress-label { color: var(--ac-ink3); }

.ac-reading-highlight {
  background: rgba(224,155,26,.18);
  border-radius: 6px;
  padding: 6px 10px;
  margin: -6px -10px;
  transition: background .3s ease;
}

/* ===== ADMIN PANEL ===== */
.ac-manage-wrap {
  background: var(--ac-page-bg);
}
.ac-manage-sidebar {
  width: 220px;
  flex-shrink: 0;
  min-height: calc(100vh - 280px);
  background: var(--ac-navy);
  padding: 1.5rem 0;
}
.ac-manage-brand {
  color: var(--ac-amber2);
  font-family: 'Cormorant Garamond', serif;
  font-size: 1.1rem;
  font-weight: 600;
  padding: 0 1.2rem 1.2rem;
  border-bottom: 1px solid rgba(200,134,10,.25);
  margin-bottom: 1rem;
}
.ac-manage-nav {
  display: flex;
  flex-direction: column;
}
.ac-manage-link {
  display: flex;
  align-items: center;
  gap: 10px;
  padding: 10px 1.2rem;
  color: rgba(255,255,255,.6);
  text-decoration: none;
  font-size: 13.5px;
  border-left: 3px solid transparent;
  transition: all .15s;
}
.ac-manage-link:hover {
  color: #fff;
  background: rgba(255,255,255,.05);
}
.ac-manage-link.active {
  color: var(--ac-amber2);
  background: rgba(200,134,10,.1);
  border-left-color: var(--ac-amber2);
  font-weight: 600;
}
.ac-manage-main {
  padding: 1.8rem;
  min-width: 0;
}
:root[data-theme="light"] .ac-manage-sidebar {
  background: var(--ac-blue-pale);
}
:root[data-theme="light"] .ac-manage-brand {
  color: var(--ac-amber);
  border-bottom-color: rgba(13,27,42,.12);
}
:root[data-theme="light"] .ac-manage-link {
  color: var(--ac-ink2);
}
:root[data-theme="light"] .ac-manage-link:hover {
  color: var(--ac-ink);
  background: rgba(13,27,42,.06);
}
:root[data-theme="light"] .ac-manage-link.active {
  color: var(--ac-amber);
  background: rgba(200,134,10,.12);
}

/* ===== ADMIN PANEL: mobile responsive ===== */
.ac-manage-toggle {
  display: none;
  align-items: center;
  justify-content: center;
  width: 38px;
  height: 38px;
  margin: 12px 0 0 12px;
  background: transparent;
  border: 1px solid rgba(255,255,255,.2);
  color: rgba(255,255,255,.85);
  border-radius: 6px;
  font-size: 16px;
  cursor: pointer;
}
:root[data-theme="light"] .ac-manage-toggle {
  border-color: rgba(13,27,42,.18);
  color: var(--ac-ink2);
}
.ac-manage-backdrop {
  display: none;
  position: fixed;
  inset: 0;
  background: rgba(0,0,0,.5);
  z-index: 149;
}
@media (max-width: 991.98px) {
  .ac-manage-toggle {
    display: inline-flex;
  }
  .ac-manage-sidebar {
    position: fixed;
    top: 0;
    left: 0;
    bottom: 0;
    z-index: 150;
    transform: translateX(-100%);
    transition: transform .25s ease;
    box-shadow: 8px 0 30px rgba(0,0,0,.35);
    overflow-y: auto;
    min-height: 100vh;
  }
  .ac-manage-sidebar.open {
    transform: translateX(0);
  }
  .ac-manage-backdrop.open {
    display: block;
  }
  .ac-manage-main {
    padding: 1.2rem;
  }
}
@media (max-width: 575.98px) {
  .ac-manage-main {
    padding: 1rem;
  }
  .ac-action-group {
    flex-direction: column;
    align-items: stretch;
  }
  .ac-action-group > .btn,
  .ac-action-group > a.btn,
  .ac-action-group form,
  .ac-action-group form .btn,
  .ac-action-group .dropdown,
  .ac-action-group .dropdown .btn {
    width: 100%;
  }
}

.ac-confirm-btn-danger {
  background: transparent;
  border: 1px solid var(--ac-rose);
  color: var(--ac-rose);
}
.ac-confirm-btn-danger:hover {
  background: rgba(181,71,90,.12);
}

/* ===== STAR RATINGS ===== */
.ac-stars-filled { color: var(--ac-amber2); }
.ac-stars-empty  { color: var(--ac-ink3); }
.ac-stars-value  { font-size:.85em; color:var(--ac-ink3); margin-left:4px; }
.ac-stars-row    { font-size:1.1rem; line-height:1; }
.ac-stars-sm     { font-size:.9rem; }
.ac-rate-star {
  background: none;
  border: none;
  font-size: 2rem;
  color: var(--ac-ink3);
  cursor: pointer;
  padding: 0 2px;
  transition: color .1s;
}

/* ===== CHAPTER COMMENTS ===== */
.ac-comment {
  padding: 1rem 0;
  border-bottom: 1px solid var(--ac-cream3);
}
.ac-comment:last-child { border-bottom: none; }
.ac-comment-form textarea,
.ac-reply-form textarea {
  background: var(--ac-cream2);
  border-color: var(--ac-cream3);
  color: var(--ac-ink);
}
.ac-comment-form textarea:focus,
.ac-reply-form textarea:focus {
  background: var(--ac-cream);
  color: var(--ac-ink);
}
.ac-replies-list { padding-left: .75rem; }

/* Dark mode comment overrides */
:root[data-theme="dark"] .ac-comment-form textarea,
:root[data-theme="dark"] .ac-reply-form textarea {
  background: rgba(255,255,255,.06);
  border-color: rgba(255,255,255,.12);
  color: var(--ac-ink);
}
:root[data-theme="dark"] .ac-comment-form textarea:focus,
:root[data-theme="dark"] .ac-reply-form textarea:focus {
  background: rgba(255,255,255,.09);
}

/* Comment book-detail */
.ac-comment-item { transition: background .15s; }

/* ===== COMMENT EDIT / DELETE UI ===== */
.ac-icon-btn {
  background: none;
  border: none;
  padding: 2px 4px;
  cursor: pointer;
  font-size: 13px;
  opacity: 0;
  transition: opacity .15s;
  border-radius: 4px;
}
.ac-comment-item:hover .ac-icon-btn,
.ac-comment:hover .ac-icon-btn,
[id^="comment-wrapper-"]:hover .ac-icon-btn {
  opacity: .6;
}
.ac-icon-btn:hover { opacity: 1 !important; }

.ac-text-btn {
  background: none;
  border: none;
  padding: 0;
  cursor: pointer;
  font-size: 12px;
  color: var(--ac-amber2);
  transition: color .15s;
}
.ac-text-btn:hover { color: var(--ac-amber); }

.ac-comment-actions { margin-top: .4rem; }

.ac-inline-edit textarea {
  background: var(--ac-cream2);
  border-color: var(--ac-cream3);
  color: var(--ac-ink);
  font-size: 14px;
  line-height: 1.7;
}
:root[data-theme="dark"] .ac-inline-edit textarea {
  background: rgba(255,255,255,.06);
  border-color: rgba(255,255,255,.12);
  color: var(--ac-ink);
}

.ac-delete-confirm {
  background: var(--ac-cream);
  border: 1px solid var(--ac-rose);
  border-radius: 6px;
  padding: 8px 12px;
}
:root[data-theme="dark"] .ac-delete-confirm {
  background: rgba(181,71,90,.1);
}

/* ===== ROLE CARD POLISH ===== */
.role-card {
  transition: border-color .2s ease, background .2s ease, transform .2s ease, box-shadow .2s ease;
}
.role-card:hover {
  border-color: var(--ac-blue);
  transform: translateY(-2px);
  box-shadow: 0 4px 14px rgba(37,99,168,.12);
}
.role-card.selected {
  box-shadow: 0 4px 14px rgba(37,99,168,.18);
}

/* ===== TABLE ROW HOVER ===== */
.table tbody tr {
  transition: background .18s ease;
}
.table tbody tr:hover {
  background: var(--ac-cream2);
}

/* ===== RESPONSIVE TWEAKS ===== */
@media (max-width: 768px) {
  .ac-auth-card { grid-template-columns: 1fr; }
  .ac-auth-left { display: none; }
  .ac-hero-title { font-size: 2.2rem; }
  .ac-book-card:hover { transform: translateY(-3px); }

  .ac-footer {
    text-align: center;
  }
  .ac-footer .row {
    justify-content: center;
  }
  .ac-footer img {
    margin: 0 auto;
    display: block;
  }
  .ac-footer p,
  .ac-footer a,
  .ac-footer .d-flex {
    justify-content: center;
    text-align: center;
  }
}

/* ===== MOBILE NAVBAR (collapsed below Bootstrap's lg breakpoint) ===== */
@media (max-width: 991.98px) {
  .ac-navbar .navbar-collapse {
    margin-top: 1rem;
    padding-top: 1rem;
    border-top: 1px solid rgba(255,255,255,.08);
    text-align: center;
  }
  .ac-navbar .navbar-nav {
    width: 100%;
    align-items: center;
    margin: 0 0 1rem !important;
  }
  .ac-navbar .navbar-nav .nav-link {
    padding: 10px 16px;
  }
  .ac-navbar form.d-flex {
    width: 100%;
    justify-content: center;
    margin: 0 0 1rem !important;
  }
  .ac-navbar form.d-flex input {
    width: 100%;
    min-width: 0 !important;
  }
  .ac-navbar .navbar-collapse > .d-flex.align-items-center {
    width: 100%;
    flex-wrap: wrap;
    justify-content: center;
    gap: 10px;
    margin-top: .5rem;
    padding-top: 1rem;
    border-top: 1px solid rgba(255,255,255,.1);
  }
}

/* ===== LIGHT / DARK MODE TOGGLE ===== */
.ac-theme-toggle {
  width: 34px;
  height: 34px;
  border-radius: 50%;
  border: 1px solid rgba(255,255,255,.2);
  background: rgba(255,255,255,.06);
  color: rgba(255,255,255,.75);
  display: flex;
  align-items: center;
  justify-content: center;
  cursor: pointer;
  font-size: 14px;
  transition: background .2s ease, color .2s ease, transform .2s ease;
}
.ac-theme-toggle:hover {
  background: rgba(255,255,255,.12);
  color: var(--ac-amber2);
  transform: rotate(15deg);
}
:root[data-theme="light"] #theme-toggle {
  color: #f5a623;
}

/* ===== NOTIFICATIONS BELL ===== */
.ac-bell-btn {
  position: relative;
  width: 34px;
  height: 34px;
  border-radius: 50%;
  border: 1px solid rgba(255,255,255,.2);
  background: rgba(255,255,255,.06);
  color: rgba(255,255,255,.75);
  display: flex;
  align-items: center;
  justify-content: center;
  cursor: pointer;
  font-size: 14px;
  transition: background .2s ease, color .2s ease;
}
.ac-bell-btn:hover {
  background: rgba(255,255,255,.12);
  color: var(--ac-amber2);
}
:root[data-theme="light"] .ac-bell-btn {
  color: #f5a623;
}
.ac-notif-badge {
  position: absolute;
  top: -4px;
  right: -4px;
  min-width: 16px;
  height: 16px;
  padding: 0 4px;
  border-radius: 8px;
  background: var(--ac-amber2);
  color: #0d1b2a;
  font-size: 10px;
  font-weight: 700;
  line-height: 16px;
  text-align: center;
}
.ac-notif-menu {
  width: 340px;
  max-height: 440px;
  overflow-y: auto;
  border-radius: 10px;
  box-shadow: 0 12px 32px rgba(13,27,42,.3);
  background: #0d1b2a;
  border: 1px solid rgba(200,134,10,0.3);
  color: rgba(255,255,255,.85);
}
:root[data-theme="light"] .ac-notif-menu {
  background: #ffffff;
  border: 1px solid rgba(13,27,42,0.15);
  color: var(--ac-ink);
}
.ac-notif-header {
  font-size: 13px;
  font-weight: 600;
  border-bottom: 1px solid rgba(255,255,255,.1);
}
:root[data-theme="light"] .ac-notif-header {
  border-bottom-color: rgba(13,27,42,.1);
}
.ac-notif-mark-all {
  background: none;
  border: none;
  font-size: 11.5px;
  color: var(--ac-amber2);
  cursor: pointer;
  padding: 0;
}
.ac-notif-mark-all:hover { color: var(--ac-amber); }
.ac-notif-list {
  max-height: 320px;
  overflow-y: auto;
}
.ac-notif-item {
  display: block;
  padding: 10px 14px;
  text-decoration: none;
  color: inherit;
  border-left: 3px solid transparent;
  border-bottom: 1px solid rgba(255,255,255,.06);
  transition: background .15s;
}
:root[data-theme="light"] .ac-notif-item {
  border-bottom-color: rgba(13,27,42,.06);
}
.ac-notif-item:hover {
  background: rgba(255,255,255,.06);
}
:root[data-theme="light"] .ac-notif-item:hover {
  background: rgba(13,27,42,.04);
}
.ac-notif-item.unread {
  border-left: 3px solid var(--ac-amber2);
}
.ac-notif-msg {
  font-size: 12.5px;
  line-height: 1.4;
}
.ac-notif-time {
  font-size: 11px;
  color: var(--ac-ink3);
  margin-top: 3px;
}
.ac-notif-empty {
  padding: 28px 14px;
  text-align: center;
  font-size: 12.5px;
  color: var(--ac-ink3);
}
.ac-notif-seeall {
  display: block;
  text-align: center;
  padding: 10px;
  font-size: 12px;
  font-weight: 600;
  color: var(--ac-amber2);
  text-decoration: none;
  border-top: 1px solid rgba(255,255,255,.1);
}
:root[data-theme="light"] .ac-notif-seeall {
  border-top-color: rgba(13,27,42,.1);
}
.ac-notif-seeall:hover { color: var(--ac-amber); }

/* ===== NOTIFICATIONS PAGE ===== */
.notif-row.unread {
  border-left: 3px solid var(--ac-amber2);
}
.ac-notif-type-icon {
  width: 36px;
  height: 36px;
  border-radius: 50%;
  background: rgba(37,99,168,.1);
  color: var(--ac-blue);
  display: flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
  font-size: 14px;
}

:root[data-theme="light"] .ac-navbar {
  background: var(--ac-blue-pale);
  box-shadow: 0 1px 0 rgba(13,27,42,.06), 0 4px 24px rgba(13,27,42,.08);
}
:root[data-theme="light"] .ac-navbar .nav-link { color: var(--ac-ink2) !important; }
:root[data-theme="light"] .ac-navbar .nav-link:hover { color: var(--ac-ink) !important; }
:root[data-theme="light"] .ac-navbar input[type="search"] {
  background: rgba(13,27,42,.06) !important;
  border-color: rgba(13,27,42,.15) !important;
  color: var(--ac-ink) !important;
}
:root[data-theme="dark"] .ac-navbar input::placeholder {
  color: rgba(255,255,255,.4);
}
:root[data-theme="dark"] .ac-navbar input {
  color: rgba(255,255,255,.85);
}
:root[data-theme="light"] .ac-navbar .btn-ac-outline {
  color: var(--ac-ink2) !important;
  border-color: rgba(13,27,42,.18);
}
:root[data-theme="light"] .ac-navbar .btn-ac-outline:hover {
  background: rgba(13,27,42,.06);
  color: var(--ac-ink) !important;
}
:root[data-theme="light"] .ac-navbar .dropdown-menu {
  background: #fff;
}

:root[data-theme="light"] .ac-auth-wrap {
  background: var(--ac-blue-pale);
}
:root[data-theme="light"] .ac-auth-solo-wrap {
  background: var(--ac-blue-pale);
}

:root[data-theme="light"] .ac-hero {
  background: var(--ac-blue-pale);
}
:root[data-theme="light"] .ac-hero::before { display: none; }
:root[data-theme="light"] .ac-hero-title { color: var(--ac-ink); }
:root[data-theme="light"] .ac-hero-sub { color: var(--ac-ink2); }
:root[data-theme="light"] .ac-hero-stat-num { color: var(--ac-ink); }
:root[data-theme="light"] .ac-hero-stat-label { color: var(--ac-ink3); }
:root[data-theme="light"] .ac-hero .d-flex.gap-4 { border-top-color: rgba(15,25,35,.12) !important; }

:root[data-theme="light"] .ac-footer {
  background: var(--ac-blue-pale);
  color: var(--ac-ink3);
}
:root[data-theme="light"] .ac-footer a { color: var(--ac-ink2); }
:root[data-theme="light"] .ac-footer a:hover { color: var(--ac-blue); }

/* ===== LOGO: DARK/LIGHT VARIANT SWAP ===== */
.ac-logo-light { display: none !important; }
:root[data-theme="light"] .ac-logo-dark { display: none !important; }
:root[data-theme="light"] .ac-logo-light { display: inline-block !important; }

/* ===== NAVBAR GOLD DIVIDER ===== */
.ac-navbar {
  border-bottom: 2px solid var(--ac-amber2);
}

/* ===== PAGE BANNER HEADERS (theme-reactive) ===== */
.ac-page-banner {
  background: var(--ac-navy);
}
:root[data-theme="light"] .ac-page-banner {
  background: var(--ac-blue-pale);
}
:root[data-theme="light"] .ac-page-banner h1[style*="color:#fff"] {
  color: var(--ac-ink) !important;
}
:root[data-theme="light"] .ac-page-banner [style*="color:rgba(255,255,255"] {
  color: var(--ac-ink3) !important;
}
:root[data-theme="light"] .ac-page-banner input {
  background: rgba(13,27,42,.06) !important;
  border-color: rgba(13,27,42,.15) !important;
  color: var(--ac-ink) !important;
}

:root[data-theme="light"] .ac-book-hero {
  background: var(--ac-blue-pale);
}
:root[data-theme="light"] .ac-book-hero .ac-book-main-title { color: var(--ac-ink) !important; }
:root[data-theme="light"] .ac-book-hero .ac-stat-num { color: var(--ac-ink) !important; }
:root[data-theme="light"] .ac-book-hero .ac-stat-label { color: var(--ac-ink3) !important; }
:root[data-theme="light"] .ac-book-hero [style*="color:rgba(255,255,255"] {
  color: var(--ac-ink3) !important;
}
:root[data-theme="light"] .ac-book-hero .btn-fav:not(.active) {
  color: var(--ac-ink2) !important;
  border-color: rgba(13,27,42,.18) !important;
}

/* ===== WHITE CARDS: dark mode readability ===== */
:root[data-theme="dark"] .ac-card {
  background: rgba(255,255,255,.05) !important;
  border-color: rgba(255,255,255,.12) !important;
  color: rgba(255,255,255,.8);
}
:root[data-theme="dark"] .ac-card h5,
:root[data-theme="dark"] .ac-card h6 {
  color: rgba(255,255,255,.9) !important;
}
:root[data-theme="dark"] .ac-card .form-control,
:root[data-theme="dark"] .ac-card textarea {
  background: rgba(255,255,255,.06);
  border-color: rgba(255,255,255,.15);
  color: rgba(255,255,255,.85);
}
:root[data-theme="dark"] .table {
  --bs-table-bg: rgba(255,255,255,.05);
  --bs-table-color: rgba(255,255,255,.85);
  --bs-border-color: rgba(255,255,255,.12);
  border-color: rgba(255,255,255,.12);
}
:root[data-theme="dark"] .table thead,
:root[data-theme="dark"] .table thead th {
  background: rgba(255,255,255,.08) !important;
  color: rgba(255,255,255,.9) !important;
}

/* ===== AUTH FORMS: dark mode ===== */
:root[data-theme="dark"] .ac-form-control {
  background: rgba(255,255,255,.05);
  color: rgba(255,255,255,.9);
  border: 1px solid rgba(255,255,255,.15);
}
:root[data-theme="dark"] .ac-form-control::placeholder {
  color: rgba(255,255,255,.4);
}
:root[data-theme="dark"] .ac-form-control:focus {
  border-color: var(--ac-amber2);
  box-shadow: 0 0 0 3px rgba(224,155,26,.15);
}
:root[data-theme="dark"] .ac-error {
  color: #f5b8c2;
}
:root[data-theme="dark"] .google-btn {
  background: rgba(255,255,255,.08);
  border-color: rgba(255,255,255,.15);
  color: rgba(255,255,255,.85);
}
:root[data-theme="dark"] .google-btn:hover {
  background: rgba(255,255,255,.14);
}
:root[data-theme="dark"] [style*="background:var(--ac-rose-light)"] {
  background: rgba(181,71,90,.15) !important;
  color: #f5b8c2 !important;
  border-color: rgba(181,71,90,.35) !important;
}

/* ===== GENRE CHIPS: dark mode readability ===== */
:root[data-theme="dark"] .ac-chip {
  background: rgba(13,27,42,.6);
  color: var(--ac-amber2);
  border: 1px solid rgba(200,134,10,.3);
  backdrop-filter: blur(8px);
}
:root[data-theme="dark"] .ac-chip:hover,
:root[data-theme="dark"] .ac-chip.active {
  background: var(--ac-amber2);
  color: #0d1b2a;
  border-color: var(--ac-amber2);
}

/* ===== BROWSE FILTER BAR: dark mode ===== */
:root[data-theme="dark"] .ac-filter-bar {
  background: rgba(255,255,255,.05) !important;
  border-color: rgba(255,255,255,.12) !important;
  color: var(--ac-ink);
}
:root[data-theme="dark"] .ac-filter-bar .form-select,
:root[data-theme="dark"] .ac-filter-bar .form-control {
  background: rgba(255,255,255,.05);
  color: rgba(255,255,255,.85);
  border: 1px solid rgba(255,255,255,.15);
}
:root[data-theme="dark"] .ac-filter-bar .form-select:focus,
:root[data-theme="dark"] .ac-filter-bar .form-control:focus {
  color: rgba(255,255,255,.95);
}
:root[data-theme="dark"] .ac-filter-bar .form-control::placeholder {
  color: rgba(255,255,255,.4);
}
[data-theme="dark"] .ac-filter-bar select,
[data-theme="dark"] .ac-filter-bar select option {
  background-color: #0d1b2a;
  color: rgba(255,255,255,0.85);
  border: 1px solid rgba(255,255,255,0.15);
}
[data-theme="dark"] .ac-filter-bar select:focus {
  border-color: var(--ac-amber2);
  outline: none;
  box-shadow: 0 0 0 2px rgba(200,134,10,0.25);
}

/* ===== HERO: "realm" + tag gold in both modes ===== */
.ac-hero-title em {
  color: var(--ac-amber2) !important;
  font-style: italic;
}
.ac-hero-tag {
  color: var(--ac-amber2) !important;
  border-color: rgba(224,155,26,.4) !important;
}
:root[data-theme="light"] .ac-hero-tag {
  background: rgba(224,155,26,.1) !important;
}

/* ===== PUBLISH YOUR WORK BUTTON: visible in light mode ===== */
:root[data-theme="light"] .btn-ac-outline {
  color: var(--ac-ink) !important;
  border: 1px solid var(--ac-ink) !important;
}
:root[data-theme="light"] .btn-ac-outline:hover {
  background: rgba(15,25,35,.08);
  color: var(--ac-ink) !important;
}

/* ===== CUSTOM CURSOR GLOW (desktop only) ===== */
.ac-cursor-glow {
  position: fixed;
  top: 0;
  left: 0;
  width: 40px;
  height: 40px;
  border-radius: 50%;
  background: radial-gradient(circle, rgba(200,134,10,.2) 0%, transparent 70%);
  pointer-events: none;
  z-index: 9997;
  will-change: transform;
}
.ac-cursor-particle {
  position: fixed;
  top: 0;
  left: 0;
  width: 5px;
  height: 8px;
  border-radius: 50%;
  background: rgba(200,134,10,.4);
  pointer-events: none;
  z-index: 9998;
  opacity: 1;
  transform: translate(-50%, -50%);
  transition: opacity 400ms ease-out, transform 400ms ease-out;
}
.ac-cursor-constellation {
  position: fixed;
  top: 0;
  left: 0;
  width: 100vw;
  height: 100vh;
  pointer-events: none;
  z-index: 0;
}

/* ===== HOMEPAGE BOOK SECTIONS ===== */
.ac-main-content {
  background: var(--ac-page-bg);
}
:root[data-theme="dark"] .ac-main-content {
  background: transparent;
}
