/* ==========================================================================
   SCHOOL SUBJECTS — shared course styling
   --------------------------------------------------------------------------
   One sheet for every School Subjects course: AP Physics 1, AP Physics 2, and
   anything added later.

   AP Physics 2's stylesheet began as a copy of AP Physics 1's with the prefix
   search-replaced, so the two drifted into 96% duplication — 641 of 666 rules
   identical. Any fix had to be applied twice and often wasn't, which is how
   graded-answer colours ended up right in one course and wrong in the other.

   Rules shared by both list both selectors, so a change lands everywhere at
   once. The handful that genuinely differ are grouped at the end under their
   own course. Custom properties use a neutral `--ap-` prefix; the two courses
   had byte-identical palettes.

   A new course joins by adding its prefix to the selector lists below.
   ========================================================================== */

/* ─── Shared by every School Subjects course ────────────────────────── */

.ap1-screen, .ap2-screen {
  --ap-ink: #2b231d;
  --ap-muted: #786b60;
  --ap-teal: #c6531d;
  --ap-teal-deep: #963b12;
  --ap-sky: #fff0e5;
  --ap-cream: #f7f2eb;
  --ap-paper: #fffdfa;
  --ap-line: #e5dbcf;
  --ap-coral: #d66b32;
  max-width: none !important;
  padding: 0 !important;
  margin: 0 !important;
  height: auto;
  min-height: 0;
  overflow: hidden;
  background: var(--ap-cream);
  color: var(--ap-ink);
}
body.ap1-mode, body.ap2-mode {
  height: 100dvh; min-height: 0; max-height: 100dvh;
  overflow: hidden; align-items: stretch;
}
body.ap1-mode > header, body.ap2-mode > header {
  flex: 0 0 auto;
}
.ap1-screen.active, .ap2-screen.active {
  display: block; flex: 0 0 auto; min-height: 0;
  height: calc(100dvh - var(--ap-header-height, 64px));
}
.ap1-shell, .ap2-shell {
  display: grid;
  grid-template-columns: 304px minmax(0, 1fr);
  grid-template-rows: minmax(0, 1fr);
  height: 100%; min-height: 0;
  transition: grid-template-columns .22s ease;
}
.ap1-screen.sidebar-collapsed .ap1-shell, .ap2-screen.sidebar-collapsed .ap2-shell {
  grid-template-columns: 0 minmax(0,1fr);
}
.ap1-screen.sidebar-collapsed .ap1-sidebar, .ap2-screen.sidebar-collapsed .ap2-sidebar {
  visibility: hidden; overflow: hidden;
}
.ap1-screen.sidebar-collapsed .ap1-menu-btn, .ap2-screen.sidebar-collapsed .ap2-menu-btn {
  display: grid;
}
.ap1-sidebar, .ap2-sidebar {
  position: relative;
  z-index: 30;
  display: flex;
  flex-direction: column;
  min-width: 0;
  height: 100%;
  background: #faf6f0;
  border-right: 1px solid var(--ap-line);
  color: var(--ap-ink);
}
.ap1-sidebar-head, .ap2-sidebar-head {
  display: flex; align-items: center; gap: 10px;
  min-height: 68px; padding: 10px 15px;
  border-bottom: 1px solid var(--ap-line);
}
.ap1-icon-btn, .ap2-icon-btn {
  width: 38px; height: 38px; display: grid; place-items: center;
  border: 1px solid var(--ap-line); border-radius: 11px;
  background: rgba(255,255,255,.72); color: var(--ap-ink);
  font: 600 1.05rem/1 'DM Sans', sans-serif; cursor: pointer;
  transition: .18s ease;
}
.ap1-icon-btn:hover, .ap2-icon-btn:hover {
  border-color: var(--ap-teal); color: var(--ap-teal); transform: translateY(-1px);
}
.ap1-brand, .ap2-brand {
  display: flex; align-items: center; gap: 9px; min-width: 0; flex: 1;
}
.ap1-brand-mark, .ap2-brand-mark {
  width: 40px; height: 40px; display: grid; place-items: center;
  border-radius: 0; background: transparent; color: var(--ap-ink);
  font: 600 1.2rem/1 Georgia, serif;
}
.ap1-brand-mark img, .ap2-brand-mark img {
  width: 38px; height: 38px; object-fit: contain;
}
.ap1-brand span:last-child, .ap2-brand span:last-child {
  display: flex; flex-direction: column; min-width: 0;
}
.ap1-brand strong, .ap2-brand strong {
  font-size: .92rem; letter-spacing: -.01em;
}
.ap1-brand small, .ap2-brand small {
  margin-top: 2px; color: var(--ap-muted); font-size: .7rem;
}
.ap1-progress-card, .ap2-progress-card {
  margin: 16px 15px 12px; padding: 13px;
  display: flex; align-items: center; gap: 12px;
  border: 1px solid #eadccf; border-radius: 15px;
  background: rgba(255,255,255,.8);
}
.ap1-progress-ring, .ap2-progress-ring {
  --progress: 0deg;
  width: 48px; height: 48px; flex: 0 0 48px; display: grid; place-items: center;
  border-radius: 50%; background: conic-gradient(var(--ap-teal) var(--progress), #eadfd4 0);
  position: relative;
}
.ap1-progress-ring::before, .ap2-progress-ring::before {
  content: ''; position: absolute; inset: 5px; border-radius: inherit; background: #fff;
}
.ap1-progress-ring span, .ap2-progress-ring span {
  position: relative; z-index: 1; font-size: .69rem; font-weight: 700;
}
.ap1-progress-card > div:last-child, .ap2-progress-card > div:last-child {
  min-width: 0; display: flex; flex-direction: column;
}
.ap1-progress-card strong, .ap2-progress-card strong {
  font-size: .79rem;
}
.ap1-progress-card small, .ap2-progress-card small {
  color: var(--ap-muted); font-size: .67rem; line-height: 1.35; margin-top: 3px;
}
.ap1-search-wrap, .ap2-search-wrap {
  position: relative; display: flex; align-items: center; margin: 0 15px 12px;
}
.ap1-search-wrap > span, .ap2-search-wrap > span {
  position: absolute; left: 12px; color: var(--ap-muted); font-size: 1.1rem;
}
.ap1-search-wrap input, .ap2-search-wrap input {
  width: 100%; height: 41px; padding: 0 12px 0 34px;
  border: 1px solid var(--ap-line); border-radius: 12px;
  background: #fff; color: var(--ap-ink); outline: none;
  font: 500 .76rem/1 'DM Sans', sans-serif;
}
.ap1-search-wrap input:focus, .ap2-search-wrap input:focus {
  border-color: var(--ap-teal); box-shadow: 0 0 0 3px rgba(198,83,29,.12);
}
.ap1-search-results, .ap2-search-results {
  position: absolute; z-index: 50; top: 181px; left: 15px; right: 15px;
  max-height: min(480px, 65vh); overflow-y: auto;
  border: 1px solid var(--ap-line); border-radius: 14px;
  background: #fff; box-shadow: 0 18px 48px rgba(20,54,62,.18);
}
.ap1-search-results button, .ap2-search-results button {
  width: 100%; display: flex; flex-direction: column; gap: 3px;
  padding: 11px 13px; text-align: left; border: 0; border-bottom: 1px solid #f0e6dc;
  background: transparent; color: var(--ap-ink); cursor: pointer;
}
.ap1-search-results button:hover, .ap2-search-results button:hover {
  background: var(--ap-sky);
}
.ap1-search-results small, .ap2-search-results small {
  color: var(--ap-teal); font-size: .61rem;
}
.ap1-search-results strong, .ap2-search-results strong {
  font-size: .76rem;
}
.ap1-search-results span, .ap2-search-results span {
  color: var(--ap-muted); font-size: .64rem; line-height: 1.35;
}
.ap1-search-results > p, .ap2-search-results > p {
  padding: 15px; margin: 0; color: var(--ap-muted); font-size: .75rem; line-height: 1.5;
}
.ap1-unit-nav, .ap2-unit-nav {
  flex: 1; min-height: 0; overflow-y: auto; overscroll-behavior: contain;
  -webkit-overflow-scrolling: touch; touch-action: pan-y;
  padding: 0 8px 20px; scrollbar-width: thin;
}
.ap1-nav-unit, .ap2-nav-unit {
  border-bottom: 1px solid rgba(229,219,207,.8);
}
.ap1-nav-unit-btn, .ap2-nav-unit-btn {
  width: 100%; display: flex; align-items: center; gap: 9px;
  padding: 10px 7px; border: 0; background: none; color: var(--ap-ink);
  font-family: inherit; text-align: left; cursor: pointer;
}
.ap1-nav-num, .ap2-nav-num {
  width: 27px; height: 27px; flex: 0 0 27px; display: grid; place-items: center;
  border: 1px solid color-mix(in srgb,var(--ap-teal) 55%,var(--ap-line));
  border-radius: 9px; color: var(--ap-teal); background: transparent;
  font-size: .7rem; font-weight: 700;
}
.ap1-nav-unit-copy, .ap2-nav-unit-copy {
  flex: 1; min-width: 0; display: flex; flex-direction: column; gap: 2px;
}
.ap1-nav-unit-copy strong, .ap2-nav-unit-copy strong {
  font-size: .73rem; line-height: 1.25;
}
.ap1-nav-unit-copy small, .ap2-nav-unit-copy small {
  color: var(--ap-muted); font-size: .6rem;
}
.ap1-nav-chevron, .ap2-nav-chevron {
  color: var(--ap-muted); font-size: .8rem; transition: transform .2s;
}
.ap1-nav-unit.open .ap1-nav-chevron, .ap2-nav-unit.open .ap2-nav-chevron {
  transform: rotate(180deg);
}
.ap1-nav-sections, .ap2-nav-sections {
  display: none; padding: 0 0 8px 28px;
}
.ap1-nav-unit.open .ap1-nav-sections, .ap2-nav-unit.open .ap2-nav-sections {
  display: block;
}
.ap1-nav-section, .ap2-nav-section {
  position: relative; width: 100%; display: grid; grid-template-columns: 22px minmax(0,1fr) auto;
  align-items: start; gap: 7px; padding: 7px 8px;
  border: 0; border-radius: 9px; background: transparent;
  color: #66564b; font: 500 .68rem/1.35 'DM Sans', sans-serif;
  text-align: left; cursor: pointer;
}
.ap1-nav-section:hover, .ap2-nav-section:hover {
  background: #f8ede4; color: var(--ap-ink);
}
.ap1-nav-section.active, .ap2-nav-section.active {
  background: #f7dfcf; color: var(--ap-teal-deep); font-weight: 650;
}
.ap1-nav-section b, .ap2-nav-section b {
  color: #c18a25; font-size: .65rem;
}
.ap1-nav-status, .ap2-nav-status {
  width: 18px; height: 18px; display: grid; place-items: center;
  border: 1px solid #dfd0c2; border-radius: 50%; font-size: .55rem;
}
.ap1-nav-section.done .ap1-nav-status, .ap2-nav-section.done .ap2-nav-status {
  border-color: #46967e; background: #46967e; color: #fff;
}
.ap1-workspace, .ap2-workspace {
  min-width: 0; min-height: 0; height: 100%; display: flex; flex-direction: column;
  overflow-x: hidden; overflow-y: auto; overscroll-behavior: contain;
  -webkit-overflow-scrolling: touch; touch-action: pan-y; background: var(--ap-paper);
}
.ap1-topbar, .ap2-topbar {
  min-height: 62px; display: flex; align-items: center; gap: 12px;
  padding: 12px 23px 12px max(23px,calc((100vw - 920px) / 2 + 20px - 304px));
  border-bottom: 1px solid var(--ap-line); background: rgba(255,254,250,.94);
  backdrop-filter: blur(12px); position: relative; z-index: 15;
}
.ap1-screen.sidebar-collapsed .ap1-topbar, .ap2-screen.sidebar-collapsed .ap2-topbar {
  padding-left: max(20px,calc((100vw - 920px) / 2 + 20px));
}
.ap1-course-back, .ap2-course-back {
  width: auto;
  min-width: 38px;
  padding: 0 12px;
  white-space: nowrap;
  font-size: .68rem;
}
.ap1-menu-btn, .ap2-menu-btn {
  display: none;
}
.ap1-breadcrumb, .ap2-breadcrumb {
  display: flex; align-items: center; gap: 8px; min-width: 0; flex: 1; color: var(--ap-muted); font-size: .71rem;
}
.ap1-breadcrumb button, .ap2-breadcrumb button {
  border: 0; padding: 0; background: none; color: inherit; font: inherit; cursor: pointer; white-space: nowrap;
}
.ap1-breadcrumb button:hover, .ap2-breadcrumb button:hover {
  color: var(--ap-teal);
}
.ap1-breadcrumb strong, .ap2-breadcrumb strong {
  color: var(--ap-ink); overflow: hidden; text-overflow: ellipsis; white-space: nowrap; font-size: .72rem;
}
.ap1-top-actions, .ap2-top-actions {
  display: flex; align-items: center; gap: 7px;
}
.ap1-action-btn, .ap1-complete-btn, .ap1-incomplete-btn, .ap2-action-btn, .ap2-complete-btn, .ap2-incomplete-btn {
  height: 35px; padding: 0 11px; border: 1px solid var(--ap-line); border-radius: 10px;
  background: #fff; color: var(--ap-ink); font: 600 .68rem/1 'DM Sans', sans-serif; cursor: pointer;
}
.ap1-action-btn:hover, .ap1-action-btn.active, .ap2-action-btn:hover, .ap2-action-btn.active {
  border-color: var(--ap-teal); color: var(--ap-teal);
}
.ap1-complete-btn, .ap2-complete-btn {
  border-color: var(--ap-teal); background: var(--ap-teal); color: #fff;
}
.ap1-incomplete-btn, .ap2-incomplete-btn {
  border-color: #d8c4b8; background: #fff; color: var(--ap-muted);
}
.ap1-incomplete-btn:hover, .ap2-incomplete-btn:hover {
  border-color: var(--ap-teal); color: var(--ap-teal);
}
.ap1-mark-incomplete, .ap2-mark-incomplete {
  background: #fff !important; color: var(--ap-muted) !important; border: 1px solid #d8c4b8 !important;
}
.ap1-content, .ap2-content {
  position: relative; flex: 0 0 auto; min-height: calc(100% - 62px); height: auto;
  overflow: visible;
}
.ap1-workspace, .ap1-unit-nav, .ap1-exam-question, .ap1-exam-navigator, .ap2-workspace, .ap2-unit-nav, .ap2-exam-question, .ap2-exam-navigator {
  scrollbar-color: var(--ap-teal) #eadfd4; scrollbar-width: thin;
}
.ap1-workspace::-webkit-scrollbar, .ap1-unit-nav::-webkit-scrollbar, .ap1-exam-question::-webkit-scrollbar, .ap1-exam-navigator::-webkit-scrollbar, .ap2-workspace::-webkit-scrollbar, .ap2-unit-nav::-webkit-scrollbar, .ap2-exam-question::-webkit-scrollbar, .ap2-exam-navigator::-webkit-scrollbar {
  width: 10px; height: 10px;
}
.ap1-workspace::-webkit-scrollbar-thumb, .ap1-unit-nav::-webkit-scrollbar-thumb, .ap1-exam-question::-webkit-scrollbar-thumb, .ap1-exam-navigator::-webkit-scrollbar-thumb, .ap2-workspace::-webkit-scrollbar-thumb, .ap2-unit-nav::-webkit-scrollbar-thumb, .ap2-exam-question::-webkit-scrollbar-thumb, .ap2-exam-navigator::-webkit-scrollbar-thumb {
  border: 2px solid transparent; border-radius: 99px;
  background: var(--ap-teal); background-clip: padding-box;
}
.ap1-workspace::-webkit-scrollbar-track, .ap1-unit-nav::-webkit-scrollbar-track, .ap1-exam-question::-webkit-scrollbar-track, .ap1-exam-navigator::-webkit-scrollbar-track, .ap2-workspace::-webkit-scrollbar-track, .ap2-unit-nav::-webkit-scrollbar-track, .ap2-exam-question::-webkit-scrollbar-track, .ap2-exam-navigator::-webkit-scrollbar-track {
  background: #eadfd4;
}
.ap1-dashboard, .ap2-dashboard {
  max-width: 1160px; margin: 0 auto; padding: 46px clamp(24px,4vw,64px) 70px;
}
.ap1-hero, .ap2-hero {
  position: relative; overflow: hidden; display: grid; grid-template-columns: minmax(0,1.25fr) minmax(280px,.75fr);
  gap: 40px; align-items: center; min-height: 410px; padding: 54px clamp(30px,5vw,70px);
  border-radius: 30px; color: #fff8f1;
  background: radial-gradient(circle at 86% 14%, rgba(232,117,48,.28), transparent 29%),
  linear-gradient(135deg, #191614 0%, #32251f 56%, #843815 100%);
  box-shadow: 0 26px 80px rgba(50,32,23,.22);
}
.ap1-hero::after, .ap2-hero::after {
  content: ''; position: absolute; inset: 0; opacity: .13; pointer-events: none;
  background-image: linear-gradient(rgba(255,255,255,.5) 1px, transparent 1px), linear-gradient(90deg,rgba(255,255,255,.5) 1px,transparent 1px);
  background-size: 36px 36px; mask-image: linear-gradient(to left, #000, transparent 75%);
}
.ap1-hero-copy, .ap2-hero-copy {
  position: relative; z-index: 2;
}
.ap1-eyebrow, .ap2-eyebrow {
  display: block; color: #f0a16e; font-size: .67rem; font-weight: 700; letter-spacing: .14em; text-transform: uppercase;
}
.ap1-hero h1, .ap2-hero h1 {
  margin: 13px 0 18px; color: #fff; font: 700 clamp(2.35rem,5vw,4.3rem)/.98 'Playfair Display', serif;
  letter-spacing: -.045em;
}
.ap1-hero h1 em, .ap2-hero h1 em {
  color: #f1a06d; font-style: italic; font-weight: 600;
}
.ap1-hero-copy > p, .ap2-hero-copy > p {
  max-width: 610px; margin: 0; color: #e7d7cb; font-size: .93rem; line-height: 1.72;
}
.ap1-hero-actions, .ap2-hero-actions {
  display: flex; gap: 10px; flex-wrap: wrap; margin-top: 27px;
}
.ap1-primary-btn, .ap1-secondary-btn, .ap2-primary-btn, .ap2-secondary-btn {
  min-height: 45px; padding: 0 18px; border: 1px solid transparent; border-radius: 12px;
  font: 650 .76rem/1 'DM Sans',sans-serif; cursor: pointer;
}
.ap1-primary-btn, .ap2-primary-btn {
  background: #fff; color: #8e3510; box-shadow: 0 8px 22px rgba(28,18,13,.2);
}
.ap1-primary-btn span, .ap2-primary-btn span {
  margin-left: 14px;
}
.ap1-secondary-btn, .ap2-secondary-btn {
  border-color: rgba(255,255,255,.35); background: rgba(255,255,255,.08); color: #fff;
}
.ap1-primary-btn:hover, .ap1-secondary-btn:hover, .ap2-primary-btn:hover, .ap2-secondary-btn:hover {
  transform: translateY(-2px);
}
.ap1-hero-stats, .ap2-hero-stats {
  display: flex; gap: 24px; margin-top: 31px; color: #dac8bc; font-size: .65rem;
}
.ap1-hero-stats span, .ap2-hero-stats span {
  display: flex; align-items: baseline; gap: 5px;
}
.ap1-hero-stats strong, .ap2-hero-stats strong {
  color: #fff; font-size: 1rem;
}
.ap1-orbit-card, .ap2-orbit-card {
  position: relative; z-index: 2; min-height: 290px; display: grid; place-items: center;
}
.ap1-orbit, .ap2-orbit {
  position: absolute; border: 1px solid rgba(255,190,143,.38); border-radius: 50%; transform: rotate(-18deg);
}
.ap1-orbit-one, .ap2-orbit-one {
  width: 250px; height: 128px;
}
.ap1-orbit-two, .ap2-orbit-two {
  width: 128px; height: 250px; transform: rotate(44deg);
}
.ap1-orbit-core, .ap2-orbit-core {
  width: 104px; height: 104px; display: grid; place-items: center; border-radius: 50%;
  background: rgba(255,255,255,.12); border: 1px solid rgba(255,255,255,.32);
  box-shadow: 0 0 60px rgba(232,112,47,.23);
  color: #fff; font: 700 1.35rem/1 Georgia,serif;
}
.ap1-orbit-dot, .ap2-orbit-dot {
  position: absolute; width: 35px; height: 35px; display: grid; place-items: center;
  border-radius: 50%; background: #f0a06b; color: #321c12; font: italic 700 1rem/1 Georgia,serif;
  box-shadow: 0 7px 22px rgba(0,0,0,.18);
}
.ap1-orbit-dot.dot-a, .ap2-orbit-dot.dot-a {
  top: 61px; right: 46px;
}
.ap1-orbit-dot.dot-b, .ap2-orbit-dot.dot-b {
  bottom: 59px; left: 42px;
}
.ap1-orbit-dot.dot-c, .ap2-orbit-dot.dot-c {
  top: 95px; left: 30px;
}
.ap1-orbit-card > p, .ap2-orbit-card > p {
  position: absolute; bottom: 3px; color: #d8c4b8; font-size: .68rem; letter-spacing: .08em;
}
.ap1-continue-card, .ap2-continue-card {
  width: calc(100% - 60px); max-width: 850px; margin: -26px auto 55px; position: relative; z-index: 4;
  display: grid; grid-template-columns: 42px minmax(0,1fr) auto; align-items: center; gap: 14px;
  padding: 15px 18px; border: 1px solid var(--ap-line); border-radius: 16px;
  background: #fff; color: var(--ap-ink); text-align: left; cursor: pointer;
  box-shadow: 0 16px 44px rgba(29,75,83,.14);
}
.ap1-continue-card:hover, .ap2-continue-card:hover {
  border-color: #df9a70; transform: translateY(-2px);
}
.ap1-exam-resume, .ap2-exam-resume {
  max-width: 850px; margin: -34px auto 42px; padding: 14px 16px;
  display: grid; grid-template-columns: minmax(0,1fr) auto auto; align-items: center; gap: 10px;
  border: 1px solid #e3b58f; border-radius: 13px; background: #fff5ec;
}
.ap1-exam-resume > div, .ap2-exam-resume > div {
  display: flex; flex-direction: column; gap: 2px;
}
.ap1-exam-resume span, .ap2-exam-resume span {
  color: var(--ap-teal); font-size: .58rem; font-weight: 750; text-transform: uppercase;
}
.ap1-exam-resume strong, .ap2-exam-resume strong {
  font-size: .76rem;
}
.ap1-exam-resume small, .ap2-exam-resume small {
  color: var(--ap-muted); font-size: .6rem;
}
.ap1-exam-resume button, .ap2-exam-resume button {
  min-height: 35px; padding: 0 11px; border: 1px solid var(--ap-line); border-radius: 8px; background: #fff; color: var(--ap-ink); cursor: pointer;
}
.ap1-exam-resume button:first-of-type, .ap2-exam-resume button:first-of-type {
  border-color: var(--ap-teal); background: var(--ap-teal); color: #fff;
}
.ap1-continue-icon, .ap2-continue-icon {
  width: 38px; height: 38px; display: grid; place-items: center; border-radius: 11px; background: var(--ap-sky); color: var(--ap-teal);
}
.ap1-continue-card > span:nth-child(2), .ap2-continue-card > span:nth-child(2) {
  display: flex; flex-direction: column; gap: 3px; min-width: 0;
}
.ap1-continue-card small, .ap2-continue-card small {
  color: var(--ap-muted); font-size: .62rem;
}
.ap1-continue-card strong, .ap2-continue-card strong {
  overflow: hidden; text-overflow: ellipsis; white-space: nowrap; font-size: .82rem;
}
.ap1-continue-card > span:last-child, .ap2-continue-card > span:last-child {
  color: var(--ap-teal); font-size: .7rem; font-weight: 700;
}
.ap1-dashboard-heading, .ap2-dashboard-heading {
  display: flex; align-items: end; justify-content: space-between; gap: 30px; margin-bottom: 22px;
}
.ap1-dashboard-heading .ap1-eyebrow, .ap2-dashboard-heading .ap2-eyebrow {
  color: var(--ap-teal);
}
.ap1-dashboard-heading h2, .ap2-dashboard-heading h2 {
  margin: 6px 0 0; color: var(--ap-ink); font: 700 clamp(1.65rem,3vw,2.35rem)/1.15 'Playfair Display',serif;
}
.ap1-dashboard-heading > p, .ap2-dashboard-heading > p {
  max-width: 290px; color: var(--ap-muted); font-size: .73rem; line-height: 1.55;
}
.ap1-unit-grid, .ap2-unit-grid {
  display: grid; grid-template-columns: repeat(4,minmax(0,1fr)); gap: 14px;
}
.ap1-unit-card, .ap2-unit-card {
  min-height: 245px; display: flex; flex-direction: column; align-items: stretch;
  overflow: hidden; border: 1px solid var(--ap-line); border-radius: 18px;
  background: #fff; color: var(--ap-ink); text-align: left; transition: .2s ease;
}
.ap1-unit-card:hover, .ap2-unit-card:hover {
  border-color: color-mix(in srgb,var(--unit-color) 50%,white); transform: translateY(-4px); box-shadow: 0 14px 38px rgba(42,75,81,.1);
}
.ap1-unit-main, .ap2-unit-main {
  flex: 1; min-width: 0; display: flex; flex-direction: column; align-items: stretch;
  padding: 18px 18px 12px; border: 0; background: transparent; color: inherit;
  font: inherit; text-align: left; cursor: pointer;
}
.ap1-unit-card-top, .ap2-unit-card-top {
  display: flex; justify-content: space-between; color: var(--unit-color); font-size: .64rem;
}
.ap1-unit-card-top i, .ap2-unit-card-top i {
  color: var(--ap-muted); font-style: normal;
}
.ap1-unit-symbol, .ap2-unit-symbol {
  width: 54px; height: 54px; display: grid; place-items: center; margin: 23px 0 16px;
  border-radius: 17px; background: color-mix(in srgb,var(--unit-color) 11%,white);
  color: var(--unit-color); font: italic 700 1.05rem/1 Georgia,serif;
}
.ap1-unit-main > strong, .ap2-unit-main > strong {
  min-height: 39px; font: 700 .95rem/1.25 'Playfair Display',serif;
}
.ap1-unit-main > small, .ap2-unit-main > small {
  margin-top: 5px; color: var(--ap-muted); font-size: .62rem;
}
.ap1-unit-progress, .ap2-unit-progress {
  height: 4px; margin-top: auto; overflow: hidden; border-radius: 99px; background: #eee4da;
}
.ap1-unit-progress i, .ap2-unit-progress i {
  display: block; height: 100%; border-radius: inherit; background: var(--unit-color);
}
.ap1-unit-open, .ap2-unit-open {
  display: flex; justify-content: space-between; margin-top: 12px; color: var(--ap-teal); font-size: .66rem; font-weight: 650;
}
.ap1-unit-quick, .ap2-unit-quick {
  display: grid; grid-template-columns: 1fr 1.25fr; gap: 6px;
  padding: 9px; border-top: 1px solid var(--ap-line); background: #fcf8f4;
}
.ap1-unit-quick button, .ap2-unit-quick button {
  min-height: 33px; padding: 0 7px; border: 1px solid var(--ap-line); border-radius: 8px;
  background: #fff; color: var(--ap-ink); font: 650 .58rem/1 'DM Sans',sans-serif; cursor: pointer;
}
.ap1-unit-quick button:hover, .ap2-unit-quick button:hover {
  border-color: var(--unit-color); color: var(--unit-color);
}
.ap1-unit-quick span, .ap2-unit-quick span {
  margin-right: 4px; color: var(--unit-color);
}
.ap1-starred-home, .ap2-starred-home {
  margin-top: 48px;
}
.ap1-starred-grid, .ap2-starred-grid {
  display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 10px;
}
.ap1-starred-grid:not(.expanded) button:nth-child(n+7), .ap2-starred-grid:not(.expanded) button:nth-child(n+7) {
  display: none;
}
.ap1-starred-grid.filtered button:not([hidden]), .ap2-starred-grid.filtered button:not([hidden]) {
  display: flex;
}
.ap1-starred-grid.expanded, .ap2-starred-grid.expanded {
  max-height: 430px; padding-right: 6px; overflow-y: auto;
  overscroll-behavior: contain; scrollbar-width: thin;
}
.ap1-starred-grid button, .ap2-starred-grid button {
  min-width: 0; padding: 14px; display: flex; flex-direction: column; align-items: flex-start;
  border: 1px solid var(--ap-line); border-radius: 13px; background: #fff;
  color: var(--ap-ink); text-align: left; cursor: pointer;
}
.ap1-starred-grid button:hover, .ap2-starred-grid button:hover {
  border-color: #d49a32; transform: translateY(-2px);
}
.ap1-starred-grid span, .ap2-starred-grid span {
  color: #a66d17; font-size: .57rem; font-weight: 750; letter-spacing: .06em; text-transform: uppercase;
}
.ap1-starred-grid strong, .ap2-starred-grid strong {
  width: 100%; margin-top: 7px; overflow: hidden; font-size: .72rem;
  text-overflow: ellipsis; white-space: nowrap;
}
.ap1-starred-grid small, .ap2-starred-grid small {
  margin-top: 4px; color: var(--ap-muted); font-size: .59rem;
}
.ap1-starred-grid i, .ap2-starred-grid i {
  margin-top: 12px; color: var(--ap-teal); font-size: .6rem; font-style: normal; font-weight: 700;
}
.ap1-starred-toggle, .ap2-starred-toggle {
  min-height: 36px; margin-top: 11px; padding: 0 13px; border: 1px solid var(--ap-line);
  border-radius: 9px; background: #fff; color: var(--ap-teal);
  font: 700 .62rem/1 'DM Sans',sans-serif; cursor: pointer;
}
.ap1-starred-toggle:hover, .ap2-starred-toggle:hover {
  border-color: var(--ap-teal); background: var(--ap-sky);
}
.ap1-starred-tools, .ap2-starred-tools {
  display: flex; gap: 6px; margin: -10px 0 12px;
}
.ap1-starred-tools button, .ap2-starred-tools button {
  min-height: 30px; padding: 0 9px; border: 1px solid var(--ap-line); border-radius: 8px; background: #fff; color: var(--ap-muted); font-size: .59rem; cursor: pointer;
}
.ap1-starred-tools button.active, .ap2-starred-tools button.active {
  border-color: var(--ap-teal); color: var(--ap-teal); background: var(--ap-sky);
}
.ap1-starred-tools [data-clear-stars], .ap2-starred-tools [data-clear-stars] {
  margin-left: auto; color: #a34b36;
}
.ap1-study-method, .ap2-study-method {
  margin-top: 60px; padding: 28px; display: grid; grid-template-columns: repeat(3,1fr); gap: 28px;
  border-radius: 22px; background: #f7eee6;
}
.ap1-practice-exams, .ap2-practice-exams {
  margin-top: 64px; scroll-margin-top: 24px;
}
.ap1-practice-exams .ap1-dashboard-heading, .ap2-practice-exams .ap2-dashboard-heading {
  align-items: center;
}
.ap1-exam-card-grid, .ap2-exam-card-grid {
  display: grid; grid-template-columns: repeat(5,minmax(0,1fr)); gap: 11px;
}
.ap1-practice-exam-card, .ap2-practice-exam-card {
  min-width: 0; min-height: 330px; padding: 16px; display: flex; flex-direction: column;
  border: 1px solid var(--ap-line); border-radius: 17px;
  background: #fff; color: var(--ap-ink);
}
.ap1-practice-exam-top, .ap2-practice-exam-top {
  display: flex; justify-content: space-between; color: var(--ap-muted); font-size: .58rem; text-transform: uppercase; letter-spacing: .07em;
}
.ap1-practice-exam-top b, .ap2-practice-exam-top b {
  color: var(--ap-teal);
}
.ap1-practice-exam-card img, .ap2-practice-exam-card img {
  width: 45px; height: 45px; object-fit: contain; margin: 22px 0 16px;
}
.ap1-practice-exam-card h3, .ap2-practice-exam-card h3 {
  min-height: 48px; font: 700 .86rem/1.3 'Playfair Display',serif;
}
.ap1-practice-exam-card > p, .ap2-practice-exam-card > p {
  margin: 7px 0 18px; color: var(--ap-muted); font-size: .61rem; line-height: 1.45;
}
.ap1-exam-question-counts, .ap2-exam-question-counts {
  display: flex; flex-direction: column; gap: 3px;
}
.ap1-exam-question-counts span, .ap2-exam-question-counts span {
  display: block;
}
.ap1-exam-time, .ap2-exam-time {
  display: flex; align-items: center; gap: 7px; color: var(--ap-muted); font-size: .58rem;
}
.ap1-exam-time i, .ap2-exam-time i {
  flex: 1; height: 1px; background: var(--ap-line);
}
.ap1-exam-card-actions, .ap2-exam-card-actions {
  display: flex; margin-top: auto; padding-top: 14px; gap: 7px;
}
.ap1-exam-card-actions button, .ap2-exam-card-actions button {
  flex: 1; min-width: 0; min-height: 37px; border: 0; border-radius: 9px;
  background: var(--ap-ink); color: #fff; font: 650 .63rem/1 'DM Sans',sans-serif; cursor: pointer;
}
.ap1-exam-card-actions button.secondary, .ap2-exam-card-actions button.secondary {
  border: 1px solid var(--ap-line); background: transparent; color: var(--ap-ink);
}
.ap1-exam-card-actions button:hover, .ap2-exam-card-actions button:hover {
  background: var(--ap-teal); color: #fff; transform: translateY(-1px);
}
.ap1-previous-attempts, .ap2-previous-attempts {
  margin-top: 22px; padding: 18px;
  border: 1px solid var(--ap-line); border-radius: 17px;
  background: rgba(255,255,255,.58);
}
.ap1-previous-attempts-head, .ap2-previous-attempts-head {
  display: flex; align-items: end; justify-content: space-between; gap: 18px; margin-bottom: 13px;
}
.ap1-previous-attempts-head h3, .ap2-previous-attempts-head h3 {
  margin: 4px 0 0; font: 700 1.12rem/1.2 'Playfair Display',serif;
}
.ap1-previous-attempts-head p, .ap2-previous-attempts-head p {
  max-width: 460px; margin: 0; color: var(--ap-muted); font-size: .64rem; line-height: 1.45; text-align: right;
}
.ap1-previous-attempt-grid, .ap2-previous-attempt-grid {
  display: grid; grid-template-columns: repeat(auto-fill,minmax(180px,1fr)); gap: 8px;
}
.ap1-previous-attempt-grid > button, .ap2-previous-attempt-grid > button {
  min-width: 0; padding: 12px; display: flex; flex-direction: column; align-items: stretch; gap: 4px;
  border: 1px solid var(--ap-line); border-radius: 12px; background: #fff;
  color: var(--ap-ink); text-align: left; cursor: pointer; transition: .18s ease;
}
.ap1-previous-attempt-grid > button:hover, .ap2-previous-attempt-grid > button:hover {
  border-color: var(--ap-teal); transform: translateY(-1px); box-shadow: 0 7px 18px rgba(69,42,26,.08);
}
.ap1-previous-attempt-grid span, .ap2-previous-attempt-grid span {
  display: flex; justify-content: space-between; color: var(--ap-muted); font-size: .58rem;
}
.ap1-previous-attempt-grid span b, .ap2-previous-attempt-grid span b {
  text-transform: uppercase; letter-spacing: .06em;
}
.ap1-previous-attempt-grid span i, .ap2-previous-attempt-grid span i {
  color: var(--ap-teal); font-style: normal; font-weight: 800;
}
.ap1-previous-attempt-grid strong, .ap2-previous-attempt-grid strong {
  font-size: .72rem;
}
.ap1-previous-attempt-grid small, .ap2-previous-attempt-grid small {
  color: var(--ap-muted); font-size: .56rem; line-height: 1.4;
}
.ap1-previous-attempt-grid em, .ap2-previous-attempt-grid em {
  margin-top: 4px; color: var(--ap-teal); font: 700 .58rem/1.2 'DM Sans',sans-serif; font-style: normal;
}
.ap1-study-method > div, .ap2-study-method > div {
  display: grid; grid-template-columns: 34px 1fr; column-gap: 10px;
}
.ap1-study-method span, .ap2-study-method span {
  grid-row: 1 / 3; color: var(--ap-teal); font: 700 .65rem/1 'DM Sans',sans-serif;
}
.ap1-study-method strong, .ap2-study-method strong {
  font-size: .78rem;
}
.ap1-study-method p, .ap2-study-method p {
  margin: 5px 0 0; color: var(--ap-muted); font-size: .67rem; line-height: 1.5;
}
.ap1-reader, .ap2-reader {
  max-width: 980px; margin: 0 auto; padding: 24px clamp(24px,4vw,54px) 80px;
  display: flex; flex-direction: column; gap: 18px;
}
.ap1-article, .ap2-article {
  min-width: 0;
}
.ap1-article-header, .ap2-article-header {
  display: grid; grid-template-columns: auto minmax(180px,1fr) auto;
  grid-template-areas: "kicker title meta" "kicker sub meta";
  align-items: center; column-gap: 24px; row-gap: 2px;
  min-height: 72px; padding: 10px 0 12px; border-bottom: 1px solid var(--ap-line);
}
.ap1-article-kicker, .ap2-article-kicker {
  display: flex; align-items: center; gap: 7px; color: var(--unit-color); font-size: .66rem; font-weight: 700; letter-spacing: .08em; text-transform: uppercase;
}
.ap1-article-kicker, .ap2-article-kicker {
  grid-area: kicker; white-space: nowrap;
}
.ap1-article-kicker span, .ap2-article-kicker span {
  width: 25px; height: 25px; display: grid; place-items: center; border-radius: 8px; background: color-mix(in srgb,var(--unit-color) 12%,white);
}
.ap1-article-header h1, .ap2-article-header h1 {
  grid-area: title; min-width: 0; max-width: 820px; margin: 0; color: var(--ap-ink);
  font: 700 clamp(1.35rem,2.2vw,1.8rem)/1.08 'Playfair Display',serif;
  letter-spacing: -.025em;
}
.ap1-article-sub, .ap2-article-sub {
  grid-area: sub; margin: 0; color: var(--ap-muted); font-size: .68rem;
}
.ap1-article-meta, .ap2-article-meta {
  grid-area: meta; display: inline-flex; flex-wrap: nowrap; justify-content: flex-end;
  gap: 0; margin: 0; padding: 4px; border: 1px solid var(--ap-line);
  border-radius: 10px; background: color-mix(in srgb,var(--ap-paper) 90%,var(--ap-cream));
  color: var(--ap-muted); font-size: .59rem; white-space: nowrap;
}
.ap1-article-meta span, .ap2-article-meta span {
  min-height: 25px; display: inline-flex; align-items: center; gap: 4px;
  padding: 0 9px; border-left: 1px solid var(--ap-line);
}
.ap1-article-meta span:first-child, .ap2-article-meta span:first-child {
  border-left: 0;
}
.ap1-article-meta i, .ap2-article-meta i {
  color: var(--unit-color); font-size: .67rem; font-style: normal; font-weight: 700;
}
.ap1-article-meta b, .ap2-article-meta b {
  color: var(--ap-ink); font-size: .65rem;
}
.ap1-meta-progress em, .ap2-meta-progress em {
  width: 54px; height: 5px; overflow: hidden; border-radius: 99px;
  background: #eadfd4; font-style: normal;
}
.ap1-meta-progress em i, .ap2-meta-progress em i {
  display: block; height: 100%; border-radius: inherit; background: var(--unit-color);
  transition: width .2s ease;
}
.ap1-meta-progress > b, .ap2-meta-progress > b {
  min-width: 27px; text-align: right;
}
.ap1-article-body, .ap2-article-body {
  padding-top: 24px; color: #4a3d34; font: 400 .91rem/1.78 'DM Sans',sans-serif;
}
.ap1-article-body > p, .ap2-article-body > p {
  margin: 0 0 1.2em;
}
.ap1-article-body h2, .ap2-article-body h2 {
  scroll-margin-top: 80px; margin: 2.3em 0 .75em; color: var(--ap-ink); font: 700 1.45rem/1.25 'Playfair Display',serif;
}
.ap1-article-body h3, .ap2-article-body h3 {
  scroll-margin-top: 80px; margin: 1.8em 0 .65em; color: var(--ap-ink); font-size: 1rem;
}
.ap1-article-body strong, .ap2-article-body strong {
  color: var(--ap-ink);
}
.ap1-article-body code, .ap2-article-body code {
  padding: .12em .35em; border-radius: 5px; background: #f5e9df; color: #8e3510; font-size: .88em;
}
.ap1-physics-figure, .ap2-physics-figure {
  width: min(100%, 680px); margin: 24px auto; padding: 18px 18px 12px;
  border: 1px solid var(--ap-line); border-radius: 16px;
  background: linear-gradient(145deg, #fffdfa, #f8ede4);
  break-inside: avoid;
}
.ap1-figure-stage, .ap2-figure-stage {
  position: relative; height: 230px; overflow: hidden; border-radius: 11px; background: #fff;
}
.ap1-physics-figure figcaption, .ap2-physics-figure figcaption {
  margin-top: 10px; color: var(--ap-muted); font-size: .65rem; text-align: center;
}
.ap1-original-graph img, .ap2-original-graph img {
  display: block; width: 100%; height: clamp(260px, 44vw, 520px);
  max-width: 100%; margin: 0 auto; object-fit: contain;
}
.ap1-option-figure, .ap2-option-figure {
  display: block; width: min(100%, 220px); max-height: 170px; margin: 8px auto; object-fit: contain;
}
.ap1-figure-stage i, .ap1-figure-stage b, .ap2-figure-stage i, .ap2-figure-stage b {
  position: absolute; display: block;
}
.ap1-figure-stage b, .ap2-figure-stage b {
  color: var(--ap-ink); font: 650 .72rem/1 'DM Sans',sans-serif;
}
.ap1-figure-graph .axis-x, .ap2-figure-graph .axis-x {
  left: 13%; right: 9%; bottom: 18%; height: 2px; background: #3a3029;
}
.ap1-figure-graph .axis-y, .ap2-figure-graph .axis-y {
  left: 13%; top: 10%; bottom: 18%; width: 2px; background: #3a3029;
}
.ap1-figure-graph .plot-line, .ap2-figure-graph .plot-line {
  left: 18%; bottom: 24%; width: 65%; height: 45%; border-top: 5px solid var(--ap-teal); border-radius: 55% 45% 0 0; transform: rotate(-8deg);
}
.ap1-figure-graph .axis-label-x, .ap2-figure-graph .axis-label-x {
  right: 7%; bottom: 13%;
}
.ap1-figure-graph .axis-label-y, .ap2-figure-graph .axis-label-y {
  left: 4%; top: 7%;
}
.ap1-figure-forces .body, .ap2-figure-forces .body {
  left: 50%; top: 50%; width: 58px; height: 58px; transform: translate(-50%,-50%); border-radius: 10px; background: var(--ap-teal);
}
.ap1-figure-forces .arrow, .ap2-figure-forces .arrow {
  left: 50%; top: 50%; width: 4px; height: 78px; transform-origin: 2px 0; background: #2b231d;
}
.ap1-figure-forces .arrow::after, .ap1-figure-projectile .gravity::after, .ap2-figure-forces .arrow::after, .ap2-figure-projectile .gravity::after {
  content: ''; position: absolute; left: -5px; bottom: -1px; border: 7px solid transparent; border-top-color: #2b231d;
}
.ap1-figure-forces .arrow.up, .ap2-figure-forces .arrow.up {
  transform: rotate(180deg);
}
.ap1-figure-forces .arrow.left, .ap2-figure-forces .arrow.left {
  transform: rotate(90deg);
}
.ap1-figure-forces .arrow.right, .ap2-figure-forces .arrow.right {
  transform: rotate(-90deg);
}
.ap1-figure-forces .label.up, .ap2-figure-forces .label.up {
  left: 53%; top: 10%;
}
.ap1-figure-forces .label.down, .ap2-figure-forces .label.down {
  left: 53%; bottom: 8%;
}
.ap1-figure-projectile .ground, .ap2-figure-projectile .ground {
  left: 8%; right: 8%; bottom: 18%; height: 3px; background: #3a3029;
}
.ap1-figure-projectile .trajectory, .ap2-figure-projectile .trajectory {
  left: 13%; bottom: 18%; width: 72%; height: 65%; border: 4px dashed var(--ap-teal); border-bottom: 0; border-radius: 50% 50% 0 0;
}
.ap1-figure-projectile .particle, .ap2-figure-projectile .particle {
  width: 15px; height: 15px; border-radius: 50%; background: #2b231d;
}
.ap1-figure-projectile .p1, .ap2-figure-projectile .p1 {
  left: 15%; bottom: 19%;
}
.ap1-figure-projectile .p2, .ap2-figure-projectile .p2 {
  left: 34%; top: 29%;
}
.ap1-figure-projectile .p3, .ap2-figure-projectile .p3 {
  left: 58%; top: 20%;
}
.ap1-figure-projectile .p4, .ap2-figure-projectile .p4 {
  right: 14%; bottom: 19%;
}
.ap1-figure-projectile .velocity, .ap2-figure-projectile .velocity {
  left: 18%; bottom: 28%; color: var(--ap-teal);
}
.ap1-figure-projectile .gravity, .ap2-figure-projectile .gravity {
  right: 8%; top: 16%;
}
.ap1-figure-rotation .wheel, .ap2-figure-rotation .wheel {
  left: 50%; top: 50%; width: 145px; height: 145px; transform: translate(-50%,-50%); border: 7px solid var(--ap-teal); border-radius: 50%;
}
.ap1-figure-rotation .hub, .ap2-figure-rotation .hub {
  left: 50%; top: 50%; width: 18px; height: 18px; transform: translate(-50%,-50%); border-radius: 50%; background: #2b231d;
}
.ap1-figure-rotation .radius, .ap2-figure-rotation .radius {
  left: 50%; top: calc(50% - 2px); width: 72px; height: 4px; background: #2b231d; transform: rotate(-35deg); transform-origin: left;
}
.ap1-figure-rotation .tangent, .ap2-figure-rotation .tangent {
  left: 64%; top: 15%; width: 4px; height: 72px; background: var(--ap-teal); transform: rotate(55deg);
}
.ap1-figure-rotation .omega, .ap2-figure-rotation .omega {
  left: 30%; top: 18%; color: var(--ap-teal); font-size: 1rem;
}
.ap1-figure-rotation .radius-label, .ap2-figure-rotation .radius-label {
  left: 57%; top: 39%;
}
.ap1-figure-oscillation .wall, .ap2-figure-oscillation .wall {
  left: 8%; top: 20%; bottom: 20%; width: 9px; background: #2b231d;
}
.ap1-figure-oscillation .spring, .ap2-figure-oscillation .spring {
  left: 10%; top: 48%; width: 55%; height: 22px; background: repeating-linear-gradient(120deg,transparent 0 10px,var(--ap-teal) 11px 15px,transparent 16px 25px);
}
.ap1-figure-oscillation .mass, .ap2-figure-oscillation .mass {
  right: 16%; top: 36%; width: 80px; height: 70px; border-radius: 9px; background: #2b231d;
}
.ap1-figure-oscillation .equilibrium, .ap2-figure-oscillation .equilibrium {
  left: 68%; top: 14%; bottom: 13%; border-left: 2px dashed #d39133;
}
.ap1-figure-oscillation .eq-label, .ap2-figure-oscillation .eq-label {
  left: 61%; bottom: 6%;
}
.ap1-figure-oscillation .motion-label, .ap2-figure-oscillation .motion-label {
  right: 20%; top: 24%; color: var(--ap-teal); font-size: 1.2rem;
}
.ap1-figure-fluid .vessel, .ap2-figure-fluid .vessel {
  left: 22%; right: 22%; top: 12%; bottom: 12%; border: 5px solid #2b231d; border-top: 0; border-radius: 0 0 14px 14px;
}
.ap1-figure-fluid .water, .ap2-figure-fluid .water {
  left: calc(22% + 5px); right: calc(22% + 5px); top: 36%; bottom: calc(12% + 5px); background: #edcfbc;
}
.ap1-figure-fluid .depth, .ap2-figure-fluid .depth {
  left: 31%; top: 36%; bottom: 14%; border-left: 3px dashed var(--ap-teal);
}
.ap1-figure-fluid .depth-label, .ap2-figure-fluid .depth-label {
  left: 27%; top: 58%;
}
.ap1-figure-fluid .pressure-arrow, .ap2-figure-fluid .pressure-arrow {
  right: 14%; height: 3px; background: var(--ap-teal);
}
.ap1-figure-fluid .pressure-arrow.a, .ap2-figure-fluid .pressure-arrow.a {
  top: 41%; width: 35px;
}
.ap1-figure-fluid .pressure-arrow.b, .ap2-figure-fluid .pressure-arrow.b {
  top: 57%; width: 55px;
}
.ap1-figure-fluid .pressure-arrow.c, .ap2-figure-fluid .pressure-arrow.c {
  top: 73%; width: 75px;
}
.ap1-figure-energy .energy-bar, .ap2-figure-energy .energy-bar {
  bottom: 22%; width: 95px; border-radius: 8px 8px 0 0; background: var(--ap-teal);
}
.ap1-figure-energy .energy-bar.one, .ap2-figure-energy .energy-bar.one {
  left: 22%; height: 54%;
}
.ap1-figure-energy .energy-bar.two, .ap2-figure-energy .energy-bar.two {
  right: 22%; height: 34%; background: #2b231d;
}
.ap1-figure-energy .energy-transfer, .ap2-figure-energy .energy-transfer {
  left: 49%; top: 44%; color: #d39133; font-size: 1.5rem;
}
.ap1-figure-energy .energy-label, .ap2-figure-energy .energy-label {
  bottom: 11%;
}
.ap1-figure-energy .energy-label.one, .ap2-figure-energy .energy-label.one {
  left: 29%;
}
.ap1-figure-energy .energy-label.two, .ap2-figure-energy .energy-label.two {
  right: 29%;
}
.ap1-figure-momentum .cart, .ap2-figure-momentum .cart {
  top: 46%; width: 88px; height: 48px; border-radius: 8px; background: var(--ap-teal);
}
.ap1-figure-momentum .cart::after, .ap2-figure-momentum .cart::after {
  content: '●  ●'; position: absolute; left: 12px; top: 39px; letter-spacing: 24px; color: #2b231d;
}
.ap1-figure-momentum .cart.one, .ap2-figure-momentum .cart.one {
  left: 18%;
}
.ap1-figure-momentum .cart.two, .ap2-figure-momentum .cart.two {
  right: 18%; background: #2b231d;
}
.ap1-figure-momentum .momentum-arrow, .ap2-figure-momentum .momentum-arrow {
  top: 35%; width: 70px; height: 4px; background: #d39133;
}
.ap1-figure-momentum .momentum-arrow.one, .ap2-figure-momentum .momentum-arrow.one {
  left: 20%;
}
.ap1-figure-momentum .momentum-arrow.two, .ap2-figure-momentum .momentum-arrow.two {
  right: 20%;
}
.ap1-figure-momentum .momentum-label, .ap2-figure-momentum .momentum-label {
  left: 43%; bottom: 12%;
}
.ap1-figure-motion .motion-line, .ap2-figure-motion .motion-line {
  left: 8%; right: 8%; top: 54%; height: 3px; background: #2b231d;
}
.ap1-figure-motion .motion-dot, .ap2-figure-motion .motion-dot {
  top: calc(54% - 8px); width: 18px; height: 18px; border-radius: 50%; background: var(--ap-teal);
}
.ap1-figure-motion .motion-dot.one, .ap2-figure-motion .motion-dot.one {
  left: 16%;
}
.ap1-figure-motion .motion-dot.two, .ap2-figure-motion .motion-dot.two {
  left: 29%;
}
.ap1-figure-motion .motion-dot.three, .ap2-figure-motion .motion-dot.three {
  left: 49%;
}
.ap1-figure-motion .motion-dot.four, .ap2-figure-motion .motion-dot.four {
  left: 76%;
}
.ap1-figure-motion .motion-arrow, .ap2-figure-motion .motion-arrow {
  left: 17%; right: 14%; top: 32%; height: 3px; background: #d39133;
}
.ap1-figure-motion .motion-label, .ap2-figure-motion .motion-label {
  left: 38%; bottom: 21%;
}
.ap1-article-body ul, .ap1-article-body ol, .ap2-article-body ul, .ap2-article-body ol {
  margin: .8em 0 1.35em; padding-left: 1.5em;
}
.ap1-article-body li, .ap2-article-body li {
  margin: .55em 0; padding-left: .28em;
}
.ap1-article-body li::marker, .ap2-article-body li::marker {
  color: var(--ap-teal); font-weight: 700;
}
.ap1-article-body blockquote, .ap2-article-body blockquote {
  margin: 1.5em 0; padding: 16px 20px; border-left: 3px solid var(--ap-teal); background: var(--ap-sky); border-radius: 0 12px 12px 0;
}
.ap1-display-math, .ap2-display-math {
  margin: 22px 0; padding: 16px; overflow-x: auto; border-radius: 12px; background: #fbf6f1; text-align: center;
}
.ap1-centered, .ap2-centered {
  text-align: center; overflow-x: auto;
}
.ap1-callout, .ap2-callout {
  margin: 24px 0; overflow: hidden; border: 1px solid var(--ap-line); border-radius: 14px; background: #fff;
}
.ap1-callout-title, .ap2-callout-title {
  display: flex; align-items: center; gap: 8px; padding: 10px 14px; border-bottom: 1px solid var(--ap-line); color: var(--ap-teal-deep); background: var(--ap-sky); font-size: .69rem; font-weight: 700; letter-spacing: .04em; text-transform: uppercase;
}
.ap1-callout-title span, .ap2-callout-title span {
  width: 22px; height: 22px; display: grid; place-items: center; border-radius: 7px; background: #fff;
}
.ap1-callout-body, .ap2-callout-body {
  padding: 15px 17px 4px;
}
.ap1-callout-solutionbox, .ap2-callout-solutionbox {
  border-color: #b9dfce;
}
.ap1-callout-solutionbox .ap1-callout-title, .ap2-callout-solutionbox .ap2-callout-title {
  background: #eaf7f0; color: #287157;
}
.ap1-callout-misconception, .ap2-callout-misconception {
  border-color: #edc9be;
}
.ap1-callout-misconception .ap1-callout-title, .ap2-callout-misconception .ap2-callout-title {
  background: #fff0eb; color: #a54f38;
}
.ap1-callout-aptip, .ap2-callout-aptip {
  border-color: #e6d39f;
}
.ap1-callout-aptip .ap1-callout-title, .ap2-callout-aptip .ap2-callout-title {
  background: #fff8df; color: #886615;
}
.ap1-callout-labconnection .ap1-callout-title, .ap2-callout-labconnection .ap2-callout-title {
  background: #fff0e5; color: #963b12;
}
.ap1-table-wrap, .ap2-table-wrap {
  margin: 22px 0; overflow-x: auto; border: 1px solid var(--ap-line); border-radius: 12px;
}
.ap1-table-wrap table, .ap2-table-wrap table {
  width: 100%; border-collapse: collapse; font-size: .76rem;
}
.ap1-table-wrap th, .ap2-table-wrap th {
  background: #f7eee6; color: var(--ap-ink); font-weight: 700;
}
.ap1-table-wrap th, .ap1-table-wrap td, .ap2-table-wrap th, .ap2-table-wrap td {
  padding: 10px 12px; border-bottom: 1px solid var(--ap-line); text-align: left; vertical-align: top;
}
.ap1-practice-intro, .ap1-solution-intro, .ap2-practice-intro, .ap2-solution-intro {
  display: flex; gap: 12px; margin: 24px 0 0; padding: 15px 17px; border-radius: 14px; background: #fff0e5;
}
.ap1-solution-intro, .ap2-solution-intro {
  background: #f8eee5;
}
.ap1-practice-intro > span, .ap1-solution-intro > span, .ap2-practice-intro > span, .ap2-solution-intro > span {
  width: 34px; height: 34px; flex: 0 0 34px; display: grid; place-items: center; border-radius: 10px; background: #fff; color: var(--ap-teal);
}
.ap1-practice-intro strong, .ap1-solution-intro strong, .ap2-practice-intro strong, .ap2-solution-intro strong {
  font-size: .78rem;
}
.ap1-practice-intro p, .ap1-solution-intro p, .ap2-practice-intro p, .ap2-solution-intro p {
  margin: 3px 0 0; color: var(--ap-muted); font-size: .68rem; line-height: 1.45;
}
.ap1-assessment-intro, .ap2-assessment-intro {
  display: flex; gap: 13px; margin-top: 25px; padding: 17px;
  border: 1px solid #edcfbc; border-radius: 15px; background: #fff3e9;
}
.ap1-assessment-intro > span, .ap2-assessment-intro > span {
  width: 37px; height: 37px; flex: 0 0 37px; display: grid; place-items: center;
  border-radius: 10px; background: #fff; color: var(--ap-teal); font-weight: 800;
}
.ap1-assessment-intro strong, .ap2-assessment-intro strong {
  font-size: .8rem;
}
.ap1-assessment-intro p, .ap2-assessment-intro p {
  margin: 3px 0 0; color: var(--ap-muted); font-size: .68rem; line-height: 1.45;
}
.ap1-assessment-list, .ap2-assessment-list {
  display: flex; flex-direction: column; gap: 16px; margin-top: 20px;
}
.ap1-attempt-card, .ap2-attempt-card {
  padding: 22px; border: 1px solid var(--ap-line); border-radius: 16px;
  background: #fff; box-shadow: 0 5px 18px rgba(47,31,22,.045);
}
.ap1-attempt-head, .ap2-attempt-head {
  display: flex; align-items: center; justify-content: space-between; gap: 12px;
}
.ap1-attempt-number, .ap2-attempt-number {
  color: var(--ap-teal); font-size: .62rem; font-weight: 700; letter-spacing: .08em; text-transform: uppercase;
}
.ap1-question-star, .ap2-question-star {
  width: 32px; height: 32px; flex: 0 0 32px; display: grid; place-items: center;
  border: 1px solid var(--ap-line); border-radius: 9px; background: #fffdfa;
  color: #a39488; font-size: 1rem; cursor: pointer;
}
.ap1-question-star:hover, .ap1-question-star.active, .ap2-question-star:hover, .ap2-question-star.active {
  border-color: #d7a447; background: #fff8df; color: #b47a18;
}
.ap1-attempt-prompt, .ap2-attempt-prompt {
  margin: 12px 0 17px;
}
.ap1-attempt-prompt > p:last-child, .ap2-attempt-prompt > p:last-child {
  margin-bottom: 0;
}
.ap1-attempt-options, .ap2-attempt-options {
  display: flex; flex-direction: column; gap: 8px;
}
.ap1-attempt-options > button, .ap1-exam-options > button, .ap2-attempt-options > button, .ap2-exam-options > button {
  width: 100%; min-height: 49px; display: grid; grid-template-columns: 29px minmax(0,1fr);
  align-items: center; gap: 10px; padding: 10px 12px;
  border: 1px solid var(--ap-line); border-radius: 11px;
  background: #fffdfa; color: var(--ap-ink); text-align: left; cursor: pointer;
}
.ap1-attempt-options > button:hover:not(:disabled), .ap1-exam-options > button:hover, .ap2-attempt-options > button:hover:not(:disabled), .ap2-exam-options > button:hover {
  border-color: #d58a61; background: #fff4ec;
}
.ap1-attempt-options > button > span, .ap1-exam-options > button > span, .ap2-attempt-options > button > span, .ap2-exam-options > button > span {
  width: 27px; height: 27px; display: grid; place-items: center;
  border-radius: 8px; background: #f3e4d8; color: var(--ap-teal-deep);
  font-size: .67rem; font-weight: 800;
}
.ap1-attempt-options > button.selected, .ap1-exam-options > button.selected, .ap2-attempt-options > button.selected, .ap2-exam-options > button.selected {
  border-color: var(--ap-teal); background: #fff0e5;
}
.ap1-attempt-options > button.correct, .ap2-attempt-options > button.correct {
  border-color: #4a9275; background: #edf7f1;
}
.ap1-attempt-options > button.wrong, .ap2-attempt-options > button.wrong {
  border-color: #c85f45; background: #fff0eb;
}
.ap1-attempt-options > button div p, .ap1-exam-options > button div p, .ap2-attempt-options > button div p, .ap2-exam-options > button div p {
  margin: 0; font-size: .75rem; line-height: 1.5;
}
.ap1-submit-answer, .ap1-reveal-guidance, .ap1-concept-attempt button, .ap2-submit-answer, .ap2-reveal-guidance, .ap2-concept-attempt button {
  min-height: 38px; margin-top: 13px; padding: 0 14px;
  border: 0; border-radius: 9px; background: var(--ap-teal); color: #fff;
  font: 650 .66rem/1 'DM Sans',sans-serif; cursor: pointer;
}
.ap1-submit-answer:disabled, .ap2-submit-answer:disabled {
  opacity: .45; cursor: default;
}
.ap1-attempt-feedback, .ap2-attempt-feedback {
  display: none; margin-top: 15px; padding: 16px; border-radius: 12px;
}
.ap1-attempt-feedback.show, .ap2-attempt-feedback.show {
  display: block;
}
.ap1-attempt-feedback.correct, .ap2-attempt-feedback.correct {
  background: #edf7f1; border-left: 3px solid #4a9275;
}
.ap1-attempt-feedback.wrong, .ap2-attempt-feedback.wrong {
  background: #fff2eb; border-left: 3px solid var(--ap-teal);
}
.ap1-attempt-feedback > strong, .ap2-attempt-feedback > strong {
  display: block; margin-bottom: 8px; font-size: .72rem;
}
.ap1-attempt-feedback > div, .ap2-attempt-feedback > div {
  font-size: .75rem; line-height: 1.62;
}
.ap1-frq-card > h2, .ap2-frq-card > h2 {
  margin: 10px 0 16px; font: 700 1.25rem/1.25 'Playfair Display',serif;
}
.ap1-frq-card > label, .ap1-concept-attempt > label, .ap1-exam-frq > label, .ap2-frq-card > label, .ap2-concept-attempt > label, .ap2-exam-frq > label {
  display: flex; flex-direction: column; gap: 7px; color: var(--ap-muted); font-size: .64rem; font-weight: 700;
}
.ap1-frq-card textarea, .ap1-concept-attempt textarea, .ap1-exam-frq textarea, .ap2-frq-card textarea, .ap2-concept-attempt textarea, .ap2-exam-frq textarea {
  width: 100%; min-height: 170px; padding: 13px; resize: vertical;
  border: 1px solid var(--ap-line); border-radius: 11px;
  background: #fffdfa; color: var(--ap-ink); outline: none;
  font: 400 .78rem/1.6 'DM Sans',sans-serif;
}
.ap1-frq-card textarea:focus, .ap1-concept-attempt textarea:focus, .ap1-exam-frq textarea:focus, .ap2-frq-card textarea:focus, .ap2-concept-attempt textarea:focus, .ap2-exam-frq textarea:focus {
  border-color: var(--ap-teal); box-shadow: 0 0 0 3px rgba(198,83,29,.1);
}
.ap1-frq-guidance, .ap2-frq-guidance {
  display: none; margin-top: 14px; padding: 17px; border-radius: 12px; background: #f7eee6;
}
.ap1-frq-guidance.show, .ap2-frq-guidance.show {
  display: block;
}
.ap1-frq-self-score, .ap2-frq-self-score {
  display: flex; align-items: center; flex-wrap: wrap; gap: 7px; margin-top: 12px;
}
.ap1-frq-self-score span, .ap2-frq-self-score span {
  margin-right: auto; color: var(--ap-muted); font-size: .63rem;
}
.ap1-frq-self-score button, .ap2-frq-self-score button {
  min-height: 32px; padding: 0 10px; border: 1px solid var(--ap-line); border-radius: 8px; background: #fff; color: var(--ap-muted); cursor: pointer;
}
.ap1-frq-self-score button.active, .ap2-frq-self-score button.active {
  border-color: var(--ap-teal); background: var(--ap-sky); color: var(--ap-teal);
}
.ap1-concept-attempt, .ap2-concept-attempt {
  margin-top: 13px;
}
.ap1-concept-attempt textarea, .ap2-concept-attempt textarea {
  min-height: 95px; margin-top: 5px;
}
.ap1-concept-solution, .ap2-concept-solution {
  display: none;
}
.ap1-concept-solution.show, .ap2-concept-solution.show {
  display: block;
}
.ap1-outline, .ap2-outline {
  order: -1; position: static; width: 100%; max-height: none;
  display: flex; align-items: center; gap: 14px; overflow-x: auto;
  padding: 10px 13px; border: 1px solid var(--ap-line); border-radius: 12px;
  background: #fffdfa; scrollbar-width: thin;
}
.ap1-outline > span, .ap2-outline > span {
  flex: 0 0 auto; margin: 0; color: var(--ap-muted); font-size: .62rem; font-weight: 700; letter-spacing: .09em; text-transform: uppercase; white-space: nowrap;
}
#ap1-outline-links, #ap2-outline-links {
  display: flex; flex-direction: row; align-items: center; gap: 5px;
}
.ap1-outline button, .ap2-outline button {
  width: auto; flex: 0 0 auto; padding: 6px 9px; border: 1px solid var(--ap-line); border-radius: 8px; background: #fff; color: var(--ap-muted); font: 500 .65rem/1.35 'DM Sans',sans-serif; text-align: left; white-space: nowrap; cursor: pointer;
}
.ap1-outline button:hover, .ap2-outline button:hover {
  color: var(--ap-teal);
}
.ap1-outline button.sub, .ap2-outline button.sub {
  padding-left: 9px; font-size: .61rem;
}
.ap1-outline small, .ap2-outline small {
  color: var(--ap-muted); font-size: .63rem; line-height: 1.4;
}
.ap1-outline-help, .ap2-outline-help {
  display: none;
}
.ap1-outline-help b, .ap2-outline-help b {
  color: var(--ap-teal); font-size: .64rem;
}
.ap1-outline-help p, .ap2-outline-help p {
  margin: 5px 0 0; color: var(--ap-muted); font-size: .61rem; line-height: 1.45;
}
.ap1-reader-footer, .ap2-reader-footer {
  margin-top: 52px; padding-top: 25px; border-top: 1px solid var(--ap-line);
}
.ap1-finish-card, .ap2-finish-card {
  display: flex; align-items: center; gap: 13px; padding: 17px; border-radius: 15px; background: #f7eee6;
}
.ap1-finish-check, .ap2-finish-check {
  width: 38px; height: 38px; display: grid; place-items: center; border-radius: 50%; background: #fff; color: var(--ap-teal); font-size: 1.2rem;
}
.ap1-finish-card > div, .ap2-finish-card > div {
  flex: 1;
}
.ap1-finish-card strong, .ap2-finish-card strong {
  font-size: .78rem;
}
.ap1-finish-card p, .ap2-finish-card p {
  margin: 3px 0 0; color: var(--ap-muted); font-size: .65rem;
}
.ap1-finish-card button, .ap2-finish-card button {
  height: 35px; padding: 0 12px; border: 0; border-radius: 9px; background: var(--ap-teal); color: #fff; font: 650 .65rem/1 'DM Sans',sans-serif; cursor: pointer;
}
.ap1-page-nav, .ap2-page-nav {
  display: grid; grid-template-columns: 1fr 1fr; gap: 12px; margin-top: 18px;
}
.ap1-page-nav button, .ap2-page-nav button {
  min-height: 70px; display: flex; flex-direction: column; gap: 5px; padding: 13px; border: 1px solid var(--ap-line); border-radius: 12px; background: #fff; color: var(--ap-ink); text-align: left; cursor: pointer;
}
.ap1-page-nav button:hover, .ap2-page-nav button:hover {
  border-color: var(--ap-teal);
}
.ap1-page-nav button.next, .ap2-page-nav button.next {
  text-align: right; align-items: end;
}
.ap1-page-nav small, .ap2-page-nav small {
  color: var(--ap-teal); font-size: .6rem;
}
.ap1-page-nav strong, .ap2-page-nav strong {
  font-size: .7rem; line-height: 1.35;
}
.ap1-notes-panel, .ap2-notes-panel {
  position: fixed; z-index: 250; top: var(--ap-header-height,64px); right: 0; bottom: 0;
  width: min(380px,100vw); padding: 18px; display: flex; flex-direction: column;
  background: #fffdfa; border-left: 1px solid var(--ap-line); box-shadow: -20px 0 60px rgba(47,31,22,.16);
  transform: translateX(105%); transition: transform .25s ease;
}
.ap1-notes-panel.open, .ap2-notes-panel.open {
  transform: translateX(0);
}
.ap1-notes-head, .ap2-notes-head {
  display: flex; align-items: center; justify-content: space-between; gap: 12px;
}
.ap1-notes-head > div, .ap2-notes-head > div {
  min-width: 0; display: flex; flex-direction: column; gap: 3px;
}
.ap1-notes-head strong, .ap2-notes-head strong {
  font: 700 1.15rem/1.2 'Playfair Display',serif;
}
.ap1-notes-head small, .ap2-notes-head small {
  overflow: hidden; color: var(--ap-muted); font-size: .64rem; text-overflow: ellipsis; white-space: nowrap;
}
.ap1-notes-panel textarea, .ap2-notes-panel textarea {
  flex: 1; margin-top: 18px; padding: 15px; resize: none; border: 1px solid var(--ap-line); border-radius: 13px; background: #fff; color: var(--ap-ink); outline: none; font: 400 .82rem/1.65 'DM Sans',sans-serif;
}
.ap1-notes-panel textarea:focus, .ap2-notes-panel textarea:focus {
  border-color: var(--ap-teal);
}
.ap1-notes-panel > p, .ap2-notes-panel > p {
  color: var(--ap-muted); font-size: .59rem; text-align: center;
}
.ap1-screen, .ap2-screen {
  position: relative;
}
.ap1-exam-mode, .ap2-exam-mode {
  position: absolute; z-index: 200; inset: 0; display: flex; flex-direction: column;
  background: #f4f2ef; color: #211d1a;
}
.ap1-exam-mode[hidden], .ap2-exam-mode[hidden] {
  display: none;
}
.ap1-exam-topbar, .ap2-exam-topbar {
  flex: 0 0 auto;
  min-height: 72px; display: grid; grid-template-columns: 1fr auto 1fr;
  align-items: center; gap: 18px; padding: 10px 24px;
  background: #fff; color: #211d1a; border-bottom: 4px solid var(--ap-teal);
  box-shadow: 0 2px 8px rgba(38,29,24,.12);
}
.ap1-exam-identity, .ap2-exam-identity {
  display: flex; align-items: center; gap: 10px;
}
.ap1-exam-identity img, .ap2-exam-identity img {
  width: 44px; height: 44px; object-fit: contain;
}
.ap1-exam-identity > span, .ap2-exam-identity > span {
  display: flex; flex-direction: column; gap: 2px;
}
.ap1-exam-identity strong, .ap2-exam-identity strong {
  font-size: .86rem;
}
.ap1-exam-identity small, .ap2-exam-identity small {
  color: #756a61; font-size: .64rem;
}
.ap1-exam-timer, .ap2-exam-timer {
  min-width: 156px; padding: 7px 16px; display: flex; flex-direction: column;
  border: 1px solid #cfc7c0; border-radius: 7px; background: #f8f7f5; color: #211d1a; cursor: pointer;
}
.ap1-exam-timer span, .ap2-exam-timer span {
  color: #756a61; font-size: .54rem; text-transform: uppercase; letter-spacing: .08em;
}
.ap1-exam-timer strong, .ap2-exam-timer strong {
  font-size: 1.08rem; font-variant-numeric: tabular-nums;
}
.ap1-exam-timer.urgent, .ap2-exam-timer.urgent {
  border-color: #c8422f; background: #fff0ed; color: #a22f20;
}
.ap1-exam-exit, .ap2-exam-exit {
  justify-self: end; min-height: 36px; padding: 0 12px;
  border: 1px solid #cfc7c0; border-radius: 7px; background: #fff; color: #4a423c; cursor: pointer;
}
.ap1-exam-strip, .ap2-exam-strip {
  flex: 0 0 auto;
  min-height: 48px; display: flex; align-items: center; gap: 10px; padding: 7px 24px;
  border-bottom: 1px solid #3c3530; background: #292522; color: #fff;
}
.ap1-exam-strip[hidden], .ap2-exam-strip[hidden] {
  display: none;
}
.ap1-exam-strip > span, .ap2-exam-strip > span {
  flex: 1; color: #fff; font-size: .72rem; font-weight: 700;
}
.ap1-exam-strip button, .ap2-exam-strip button {
  min-height: 32px; padding: 0 11px; border: 1px solid #6b625b;
  border-radius: 6px; background: #39332f; color: #fff; font-size: .64rem; cursor: pointer;
}
.ap1-exam-strip button.marked, .ap2-exam-strip button.marked {
  border-color: #d39133; background: #fff8df; color: #8a621d;
}
.ap1-exam-navigator, .ap2-exam-navigator {
  flex: 0 0 auto;
  max-height: 220px; overflow-y: auto; padding: 15px 24px;
  border-bottom: 1px solid #d9d2cc; background: #fff;
}
.ap1-exam-navigator > div:first-child, .ap2-exam-navigator > div:first-child {
  display: flex; justify-content: space-between; margin-bottom: 10px; font-size: .65rem;
}
.ap1-exam-navigator > div:first-child span, .ap2-exam-navigator > div:first-child span {
  color: var(--ap-muted);
}
.ap1-exam-navigator i, .ap2-exam-navigator i {
  display: inline-block; width: 8px; height: 8px; margin-left: 8px; border-radius: 2px; background: #fff;
}
.ap1-exam-navigator i.answered, .ap2-exam-navigator i.answered {
  background: #c6531d;
}
.ap1-exam-navigator i.marked, .ap2-exam-navigator i.marked {
  background: #d9a035;
}
.ap1-exam-grid, .ap2-exam-grid {
  display: grid; grid-template-columns: repeat(auto-fill,minmax(35px,1fr)); gap: 6px;
}
.ap1-exam-grid button, .ap2-exam-grid button {
  min-height: 34px; border: 1px solid #d9c9bb; border-radius: 7px;
  background: #fff; color: var(--ap-ink); font-size: .65rem; cursor: pointer; position: relative;
}
.ap1-exam-grid button.current, .ap2-exam-grid button.current {
  border-color: #1b1714; box-shadow: inset 0 0 0 1px #1b1714;
}
.ap1-exam-grid button.answered, .ap2-exam-grid button.answered {
  background: #f3ddcd; color: #8e350f;
}
.ap1-exam-grid button.marked::after, .ap2-exam-grid button.marked::after {
  content: ''; position: absolute; top: 3px; right: 3px; width: 6px; height: 6px; border-radius: 50%; background: #d49a32;
}
.ap1-exam-question, .ap2-exam-question {
  flex: 1 1 0; width: 100%; min-height: 0; overflow-y: auto;
  padding: 38px clamp(18px,7vw,90px); overscroll-behavior: contain;
}
.ap1-exam-card, .ap2-exam-card {
  max-width: 900px; margin: 0 auto; padding: 32px 36px;
  border: 1px solid #d8d1ca; border-radius: 8px; background: #fff;
  box-shadow: 0 2px 9px rgba(34,27,23,.07);
}
.ap1-exam-qnum, .ap2-exam-qnum {
  color: var(--ap-teal); font-size: .64rem; font-weight: 700; letter-spacing: .08em; text-transform: uppercase;
}
.ap1-exam-prompt, .ap2-exam-prompt {
  margin: 15px 0 22px; font-size: .87rem; line-height: 1.7;
}
.ap1-exam-options, .ap2-exam-options {
  display: flex; flex-direction: column; gap: 9px;
}
.ap1-exam-frq textarea, .ap2-exam-frq textarea {
  min-height: 260px; margin-top: 8px;
}
.ap1-exam-break, .ap2-exam-break {
  max-width: 680px; text-align: center;
}
.ap1-exam-break > span, .ap2-exam-break > span {
  color: var(--ap-teal); font-size: .65rem; font-weight: 750; letter-spacing: .08em; text-transform: uppercase;
}
.ap1-exam-break h2, .ap2-exam-break h2 {
  margin: 12px 0 8px; font: 700 2rem/1.15 'Playfair Display',serif;
}
.ap1-exam-break > p, .ap2-exam-break > p {
  color: var(--ap-muted); font-size: .76rem;
}
.ap1-exam-break > div, .ap2-exam-break > div {
  margin-top: 24px; padding: 14px; display: flex; flex-direction: column; gap: 4px; border-radius: 10px; background: #f8eee5;
}
.ap1-exam-break small, .ap2-exam-break small {
  color: var(--ap-muted);
}
.ap1-exam-footer, .ap2-exam-footer {
  flex: 0 0 64px;
  height: 64px; min-height: 64px; max-height: 64px; display: flex;
  justify-content: space-between; align-items: center; box-sizing: border-box;
  padding: 10px 24px; border-top: 1px solid #d7d0ca; background: #fff;
  box-shadow: 0 -2px 8px rgba(38,29,24,.07);
}
.ap1-exam-footer[hidden], .ap2-exam-footer[hidden] {
  display: none;
}
.ap1-exam-footer button, .ap2-exam-footer button {
  min-height: 40px; padding: 0 18px; border: 1px solid #aaa19a; border-radius: 6px; background: #fff; color: #211d1a; font-weight: 700; cursor: pointer;
}
.ap1-exam-footer button.primary, .ap2-exam-footer button.primary {
  border-color: var(--ap-teal); background: var(--ap-teal); color: #fff;
}
.ap1-exam-footer button:disabled, .ap2-exam-footer button:disabled {
  opacity: .4; cursor: default;
}
.ap1-exam-render-error, .ap2-exam-render-error {
  align-self: flex-start; color: #842a1b;
}
.ap1-exam-render-error p, .ap2-exam-render-error p {
  color: #6f625a;
}
.ap1-exam-render-error button, .ap2-exam-render-error button {
  min-height: 38px; padding: 0 14px; border: 0; border-radius: 6px;
  background: var(--ap-teal); color: #fff; font-weight: 700; cursor: pointer;
}
.ap1-exam-results, .ap2-exam-results {
  max-width: 760px; margin: 35px auto; text-align: center;
}
.ap1-exam-results-mark, .ap2-exam-results-mark {
  width: 120px; height: 120px; display: grid; place-items: center; margin: 0 auto 20px; border-radius: 50%; background: #1b1714; color: #f18c50; font: 700 2rem/1 'Playfair Display',serif;
}
.ap1-exam-results .ap1-eyebrow, .ap2-exam-results .ap2-eyebrow {
  color: var(--ap-teal);
}
.ap1-exam-results h1, .ap2-exam-results h1 {
  margin: 8px 0 25px; font: 700 2.5rem/1.1 'Playfair Display',serif;
}
.ap1-exam-result-grid, .ap2-exam-result-grid {
  display: grid; grid-template-columns: repeat(3,1fr); gap: 10px;
}
.ap1-exam-result-grid > div, .ap2-exam-result-grid > div {
  padding: 18px; display: flex; flex-direction: column; border: 1px solid var(--ap-line); border-radius: 13px; background: #fff;
}
.ap1-exam-result-grid strong, .ap2-exam-result-grid strong {
  color: var(--ap-teal); font-size: 1.35rem;
}
.ap1-exam-result-grid span, .ap2-exam-result-grid span {
  color: var(--ap-muted); font-size: .62rem;
}
.ap1-exam-results > p, .ap2-exam-results > p {
  max-width: 600px; margin: 20px auto; color: var(--ap-muted); font-size: .72rem; line-height: 1.55;
}
.ap1-exam-results > div:last-child, .ap2-exam-results > div:last-child {
  display: flex; justify-content: center; gap: 9px;
}
.ap1-exam-results > div:last-child button, .ap2-exam-results > div:last-child button {
  min-height: 40px; padding: 0 14px; border: 1px solid var(--ap-line); border-radius: 9px; background: #fff; color: var(--ap-ink); cursor: pointer;
}
.ap1-exam-results > div:last-child button:last-child, .ap2-exam-results > div:last-child button:last-child {
  border-color: var(--ap-teal); background: var(--ap-teal); color: #fff;
}
.ap1-exam-mode.history-review .ap1-exam-timer, .ap1-exam-mode.history-review .ap1-exam-refsheet, .ap2-exam-mode.history-review .ap2-exam-timer, .ap2-exam-mode.history-review .ap2-exam-refsheet {
  display: none;
}
.ap1-exam-mode.history-review .ap1-exam-topbar, .ap2-exam-mode.history-review .ap2-exam-topbar {
  grid-template-columns: 1fr auto;
}
.ap1-history-review .ap1-exam-review > h2, .ap2-history-review .ap2-exam-review > h2 {
  margin: 28px 0 10px;
}
.ap1-history-question, .ap2-history-question {
  margin: 11px 0; color: var(--ap-ink); line-height: 1.6;
}
.ap1-history-solution, .ap2-history-solution {
  margin-top: 12px; padding-top: 11px; border-top: 1px solid var(--ap-line);
}
.ap1-history-review .ap1-exam-review article > p, .ap2-history-review .ap2-exam-review article > p {
  color: var(--ap-muted); line-height: 1.55;
}
.ap1-exam-review, .ap2-exam-review {
  margin: 24px 0; text-align: left;
}
.ap1-exam-review summary, .ap2-exam-review summary {
  padding: 13px; border: 1px solid var(--ap-line); border-radius: 9px; background: #fff; font-weight: 700; cursor: pointer;
}
.ap1-exam-review article, .ap2-exam-review article {
  margin-top: 10px; padding: 14px; border: 1px solid var(--ap-line); border-radius: 10px; background: #fff;
}
.ap1-exam-review article.correct, .ap2-exam-review article.correct {
  border-left: 4px solid #4a9275;
}
.ap1-exam-review article.wrong, .ap2-exam-review article.wrong {
  border-left: 4px solid #c85f45;
}
.ap1-exam-review blockquote, .ap2-exam-review blockquote {
  white-space: pre-wrap;
}
.ap1-loading, .ap1-error, .ap2-loading, .ap2-error {
  min-height: 65vh; display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 14px; color: var(--ap-muted);
}
.ap1-loading strong, .ap2-loading strong {
  font-size: .76rem;
}
.ap1-error > span, .ap2-error > span {
  width: 45px; height: 45px; display: grid; place-items: center; border-radius: 50%; background: #fff0eb; color: #b34c35; font-weight: 800;
}
.ap1-error h2, .ap2-error h2 {
  margin: 0; color: var(--ap-ink);
}
.ap1-error p, .ap2-error p {
  margin: 0;
}
.ap1-error button, .ap2-error button {
  padding: 9px 14px; border: 0; border-radius: 9px; background: var(--ap-teal); color: #fff; cursor: pointer;
}
.ap1-sidebar-scrim, .ap1-mobile-only, .ap2-sidebar-scrim, .ap2-mobile-only {
  display: none;
}
html[data-theme="dark"] .ap1-screen, html[data-theme="dark"] .ap2-screen {
  --ap-ink: #f7f0e9; --ap-muted: #c2b4a9; --ap-sky: #3a2419;
  --ap-cream: #100d0b; --ap-paper: #171310; --ap-line: #493a31;
  --ap-teal: #ff8642; --ap-teal-deep: #ffad7a; --ap-coral: #f47b3f;
}
html[data-theme="dark"] .ap1-sidebar, html[data-theme="dark"] .ap2-sidebar {
  background: #15110e;
}
html[data-theme="dark"] .ap1-workspace, html[data-theme="dark"] .ap1-topbar, html[data-theme="dark"] .ap2-workspace, html[data-theme="dark"] .ap2-topbar {
  background: #171310; color: var(--ap-ink);
}
html[data-theme="dark"] .ap1-topbar, html[data-theme="dark"] .ap2-topbar {
  background: rgba(23,19,16,.96);
}
html[data-theme="dark"] .ap1-progress-card, html[data-theme="dark"] .ap1-search-wrap input, html[data-theme="dark"] .ap1-search-results, html[data-theme="dark"] .ap1-unit-card, html[data-theme="dark"] .ap1-continue-card, html[data-theme="dark"] .ap1-starred-grid button, html[data-theme="dark"] .ap1-starred-toggle, html[data-theme="dark"] .ap1-starred-tools button, html[data-theme="dark"] .ap1-action-btn, html[data-theme="dark"] .ap1-page-nav button, html[data-theme="dark"] .ap1-callout, html[data-theme="dark"] .ap1-notes-panel, html[data-theme="dark"] .ap1-notes-panel textarea, html[data-theme="dark"] .ap1-practice-exam-card, html[data-theme="dark"] .ap1-previous-attempts, html[data-theme="dark"] .ap1-previous-attempt-grid > button, html[data-theme="dark"] .ap1-attempt-card, html[data-theme="dark"] .ap1-outline, html[data-theme="dark"] .ap1-outline button, html[data-theme="dark"] .ap1-attempt-options > button, html[data-theme="dark"] .ap1-frq-card textarea, html[data-theme="dark"] .ap1-concept-attempt textarea, html[data-theme="dark"] .ap1-exam-frq textarea, html[data-theme="dark"] .ap1-exam-card, html[data-theme="dark"] .ap1-exam-options > button, html[data-theme="dark"] .ap1-exam-result-grid > div, html[data-theme="dark"] .ap1-exam-review summary, html[data-theme="dark"] .ap1-exam-review article, html[data-theme="dark"] .ap2-progress-card, html[data-theme="dark"] .ap2-search-wrap input, html[data-theme="dark"] .ap2-search-results, html[data-theme="dark"] .ap2-unit-card, html[data-theme="dark"] .ap2-continue-card, html[data-theme="dark"] .ap2-starred-grid button, html[data-theme="dark"] .ap2-starred-toggle, html[data-theme="dark"] .ap2-starred-tools button, html[data-theme="dark"] .ap2-action-btn, html[data-theme="dark"] .ap2-page-nav button, html[data-theme="dark"] .ap2-callout, html[data-theme="dark"] .ap2-notes-panel, html[data-theme="dark"] .ap2-notes-panel textarea, html[data-theme="dark"] .ap2-practice-exam-card, html[data-theme="dark"] .ap2-previous-attempts, html[data-theme="dark"] .ap2-previous-attempt-grid > button, html[data-theme="dark"] .ap2-attempt-card, html[data-theme="dark"] .ap2-outline, html[data-theme="dark"] .ap2-outline button, html[data-theme="dark"] .ap2-attempt-options > button, html[data-theme="dark"] .ap2-frq-card textarea, html[data-theme="dark"] .ap2-concept-attempt textarea, html[data-theme="dark"] .ap2-exam-frq textarea, html[data-theme="dark"] .ap2-exam-card, html[data-theme="dark"] .ap2-exam-options > button, html[data-theme="dark"] .ap2-exam-result-grid > div, html[data-theme="dark"] .ap2-exam-review summary, html[data-theme="dark"] .ap2-exam-review article {
  border-color: var(--ap-line); background: #211a16; color: var(--ap-ink);
}
html[data-theme="dark"] .ap1-progress-ring::before, html[data-theme="dark"] .ap2-progress-ring::before {
  background: #211a16;
}
html[data-theme="dark"] .ap1-icon-btn, html[data-theme="dark"] .ap1-mark-incomplete, html[data-theme="dark"] .ap1-incomplete-btn, html[data-theme="dark"] .ap1-question-star, html[data-theme="dark"] .ap1-frq-self-score button, html[data-theme="dark"] .ap1-finish-check, html[data-theme="dark"] .ap1-practice-intro > span, html[data-theme="dark"] .ap1-solution-intro > span, html[data-theme="dark"] .ap1-assessment-intro > span, html[data-theme="dark"] .ap1-callout-title span, html[data-theme="dark"] .ap2-icon-btn, html[data-theme="dark"] .ap2-mark-incomplete, html[data-theme="dark"] .ap2-incomplete-btn, html[data-theme="dark"] .ap2-question-star, html[data-theme="dark"] .ap2-frq-self-score button, html[data-theme="dark"] .ap2-finish-check, html[data-theme="dark"] .ap2-practice-intro > span, html[data-theme="dark"] .ap2-solution-intro > span, html[data-theme="dark"] .ap2-assessment-intro > span, html[data-theme="dark"] .ap2-callout-title span {
  border-color: var(--ap-line); background: #2a211c; color: var(--ap-ink);
}
html[data-theme="dark"] .ap1-mark-incomplete, html[data-theme="dark"] .ap2-mark-incomplete {
  border-color: var(--ap-line) !important; background: #2a211c !important; color: var(--ap-muted) !important;
}
html[data-theme="dark"] .ap1-nav-section:hover, html[data-theme="dark"] .ap2-nav-section:hover {
  background: #241a15;
}
html[data-theme="dark"] .ap1-nav-section.active, html[data-theme="dark"] .ap2-nav-section.active {
  background: #40261a;
}
html[data-theme="dark"] .ap1-nav-item:hover, html[data-theme="dark"] .ap2-nav-item:hover {
  background: #241a15; color: var(--ap-ink);
}
html[data-theme="dark"] .ap1-nav-item.active, html[data-theme="dark"] .ap2-nav-item.active {
  background: #4a2a1b; color: #ffc09a;
}
html[data-theme="dark"] .ap1-search-wrap input::placeholder, html[data-theme="dark"] .ap1-notes-panel textarea::placeholder, html[data-theme="dark"] .ap1-frq-card textarea::placeholder, html[data-theme="dark"] .ap1-concept-attempt textarea::placeholder, html[data-theme="dark"] .ap1-exam-frq textarea::placeholder, html[data-theme="dark"] .ap2-search-wrap input::placeholder, html[data-theme="dark"] .ap2-notes-panel textarea::placeholder, html[data-theme="dark"] .ap2-frq-card textarea::placeholder, html[data-theme="dark"] .ap2-concept-attempt textarea::placeholder, html[data-theme="dark"] .ap2-exam-frq textarea::placeholder {
  color: #918177; opacity: 1;
}
html[data-theme="dark"] .ap1-article-body, html[data-theme="dark"] .ap2-article-body {
  color: #e1d6cd;
}
html[data-theme="dark"] .ap1-article-body code, html[data-theme="dark"] .ap2-article-body code {
  background: #332219; color: #ffad7a;
}
html[data-theme="dark"] .ap1-display-math, html[data-theme="dark"] .ap2-display-math {
  background: #100d0b; border: 1px solid var(--ap-line);
}
html[data-theme="dark"] .ap1-meta-progress em, html[data-theme="dark"] .ap1-unit-progress, html[data-theme="dark"] .ap1-progress-track, html[data-theme="dark"] .ap2-meta-progress em, html[data-theme="dark"] .ap2-unit-progress, html[data-theme="dark"] .ap2-progress-track {
  background: #493a31;
}
html[data-theme="dark"] .ap1-study-method, html[data-theme="dark"] .ap1-finish-card, html[data-theme="dark"] .ap1-outline-help, html[data-theme="dark"] .ap1-unit-quick, html[data-theme="dark"] .ap1-practice-intro, html[data-theme="dark"] .ap1-solution-intro, html[data-theme="dark"] .ap1-assessment-intro, html[data-theme="dark"] .ap1-frq-guidance, html[data-theme="dark"] .ap1-exam-break > div, html[data-theme="dark"] .ap1-exam-resume, html[data-theme="dark"] .ap2-study-method, html[data-theme="dark"] .ap2-finish-card, html[data-theme="dark"] .ap2-outline-help, html[data-theme="dark"] .ap2-unit-quick, html[data-theme="dark"] .ap2-practice-intro, html[data-theme="dark"] .ap2-solution-intro, html[data-theme="dark"] .ap2-assessment-intro, html[data-theme="dark"] .ap2-frq-guidance, html[data-theme="dark"] .ap2-exam-break > div, html[data-theme="dark"] .ap2-exam-resume {
  background: #2a211c; border-color: var(--ap-line);
}
html[data-theme="dark"] .ap1-unit-quick button, html[data-theme="dark"] .ap1-exam-resume button, html[data-theme="dark"] .ap2-unit-quick button, html[data-theme="dark"] .ap2-exam-resume button {
  border-color: var(--ap-line); background: #211a16; color: var(--ap-ink);
}
html[data-theme="dark"] .ap1-exam-resume button:first-of-type, html[data-theme="dark"] .ap2-exam-resume button:first-of-type {
  border-color: var(--ap-teal); background: var(--ap-teal); color: #1b100a;
}
html[data-theme="dark"] .ap1-unit-symbol, html[data-theme="dark"] .ap2-unit-symbol {
  background: color-mix(in srgb,var(--unit-color) 22%,#211a16);
}
html[data-theme="dark"] .ap1-starred-grid strong, html[data-theme="dark"] .ap1-starred-grid small, html[data-theme="dark"] .ap1-unit-quick button, html[data-theme="dark"] .ap2-starred-grid strong, html[data-theme="dark"] .ap2-starred-grid small, html[data-theme="dark"] .ap2-unit-quick button {
  color: var(--ap-ink);
}
html[data-theme="dark"] .ap1-starred-grid small, html[data-theme="dark"] .ap2-starred-grid small {
  color: var(--ap-muted);
}
html[data-theme="dark"] .ap1-callout-body, html[data-theme="dark"] .ap2-callout-body {
  background: #211a16;
}
html[data-theme="dark"] .ap1-callout-title, html[data-theme="dark"] .ap2-callout-title {
  background: #342219; color: #ffad7a;
}
html[data-theme="dark"] .ap1-callout-solutionbox, html[data-theme="dark"] .ap2-callout-solutionbox {
  border-color: #315f4d;
}
html[data-theme="dark"] .ap1-callout-solutionbox .ap1-callout-title, html[data-theme="dark"] .ap2-callout-solutionbox .ap2-callout-title {
  background: #183127; color: #88d8b5;
}
html[data-theme="dark"] .ap1-callout-misconception, html[data-theme="dark"] .ap2-callout-misconception {
  border-color: #754235;
}
html[data-theme="dark"] .ap1-callout-misconception .ap1-callout-title, html[data-theme="dark"] .ap2-callout-misconception .ap2-callout-title {
  background: #3a211b; color: #ffab91;
}
html[data-theme="dark"] .ap1-callout-aptip, html[data-theme="dark"] .ap2-callout-aptip {
  border-color: #66552a;
}
html[data-theme="dark"] .ap1-callout-aptip .ap1-callout-title, html[data-theme="dark"] .ap2-callout-aptip .ap2-callout-title {
  background: #352d18; color: #f2d275;
}
html[data-theme="dark"] .ap1-callout-labconnection .ap1-callout-title, html[data-theme="dark"] .ap2-callout-labconnection .ap2-callout-title {
  background: #3a2419; color: #ffad7a;
}
html[data-theme="dark"] .ap1-table-wrap, html[data-theme="dark"] .ap2-table-wrap {
  border-color: var(--ap-line);
}
html[data-theme="dark"] .ap1-table-wrap th, html[data-theme="dark"] .ap2-table-wrap th {
  background: #2a211c;
}
html[data-theme="dark"] .ap1-table-wrap td, html[data-theme="dark"] .ap2-table-wrap td {
  color: #e1d6cd;
}
html[data-theme="dark"] .ap1-question-star:hover, html[data-theme="dark"] .ap1-question-star.active, html[data-theme="dark"] .ap2-question-star:hover, html[data-theme="dark"] .ap2-question-star.active {
  border-color: #d7a447; background: #3a301a; color: #f4c765;
}
html[data-theme="dark"] .ap1-attempt-options > button:hover:not(:disabled), html[data-theme="dark"] .ap1-exam-options > button:hover, html[data-theme="dark"] .ap2-attempt-options > button:hover:not(:disabled), html[data-theme="dark"] .ap2-exam-options > button:hover {
  border-color: #c96c3b; background: #322219;
}
html[data-theme="dark"] .ap1-attempt-options > button > span, html[data-theme="dark"] .ap1-exam-options > button > span, html[data-theme="dark"] .ap2-attempt-options > button > span, html[data-theme="dark"] .ap2-exam-options > button > span {
  background: #3a281f; color: #ffad7a;
}
html[data-theme="dark"] .ap1-attempt-options > button.selected, html[data-theme="dark"] .ap1-exam-options > button.selected, html[data-theme="dark"] .ap2-attempt-options > button.selected, html[data-theme="dark"] .ap2-exam-options > button.selected {
  border-color: var(--ap-teal); background: #3b251b;
}
html[data-theme="dark"] .ap1-attempt-options > button.correct, html[data-theme="dark"] .ap1-attempt-feedback.correct, html[data-theme="dark"] .ap2-attempt-options > button.correct, html[data-theme="dark"] .ap2-attempt-feedback.correct {
  border-color: #4f9f7d; background: #173329; color: #dff6eb;
}
html[data-theme="dark"] .ap1-attempt-options > button.wrong, html[data-theme="dark"] .ap1-attempt-feedback.wrong, html[data-theme="dark"] .ap2-attempt-options > button.wrong, html[data-theme="dark"] .ap2-attempt-feedback.wrong {
  border-color: #d36b50; background: #3c211b; color: #ffe4dc;
}
html[data-theme="dark"] .ap1-physics-figure, html[data-theme="dark"] .ap2-physics-figure {
  background: #211a16; border-color: var(--ap-line);
}
html[data-theme="dark"] .ap1-figure-stage, html[data-theme="dark"] .ap1-original-graph img, html[data-theme="dark"] .ap1-option-figure, html[data-theme="dark"] .ap2-figure-stage, html[data-theme="dark"] .ap2-original-graph img, html[data-theme="dark"] .ap2-option-figure {
  background: #fffdfa;
  filter: invert(1) hue-rotate(180deg);
}
html[data-theme="dark"] .ap1-figure-stage b, html[data-theme="dark"] .ap2-figure-stage b {
  color: #1b1714;
}
html[data-theme="dark"] .ap1-physics-figure figcaption, html[data-theme="dark"] .ap2-physics-figure figcaption {
  color: #c2b4a9;
}
html[data-theme="dark"] .ap1-exam-card-actions button, html[data-theme="dark"] .ap2-exam-card-actions button {
  background: var(--ap-teal); color: #1b100a;
}
html[data-theme="dark"] .ap1-exam-card-actions button.secondary, html[data-theme="dark"] .ap2-exam-card-actions button.secondary {
  border-color: var(--ap-line); background: transparent; color: var(--ap-ink);
}
html[data-theme="dark"] .ap1-exam-card-actions button:hover, html[data-theme="dark"] .ap2-exam-card-actions button:hover {
  background: #ff9a61; color: #1b100a;
}
html[data-theme="dark"] .ap1-complete-btn, html[data-theme="dark"] .ap1-submit-answer, html[data-theme="dark"] .ap1-reveal-guidance, html[data-theme="dark"] .ap1-concept-attempt button, html[data-theme="dark"] .ap1-finish-card button, html[data-theme="dark"] .ap2-complete-btn, html[data-theme="dark"] .ap2-submit-answer, html[data-theme="dark"] .ap2-reveal-guidance, html[data-theme="dark"] .ap2-concept-attempt button, html[data-theme="dark"] .ap2-finish-card button {
  color: #1b100a;
}
html[data-theme="dark"] .ap1-exam-mode, html[data-theme="dark"] .ap2-exam-mode {
  background: #100d0b; color: var(--ap-ink);
}
html[data-theme="dark"] .ap1-exam-topbar, html[data-theme="dark"] .ap2-exam-topbar {
  background: #171310; color: var(--ap-ink); border-color: var(--ap-line);
}
html[data-theme="dark"] .ap1-exam-identity small, html[data-theme="dark"] .ap1-exam-timer span, html[data-theme="dark"] .ap2-exam-identity small, html[data-theme="dark"] .ap2-exam-timer span {
  color: var(--ap-muted);
}
html[data-theme="dark"] .ap1-exam-timer, html[data-theme="dark"] .ap1-exam-exit, html[data-theme="dark"] .ap1-exam-grid button, html[data-theme="dark"] .ap1-exam-footer button, html[data-theme="dark"] .ap1-exam-results > div:last-child button, html[data-theme="dark"] .ap2-exam-timer, html[data-theme="dark"] .ap2-exam-exit, html[data-theme="dark"] .ap2-exam-grid button, html[data-theme="dark"] .ap2-exam-footer button, html[data-theme="dark"] .ap2-exam-results > div:last-child button {
  border-color: var(--ap-line); background: #211a16; color: var(--ap-ink);
}
html[data-theme="dark"] .ap1-exam-timer.urgent, html[data-theme="dark"] .ap2-exam-timer.urgent {
  border-color: #d65d48; background: #3c211b; color: #ff9f8d;
}
html[data-theme="dark"] .ap1-exam-strip, html[data-theme="dark"] .ap1-exam-footer, html[data-theme="dark"] .ap2-exam-strip, html[data-theme="dark"] .ap2-exam-footer {
  background: #171310; border-color: var(--ap-line);
}
html[data-theme="dark"] .ap1-exam-navigator, html[data-theme="dark"] .ap2-exam-navigator {
  background: #211a16; border-color: var(--ap-line);
}
html[data-theme="dark"] .ap1-exam-navigator i, html[data-theme="dark"] .ap2-exam-navigator i {
  background: #6c5c51;
}
html[data-theme="dark"] .ap1-exam-grid button.current, html[data-theme="dark"] .ap2-exam-grid button.current {
  border-color: #ffad7a; box-shadow: inset 0 0 0 1px #ffad7a;
}
html[data-theme="dark"] .ap1-exam-grid button.answered, html[data-theme="dark"] .ap2-exam-grid button.answered {
  background: #4a2a1b; color: #ffc09a;
}
html[data-theme="dark"] .ap1-exam-footer button.primary, html[data-theme="dark"] .ap1-exam-results > div:last-child button:last-child, html[data-theme="dark"] .ap2-exam-footer button.primary, html[data-theme="dark"] .ap2-exam-results > div:last-child button:last-child {
  border-color: var(--ap-teal); background: var(--ap-teal); color: #1b100a;
}
html[data-theme="dark"] .ap1-exam-strip button, html[data-theme="dark"] .ap2-exam-strip button {
  border-color: #665448; background: #2a211c; color: var(--ap-ink);
}
html[data-theme="dark"] .ap1-exam-strip button.marked, html[data-theme="dark"] .ap2-exam-strip button.marked {
  border-color: #b9862d; background: #3a301a; color: #f2cc75;
}
html[data-theme="dark"] .ap1-loading span, html[data-theme="dark"] .ap2-loading span {
  border-color: #493a31; border-top-color: var(--ap-teal);
}
html[data-theme="dark"] .ap1-error > span, html[data-theme="dark"] .ap2-error > span {
  background: #3c211b; color: #ff9f8d;
}
html[data-theme="dark"] .ap1-error button, html[data-theme="dark"] .ap2-error button {
  color: #1b100a;
}
html[data-theme="dark"] .ap1-workspace, html[data-theme="dark"] .ap1-unit-nav, html[data-theme="dark"] .ap1-exam-question, html[data-theme="dark"] .ap1-exam-navigator, html[data-theme="dark"] .ap2-workspace, html[data-theme="dark"] .ap2-unit-nav, html[data-theme="dark"] .ap2-exam-question, html[data-theme="dark"] .ap2-exam-navigator {
  scrollbar-color: var(--ap-teal) #171310;
}
html[data-theme="dark"] .ap1-workspace::-webkit-scrollbar-track, html[data-theme="dark"] .ap1-unit-nav::-webkit-scrollbar-track, html[data-theme="dark"] .ap1-exam-question::-webkit-scrollbar-track, html[data-theme="dark"] .ap1-exam-navigator::-webkit-scrollbar-track, html[data-theme="dark"] .ap2-workspace::-webkit-scrollbar-track, html[data-theme="dark"] .ap2-unit-nav::-webkit-scrollbar-track, html[data-theme="dark"] .ap2-exam-question::-webkit-scrollbar-track, html[data-theme="dark"] .ap2-exam-navigator::-webkit-scrollbar-track {
  background: #171310;
}
@media (max-width: 1050px) {
  .ap1-shell, .ap2-shell {
    grid-template-columns: 268px minmax(0,1fr);
  }
  .ap1-topbar, .ap2-topbar {
    padding-left: max(23px,calc((100vw - 920px) / 2 + 20px - 268px));
  }
  .ap1-screen.sidebar-collapsed .ap1-topbar, .ap2-screen.sidebar-collapsed .ap2-topbar {
    padding-left: max(20px,calc((100vw - 920px) / 2 + 20px));
  }
  .ap1-unit-grid, .ap2-unit-grid {
    grid-template-columns: repeat(2,minmax(0,1fr));
  }
  .ap1-starred-grid, .ap2-starred-grid {
    grid-template-columns: repeat(2,minmax(0,1fr));
  }
  .ap1-exam-card-grid, .ap2-exam-card-grid {
    grid-template-columns: repeat(3,minmax(0,1fr));
  }
  .ap1-reader, .ap2-reader {
    max-width: 900px;
  }
}

@media (max-width: 760px) {
  .ap1-screen, .ap2-screen {
    height: calc(100dvh - var(--ap-header-height, 56px)); min-height: 0;
  }
  .ap1-shell, .ap2-shell {
    display: block; height: 100%; min-height: 0;
  }
  .ap1-screen.sidebar-collapsed .ap1-sidebar, .ap2-screen.sidebar-collapsed .ap2-sidebar {
    visibility: visible; overflow: initial;
  }
  .ap1-sidebar, .ap2-sidebar {
    position: fixed; top: var(--ap-header-height,56px); left: 0; bottom: 0; width: min(330px,88vw); transform: translateX(-105%); transition: transform .25s ease;
  }
  .ap1-screen.sidebar-open .ap1-sidebar, .ap2-screen.sidebar-open .ap2-sidebar {
    transform: translateX(0);
  }
  .ap1-sidebar-scrim, .ap2-sidebar-scrim {
    position: fixed; z-index: 25; inset: var(--ap-header-height,56px) 0 0; background: rgba(24,16,12,.52); backdrop-filter: blur(2px);
  }
  .ap1-screen.sidebar-open .ap1-sidebar-scrim, .ap2-screen.sidebar-open .ap2-sidebar-scrim {
    display: block;
  }
  .ap1-mobile-only, .ap1-menu-btn, .ap2-mobile-only, .ap2-menu-btn {
    display: grid;
  }
  .ap1-workspace, .ap2-workspace {
    height: 100%;
  }
  .ap1-topbar, .ap1-screen.sidebar-collapsed .ap1-topbar, .ap2-topbar, .ap2-screen.sidebar-collapsed .ap2-topbar {
    min-height: 54px; padding: 7px 12px;
  }
  .ap1-course-back, .ap2-course-back {
    width: 38px; padding: 0; font-size: 0;
  }
  .ap1-course-back::before, .ap2-course-back::before {
    content: '←'; font-size: 1.05rem;
  }
  .ap1-breadcrumb strong, .ap1-breadcrumb span, .ap2-breadcrumb strong, .ap2-breadcrumb span {
    display: none;
  }
  .ap1-action-btn span, .ap2-action-btn span {
    display: none;
  }
  .ap1-action-btn, .ap2-action-btn {
    width: 35px; padding: 0;
  }
  .ap1-complete-btn, .ap1-incomplete-btn, .ap2-complete-btn, .ap2-incomplete-btn {
    padding: 0 9px;
  }
  .ap1-dashboard, .ap2-dashboard {
    padding: 20px 14px 55px;
  }
  .ap1-exam-resume, .ap2-exam-resume {
    grid-template-columns: 1fr 1fr; margin: -20px 10px 30px;
  }
  .ap1-exam-resume > div, .ap2-exam-resume > div {
    grid-column: 1 / -1;
  }
  .ap1-hero, .ap2-hero {
    grid-template-columns: 1fr; min-height: auto; padding: 37px 25px 30px; border-radius: 21px;
  }
  .ap1-hero h1, .ap2-hero h1 {
    font-size: 2.55rem;
  }
  .ap1-orbit-card, .ap2-orbit-card {
    display: none;
  }
  .ap1-hero-stats, .ap2-hero-stats {
    gap: 13px;
  }
  .ap1-continue-card, .ap2-continue-card {
    width: calc(100% - 20px); margin-bottom: 40px; grid-template-columns: 38px minmax(0,1fr);
  }
  .ap1-continue-card > span:last-child, .ap2-continue-card > span:last-child {
    display: none;
  }
  .ap1-dashboard-heading, .ap2-dashboard-heading {
    display: block;
  }
  .ap1-dashboard-heading > p, .ap2-dashboard-heading > p {
    margin-top: 9px;
  }
  .ap1-unit-grid, .ap2-unit-grid {
    grid-template-columns: 1fr 1fr; gap: 10px;
  }
  .ap1-unit-card, .ap2-unit-card {
    min-height: 220px;
  }
  .ap1-unit-main, .ap2-unit-main {
    padding: 15px 15px 10px;
  }
  .ap1-study-method, .ap2-study-method {
    grid-template-columns: 1fr; gap: 18px; margin-top: 35px; padding: 21px;
  }
  .ap1-exam-card-grid, .ap2-exam-card-grid {
    grid-template-columns: 1fr 1fr;
  }
  .ap1-practice-exam-card, .ap2-practice-exam-card {
    min-height: 230px;
  }
  .ap1-previous-attempts-head, .ap2-previous-attempts-head {
    display: block;
  }
  .ap1-previous-attempts-head p, .ap2-previous-attempts-head p {
    margin-top: 7px; text-align: left;
  }
  .ap1-reader, .ap2-reader {
    padding: 14px 18px 65px;
  }
  .ap1-article-header, .ap2-article-header {
    grid-template-columns: minmax(0,1fr) auto;
    grid-template-areas: "kicker meta" "title title" "sub sub";
    gap: 5px 12px; padding: 9px 0 12px;
  }
  .ap1-article-header h1, .ap2-article-header h1 {
    font-size: 1.45rem;
  }
  .ap1-article-meta span:nth-child(n+3), .ap2-article-meta span:nth-child(n+3) {
    display: none;
  }
  .ap1-article-meta, .ap2-article-meta {
    padding: 3px;
  }
  .ap1-article-meta span, .ap2-article-meta span {
    min-height: 23px; padding: 0 7px;
  }
  .ap1-article-body, .ap2-article-body {
    font-size: .86rem;
  }
  .ap1-finish-card, .ap2-finish-card {
    align-items: flex-start; flex-wrap: wrap;
  }
  .ap1-finish-card button, .ap2-finish-card button {
    width: 100%;
  }
  .ap1-exam-topbar, .ap2-exam-topbar {
    grid-template-columns: minmax(0,1fr) auto auto; gap: 7px; padding: 7px 10px;
  }
  .ap1-exam-identity small, .ap2-exam-identity small {
    display: none;
  }
  .ap1-exam-timer, .ap2-exam-timer {
    min-width: 105px; padding: 5px 8px;
  }
  .ap1-exam-exit, .ap2-exam-exit {
    font-size: 0; width: 35px; padding: 0;
  }
  .ap1-exam-exit::after, .ap2-exam-exit::after {
    content: '×'; font-size: 1.1rem;
  }
  .ap1-exam-strip, .ap2-exam-strip {
    padding: 7px 10px;
  }
  .ap1-exam-strip button, .ap2-exam-strip button {
    font-size: 0; width: 35px; padding: 0;
  }
  #ap1-exam-mark::after, #ap2-exam-mark::after {
    content: '☆'; font-size: .9rem;
  }
  #ap1-exam-mark.marked::after, #ap2-exam-mark.marked::after {
    content: '★';
  }
  #ap1-exam-grid-toggle::after, #ap2-exam-grid-toggle::after {
    content: '▦'; font-size: .9rem;
  }
  .ap1-exam-question, .ap2-exam-question {
    padding: 18px 10px;
  }
  .ap1-exam-card, .ap2-exam-card {
    padding: 20px 15px;
  }
  .ap1-exam-result-grid, .ap2-exam-result-grid {
    grid-template-columns: 1fr;
  }
}

@media (prefers-reduced-motion: reduce) {
  .ap1-screen *, .ap1-screen *::before, .ap1-screen *::after, .ap2-screen *, .ap2-screen *::before, .ap2-screen *::after {
    scroll-behavior: auto !important; animation-duration: .01ms !important;
    animation-iteration-count: 1 !important; transition-duration: .01ms !important;
  }
}

@media (max-width: 440px) {
  .ap1-unit-grid, .ap2-unit-grid {
    grid-template-columns: 1fr;
  }
  .ap1-starred-grid, .ap2-starred-grid {
    grid-template-columns: 1fr;
  }
  .ap1-unit-card, .ap2-unit-card {
    min-height: 205px;
  }
  .ap1-page-nav, .ap2-page-nav {
    grid-template-columns: 1fr;
  }
  .ap1-hero-actions, .ap2-hero-actions {
    flex-direction: column;
  }
  .ap1-primary-btn, .ap1-secondary-btn, .ap2-primary-btn, .ap2-secondary-btn {
    width: 100%;
  }
  .ap1-exam-card-grid, .ap2-exam-card-grid {
    grid-template-columns: 1fr;
  }
}

.ap1-exam-refsheet, .ap2-exam-refsheet {
  height: 35px; padding: 0 11px;
  border: 1px solid var(--ap-line); border-radius: 10px;
  background: var(--ap-paper); color: var(--ap-ink);
  font: 650 .63rem/1 'DM Sans', sans-serif; letter-spacing: .04em;
  cursor: pointer; white-space: nowrap;
}
.ap1-exam-refsheet:hover, .ap2-exam-refsheet:hover {
  border-color: var(--ap-teal); color: var(--ap-teal);
}
.ap1-refsheet-modal, .ap2-refsheet-modal {
  position: fixed; inset: 0; z-index: 400;
  display: flex; align-items: center; justify-content: center;
  padding: 24px;
  background: rgba(24, 16, 12, .58); backdrop-filter: blur(3px);
}
.ap1-refsheet-inner, .ap2-refsheet-inner {
  position: relative;
  width: 100%; max-width: 940px; max-height: 100%;
  overflow-y: auto; overscroll-behavior: contain;
  padding: 26px 30px 34px;
  border: 1px solid var(--ap-line); border-radius: 16px;
  background: var(--ap-paper); color: var(--ap-ink);
  box-shadow: 0 24px 60px rgba(0, 0, 0, .38);
}
.ap1-refsheet-close, .ap2-refsheet-close {
  position: sticky; top: 0; float: right;
  width: 32px; height: 32px; margin: -6px -8px 0 0;
  display: grid; place-items: center;
  border: 1px solid var(--ap-line); border-radius: 9px;
  background: var(--ap-cream); color: var(--ap-ink);
  font-size: 1.2rem; line-height: 1; cursor: pointer;
}
.ap1-refsheet-close:hover, .ap2-refsheet-close:hover {
  border-color: var(--ap-teal); color: var(--ap-teal);
}
.ap1-refsheet-body h2, .ap2-refsheet-body h2 {
  margin: 0 0 4px; font: 700 1.5rem/1.2 'Playfair Display', serif; color: var(--ap-ink);
}
.ap1-refsheet-body h3, .ap2-refsheet-body h3 {
  margin: 26px 0 10px; padding-bottom: 6px;
  border-bottom: 1px solid var(--ap-line);
  font: 700 1.02rem/1.3 'Playfair Display', serif; color: var(--ap-teal);
}
.ap1-refsheet-body h4, .ap2-refsheet-body h4 {
  margin: 14px 0 5px;
  font: 700 .72rem/1.3 'DM Sans', sans-serif;
  text-transform: uppercase; letter-spacing: .06em; color: var(--ap-muted);
}
.ap1-refsheet-body p, .ap2-refsheet-body p {
  margin: 0 0 8px; font-size: .84rem; line-height: 1.75;
}
.ap1-ref-lead, .ap2-ref-lead {
  color: var(--ap-muted); font-size: .78rem !important;
}
.ap1-ref-eq, .ap2-ref-eq {
  display: inline-block; margin: 1px 0;
}
.ap1-ref-table, .ap2-ref-table {
  width: 100%; border-collapse: collapse; margin: 4px 0 6px; font-size: .8rem;
}
.ap1-ref-table th, .ap1-ref-table td, .ap2-ref-table th, .ap2-ref-table td {
  padding: 8px 11px; border: 1px solid var(--ap-line); text-align: left; vertical-align: top;
}
.ap1-ref-table th, .ap2-ref-table th {
  background: var(--ap-cream); font-weight: 700; font-size: .72rem;
  text-transform: uppercase; letter-spacing: .04em;
}
.ap1-ref-grid td, .ap1-ref-grid th, .ap2-ref-grid td, .ap2-ref-grid th {
  text-align: center;
}
.ap1-ref-scroll, .ap2-ref-scroll {
  overflow-x: auto;
}
.ap1-ref-cols, .ap2-ref-cols {
  display: grid; gap: 20px; margin-top: 6px;
}
.ap1-ref-cols-2, .ap2-ref-cols-2 {
  grid-template-columns: repeat(2, minmax(0, 1fr));
}
.ap1-ref-cols-3, .ap2-ref-cols-3 {
  grid-template-columns: repeat(3, minmax(0, 1fr));
}
.ap1-ref-list, .ap2-ref-list {
  margin: 0 0 8px; padding-left: 20px; font-size: .84rem; line-height: 1.8;
}
.ap1-ref-legend, .ap2-ref-legend {
  margin-top: 10px; padding-top: 8px; border-top: 1px dashed var(--ap-line);
  color: var(--ap-muted); font-size: .76rem !important;
}
.ap1-ref-symbols, .ap2-ref-symbols {
  margin: 0; padding: 0; list-style: none;
  display: grid; grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 3px 18px; font-size: .78rem;
}
@media (max-width: 760px) {
  .ap1-ref-cols-2, .ap1-ref-cols-3, .ap2-ref-cols-2, .ap2-ref-cols-3 {
    grid-template-columns: 1fr;
  }
  .ap1-ref-symbols, .ap2-ref-symbols {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
  .ap1-refsheet-inner, .ap2-refsheet-inner {
    padding: 20px 18px 28px;
  }
}

.ap1-exam-actions, .ap2-exam-actions {
  display: flex; align-items: center; justify-content: flex-end; gap: 10px;
  min-width: 0;
}
@media (max-width: 760px) {
  .ap1-exam-refsheet, .ap2-exam-refsheet {
    padding: 0 8px; font-size: .58rem;
  }
}

.ap1-refsheet-modal, .ap2-refsheet-modal {
  --ap-ink: #2b231d;   --ap-muted: #786b60;  --ap-teal: #c6531d;
  --ap-cream: #f7f2eb; --ap-paper: #fffdfa;  --ap-line: #e5dbcf;
}
html[data-theme="dark"] .ap1-refsheet-modal, html[data-theme="dark"] .ap2-refsheet-modal {
  --ap-ink: #f7f0e9;   --ap-muted: #c2b4a9;  --ap-teal: #ff8642;
  --ap-cream: #100d0b; --ap-paper: #171310;  --ap-line: #493a31;
}
@media (max-width: 760px) {
  .ap1-refsheet-body > .ap1-ref-table:first-of-type, .ap1-refsheet-body > .ap1-ref-table:first-of-type tbody, .ap1-refsheet-body > .ap1-ref-table:first-of-type tr, .ap2-refsheet-body > .ap2-ref-table:first-of-type, .ap2-refsheet-body > .ap2-ref-table:first-of-type tbody, .ap2-refsheet-body > .ap2-ref-table:first-of-type tr {
    display: block;
  }
  .ap1-refsheet-body > .ap1-ref-table:first-of-type td, .ap2-refsheet-body > .ap2-ref-table:first-of-type td {
    display: block; width: auto;
  }
  .ap1-ref-scroll > .ap1-ref-table, .ap2-ref-scroll > .ap2-ref-table {
    min-width: 400px;
  }
}

.ap1-refsheet-inner, .ap2-refsheet-inner {
  overflow-x: hidden;
}
.ap1-practice-exam-card.locked, .ap2-practice-exam-card.locked {
  opacity: 0.62;
}
.ap1-practice-exam-card.locked button[disabled], .ap2-practice-exam-card.locked button[disabled] {
  cursor: not-allowed;
}
.ap1-exam-locked-note, .ap2-exam-locked-note {
  margin: 0;
  font-size: 0.78rem;
  font-weight: 600;
  color: var(--error);
}
.ap1-exam-inflight-note, .ap2-exam-inflight-note {
  color: var(--accent);
}


/* ─── AP Physics 1 only ───────────────────────────────────────────── */

.ap1-loading span {
  width: 38px; height: 38px; border: 3px solid #eadfd4; border-top-color: var(--ap-teal); border-radius: 50%; animation: ap1Spin .7s linear infinite;
}
@keyframes ap1Spin { to { transform: rotate(360deg); } }
html.pw-exam-lock body > header {
  display: none !important;
}
html.pw-exam-lock .pw-search-overlay {
  display: none !important;
}
html.pw-exam-lock .ap1-screen.active {
  height: 100dvh;
  max-height: 100dvh;
}
.pw-exam-brand {
  display: flex;
  align-items: center;
  gap: 10px;
  min-width: 0;
  cursor: default;
  user-select: none;
}
.pw-exam-corner-brand {
  display: flex;
  flex-direction: row;
  align-items: center;
  gap: 6px;
  flex: 0 0 auto;
}
.pw-exam-corner-brand img {
  flex-shrink: 0;
  width: 30px;
  height: 30px;
  object-fit: contain;
}
.pw-exam-brand-name {
  font-weight: 750;
  font-size: 0.8rem;
  letter-spacing: -0.01em;
  line-height: 1.1;
  white-space: nowrap;
}
.pw-exam-brand-divider {
  align-self: stretch;
  width: 1px;
  min-height: 30px;
  background: var(--border);
}
.pw-exam-context {
  display: flex;
  flex-direction: column;
  justify-content: center;
  gap: 2px;
  min-width: 0;
}
.pw-exam-context strong {
  color: var(--text);
  font-size: 0.82rem;
  font-weight: 800;
  line-height: 1.15;
  white-space: nowrap;
}
.pw-exam-context small {
  font-size: 0.68rem;
  color: var(--text-muted);
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}
@media (max-width: 640px) {
  .pw-exam-corner-brand .pw-exam-brand-name {
    display: none;
  }
  .pw-exam-brand {
    gap: 7px;
  }
  .pw-exam-context strong {
    font-size: .75rem;
  }
  .pw-exam-context small {
    max-width: 150px;
  }
}

:is(.ap1-exam-review, .ap2-exam-review) article {
  min-width: 0;
  overflow: hidden;
  box-sizing: border-box;
}
:is(.ap1-exam-review, .ap2-exam-review) article :is(ol, ul) {
  width: auto;
  max-width: 100%;
  margin: .75rem 0 1rem;
  padding-inline-start: 1.75rem;
  box-sizing: border-box;
}
:is(.ap1-exam-review, .ap2-exam-review) article :is(ol, ul) :is(ol, ul) {
  margin-block: .45rem;
  padding-inline-start: 1.5rem;
}
:is(.ap1-exam-review, .ap2-exam-review) article li {
  max-width: 100%;
  padding-inline-start: .2rem;
  overflow-wrap: anywhere;
}
:is(.ap1-exam-review, .ap2-exam-review) article :is(.ap1-table-wrap, .ap2-table-wrap) {
  max-width: 100%;
  overflow-x: auto;
}
.ap1-reveal-solution {
  margin-top: 10px;
  padding: 8px 14px;
  border: 1px solid var(--border);
  border-radius: 8px;
  background: var(--surface);
  color: var(--text);
  font-family: inherit;
  font-size: 0.86rem;
  font-weight: 600;
  cursor: pointer;
}
.ap1-reveal-solution:hover {
  border-color: var(--accent); color: var(--accent);
}
.ap1-reveal-solution:disabled {
  opacity: 0.6; cursor: default;
}
.ap1-solution-stub {
  color: var(--text-muted); font-size: 0.9rem; line-height: 1.5;
}


/* ─── AP Physics 2 only ───────────────────────────────────────────── */

.ap2-loading span {
  width: 38px; height: 38px; border: 3px solid #eadfd4; border-top-color: var(--ap-teal); border-radius: 50%; animation: ap2Spin .7s linear infinite;
}
.ap2-spectrum-card {
  position: relative;
  min-height: 290px;
  overflow: hidden;
  border: 1px solid rgba(255,255,255,.24);
  border-radius: 30px;
  background:
  radial-gradient(circle at 82% 20%, rgba(255,190,82,.34), transparent 25%),
  linear-gradient(145deg, #4a1f16 0%, #7b2d19 55%, #c45b24 100%);
  box-shadow: 0 24px 55px rgba(75,29,18,.22);
}
.ap2-spectrum-card::before,
.ap2-spectrum-card::after {
  content: ''; position: absolute; border: 1px solid rgba(255,255,255,.14);
  border-radius: 50%; width: 250px; height: 250px; right: -75px; top: -78px;
}
.ap2-spectrum-card::after {
  width: 170px; height: 170px; right: -35px; top: -38px;
}
.ap2-prism {
  position: absolute; left: 48%; top: 38%; width: 0; height: 0;
  border-left: 47px solid transparent; border-right: 47px solid transparent;
  border-bottom: 82px solid rgba(255,255,255,.18); transform: translate(-50%,-50%) rotate(8deg);
  filter: drop-shadow(0 12px 14px rgba(20,8,4,.22));
}
.ap2-prism::after {
  content: ''; position: absolute; left: -39px; top: 9px; width: 76px; height: 64px;
  border: 2px solid rgba(255,255,255,.78); border-bottom: 0; transform: skewY(-30deg) rotate(30deg);
}
.ap2-light-beam {
  position: absolute; height: 3px; border-radius: 4px; transform-origin: left center;
}
.ap2-light-beam.incoming {
  left: 5%; top: 39%; width: 42%; background: rgba(255,255,255,.92); transform: rotate(7deg);
}
.ap2-light-beam.ray-one {
  left: 52%; top: 42%; width: 43%; background: #ffd86a; transform: rotate(-18deg);
}
.ap2-light-beam.ray-two {
  left: 52%; top: 43%; width: 43%; background: #ff934d; transform: rotate(-2deg);
}
.ap2-light-beam.ray-three {
  left: 52%; top: 44%; width: 43%; background: #ffcec0; transform: rotate(15deg);
}
.ap2-wave-line {
  position: absolute; left: 10%; right: 10%; bottom: 58px; display: flex; align-items: center; height: 40px;
}
.ap2-wave-line i {
  flex: 1; height: 28px; border-top: 3px solid rgba(255,255,255,.72); border-radius: 50%; transform: skewY(-15deg);
}
.ap2-spectrum-card p {
  position: absolute; left: 0; right: 0; bottom: 18px; margin: 0; color: #fff8f2; text-align: center; font-weight: 700; letter-spacing: .02em;
}
.ap2-reference-source-section {
  padding: 4px 0 18px; border-bottom: 1px solid var(--ap-line);
}
.ap2-reference-source-section:last-child {
  border-bottom: 0;
}
html.pw-exam-lock .ap2-screen.active {
  height: 100dvh; max-height: 100dvh;
}
@media (max-width: 900px) {
  .ap2-spectrum-card {
    min-height: 230px;
  }
}

@keyframes ap2Spin { to { transform: rotate(360deg); } }
