/* ── Reading & Book Club — public frontend styles ── */

/* Catalog hero */
.lrn-books-hero {
  background: linear-gradient(135deg, #f0f7ff 0%, #e8f4fd 100%);
  padding: 3rem 0 2rem;
  text-align: center;
}
.lrn-books-hero-title {
  font-size: clamp(1.6rem, 4vw, 2.4rem);
  font-weight: 800;
  color: #1a2e44;
  margin: 0 0 .5rem;
}
.lrn-books-hero-sub {
  color: #4a6480;
  font-size: 1.05rem;
  margin: 0 auto .75rem;
  max-width: 560px;
}
.lrn-books-hero-badge {
  display: inline-block;
  background: #fff;
  border: 1px solid #c6dff7;
  border-radius: 999px;
  padding: .2rem .85rem;
  font-size: .82rem;
  color: #2563eb;
  font-weight: 600;
}

/* Filter bar */
.lrn-books-filters {
  display: flex;
  flex-wrap: wrap;
  gap: .5rem;
  align-items: center;
  padding: 1rem 0;
}
.lrn-books-filter-btn {
  display: inline-flex;
  align-items: center;
  gap: .3rem;
  padding: .35rem .9rem;
  border-radius: 999px;
  border: 1.5px solid #d1dde8;
  background: #fff;
  color: #2c4a60;
  font-size: .82rem;
  font-weight: 600;
  cursor: pointer;
  text-decoration: none;
  transition: border-color .15s, background .15s, color .15s;
}
.lrn-books-filter-btn:hover,
.lrn-books-filter-btn.active {
  border-color: #2563eb;
  background: #2563eb;
  color: #fff;
}

/* Book grid */
.lrn-book-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(180px, 1fr));
  gap: 1.25rem;
  padding: 1rem 0;
}
@media (max-width: 480px) {
  .lrn-book-grid {
    grid-template-columns: repeat(2, 1fr);
    gap: .75rem;
  }
}

/* Book card */
.lrn-book-card {
  display: flex;
  flex-direction: column;
  background: #fff;
  border-radius: .85rem;
  overflow: hidden;
  box-shadow: 0 2px 8px rgba(0,0,0,.07);
  text-decoration: none;
  color: inherit;
  transition: transform .15s, box-shadow .15s;
}
.lrn-book-card:hover {
  transform: translateY(-3px);
  box-shadow: 0 6px 20px rgba(0,0,0,.12);
}
.lrn-book-card-cover {
  aspect-ratio: 2 / 3;
  background: #e8f0f8;
  overflow: hidden;
  position: relative;
}
.lrn-book-card-cover img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}
.lrn-book-card-cover-placeholder {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 100%;
  height: 100%;
  font-size: 3rem;
  background: #dbeafe;
}
.lrn-book-card-body {
  padding: .6rem .75rem .75rem;
  flex: 1;
  display: flex;
  flex-direction: column;
}
.lrn-book-card-cat {
  font-size: .7rem;
  color: #6b8caa;
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: .03em;
  margin-bottom: .2rem;
}
.lrn-book-card-title {
  font-size: .88rem;
  font-weight: 700;
  color: #1a2e44;
  line-height: 1.3;
  margin: 0 0 .2rem;
  display: -webkit-box;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
  overflow: hidden;
}
.lrn-book-card-author {
  font-size: .76rem;
  color: #5d7a96;
  margin-bottom: .4rem;
}
.lrn-book-card-meta {
  display: flex;
  flex-wrap: wrap;
  gap: .25rem;
  margin-top: auto;
}
.lrn-book-badge {
  display: inline-block;
  padding: .1rem .45rem;
  border-radius: 999px;
  font-size: .66rem;
  font-weight: 700;
}
.lrn-book-badge--ages   { background: #dbeafe; color: #1d4ed8; }
.lrn-book-badge--level  { background: #dcfce7; color: #15803d; }
.lrn-book-badge--featured { background: #fef9c3; color: #854d0e; }
.lrn-book-badge--classroom { background: #f3e8ff; color: #6b21a8; }

/* Book detail page */
.lrn-book-detail {
  display: grid;
  grid-template-columns: 220px 1fr;
  gap: 2rem;
  align-items: start;
  padding: 2rem 0;
}
@media (max-width: 600px) {
  .lrn-book-detail { grid-template-columns: 1fr; }
}
.lrn-book-detail-cover {
  border-radius: 1rem;
  overflow: hidden;
  box-shadow: 0 4px 20px rgba(0,0,0,.15);
}
.lrn-book-detail-cover img {
  width: 100%;
  display: block;
}
.lrn-book-detail-cover-placeholder {
  aspect-ratio: 2 / 3;
  background: #dbeafe;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 4rem;
}
.lrn-book-detail-title {
  font-size: clamp(1.4rem, 3vw, 2rem);
  font-weight: 800;
  color: #1a2e44;
  margin: 0 0 .3rem;
}
.lrn-book-detail-author {
  color: #4a6480;
  font-size: 1rem;
  margin-bottom: .75rem;
}
.lrn-book-detail-meta {
  display: flex;
  flex-wrap: wrap;
  gap: .4rem;
  margin-bottom: 1rem;
}
.lrn-book-detail-desc {
  color: #2c4a60;
  line-height: 1.7;
  margin-bottom: 1.25rem;
}
.lrn-book-detail-actions {
  display: flex;
  flex-wrap: wrap;
  gap: .6rem;
}
.lrn-book-buy-btn {
  display: inline-flex;
  align-items: center;
  gap: .4rem;
  padding: .6rem 1.4rem;
  border-radius: 999px;
  font-weight: 700;
  font-size: .9rem;
  text-decoration: none;
  transition: opacity .15s;
}
.lrn-book-buy-btn:hover { opacity: .85; }
.lrn-book-buy-btn--amazon { background: #ff9900; color: #111; }
.lrn-book-buy-btn--scholastic { background: #e62429; color: #fff; }
.lrn-book-action-btn {
  display: inline-flex;
  align-items: center;
  gap: .4rem;
  padding: .55rem 1.2rem;
  border-radius: 999px;
  font-weight: 600;
  font-size: .88rem;
  border: 2px solid #2563eb;
  background: transparent;
  color: #2563eb;
  cursor: pointer;
  transition: background .15s, color .15s;
}
.lrn-book-action-btn:hover,
.lrn-book-action-btn.active {
  background: #2563eb;
  color: #fff;
}

/* Submit book form */
.lrn-book-submit-form {
  background: #fff;
  border-radius: 1rem;
  padding: 1.5rem;
  box-shadow: 0 2px 12px rgba(0,0,0,.07);
  max-width: 600px;
  margin: 0 auto;
}
.lrn-book-submit-form h2 {
  font-size: 1.3rem;
  font-weight: 800;
  color: #1a2e44;
  margin-bottom: 1rem;
}

/* Empty state */
.lrn-books-empty {
  text-align: center;
  padding: 3rem 1rem;
  color: #6b8caa;
}
.lrn-books-empty-icon { font-size: 3rem; margin-bottom: .75rem; }

/* Affiliate disclosure */
.lrn-affiliate-disclosure {
  font-size: .75rem;
  color: #8aa0b4;
  margin-top: .3rem;
}

/* ── Pagination ── */
.lrn-pagination {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: center;
  gap: .3rem;
  padding: 1.5rem 0;
}
.lrn-page-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 2.1rem;
  height: 2.1rem;
  padding: 0 .5rem;
  border-radius: .45rem;
  border: 1.5px solid #d1dde8;
  background: #fff;
  color: #2c4a60;
  font-size: .88rem;
  font-weight: 600;
  text-decoration: none;
  transition: border-color .12s, background .12s, color .12s;
}
.lrn-page-btn:hover { border-color: #2563eb; color: #2563eb; }
.lrn-page-btn--active {
  background: #2563eb;
  border-color: #2563eb;
  color: #fff;
  pointer-events: none;
}
.lrn-page-gap {
  display: inline-flex;
  align-items: center;
  color: #94a3b8;
  font-size: .9rem;
  padding: 0 .2rem;
  user-select: none;
}

/* Search bar */
.lrn-books-search {
  display: flex;
  gap: .5rem;
  max-width: 480px;
}
.lrn-books-search input {
  flex: 1;
  padding: .55rem 1rem;
  border: 1.5px solid #d1dde8;
  border-radius: 999px;
  font-size: .9rem;
  outline: none;
  font-family: inherit;
}
.lrn-books-search input:focus { border-color: #2563eb; }
.lrn-books-search button {
  padding: .55rem 1.2rem;
  border-radius: 999px;
  border: none;
  background: #2563eb;
  color: #fff;
  font-weight: 700;
  font-size: .9rem;
  cursor: pointer;
}

/* ════════════════════════════════════════════
   GOODREADS-STYLE BOOK DETAIL PAGE
   ════════════════════════════════════════════ */

.lrn-gr-page {
  background: #fff;
  min-height: 60vh;
}

/* ── Wrapper (max-width container) ── */
.lrn-gr-wrap {
  max-width: 980px;
  margin: 0 auto;
  padding: 0 1rem;
}

/* ── Breadcrumb ── */
.lrn-gr-breadcrumb-bar {
  background: #f8f9fa;
  border-bottom: 1px solid #e8ecf0;
  padding: .55rem 0;
}
.lrn-gr-breadcrumb {
  list-style: none;
  margin: 0; padding: 0;
  display: flex; flex-wrap: wrap; gap: .2rem .45rem;
  font-size: .78rem; color: #6b8caa;
  align-items: center;
}
.lrn-gr-breadcrumb li { display: flex; align-items: center; }
.lrn-gr-breadcrumb a { color: #2563eb; text-decoration: none; }
.lrn-gr-breadcrumb a:hover { text-decoration: underline; }
.lrn-gr-breadcrumb [aria-current] { color: #1a2e44; font-weight: 600; }

/* ── 2-column layout ── */
.lrn-gr-layout {
  display: grid;
  grid-template-columns: 220px 1fr;
  gap: 2.5rem;
  align-items: start;
}
@media (max-width: 660px) {
  .lrn-gr-layout {
    grid-template-columns: 1fr;
    gap: 1.25rem;
  }
}

/* ── Cover column ── */
.lrn-gr-cover-col {
  position: sticky;
  top: 1rem;
}
@media (max-width: 660px) {
  .lrn-gr-cover-col { position: static; }
}
.lrn-gr-cover-frame {
  border-radius: .75rem;
  overflow: hidden;
  box-shadow: 0 4px 24px rgba(0,0,0,.18);
  background: #dbeafe;
  text-align: center;
}
.lrn-gr-cover-img {
  width: 100%;
  display: block;
  aspect-ratio: 2/3;
  object-fit: cover;
}
.lrn-gr-cover-placeholder {
  aspect-ratio: 2/3;
  display: flex; align-items: center; justify-content: center;
  font-size: 4rem;
}

/* ── Rate widget (sidebar) ── */
.lrn-gr-rate-widget {
  margin-top: 1rem;
  text-align: center;
  padding: .7rem .5rem;
  background: #f8fbff;
  border-radius: .6rem;
  border: 1px solid #e2edf8;
}
.lrn-gr-rate-label {
  font-size: .72rem;
  font-weight: 700;
  color: #6b8caa;
  text-transform: uppercase;
  letter-spacing: .04em;
  margin-bottom: .35rem;
}
.lrn-gr-rate-stars {
  display: flex;
  justify-content: center;
  gap: .1rem;
}
.lrn-gr-rate-star {
  background: none; border: none;
  font-size: 1.7rem; line-height: 1;
  cursor: pointer; color: #ddd;
  transition: color .1s, transform .1s;
  padding: .05rem;
}
.lrn-gr-rate-star:hover,
.lrn-gr-rate-star.selected { color: #f5a623; transform: scale(1.15); }
.lrn-gr-rate-your {
  margin-top: .3rem;
  font-size: .74rem; color: #4a6480;
}

/* ── CTA button stack ── */
.lrn-gr-cta-stack {
  display: flex;
  flex-direction: column;
  gap: .5rem;
  margin-top: .85rem;
}
.lrn-gr-cta-btn {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: .4rem;
  padding: .65rem 1rem;
  border-radius: 999px;
  font-weight: 700;
  font-size: .88rem;
  text-decoration: none;
  transition: opacity .15s, transform .1s;
  text-align: center;
  cursor: pointer;
}
.lrn-gr-cta-btn:hover { opacity: .88; transform: translateY(-1px); }
.lrn-gr-cta-btn--read      { background: #2563eb; color: #fff; }
.lrn-gr-cta-btn--ebook     { background: #16a34a; color: #fff; }
.lrn-gr-cta-btn--amazon    { background: #ff9900; color: #111; }
.lrn-gr-cta-btn--scholastic{ background: #e62429; color: #fff; }
.lrn-gr-disclosure {
  font-size: .7rem; color: #8aa0b4;
  text-align: center; margin: -.1rem 0 0;
}

/* ── Book details dl ── */
.lrn-gr-book-details {
  margin-top: 1.2rem;
  font-size: .8rem;
}
.lrn-gr-details-heading {
  font-size: .68rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: .05em;
  color: #8aa0b4;
  margin-bottom: .4rem;
  padding-bottom: .25rem;
  border-bottom: 1px solid #e8ecf0;
}
.lrn-gr-details-list {
  display: grid;
  grid-template-columns: auto 1fr;
  gap: .25rem .6rem;
  margin: 0;
}
.lrn-gr-details-list dt { color: #8aa0b4; font-weight: 600; white-space: nowrap; }
.lrn-gr-details-list dd { margin: 0; color: #2c4a60; }

/* ── Info column ── */
.lrn-gr-cat-badge {
  display: inline-block;
  background: #eff6ff;
  color: #2563eb;
  font-size: .72rem;
  font-weight: 700;
  padding: .15rem .6rem;
  border-radius: 999px;
  text-decoration: none;
  margin-bottom: .6rem;
  border: 1px solid #bfdbfe;
}
.lrn-gr-cat-badge:hover { background: #2563eb; color: #fff; }
.lrn-gr-title {
  font-size: clamp(1.5rem, 3.5vw, 2.2rem);
  font-weight: 800;
  color: #1a2e44;
  line-height: 1.2;
  margin: 0 0 .35rem;
}
.lrn-gr-author-line {
  font-size: 1rem;
  color: #4a6480;
  margin-bottom: .5rem;
}
.lrn-gr-author-link {
  color: #2563eb;
  font-weight: 600;
  text-decoration: none;
}
.lrn-gr-author-link:hover { text-decoration: underline; }
.lrn-gr-author-pub { color: #8aa0b4; font-size: .88rem; }
.lrn-gr-badge-row {
  display: flex; flex-wrap: wrap; gap: .35rem;
  margin-bottom: .75rem;
}

/* ── Star display ── */
.lrn-stars { display: inline-flex; gap: 1px; }
.lrn-star { font-size: 1.05rem; line-height: 1; }
.lrn-star--full  { color: #f5a623; }
.lrn-star--half  { color: #f5a623; opacity: .6; }
.lrn-star--empty { color: #ddd; }

/* ── Rating bar ── */
.lrn-gr-rating-bar {
  display: flex;
  flex-direction: column;
  gap: .5rem;
  padding: .85rem 1rem;
  background: #f8fbff;
  border: 1px solid #e2edf8;
  border-radius: .75rem;
  margin-bottom: 1.25rem;
}
.lrn-gr-rating-main {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: .35rem;
}
.lrn-gr-rating-avg {
  font-size: 1.45rem;
  font-weight: 800;
  color: #1a2e44;
}
.lrn-gr-rating-meta { font-size: .8rem; color: #6b8caa; }
/* distribution bars */
.lrn-gr-dist { display: flex; flex-direction: column; gap: .18rem; }
.lrn-gr-dist-row {
  display: flex; align-items: center; gap: .4rem;
  font-size: .72rem; color: #6b8caa;
}
.lrn-gr-dist-label { width: 1.6rem; text-align: right; font-weight: 600; }
.lrn-gr-dist-bar-track {
  flex: 1; height: 7px;
  background: #e2edf8; border-radius: 999px; overflow: hidden;
}
.lrn-gr-dist-bar-fill {
  height: 100%; background: #f5a623; border-radius: 999px;
  transition: width .4s ease;
}
.lrn-gr-dist-count { width: 1.5rem; }

/* ════ SHELF ACTION BUTTONS ════ */
.lrn-gr-shelf-section {
  margin-bottom: 1.5rem;
}
.lrn-gr-shelf-btns {
  display: flex;
  flex-wrap: wrap;
  gap: .5rem;
  margin-bottom: .5rem;
}
.lrn-gr-shelf-btn {
  display: inline-flex;
  align-items: center;
  gap: .4rem;
  padding: .65rem 1.3rem;
  border-radius: 999px;
  font-weight: 700;
  font-size: .9rem;
  cursor: pointer;
  border: 2px solid transparent;
  transition: all .15s;
  white-space: nowrap;
  background: none;
}
/* Want to Read */
.lrn-gr-shelf-btn--want {
  background: #409857; color: #fff; border-color: #409857;
}
.lrn-gr-shelf-btn--want:hover { background: #317a43; border-color: #317a43; }
.lrn-gr-shelf-btn--want-active {
  background: #317a43; color: #fff; border-color: #317a43;
  box-shadow: 0 0 0 3px rgba(64,152,87,.25);
}
/* Currently Reading */
.lrn-gr-shelf-btn--reading {
  background: #fff; color: #2563eb; border-color: #2563eb;
}
.lrn-gr-shelf-btn--reading:hover { background: #eff6ff; }
.lrn-gr-shelf-btn--reading-active {
  background: #2563eb; color: #fff; border-color: #2563eb;
  box-shadow: 0 0 0 3px rgba(37,99,235,.2);
}
/* Done */
.lrn-gr-shelf-btn--done {
  background: #fff; color: #0f766e; border-color: #0f766e;
}
.lrn-gr-shelf-btn--done:hover { background: #f0fdfa; }
.lrn-gr-shelf-btn--done-active {
  background: #0f766e; color: #fff; border-color: #0f766e;
  box-shadow: 0 0 0 3px rgba(15,118,110,.2);
}
/* Add to list */
.lrn-gr-shelf-btn--list {
  background: #fff; color: #6b21a8; border-color: #a855f7;
}
.lrn-gr-shelf-btn--list:hover { background: #faf5ff; }
/* Outline (guest sign-in) */
.lrn-gr-shelf-btn--outline {
  background: #fff; color: #1a2e44; border-color: #cbd5e1;
}
.lrn-gr-shelf-btn--outline:hover { border-color: #2563eb; color: #2563eb; }

.lrn-gr-shelf-msg {
  font-size: .85rem; min-height: 1.3em; font-weight: 600;
}
.lrn-gr-shelf-guest {
  background: #f0f7ff;
  border-radius: .75rem;
  padding: 1rem 1.2rem;
  display: flex; flex-wrap: wrap; align-items: center; gap: .6rem;
}
.lrn-gr-shelf-guest p {
  width: 100%; margin: 0 0 .4rem;
  font-size: .88rem; color: #1e40af; font-weight: 600;
}
.lrn-gr-list-picker {
  background: #f0f7ff;
  border-radius: .75rem;
  padding: .85rem 1rem;
  margin-top: .5rem;
}
.lrn-gr-list-picker p {
  font-size: .84rem; font-weight: 700; color: #1a2e44; margin: 0 0 .5rem;
}
.lrn-gr-list-picker-btns {
  display: flex; flex-wrap: wrap; gap: .4rem;
}
.lrn-gr-picker-close {
  margin-top: .5rem; background: none; border: none;
  color: #6b8caa; font-size: .78rem; cursor: pointer;
}

/* ── Description ── */
.lrn-gr-desc-section { margin-bottom: 1.5rem; }
.lrn-gr-desc-body {
  color: #2c4a60;
  line-height: 1.75;
  font-size: .95rem;
  max-height: 5.5em;
  overflow: hidden;
  position: relative;
  transition: max-height .35s ease;
}
.lrn-gr-desc-body::after {
  content: '';
  position: absolute; bottom: 0; left: 0; right: 0;
  height: 2.5em;
  background: linear-gradient(transparent, #fff);
  pointer-events: none;
  transition: opacity .2s;
}
.lrn-gr-desc-expanded { max-height: 200em; }
.lrn-gr-desc-expanded::after { opacity: 0; }
.lrn-gr-desc-toggle {
  background: none; border: none;
  color: #2563eb; font-weight: 700;
  font-size: .85rem; cursor: pointer;
  padding: .2rem 0;
  margin-top: .1rem;
  display: block;
}
.lrn-gr-desc-toggle:hover { text-decoration: underline; }

/* ── Genres / Tags ── */
.lrn-gr-genres { margin-bottom: 1.5rem; }
.lrn-gr-genres-heading {
  font-size: .7rem; font-weight: 700; color: #8aa0b4;
  text-transform: uppercase; letter-spacing: .05em;
  margin-bottom: .45rem;
}
.lrn-gr-genres-list { display: flex; flex-wrap: wrap; gap: .35rem; }
.lrn-gr-genre-pill {
  display: inline-block;
  background: #f1f5f9; color: #334155;
  border-radius: 999px; padding: .2rem .7rem;
  font-size: .75rem; font-weight: 600;
  text-decoration: none; border: 1px solid #e2e8f0;
  transition: background .12s, color .12s;
}
.lrn-gr-genre-pill:hover { background: #e2e8f0; }
.lrn-gr-genre-pill--cat { background: #eff6ff; color: #2563eb; border-color: #bfdbfe; }
.lrn-gr-genre-pill--cat:hover { background: #2563eb; color: #fff; }

/* ════ COMMUNITY REVIEWS ════ */
.lrn-gr-reviews-section { margin-top: .5rem; }
.lrn-gr-reviews-heading {
  font-size: 1.15rem; font-weight: 800; color: #1a2e44;
  margin: 0 0 .85rem; padding-bottom: .5rem;
  border-bottom: 2px solid #e2edf8;
  display: flex; align-items: center; gap: .4rem;
}
.lrn-gr-reviews-count { font-size: .85rem; color: #8aa0b4; font-weight: 400; }

/* Write review box */
.lrn-gr-write-review {
  background: #f8fbff;
  border: 1px solid #dce8f5;
  border-radius: .85rem;
  padding: 1rem 1.1rem;
  margin-bottom: 1.25rem;
}
.lrn-gr-write-review-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  flex-wrap: wrap;
  gap: .5rem;
  font-size: .85rem; font-weight: 700; color: #1a2e44;
  margin-bottom: .65rem;
}
.lrn-gr-write-stars {
  display: inline-flex; align-items: center; gap: .05rem;
}
.lrn-gr-write-star {
  background: none; border: none;
  font-size: 1.4rem; cursor: pointer; color: #ddd;
  transition: color .1s, transform .1s;
  padding: .05rem;
  line-height: 1;
}
.lrn-gr-write-star:hover,
.lrn-gr-write-star.selected { color: #f5a623; transform: scale(1.12); }
.lrn-gr-write-star-label {
  font-size: .78rem; color: #6b8caa; margin-left: .3rem;
  min-width: 9rem; font-weight: 600;
}
.lrn-gr-review-textarea {
  width: 100%; box-sizing: border-box;
  border: 1.5px solid #d1dde8;
  border-radius: .5rem;
  padding: .6rem .8rem;
  font-size: .88rem;
  font-family: inherit;
  line-height: 1.6;
  resize: vertical;
  color: #1a2e44;
  background: #fff;
  transition: border-color .15s;
}
.lrn-gr-review-textarea:focus { outline: none; border-color: #2563eb; }
.lrn-gr-review-form-footer {
  display: flex; align-items: center; gap: .75rem;
  margin-top: .6rem; flex-wrap: wrap;
}
.lrn-gr-submit-review {
  padding: .5rem 1.3rem;
  border-radius: 999px;
  border: none;
  background: #2563eb; color: #fff;
  font-weight: 700; font-size: .88rem;
  cursor: pointer;
  transition: background .15s;
}
.lrn-gr-submit-review:hover { background: #1d4ed8; }
.lrn-gr-submit-review:disabled { opacity: .6; cursor: not-allowed; }
.lrn-gr-review-form-msg { font-size: .82rem; font-weight: 600; }
.lrn-gr-review-gate {
  font-size: .85rem; color: #6b8caa;
  padding: .75rem 0; margin-bottom: 1rem;
}
.lrn-gr-review-gate a { color: #2563eb; font-weight: 600; }

/* Review cards */
.lrn-gr-reviews-list { display: flex; flex-direction: column; gap: 1rem; }
.lrn-gr-review-card {
  display: flex; gap: .75rem;
  padding: 1rem;
  border: 1px solid #e8f0f8;
  border-radius: .85rem;
  background: #fff;
  transition: box-shadow .15s;
}
.lrn-gr-review-card--new {
  animation: reviewFadeIn .4s ease;
  border-color: #bfdbfe;
}
@keyframes reviewFadeIn {
  from { opacity: 0; transform: translateY(-8px); }
  to   { opacity: 1; transform: translateY(0); }
}
.lrn-gr-review-card:hover { box-shadow: 0 2px 10px rgba(0,0,0,.06); }
.lrn-gr-review-avatar {
  font-size: 2rem; line-height: 1;
  flex-shrink: 0; width: 2.5rem; text-align: center;
}
.lrn-gr-review-body { flex: 1; min-width: 0; }
.lrn-gr-review-top {
  display: flex; flex-wrap: wrap; align-items: center;
  gap: .35rem; margin-bottom: .4rem;
}
.lrn-gr-review-name { font-weight: 700; color: #1a2e44; font-size: .88rem; }
.lrn-gr-review-role {
  background: #f3e8ff; color: #6b21a8;
  font-size: .65rem; font-weight: 700;
  padding: .1rem .45rem; border-radius: 999px;
}
.lrn-gr-review-stars { display: inline-flex; gap: 1px; font-size: .88rem; }
.lrn-gr-review-date { font-size: .75rem; color: #8aa0b4; margin-left: auto; }
.lrn-gr-review-text {
  font-size: .88rem; color: #2c4a60; line-height: 1.65;
}
.lrn-gr-reviews-empty {
  text-align: center; color: #8aa0b4;
  font-size: .9rem; padding: 2rem 1rem;
}

/* ════ SHELF SECTIONS (author / related / popular) ════ */
.lrn-gr-shelf-section-full {
  padding: 2rem 0;
  border-top: 1px solid #e8f0f8;
}
.lrn-gr-shelf-title {
  font-size: 1.15rem; font-weight: 800; color: #1a2e44;
  margin: 0 0 1rem;
}
.lrn-gr-shelf-title em { font-style: normal; color: #2563eb; }

/* Horizontal scroll row */
.lrn-gr-scroll-row {
  display: flex;
  gap: 1rem;
  overflow-x: auto;
  padding-bottom: .5rem;
  scrollbar-width: thin;
  scrollbar-color: #cbd5e1 transparent;
}
.lrn-gr-scroll-row::-webkit-scrollbar { height: 5px; }
.lrn-gr-scroll-row::-webkit-scrollbar-track { background: transparent; }
.lrn-gr-scroll-row::-webkit-scrollbar-thumb { background: #cbd5e1; border-radius: 999px; }

.lrn-gr-scroll-card {
  display: flex; flex-direction: column;
  flex: 0 0 140px;
  text-decoration: none; color: inherit;
  border-radius: .65rem;
  overflow: hidden;
  border: 1px solid #e8f0f8;
  background: #fff;
  transition: box-shadow .15s, transform .15s;
}
.lrn-gr-scroll-card:hover {
  box-shadow: 0 4px 14px rgba(0,0,0,.1);
  transform: translateY(-2px);
}
.lrn-gr-scroll-cover {
  aspect-ratio: 2/3;
  background: #dbeafe;
  overflow: hidden;
}
.lrn-gr-scroll-cover img {
  width: 100%; height: 100%; object-fit: cover; display: block;
}
.lrn-gr-scroll-cover-ph {
  width: 100%; height: 100%;
  display: flex; align-items: center; justify-content: center;
  font-size: 2rem;
}
.lrn-gr-scroll-info {
  padding: .45rem .55rem .6rem;
}
.lrn-gr-scroll-ttl {
  font-size: .78rem; font-weight: 700; color: #1a2e44;
  line-height: 1.3; margin-bottom: .15rem;
  display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden;
}
.lrn-gr-scroll-sub { font-size: .7rem; color: #6b8caa; }

/* ── Responsive adjustments ── */
@media (max-width: 660px) {
  .lrn-gr-shelf-btns { gap: .4rem; }
  .lrn-gr-shelf-btn { font-size: .82rem; padding: .55rem 1rem; }
  .lrn-gr-title { font-size: 1.5rem; }
  .lrn-gr-rating-avg { font-size: 1.2rem; }
  .lrn-gr-write-review-header { flex-direction: column; align-items: flex-start; }
  .lrn-gr-scroll-card { flex: 0 0 120px; }
}

/* ════════════════════════════════════════════════════
   READING PROGRESS WIDGET (book page sidebar)
   ════════════════════════════════════════════════════ */
.lrn-gr-progress-widget {
  background: #f0fdf4;
  border: 1.5px solid #bbf7d0;
  border-radius: .85rem;
  padding: .85rem 1rem;
  margin: .75rem 0;
}
.lrn-gr-progress-heading {
  font-size: .78rem;
  font-weight: 800;
  color: #15803d;
  letter-spacing: .04em;
  text-transform: uppercase;
  margin-bottom: .5rem;
}
.lrn-gr-progress-bar-track {
  height: 8px;
  background: #d1fae5;
  border-radius: 999px;
  overflow: hidden;
  margin-bottom: .3rem;
}
.lrn-gr-progress-bar-fill {
  height: 100%;
  background: linear-gradient(90deg, #22c55e, #16a34a);
  border-radius: 999px;
  transition: width .5s ease;
}
.lrn-gr-progress-pct {
  font-size: .72rem;
  font-weight: 700;
  color: #16a34a;
  text-align: right;
  margin-bottom: .4rem;
}
.lrn-gr-progress-dl {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: .15rem .5rem;
  margin: 0 0 .5rem;
}
.lrn-gr-progress-dl dt {
  font-size: .72rem;
  color: #6b7280;
  font-weight: 600;
}
.lrn-gr-progress-dl dd {
  font-size: .78rem;
  color: #1a2e44;
  font-weight: 700;
  margin: 0;
}
.lrn-gr-streak-badge {
  background: linear-gradient(135deg, #fef9c3, #fef3c7);
  border: 1px solid #fbbf24;
  color: #92400e;
  font-size: .75rem;
  font-weight: 700;
  border-radius: 999px;
  padding: .25rem .7rem;
  text-align: center;
  margin-bottom: .5rem;
}
.lrn-gr-log-reading-btn {
  display: block;
  text-align: center;
  text-decoration: none;
  background: #16a34a;
  color: #fff;
  font-size: .8rem;
  font-weight: 700;
  border-radius: .55rem;
  padding: .5rem;
  transition: background .15s;
}
.lrn-gr-log-reading-btn:hover { background: #15803d; color: #fff; }

/* ════════════════════════════════════════════════════
   TEACHER ASSIGNMENT BOX (book page info col)
   ════════════════════════════════════════════════════ */
.lrn-gr-assignment-box {
  background: #eff6ff;
  border: 1.5px solid #bfdbfe;
  border-radius: .85rem;
  padding: 1rem 1.1rem;
  margin-bottom: 1rem;
}
.lrn-gr-assignment-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  margin-bottom: .5rem;
  flex-wrap: wrap;
  gap: .35rem;
}
.lrn-gr-assignment-label {
  font-size: .8rem;
  font-weight: 800;
  color: #1d4ed8;
  letter-spacing: .04em;
  text-transform: uppercase;
}
.lrn-gr-assignment-status-badge {
  font-size: .78rem;
  font-weight: 700;
}
.lrn-gr-assignment-teacher {
  display: flex;
  align-items: center;
  gap: .4rem;
  font-size: .9rem;
  margin-bottom: .35rem;
}
.lrn-gr-assignment-avatar { font-size: 1.2rem; }
.lrn-gr-assignment-school { font-size: .8rem; color: #64748b; }
.lrn-gr-assignment-title {
  font-size: .88rem;
  color: #1e40af;
  font-weight: 600;
  margin-bottom: .3rem;
}
.lrn-gr-assignment-dates {
  font-size: .8rem;
  color: #4a6480;
  margin-bottom: .35rem;
}
.lrn-gr-assignment-reqs {
  display: flex;
  flex-wrap: wrap;
  gap: .4rem;
  margin-bottom: .35rem;
}
.lrn-gr-assignment-reqs span {
  background: #dbeafe;
  color: #1e40af;
  border-radius: 999px;
  padding: .15rem .65rem;
  font-size: .76rem;
  font-weight: 700;
}
.lrn-gr-assignment-instructions {
  font-size: .82rem;
  color: #374151;
  background: #fff;
  border-radius: .45rem;
  padding: .55rem .75rem;
  margin-top: .35rem;
  border: 1px solid #dbeafe;
}

/* ── Parent book assignment box ── */
.lrn-gr-parent-assign-box {
  background: #f0fdf4;
  border: 1.5px solid #bbf7d0;
  border-radius: .85rem;
  padding: 1rem 1.1rem;
  margin-bottom: 1rem;
}
.lrn-gr-parent-assign-children {
  display: flex;
  flex-direction: column;
  gap: .5rem;
}
.lrn-gr-parent-assign-row {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: .5rem;
  flex-wrap: wrap;
  padding: .35rem 0;
  border-bottom: 1px solid #d1fae5;
}
.lrn-gr-parent-assign-row:last-child { border-bottom: none; }
.lrn-gr-parent-assign-name {
  font-size: .9rem;
  font-weight: 600;
  color: #1a2e44;
}
.lrn-gr-parent-assign-badge {
  font-size: .78rem;
  font-weight: 700;
  padding: .2rem .55rem;
  border-radius: 99px;
}
.lrn-gr-parent-assign-badge--reading { background:#dbeafe;color:#1d4ed8; }
.lrn-gr-parent-assign-badge--done    { background:#dcfce7;color:#15803d; }
.lrn-gr-parent-assign-badge--want    { background:#fef9c3;color:#854d0e; }
.lrn-gr-parent-assign-btn {
  background: #16a34a;
  color: #fff;
  border: none;
  border-radius: .45rem;
  padding: .28rem .75rem;
  font-size: .8rem;
  font-weight: 700;
  cursor: pointer;
  transition: background .15s;
}
.lrn-gr-parent-assign-btn:hover { background: #15803d; }
.lrn-gr-parent-assign-btn:disabled { opacity: .6; cursor: default; }

/* ════════════════════════════════════════════════════
   MY READING SECTION (books catalog page)
   ════════════════════════════════════════════════════ */
.lrn-my-reading-section {
  background: linear-gradient(135deg, #fafbff 0%, #f0f7ff 100%);
  border-bottom: 1px solid #e8f0f8;
  padding: 1.25rem 0 1rem;
}
.lrn-my-reading-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  margin-bottom: .75rem;
  gap: .5rem;
  flex-wrap: wrap;
}
.lrn-my-reading-title {
  font-size: 1.1rem;
  font-weight: 800;
  color: #1a2e44;
  margin: 0;
}
.lrn-my-reading-log-link {
  font-size: .82rem;
  font-weight: 700;
  color: #2563eb;
  text-decoration: none;
  border: 1.5px solid #bfdbfe;
  border-radius: 999px;
  padding: .25rem .75rem;
  transition: all .15s;
}
.lrn-my-reading-log-link:hover { background: #eff6ff; }
.lrn-my-reading-tabs {
  display: flex;
  gap: .4rem;
  flex-wrap: wrap;
  margin-bottom: .85rem;
}
.lrn-my-reading-tab {
  display: inline-flex;
  align-items: center;
  gap: .25rem;
  padding: .3rem .85rem;
  border-radius: 999px;
  border: 1.5px solid #d1dde8;
  background: #fff;
  color: #4a6480;
  font-size: .8rem;
  font-weight: 600;
  text-decoration: none;
  transition: all .15s;
}
.lrn-my-reading-tab:hover { border-color: #93c5fd; background: #eff6ff; }
.lrn-my-reading-tab.active {
  background: #2563eb;
  border-color: #2563eb;
  color: #fff;
}
.lrn-my-reading-scroll {
  display: flex;
  gap: .75rem;
  overflow-x: auto;
  padding-bottom: .5rem;
  scrollbar-width: thin;
  scrollbar-color: #cbd5e1 transparent;
}
.lrn-my-reading-card {
  display: flex;
  flex-direction: column;
  flex: 0 0 110px;
  text-decoration: none;
  color: inherit;
  border-radius: .65rem;
  overflow: hidden;
  border: 1.5px solid #e8f0f8;
  background: #fff;
  transition: box-shadow .15s, transform .15s;
}
.lrn-my-reading-card:hover {
  box-shadow: 0 4px 14px rgba(0,0,0,.1);
  transform: translateY(-2px);
}
.lrn-my-reading-cover {
  aspect-ratio: 2/3;
  background: #dbeafe;
  overflow: hidden;
}
.lrn-my-reading-cover img { width:100%;height:100%;object-fit:cover;display:block; }
.lrn-my-reading-cover-ph {
  width:100%;height:100%;
  display:flex;align-items:center;justify-content:center;
  font-size:1.8rem;
}
.lrn-my-reading-card-info { padding: .4rem .5rem .55rem; }
.lrn-my-reading-card-title {
  font-size: .72rem;
  font-weight: 700;
  color: #1a2e44;
  line-height: 1.3;
  display: -webkit-box;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
  overflow: hidden;
}
.lrn-my-reading-card-author { font-size: .68rem; color: #6b8caa; margin-top: .1rem; }
.lrn-my-reading-card-due { font-size: .68rem; color: #dc2626; font-weight: 700; margin-top: .1rem; }
.lrn-my-reading-empty {
  font-size: .88rem;
  color: #6b8caa;
  padding: .75rem 0;
}

/* ════════════════════════════════════════════════════
   POPULAR SECTIONS (books catalog page — bottom)
   ════════════════════════════════════════════════════ */
.lrn-popular-section {
  padding: 2rem 0;
  border-top: 1px solid #eef2f7;
}
.lrn-popular-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  margin-bottom: 1rem;
  gap: .5rem;
}
.lrn-popular-title {
  font-size: 1.15rem;
  font-weight: 800;
  color: #1a2e44;
  margin: 0;
}
.lrn-popular-see-all {
  font-size: .82rem;
  font-weight: 600;
  color: #2563eb;
  text-decoration: none;
}
.lrn-popular-see-all:hover { text-decoration: underline; }

/* ════════════════════════════════════════════════════
   COLLECTION CARDS (books page + catalog page)
   ════════════════════════════════════════════════════ */
.lrn-collection-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(240px, 1fr));
  gap: 1rem;
}
.lrn-collection-grid--large {
  grid-template-columns: repeat(auto-fill, minmax(280px, 1fr));
  gap: 1.25rem;
}
.lrn-collection-card {
  display: flex;
  flex-direction: column;
  text-decoration: none;
  color: inherit;
  border-radius: .85rem;
  overflow: hidden;
  border: 1.5px solid #e8f0f8;
  background: #fff;
  transition: box-shadow .2s, transform .15s;
}
.lrn-collection-card:hover {
  box-shadow: 0 6px 20px rgba(0,0,0,.09);
  transform: translateY(-3px);
}
.lrn-collection-cover {
  height: 140px;
  background-size: cover;
  background-position: center;
  background-color: #dbeafe;
}
.lrn-collection-cover--tall { height: 180px; }
.lrn-collection-cover--empty {
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 2.5rem;
}
.lrn-collection-body { padding: .85rem 1rem 1rem; flex: 1; }
.lrn-collection-title {
  font-size: 1rem;
  font-weight: 800;
  color: #1a2e44;
  margin-bottom: .25rem;
  line-height: 1.3;
}
.lrn-collection-meta {
  font-size: .78rem;
  color: #2563eb;
  font-weight: 600;
  margin-bottom: .35rem;
}
.lrn-collection-desc {
  font-size: .82rem;
  color: #4a6480;
  line-height: 1.5;
  margin-bottom: .5rem;
}
.lrn-collection-tags { display: flex; flex-wrap: wrap; gap: .3rem; }

/* ════════════════════════════════════════════════════
   COLLECTION DETAIL PAGE
   ════════════════════════════════════════════════════ */
.lrn-collection-detail-hero {
  padding: 3rem 0 2rem;
  text-align: center;
  background: linear-gradient(135deg, #eff6ff 0%, #dbeafe 100%);
  background-size: cover;
  background-position: center;
  position: relative;
}
.lrn-collection-detail-hero::before {
  content: '';
  position: absolute;
  inset: 0;
  background: rgba(255,255,255,.82);
}
.lrn-collection-detail-hero .lrn-container { position: relative; z-index: 1; }
.lrn-collection-detail-title {
  font-size: clamp(1.5rem, 4vw, 2.2rem);
  font-weight: 800;
  color: #1a2e44;
  margin: 0 0 .5rem;
}
.lrn-collection-detail-desc {
  color: #4a6480;
  font-size: 1.05rem;
  margin: 0 auto .75rem;
  max-width: 560px;
}
.lrn-collection-detail-meta {
  display: inline-block;
  background: #fff;
  border: 1px solid #bfdbfe;
  border-radius: 999px;
  padding: .2rem .9rem;
  font-size: .83rem;
  color: #2563eb;
  font-weight: 600;
}

/* ════════════════════════════════════════════════════
   READING CERTIFICATE
   ════════════════════════════════════════════════════ */
.lrn-cert-page { padding: 2rem 0 3rem; }
.lrn-cert {
  max-width: 680px;
  margin: 0 auto;
  background: #fff;
  border: 6px double #a78bfa;
  border-radius: 1.25rem;
  padding: 2.5rem 2rem 2rem;
  text-align: center;
  box-shadow: 0 8px 40px rgba(139, 92, 246, .15);
  font-family: Georgia, serif;
}
.lrn-cert-stars-top,
.lrn-cert-stars-bottom {
  color: #c084fc;
  font-size: .9rem;
  letter-spacing: .1em;
  margin-bottom: .5rem;
}
.lrn-cert-stars-bottom { margin-top: 1rem; }
.lrn-cert-header { margin-bottom: .25rem; }
.lrn-cert-site-name {
  font-size: .85rem;
  color: #7c3aed;
  font-weight: 700;
  letter-spacing: .1em;
  text-transform: uppercase;
}
.lrn-cert-presents { font-size: 1rem; color: #6d28d9; }
.lrn-cert-ribbon {
  font-size: 3rem;
  margin: .5rem 0;
  display: block;
}
.lrn-cert-main-title {
  font-size: clamp(1.4rem, 4vw, 2rem);
  color: #4c1d95;
  font-weight: 700;
  margin: .25rem 0 .75rem;
}
.lrn-cert-awarded-to {
  font-size: .9rem;
  color: #6b7280;
  margin-bottom: .35rem;
}
.lrn-cert-child-name {
  font-size: clamp(1.6rem, 5vw, 2.4rem);
  font-weight: 700;
  color: #2563eb;
  border-bottom: 2px solid #a5b4fc;
  display: inline-block;
  padding-bottom: .25rem;
  margin: 0 auto .75rem;
}
.lrn-cert-for-reading { font-size: .9rem; color: #6b7280; margin-bottom: .25rem; }
.lrn-cert-book-title {
  font-size: 1.25rem;
  font-weight: 700;
  color: #1a2e44;
  margin-bottom: .2rem;
  font-style: italic;
}
.lrn-cert-book-author { font-size: .9rem; color: #4a6480; margin-bottom: .75rem; }
.lrn-cert-message {
  font-size: 1rem;
  color: #4a6480;
  margin: .75rem 0 1.25rem;
  font-style: italic;
}
.lrn-cert-footer {
  display: flex;
  align-items: flex-end;
  justify-content: space-between;
  gap: 1rem;
  margin-top: 1rem;
  padding-top: 1rem;
  border-top: 1px dashed #c4b5fd;
}
.lrn-cert-footer-col { flex: 1; text-align: center; }
.lrn-cert-footer-line {
  height: 1px;
  background: #4a6480;
  margin-bottom: .3rem;
}
.lrn-cert-footer-label { font-size: .72rem; color: #9ca3af; text-transform: uppercase; letter-spacing: .08em; }
.lrn-cert-footer-value { font-size: .85rem; color: #1a2e44; font-weight: 600; }
.lrn-cert-seal {
  width: 72px;
  height: 72px;
  background: linear-gradient(135deg, #7c3aed, #4f46e5);
  border-radius: 50%;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  box-shadow: 0 0 0 4px #ede9fe, 0 0 0 8px #c4b5fd;
  flex-shrink: 0;
}
.lrn-cert-seal-inner { font-size: 1.5rem; }
.lrn-cert-seal-text { font-size: .5rem; color: #fff; font-weight: 800; text-align: center; line-height: 1.2; text-transform: uppercase; }

@media (max-width: 600px) {
  .lrn-cert { padding: 1.5rem 1rem; border-width: 3px; }
  .lrn-cert-footer { flex-direction: column; align-items: center; }
  .lrn-my-reading-section .lrn-container { padding: 0 .75rem; }
  .lrn-collection-grid { grid-template-columns: 1fr 1fr; }
}

/* ── Parent Dashboard — Little Readers Club section ──────────────────────── */
.lrn-cp-reading-section {
  background: #fff;
  border: 1px solid #e2eaf3;
  border-radius: .85rem;
  padding: 1.25rem 1.25rem 1rem;
  margin: 0 1rem 1.25rem;
}
.lrn-cp-reading-header {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: .6rem;
  margin-bottom: 1rem;
}
.lrn-cp-reading-title {
  font-size: 1.05rem;
  font-weight: 800;
  color: #1a2e44;
  margin: 0;
  flex-shrink: 0;
}
.lrn-cp-reading-actions {
  display: flex;
  flex-wrap: wrap;
  gap: .4rem;
  margin-left: auto;
}
.lrn-cp-reading-action-btn {
  display: inline-flex;
  align-items: center;
  gap: .3rem;
  background: #f0f7ff;
  color: #1d4ed8;
  border: 1px solid #bfdbfe;
  border-radius: 999px;
  padding: .25rem .75rem;
  font-size: .78rem;
  font-weight: 700;
  text-decoration: none;
  transition: background .15s;
  white-space: nowrap;
}
.lrn-cp-reading-action-btn:hover { background: #dbeafe; }
.lrn-cp-reading-action-btn--alert {
  background: #fef3c7;
  color: #92400e;
  border-color: #fcd34d;
}
.lrn-cp-reading-action-btn--alert:hover { background: #fde68a; }

.lrn-cp-reading-body {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 1rem;
}
@media (max-width: 680px) {
  .lrn-cp-reading-body { grid-template-columns: 1fr; }
  .lrn-cp-reading-actions { margin-left: 0; }
}

.lrn-cp-reading-card {
  background: #f8fafc;
  border: 1px solid #e8edf4;
  border-radius: .65rem;
  padding: .85rem 1rem;
}
.lrn-cp-reading-card--empty {
  display: flex;
  align-items: center;
  justify-content: center;
  color: #6b7280;
  font-size: .85rem;
  min-height: 72px;
}
.lrn-cp-reading-card--empty p { margin: 0; }
.lrn-cp-reading-card-title {
  font-size: .82rem;
  font-weight: 800;
  color: #1a2e44;
  margin: 0 0 .65rem;
  text-transform: uppercase;
  letter-spacing: .04em;
}

/* Log table */
.lrn-cp-reading-table {
  width: 100%;
  border-collapse: collapse;
  font-size: .78rem;
}
.lrn-cp-reading-table th {
  text-align: left;
  padding: .2rem .4rem;
  color: #6b8caa;
  font-size: .68rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: .04em;
  border-bottom: 1px solid #e2eaf3;
}
.lrn-cp-reading-table td {
  padding: .35rem .4rem;
  border-bottom: 1px solid #f0f4f8;
  vertical-align: middle;
  color: #374151;
}
.lrn-cp-reading-table tr:last-child td { border-bottom: none; }
.lrn-cp-reading-book-link {
  color: #1d4ed8;
  text-decoration: none;
  font-weight: 600;
}
.lrn-cp-reading-book-link:hover { text-decoration: underline; }
.lrn-cp-log-approved { color: #15803d; font-weight: 700; font-size: .72rem; }
.lrn-cp-log-rejected { color: #dc2626; font-weight: 700; font-size: .72rem; }
.lrn-cp-log-pending  { color: #d97706; font-weight: 700; font-size: .72rem; }
.lrn-cp-reading-see-all {
  display: block;
  margin-top: .55rem;
  font-size: .75rem;
  color: #2563eb;
  font-weight: 700;
  text-decoration: none;
}
.lrn-cp-reading-see-all:hover { text-decoration: underline; }

/* Certificate list */
.lrn-cp-cert-list { display: flex; flex-direction: column; gap: .4rem; }
.lrn-cp-cert-item {
  display: flex;
  align-items: center;
  gap: .6rem;
  background: #fff;
  border: 1px solid #e8edf4;
  border-radius: .45rem;
  padding: .45rem .65rem;
  text-decoration: none;
  color: inherit;
  transition: background .15s;
}
.lrn-cp-cert-item:hover { background: #f0f7ff; }
.lrn-cp-cert-icon { font-size: 1.3rem; flex-shrink: 0; }
.lrn-cp-cert-info {
  display: flex;
  flex-direction: column;
  gap: .1rem;
  min-width: 0;
}
.lrn-cp-cert-info strong { font-size: .78rem; color: #1a2e44; }
.lrn-cp-cert-info span   { font-size: .72rem; color: #5a7fa0; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.lrn-cp-cert-info small  { font-size: .66rem; color: #9ca3af; }
.lrn-cp-cert-view {
  margin-left: auto;
  font-size: .72rem;
  color: #2563eb;
  font-weight: 700;
  flex-shrink: 0;
}

/* ── Profile sidebar — Little Readers Club widget ─────────────────── */
.lrn-profile-reading-card { }

/* Title row with privacy toggle */
.lrn-profile-side-card-title-row {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: .5rem;
  margin-bottom: .65rem;
}
.lrn-profile-side-card-title-row .lrn-profile-side-card-title {
  margin-bottom: 0;
}
.lrn-profile-reading-privacy-btn {
  background: none;
  border: none;
  padding: .15rem .25rem;
  cursor: pointer;
  font-size: 1rem;
  line-height: 1;
  border-radius: .3rem;
  opacity: .6;
  transition: opacity .15s;
  flex-shrink: 0;
}
.lrn-profile-reading-privacy-btn:hover { opacity: 1; }

/* Hidden notice */
.lrn-profile-reading-hidden-notice {
  font-size: .72rem;
  color: #9ca3af;
  font-style: italic;
  margin: 0 0 .5rem;
}

.lrn-profile-reading-pills {
  display: flex;
  flex-wrap: wrap;
  gap: .3rem;
  margin-bottom: .85rem;
}
.lrn-pill {
  display: inline-block;
  border-radius: 999px;
  padding: .18rem .6rem;
  font-size: .7rem;
  font-weight: 700;
  line-height: 1.4;
}
.lrn-pill--blue   { background: #dbeafe; color: #1d4ed8; }
.lrn-pill--green  { background: #dcfce7; color: #15803d; }
.lrn-pill--orange { background: #fff7ed; color: #c2410c; }

.lrn-profile-reading-now { margin-bottom: .75rem; }

.lrn-profile-reading-now-label {
  font-size: .65rem;
  font-weight: 700;
  color: #6b8caa;
  text-transform: uppercase;
  letter-spacing: .05em;
  margin-bottom: .45rem;
}

.lrn-profile-reading-book-link {
  display: flex;
  align-items: flex-start;
  gap: .65rem;
  text-decoration: none;
  color: inherit;
  background: #f8fafc;
  border: 1px solid #e8edf2;
  border-radius: .55rem;
  padding: .6rem;
  transition: background .15s, box-shadow .15s;
}
.lrn-profile-reading-book-link:hover {
  background: #eff6ff;
  box-shadow: 0 2px 8px rgba(37,99,235,.1);
}

.lrn-profile-reading-cover {
  width: 72px;
  height: 108px;
  object-fit: cover;
  border-radius: .3rem;
  flex-shrink: 0;
  box-shadow: 0 2px 6px rgba(0,0,0,.15);
}

.lrn-profile-reading-cover-placeholder {
  width: 72px;
  height: 108px;
  background: linear-gradient(135deg, #dbeafe, #e0e7ff);
  border-radius: .3rem;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 2rem;
  flex-shrink: 0;
}

.lrn-profile-reading-book-meta {
  display: flex;
  flex-direction: column;
  gap: .25rem;
  padding-top: .1rem;
  min-width: 0;
}

.lrn-profile-reading-book-title {
  font-size: .82rem;
  font-weight: 700;
  color: #1a2e44;
  line-height: 1.35;
  display: -webkit-box;
  -webkit-line-clamp: 3;
  -webkit-box-orient: vertical;
  overflow: hidden;
}

.lrn-profile-reading-book-author {
  font-size: .72rem;
  color: #5a7fa0;
  display: block;
}

.lrn-profile-reading-view-link {
  font-size: .72rem;
  color: #2563eb;
  font-weight: 600;
  margin-top: auto;
}

.lrn-profile-reading-shelf-link {
  display: block;
  font-size: .75rem;
  color: #2563eb;
  font-weight: 700;
  text-decoration: none;
  margin-top: .25rem;
}
.lrn-profile-reading-shelf-link:hover { text-decoration: underline; }
