:root {
  --course-ink: #15233b;
  --course-muted: #5f6f7f;
  --course-paper: #f7f5ef;
  --course-white: #fff;
  --course-blue: #1858d5;
  --course-aqua: #36d6bf;
  --course-coral: #ff6b55;
  --course-line: #dce2e6;
  --course-shadow: 0 18px 50px rgba(19, 42, 78, .09);
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body { margin: 0; background: var(--course-paper); color: var(--course-ink); font-family: "DM Sans", Arial, sans-serif; line-height: 1.65; }

.course-header { min-height: 76px; padding: 0 clamp(1.25rem, 5vw, 5rem); display: flex; align-items: center; position: sticky; top: 0; z-index: 1000; background: rgba(247,245,239,.95); border-bottom: 1px solid rgba(21,35,59,.1); backdrop-filter: blur(14px); }
.course-brand { margin-right: auto; color: var(--course-ink) !important; font: 800 1rem "Manrope", Arial, sans-serif; letter-spacing: .02em; text-decoration: none !important; }
.course-nav { display: flex; align-items: center; gap: .25rem; }
.course-nav a { padding: .75rem .9rem; color: var(--course-ink) !important; font: 700 .9rem "DM Sans", Arial, sans-serif; text-decoration: none !important; border-radius: 10px; }
.course-nav a:hover { background: var(--course-white); color: var(--course-blue) !important; }

#section-container { max-width: 1180px; margin: 0 auto; padding: clamp(2rem, 6vw, 5rem) clamp(1rem, 4vw, 3rem) 6rem; }
#book-content { max-width: 880px; padding: clamp(1.5rem, 5vw, 4.5rem); overflow: visible; background: var(--course-white); border: 1px solid var(--course-line); border-radius: 22px; box-shadow: var(--course-shadow); }
#book-content > h1 { max-width: 720px; margin-bottom: .6rem; color: var(--course-ink); font: 800 clamp(2.2rem, 5vw, 4rem)/1.08 "Manrope", Arial, sans-serif; letter-spacing: -.04em; }
#edition { margin: 0 0 3rem; color: var(--course-muted); font-weight: 700; }

#book-content h1, #book-content h2, #book-content h3, #book-content h4, #book-content h5, #book-content h6 { font-family: "Manrope", Arial, sans-serif; letter-spacing: -.025em; }
#book-content h1 { color: var(--course-ink); font-size: clamp(2rem, 4vw, 3.35rem); line-height: 1.12; }
#book-content h1 .title-prefix { margin-bottom: .75rem; padding-bottom: .8rem; color: var(--course-blue); font-size: .34em; letter-spacing: .12em; text-transform: uppercase; border-color: var(--course-line); }
#book-content h2 { color: var(--course-ink); font-size: 1.55rem; line-height: 1.25; }
#book-content h3 { color: var(--course-ink); font-size: 1.18rem; }
#book-content p, #book-content ul, #book-content ol { color: #435469; font-family: "DM Sans", Arial, sans-serif; font-size: 1rem; line-height: 1.75; }
#book-content a[href], #book-content a:visited { color: var(--course-blue); text-underline-offset: 3px; }
#book-content img { max-width: 100%; height: auto; }

#toc-header { margin-top: 3rem !important; padding-top: 2rem; color: var(--course-ink) !important; border-top: 1px solid var(--course-line); }
#toc-top-ul { padding: 0 !important; list-style: none; }
#toc-top-ul > li { margin: 0 0 .8rem; padding: 1.2rem 1.3rem; background: #f4f7fb; border-left: 4px solid var(--course-aqua); border-radius: 0 12px 12px 0; }
#toc-top-ul > li:nth-child(3n+2) { border-left-color: var(--course-coral); }
#toc-top-ul > li:nth-child(3n) { border-left-color: var(--course-blue); }
#toc-top-ul h3 { font-size: 1.05rem; }
#toc-top-ul h3 a { color: var(--course-ink); text-decoration: none; }
#toc-top-ul ul { margin-top: .55rem; padding-left: 1.25rem; }
#toc-top-ul li li { margin: .3rem 0; }

#navbar-top, #navbar-bottom { max-width: 880px; min-height: 58px; margin: 1rem auto; padding: .65rem .9rem; display: flex; align-items: center; background: var(--course-ink); border: 0; border-radius: 13px; box-shadow: none; filter: none; }
#navbar-bottom { margin-top: 1.5rem; }
.navbar-part { width: 33.333%; color: rgba(255,255,255,.72); }
.navbar-part.right { margin-left: auto; }
.navbar-part a, .navbar-part a:visited { color: var(--course-white); font: 700 .86rem "DM Sans", Arial, sans-serif; text-decoration: none; }
.navbar-part img { width: 25px; height: 25px; filter: invert(1); opacity: .8; }

#book-content .learning_objectives, #book-content .key_takeaways, #book-content .exercises, #book-content .exercises-math, #book-content .qandaset, #book-content .keyterm { overflow: hidden; border-radius: 12px; }
#book-content .learning_objectives { background: #f1f0e7; }
#book-content .learning_objectives > .title { background: #e2e0d2; }
#book-content .key_takeaways { background: #e8f8f3; }
#book-content .key_takeaways > .title { background: #148b77; }
#book-content .exercises, #book-content .exercises-math, #book-content .qandaset { background: #eaf1ff; }
#book-content .exercises .title, #book-content .exercises-math .title, #book-content .qandaset .title { background: var(--course-blue); }
#book-content .callout { padding: 1.25rem; background: #f5f7fa; border: 1px solid var(--course-line); border-left: 5px solid var(--course-coral); border-radius: 12px; }
#book-content table { max-width: 100%; display: block; overflow-x: auto; }

@media (max-width: 700px) {
  .course-header { min-height: 68px; padding: 0 1rem; overflow-x: auto; }
  .course-brand { position: sticky; left: 0; padding-right: 1rem; background: var(--course-paper); white-space: nowrap; }
  .course-nav a { padding: .65rem .7rem; white-space: nowrap; }
  #section-container { padding: 1.5rem .7rem 4rem; }
  #book-content { padding: 1.4rem; border-radius: 16px; }
  #navbar-top, #navbar-bottom { padding: .55rem .6rem; }
  .navbar-part a { font-size: .72rem; }
  .navbar-part img { display: none; }
  #book-content .figure.large img, #book-content .figure.full img, #book-content .figure.fullpage img, #book-content .informalfigure.large img, #book-content .informalfigure.full img, #book-content .informalfigure.fullpage img { max-width: 100%; height: auto; }
}

@media (prefers-reduced-motion: reduce) { html { scroll-behavior: auto; } }
