.reader-body {
  background: #1c2433;
  min-height: 100vh;
  display: flex;
  flex-direction: column;
}

.reader-bar {
  position: sticky;
  top: 0;
  z-index: 30;
  display: flex;
  align-items: center;
  gap: 1rem;
  padding: 0.7rem 1.2rem;
  background: var(--navy-deep);
  box-shadow: 0 2px 14px rgba(0,0,0,0.4);
}
.reader-bar .logo { font-size: 1.3rem; }
.reader-status {
  margin-left: auto;
  font-family: var(--stamp);
  font-size: 0.78rem;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: var(--gold);
  border: 1px solid rgba(212,160,23,0.4);
  padding: 0.25rem 0.7rem;
  border-radius: 3px;
}
.reader-status.unlocked { color: #6ee7b7; border-color: rgba(110,231,183,0.4); }

/* Viewer */
.viewer {
  flex: 1;
  width: 100%;
  max-width: 880px;
  margin: 0 auto;
  padding: 1.5rem 1rem 3rem;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 1.4rem;
  /* anti-copy */
  -webkit-user-select: none;
  -moz-user-select: none;
  user-select: none;
}
.viewer-loading {
  color: rgba(247,239,220,0.7);
  font-family: var(--stamp);
  letter-spacing: 0.1em;
  padding: 4rem 0;
}
.page-wrap {
  position: relative;
  width: 100%;
  border-radius: 4px;
  overflow: hidden;
  box-shadow: 0 10px 30px rgba(0,0,0,0.45);
  background: #0e1726;
}
.page-img {
  display: block;
  width: 100%;
  height: auto;
  pointer-events: none;
  -webkit-user-drag: none;
  user-drag: none;
}
/* transparent overlay to deter right-click / drag-save on the image */
.page-shield {
  position: absolute;
  inset: 0;
  z-index: 2;
}
.page-num {
  position: absolute;
  bottom: 8px; left: 10px;
  z-index: 3;
  font-family: var(--stamp);
  font-size: 0.7rem;
  color: rgba(247,239,220,0.55);
}

/* Paywall */
.paywall {
  position: relative;
  margin: -1rem auto 3rem;
  max-width: 880px;
  padding: 0 1rem;
}
.paywall::before {
  content: "";
  position: absolute;
  top: -160px; left: 0; right: 0;
  height: 160px;
  background: linear-gradient(to bottom, rgba(28,36,51,0), #1c2433);
  pointer-events: none;
}
.paywall-card {
  background: linear-gradient(160deg, var(--navy) 0%, var(--navy-deep) 100%);
  border: 1px solid rgba(247,239,220,0.16);
  border-top: 5px solid var(--gold);
  border-radius: 10px;
  padding: 2.4rem 2rem;
  text-align: center;
  color: var(--cream);
}
.paywall-card h2 { color: var(--cream); font-size: 2rem; margin-bottom: 0.7rem; }
.paywall-card p { color: rgba(247,239,220,0.85); max-width: 32rem; margin: 0 auto 0.8rem; }
.paywall-card .price { font-family: var(--display); font-size: 3rem; color: var(--cream); margin: 1rem 0 0.4rem; }
.paywall-card .price span { display:block; font-family: var(--head); font-size: 0.82rem; opacity: 0.7; }
.paywall-card .secure a { color: var(--gold); }

.reader-foot {
  background: var(--navy-deep);
  color: rgba(247,239,220,0.5);
  text-align: center;
  font-size: 0.78rem;
  padding: 1.2rem;
}

@media (max-width: 600px) {
  .reader-bar .btn-sm { font-size: 0.7rem; padding: 0.45rem 0.7rem; }
}
