/*
  Plearnprai Library Atmosphere
  Quiet botanical reading space: connect with self, others, nature.
*/
@import url("https://fonts.googleapis.com/css2?family=Noto+Sans+Thai:wght@300;400;500;600;700&display=swap");

:root {
  --bg: #f6f8f1;
  --bg-soft: #edf4e8;
  --paper: #fffdf7;
  --ink: #26342b;
  --ink-soft: #637266;
  --thai: #28543f;
  --thai-dark: #183629;
  --gold: #a97935;
  --green: #527d50;
  --teal: #28736d;
  --warm: #b86633;
  --line: #dce8d7;
  --shadow: 0 1px 0 rgba(255,255,255,.68), 0 10px 30px rgba(43, 82, 55, .075);
  --shadow-hover: 0 6px 18px rgba(38, 52, 43, .07), 0 18px 48px rgba(43, 82, 55, .13);
  --radius: 8px;
  --font-body: "Noto Sans Thai", Sarabun, system-ui, sans-serif;
  --font-heading: "Noto Sans Thai", Sarabun, system-ui, sans-serif;
}

html,
body {
  font-family: var(--font-body) !important;
  font-weight: 400;
  letter-spacing: 0;
}

body {
  background-color: var(--bg);
  background-image:
    radial-gradient(circle at 14% 6%, rgba(213, 232, 198, .5) 0 10%, transparent 30%),
    radial-gradient(circle at 88% 4%, rgba(174, 211, 201, .34) 0 9%, transparent 29%),
    radial-gradient(circle at 84% 96%, rgba(230, 211, 170, .28) 0 11%, transparent 32%),
    linear-gradient(180deg, rgba(255,255,255,.82), rgba(243,248,239,.95));
  color: var(--ink);
  line-height: 1.82;
  text-rendering: optimizeLegibility;
}

button,
input,
select,
textarea {
  font-family: var(--font-body) !important;
}

p,
li,
td,
.description,
.lead,
.subtitle {
  font-weight: 400;
  color: var(--ink-soft);
}

h1,
h2,
h3,
h4,
aside.toc h1,
.book h3,
.cover h1,
header.hero h1 {
  font-family: var(--font-heading) !important;
  font-weight: 700;
  letter-spacing: 0;
}

.topbar,
aside.toc,
aside.toc a,
.muted,
.sub,
.en-title {
  font-weight: 400;
}

body::after {
  content: "";
  position: fixed;
  inset: 0;
  z-index: -1;
  pointer-events: none;
  background-image:
    linear-gradient(120deg, transparent 0 47%, rgba(82,125,80,.055) 47% 48%, transparent 48% 100%),
    linear-gradient(60deg, transparent 0 48%, rgba(40,115,109,.045) 48% 49%, transparent 49% 100%);
  background-size: 92px 92px, 132px 132px;
  opacity: .7;
}

::selection {
  background: rgba(168, 121, 53, .28);
}

header.hero,
.cover {
  position: relative;
  overflow: hidden;
  background:
    linear-gradient(135deg, rgba(24,54,41,.94) 0%, rgba(40,115,109,.8) 62%, rgba(82,125,80,.78) 100%) !important;
  color: #fff;
}

header.hero::before,
.cover::before {
  content: "";
  position: absolute;
  inset: 0;
  pointer-events: none;
  background:
    radial-gradient(circle at 22% 18%, rgba(255,255,255,.14), transparent 22%),
    radial-gradient(circle at 80% 12%, rgba(218, 235, 199, .16), transparent 26%),
    linear-gradient(120deg, transparent 0 48%, rgba(255,255,255,.075) 48% 49%, transparent 49% 100%);
  background-size: auto, auto, 86px 86px;
}

header.hero > *,
.cover > * {
  position: relative;
  z-index: 1;
}

header.hero h1,
.cover h1,
.cover .subtitle {
  color: #fff !important;
}

.cover h1 span,
.cover h2,
.cover h3 {
  color: rgba(255,255,255,.92) !important;
}

header.hero .tagline,
header.hero .mission,
.cover .subtitle {
  color: rgba(255,255,255,.9) !important;
}

header.hero .badge,
.cover .ribbon {
  background: rgba(255,255,255,.16) !important;
  border: 1px solid rgba(255,255,255,.28);
  color: #fff !important;
}

.cover .pill {
  background: rgba(255,255,255,.92) !important;
  border-color: rgba(255,255,255,.55) !important;
  color: var(--thai) !important;
}

aside.toc {
  background:
    linear-gradient(180deg, rgba(255,254,248,.97), rgba(236,244,231,.97)),
    radial-gradient(circle at 10% 0%, rgba(168,121,53,.16), transparent 28%) !important;
  border-right-color: var(--line) !important;
}

aside.toc a {
  border-radius: 8px !important;
  color: var(--ink-soft) !important;
}

aside.toc a:hover,
aside.toc a.active {
  background: rgba(255,253,247,.92) !important;
  color: var(--thai) !important;
}

aside.toc h1,
h1.book,
h1.part,
h2.chapter,
h2.sen-title,
h3.sub,
section.collection h2 {
  color: var(--thai) !important;
}

.topbar,
.discovery {
  background: rgba(250, 253, 247, .92) !important;
  backdrop-filter: blur(12px);
}

.book,
.principle,
.sen-banner,
.tri > div,
.quad > div,
.sen-info,
.taste-banner,
.recipe,
.wheel .seg,
table,
.heart,
.lens,
.converge,
.diverge,
.warn,
.case,
.note,
.empty-state {
  background-color: var(--paper);
  border-color: var(--line);
  box-shadow: var(--shadow);
}

main,
.shell,
.container,
.wrap,
.content {
  color: var(--ink);
}

main > section,
.chapter,
.panel,
.symptom,
.urgent,
.card,
.tool-card,
.matrix div,
.toc a,
.toc-item,
.mod-card,
.section-card {
  border-color: var(--line) !important;
  box-shadow: var(--shadow) !important;
}

.chapter,
.panel,
.symptom,
.card,
.tool-card,
.matrix div,
.toc-item,
.mod-card,
.section-card {
  background: rgba(255,253,247,.94) !important;
}

.chapter,
.panel,
.symptom,
.card,
.mod-card {
  border-radius: 8px !important;
}

.chapter p,
.chapter li,
.panel p,
.panel li,
.symptom p,
.symptom li,
.content p,
.content li,
main p,
main li {
  color: var(--ink);
}

.chapter h1,
.chapter h2,
.chapter h3,
.panel h2,
.panel h3,
.symptom h2,
.symptom h3,
main h1,
main h2,
main h3 {
  color: var(--thai) !important;
}

main a,
.chapter a,
.panel a,
.symptom a {
  color: var(--thai) !important;
  text-decoration-thickness: 1px;
  text-underline-offset: 3px;
}

hr {
  border: 0 !important;
  border-top: 1px solid var(--line) !important;
}

.book,
.principle,
.sen-banner,
.tri > div,
.quad > div,
.sen-info,
.taste-banner,
.recipe,
.wheel .seg {
  transition: box-shadow .18s ease, transform .18s ease, border-color .18s ease;
}

.book:hover {
  border-color: rgba(168, 121, 53, .58);
  box-shadow: var(--shadow-hover);
}

.spirit {
  background:
    linear-gradient(180deg, rgba(255,255,255,.9), rgba(244,249,240,.96)),
    radial-gradient(circle at 12% 0%, rgba(168,121,53,.12), transparent 30%) !important;
}

.spirit-kicker,
.book .number {
  color: var(--gold) !important;
}

.reading-note,
.converge {
  background: #eef7ec !important;
}

.heart {
  background: linear-gradient(180deg, #fffaf0, #f6f1dc) !important;
}

.lens.ttm,
.lens.ayu,
.lens.tcm,
.lens.clin,
.lens.modal,
.lens.self {
  background: linear-gradient(180deg, rgba(255,254,248,.96), rgba(239,247,234,.94)) !important;
}

.warn,
.diverge {
  background: #fbf0ec !important;
}

.note {
  background: #edf4f5 !important;
}

table {
  background: rgba(255,253,247,.96) !important;
}

th {
  background: #eef5ea !important;
  color: var(--thai) !important;
}

td {
  border-color: var(--line) !important;
}

tr:nth-child(even) td {
  background: #faf7ef !important;
}

input,
textarea,
select,
.search {
  background: rgba(255,253,247,.96) !important;
  border-color: var(--line) !important;
  color: var(--ink) !important;
}

.button,
.btn,
.read,
.back-top,
.mininav a {
  border-radius: 8px !important;
}

.back-top,
.mininav a {
  background: rgba(255,253,247,.95) !important;
  border: 1px solid var(--line) !important;
  color: var(--thai) !important;
}

.back-top:hover,
.mininav a:hover {
  background: var(--thai) !important;
  color: #fff !important;
}

.tag,
.pill,
.badge,
.evidence,
.update-date {
  border-radius: 999px !important;
}

.toc {
  background: rgba(255,253,247,.9) !important;
}

.toc-phase,
.toc-item {
  border-color: var(--line) !important;
}

.toc-item:hover {
  background: #f2f7ee !important;
}

.ep-title,
.toc h2,
.toc-phase-name {
  color: var(--thai) !important;
}

.chapter img,
main img,
.panel img {
  border-radius: 8px;
}

footer {
  background:
    linear-gradient(180deg, rgba(238,246,232,.95), rgba(225,238,219,.95)) !important;
}

@media (max-width: 760px) {
  body {
    background-image:
      radial-gradient(circle at 8% 4%, rgba(205, 226, 185, .55) 0 10%, transparent 28%),
      linear-gradient(180deg, rgba(255,255,255,.8), rgba(240,247,236,.96));
  }

  header.hero,
  .cover {
    background:
      linear-gradient(145deg, rgba(24,54,41,.98) 0%, rgba(40,115,109,.9) 100%) !important;
  }
}

/* Final legacy override: keep this at the end so older per-book CSS cannot win. */
:is(body.legacy-textbook, body:has(> aside.toc)) main > section#cover {
  max-width: 1040px !important;
  margin: 18px auto 42px !important;
  padding: 58px 60px 52px !important;
  border: 0 !important;
  border-radius: 8px !important;
  background:
    radial-gradient(circle at 86% 16%, rgba(227, 187, 119, .22), transparent 17rem),
    radial-gradient(circle at 18% 12%, rgba(255, 255, 255, .13), transparent 16rem),
    linear-gradient(135deg, rgba(23, 54, 42, .99) 0%, rgba(40, 92, 75, .96) 58%, rgba(82, 125, 80, .92) 100%) !important;
  box-shadow: 0 22px 70px rgba(31, 72, 47, .18) !important;
}

:is(body.legacy-textbook, body:has(> aside.toc)) main > section#cover h1.book,
:is(body.legacy-textbook, body:has(> aside.toc)) main > section#cover h1,
:is(body.legacy-textbook, body:has(> aside.toc)) main > section#cover .book {
  display: block !important;
  width: min(900px, 100%) !important;
  background: transparent !important;
  color: #fffdf7 !important;
  padding: 0 !important;
  border: 0 !important;
  box-shadow: none !important;
  font-size: clamp(38px, 4.8vw, 66px) !important;
  line-height: 1.12 !important;
  text-shadow: 0 2px 16px rgba(0, 0, 0, .24) !important;
}

:is(body.legacy-textbook, body:has(> aside.toc)) main > section#cover .lead {
  max-width: 880px !important;
  margin-top: 22px !important;
  color: rgba(255, 253, 247, .88) !important;
  font-size: clamp(19px, 2vw, 27px) !important;
  line-height: 1.65 !important;
}

:is(body.legacy-textbook, body:has(> aside.toc)) main > section#cover .muted,
:is(body.legacy-textbook, body:has(> aside.toc)) main > section#cover p {
  max-width: 900px !important;
  color: rgba(255, 253, 247, .76) !important;
}

:is(body.legacy-textbook, body:has(> aside.toc)) main > section#cover .heart {
  max-width: 920px !important;
  margin: 34px 0 0 !important;
  padding: 24px 28px !important;
  background: rgba(255, 253, 247, .95) !important;
  border: 1px solid rgba(255, 253, 247, .72) !important;
  border-left: 6px solid #b18445 !important;
  box-shadow: 0 20px 54px rgba(15, 36, 27, .18) !important;
}

:is(body.legacy-textbook, body:has(> aside.toc)) main > section:not(#cover) {
  max-width: 1040px !important;
  margin-left: auto !important;
  margin-right: auto !important;
  background: rgba(255, 253, 247, .96) !important;
  border: 1px solid rgba(220, 232, 215, .9) !important;
  border-radius: 8px !important;
  padding: 34px 42px !important;
  box-shadow: 0 18px 56px rgba(47, 93, 67, .09) !important;
}

:is(body.legacy-textbook, body:has(> aside.toc)) main > section:not(#cover) + section:not(#cover) {
  margin-top: 24px !important;
}

@media (max-width: 900px) {
  :is(body.legacy-textbook, body:has(> aside.toc)) main > section#cover {
    margin: 14px 0 24px !important;
    padding: 34px 22px 30px !important;
  }

  :is(body.legacy-textbook, body:has(> aside.toc)) main > section#cover h1.book,
  :is(body.legacy-textbook, body:has(> aside.toc)) main > section#cover h1 {
    font-size: 34px !important;
  }

  :is(body.legacy-textbook, body:has(> aside.toc)) main > section:not(#cover) {
    padding: 24px 20px !important;
  }
}

/* Legacy textbook theme v3
   A stronger pass for old long-form textbooks: make the opening area feel like
   the Plearnprai reading room instead of a lightly recolored manuscript. */
:is(body.legacy-textbook, body:has(> aside.toc)) {
  --legacy-paper: rgba(255, 253, 247, .96);
  --legacy-cream: #fff9ed;
  --legacy-ink: #26372d;
  --legacy-soft: #65746a;
  --legacy-green: #295a42;
  --legacy-deep: #17362a;
  --legacy-gold: #b18445;
  background:
    radial-gradient(circle at 8% 8%, rgba(210, 232, 198, .72) 0 9%, transparent 30%),
    radial-gradient(circle at 88% 3%, rgba(178, 213, 204, .38) 0 10%, transparent 32%),
    linear-gradient(180deg, #fbfaf4 0%, #eef7e9 46%, #f8fbf4 100%) !important;
  color: var(--legacy-ink) !important;
}

:is(body.legacy-textbook, body:has(> aside.toc)) main {
  max-width: none !important;
  width: 100% !important;
  padding: 0 56px 88px !important;
}

:is(body.legacy-textbook, body:has(> aside.toc)) main > .topbar {
  margin: 0 -56px 0 !important;
  padding: 12px 56px !important;
  background: rgba(255, 253, 247, .94) !important;
  border-bottom: 1px solid rgba(220, 232, 215, .88) !important;
  box-shadow: 0 10px 30px rgba(43, 82, 55, .045) !important;
}

:is(body.legacy-textbook, body:has(> aside.toc)) main > div:has(.update-date) {
  max-width: 1040px !important;
  padding: 28px 8px 0 !important;
}

:is(body.legacy-textbook, body:has(> aside.toc)) .update-date {
  background: rgba(255, 253, 247, .86) !important;
  border: 1px solid rgba(177, 132, 69, .45) !important;
  color: var(--legacy-soft) !important;
}

:is(body.legacy-textbook, body:has(> aside.toc)) main > section#cover {
  max-width: 1040px !important;
  margin: 18px auto 42px !important;
  padding: 58px 60px 52px !important;
  border: 0 !important;
  border-radius: 8px !important;
  background:
    radial-gradient(circle at 86% 16%, rgba(227, 187, 119, .22), transparent 17rem),
    radial-gradient(circle at 18% 12%, rgba(255, 255, 255, .13), transparent 16rem),
    linear-gradient(135deg, rgba(23, 54, 42, .99) 0%, rgba(40, 92, 75, .96) 58%, rgba(82, 125, 80, .92) 100%) !important;
  box-shadow: 0 22px 70px rgba(31, 72, 47, .18) !important;
}

:is(body.legacy-textbook, body:has(> aside.toc)) main > section#cover::before {
  background:
    linear-gradient(120deg, transparent 0 48%, rgba(255,255,255,.08) 48% 49%, transparent 49% 100%),
    linear-gradient(60deg, transparent 0 48%, rgba(255,255,255,.045) 48% 49%, transparent 49% 100%) !important;
  background-size: 96px 96px, 140px 140px !important;
  opacity: .9 !important;
}

:is(body.legacy-textbook, body:has(> aside.toc)) main > section#cover h1.book,
:is(body.legacy-textbook, body:has(> aside.toc)) main > section#cover h1,
:is(body.legacy-textbook, body:has(> aside.toc)) main > section#cover .book {
  display: block !important;
  width: min(900px, 100%) !important;
  background: transparent !important;
  color: #fffdf7 !important;
  padding: 0 !important;
  border: 0 !important;
  box-shadow: none !important;
  font-size: clamp(38px, 4.8vw, 66px) !important;
  line-height: 1.12 !important;
  letter-spacing: 0 !important;
  text-shadow: 0 2px 16px rgba(0, 0, 0, .24) !important;
}

:is(body.legacy-textbook, body:has(> aside.toc)) main > section#cover .lead {
  max-width: 880px !important;
  margin-top: 22px !important;
  color: rgba(255, 253, 247, .88) !important;
  font-size: clamp(19px, 2vw, 27px) !important;
  line-height: 1.65 !important;
}

:is(body.legacy-textbook, body:has(> aside.toc)) main > section#cover .muted,
:is(body.legacy-textbook, body:has(> aside.toc)) main > section#cover p {
  max-width: 900px !important;
  color: rgba(255, 253, 247, .76) !important;
  font-size: 16px !important;
}

:is(body.legacy-textbook, body:has(> aside.toc)) main > section#cover .heart {
  max-width: 920px !important;
  margin: 34px 0 0 !important;
  padding: 24px 28px !important;
  background: rgba(255, 253, 247, .94) !important;
  border: 1px solid rgba(255, 253, 247, .75) !important;
  border-left: 6px solid var(--legacy-gold) !important;
  box-shadow: 0 20px 54px rgba(15, 36, 27, .18) !important;
}

:is(body.legacy-textbook, body:has(> aside.toc)) main > section:not(#cover),
:is(body.legacy-textbook, body:has(> aside.toc)) main > h1.part,
:is(body.legacy-textbook, body:has(> aside.toc)) main > h2.chapter,
:is(body.legacy-textbook, body:has(> aside.toc)) main > p,
:is(body.legacy-textbook, body:has(> aside.toc)) main > .lead,
:is(body.legacy-textbook, body:has(> aside.toc)) main > ul,
:is(body.legacy-textbook, body:has(> aside.toc)) main > ol,
:is(body.legacy-textbook, body:has(> aside.toc)) main > table,
:is(body.legacy-textbook, body:has(> aside.toc)) main > .heart,
:is(body.legacy-textbook, body:has(> aside.toc)) main > .note,
:is(body.legacy-textbook, body:has(> aside.toc)) main > .warn,
:is(body.legacy-textbook, body:has(> aside.toc)) main > .tip,
:is(body.legacy-textbook, body:has(> aside.toc)) main > .routine,
:is(body.legacy-textbook, body:has(> aside.toc)) main > .bridge,
:is(body.legacy-textbook, body:has(> aside.toc)) main > .clinic,
:is(body.legacy-textbook, body:has(> aside.toc)) main > .case {
  max-width: 1040px !important;
  margin-left: auto !important;
  margin-right: auto !important;
}

:is(body.legacy-textbook, body:has(> aside.toc)) main > section:not(#cover) {
  background: var(--legacy-paper) !important;
  border: 1px solid rgba(220, 232, 215, .9) !important;
  border-radius: 8px !important;
  padding: 34px 42px !important;
  box-shadow: 0 18px 56px rgba(47, 93, 67, .09) !important;
}

:is(body.legacy-textbook, body:has(> aside.toc)) main > section:not(#cover) + section:not(#cover) {
  margin-top: 24px !important;
}

:is(body.legacy-textbook, body:has(> aside.toc)) h1.part,
:is(body.legacy-textbook, body:has(> aside.toc)) h2.chapter {
  background: transparent !important;
  border: 0 !important;
  border-bottom: 1px solid rgba(220, 232, 215, .95) !important;
  color: var(--legacy-green) !important;
  padding: 0 0 10px !important;
  box-shadow: none !important;
}

:is(body.legacy-textbook, body:has(> aside.toc)) h2.chapter {
  font-size: 29px !important;
  line-height: 1.32 !important;
}

:is(body.legacy-textbook, body:has(> aside.toc)) section:not(#cover) p,
:is(body.legacy-textbook, body:has(> aside.toc)) section:not(#cover) li {
  font-size: 17px !important;
  line-height: 1.9 !important;
  color: var(--legacy-ink) !important;
}

:is(body.legacy-textbook, body:has(> aside.toc)) .heart,
:is(body.legacy-textbook, body:has(> aside.toc)) .note,
:is(body.legacy-textbook, body:has(> aside.toc)) .tip,
:is(body.legacy-textbook, body:has(> aside.toc)) .routine,
:is(body.legacy-textbook, body:has(> aside.toc)) .case {
  background: linear-gradient(180deg, #fffdf7, #fff8ec) !important;
  border-color: rgba(225, 204, 166, .85) !important;
}

:is(body.legacy-textbook, body:has(> aside.toc)) aside.toc {
  background: linear-gradient(180deg, #fffdf7 0%, #eef6e8 100%) !important;
  border-right: 1px solid rgba(220, 232, 215, .92) !important;
  box-shadow: 8px 0 36px rgba(43, 82, 55, .065) !important;
}

:is(body.legacy-textbook, body:has(> aside.toc)) aside.toc a {
  background: rgba(255, 253, 247, .72) !important;
  border: 1px solid rgba(220, 232, 215, .68) !important;
  border-radius: 8px !important;
  padding: 7px 9px !important;
  margin: 4px 0 !important;
}

@media (max-width: 900px) {
  :is(body.legacy-textbook, body:has(> aside.toc)) main {
    padding: 0 14px 64px !important;
  }

  :is(body.legacy-textbook, body:has(> aside.toc)) main > .topbar {
    margin: 0 -14px 0 !important;
    padding: 10px 14px !important;
  }

  :is(body.legacy-textbook, body:has(> aside.toc)) main > div:has(.update-date) {
    padding: 18px 0 0 !important;
  }

  :is(body.legacy-textbook, body:has(> aside.toc)) main > section#cover {
    margin: 14px 0 24px !important;
    padding: 34px 22px 30px !important;
  }

  :is(body.legacy-textbook, body:has(> aside.toc)) main > section#cover h1.book,
  :is(body.legacy-textbook, body:has(> aside.toc)) main > section#cover h1 {
    font-size: 34px !important;
  }

  :is(body.legacy-textbook, body:has(> aside.toc)) main > section#cover .lead {
    font-size: 20px !important;
  }

  :is(body.legacy-textbook, body:has(> aside.toc)) main > section:not(#cover) {
    padding: 24px 20px !important;
  }

  :is(body.legacy-textbook, body:has(> aside.toc)) section:not(#cover) p,
  :is(body.legacy-textbook, body:has(> aside.toc)) section:not(#cover) li {
    font-size: 16px !important;
  }
}

@media (max-width: 900px) {
  aside.toc {
    max-height: 230px;
    overflow-y: auto;
    border-right: 0 !important;
    border-bottom: 1px solid var(--line) !important;
    padding: 14px 16px !important;
  }

  aside.toc h1 {
    font-size: 14px !important;
    margin-bottom: 2px !important;
  }

  aside.toc .sub {
    margin-bottom: 8px !important;
  }

  aside.toc nav {
    margin-top: 8px !important;
  }

  main {
    padding-top: 18px !important;
    max-width: 100% !important;
    overflow-x: hidden;
  }

  .topbar {
    margin: -18px -20px 16px !important;
    padding: 8px 16px !important;
    gap: 10px;
    flex-wrap: wrap;
  }

  .cover {
    padding: 34px 16px 28px !important;
    max-width: 100%;
  }

  .cover h1 {
    font-size: 26px !important;
    overflow-wrap: anywhere;
  }

  .cover h1 span {
    display: block !important;
    font-size: 17px !important;
    max-width: 300px;
    margin-left: auto !important;
    margin-right: auto !important;
    line-height: 1.45;
    overflow-wrap: anywhere;
    word-break: break-word;
    white-space: normal;
  }

  .cover .subtitle {
    max-width: 310px;
    margin-left: auto !important;
    margin-right: auto !important;
    overflow-wrap: anywhere;
  }

  .cover .stripe {
    display: grid !important;
    grid-template-columns: 1fr;
    gap: 7px !important;
    justify-items: center;
  }

  .cover .pill {
    max-width: 310px;
    white-space: normal;
  }
}

/* Legacy textbook harmonization
   Applies to older long-form textbooks that use a left TOC and section#cover. */
:is(body.legacy-textbook, body:has(> aside.toc)) {
  background:
    radial-gradient(circle at 14% 6%, rgba(213, 232, 198, .56) 0 10%, transparent 30%),
    radial-gradient(circle at 88% 4%, rgba(174, 211, 201, .28) 0 9%, transparent 29%),
    linear-gradient(180deg, #fbfaf4 0%, #eff6ea 58%, #f9fbf5 100%) !important;
}

:is(body.legacy-textbook, body:has(> aside.toc)) aside.toc {
  background:
    linear-gradient(180deg, rgba(255,254,248,.98), rgba(238,246,232,.98)),
    radial-gradient(circle at 0% 0%, rgba(168,121,53,.12), transparent 30%) !important;
  box-shadow: 8px 0 34px rgba(43,82,55,.055);
}

:is(body.legacy-textbook, body:has(> aside.toc)) aside.toc h1 {
  font-size: 16px !important;
  line-height: 1.35 !important;
  color: var(--thai) !important;
}

:is(body.legacy-textbook, body:has(> aside.toc)) aside.toc .sub {
  font-size: 12px !important;
  line-height: 1.65 !important;
}

:is(body.legacy-textbook, body:has(> aside.toc)) aside.toc .part {
  color: var(--thai) !important;
  margin-top: 18px !important;
  font-size: 12.8px !important;
}

:is(body.legacy-textbook, body:has(> aside.toc)) aside.toc .part::before {
  background: var(--gold) !important;
}

:is(body.legacy-textbook, body:has(> aside.toc)) aside.toc a {
  background: rgba(255,253,247,.62);
  border: 1px solid rgba(220,232,215,.55);
  margin: 3px 0 !important;
  padding: 6px 8px !important;
}

:is(body.legacy-textbook, body:has(> aside.toc)) aside.toc a:hover,
:is(body.legacy-textbook, body:has(> aside.toc)) aside.toc a.active {
  background: #fffdf7 !important;
  border-color: rgba(168,121,53,.32);
}

:is(body.legacy-textbook, body:has(> aside.toc)) main {
  background: transparent !important;
}

:is(body.legacy-textbook, body:has(> aside.toc)) main > .topbar {
  border-bottom: 1px solid var(--line);
  box-shadow: 0 1px 0 rgba(255,255,255,.72);
}

:is(body.legacy-textbook, body:has(> aside.toc)) main > section#cover {
  position: relative;
  overflow: hidden;
  max-width: 980px !important;
  margin: 42px auto 34px !important;
  padding: 44px 46px !important;
  border: 1px solid rgba(47,93,67,.18) !important;
  border-radius: 8px !important;
  background:
    radial-gradient(circle at 84% 18%, rgba(224,185,121,.2), transparent 18rem),
    linear-gradient(135deg, rgba(25,57,43,.98) 0%, rgba(45,103,91,.94) 62%, rgba(95,130,83,.9) 100%) !important;
  box-shadow: 0 18px 58px rgba(47,93,67,.14) !important;
}

:is(body.legacy-textbook, body:has(> aside.toc)) main > section#cover::before {
  content: "";
  position: absolute;
  inset: 0;
  pointer-events: none;
  background:
    radial-gradient(circle at 18% 12%, rgba(255,255,255,.14), transparent 22%),
    linear-gradient(120deg, transparent 0 48%, rgba(255,255,255,.075) 48% 49%, transparent 49% 100%);
  background-size: auto, 90px 90px;
  opacity: .88;
}

:is(body.legacy-textbook, body:has(> aside.toc)) main > section#cover > * {
  position: relative;
  z-index: 1;
}

:is(body.legacy-textbook, body:has(> aside.toc)) main > section#cover h1,
:is(body.legacy-textbook, body:has(> aside.toc)) main > section#cover h1.book,
:is(body.legacy-textbook, body:has(> aside.toc)) main > section#cover .book {
  background: transparent !important;
  border: 0 !important;
  box-shadow: none !important;
  padding: 0 !important;
  margin-top: 0 !important;
  color: #fff !important;
  text-shadow: 0 2px 12px rgba(0,0,0,.22);
}

:is(body.legacy-textbook, body:has(> aside.toc)) main > section#cover h1,
:is(body.legacy-textbook, body:has(> aside.toc)) main > section#cover h1.book {
  font-size: clamp(34px, 4.2vw, 58px) !important;
  line-height: 1.14 !important;
}

:is(body.legacy-textbook, body:has(> aside.toc)) main > section#cover .lead,
:is(body.legacy-textbook, body:has(> aside.toc)) main > section#cover .subtitle,
:is(body.legacy-textbook, body:has(> aside.toc)) main > section#cover .meta,
:is(body.legacy-textbook, body:has(> aside.toc)) main > section#cover .muted,
:is(body.legacy-textbook, body:has(> aside.toc)) main > section#cover .eyebrow {
  color: rgba(255,255,255,.88) !important;
}

:is(body.legacy-textbook, body:has(> aside.toc)) main > section#cover .eyebrow {
  color: #e4b567 !important;
  font-weight: 800;
  letter-spacing: .08em;
}

:is(body.legacy-textbook, body:has(> aside.toc)) main > section#cover .heart,
:is(body.legacy-textbook, body:has(> aside.toc)) main > section#cover .warn,
:is(body.legacy-textbook, body:has(> aside.toc)) main > section#cover .note,
:is(body.legacy-textbook, body:has(> aside.toc)) main > section#cover .routine,
:is(body.legacy-textbook, body:has(> aside.toc)) main > section#cover .tip {
  background: rgba(255,253,247,.94) !important;
  border: 1px solid rgba(220,232,215,.9) !important;
  border-radius: 8px !important;
  box-shadow: 0 16px 46px rgba(24,54,41,.12) !important;
  margin-top: 24px !important;
}

:is(body.legacy-textbook, body:has(> aside.toc)) main > section:not(#cover),
:is(body.legacy-textbook, body:has(> aside.toc)) main > h2.chapter {
  max-width: 980px !important;
  margin-left: auto !important;
  margin-right: auto !important;
}

:is(body.legacy-textbook, body:has(> aside.toc)) main > p,
:is(body.legacy-textbook, body:has(> aside.toc)) main > .lead,
:is(body.legacy-textbook, body:has(> aside.toc)) main > ul,
:is(body.legacy-textbook, body:has(> aside.toc)) main > ol,
:is(body.legacy-textbook, body:has(> aside.toc)) main > table,
:is(body.legacy-textbook, body:has(> aside.toc)) main > .tablewrap,
:is(body.legacy-textbook, body:has(> aside.toc)) main > .table-wrap,
:is(body.legacy-textbook, body:has(> aside.toc)) main > .heart,
:is(body.legacy-textbook, body:has(> aside.toc)) main > .note,
:is(body.legacy-textbook, body:has(> aside.toc)) main > .warn,
:is(body.legacy-textbook, body:has(> aside.toc)) main > .tip,
:is(body.legacy-textbook, body:has(> aside.toc)) main > .routine,
:is(body.legacy-textbook, body:has(> aside.toc)) main > .bridge,
:is(body.legacy-textbook, body:has(> aside.toc)) main > .clinic,
:is(body.legacy-textbook, body:has(> aside.toc)) main > .case,
:is(body.legacy-textbook, body:has(> aside.toc)) main > .lens,
:is(body.legacy-textbook, body:has(> aside.toc)) main > .converge,
:is(body.legacy-textbook, body:has(> aside.toc)) main > .diverge {
  max-width: 980px !important;
  margin-left: auto !important;
  margin-right: auto !important;
}

:is(body.legacy-textbook, body:has(> aside.toc)) main > p,
:is(body.legacy-textbook, body:has(> aside.toc)) main > .lead {
  font-size: 17px;
  line-height: 1.86;
}

:is(body.legacy-textbook, body:has(> aside.toc)) main > section:not(#cover) {
  background: rgba(255,253,247,.9) !important;
  border: 1px solid var(--line) !important;
  border-radius: 8px !important;
  box-shadow: 0 12px 42px rgba(47,93,67,.075) !important;
  padding: 28px 32px !important;
}

:is(body.legacy-textbook, body:has(> aside.toc)) main > h2.chapter {
  background: rgba(255,253,247,.92) !important;
  border: 1px solid var(--line) !important;
  border-radius: 8px !important;
  box-shadow: var(--shadow) !important;
  padding: 10px 16px !important;
}

@media (max-width: 900px) {
  :is(body.legacy-textbook, body:has(> aside.toc)) aside.toc {
    box-shadow: none;
  }

  :is(body.legacy-textbook, body:has(> aside.toc)) aside.toc a {
    padding: 7px 9px !important;
  }

  :is(body.legacy-textbook, body:has(> aside.toc)) main > section#cover {
    margin: 18px 14px 24px !important;
    padding: 30px 20px !important;
  }

  :is(body.legacy-textbook, body:has(> aside.toc)) main > section#cover h1,
  :is(body.legacy-textbook, body:has(> aside.toc)) main > section#cover h1.book {
    font-size: 29px !important;
  }

  :is(body.legacy-textbook, body:has(> aside.toc)) main > section:not(#cover) {
    margin-left: 14px !important;
    margin-right: 14px !important;
    padding: 20px 18px !important;
  }

  :is(body.legacy-textbook, body:has(> aside.toc)) main > h2.chapter {
    margin-left: 14px !important;
    margin-right: 14px !important;
  }

  :is(body.legacy-textbook, body:has(> aside.toc)) main > p,
  :is(body.legacy-textbook, body:has(> aside.toc)) main > .lead,
  :is(body.legacy-textbook, body:has(> aside.toc)) main > ul,
  :is(body.legacy-textbook, body:has(> aside.toc)) main > ol,
  :is(body.legacy-textbook, body:has(> aside.toc)) main > table,
  :is(body.legacy-textbook, body:has(> aside.toc)) main > .tablewrap,
  :is(body.legacy-textbook, body:has(> aside.toc)) main > .table-wrap,
  :is(body.legacy-textbook, body:has(> aside.toc)) main > .heart,
  :is(body.legacy-textbook, body:has(> aside.toc)) main > .note,
  :is(body.legacy-textbook, body:has(> aside.toc)) main > .warn,
  :is(body.legacy-textbook, body:has(> aside.toc)) main > .tip,
  :is(body.legacy-textbook, body:has(> aside.toc)) main > .routine,
  :is(body.legacy-textbook, body:has(> aside.toc)) main > .bridge,
  :is(body.legacy-textbook, body:has(> aside.toc)) main > .clinic,
  :is(body.legacy-textbook, body:has(> aside.toc)) main > .case,
  :is(body.legacy-textbook, body:has(> aside.toc)) main > .lens,
  :is(body.legacy-textbook, body:has(> aside.toc)) main > .converge,
  :is(body.legacy-textbook, body:has(> aside.toc)) main > .diverge {
    margin-left: 14px !important;
    margin-right: 14px !important;
  }
}

/* Final legacy override: keep this at the end so older per-book CSS cannot win. */
:is(body.legacy-textbook, body:has(> aside.toc)) main > section#cover {
  max-width: 1040px !important;
  margin: 18px auto 42px !important;
  padding: 58px 60px 52px !important;
  border: 0 !important;
  border-radius: 8px !important;
  background:
    radial-gradient(circle at 86% 16%, rgba(227, 187, 119, .22), transparent 17rem),
    radial-gradient(circle at 18% 12%, rgba(255, 255, 255, .13), transparent 16rem),
    linear-gradient(135deg, rgba(23, 54, 42, .99) 0%, rgba(40, 92, 75, .96) 58%, rgba(82, 125, 80, .92) 100%) !important;
  box-shadow: 0 22px 70px rgba(31, 72, 47, .18) !important;
}

:is(body.legacy-textbook, body:has(> aside.toc)) main > section#cover h1.book,
:is(body.legacy-textbook, body:has(> aside.toc)) main > section#cover h1,
:is(body.legacy-textbook, body:has(> aside.toc)) main > section#cover .book {
  display: block !important;
  width: min(900px, 100%) !important;
  background: transparent !important;
  color: #fffdf7 !important;
  padding: 0 !important;
  border: 0 !important;
  box-shadow: none !important;
  font-size: clamp(38px, 4.8vw, 66px) !important;
  line-height: 1.12 !important;
  text-shadow: 0 2px 16px rgba(0, 0, 0, .24) !important;
}

:is(body.legacy-textbook, body:has(> aside.toc)) main > section#cover .lead {
  max-width: 880px !important;
  margin-top: 22px !important;
  color: rgba(255, 253, 247, .88) !important;
  font-size: clamp(19px, 2vw, 27px) !important;
  line-height: 1.65 !important;
}

:is(body.legacy-textbook, body:has(> aside.toc)) main > section#cover .muted,
:is(body.legacy-textbook, body:has(> aside.toc)) main > section#cover p {
  max-width: 900px !important;
  color: rgba(255, 253, 247, .76) !important;
}

:is(body.legacy-textbook, body:has(> aside.toc)) main > section#cover .heart {
  max-width: 920px !important;
  margin: 34px 0 0 !important;
  padding: 24px 28px !important;
  background: rgba(255, 253, 247, .95) !important;
  border: 1px solid rgba(255, 253, 247, .72) !important;
  border-left: 6px solid #b18445 !important;
  box-shadow: 0 20px 54px rgba(15, 36, 27, .18) !important;
}

:is(body.legacy-textbook, body:has(> aside.toc)) main > section:not(#cover) {
  max-width: 1040px !important;
  margin-left: auto !important;
  margin-right: auto !important;
  background: rgba(255, 253, 247, .96) !important;
  border: 1px solid rgba(220, 232, 215, .9) !important;
  border-radius: 8px !important;
  padding: 34px 42px !important;
  box-shadow: 0 18px 56px rgba(47, 93, 67, .09) !important;
}

:is(body.legacy-textbook, body:has(> aside.toc)) main > section:not(#cover) + section:not(#cover) {
  margin-top: 24px !important;
}

@media (max-width: 900px) {
  :is(body.legacy-textbook, body:has(> aside.toc)) main > section#cover {
    margin: 14px 0 24px !important;
    padding: 34px 22px 30px !important;
  }

  :is(body.legacy-textbook, body:has(> aside.toc)) main > section#cover h1.book,
  :is(body.legacy-textbook, body:has(> aside.toc)) main > section#cover h1 {
    font-size: 34px !important;
  }

  :is(body.legacy-textbook, body:has(> aside.toc)) main > section:not(#cover) {
    padding: 24px 20px !important;
  }
}
