:root {
  --ink: #172b3a;
  --navy: #163342;
  --navy-2: #214858;
  --sidebar-bg: rgba(184,201,185,.90);
  --navigation-panel-bg: rgba(213,224,210,.88);
  --navigation-ink: #243d35;
  --navigation-muted: #586f62;
  --navigation-active: rgba(159,182,161,.90);
  --paper: #f4f1e9;
  --card: #fffefa;
  --line: #dedbd1;
  --muted: #758087;
  --orange: #e97845;
  --orange-soft: #f8e6dc;
  --blue: #5c83a5;
  --blue-soft: #e3edf3;
  --green: #6c8d77;
  --green-soft: #e8efe9;
  --yellow: #e3b756;
  --shadow: 0 14px 40px rgba(26, 46, 57, .07);
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body {
  margin: 0;
  color: var(--ink);
  background: var(--paper);
  font-family: "PingFang SC", "Microsoft YaHei", "Noto Sans CJK SC", "Source Han Sans SC", system-ui, sans-serif;
  -webkit-font-smoothing: antialiased;
}
button { font: inherit; }
button:focus-visible, a:focus-visible { outline: 3px solid rgba(233,120,69,.35); outline-offset: 2px; }

.app-shell { min-height: 100vh; display: flex; }
.sidebar {
  width: 244px;
  height: 100vh;
  position: fixed;
  inset: 0 auto 0 0;
  z-index: 20;
  display: flex;
  flex-direction: column;
  padding: 30px 22px 24px;
  color: #f5f8f8;
  background: var(--sidebar-bg);
  transition: transform .25s ease;
}
.brand { display: flex; align-items: center; gap: 12px; padding: 0 8px 31px; }
.brand-mark {
  display: grid; place-items: center; width: 41px; height: 41px;
  color: var(--navy); background: #f4efe2; border-radius: 50%; font-size: 19px; font-weight: 800;
}
.brand strong { display: block; font-size: 20px; letter-spacing: .12em; }
.brand small { display: block; color: #e0e9eb; font-size: 10px; margin-top: 3px; letter-spacing: .18em; }
.main-nav { display: grid; gap: 7px; }
.nav-item {
  border: 0; color: #e0e9eb; background: transparent; cursor: pointer;
  width: 100%; height: 46px; padding: 0 14px; border-radius: 8px;
  display: flex; align-items: center; gap: 13px; font-size: 14px; text-align: left;
  transition: .2s ease;
}
.nav-item span { width: 20px; text-align: center; font-size: 19px; }
.nav-item:hover { color: white; background: rgba(255,255,255,.09); }
.nav-item.active { color: white; background: rgba(255,255,255,.14); box-shadow: inset 3px 0 0 var(--orange); }
.sidebar-card { margin-top: auto; padding: 18px 17px; border: 1px solid rgba(255,255,255,.22); border-radius: 11px; background: rgba(255,255,255,.08); }
.sidebar-card-icon { margin-bottom: 8px; }
.sidebar-card strong { font-size: 13px; }
.sidebar-card p { margin: 7px 0 0; color: #e0e9eb; font-size: 11px; line-height: 1.75; }
.edition-note { margin-top: 18px; padding: 0 8px; display: grid; gap: 2px; }
.edition-note span { color: #d7e3e5; font-size: 9px; letter-spacing: .16em; margin-bottom: 4px; }
.edition-note strong { color: #f0f5f5; font-size: 10px; font-weight: 500; }

.main-content { margin-left: 244px; width: calc(100% - 244px); min-height: 100vh; }
.topbar {
  height: 80px; padding: 0 4.5%; border-bottom: 1px solid rgba(30,52,64,.1);
  display: flex; align-items: center; justify-content: space-between; background: rgba(244,241,233,.9);
  position: sticky; top: 0; z-index: 15; backdrop-filter: blur(12px);
}
.menu-btn { display: none; border: 0; background: transparent; font-size: 24px; color: var(--ink); }
.date-block span { display: block; color: var(--muted); font-size: 10px; letter-spacing: .09em; margin-bottom: 2px; }
.date-block strong { font-size: 15px; }
.top-actions { display: flex; gap: 24px; align-items: center; }
.timer-pill { display: flex; align-items: center; gap: 7px; border: 0; background: transparent; color: var(--ink); cursor: pointer; }
.timer-pill > span { color: var(--orange); font-size: 20px; }
.timer-pill b { font-size: 14px; font-variant-numeric: tabular-nums; }
.timer-pill small { color: var(--muted); font-size: 10px; }
.timer-pill.running { color: var(--orange); }
.student-chip { display: flex; align-items: center; gap: 9px; font-size: 11px; }
.student-chip > span { display: grid; place-items: center; width: 39px; height: 39px; border-radius: 50%; background: var(--orange-soft); color: var(--orange); font-size: 9px; font-weight: 700; }
.student-chip div { font-weight: 700; }
.student-chip small { display: block; color: var(--muted); font-weight: 400; margin-top: 2px; }

.view { display: none; padding: 38px 4.5% 70px; max-width: 1500px; margin: 0 auto; animation: fadeUp .35s ease both; }
.view.active { display: block; }
@keyframes fadeUp { from { opacity: 0; transform: translateY(7px); } to { opacity: 1; transform: none; } }
.eyebrow { margin: 0 0 10px; color: var(--orange) !important; font-size: 10px !important; font-weight: 800; letter-spacing: .19em; }
.welcome-row { display: flex; justify-content: space-between; align-items: flex-end; margin-bottom: 30px; }
.welcome-row h1, .page-intro h1 { font-family: Georgia, "Noto Serif SC", serif; font-size: clamp(29px, 3vw, 42px); line-height: 1.25; margin: 0 0 10px; letter-spacing: -.04em; }
.welcome-row h1 span { color: var(--orange); border-bottom: 4px solid rgba(233,120,69,.18); }
.welcome-row p, .page-intro > p, .course-intro > div > p { color: var(--muted); font-size: 13px; margin: 0; }
.streak-card { display: flex; align-items: center; gap: 11px; min-width: 135px; padding-bottom: 4px; }
.streak-icon { display: grid; place-items: center; width: 37px; height: 37px; border-radius: 50%; background: var(--green-soft); color: var(--green); font-size: 20px; font-weight: 700; }
.streak-card small { display: block; color: var(--muted); font-size: 9px; }
.streak-card strong { font-family: Georgia, serif; font-size: 23px; }
.streak-card i { font-family: inherit; font-size: 10px; font-style: normal; font-weight: 500; }

.dashboard-grid { display: grid; grid-template-columns: minmax(0, 1.75fr) minmax(260px, .8fr); gap: 20px; }
.panel { background: var(--card); border: 1px solid rgba(36,57,68,.08); box-shadow: var(--shadow); border-radius: 12px; }
.today-panel { padding: 24px 27px; }
.panel-head, .section-title-row { display: flex; align-items: center; justify-content: space-between; }
.panel-head > div, .section-title-row > div { display: flex; align-items: center; gap: 11px; }
.panel h2, .section-title-row h2 { margin: 0; font-size: 16px; }
.section-index { color: var(--orange); font-family: Georgia, serif; font-size: 10px; font-weight: 700; letter-spacing: .08em; }
.time-total { color: var(--muted); font-size: 10px; padding: 5px 9px; border: 1px solid var(--line); border-radius: 20px; }
.task-list { margin-top: 14px; }
.task-item { display: grid; grid-template-columns: 32px 40px 1fr auto; align-items: center; gap: 12px; padding: 13px 3px; border-bottom: 1px solid #ece9e1; }
.task-check { appearance: none; width: 21px; height: 21px; border: 1.5px solid #b8bfbd; border-radius: 50%; display: grid; place-items: center; cursor: pointer; }
.task-check:checked { border-color: var(--green); background: var(--green); }
.task-check:checked::after { content: "✓"; color: white; font-size: 12px; }
.task-check:checked ~ .task-main { opacity: .52; }
.task-check:checked ~ .task-main strong { text-decoration: line-through; }
.task-badge { display: grid; place-items: center; width: 38px; height: 38px; border-radius: 9px; font-family: Georgia, serif; font-weight: 800; }
.task-badge.math { color: #b6603a; background: var(--orange-soft); }
.task-badge.physics, .task-badge.practice { color: #547a98; background: var(--blue-soft); }
.task-badge.review { color: #66806e; background: var(--green-soft); }
.task-main strong { font-size: 13px; font-weight: 700; }
.task-main p { margin: 3px 0 0; color: var(--muted); font-size: 10px; }
.task-time { color: #8c9495; font-size: 10px; }
.gentle-tip { display: flex; gap: 11px; align-items: center; margin-top: 17px; padding: 12px 14px; border-radius: 8px; background: #f6f3eb; }
.gentle-tip > span { font-size: 19px; }
.gentle-tip p { margin: 0; color: var(--muted); font-size: 10px; line-height: 1.6; }
.gentle-tip strong { display: block; color: var(--ink); font-size: 11px; }
.right-stack { display: grid; gap: 18px; }
.progress-panel { padding: 22px 23px; }
.panel-head.compact > b { color: var(--orange); font-family: Georgia, serif; font-size: 22px; }
.progress-track { height: 5px; background: #e9e7e0; border-radius: 5px; margin: 21px 0; overflow: hidden; }
.progress-track i { display: block; height: 100%; width: 0; background: var(--orange); border-radius: inherit; transition: width .4s ease; }
.subject-progress { display: grid; gap: 14px; }
.subject-progress > div { display: grid; grid-template-columns: 8px 1fr auto; align-items: center; gap: 10px; }
.dot { width: 6px; height: 6px; border-radius: 50%; }
.dot.math { background: var(--orange); }
.dot.physics { background: var(--blue); }
.subject-progress p { margin: 0; font-size: 11px; font-weight: 600; }
.subject-progress small { display: block; color: var(--muted); font-size: 9px; font-weight: 400; }
.subject-progress b { font-size: 10px; }
.quote-card { overflow: hidden; position: relative; min-height: 128px; padding: 24px 25px; border-radius: 12px; color: white; background: var(--navy); box-shadow: var(--shadow); }
.quote-card > span { position: absolute; right: 18px; top: -17px; color: rgba(255,255,255,.08); font-family: Georgia, serif; font-size: 100px; }
.quote-card p { margin: 0 0 13px; font-family: Georgia, "Noto Serif SC", serif; font-size: 15px; line-height: 1.7; position: relative; }
.quote-card small { color: #9bb0b8; font-size: 9px; }
.week-preview { margin-top: 29px; }
.text-btn { border: 0; color: var(--orange); background: transparent; font-size: 10px; cursor: pointer; }
.day-strip { display: grid; grid-template-columns: repeat(7, 1fr); gap: 8px; margin-top: 14px; }
.day-card { border: 1px solid var(--line); border-radius: 8px; min-height: 81px; padding: 11px 12px; background: rgba(255,254,250,.44); }
.day-card.today { border-color: var(--orange); background: var(--card); box-shadow: 0 7px 20px rgba(33,49,55,.06); }
.day-card.rest { opacity: .6; }
.day-card b { display: block; font-size: 10px; margin-bottom: 9px; }
.day-card p { margin: 0; color: var(--muted); font-size: 9px; line-height: 1.5; }
.day-card i { display: inline-block; width: 5px; height: 5px; margin-right: 5px; border-radius: 50%; vertical-align: 1px; }
.day-card i.math-bg { background: var(--orange); }
.day-card i.physics-bg { background: var(--blue); }
.day-card i.review-bg { background: var(--green); }

.page-intro { margin-bottom: 28px; }
.page-intro h1 { margin-bottom: 9px; }
.route-legend { display: flex; gap: 24px; color: var(--muted); font-size: 10px; margin: -6px 0 20px; }
.route-legend i { display: inline-block; width: 7px; height: 7px; border-radius: 50%; margin-right: 6px; }
.math-bg { background: var(--orange); }
.physics-bg { background: var(--blue); }
.review-bg { background: var(--green); }
.week-tabs { display: grid; grid-template-columns: repeat(8, 1fr); border-bottom: 1px solid var(--line); margin-bottom: 22px; }
.week-tab { border: 0; border-bottom: 3px solid transparent; padding: 12px 5px 13px; color: var(--muted); background: transparent; cursor: pointer; font-size: 11px; }
.week-tab strong { display: block; color: inherit; font-family: Georgia, serif; font-size: 15px; }
.week-tab.active { color: var(--orange); border-bottom-color: var(--orange); }
.week-overview { display: grid; grid-template-columns: 1fr 2fr; gap: 20px; }
.week-summary { padding: 25px; border-radius: 12px; color: white; background: var(--navy); }
.week-summary .week-no { color: #8fa6b0; font-family: Georgia, serif; font-size: 11px; letter-spacing: .12em; }
.week-summary h2 { font-family: Georgia, "Noto Serif SC", serif; font-size: 24px; margin: 13px 0 8px; }
.week-summary > p { color: #b9c7cb; font-size: 11px; line-height: 1.8; }
.week-goal { margin-top: 25px; padding-top: 17px; border-top: 1px solid rgba(255,255,255,.13); }
.week-goal strong { color: #fff; font-size: 10px; }
.week-goal p { margin: 7px 0 0; color: #c7d1d3; font-size: 10px; line-height: 1.7; }
.week-days { padding: 6px 23px; border: 1px solid rgba(36,57,68,.08); border-radius: 12px; background: var(--card); box-shadow: var(--shadow); }
.route-day { display: grid; grid-template-columns: 70px 1fr 1fr 58px; gap: 17px; align-items: center; min-height: 64px; border-bottom: 1px solid #e9e6de; }
.route-day:last-child { border: 0; }
.route-day > b { font-size: 11px; }
.route-unit { display: flex; align-items: flex-start; gap: 8px; }
.route-unit > i { flex: 0 0 6px; width: 6px; height: 6px; border-radius: 50%; margin-top: 6px; }
.route-unit p { margin: 0; font-size: 11px; font-weight: 600; }
.route-unit small { display: block; color: var(--muted); font-size: 9px; margin-top: 3px; font-weight: 400; }
.route-time { color: var(--muted); text-align: right; font-size: 9px; }
.method-panel { display: grid; grid-template-columns: 1fr auto 1fr auto 1fr auto 1fr; gap: 15px; align-items: center; margin-top: 24px; padding: 19px 24px; border: 1px dashed #c9c5bb; border-radius: 10px; }
.method-panel > div { display: flex; align-items: center; gap: 10px; }
.method-panel > div > span { flex: 0 0 25px; display: grid; place-items: center; width: 25px; height: 25px; border-radius: 50%; background: var(--orange-soft); color: var(--orange); font-family: Georgia,serif; font-weight: 700; font-size: 11px; }
.method-panel p { margin: 0; color: var(--muted); font-size: 9px; line-height: 1.5; }
.method-panel strong { color: var(--ink); display: block; font-size: 10px; }
.method-panel > i { color: #c2beb5; font-style: normal; }

.course-intro { display: flex; align-items: flex-end; justify-content: space-between; }
.course-switch { display: flex; padding: 3px; border: 1px solid var(--line); border-radius: 8px; background: rgba(255,255,255,.45); }
.course-switch button { border: 0; padding: 7px 16px; border-radius: 5px; color: var(--muted); background: transparent; font-size: 10px; cursor: pointer; }
.course-switch button.active { color: white; background: var(--navy); }
.course-foundation-note { display: flex; align-items: center; gap: 13px; margin: -5px 0 20px; padding: 13px 17px; border-left: 3px solid var(--yellow); background: rgba(255,255,255,.5); }
.course-foundation-note p { margin: 0; color: var(--muted); font-size: 10px; }
.course-foundation-note strong { color: var(--ink); display: block; margin-bottom: 2px; }
.course-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 16px; }
.course-card { min-height: 205px; padding: 21px; border: 1px solid rgba(36,57,68,.1); border-radius: 11px; background: var(--card); box-shadow: 0 8px 25px rgba(26,46,57,.045); cursor: pointer; transition: .22s ease; }
.course-card:hover { transform: translateY(-3px); box-shadow: var(--shadow); border-color: rgba(233,120,69,.35); }
.course-card-top { display: flex; justify-content: space-between; align-items: center; }
.course-code { font-family: Georgia, serif; font-size: 11px; font-weight: 800; letter-spacing: .06em; }
.course-code.math { color: var(--orange); }
.course-code.physics { color: var(--blue); }
.course-tag { color: var(--muted); border: 1px solid var(--line); border-radius: 20px; padding: 3px 7px; font-size: 8px; }
.course-card h3 { margin: 21px 0 8px; font-family: Georgia, "Noto Serif SC", serif; font-size: 18px; }
.course-card > p { min-height: 38px; margin: 0; color: var(--muted); font-size: 10px; line-height: 1.7; }
.course-meta { display: flex; justify-content: space-between; align-items: center; margin-top: 21px; padding-top: 14px; border-top: 1px solid #ece9e1; color: var(--muted); font-size: 9px; }
.course-meta button { border: 0; background: transparent; color: var(--orange); font-size: 10px; cursor: pointer; }
.course-done { color: var(--green) !important; }

.practice-layout { display: grid; grid-template-columns: 235px 1fr; gap: 22px; }
.practice-side { padding: 20px; border-radius: 11px; background: var(--navigation-panel-bg); color: white; align-self: start; box-shadow:0 10px 28px rgba(45,76,86,.08); }
.practice-side h3 { margin: 0 0 14px; font-size: 12px; }
.practice-filter { width: 100%; border: 1px solid transparent; border-radius: 8px; padding: 11px; display: flex; align-items: center; gap: 10px; color: #f0f5f5; background: transparent; cursor: pointer; text-align: left; }
.practice-filter > span { display: grid; place-items: center; width: 28px; height: 28px; border-radius: 50%; background: rgba(255,255,255,.12); }
.practice-filter p { margin: 0; }
.practice-filter b { display: block; color: inherit; font-size: 10px; }
.practice-filter small { font-size: 8px; color: #dce7e9; }
.practice-filter.active { border-color: rgba(255,255,255,.28); color: white; background: rgba(255,255,255,.14); }
.practice-rule { margin-top: 19px; padding: 14px; border-top: 1px solid rgba(255,255,255,.1); }
.practice-rule strong { font-size: 10px; }
.practice-rule p { color: #e2ebed; font-size: 9px; line-height: 1.9; }
.quiz-card { min-height: 440px; padding: 30px 34px; border-radius: 12px; border: 1px solid rgba(36,57,68,.08); background: var(--card); box-shadow: var(--shadow); }
.quiz-progress { display: flex; justify-content: space-between; color: var(--muted); font-size: 9px; }
.quiz-progress-track { width: 120px; height: 4px; margin-top: 5px; border-radius: 4px; background: #e9e6df; overflow: hidden; }
.quiz-progress-track i { display: block; height: 100%; background: var(--orange); }
.quiz-subject { display: inline-block; margin: 27px 0 11px; color: var(--orange); font-size: 9px; font-weight: 700; letter-spacing: .1em; }
.quiz-card h2 { font-family: Georgia, "Noto Serif SC", serif; font-size: 21px; font-weight: 600; line-height: 1.65; margin: 0 0 20px; }
.options { display: grid; gap: 10px; }
.option-btn { display: flex; align-items: center; gap: 13px; width: 100%; padding: 13px 15px; border: 1px solid var(--line); border-radius: 8px; background: transparent; color: var(--ink); text-align: left; cursor: pointer; font-size: 11px; }
.option-btn i { display: grid; place-items: center; flex: 0 0 24px; width: 24px; height: 24px; border: 1px solid #cbc7bd; border-radius: 50%; font-style: normal; font-family: Georgia,serif; font-size: 9px; }
.option-btn:hover:not(:disabled) { border-color: var(--orange); background: #fffbf6; }
.option-btn.correct { border-color: var(--green); background: var(--green-soft); }
.option-btn.correct i { border-color: var(--green); background: var(--green); color: white; }
.option-btn.wrong { border-color: #c96b5c; background: #f7e7e3; }
.option-btn.wrong i { border-color: #c96b5c; color: #b95648; }
.quiz-explain { display: none; margin-top: 15px; padding: 13px 15px; border-left: 3px solid var(--green); background: #f1f5f0; font-size: 10px; line-height: 1.7; }
.quiz-explain.show { display: block; }
.quiz-next, .primary-btn { float: right; margin-top: 17px; padding: 9px 18px; border: 0; border-radius: 6px; color: white; background: var(--navy); font-size: 10px; cursor: pointer; }
.quiz-finish { text-align: center; padding: 58px 20px; }
.quiz-finish > span { display: grid; place-items: center; width: 68px; height: 68px; margin: auto; border-radius: 50%; background: var(--green-soft); font-size: 28px; }
.quiz-finish h2 { margin: 18px 0 8px; }
.quiz-finish p { color: var(--muted); font-size: 11px; }
.quiz-finish button { float: none; }
.quiz-preview-banner {
  display: flex;
  align-items: center;
  gap: 10px;
  margin: -7px 0 22px;
  padding: 10px 12px;
  border: 1px solid #d8e4e8;
  border-radius: 7px;
  color: #536971;
  background: #f2f7f8;
  font-size: 12px;
  line-height: 1.6;
}
.quiz-preview-banner b {
  flex: 0 0 auto;
  padding: 2px 7px;
  border-radius: 4px;
  color: white;
  background: var(--blue);
  font-size: 11px;
}
.quiz-preview-banner.formal { border-color:#ead8bf; background:#faf3e5; }
.quiz-preview-banner.formal b { background:var(--orange); }
.quiz-preview-banner > button {
  flex: 0 0 auto;
  margin-left: auto;
  border: 0;
  color: var(--blue);
  background: transparent;
  font-size: 12px;
  cursor: pointer;
}
.quiz-preview-footer {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 15px;
  min-height: 47px;
  margin-top: 18px;
  padding-top: 15px;
  border-top: 1px solid #e8e4dc;
  color: var(--muted);
  font-size: 12px;
}
.quiz-preview-footer .quiz-next { float: none; flex: 0 0 auto; margin: 0; font-size: 13px; }
.result-skills {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: 7px;
  margin: 17px auto;
}
.result-skills b {
  padding: 5px 9px;
  border-radius: 20px;
  color: var(--green);
  background: var(--green-soft);
  font-size: 12px;
}
.quiz-finish .preview-result-note { max-width: 620px; margin: 11px auto 20px; line-height: 1.8; }

.quiz-card sup,
.quiz-card sub { font-size: .68em; line-height: 0; }
.quiz-question-meta { display: flex; align-items: center; justify-content: space-between; gap: 12px; }
.quiz-question-meta > b {
  padding: 4px 9px;
  border-radius: 20px;
  color: #6d777a;
  background: #f0eee8;
  font-size: 12px;
  font-weight: 600;
}
.multiple-options .option-btn.selected { border-color: var(--blue); background: #edf4f8; }
.multiple-options .option-btn.selected i { border-color: var(--blue); color: white; background: var(--blue); }
.question-submit {
  display: block;
  margin: 13px 0 0 auto;
  padding: 9px 16px;
  border: 0;
  border-radius: 6px;
  color: white;
  background: var(--navy);
  font-size: 13px;
  cursor: pointer;
}
.question-submit:disabled { opacity: .45; cursor: not-allowed; }
.written-answer {
  display: grid;
  grid-template-columns: 1fr auto;
  gap: 9px;
  padding: 15px;
  border: 1px solid var(--line);
  border-radius: 8px;
  background: #fbfaf6;
}
.written-answer label { grid-column: 1 / -1; color: var(--muted); font-size: 13px; }
.written-answer input,
.written-answer textarea {
  width: 100%;
  box-sizing: border-box;
  border: 1px solid #cbc7bd;
  border-radius: 6px;
  padding: 11px 13px;
  color: var(--ink);
  background: white;
  font: inherit;
  font-size: 15px;
  resize: vertical;
}
.written-answer textarea { grid-column: 1 / -1; }
.written-answer .question-submit { align-self: end; margin: 0; }
.response-answer .question-submit { grid-column: 1 / -1; justify-self: end; }
.written-answer input.correct { border-color: var(--green); background: var(--green-soft); }
.written-answer input.wrong { border-color: #c96b5c; background: #f7e7e3; }
.quiz-explain p { margin: 7px 0; }
.quiz-explain .answer-comment { padding-top: 7px; border-top: 1px solid #d8e3d8; }
.answer-rubric { margin: 8px 0 7px; padding-left: 22px; }
.answer-rubric li { margin: 3px 0; }

.paper-library { margin: -5px -3px; }
.paper-library-head {
  display: flex;
  align-items: flex-end;
  justify-content: space-between;
  gap: 25px;
  padding-bottom: 20px;
  border-bottom: 1px solid var(--line);
}
.paper-library-head span { color: var(--orange); font-size: 11px; font-weight: 700; letter-spacing: .13em; }
.paper-library-head h2 { margin: 5px 0 0; font-size: 26px; }
.paper-library-head p { max-width: 480px; margin: 0; color: var(--muted); font-size: 13px; line-height: 1.8; text-align: right; }
.paper-group { margin-top: 23px; }
.paper-group-title { display: flex; align-items: center; justify-content: space-between; margin-bottom: 10px; }
.paper-group-title h3 { margin: 0; font-size: 17px; }
.paper-group-title span { color: var(--muted); font-size: 12px; }
.paper-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 11px; }
.paper-card {
  padding: 17px;
  border: 1px solid #dedbd3;
  border-radius: 9px;
  background: #fffefa;
  transition: border-color .18s, transform .18s;
}
.paper-card:hover { border-color: #9eb2ba; transform: translateY(-1px); }
.paper-card-top { display: flex; align-items: center; justify-content: space-between; }
.paper-card-top span { color: var(--orange); font-size: 12px; font-weight: 700; }
.paper-card-top b { padding: 3px 7px; border-radius: 14px; color: var(--green); background: var(--green-soft); font-size: 11px; }
.paper-card h3 { margin: 10px 0 5px; font-size: 17px; }
.paper-card > p { min-height: 22px; margin: 0; color: var(--muted); font-size: 13px; }
.paper-types { margin: 13px 0; padding: 9px 10px; border-radius: 5px; color: #52646c; background: #f2f5f5; font-size: 12px; }
.paper-card footer { display: flex; align-items: center; justify-content: space-between; gap: 10px; }
.paper-card footer span { color: var(--muted); font-size: 11px; }
.paper-card footer button { border: 0; color: var(--orange); background: transparent; font-size: 12px; font-weight: 700; cursor: pointer; }
.paper-source-note { margin-top: 25px; padding: 15px 17px; border-radius: 8px; color: #53656c; background: #f2f5f4; }
.paper-source-note > strong { font-size: 13px; }
.paper-source-note p { margin: 5px 0 10px; font-size: 12px; line-height: 1.7; }
.paper-source-note div { display: flex; flex-wrap: wrap; gap: 7px 15px; }
.paper-source-note a { color: var(--blue); font-size: 11px; text-decoration: none; }

.math-input-tools {
  grid-column: 1 / -1;
  padding: 12px;
  border: 1px solid #d9e3e7;
  border-radius: 8px;
  background: #f5f8f9;
}
.math-tools-head { display: flex; align-items: baseline; gap: 9px; margin-bottom: 9px; }
.math-tools-head b { color: var(--navy); font-size: 13px; }
.math-tools-head span { color: var(--muted); font-size: 11px; }
.math-symbol-keys, .math-quick-templates { display: flex; flex-wrap: wrap; gap: 6px; }
.math-quick-templates { margin-bottom: 7px; padding-bottom: 7px; border-bottom: 1px solid #dde6e8; }
.math-symbol-keys button,
.math-quick-templates button {
  min-width: 38px;
  min-height: 34px;
  padding: 5px 9px;
  border: 1px solid #cbd8dd;
  border-radius: 6px;
  color: var(--navy);
  background: white;
  font-family: "STIX Two Math", "Cambria Math", Georgia, serif;
  font-size: 17px;
  cursor: pointer;
}
.math-quick-templates button { color: var(--blue); background: #edf4f8; font-size: 14px; font-weight: 700; }
.math-symbol-keys button:hover,
.math-quick-templates button:hover { border-color: var(--orange); background: #fff8f2; }
.math-input-tools > small { display: block; margin-top: 8px; color: #718086; font-size: 11px; line-height: 1.6; }
.math-input-tools code { padding: 1px 4px; border-radius: 3px; color: #526b75; background: white; font-size: 11px; }

.response-self-check {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 7px;
  margin: 12px 0 7px;
  padding-top: 11px;
  border-top: 1px solid #d8e3d8;
}
.response-self-check b { margin-right: 3px; font-size: 13px; }
.response-self-check button {
  padding: 6px 10px;
  border: 1px solid #bfd0c3;
  border-radius: 18px;
  color: #526c59;
  background: white;
  font-size: 12px;
  cursor: pointer;
}
.response-self-check button.active { border-color: var(--green); color: white; background: var(--green); }

.paper-report { margin: -5px -3px; }
.paper-report-hero {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 25px;
  padding: 4px 0 21px;
  border-bottom: 1px solid var(--line);
}
.paper-report-hero > div > span { color: var(--orange); font-size: 12px; font-weight: 700; letter-spacing: .12em; }
.paper-report-hero h2 { margin: 6px 0 5px; font-size: 27px; }
.paper-report-hero p { max-width: 700px; margin: 0; color: var(--muted); font-size: 13px; line-height: 1.8; }
.paper-report-hero > button {
  flex: 0 0 auto;
  padding: 8px 12px;
  border: 1px solid var(--line);
  border-radius: 6px;
  color: var(--blue);
  background: white;
  font-size: 12px;
  cursor: pointer;
}
.report-metrics { display: grid; grid-template-columns: repeat(4, 1fr); gap: 9px; margin: 17px 0 22px; }
.report-metrics article { padding: 14px; border: 1px solid #e0ddd5; border-radius: 8px; background: #fffefa; }
.report-metrics span, .report-metrics small { display: block; color: var(--muted); font-size: 11px; }
.report-metrics strong { display: block; margin: 5px 0 3px; color: var(--navy); font-family: Georgia, serif; font-size: 24px; }
.report-section { margin: 15px 0; padding: 18px; border: 1px solid #e1ded7; border-radius: 9px; background: white; }
.report-section-title { display: flex; align-items: center; gap: 11px; margin-bottom: 13px; }
.report-section-title > span { display: grid; place-items: center; width: 30px; height: 30px; border-radius: 50%; color: white; background: var(--navy); font-size: 11px; }
.report-section-title h3 { margin: 0; font-size: 17px; }
.report-section-title p { margin: 2px 0 0; color: var(--muted); font-size: 12px; }
.wrong-point-list { display: grid; gap: 7px; }
.wrong-point-list article {
  display: grid;
  grid-template-columns: 62px 1fr auto;
  align-items: center;
  gap: 12px;
  padding: 10px 12px;
  border-radius: 7px;
  background: #fbf5f1;
}
.wrong-point-list article > b { color: var(--orange); font-size: 13px; }
.wrong-point-list strong { font-size: 14px; }
.wrong-point-list p { margin: 3px 0 0; color: #88675f; font-size: 12px; }
.wrong-point-list article > span { color: var(--muted); font-size: 11px; }
.report-empty { padding: 14px; border-radius: 7px; color: #61736a; background: var(--green-soft); font-size: 13px; line-height: 1.7; }
.difficulty-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 9px; }
.difficulty-grid article { display: flex; gap: 10px; padding: 13px; border-radius: 8px; background: #f3f6f7; }
.difficulty-grid i { display: grid; place-items: center; flex: 0 0 26px; width: 26px; height: 26px; border-radius: 50%; color: white; background: var(--blue); font-style: normal; font-size: 12px; }
.difficulty-grid strong { font-size: 14px; }
.difficulty-grid p { margin: 5px 0; color: #536770; font-size: 12px; line-height: 1.6; }
.difficulty-grid small { color: var(--muted); font-size: 11px; }
.common-error-line { margin: 11px 0 0; padding: 10px 12px; border-left: 3px solid var(--orange); color: #695d56; background: #fbf7ed; font-size: 12px; line-height: 1.7; }
.review-route-list { display: grid; gap: 8px; }
.review-route-list article { display: grid; grid-template-columns: 32px 1fr auto; align-items: center; gap: 11px; padding: 12px; border: 1px solid #e3e6e3; border-radius: 8px; }
.review-order { display: grid; place-items: center; width: 28px; height: 28px; border-radius: 7px; color: var(--green); background: var(--green-soft); font-weight: 700; }
.review-route-list strong { font-size: 14px; }
.review-route-list p { margin: 4px 0; color: #4e6269; font-size: 12px; }
.review-route-list small { color: var(--muted); font-size: 11px; }
.review-route-list button { border: 0; color: var(--orange); background: transparent; font-size: 12px; font-weight: 700; cursor: pointer; }
.reinforcement-plan {
  display: grid;
  grid-template-columns: 1fr auto;
  align-items: center;
  gap: 16px 24px;
  margin-top: 17px;
  padding: 20px;
  border-radius: 10px;
  color: white;
  background: var(--navy);
}
.reinforcement-plan > div:first-child > span { color: #f2a77e; font-size: 11px; font-weight: 700; letter-spacing: .1em; }
.reinforcement-plan h3 { margin: 6px 0; font-size: 18px; }
.reinforcement-plan p { margin: 0; color: #bdcbd0; font-size: 12px; line-height: 1.7; }
.review-days { display: flex; align-items: center; gap: 8px; }
.review-days b { padding: 8px 10px; border-radius: 7px; background: rgba(255,255,255,.08); font-size: 12px; text-align: center; }
.review-days small { display: block; margin-top: 3px; color: #a9bcc2; font-size: 10px; }
.review-days i { color: #708c96; font-style: normal; }
.reinforcement-plan > button { grid-column: 1 / -1; justify-self: end; padding: 9px 16px; border: 0; border-radius: 6px; color: var(--navy); background: white; font-size: 13px; font-weight: 700; cursor: pointer; }

@media (max-width: 760px) {
  .paper-library-head, .paper-report-hero { align-items: flex-start; flex-direction: column; gap: 8px; }
  .paper-library-head p { text-align: left; }
  .paper-grid, .difficulty-grid { grid-template-columns: 1fr; }
  .report-metrics { grid-template-columns: 1fr 1fr; }
  .review-route-list article { grid-template-columns: 32px 1fr; }
  .review-route-list button { grid-column: 2; justify-self: start; }
  .reinforcement-plan { grid-template-columns: 1fr; }
  .review-days { flex-wrap: wrap; }
}
@media (max-width: 600px) {
  .quiz-preview-banner, .quiz-preview-footer { align-items: flex-start; flex-direction: column; }
  .quiz-preview-banner > button { margin-left: 0; }
  .quiz-preview-footer .quiz-next { align-self: stretch; }
  .written-answer { grid-template-columns: 1fr; }
  .written-answer .question-submit { justify-self: stretch; }
  .math-tools-head { align-items: flex-start; flex-direction: column; gap: 2px; }
  .math-symbol-keys button { min-width: 42px; min-height: 38px; }
}

.mistake-toolbar { display: flex; justify-content: space-between; align-items: center; margin-bottom: 18px; padding: 16px 20px; background: var(--card); border: 1px solid var(--line); border-radius: 9px; }
.mistake-toolbar div { display: flex; align-items: baseline; gap: 9px; }
.mistake-toolbar strong { color: var(--orange); font-family: Georgia,serif; font-size: 22px; }
.mistake-toolbar span { color: var(--muted); font-size: 9px; }
.outline-btn { border: 1px solid var(--line); border-radius: 6px; padding: 7px 12px; color: var(--muted); background: transparent; font-size: 9px; cursor: pointer; }
.mistake-list { display: grid; gap: 11px; }
.mistake-item { display: grid; grid-template-columns: 45px 1fr auto; gap: 16px; padding: 19px 21px; border: 1px solid rgba(36,57,68,.09); border-radius: 10px; background: var(--card); }
.mistake-num { display: grid; place-items: center; width: 40px; height: 40px; border-radius: 9px; color: var(--orange); background: var(--orange-soft); font-family: Georgia,serif; font-weight: 700; }
.mistake-item h3 { margin: 1px 0 7px; font-size: 12px; }
.mistake-item p { margin: 3px 0; color: var(--muted); font-size: 10px; line-height: 1.7; }
.mistake-item p strong { color: var(--ink); }
.master-btn { align-self: start; border: 1px solid var(--line); border-radius: 6px; padding: 6px 10px; color: var(--green); background: transparent; font-size: 9px; cursor: pointer; }
.empty-state { text-align: center; padding: 60px 20px; border: 1px dashed #c9c5bb; border-radius: 10px; color: var(--muted); }
.empty-state span { font-size: 35px; }
.empty-state h3 { color: var(--ink); margin: 12px 0 6px; font-size: 14px; }
.empty-state p { margin: 0; font-size: 10px; }

.modal-backdrop { display: none; position: fixed; inset: 0; z-index: 100; padding: 3vh 15px; background: rgba(12,28,36,.64); backdrop-filter: blur(4px); overflow-y: auto; }
.modal-backdrop.open { display: block; }
.lesson-modal { position: relative; width: min(830px, 100%); min-height: 500px; margin: 0 auto; border-radius: 14px; background: var(--card); box-shadow: 0 30px 80px rgba(0,0,0,.25); overflow: hidden; }
.modal-close { position: absolute; right: 18px; top: 16px; z-index: 2; width: 32px; height: 32px; border: 0; border-radius: 50%; color: white; background: rgba(255,255,255,.13); font-size: 22px; cursor: pointer; }
.lesson-hero { padding: 35px 44px 30px; color: white; background: var(--navy); }
.lesson-hero .lesson-code { color: #8fabb5; font-family: Georgia,serif; font-size: 11px; letter-spacing: .12em; }
.lesson-hero h1 { margin: 13px 45px 8px 0; font-family: Georgia, "Noto Serif SC", serif; font-size: 27px; }
.lesson-hero p { max-width: 600px; margin: 0; color: #bfd0d5; font-size: 11px; line-height: 1.7; }
.lesson-hero-meta { display: flex; gap: 18px; margin-top: 18px; color: #9db1b7; font-size: 9px; }
.lesson-body { padding: 30px 44px 38px; }
.lesson-goal { display: flex; gap: 12px; align-items: flex-start; padding: 15px 17px; border-left: 3px solid var(--orange); background: #faf1e9; }
.lesson-goal span { font-size: 18px; }
.lesson-goal p { margin: 0; font-size: 10px; line-height: 1.7; }
.lesson-section { margin-top: 29px; }
.lesson-section h2 { display: flex; align-items: center; gap: 9px; font-size: 16px; margin: 0 0 13px; }
.lesson-section h2 i { display: grid; place-items: center; width: 24px; height: 24px; border-radius: 50%; color: var(--orange); background: var(--orange-soft); font-family: Georgia,serif; font-size: 10px; font-style: normal; }
.lesson-section > p, .lesson-section li { color: #495a62; font-size: 12px; line-height: 1.9; }
.lesson-section ul { padding-left: 20px; }
.analogy-box, .key-box, .warning-box { margin: 14px 0; padding: 17px 19px; border-radius: 9px; }
.analogy-box { background: var(--blue-soft); }
.key-box { text-align: center; border: 1px solid #cddad0; background: var(--green-soft); }
.warning-box { border-left: 3px solid var(--yellow); background: #faf3df; }
.analogy-box strong, .warning-box strong { display: block; margin-bottom: 6px; font-size: 11px; }
.analogy-box p, .key-box p, .warning-box p { margin: 0; font-size: 11px; line-height: 1.8; }
.key-box strong { color: var(--green); font-size: 15px; }
.example-card { margin-top: 13px; border: 1px solid var(--line); border-radius: 9px; overflow: hidden; }
.example-card > strong { display: block; padding: 9px 14px; color: var(--navy); background: #f2f0e9; font-size: 10px; }
.example-card > div { padding: 15px 17px; font-size: 12px; line-height: 2; }
.step-line { display: grid; grid-template-columns: 20px 1fr; gap: 8px; }
.step-line i { color: var(--orange); font-family: Georgia,serif; font-style: normal; font-weight: 700; }
.lesson-practice { margin-top: 28px; padding: 20px; border: 1px dashed #bbb8ae; border-radius: 9px; }
.lesson-practice h3 { margin: 0 0 11px; font-size: 13px; }
.lesson-practice ol { margin: 0; padding-left: 19px; }
.lesson-practice li { padding: 4px 0; font-size: 11px; line-height: 1.7; }
details.answer-box { margin-top: 13px; }
details.answer-box summary { color: var(--orange); cursor: pointer; font-size: 10px; }
details.answer-box div { margin-top: 9px; padding: 12px; background: var(--green-soft); font-size: 10px; line-height: 1.8; }
.complete-lesson { display: block; width: 100%; margin-top: 24px; padding: 12px; border: 0; border-radius: 7px; color: white; background: var(--orange); cursor: pointer; font-size: 11px; font-weight: 700; }
.complete-lesson.done { background: var(--green); }

.toast { position: fixed; z-index: 200; left: 50%; bottom: 26px; transform: translate(-50%, 20px); padding: 10px 18px; border-radius: 6px; color: white; background: var(--navy); box-shadow: var(--shadow); font-size: 10px; opacity: 0; pointer-events: none; transition: .25s; }
.toast.show { opacity: 1; transform: translate(-50%, 0); }

@media (max-width: 1080px) {
  .sidebar { width: 210px; }
  .main-content { margin-left: 210px; width: calc(100% - 210px); }
  .course-grid { grid-template-columns: repeat(2, 1fr); }
  .week-overview { grid-template-columns: 1fr; }
  .week-summary { display: grid; grid-template-columns: 1fr 1fr; gap: 15px; }
  .week-summary .week-goal { margin: 0; padding: 0 0 0 20px; border: 0; border-left: 1px solid rgba(255,255,255,.13); }
}
@media (max-width: 780px) {
  .sidebar { width: 244px; transform: translateX(-100%); box-shadow: 15px 0 40px rgba(0,0,0,.2); }
  .sidebar.open { transform: none; }
  .main-content { margin-left: 0; width: 100%; }
  .topbar { height: 67px; padding: 0 18px; }
  .menu-btn { display: block; }
  .date-block { margin-right: auto; margin-left: 12px; }
  .student-chip { display: none; }
  .top-actions { gap: 0; }
  .view { padding: 28px 18px 55px; }
  .dashboard-grid, .practice-layout { grid-template-columns: 1fr; }
  .right-stack { grid-template-columns: 1fr 1fr; }
  .day-strip { overflow-x: auto; grid-template-columns: repeat(7, 125px); padding-bottom: 7px; }
  .week-tabs { overflow-x: auto; grid-template-columns: repeat(8, 75px); }
  .route-day { grid-template-columns: 50px 1fr; padding: 12px 0; }
  .route-time { display: none; }
  .method-panel { grid-template-columns: 1fr 1fr; }
  .method-panel > i { display: none; }
}
@media (max-width: 560px) {
  .welcome-row { align-items: flex-start; }
  .streak-card { min-width: auto; }
  .streak-card > div small { display: none; }
  .welcome-row h1, .page-intro h1 { font-size: 27px; }
  .welcome-row > div:first-child > p:last-child { max-width: 270px; line-height: 1.7; }
  .right-stack { grid-template-columns: 1fr; }
  .task-item { grid-template-columns: 27px 36px 1fr; gap: 8px; }
  .task-time { display: none; }
  .today-panel { padding: 20px 17px; }
  .course-intro { display: block; }
  .course-switch { width: max-content; margin-top: 18px; }
  .course-grid { grid-template-columns: 1fr; }
  .week-summary { display: block; }
  .week-summary .week-goal { margin-top: 20px; padding: 17px 0 0; border-left: 0; border-top: 1px solid rgba(255,255,255,.13); }
  .route-day { grid-template-columns: 45px 1fr; gap: 9px; }
  .route-unit.physics-unit { grid-column: 2; }
  .method-panel { grid-template-columns: 1fr; }
  .practice-side { display: grid; grid-template-columns: 1fr 1fr 1fr; gap: 5px; padding: 13px; }
  .practice-side h3, .practice-rule { display: none; }
  .practice-filter { display: block; text-align: center; padding: 8px 4px; }
  .practice-filter > span { margin: 0 auto 4px; }
  .practice-filter small { display: none; }
  .quiz-card { padding: 23px 19px; }
  .mistake-item { grid-template-columns: 36px 1fr; padding: 16px; }
  .mistake-num { width: 33px; height: 33px; }
  .master-btn { grid-column: 2; width: max-content; }
  .lesson-body { padding: 24px 20px 30px; }
  .lesson-hero { padding: 30px 22px 25px; }
  .lesson-hero h1 { font-size: 23px; }
  .modal-backdrop { padding: 0; }
  .lesson-modal { min-height: 100vh; border-radius: 0; }
}

/* Math-first teaching experience */
.math-welcome > div:first-child { max-width: 760px; }
.diagnosis-banner {
  display: grid; grid-template-columns: 45px 1fr auto; align-items: center; gap: 15px;
  margin: 0 0 20px; padding: 15px 19px; border-radius: 10px;
  border: 1px solid rgba(92,131,165,.2); background: var(--blue-soft);
}
.diagnosis-icon { display: grid; place-items: center; width: 39px; height: 39px; border-radius: 50%; color: white; background: var(--blue); font-size: 20px; }
.diagnosis-banner span { display: block; color: #6f899b; font-size: 9px; }
.diagnosis-banner strong { display: block; margin-top: 3px; font-size: 11px; }
.diagnosis-banner button { border: 0; padding: 9px 15px; border-radius: 6px; color: white; background: var(--navy); cursor: pointer; font-size: 10px; }
.teacher-rule { border-color: rgba(227,183,86,.25); }
.teacher-card { background: linear-gradient(135deg, #163342, #244b5c); }
.ability-list { display: grid; gap: 14px; }
.ability-list > div { display: grid; grid-template-columns: 58px 1fr 42px; align-items: center; gap: 9px; }
.ability-list span, .ability-list em { font-size: 9px; font-style: normal; }
.ability-list em { color: var(--muted); text-align: right; }
.ability-list > div > i { height: 5px; border-radius: 5px; background: #ebe8df; overflow: hidden; }
.ability-list b { display: block; width: 5%; height: 100%; border-radius: inherit; background: var(--orange); transition: width .4s ease; }
.route-notice { margin: -7px 0 17px; padding: 12px 15px; border-left: 3px solid var(--orange); color: var(--muted); background: rgba(255,255,255,.5); font-size: 10px; }
.route-notice strong { color: var(--ink); }
.teach-bg { background: var(--orange); }
.practice-bg { background: var(--blue); }
.week-tabs { grid-template-columns: repeat(12, 1fr); overflow-x: auto; }
.week-tab { min-width: 63px; }
.teaching-loop { margin-bottom: 10px; }
.route-unit.training-unit i { background: var(--blue); }
.route-unit.review-unit i { background: var(--green); }
.week-checkpoint { display: flex; gap: 10px; align-items: flex-start; margin-top: 15px; padding: 12px; border-radius: 7px; background: rgba(255,255,255,.08); }
.week-checkpoint span { font-size: 16px; }
.week-checkpoint p { margin: 0; color: #c9d4d7; font-size: 9px; line-height: 1.7; }
.chapter-switch { width: 100%; overflow-x: auto; margin: -6px 0 18px; background: transparent; }
.chapter-switch button { flex: 1; min-width: 82px; padding: 9px 12px; }
.course-stats { display: flex; gap: 12px; margin-bottom: 17px; color: var(--muted); font-size: 9px; }
.course-stats span { padding: 5px 9px; border-radius: 20px; background: rgba(255,255,255,.55); }
.official-source-panel {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 20px;
  margin: -8px 0 17px;
  padding: 15px 18px;
  border: 1px solid #ceddcb;
  border-radius: 9px;
  background: #eef5ec;
}
.official-source-panel > div { display: flex; align-items: flex-start; gap: 11px; }
.official-source-panel > div > span { display: grid; place-items: center; flex: 0 0 27px; width: 27px; height: 27px; border-radius: 50%; color: white; background: var(--green); font-size: 12px; }
.official-source-panel p { margin: 0; color: #607165; font-size: 13px; line-height: 1.7; }
.official-source-panel strong { display: block; color: #355743; font-size: 14px; }
.official-source-panel > a { flex: 0 0 auto; color: var(--green); font-size: 12px; text-decoration: none; }
.official-source-panel > a:hover { text-decoration: underline; }
@media (max-width: 700px) {
  .official-source-panel { align-items: flex-start; flex-direction: column; }
  .official-source-panel > a { margin-left: 38px; }
}
.course-card .lesson-order { display: inline-flex; align-items: center; gap: 5px; color: var(--muted); font-size: 8px; }
.course-card .lesson-order i { width: 5px; height: 5px; border-radius: 50%; background: var(--orange); }
.course-card.locked { opacity: .65; }

/* Full lesson plan */
.expanded-lesson { width: min(920px, 100%); }
.lesson-hero .lesson-breadcrumb { color: #8fabb5; font-size: 9px; }
.lesson-objectives { display: grid; grid-template-columns: repeat(3,1fr); gap: 9px; margin-top: 18px; }
.lesson-objectives div { padding: 10px 12px; border: 1px solid rgba(255,255,255,.1); border-radius: 7px; background: rgba(255,255,255,.055); }
.lesson-objectives b { display: block; color: #f5cbb7; font-size: 9px; margin-bottom: 3px; }
.lesson-objectives span { color: #d5e0e3; font-size: 9px; line-height: 1.5; }
.lesson-map { display: flex; flex-wrap: wrap; gap: 6px; margin: 0 0 19px; }
.lesson-map span { padding: 5px 9px; border-radius: 20px; color: var(--muted); background: #f0eee7; font-size: 8px; }
.lesson-map span.active { color: white; background: var(--orange); }
.precheck-box { border: 1px solid #d9d5ca; border-radius: 9px; overflow: hidden; }
.precheck-head { display: flex; justify-content: space-between; align-items: center; padding: 11px 15px; background: #f1efe8; }
.precheck-head strong { font-size: 11px; }
.precheck-head span { color: var(--muted); font-size: 8px; }
.precheck-body { padding: 13px 17px; }
.precheck-body ol { margin: 0; padding-left: 20px; }
.precheck-body li { padding: 5px 0; color: #495a62; font-size: 11px; }
.precheck-result { margin-top: 10px; color: var(--orange); font-size: 9px; }
.classroom-step { margin-top: 24px; border-left: 1px solid #d9d4c8; padding-left: 22px; position: relative; }
.classroom-step::before { content: attr(data-step); position: absolute; left: -13px; top: -2px; display: grid; place-items: center; width: 25px; height: 25px; border-radius: 50%; color: white; background: var(--navy); font-family: Georgia,serif; font-size: 9px; }
.step-heading { display: flex; align-items: center; justify-content: space-between; gap: 15px; margin-bottom: 12px; }
.step-heading h2 { margin: 0; font-size: 15px; }
.step-heading span { flex: 0 0 auto; color: var(--orange); font-size: 8px; }
.teacher-dialogue { padding: 15px 17px; border-radius: 8px; background: var(--blue-soft); }
.teacher-dialogue p { margin: 0; color: #3e596a; font-size: 11px; line-height: 1.9; }
.teacher-dialogue b { color: var(--blue); }
.student-prompt { margin-top: 9px !important; padding-top: 9px; border-top: 1px solid rgba(92,131,165,.18); }
.student-prompt strong { color: var(--orange); }
.concept-block { margin: 12px 0; padding: 16px 18px; border: 1px solid var(--line); border-radius: 9px; }
.concept-block h3 { margin: 0 0 8px; font-size: 13px; }
.concept-block > p { margin: 0; color: #495a62; font-size: 11px; line-height: 1.9; }
.concept-block .plain-language { margin-top: 10px; padding: 10px 12px; border-left: 3px solid var(--yellow); background: #faf3df; }
.concept-block .plain-language b { color: #9b7630; }
.mini-check { display: flex; justify-content: space-between; align-items: center; gap: 12px; margin-top: 11px; padding-top: 10px; border-top: 1px dashed #d9d5ca; }
.mini-check p { margin: 0; font-size: 10px; }
.mini-check details { flex: 0 0 auto; }
.mini-check summary { color: var(--orange); cursor: pointer; font-size: 9px; }
.mini-check details span { display: block; max-width: 330px; margin-top: 6px; color: var(--green); font-size: 9px; }
.worked-example { margin: 13px 0; border: 1px solid var(--line); border-radius: 9px; overflow: hidden; }
.worked-example header { display: flex; justify-content: space-between; padding: 10px 14px; background: #f1efe8; }
.worked-example header strong { font-size: 10px; }
.worked-example header span { color: var(--muted); font-size: 8px; }
.worked-problem { padding: 14px 16px 7px; font-size: 12px; font-weight: 600; }
.worked-steps { padding: 3px 16px 14px; }
.worked-steps > div { display: grid; grid-template-columns: 58px 1fr; gap: 9px; padding: 7px 0; border-bottom: 1px solid #efede6; }
.worked-steps > div:last-child { border: 0; }
.worked-steps b { color: var(--orange); font-size: 9px; }
.worked-steps p { margin: 0; color: #495a62; font-size: 11px; line-height: 1.75; }
.thinking-question { margin: 0 16px 15px; padding: 10px 12px; border-radius: 6px; color: var(--green); background: var(--green-soft); font-size: 9px; }
.pitfall-grid { display: grid; grid-template-columns: repeat(2,1fr); gap: 10px; }
.pitfall-item { padding: 13px 15px; border-radius: 8px; background: #faf3df; }
.pitfall-item b { display: block; color: #9b7630; font-size: 10px; margin-bottom: 5px; }
.pitfall-item p { margin: 0; color: #6c6047; font-size: 10px; line-height: 1.7; }
.layered-practice { display: grid; gap: 11px; }
.practice-layer { border: 1px solid var(--line); border-radius: 9px; overflow: hidden; }
.practice-layer > header { display: flex; justify-content: space-between; padding: 10px 14px; background: #f2f0e9; }
.practice-layer > header strong { font-size: 10px; }
.practice-layer > header span { color: var(--muted); font-size: 8px; }
.practice-layer ol { margin: 0; padding: 12px 18px 6px 38px; }
.practice-layer li { padding: 4px 0; color: #495a62; font-size: 11px; line-height: 1.7; }
.practice-layer details { margin: 5px 14px 12px; }
.practice-layer summary { color: var(--orange); cursor: pointer; font-size: 9px; }
.practice-layer details div { margin-top: 8px; padding: 10px 12px; border-radius: 6px; background: var(--green-soft); color: #476452; font-size: 10px; line-height: 1.8; }
.exit-ticket { padding: 16px 18px; border: 2px solid var(--navy); border-radius: 9px; }
.exit-ticket h3 { margin: 0 0 6px; font-size: 12px; }
.exit-ticket p { margin: 0 0 10px; color: var(--muted); font-size: 9px; }
.review-schedule { display: grid; grid-template-columns: repeat(4,1fr); gap: 8px; margin-top: 10px; }
.review-schedule div { padding: 10px; text-align: center; border-radius: 7px; background: #f1efe8; }
.review-schedule b { display: block; color: var(--orange); font-size: 10px; }
.review-schedule span { color: var(--muted); font-size: 8px; }

/* Mistake clinic */
.mistake-summary { display: grid; grid-template-columns: repeat(4,1fr); gap: 10px; margin-bottom: 15px; }
.mistake-summary > div { display: flex; align-items: center; gap: 11px; padding: 14px 16px; border: 1px solid var(--line); border-radius: 9px; background: var(--card); }
.summary-icon { display: grid; place-items: center; width: 31px; height: 31px; border-radius: 50%; font-size: 12px; font-weight: 700; }
.summary-icon.pending { color: #b85f4d; background: #f7e7e3; }
.summary-icon.due { color: #a67c29; background: #faf3df; }
.summary-icon.reviewing { color: var(--blue); background: var(--blue-soft); }
.summary-icon.mastered { color: var(--green); background: var(--green-soft); }
.mistake-summary p { margin: 0; }
.mistake-summary strong { display: block; font-family: Georgia,serif; font-size: 19px; }
.mistake-summary small { display: block; color: var(--muted); font-size: 8px; }
.mistake-filters { display: flex; gap: 4px; }
.mistake-filters button { border: 0; padding: 6px 11px; border-radius: 5px; color: var(--muted); background: transparent; cursor: pointer; font-size: 9px; }
.mistake-filters button.active { color: white; background: var(--navy); }
.error-type-strip { display: flex; flex-wrap: wrap; gap: 7px; margin: -5px 0 14px; }
.error-type-strip span { padding: 5px 9px; border-radius: 20px; color: var(--muted); background: rgba(255,255,255,.55); font-size: 8px; }
.detailed-mistakes .mistake-item { grid-template-columns: 48px 1fr 125px; }
.mistake-status { display: inline-block; margin-bottom: 6px; padding: 3px 7px; border-radius: 20px; font-size: 8px; }
.mistake-status.pending { color: #b85f4d; background: #f7e7e3; }
.mistake-status.reviewing { color: var(--blue); background: var(--blue-soft); }
.mistake-status.mastered { color: var(--green); background: var(--green-soft); }
.mistake-skill { color: var(--orange); font-size: 8px; }
.mistake-actions { display: flex; flex-direction: column; align-items: stretch; gap: 6px; }
.mistake-actions button { border: 1px solid var(--line); border-radius: 6px; padding: 7px 8px; color: var(--muted); background: transparent; cursor: pointer; font-size: 9px; }
.mistake-actions button.primary { border-color: var(--navy); color: white; background: var(--navy); }
.review-dots { display: flex; gap: 4px; justify-content: center; margin-top: 3px; }
.review-dots i { width: 7px; height: 7px; border-radius: 50%; background: #dedbd1; }
.review-dots i.done { background: var(--green); }
.review-dots span { color: var(--muted); font-size: 8px; margin-left: 3px; }
.correction-modal { width: min(760px,100%); }
.correction-hero { padding: 29px 38px 23px; color: white; background: var(--navy); }
.correction-hero h1 { margin: 8px 40px 5px 0; font-size: 23px; }
.correction-hero p { margin: 0; color: #aebfc5; font-size: 9px; }
.correction-body { padding: 26px 38px 34px; }
.correction-step { margin-bottom: 22px; }
.correction-step h2 { display: flex; gap: 8px; align-items: center; margin: 0 0 10px; font-size: 13px; }
.correction-step h2 span { display: grid; place-items: center; width: 22px; height: 22px; border-radius: 50%; color: white; background: var(--orange); font-family: Georgia,serif; font-size: 9px; }
.original-question { padding: 15px 17px; border-radius: 8px; background: #f1efe8; }
.original-question strong { display: block; font-size: 12px; margin-bottom: 9px; }
.answer-comparison { display: grid; grid-template-columns: 1fr 1fr; gap: 8px; }
.answer-comparison div { padding: 9px 11px; border-radius: 6px; font-size: 9px; }
.answer-comparison .my-answer { color: #a14e43; background: #f7e7e3; }
.answer-comparison .right-answer { color: #477054; background: var(--green-soft); }
.diagnosis-options { display: grid; grid-template-columns: repeat(3,1fr); gap: 7px; }
.diagnosis-options label { padding: 10px; border: 1px solid var(--line); border-radius: 7px; cursor: pointer; font-size: 9px; }
.diagnosis-options label:has(input:checked) { border-color: var(--orange); background: var(--orange-soft); }
.diagnosis-options input { margin-right: 5px; accent-color: var(--orange); }
.step-explanation { padding: 14px 16px; border-left: 3px solid var(--blue); background: var(--blue-soft); font-size: 10px; line-height: 1.9; }
.reflection-input { width: 100%; min-height: 70px; resize: vertical; padding: 11px 13px; border: 1px solid var(--line); border-radius: 7px; color: var(--ink); background: white; font: inherit; font-size: 10px; }
.similar-question { padding: 15px 17px; border: 1px dashed #bfbbae; border-radius: 8px; }
.similar-question > strong { display: block; margin-bottom: 10px; font-size: 11px; }
.similar-options { display: grid; grid-template-columns: repeat(2,1fr); gap: 7px; }
.similar-options button { padding: 9px; border: 1px solid var(--line); border-radius: 6px; background: white; cursor: pointer; font-size: 9px; }
.similar-options button.correct { border-color: var(--green); color: var(--green); background: var(--green-soft); }
.similar-options button.wrong { border-color: #c96b5c; color: #b95648; background: #f7e7e3; }
.correction-save { width: 100%; padding: 11px; border: 0; border-radius: 7px; color: white; background: var(--orange); cursor: pointer; font-size: 10px; font-weight: 700; }
.correction-save:disabled { opacity: .45; cursor: not-allowed; }

@media (max-width: 780px) {
  .week-tabs { grid-template-columns: repeat(12, 70px); }
  .lesson-objectives { grid-template-columns: 1fr; }
  .mistake-summary { grid-template-columns: 1fr 1fr; }
  .detailed-mistakes .mistake-item { grid-template-columns: 42px 1fr; }
  .detailed-mistakes .mistake-actions { grid-column: 2; }
}
@media (max-width: 560px) {
  .diagnosis-banner { grid-template-columns: 37px 1fr; }
  .diagnosis-banner button { grid-column: 2; width: max-content; }
  .chapter-switch { width: 100%; }
  .pitfall-grid, .review-schedule, .diagnosis-options { grid-template-columns: 1fr 1fr; }
  .worked-steps > div { grid-template-columns: 48px 1fr; }
  .correction-body { padding: 23px 19px 30px; }
  .correction-hero { padding: 27px 20px 22px; }
  .answer-comparison { grid-template-columns: 1fr; }
  .mistake-summary > div { padding: 11px; }
  .mistake-toolbar { align-items: flex-start; gap: 10px; }
  .mistake-filters { flex-wrap: wrap; }
}

/* Eye-friendly readability pass: keep all learning content comfortably readable */
body { font-size: 16px; }
.nav-item { height: 50px; font-size: 15px; }
.sidebar-card strong { font-size: 15px; }
.sidebar-card p { font-size: 13px; line-height: 1.8; }
.edition-note span { font-size: 11px; }
.edition-note strong { font-size: 12px; line-height: 1.6; }
.date-block span { font-size: 12px; }
.date-block strong { font-size: 17px; }
.timer-pill b { font-size: 16px; }
.timer-pill small { font-size: 12px; }
.student-chip { font-size: 13px; }
.student-chip small { font-size: 11px; }
.welcome-row p, .page-intro > p, .course-intro > div > p { font-size: 15px; line-height: 1.8; }
.eyebrow { font-size: 12px !important; }
.diagnosis-banner span { font-size: 12px; }
.diagnosis-banner strong { font-size: 14px; line-height: 1.65; }
.diagnosis-banner button { font-size: 13px; }
.panel h2, .section-title-row h2 { font-size: 19px; }
.section-index { font-size: 12px; }
.time-total { font-size: 12px; }
.task-main strong { font-size: 16px; }
.task-main p { font-size: 13px; line-height: 1.6; }
.task-time { font-size: 12px; }
.gentle-tip p { font-size: 13px; }
.gentle-tip strong { font-size: 14px; }
.ability-list span, .ability-list em { font-size: 12px; }
.quote-card p { font-size: 18px; }
.quote-card small { font-size: 12px; }
.text-btn { font-size: 13px; }
.day-card b { font-size: 13px; }
.day-card p { font-size: 12px; line-height: 1.7; }
.route-notice { font-size: 14px; line-height: 1.75; }
.route-legend { font-size: 13px; }
.week-tab { font-size: 13px; }
.week-tab strong { font-size: 17px; }
.week-summary .week-no { font-size: 13px; }
.week-summary h2 { font-size: 27px; }
.week-summary > p, .week-goal p { font-size: 14px; line-height: 1.85; }
.week-goal strong { font-size: 13px; }
.week-checkpoint p { font-size: 12px; }
.route-day > b { font-size: 14px; }
.route-unit p { font-size: 14px; line-height: 1.55; }
.route-unit small { font-size: 12px; line-height: 1.55; }
.route-time { font-size: 12px; }
.method-panel p { font-size: 12px; }
.method-panel strong { font-size: 13px; }
.course-switch button { font-size: 13px; }
.course-foundation-note p { font-size: 14px; line-height: 1.75; }
.course-stats { font-size: 12px; }
.course-card h3 { font-size: 21px; line-height: 1.55; }
.course-card > p { font-size: 14px; line-height: 1.8; }
.course-code { font-size: 13px; }
.course-tag { font-size: 11px; }
.course-meta, .course-card .lesson-order { font-size: 12px; }
.course-meta button { font-size: 13px; }
.practice-side h3 { font-size: 15px; }
.practice-filter b { font-size: 13px; }
.practice-filter small { font-size: 11px; }
.practice-rule strong { font-size: 13px; }
.practice-rule p { font-size: 12px; }
.quiz-progress { font-size: 12px; }
.quiz-subject { font-size: 12px; }
.quiz-card h2 { font-size: 24px; }
.option-btn { padding: 15px 17px; font-size: 16px; line-height: 1.55; }
.option-btn i { font-size: 12px; }
.quiz-explain { font-size: 14px; line-height: 1.8; }
.quiz-next, .primary-btn, .outline-btn { font-size: 13px; }
.quiz-finish p { font-size: 14px; line-height: 1.8; }

/* Full lesson pages use reading-size type, not interface-size type */
.lesson-hero .lesson-breadcrumb, .lesson-hero .lesson-code { font-size: 13px; }
.lesson-hero h1 { font-size: 31px; line-height: 1.45; }
.lesson-hero > p { font-size: 15px; line-height: 1.8; }
.lesson-hero-meta { font-size: 13px; }
.lesson-objectives b { font-size: 12px; }
.lesson-objectives span { font-size: 14px; line-height: 1.7; }
.lesson-map span { padding: 7px 11px; font-size: 12px; }
.precheck-head { padding: 15px 19px; }
.precheck-head strong { font-size: 17px; }
.precheck-head span { font-size: 13px; }
.precheck-body { padding: 19px 23px; }
.precheck-body ol { padding-left: 25px; }
.precheck-body li { padding: 9px 0; font-size: 17px; line-height: 1.8; }
.precheck-body details { margin: 4px 0 0 8px; }
.precheck-body summary { font-size: 15px; line-height: 1.7; }
.precheck-body details span { display: inline-block; padding: 5px 0; font-size: 16px; color: var(--green); }
.precheck-result { margin-top: 16px; font-size: 15px; line-height: 1.8; }
.classroom-step { margin-top: 34px; padding-left: 27px; }
.classroom-step::before { width: 29px; height: 29px; left: -15px; font-size: 12px; }
.step-heading h2 { font-size: 21px; line-height: 1.5; }
.step-heading span { font-size: 13px; }
.teacher-dialogue { padding: 20px 22px; }
.teacher-dialogue p { font-size: 16px; line-height: 2; }
.concept-block { padding: 21px 23px; margin: 16px 0; }
.concept-block h3 { font-size: 19px; line-height: 1.55; }
.concept-block > p { font-size: 16px; line-height: 2; }
.concept-block .plain-language { padding: 14px 16px; font-size: 15px; line-height: 1.9; }
.mini-check p { font-size: 15px; line-height: 1.75; }
.mini-check summary { font-size: 14px; }
.mini-check details span { max-width: 430px; font-size: 14px; line-height: 1.7; }
.worked-example header { padding: 13px 17px; }
.worked-example header strong { font-size: 15px; }
.worked-example header span { font-size: 12px; }
.worked-problem { padding: 18px 20px 10px; font-size: 18px; line-height: 1.7; }
.worked-steps { padding: 5px 20px 18px; }
.worked-steps > div { grid-template-columns: 75px 1fr; padding: 11px 0; }
.worked-steps b { font-size: 14px; }
.worked-steps p { font-size: 16px; line-height: 1.85; }
.thinking-question { margin: 0 20px 19px; padding: 14px 16px; font-size: 14px; line-height: 1.8; }
.pitfall-item { padding: 17px 19px; }
.pitfall-item b { font-size: 15px; }
.pitfall-item p { font-size: 14px; line-height: 1.85; }
.practice-layer > header { padding: 13px 17px; }
.practice-layer > header strong { font-size: 16px; }
.practice-layer > header span { font-size: 13px; }
.practice-layer ol { padding: 16px 23px 10px 43px; }
.practice-layer li { padding: 8px 0; font-size: 16px; line-height: 1.8; }
.practice-layer summary { font-size: 14px; }
.practice-layer details div { padding: 14px 16px; font-size: 15px; line-height: 1.9; }
.exit-ticket { padding: 21px 23px; }
.exit-ticket h3 { font-size: 18px; line-height: 1.7; }
.exit-ticket p { font-size: 14px; }
details.answer-box summary { font-size: 14px; }
details.answer-box div { padding: 15px; font-size: 15px; line-height: 1.9; }
.review-schedule div { padding: 14px 10px; }
.review-schedule b { font-size: 15px; }
.review-schedule span { display: block; margin-top: 4px; font-size: 12px; line-height: 1.6; }
.complete-lesson { padding: 15px; font-size: 15px; }

/* Mistake clinic and correction reading sizes */
.mistake-summary strong { font-size: 23px; }
.mistake-summary small { font-size: 12px; }
.mistake-filters button { font-size: 13px; }
.error-type-strip span { font-size: 12px; }
.mistake-status, .mistake-skill { font-size: 12px; }
.mistake-item h3 { font-size: 16px; line-height: 1.7; }
.mistake-item p { font-size: 14px; line-height: 1.8; }
.mistake-actions button { font-size: 12px; }
.correction-hero > span, .correction-hero p { font-size: 13px; }
.correction-hero h1 { font-size: 26px; line-height: 1.5; }
.correction-step h2 { font-size: 18px; }
.original-question strong { font-size: 17px; line-height: 1.7; }
.answer-comparison div { font-size: 14px; line-height: 1.7; }
.diagnosis-options label { font-size: 14px; line-height: 1.5; }
.step-explanation { font-size: 15px; line-height: 2; }
.reflection-input { min-height: 90px; font-size: 15px; line-height: 1.8; }
.similar-question > strong { font-size: 17px; line-height: 1.7; }
.similar-options button { padding: 12px; font-size: 14px; }
.correction-save { padding: 14px; font-size: 15px; }

@media (max-width: 560px) {
  .precheck-body li, .concept-block > p, .worked-steps p, .practice-layer li { font-size: 15px; }
  .lesson-hero h1 { font-size: 25px; }
  .step-heading h2 { font-size: 18px; }
  .pitfall-grid { grid-template-columns: 1fr; }
}

/* Printed-exam math notation */
.printed-math {
  display: inline-block;
  margin: 0 .09em;
  font-family: "STIX Two Math", "Cambria Math", "Times New Roman", serif;
  font-size: 1.08em;
  line-height: 1;
  vertical-align: -0.12em;
}
.printed-math mtext {
  font-family: "STIX Two Math", "Cambria Math", "Times New Roman", serif;
  font-style: italic;
}
.printed-symbol {
  display: inline-block;
  margin: 0 .06em;
  font-family: "STIX Two Math", "Cambria Math", "Times New Roman", serif;
  font-size: 1.05em;
  line-height: 1;
  vertical-align: -0.08em;
}
.printed-symbol mo,
.printed-symbol mi {
  font-family: "STIX Two Math", "Cambria Math", "Times New Roman", serif;
}

/* Every new symbol is introduced with pronunciation before use */
.symbol-guide {
  margin: 0 0 22px;
  overflow: hidden;
  border: 1px solid rgba(92,131,165,.3);
  border-radius: 10px;
  background: #f5f9fb;
}
.symbol-guide-head {
  display: flex;
  align-items: center;
  gap: 14px;
  padding: 15px 18px;
  color: white;
  background: var(--blue);
}
.symbol-guide-head > span {
  display: grid;
  place-items: center;
  flex: 0 0 42px;
  width: 42px;
  height: 42px;
  border-radius: 50%;
  color: var(--blue);
  background: white;
  font-family: Georgia, serif;
  font-size: 15px;
  font-weight: 700;
}
.symbol-guide-head strong { display: block; font-size: 17px; }
.symbol-guide-head p { margin: 3px 0 0; color: #e2edf2; font-size: 13px; line-height: 1.6; }
.symbol-grid { display: grid; grid-template-columns: repeat(2, 1fr); gap: 1px; background: #dce7ec; }
.symbol-card {
  display: grid;
  grid-template-columns: minmax(82px, auto) 1fr;
  align-items: center;
  gap: 15px;
  padding: 17px 18px;
  background: #f9fcfd;
}
.symbol-card code {
  color: var(--navy);
  font-family: "STIX Two Math", "Cambria Math", Georgia, serif;
  font-size: 25px;
  font-weight: 600;
  white-space: nowrap;
}
.symbol-card code sub,
.concept-block sub,
.practice-layer sub { font-size: .68em; vertical-align: -0.35em; }
.symbol-card p { margin: 0; }
.symbol-card b { display: block; color: var(--blue); font-size: 14px; line-height: 1.6; }
.symbol-card span { display: block; margin-top: 3px; color: #53666f; font-size: 13px; line-height: 1.75; }

/* Optional depth after foundations are stable */
.challenge-layer { border-color: rgba(233,120,69,.45); box-shadow: inset 4px 0 0 var(--orange); }
.challenge-layer > header { color: #8d482d; background: var(--orange-soft); }
.challenge-layer > header strong::before { content: "↗ "; color: var(--orange); }
.challenge-layer > header span { color: #a66345; }
.challenge-layer details div { color: #744c3a; background: #fbefe7; }

@media (max-width: 680px) {
  .symbol-grid { grid-template-columns: 1fr; }
  .symbol-card { grid-template-columns: 78px 1fr; }
  .symbol-card code { font-size: 22px; }
  .symbol-guide-head strong { font-size: 15px; }
}

/* Patient teacher-style derivations inside every textbook concept */
.concept-summary {
  margin-bottom: 15px !important;
  padding: 13px 15px;
  border-radius: 7px;
  color: #41535c !important;
  background: #f3f1ea;
}
.concept-summary > b { color: var(--navy); }
.teacher-derivation {
  margin: 12px 0 15px;
  overflow: hidden;
  border: 1px solid #d9e3e7;
  border-left: 3px solid #7f9dab;
  border-radius: 7px;
  background: #fbfdfe;
}
.derivation-head {
  display: flex;
  align-items: center;
  gap: 12px;
  padding: 14px 17px;
  color: white;
  background: #345f73;
}
.derivation-head > span {
  display: grid;
  place-items: center;
  flex: 0 0 42px;
  height: 28px;
  border: 1px solid rgba(255,255,255,.38);
  border-radius: 4px;
  font-size: 12px;
  font-weight: 700;
}
.derivation-head strong { display: block; font-size: 16px; }
.derivation-head p { margin: 3px 0 0; color: #cddce2; font-size: 13px; line-height: 1.6; }
.teacher-derivation ol {
  margin: 0;
  padding: 9px 20px 14px;
  list-style: none;
  counter-reset: none;
}
.teacher-derivation li {
  display: grid;
  grid-template-columns: 34px 1fr;
  gap: 12px;
  align-items: flex-start;
  padding: 13px 2px;
  border-bottom: 1px solid #e3eaed;
}
.teacher-derivation li:last-child { border-bottom: 0; }
.teacher-derivation li > i {
  display: grid;
  place-items: center;
  width: 30px;
  height: 30px;
  border-radius: 50%;
  color: #345f73;
  background: #e4eff4;
  font-family: Georgia, serif;
  font-size: 13px;
  font-style: normal;
  font-weight: 700;
}
.teacher-derivation li > p {
  margin: 1px 0 0;
  color: #334b57;
  font-size: 16px;
  line-height: 2;
}
.teacher-derivation li > p::first-letter { font-weight: 500; }

@media (max-width: 560px) {
  .derivation-head { align-items: flex-start; }
  .derivation-head strong { font-size: 15px; }
  .teacher-derivation ol { padding: 7px 13px 12px; }
  .teacher-derivation li { grid-template-columns: 29px 1fr; gap: 9px; }
  .teacher-derivation li > i { width: 27px; height: 27px; }
  .teacher-derivation li > p { font-size: 15px; line-height: 1.9; }
}

/* Practice answers are separated question by question instead of shown as a result list */
.practice-layer details .practice-solutions {
  display: grid;
  gap: 9px;
  padding: 0;
  background: transparent;
}
.practice-solutions article {
  padding: 13px 15px;
  border-radius: 7px;
  background: var(--green-soft);
}
.practice-solutions article > b {
  display: block;
  margin-bottom: 5px;
  color: var(--green);
  font-size: 14px;
}
.practice-solutions article > p {
  margin: 0;
  color: #405b49;
  font-size: 15px;
  line-height: 1.85;
}
.practice-layer .practice-solutions ol {
  margin: 5px 0 0;
  padding: 0;
  list-style: none;
}
.practice-layer .practice-solutions li {
  display: grid;
  grid-template-columns: 24px 1fr;
  gap: 8px;
  padding: 5px 0;
  font-size: 14px;
}
.practice-solutions li i {
  display: grid;
  place-items: center;
  width: 21px;
  height: 21px;
  border-radius: 50%;
  color: white;
  background: var(--green);
  font-size: 10px;
  font-style: normal;
}
.challenge-layer .practice-solutions article { background: #fbefe7; }
.challenge-layer .practice-solutions article > b { color: var(--orange); }
.challenge-layer .practice-solutions li i { background: var(--orange); }

.one-time-derivation-note {
  margin: 0 0 12px 1px;
  color: #78858a;
  font-size: 13px;
  line-height: 1.6;
}
.quick-example-intro {
  display: flex;
  align-items: baseline;
  gap: 10px;
  margin: 3px 0 10px;
}
.quick-example-intro b { color: var(--navy); font-size: 15px; }
.quick-example-intro span { color: var(--muted); font-size: 12px; }
.quick-example-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 9px;
  margin-bottom: 20px;
}
.quick-example {
  overflow: hidden;
  border: 1px solid #d9e2e5;
  border-radius: 8px;
  background: #fbfdfe;
}
.quick-example > div { padding: 12px 14px 9px; }
.quick-example > div > span {
  display: block;
  margin-bottom: 4px;
  color: var(--blue);
  font-size: 11px;
  font-weight: 700;
}
.quick-example > div > strong { display: block; font-size: 15px; line-height: 1.7; }
.quick-example > p {
  margin: 0;
  padding: 10px 14px;
  border-top: 1px solid #e3eaed;
  color: #405b49;
  background: var(--green-soft);
  font-size: 14px;
  line-height: 1.75;
}
.full-example-divider {
  display: flex;
  align-items: center;
  gap: 10px;
  margin: 21px 0 10px;
  color: var(--orange);
  font-size: 13px;
  font-weight: 700;
}
.full-example-divider::before,
.full-example-divider::after { content: ""; height: 1px; flex: 1; background: #e2ddd2; }
@media (max-width: 600px) {
  .quick-example-grid { grid-template-columns: 1fr; }
  .quick-example-intro { align-items: flex-start; flex-direction: column; gap: 2px; }
}

/* Official textbook alignment shown before each formal textbook lesson */
.textbook-match {
  margin: 0 0 22px;
  overflow: hidden;
  border: 1px solid #cfdccc;
  border-radius: 10px;
  background: #fbfdf9;
}
.textbook-match-head {
  display: grid;
  grid-template-columns: auto 1fr auto;
  align-items: center;
  gap: 13px;
  padding: 14px 17px;
  border-bottom: 1px solid #dbe5d8;
  background: #edf4eb;
}
.textbook-match-head > span {
  padding: 6px 9px;
  border-radius: 5px;
  color: white;
  background: var(--green);
  font-size: 12px;
  font-weight: 700;
}
.textbook-match-head strong { display: block; color: #355743; font-size: 17px; }
.textbook-match-head p { margin: 3px 0 0; color: #6b7f71; font-size: 12px; line-height: 1.6; }
.textbook-match-head a { color: var(--green); font-size: 12px; text-decoration: none; white-space: nowrap; }
.textbook-match-head a:hover { text-decoration: underline; }
.textbook-thread {
  display: grid;
  grid-template-columns: 1fr auto 1fr auto 1fr;
  align-items: center;
  gap: 13px;
  padding: 17px 19px;
}
.textbook-thread > i { color: #a9baa8; font-style: normal; }
.textbook-thread b { display: block; margin-bottom: 5px; color: var(--green); font-size: 13px; }
.textbook-thread p { margin: 0; color: #4e6055; font-size: 13px; line-height: 1.75; }

@media (max-width: 700px) {
  .textbook-match-head { grid-template-columns: auto 1fr; }
  .textbook-match-head a { grid-column: 2; }
  .textbook-thread { grid-template-columns: 1fr; }
  .textbook-thread > i { display: none; }
  .textbook-thread > div { padding-bottom: 11px; border-bottom: 1px dashed #d7dfd4; }
  .textbook-thread > div:last-child { border-bottom: 0; padding-bottom: 0; }
}

/* Semester formula and definition review chapter */
.sr-only {
  position: absolute;
  width: 1px;
  height: 1px;
  padding: 0;
  margin: -1px;
  overflow: hidden;
  clip: rect(0, 0, 0, 0);
  white-space: nowrap;
  border: 0;
}
.formula-review-entry {
  display: grid;
  grid-template-columns: 1fr auto;
  align-items: center;
  gap: 24px;
  margin: 0 0 18px;
  padding: 20px 23px;
  border: 1px solid #d7cfae;
  border-radius: 11px;
  background: linear-gradient(135deg, #fffaf0, #f4ede0);
}
.formula-review-entry > div > span { color: #a27a2d; font-size: 10px; font-weight: 800; letter-spacing: .08em; }
.formula-review-entry h2 { margin: 5px 0 4px; font-family: Georgia, "Noto Serif SC", serif; font-size: 20px; }
.formula-review-entry p { margin: 0; color: #706b5d; font-size: 12px; line-height: 1.7; }
.formula-review-entry button,
.formula-print {
  border: 0;
  border-radius: 7px;
  padding: 10px 16px;
  color: white;
  background: var(--navy);
  font-size: 12px;
  font-weight: 700;
  cursor: pointer;
  white-space: nowrap;
}
.formula-page-intro { display: flex; align-items: flex-end; justify-content: space-between; gap: 25px; }
.formula-page-intro > div { max-width: 820px; }
.formula-page-intro > div > p:last-child { color: var(--muted); font-size: 14px; line-height: 1.8; }
.formula-print { background: var(--orange); }
.formula-use-guide {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 10px;
  margin-bottom: 25px;
}
.formula-use-guide > div { display: flex; align-items: flex-start; gap: 11px; padding: 15px 16px; border: 1px solid #dce3e4; border-radius: 9px; background: #f8fbfc; }
.formula-use-guide > div > span { display: grid; place-items: center; flex: 0 0 28px; width: 28px; height: 28px; border-radius: 50%; color: white; background: var(--blue); font-family: Georgia, serif; font-weight: 700; }
.formula-use-guide p { margin: 0; color: #55666d; font-size: 12px; line-height: 1.7; }
.formula-use-guide strong { display: block; margin-bottom: 2px; color: var(--ink); font-size: 13px; }
.essential-formulas { margin-bottom:28px; padding:23px; border:1px solid #aebfaf; border-radius:12px; color:#243d35; background:#cbd9ca; box-shadow:0 12px 32px rgba(57,82,64,.08); }
.formula-section-heading { display: flex; align-items: flex-end; justify-content: space-between; gap: 20px; margin-bottom: 16px; }
.formula-section-heading > div > span { color:#9a5c43; font-size:10px; font-weight:800; letter-spacing:.12em; }
.formula-section-heading h2 { margin: 4px 0 0; font-family: Georgia, "Noto Serif SC", serif; font-size: 22px; }
.formula-section-heading > p { max-width:520px; margin:0; color:#52695d; font-size:11px; line-height:1.7; text-align:right; }
.essential-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 9px; }
.essential-grid article { min-width:0; padding:13px 14px; border:1px solid #b4c5b5; border-radius:8px; background:#dce6da; }
.essential-grid article > span { color:#9a5c43; font-size:9px; font-weight:700; }
.essential-grid h3 { margin: 3px 0 7px; font-size: 13px; }
.essential-grid strong { display:block; overflow-wrap:anywhere; color:#203b32; font-family:"Times New Roman","Noto Serif SC",serif; font-size:16px; line-height:1.65; font-weight:600; }
.essential-grid p { margin:6px 0 0; color:#52695d; font-size:10px; line-height:1.65; }
.formula-browser { position: relative; }
.formula-toolbar {
  position: sticky;
  top: 80px;
  z-index: 12;
  display: grid;
  grid-template-columns: minmax(240px, 1fr) auto auto;
  align-items: center;
  gap: 10px;
  padding: 12px;
  border: 1px solid var(--line);
  border-radius: 10px;
  background: rgba(244,241,233,.96);
  backdrop-filter: blur(10px);
}
.formula-search-wrap { display: grid; grid-template-columns: 24px 1fr; align-items: center; padding: 0 10px; border: 1px solid #d5d8d5; border-radius: 7px; background: white; }
.formula-search-wrap > span { color: var(--blue); font-size: 19px; }
.formula-search-wrap input { width: 100%; height: 39px; border: 0; outline: 0; color: var(--ink); background: transparent; font-size: 13px; }
.formula-toolbar > button { height: 41px; padding: 0 14px; border: 1px solid #cbd2d2; border-radius: 7px; color: #58686e; background: white; font-size: 11px; cursor: pointer; }
.formula-toolbar > button.active { border-color: var(--orange); color: white; background: var(--orange); }
.formula-toolbar > span { color: var(--muted); font-size: 10px; white-space: nowrap; }
.formula-tabs { display: flex; gap: 5px; margin: 13px 0 22px; padding-bottom: 4px; overflow-x: auto; }
.formula-tabs button { flex: 1 0 125px; min-height: 47px; padding: 7px 10px; border: 1px solid var(--line); border-radius: 8px; color: #68757a; background: rgba(255,255,255,.55); font-size: 10px; line-height: 1.35; cursor: pointer; }
.formula-tabs button b { display: block; margin-bottom: 2px; color: #9aa4a6; font-family: Georgia, serif; font-size: 9px; }
.formula-tabs button.active { border-color: var(--navy); color: white; background: var(--navy); }
.formula-tabs button.active b { color: #f0aa84; }
.formula-review-content { display: grid; gap: 28px; }
.formula-chapter { scroll-margin-top: 150px; }
.formula-chapter-head { display: grid; grid-template-columns: 42px 1fr auto; align-items: center; gap: 13px; margin-bottom: 12px; }
.formula-chapter-head > span { display: grid; place-items: center; width: 40px; height: 40px; border-radius: 9px; color: white; background: var(--orange); font-family: Georgia, serif; font-size: 15px; font-weight: 700; }
.formula-chapter-head h2 { margin: 0; font-family: Georgia, "Noto Serif SC", serif; font-size: 21px; }
.formula-chapter-head p { margin: 3px 0 0; color: var(--muted); font-size: 11px; line-height: 1.6; }
.formula-chapter-head > b { padding: 5px 9px; border-radius: 20px; color: var(--blue); background: var(--blue-soft); font-size: 9px; }
.formula-card-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 13px; align-items: start; }
.formula-card { min-width: 0; overflow: hidden; border: 1px solid #dcdad2; border-radius: 11px; background: var(--card); box-shadow: 0 7px 22px rgba(26,46,57,.035); break-inside: avoid; }
.formula-card.wide { grid-column: 1 / -1; }
.formula-card > header { display: flex; align-items: center; gap: 10px; padding: 14px 16px 10px; }
.formula-card > header h3 { margin: 0; font-size: 17px; }
.formula-frequency { flex: 0 0 auto; padding: 4px 7px; border-radius: 20px; font-size: 9px; font-weight: 700; }
.formula-frequency.must { color: #b85e35; background: var(--orange-soft); }
.formula-frequency.common { color: #53738b; background: var(--blue-soft); }
.formula-summary { margin: 0; padding: 0 16px 12px; color: #5b696e; font-size: 13px; line-height: 1.8; }
.formula-lines { display: grid; gap: 1px; margin: 0 13px 13px; overflow: hidden; border: 1px solid #dce5e7; border-radius: 8px; background: #dce5e7; }
.formula-lines > div { display: grid; grid-template-columns: minmax(0, 1.25fr) minmax(100px, .75fr); align-items: center; gap: 12px; min-height: 53px; padding: 10px 12px; background: #f8fbfc; }
.formula-lines strong { min-width: 0; overflow-wrap: anywhere; color: #173f51; font-family: "Times New Roman", "Noto Serif SC", serif; font-size: 18px; line-height: 1.65; font-weight: 600; }
.formula-lines span { color: #718087; font-size: 11px; line-height: 1.6; }
.formula-notes { display: grid; gap: 0; margin: 0; border-top: 1px solid #ece9e1; }
.formula-notes > div { display: grid; grid-template-columns: 72px 1fr; gap: 10px; padding: 10px 15px; border-bottom: 1px solid #efede7; }
.formula-notes > div:last-child { border-bottom: 0; }
.formula-notes dt { color: #788489; font-size: 10px; font-weight: 700; }
.formula-notes dd { margin: 0; color: #485b63; font-size: 12px; line-height: 1.75; }
.formula-notes .condition { background: #f1f6f7; }
.formula-notes .condition dt { color: var(--blue); }
.formula-notes .warning { background: #fbf6e8; }
.formula-notes .warning dt { color: #a77a25; }
.formula-notes .warning dd { color: #6c6047; }
.formula-notes .example { background: var(--green-soft); }
.formula-notes .example dt { color: var(--green); }
.formula-table-wrap { margin: 0 13px 13px; overflow-x: auto; border: 1px solid #dce5e7; border-radius: 8px; }
.formula-table { width: 100%; min-width: 650px; border-collapse: collapse; background: white; }
.formula-table th, .formula-table td { padding: 11px 12px; border-right: 1px solid #e0e7e8; border-bottom: 1px solid #e0e7e8; text-align: center; font-size: 13px; line-height: 1.6; }
.formula-table thead th { color: #355b6b; background: #edf4f6; font-size: 11px; }
.formula-table tbody th { color: var(--orange); background: #fbf5f0; white-space: nowrap; }
.formula-table tr:last-child > * { border-bottom: 0; }
.formula-table tr > *:last-child { border-right: 0; }
.formula-empty { padding: 65px 20px; border: 1px dashed #c7c6be; border-radius: 11px; text-align: center; color: var(--muted); }
.formula-empty > span { color: var(--blue); font-size: 35px; }
.formula-empty h3 { margin: 10px 0 5px; color: var(--ink); font-size: 16px; }
.formula-empty p { margin: 0; font-size: 12px; }

@media (max-width: 980px) {
  .essential-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .formula-toolbar { top: 80px; grid-template-columns: 1fr auto; }
  .formula-toolbar > span { grid-column: 1 / -1; }
}
@media (max-width: 720px) {
  .formula-review-entry, .formula-page-intro { grid-template-columns: 1fr; align-items: flex-start; }
  .formula-review-entry { display: grid; }
  .formula-page-intro { display: flex; flex-direction: column; }
  .formula-use-guide { grid-template-columns: 1fr; }
  .formula-section-heading { align-items: flex-start; flex-direction: column; }
  .formula-section-heading > p { text-align: left; }
  .formula-card-grid { grid-template-columns: 1fr; }
  .formula-card.wide { grid-column: auto; }
  .formula-toolbar { top: 67px; }
}
@media (max-width: 520px) {
  .essential-formulas { padding: 18px 15px; }
  .essential-grid { grid-template-columns: 1fr; }
  .formula-toolbar { grid-template-columns: 1fr; }
  .formula-toolbar > span { grid-column: auto; }
  .formula-toolbar > button { width: 100%; }
  .formula-tabs button { flex-basis: 105px; }
  .formula-chapter-head { grid-template-columns: 38px 1fr; }
  .formula-chapter-head > b { grid-column: 2; justify-self: start; }
  .formula-lines > div { grid-template-columns: 1fr; gap: 3px; }
  .formula-lines strong { font-size: 17px; }
  .formula-notes > div { grid-template-columns: 1fr; gap: 3px; }
  .formula-review-entry button, .formula-print { width: 100%; }
}

/* Five-subject platform shell */
.sidebar { overflow-y: auto; scrollbar-width: thin; scrollbar-color: rgba(255,255,255,.16) transparent; }
.platform-brand { padding-bottom: 18px; }
.global-nav { padding-bottom: 10px; border-bottom: 1px solid rgba(255,255,255,.1); }
.sidebar-section-title { display:flex; align-items:center; justify-content:space-between; margin:14px 8px 9px; }
.sidebar-section-title > span { color:#f3f7f7; font-size:12px; font-weight:700; letter-spacing:.08em; }
.sidebar-section-title > small { color:#d8e4e6; font-size:10px; }
.subject-switch-list { display:grid; gap:5px; }
.subject-switch {
  display: grid;
  grid-template-columns: 36px 1fr 20px;
  align-items: center;
  gap: 10px;
  width: 100%;
  min-height: 50px;
  padding: 7px 10px;
  border: 1px solid transparent;
  border-radius: 8px;
  color: #edf3f4;
  background: transparent;
  text-align: left;
  cursor: pointer;
}
.subject-switch:hover { color: white; background: rgba(255,255,255,.09); }
.subject-switch.active { color: white; border-color: rgba(255,255,255,.28); background: rgba(255,255,255,.14); }
.subject-switch .subject-mark { display:grid; place-items:center; width:34px; height:34px; border-radius:9px; color:white; font-size:13px; font-weight:800; }
.subject-mark.orange { background: #d8794d; }
.subject-mark.blue { background: #5c83a5; }
.subject-mark.green { background: #6c8d77; }
.subject-mark.purple { background: #8173a4; }
.subject-mark.red { background: #a86d69; }
.subject-switch p { min-width: 0; margin: 0; }
.subject-switch b { display:block; font-size:14px; }
.subject-switch small { display:block; margin-top:2px; overflow:hidden; color:#d9e5e7; font-size:10px; line-height:1.35; text-overflow:ellipsis; white-space:nowrap; }
.subject-switch.active small { color: #eef4f5; }
.subject-switch > i { color: #668d73; font-style: normal; text-align: center; }
.subject-switch.reserved > i { color: #c9d7da; }
.subject-context-title { margin-top: 14px; padding-top: 12px; border-top: 1px solid rgba(255,255,255,.1); }
.subject-nav { gap: 3px; }
.subject-nav .nav-item { height: 39px; }
.subject-nav .nav-item small { margin-left: auto; color: #d3e0e3; font-size: 7px; }
.nav-item:disabled { cursor: default; }
.subject-nav .future-nav { opacity: .48; }
.sidebar .teacher-rule { margin-top: 17px; }
.sidebar .edition-note { margin-top: 14px; padding-bottom: 5px; }
.student-chip b { font-size: 11px; }

.platform-hero {
  display: grid;
  grid-template-columns: 1fr 210px;
  align-items: end;
  gap: 35px;
  margin-bottom: 31px;
  padding: 31px 34px;
  border-radius: 14px;
  color: white;
  background: linear-gradient(135deg, #163342, #234b5b);
  box-shadow: var(--shadow);
}
.platform-hero h1 { margin: 7px 0 10px; font-family: Georgia, "Noto Serif SC", serif; font-size: clamp(29px, 3.2vw, 44px); line-height: 1.25; }
.platform-hero > div:first-child > p:last-child { max-width: 780px; margin: 0; color: #bdd0d5; font-size: 13px; line-height: 1.8; }
.build-status-card { padding: 18px 19px; border: 1px solid rgba(255,255,255,.12); border-radius: 10px; background: rgba(255,255,255,.06); }
.build-status-card > span { color: #9db3ba; font-size: 9px; letter-spacing: .1em; }
.build-status-card strong { display: block; margin: 4px 0; color: #f2a178; font-family: Georgia, serif; font-size: 34px; }
.build-status-card strong i { color: #b9c9cd; font-size: 16px; font-style: normal; }
.build-status-card p { margin: 0; color: #bdcbd0; font-size: 9px; line-height: 1.6; }
.subject-overview-section { margin-bottom: 31px; }
.subject-overview-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 14px; margin-top: 14px; }
.subject-overview-card { --subject-accent: var(--orange); min-width: 0; padding: 19px; border: 1px solid #dddcd5; border-top: 4px solid var(--subject-accent); border-radius: 11px; background: var(--card); box-shadow: 0 8px 24px rgba(26,46,57,.04); }
.subject-overview-card.blue { --subject-accent: #5c83a5; }
.subject-overview-card.green { --subject-accent: #6c8d77; }
.subject-overview-card.purple { --subject-accent: #8173a4; }
.subject-overview-card.red { --subject-accent: #a86d69; }
.subject-overview-card > header { display: grid; grid-template-columns: 42px 1fr auto; align-items: center; gap: 10px; }
.subject-large-mark { display: grid; place-items: center; width: 40px; height: 40px; border-radius: 10px; color: white; background: var(--subject-accent); font-size: 15px; font-weight: 800; }
.subject-overview-card header small { color: var(--subject-accent); font-size: 8px; font-weight: 700; }
.subject-overview-card h3 { margin: 2px 0 0; font-size: 17px; }
.subject-overview-card header > i { color: #9ba5a7; font-size: 7px; font-style: normal; letter-spacing: .08em; }
.subject-overview-card > p { min-height: 70px; margin: 15px 0 12px; color: #607077; font-size: 11px; line-height: 1.8; }
.subject-card-metrics { display: flex; flex-wrap: wrap; gap: 6px; }
.subject-card-metrics span { padding: 5px 7px; border-radius: 5px; color: #69777b; background: #f0f2f0; font-size: 8px; }
.subject-card-metrics b { color: var(--subject-accent); font-size: 11px; }
.subject-personal-progress, .subject-reserved-note { margin-top: 11px; padding: 9px 10px; border-radius: 7px; font-size: 9px; }
.subject-personal-progress { display: flex; justify-content: space-between; color: #496252; background: var(--green-soft); }
.subject-reserved-note { color: #7a7569; background: #f5f1e8; line-height: 1.6; }
.subject-overview-card > button { width: 100%; margin-top: 12px; padding: 9px; border: 0; border-radius: 6px; color: white; background: var(--subject-accent); font-size: 10px; font-weight: 700; cursor: pointer; }
.platform-architecture { margin-top: 10px; }
.shared-flow { display: grid; grid-template-columns: repeat(6, minmax(0,1fr)); gap: 8px; margin-top: 14px; }
.shared-flow article { display: flex; gap: 8px; min-width: 0; padding: 13px 11px; border: 1px solid #dcded9; border-radius: 8px; background: rgba(255,255,255,.55); }
.shared-flow article > span { display: grid; place-items: center; flex: 0 0 23px; width: 23px; height: 23px; border-radius: 50%; color: white; background: var(--navy); font-family: Georgia, serif; font-size: 9px; }
.shared-flow strong { font-size: 10px; }
.shared-flow p { margin: 3px 0 0; color: var(--muted); font-size: 8px; line-height: 1.5; }
.architecture-note { display: flex; gap: 14px; align-items: flex-start; margin-top: 13px; padding: 15px 17px; border-left: 3px solid var(--orange); background: rgba(255,255,255,.52); }
.architecture-note > span { flex: 0 0 auto; color: var(--orange); font-size: 9px; font-weight: 800; }
.architecture-note p { margin: 0; color: #647177; font-size: 11px; line-height: 1.75; }
.architecture-note strong { color: var(--ink); }

.subject-hub-hero { --subject-accent: var(--orange); display: grid; grid-template-columns: 1fr 260px; gap: 30px; align-items: end; padding: 31px 34px; border-radius: 14px; color: white; background: linear-gradient(135deg, #163342, #254d5e); }
.subject-hub-hero.blue { --subject-accent: #6f9bbc; }
.subject-hub-hero.green { --subject-accent: #83a58d; }
.subject-hub-hero.purple { --subject-accent: #9b8dbd; }
.subject-hub-hero.red { --subject-accent: #bd807a; }
.subject-hub-hero > div > span { color: var(--subject-accent); font-size: 9px; font-weight: 800; letter-spacing: .13em; }
.subject-hub-hero h1 { display: flex; align-items: center; gap: 12px; margin: 8px 0; font-family: Georgia, "Noto Serif SC", serif; font-size: 35px; }
.subject-hub-hero h1 i { display: grid; place-items: center; width: 48px; height: 48px; border-radius: 12px; color: white; background: var(--subject-accent); font-family: "Noto Sans SC", sans-serif; font-size: 17px; font-style: normal; }
.subject-hub-hero > div > p { max-width: 780px; margin: 0; color: #bdd0d5; font-size: 12px; line-height: 1.8; }
.subject-hub-hero aside { padding: 17px; border: 1px solid rgba(255,255,255,.12); border-radius: 9px; background: rgba(255,255,255,.06); }
.subject-hub-hero aside small { color: #9bb0b7; font-size: 8px; }
.subject-hub-hero aside strong { display: block; margin: 4px 0; color: var(--subject-accent); font-size: 16px; }
.subject-hub-hero aside p { margin: 0; color: #b9c8cc; font-size: 9px; line-height: 1.6; }
.subject-honesty-note { display: flex; gap: 12px; align-items: flex-start; margin: 15px 0 28px; padding: 14px 17px; border-radius: 9px; }
.subject-honesty-note.reserved { color: #755f37; background: #faf1d9; }
.subject-honesty-note.ready { color: #476452; background: var(--green-soft); }
.subject-honesty-note > span { display: grid; place-items: center; flex: 0 0 25px; width: 25px; height: 25px; border-radius: 50%; color: white; background: #829298; font-size: 10px; }
.subject-honesty-note.reserved > span { background: #a77a25; }
.subject-honesty-note.ready > span { background: var(--green); }
.subject-honesty-note p { margin: 0; font-size: 11px; line-height: 1.7; }
.subject-honesty-note strong { display: block; color: var(--ink); }
.subject-blueprint-section, .subject-slot-section { margin-top: 26px; }
.subject-blueprint-grid { display: grid; grid-template-columns: repeat(5, minmax(0,1fr)); gap: 9px; margin-top: 13px; }
.subject-blueprint-grid article { min-height: 132px; padding: 15px; border: 1px solid #deddd6; border-radius: 9px; background: var(--card); }
.subject-blueprint-grid article > span { color: var(--orange); font-family: Georgia, serif; font-size: 10px; }
.subject-blueprint-grid h3 { margin: 10px 0 5px; font-size: 13px; }
.subject-blueprint-grid p { margin: 0; color: var(--muted); font-size: 10px; line-height: 1.7; }
.subject-slot-grid { display: grid; grid-template-columns: repeat(6, minmax(0,1fr)); gap: 8px; margin-top: 13px; }
.subject-slot-grid article { display: grid; justify-items: center; gap: 5px; padding: 13px 8px; border: 1px dashed #c9c8c0; border-radius: 8px; background: rgba(255,255,255,.45); text-align: center; }
.subject-slot-grid b { display: grid; place-items: center; width: 24px; height: 24px; border-radius: 50%; color: white; background: #92a0a4; font-size: 9px; }
.subject-slot-grid span { font-size: 10px; font-weight: 700; }
.subject-slot-grid small { color: var(--muted); font-size: 8px; }
.subject-slot-grid article.available { border-style: solid; border-color: #cadbcf; background: var(--green-soft); }
.subject-slot-grid article.available b { background: var(--green); }
.subject-hub-actions { display: flex; justify-content: flex-end; gap: 9px; margin-top: 25px; }
.subject-hub-actions button { padding: 10px 16px; border: 0; border-radius: 7px; color: white; background: var(--navy); font-size: 11px; font-weight: 700; cursor: pointer; }
.subject-hub-actions button.secondary { color: var(--navy); background: white; border: 1px solid var(--navy); }

@media (max-width: 1120px) {
  .subject-overview-grid { grid-template-columns: repeat(2, minmax(0,1fr)); }
  .shared-flow, .subject-slot-grid { grid-template-columns: repeat(3, minmax(0,1fr)); }
  .subject-blueprint-grid { grid-template-columns: repeat(3, minmax(0,1fr)); }
}
@media (max-width: 780px) {
  .platform-hero, .subject-hub-hero { grid-template-columns: 1fr; }
  .build-status-card { max-width: 260px; }
}
@media (max-width: 600px) {
  .subject-overview-grid, .subject-blueprint-grid { grid-template-columns: 1fr; }
  .shared-flow, .subject-slot-grid { grid-template-columns: repeat(2, minmax(0,1fr)); }
  .platform-hero, .subject-hub-hero { padding: 25px 20px; }
  .platform-hero h1, .subject-hub-hero h1 { font-size: 28px; }
  .subject-hub-hero h1 i { width: 41px; height: 41px; }
  .subject-overview-card > p { min-height: 0; }
  .subject-hub-actions { align-items: stretch; flex-direction: column; }
}

/* Soft sage navigation palette · low saturation, never fluorescent */
.sidebar { color:var(--navigation-ink); background:var(--sidebar-bg); box-shadow:inset -1px 0 0 #a5b7a6; scrollbar-color:#91a694 transparent; backdrop-filter:blur(12px) saturate(.9); -webkit-backdrop-filter:blur(12px) saturate(.9); }
.brand strong { color:#243d35; }.brand small { color:#526b5e; }.brand-mark { color:#243d35; background:#f5f1e7; box-shadow:0 0 0 1px #a7b7a8; }
.global-nav,.subject-context-title { border-color:#a4b7a6; }
.nav-item { color:#38564a; background:transparent; }.nav-item:hover { color:#20372f; background:#c6d4c6; }.nav-item.active { color:#1f352e; background:var(--navigation-active); }
.sidebar-card { color:#243d35; border-color:#9fb4a2; background:rgba(238,243,237,.66); }.sidebar-card p { color:#486255; }
.edition-note span { color:#587064; }.edition-note strong { color:#304b40; }
.sidebar-section-title > span { color:#243d35; }.sidebar-section-title > small { color:#5c7367; }
.subject-switch { color:#345247; background:transparent; }.subject-switch:hover { color:#20372f; background:#c6d4c6; }.subject-switch.active { color:#1f352e; border-color:#8fa793; background:var(--navigation-active); }
.subject-switch small,.subject-switch.active small { color:#526a5e; }.subject-switch > i { color:#4c7558; }.subject-switch.reserved > i { color:#6f8578; }
.subject-nav .nav-item small { color:#597165; }
.sidebar .teacher-rule { border-color:#9fb4a2; background:rgba(238,243,237,.68); }

.practice-side,.physics-practice-nav { color:var(--navigation-ink); border:1px solid #a9bcaa; background:var(--navigation-panel-bg); box-shadow:0 10px 28px rgba(59,86,70,.08); backdrop-filter:blur(8px) saturate(.92); -webkit-backdrop-filter:blur(8px) saturate(.92); }
.practice-side h3,.physics-practice-nav > h3 { color:#243d35; }
.practice-filter,.physics-practice-nav > button { color:#345247; background:transparent; }
.practice-filter:hover,.physics-practice-nav > button:hover { color:#20372f; background:#c6d4c6; }
.practice-filter > span,.physics-practice-nav > button > span { color:#365548; background:#c3d2c3; }
.practice-filter small,.physics-practice-nav button small { color:#526a5e; }
.practice-filter.active,.physics-practice-nav > button.active { color:#20372f; border-color:#8fa793; background:var(--navigation-active); }
.practice-filter.active > span,.physics-practice-nav > button.active > span { color:white; background:#6f9279; }
.physics-practice-nav button em { color:#3c594d; background:#c3d2c3; }.physics-practice-nav button em.warning { color:white; background:#c76550; }
.practice-rule,.physics-practice-discipline { border-color:#a8baa9; }.practice-rule p,.physics-practice-discipline p { color:#4f685b; }.practice-rule strong,.physics-practice-discipline b { color:#243d35; }

/* Physics learning system · diagrams, experiments and layered modelling */
body[data-active-subject="physics"] .nav-item.active { box-shadow: inset 3px 0 0 var(--blue); }
body[data-active-subject="physics"] .student-chip > span { color: var(--blue); background: var(--blue-soft); }
body[data-active-subject="physics"] .teacher-rule { border-color:#9fb4a2; }
.physics-view { --phy: #5c83a5; --phy-dark: #315a6d; --phy-pale: #eaf2f6; --phy-warm: #d8794d; }
.physics-view .eyebrow, .physics-page-intro .eyebrow { color: var(--blue) !important; }
.physics-view button { font-family: inherit; }

.physics-hero {
  display: grid;
  grid-template-columns: minmax(0,1.55fr) minmax(280px,.6fr);
  gap: 35px;
  align-items: center;
  position: relative;
  overflow: hidden;
  min-height: 330px;
  padding: 42px 46px;
  border-radius: 18px;
  color: white;
  background: radial-gradient(circle at 80% 20%, rgba(111,155,188,.23), transparent 30%), linear-gradient(135deg,#102d3b,#204d61 65%,#315e70);
  box-shadow: 0 20px 55px rgba(31,62,76,.14);
}
.physics-hero::after { content:""; position:absolute; right:-100px; bottom:-150px; width:380px; height:380px; border:1px solid rgba(255,255,255,.08); border-radius:50%; box-shadow:0 0 0 38px rgba(255,255,255,.025),0 0 0 78px rgba(255,255,255,.018); }
.physics-hero-copy { position:relative; z-index:1; }
.physics-hero h1 { max-width:780px; margin:8px 0 15px; font-family:Georgia,"Noto Serif SC",serif; font-size:clamp(34px,4vw,55px); line-height:1.2; letter-spacing:-.04em; }
.physics-hero h1 span { color:#9cc1d5; border-bottom:4px solid rgba(156,193,213,.25); }
.physics-hero-copy > p:not(.eyebrow) { max-width:760px; margin:0; color:#c5d7dd; font-size:15px; line-height:1.95; }
.physics-hero-actions { display:flex; flex-wrap:wrap; gap:10px; margin-top:25px; }
.physics-hero-actions button { padding:12px 18px; border:1px solid transparent; border-radius:8px; color:#163342; background:#f3f7f7; font-size:13px; font-weight:700; cursor:pointer; }
.physics-hero-actions button.secondary { color:#d6e4e8; border-color:rgba(255,255,255,.22); background:transparent; }
.physics-compass { position:relative; z-index:1; }
.orbit { display:grid; place-items:center; position:relative; width:165px; height:165px; margin:0 auto 22px; border:1px solid rgba(255,255,255,.18); border-radius:50%; box-shadow:inset 0 0 40px rgba(255,255,255,.035); }
.orbit::before,.orbit::after { content:""; position:absolute; border:1px solid rgba(255,255,255,.12); border-radius:50%; }
.orbit::before { width:116px; height:116px; }
.orbit::after { width:70px; height:70px; background:rgba(255,255,255,.04); }
.orbit > span { position:relative; z-index:2; display:grid; place-items:center; width:53px; height:53px; border-radius:50%; color:white; background:#6f9bbc; font-size:20px; font-weight:800; box-shadow:0 0 28px rgba(111,155,188,.55); }
.orbit i { position:absolute; width:10px; height:10px; border-radius:50%; background:#e7ad85; }
.orbit i:nth-of-type(1){left:22px;top:35px}.orbit i:nth-of-type(2){right:17px;top:79px;background:#8fb49b}.orbit i:nth-of-type(3){left:68px;bottom:4px;background:#d8c678}
.physics-compass dl { display:grid; grid-template-columns:repeat(3,1fr); gap:7px; margin:0; }
.physics-compass dl div { padding:10px 6px; border:1px solid rgba(255,255,255,.1); border-radius:8px; background:rgba(255,255,255,.045); text-align:center; }
.physics-compass dt { color:#a9ccdc; font-family:Georgia,serif; font-size:24px; font-weight:700; }
.physics-compass dd { margin:2px 0 0; color:#9fb5bd; font-size:10px; }
.physics-rule-strip { display:grid; grid-template-columns:1fr auto 1fr auto 1fr auto 1fr; gap:13px; align-items:center; margin:18px 0 24px; padding:17px 20px; border:1px solid #d8e2e5; border-radius:11px; background:rgba(255,255,255,.58); }
.physics-rule-strip > div { display:flex; gap:10px; align-items:center; }
.physics-rule-strip > div > span { display:grid; place-items:center; flex:0 0 29px; width:29px; height:29px; border-radius:50%; color:white; background:var(--phy-dark); font-family:Georgia,serif; font-size:10px; }
.physics-rule-strip p { margin:0; color:#68787f; font-size:11px; line-height:1.55; }
.physics-rule-strip p b { display:block; color:var(--ink); font-size:13px; }
.physics-rule-strip > i { color:#bdc5c6; font-style:normal; }
.physics-dashboard-grid { display:grid; grid-template-columns:minmax(0,1.55fr) minmax(290px,.65fr); gap:18px; }
.physics-panel { border:1px solid rgba(35,64,78,.09); border-radius:13px; background:var(--card); box-shadow:var(--shadow); }
.physics-today { padding:25px 27px; }
.physics-today > header,.physics-progress-card > header,.physics-experiment-library > header,.physics-foundation-depth > header { display:flex; align-items:center; justify-content:space-between; gap:15px; }
.physics-today > header > div,.physics-foundation-depth > header > div,.physics-experiment-library > header > div { display:flex; align-items:center; gap:10px; }
.physics-today h2,.physics-progress-card h2,.physics-foundation-depth h2,.physics-experiment-library h2 { margin:0; font-size:18px; }
.physics-today > header small,.physics-experiment-library > header small { color:var(--muted); font-size:11px; }
.physics-today-list { display:grid; gap:2px; margin-top:15px; }
.physics-today-list article { display:grid; grid-template-columns:42px 1fr auto; gap:13px; align-items:center; padding:16px 6px; border-bottom:1px solid #ecebe5; cursor:pointer; transition:.2s; }
.physics-today-list article:hover { padding-left:12px; background:#f8faf9; }
.phy-task-no { display:grid; place-items:center; width:38px; height:38px; border-radius:10px; color:var(--blue); background:var(--blue-soft); font-family:Georgia,serif; font-weight:700; }
.physics-today-list small { color:var(--blue); font-size:10px; font-weight:700; letter-spacing:.07em; }
.physics-today-list h3 { margin:3px 0; font-size:15px; }
.physics-today-list p { margin:0; color:var(--muted); font-size:12px; line-height:1.6; }
.physics-today-list article > b { color:#7d898c; font-size:11px; }
.physics-gentle-note { display:flex; gap:12px; align-items:flex-start; margin-top:17px; padding:14px 16px; border-radius:8px; background:#f6f2e8; }
.physics-gentle-note > span { flex:0 0 auto; padding:4px 7px; border-radius:4px; color:#9b6e32; background:#f0dfbb; font-size:10px; font-weight:700; }
.physics-gentle-note p { margin:0; color:#686c68; font-size:12px; line-height:1.75; }
.physics-side-stack { display:grid; gap:17px; }
.physics-progress-card { padding:22px; }
.physics-progress-card header strong { color:var(--blue); font-family:Georgia,serif; font-size:21px; }
.phy-big-progress { height:6px; margin:18px 0 20px; overflow:hidden; border-radius:5px; background:#e8e8e2; }
.phy-big-progress i { display:block; height:100%; border-radius:inherit; background:linear-gradient(90deg,#5c83a5,#7ca4b9); }
.physics-chapter-progress { display:grid; gap:13px; }
.physics-chapter-progress > div { display:grid; grid-template-columns:27px 83px 1fr; gap:9px; align-items:center; }
.physics-chapter-progress > div > span { color:#8ca6b3; font-family:Georgia,serif; font-size:11px; }
.physics-chapter-progress p { margin:0; }
.physics-chapter-progress p b { display:block; font-size:11px; }
.physics-chapter-progress p small { color:var(--muted); font-size:9px; }
.physics-chapter-progress > div > i { height:5px; overflow:hidden; border-radius:5px; background:#ebeae4; }
.physics-chapter-progress > div > i b { display:block; height:100%; border-radius:inherit; background:var(--blue); }
.physics-evidence-card { padding:21px 22px; border-radius:13px; color:white; background:linear-gradient(140deg,#4f7080,#294d5e); box-shadow:var(--shadow); }
.physics-evidence-card > span { color:#a9c3ce; font-size:10px; font-weight:700; letter-spacing:.12em; }
.physics-evidence-card h3 { margin:7px 0; font-family:Georgia,"Noto Serif SC",serif; font-size:18px; }
.physics-evidence-card p { margin:0; color:#c7d6db; font-size:12px; line-height:1.75; }
.physics-visual-feature { display:grid; grid-template-columns:280px 1fr; gap:22px; align-items:center; margin-top:23px; padding:23px; border:1px solid #d9e2e4; border-radius:13px; background:rgba(255,255,255,.55); }
.physics-visual-feature > div { padding:8px 6px; }
.physics-visual-feature h2 { margin:6px 0; font-size:20px; }
.physics-visual-feature p { margin:0; color:var(--muted); font-size:13px; line-height:1.75; }
.physics-visual-feature button { margin-top:16px; padding:9px 13px; border:0; border-radius:6px; color:white; background:var(--phy-dark); font-size:12px; cursor:pointer; }
.physics-visual-feature .physics-diagram { margin:0; }
.physics-foundation-depth { margin-top:25px; }
.physics-foundation-depth > div { display:grid; grid-template-columns:repeat(3,1fr); gap:12px; margin-top:13px; }
.physics-foundation-depth article { padding:20px; border:1px solid #dadeda; border-top:4px solid var(--green); border-radius:10px; background:var(--card); }
.physics-foundation-depth article.application { border-top-color:var(--blue); }
.physics-foundation-depth article.depth { border-top-color:var(--orange); }
.physics-foundation-depth article > span { color:var(--green); font-size:10px; font-weight:800; }
.physics-foundation-depth .application > span { color:var(--blue); }.physics-foundation-depth .depth > span { color:var(--orange); }
.physics-foundation-depth h3 { margin:8px 0 5px; font-size:17px; }
.physics-foundation-depth p { margin:0; color:var(--muted); font-size:12px; line-height:1.7; }
.physics-paper-entry { display:flex; justify-content:space-between; align-items:center; gap:24px; margin-top:18px; padding:22px 24px; border-radius:12px; color:white; background:linear-gradient(135deg,#315e72,#234655); box-shadow:var(--shadow); }
.physics-paper-entry span { color:#9fc4d3; font-size:9px; font-weight:800; letter-spacing:.13em; }
.physics-paper-entry h2 { margin:5px 0; font-family:Georgia,"Noto Serif SC",serif; font-size:19px; }
.physics-paper-entry p { margin:0; color:#c6d7dc; font-size:11px; line-height:1.7; }
.physics-paper-entry button { flex:0 0 auto; padding:10px 14px; border:1px solid rgba(255,255,255,.25); border-radius:7px; color:#183846; background:white; font-size:11px; font-weight:700; cursor:pointer; }

.physics-diagram { margin:15px 0; overflow:hidden; border:1px solid #d9e3e6; border-radius:12px; background:#f3f8fa; }
.physics-diagram svg { display:block; width:100%; height:auto; min-height:190px; }
.physics-diagram figcaption { display:flex; align-items:center; gap:11px; padding:10px 14px; border-top:1px solid #dce5e7; background:#fbfdfd; }
.physics-diagram figcaption span { flex:0 0 auto; padding:4px 7px; border-radius:4px; color:white; background:var(--blue); font-size:10px; font-weight:700; }
.physics-diagram figcaption p { margin:0; color:#536870; font-size:13px; line-height:1.65; }
.physics-lesson .physics-diagram figcaption p { font-size:14px; }
.physics-diagram .phy-kicker { fill:#6f8f9d; font-size:13px; font-weight:800; letter-spacing:.12em; }
.physics-diagram .phy-label { fill:#3b535e; font-family:"Noto Sans SC",sans-serif; font-size:15px; }
.physics-diagram .phy-label.strong { font-weight:700; }
.physics-diagram .phy-small { fill:#64777f; font-family:"Noto Sans SC",sans-serif; font-size:14px; font-weight:500; }
.physics-diagram .phy-symbol { fill:#314f5d; font-family:"STIX Two Math","Cambria Math","Noto Sans SC",sans-serif; font-size:21px; font-weight:700; }
.physics-diagram .phy-formula { fill:#234b5d; font-family:"STIX Two Math","Cambria Math",Georgia,"Times New Roman",serif; font-size:24px; font-weight:700; }
.physics-diagram .phy-formula.large { font-size:29px; }
.physics-diagram .phy-badge { fill:#d8794d; font-size:14px; font-weight:800; }
.physics-lesson .physics-diagram .phy-kicker { font-size:14px; }
.physics-lesson .physics-diagram .phy-label { font-size:17px; }
.physics-lesson .physics-diagram .phy-small { font-size:15px; }
.physics-lesson .physics-diagram .phy-symbol { font-size:24px; }
.physics-lesson .physics-diagram .phy-formula { font-size:26px; }
.physics-lesson .physics-diagram .phy-formula.large { font-size:31px; }
.physics-diagram .phy-axis path { stroke:#315a6d; stroke-width:2.4; fill:none; }
.physics-diagram .phy-axis text { fill:#566b74; font-size:12px; }
.physics-card-visual .physics-diagram { margin:0; border:0; border-radius:0; }
.physics-card-visual .physics-diagram svg { min-height:0; }
.physics-card-visual .physics-diagram figcaption { display:none; }

.physics-page-intro { max-width:950px; }
.physics-page-intro > p:last-child { font-size:14px; line-height:1.8; }
.physics-roadmap-notice { display:flex; gap:14px; margin:-8px 0 22px; padding:15px 17px; border-left:4px solid var(--blue); background:rgba(255,255,255,.56); }
.physics-roadmap-notice > span { flex:0 0 auto; color:var(--blue); font-size:11px; font-weight:800; }
.physics-roadmap-notice p { margin:0; color:#63737a; font-size:13px; line-height:1.7; }
.physics-roadmap-list { display:grid; gap:19px; }
.physics-route-chapter { display:grid; grid-template-columns:270px 1fr; overflow:hidden; border:1px solid #dadfdf; border-top:4px solid var(--chapter-color); border-radius:13px; background:var(--card); box-shadow:0 9px 30px rgba(31,55,67,.045); }
.physics-route-chapter > aside { padding:26px 24px; color:white; background:linear-gradient(150deg,#183745,#2b5363); }
.physics-route-chapter > aside > span { color:#9bb9c6; font-family:Georgia,serif; font-size:11px; letter-spacing:.12em; }
.physics-route-chapter > aside h2 { margin:12px 0 8px; font-family:Georgia,"Noto Serif SC",serif; font-size:24px; }
.physics-route-chapter > aside p { margin:0; color:#b9cbd1; font-size:12px; line-height:1.75; }
.physics-route-chapter > aside div { display:flex; justify-content:space-between; margin-top:24px; padding-top:16px; border-top:1px solid rgba(255,255,255,.13); }
.physics-route-chapter > aside b,.physics-route-chapter > aside small { color:#d4e1e4; font-size:11px; }
.physics-route-main { padding:22px 25px; }
.physics-route-goal { display:grid; grid-template-columns:1fr 1fr; gap:10px; margin-bottom:10px; }
.physics-route-goal p { margin:0; padding:11px 13px; border-radius:7px; color:#566a73; background:#eef4f5; font-size:11px; line-height:1.7; }
.physics-route-goal p.gate { color:#77603a; background:#faf2df; }
.physics-route-goal b { color:var(--ink); }
.physics-route-main ol { margin:0; padding:0; list-style:none; }
.physics-route-main li { display:grid; grid-template-columns:36px 1fr 25px; gap:12px; align-items:center; min-height:70px; padding:10px 4px; border-bottom:1px solid #eceae3; cursor:pointer; }
.physics-route-main li:last-child { border:0; }
.physics-route-main li:hover strong { color:var(--blue); }
.physics-route-main li > i { display:grid; place-items:center; width:31px; height:31px; border-radius:50%; color:var(--chapter-color); background:#eef3f3; font-family:Georgia,serif; font-size:10px; font-style:normal; }
.physics-route-main li.done > i { color:white; background:var(--green); }
.physics-route-main li small { color:var(--chapter-color); font-size:10px; }
.physics-route-main li strong { display:block; margin:2px 0; font-size:14px; }
.physics-route-main li p { margin:0; color:var(--muted); font-size:11px; line-height:1.55; }
.physics-route-main li > span { color:#9aabad; }
.physics-week-rhythm { margin-top:21px; padding:21px 23px; border:1px dashed #c6c9c5; border-radius:11px; }
.physics-week-rhythm h2 { margin:0 0 15px; font-size:17px; }
.physics-week-rhythm > div { display:flex; align-items:center; justify-content:space-between; gap:7px; }
.physics-week-rhythm span { display:flex; align-items:center; gap:6px; color:#65747a; font-size:11px; }
.physics-week-rhythm span b { display:grid; place-items:center; width:23px; height:23px; border-radius:50%; color:var(--blue); background:var(--blue-soft); font-size:9px; }
.physics-week-rhythm i { color:#bdc3c1; font-style:normal; }

.physics-source-note { display:grid; grid-template-columns:30px 1fr auto; gap:12px; align-items:center; margin:-8px 0 18px; padding:15px 17px; border:1px solid #cdddcf; border-radius:9px; background:#edf5ec; }
.physics-source-note > span { display:grid; place-items:center; width:28px; height:28px; border-radius:50%; color:white; background:var(--green); }
.physics-source-note b { font-size:14px; }.physics-source-note p { margin:3px 0 0; color:#5f7063; font-size:12px; line-height:1.6; }
.physics-source-note a { color:var(--green); font-size:12px; text-decoration:none; }
.physics-course-tabs { display:grid; grid-template-columns:repeat(5,1fr); gap:7px; margin-bottom:15px; }
.physics-course-tabs button { display:flex; align-items:center; gap:8px; padding:10px 12px; border:1px solid var(--line); border-radius:8px; color:#718087; background:rgba(255,255,255,.46); font-size:11px; cursor:pointer; }
.physics-course-tabs button::first-line { font-family:Georgia,serif; }
.physics-course-tabs button span { font-size:12px; font-weight:600; }
.physics-course-tabs button.active { color:white; border-color:var(--phy-dark); background:var(--phy-dark); }
.physics-course-summary { display:flex; flex-wrap:wrap; gap:8px; margin-bottom:16px; }
.physics-course-summary span { padding:6px 10px; border-radius:20px; color:#69787e; background:rgba(255,255,255,.55); font-size:11px; }
.physics-course-summary b { color:var(--blue); }
.physics-course-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:15px; }
.physics-course-card { overflow:hidden; border:1px solid #d8dfdf; border-radius:12px; background:var(--card); box-shadow:0 8px 25px rgba(24,54,67,.045); cursor:pointer; transition:.22s; }
.physics-course-card:hover { transform:translateY(-4px); border-color:rgba(92,131,165,.5); box-shadow:0 15px 38px rgba(24,54,67,.09); }
.physics-course-card > header { display:flex; justify-content:space-between; align-items:center; padding:14px 17px 10px; }
.physics-course-card > header span { color:var(--blue); font-family:Georgia,serif; font-size:12px; font-weight:800; }
.physics-course-card > header b { padding:3px 7px; border-radius:20px; color:#637980; background:#edf3f4; font-size:9px; }
.physics-card-visual { height:122px; overflow:hidden; margin:0 15px; border-radius:8px; }
.physics-card-visual svg { height:122px; object-fit:cover; }
.physics-course-card > small { display:block; margin:15px 18px 0; color:var(--blue); font-size:10px; }
.physics-course-card > h3 { margin:6px 18px 7px; font-family:Georgia,"Noto Serif SC",serif; font-size:18px; line-height:1.45; }
.physics-course-card > p { min-height:63px; margin:0 18px; color:var(--muted); font-size:12px; line-height:1.75; }
.physics-course-card > footer { display:flex; justify-content:space-between; gap:8px; margin-top:16px; padding:13px 18px; border-top:1px solid #eceae4; color:#7b888b; font-size:10px; }
.physics-course-card > footer b { color:var(--blue); }
.physics-course-card.done { border-color:#cadbce; }
.physics-course-card.done > footer b { color:var(--green); }

.physics-lab-main { overflow:hidden; border:1px solid #d7e1e4; border-radius:14px; background:var(--card); box-shadow:var(--shadow); }
.physics-lab-main > header { display:flex; justify-content:space-between; align-items:center; gap:20px; padding:22px 25px; color:white; background:linear-gradient(135deg,#244b5d,#3c6b7e); }
.physics-lab-main > header span { color:#a8c7d3; font-size:10px; font-weight:800; letter-spacing:.1em; }
.physics-lab-main > header h2 { margin:4px 0; font-size:20px; }.physics-lab-main > header p { margin:0; color:#c5d6dc; font-size:12px; }
.physics-lab-main > header button.physics-prominent-play,.physics-prominent-play { flex:0 0 auto; min-width:190px; padding:14px 20px; border:2px solid #ffd8bd; border-radius:9px; color:white; background:linear-gradient(135deg,#f08a4b,#dd6f38); box-shadow:0 9px 24px rgba(218,104,52,.34),0 0 0 4px rgba(255,255,255,.07); font-size:14px; font-weight:800; cursor:pointer; transition:transform .18s,box-shadow .18s; }
.physics-prominent-play:hover { transform:translateY(-2px); box-shadow:0 13px 30px rgba(218,104,52,.42),0 0 0 5px rgba(255,255,255,.1); }
.physics-prominent-play.compact { min-width:135px; padding:10px 13px; border-width:1px; font-size:11px; box-shadow:0 6px 17px rgba(218,104,52,.25); }
.physics-lab-grid { display:grid; grid-template-columns:minmax(0,1.45fr) minmax(275px,.55fr); }
.physics-simulator { padding:22px; border-right:1px solid #e0e5e4; }
.physics-simulator > #physicsMotionSvg svg { display:block; width:100%; border-radius:11px; }
.physics-simulator svg .phy-kicker { fill:#6f8f9d; font-size:11px; font-weight:800; letter-spacing:.12em; }
.physics-simulator svg .phy-small { fill:#6a7d84; font-size:10px; }.physics-simulator svg .phy-label { fill:#314e5b; font-size:12px; }.physics-simulator svg .phy-label.strong { font-weight:700; }
.physics-lab-controls { display:grid; grid-template-columns:repeat(3,1fr); gap:13px; margin-top:18px; }
.physics-lab-controls label { padding:12px; border:1px solid #dde4e5; border-radius:8px; background:#fafcfc; }
.physics-lab-controls label span { display:flex; justify-content:space-between; gap:7px; margin-bottom:10px; color:#53676f; font-size:11px; }
.physics-lab-controls label b { color:var(--blue); }
.physics-lab-controls input { width:100%; accent-color:var(--blue); }
.physics-live-equations { display:grid; grid-template-columns:1fr 1fr; gap:9px; margin-top:12px; }
.physics-live-equations div { display:flex; justify-content:space-between; gap:10px; padding:11px 13px; border-radius:7px; background:var(--blue-soft); }
.physics-live-equations span { color:#657d89; font-size:11px; }.physics-live-equations b { color:#294e60; font-family:Georgia,serif; font-size:13px; }.physics-live-equations i { color:var(--orange); font-style:normal; }
.physics-data-table { padding:23px 21px; }
.physics-data-table h3 { margin:0 0 5px; font-size:17px; }.physics-data-table > p { margin:0 0 15px; color:var(--muted); font-size:11px; line-height:1.6; }
.physics-data-table table { width:100%; border-collapse:collapse; font-size:11px; font-variant-numeric:tabular-nums; }
.physics-data-table th,.physics-data-table td { padding:8px 5px; border-bottom:1px solid #e8e8e2; text-align:center; }
.physics-data-table thead th { color:#6d7c81; background:#f0f3f2; font-size:9px; }.physics-data-table tbody th { color:var(--blue); }
.physics-data-table tr.active { color:#9c512f; background:var(--orange-soft); }
.physics-lab-prompt { margin-top:16px; padding:13px 14px; border-left:3px solid var(--orange); background:#faf2e9; }
.physics-lab-prompt b { color:#9b5d3f; font-size:11px; }.physics-lab-prompt p { margin:4px 0 0; color:#6f5a4d; font-size:11px; line-height:1.7; }
.physics-lab-lessons { display:grid; grid-template-columns:repeat(3,1fr); gap:12px; margin-top:17px; }
.physics-lab-lessons article { padding:18px; border:1px solid #dadfdd; border-radius:9px; background:rgba(255,255,255,.55); }
.physics-lab-lessons span { color:var(--blue); font-size:10px; font-weight:800; }.physics-lab-lessons h3 { margin:7px 0 5px; font-size:15px; }.physics-lab-lessons p { margin:0; color:var(--muted); font-size:12px; line-height:1.7; }
.physics-animation-section { margin-top:29px; }
.physics-animation-section > header { display:flex; justify-content:space-between; align-items:center; gap:15px; margin-bottom:14px; }
.physics-animation-section > header > div { display:flex; align-items:center; gap:10px; }.physics-animation-section h2 { margin:0; font-size:19px; }.physics-animation-section > header small { color:var(--orange); font-size:11px; font-weight:700; }
.physics-animation-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:15px; }
.physics-animation-card { overflow:hidden; border:1px solid #d5e0e2; border-radius:12px; background:var(--card); box-shadow:0 9px 25px rgba(30,57,68,.05); }
.physics-animation-card > header { display:flex; justify-content:space-between; align-items:center; gap:14px; padding:16px 17px; color:white; background:linear-gradient(135deg,#315d70,#456f80); }
.physics-animation-card > header span { color:#b7d0da; font-size:9px; font-weight:800; letter-spacing:.1em; }.physics-animation-card > header h3 { margin:4px 0 0; font-size:15px; }
.physics-exp-svg { padding:10px; background:#f5f8f8; }.physics-exp-svg svg { display:block; width:100%; border-radius:9px; }
.physics-exp-svg .exp-kicker { fill:#6c8b98; font-size:12px; font-weight:800; letter-spacing:.1em; }.physics-exp-svg .exp-value { fill:#2f5261; font-size:14px; font-weight:700; }.physics-exp-svg .exp-note { fill:#687d85; font-size:12px; }.physics-exp-svg .exp-label { fill:#405c68; font-size:14px; font-weight:700; }.physics-exp-svg .exp-label.green { fill:#5b8166; }
.physics-exp-controls { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)) auto; gap:9px; align-items:end; padding:13px 15px; border-top:1px solid #e0e5e4; border-bottom:1px solid #e0e5e4; background:#fafbfa; }.physics-exp-controls.single { grid-template-columns:minmax(0,1fr) auto; }.physics-exp-controls.three { grid-template-columns:repeat(3,minmax(0,1fr)) auto; }
.physics-exp-controls label { min-width:0; }.physics-exp-controls label span { display:flex; justify-content:space-between; gap:6px; margin-bottom:7px; color:#62747b; font-size:10px; }.physics-exp-controls label b { color:var(--blue); }.physics-exp-controls input { width:100%; accent-color:var(--blue); }.physics-exp-controls > button { padding:7px 9px; border:1px solid #bdc9cb; border-radius:5px; color:#5c7078; background:white; font-size:9px; cursor:pointer; }
.physics-animation-card > footer { display:flex; justify-content:space-between; align-items:center; gap:12px; padding:12px 15px; }.physics-animation-card > footer p { margin:0; color:var(--muted); font-size:10px; line-height:1.6; }.physics-animation-card > footer button { flex:0 0 auto; padding:6px 8px; border:0; color:var(--blue); background:transparent; font-size:9px; cursor:pointer; }
.physics-experiment-library { margin-top:27px; }
.physics-experiment-library > div { display:grid; grid-template-columns:repeat(2,1fr); gap:10px; margin-top:13px; }
.physics-experiment-library article { display:grid; grid-template-columns:35px 1fr 20px; gap:11px; align-items:center; padding:16px; border:1px solid #d9dfdc; border-radius:9px; background:var(--card); cursor:pointer; }
.physics-experiment-library article > b { color:var(--blue); font-family:Georgia,serif; }.physics-experiment-library article span { font-size:14px; font-weight:700; }.physics-experiment-library article p { margin:4px 0 0; color:var(--muted); font-size:11px; line-height:1.6; }.physics-experiment-library article i { color:var(--blue); font-style:normal; }

.physics-practice-layout { display:grid; grid-template-columns:220px minmax(0,1fr) 235px; gap:17px; align-items:start; }
.physics-practice-nav { padding:18px 14px; border-radius:12px; color:white; background:var(--navigation-panel-bg); box-shadow:0 10px 28px rgba(45,76,86,.08); }
.physics-practice-nav > h3 { margin:0 8px 12px; font-size:13px; }
.physics-practice-nav > button { display:grid; grid-template-columns:31px 1fr auto; gap:9px; align-items:center; width:100%; padding:10px 9px; border:1px solid transparent; border-radius:8px; color:#f0f5f5; background:transparent; text-align:left; cursor:pointer; }
.physics-practice-nav > button > span { display:grid; place-items:center; width:29px; height:29px; border-radius:50%; background:rgba(255,255,255,.12); font-size:11px; }
.physics-practice-nav button p { margin:0; }.physics-practice-nav button b { display:block; color:inherit; font-size:11px; }.physics-practice-nav button small { color:#dce7e9; font-size:9px; }.physics-practice-nav button em { display:grid; place-items:center; min-width:20px; height:20px; padding:0 5px; border-radius:10px; color:#edf3f4; background:rgba(255,255,255,.12); font-size:9px; font-style:normal; }.physics-practice-nav button em.warning { color:white; background:#c76550; }
.physics-practice-nav > button.active { color:white; border-color:rgba(255,255,255,.3); background:rgba(255,255,255,.14); }.physics-practice-nav > button.active > span { background:#6f96b5; }
.physics-practice-discipline { margin:15px 8px 0; padding:14px 3px 0; border-top:1px solid rgba(255,255,255,.1); }.physics-practice-discipline b { font-size:11px; }.physics-practice-discipline p { margin:6px 0 0; color:#e0eaec; font-size:10px; line-height:1.9; }
/* Keep the physics navigator readable on the light sage panel. */
.physics-view .physics-practice-nav { color:var(--navigation-ink); border-color:#a9bcaa; background:var(--navigation-panel-bg); }
.physics-view .physics-practice-nav > h3 { color:#243d35; }
.physics-view .physics-practice-nav > button { color:#345247; background:transparent; }
.physics-view .physics-practice-nav > button:hover { color:#20372f; background:#c6d4c6; }
.physics-view .physics-practice-nav > button > span { color:#365548; background:#c3d2c3; }
.physics-view .physics-practice-nav button small { color:#526a5e; }
.physics-view .physics-practice-nav button em { color:#3c594d; background:#c3d2c3; }
.physics-view .physics-practice-nav button em.warning { color:white; background:#c76550; }
.physics-view .physics-practice-nav > button.active { color:#20372f; border-color:#8fa793; background:var(--navigation-active); }
.physics-view .physics-practice-nav > button.active > span { color:white; background:#6f9279; }
.physics-view .physics-practice-discipline { border-color:#a8baa9; }
.physics-view .physics-practice-discipline b { color:#243d35; }
.physics-view .physics-practice-discipline p { color:#4f685b; }
.physics-question-card { min-height:525px; padding:28px 31px; border:1px solid #dce1df; border-radius:12px; background:var(--card); box-shadow:var(--shadow); }
.physics-preview-banner { display:grid; grid-template-columns:auto minmax(0,1fr) auto; gap:11px; align-items:center; margin:-7px 0 19px; padding:11px 13px; border:1px solid #d6e3e7; border-radius:8px; background:#eef5f7; }.physics-preview-banner > b { padding:4px 8px; border-radius:4px; color:white; background:var(--blue); font-size:10px; }.physics-preview-banner p { margin:0; color:#566d76; font-size:11px; line-height:1.6; }.physics-preview-banner > span { color:#6a7f87; font-size:10px; white-space:nowrap; }
.physics-preview-controls { display:flex; justify-content:space-between; align-items:center; gap:14px; margin-top:18px; padding-top:15px; border-top:1px solid #e4e5df; }.physics-preview-controls > span { color:var(--muted); font-size:11px; }.physics-preview-controls > div { display:flex; flex:0 0 auto; gap:7px; }.physics-preview-controls button { min-width:92px; padding:9px 13px; border:1px solid #bbc8ca; border-radius:6px; color:#526b75; background:white; font-size:11px; cursor:pointer; }.physics-preview-controls button.primary { color:white; border-color:var(--navy); background:var(--navy); }.physics-preview-controls button:disabled { opacity:.38; cursor:not-allowed; }
.physics-preview-map { margin-top:12px; padding:10px 12px; border:1px solid #e0e2dd; border-radius:7px; background:#fafaf7; }.physics-preview-map > summary { color:#536b75; font-size:10px; font-weight:700; cursor:pointer; }.physics-preview-map > summary span { margin-left:7px; color:#889398; font-weight:400; }.physics-preview-map > div { display:grid; grid-template-columns:repeat(auto-fill,minmax(31px,1fr)); gap:5px; margin-top:10px; }.physics-preview-map button { height:29px; border:1px solid #d7d9d4; border-radius:5px; color:#748187; background:white; font-family:Georgia,serif; font-size:9px; cursor:pointer; }.physics-preview-map button.current { color:white; border-color:var(--blue); background:var(--blue); }.physics-preview-map button.answered { color:white; border-color:var(--green); background:var(--green); }.physics-preview-map button.skipped { color:#9b5c36; border-color:#e5b592; background:#fae9dc; }
.physics-preview-finish { padding:62px 20px; text-align:center; }.physics-preview-finish > span { display:grid; place-items:center; width:64px; height:64px; margin:auto; border-radius:50%; color:var(--blue); background:var(--blue-soft); font-family:Georgia,serif; font-size:27px; }.physics-preview-finish h2 { margin:16px 0 7px; font-size:23px; }.physics-preview-finish > p { color:var(--muted); font-size:12px; }.physics-preview-finish > div { display:flex; flex-wrap:wrap; justify-content:center; gap:6px; max-width:540px; margin:16px auto; }.physics-preview-finish > div b { padding:5px 9px; border-radius:18px; color:#4d6e7b; background:#eaf2f4; font-size:10px; }.physics-preview-finish aside { max-width:610px; margin:15px auto; padding:11px 13px; border-radius:7px; color:#6c604d; background:#faf1df; font-size:11px; line-height:1.7; }.physics-preview-finish > button { padding:10px 16px; border:0; border-radius:6px; color:white; background:var(--navy); font-size:11px; cursor:pointer; }
.physics-lesson-practice-banner { display:grid; grid-template-columns:auto 1fr auto; gap:11px; align-items:center; margin:-7px 0 19px; padding:12px 13px; border:1px solid #d7e2e5; border-radius:8px; background:#eef4f6; }
.physics-lesson-practice-banner > span { padding:4px 7px; border-radius:4px; color:white; background:var(--blue); font-size:9px; font-weight:700; }
.physics-lesson-practice-banner b { display:block; font-size:12px; }.physics-lesson-practice-banner p { margin:3px 0 0; color:#65777e; font-size:10px; line-height:1.55; }
.physics-lesson-practice-banner button { padding:6px 8px; border:1px solid var(--phy-dark); border-radius:5px; color:var(--phy-dark); background:white; font-size:9px; cursor:pointer; }
.physics-question-visual { margin:15px 0 19px; overflow:hidden; border:1px solid #d6e1e4; border-radius:10px; background:#f5f9fa; }
.physics-question-visual > header { display:flex; justify-content:space-between; align-items:center; gap:12px; padding:10px 12px; border-bottom:1px solid #d6e1e4; background:#eaf2f4; }.physics-question-visual > header > div { display:flex; flex-direction:column; gap:2px; }.physics-question-visual > header b { color:#315a6d; font-size:11px; }.physics-question-visual > header span { color:#71848b; font-size:9px; }
.physics-question-visual > header button { flex:0 0 auto; min-width:132px; padding:9px 11px; border:1px solid #ffc79f; border-radius:6px; color:white; background:linear-gradient(135deg,#ef8b4d,#dd6f38); box-shadow:0 5px 14px rgba(218,104,52,.25); font-size:10px; font-weight:800; cursor:pointer; }
.physics-question-visual-stage { background:#f5f9fa; }.physics-question-visual svg { display:block; width:100%; max-height:310px; }
.physics-question-visual figcaption { padding:9px 13px; border-top:1px solid #dce5e7; color:#5f747c; background:white; font-size:11px; }
.physics-question-visual.is-playing .g-line,.physics-question-visual.is-playing .g-tangent,.physics-question-visual.is-playing .g-guide { stroke-dasharray:900; stroke-dashoffset:900; animation:phyGraphDraw 2.2s .25s ease forwards; }.physics-question-visual.is-playing .g-area { animation:phyGraphArea .65s 1.75s both; }.physics-question-visual.is-playing .g-point,.physics-question-visual.is-playing .g-dot { animation:phyGraphPoint .45s 1.9s both; }.physics-question-visual.is-playing .g-label,.physics-question-visual.is-playing .g-area-label,.physics-question-visual.is-playing .g-title { animation:phyGraphPoint .5s 2.25s both; }.physics-question-visual.is-paused * { animation-play-state:paused !important; }
@keyframes phyGraphDraw { to { stroke-dashoffset:0; } } @keyframes phyGraphArea { from { opacity:0; } to { opacity:.42; } } @keyframes phyGraphPoint { from { opacity:0; transform:translateY(4px); } to { opacity:1; transform:translateY(0); } }
.physics-question-visual .g-axis { fill:none; stroke:#345766; stroke-width:2.5; }.physics-question-visual .g-axis-fill { fill:#345766; }.physics-question-visual .g-axis-text { fill:#385965; font-size:15px; font-weight:700; }.physics-question-visual .g-grid { fill:none; stroke:#dce5e7; stroke-width:1; stroke-dasharray:5 6; }.physics-question-visual .g-line { fill:none; stroke-width:5; stroke-linecap:round; stroke-linejoin:round; }.physics-question-visual .g-line.blue { stroke:#5c83a5; }.physics-question-visual .g-line.orange { stroke:#d8794d; }.physics-question-visual .g-line.green { stroke:#6c8d77; }.physics-question-visual .g-label,.physics-question-visual .g-title { fill:#405c68; font-size:14px; font-weight:700; }.physics-question-visual .blue-text { fill:#5c83a5; }.physics-question-visual .orange-text { fill:#d8794d; }.physics-question-visual .g-point { fill:#e97845; }.physics-question-visual .g-tangent { fill:none; stroke:#d8794d; stroke-width:3; }.physics-question-visual .g-area { stroke:none; opacity:.42; }.physics-question-visual .blue-area { fill:#7da7bc; }.physics-question-visual .orange-area { fill:#e69a70; }.physics-question-visual .g-area-label { fill:#2e4e5b; font-size:14px; font-weight:800; }.physics-question-visual .g-limit { stroke:#b78354; stroke-width:2; stroke-dasharray:5 5; }.physics-question-visual .g-tape { stroke:#d5c7a9; stroke-width:34; stroke-linecap:round; }.physics-question-visual .g-dot { fill:#315a6d; }.physics-question-visual .g-dot.active { fill:#e97845; }.physics-question-visual .g-guide { stroke:#6f91a1; stroke-width:3; }.physics-question-head { display:flex; justify-content:space-between; align-items:center; }.physics-question-head > div { display:flex; gap:7px; align-items:center; }.physics-question-head span { padding:4px 7px; border-radius:4px; color:white; background:var(--blue); font-size:10px; }.physics-question-head b { color:#61747c; font-size:11px; }.physics-question-head p { color:var(--muted); font-size:11px; }
.physics-question-progress { height:4px; margin:10px 0 26px; overflow:hidden; border-radius:4px; background:#e9e8e2; }.physics-question-progress i { display:block; height:100%; background:var(--blue); }
.physics-question-card > h2 { margin:0 0 22px; font-family:Georgia,"Noto Serif SC",serif; font-size:22px; font-weight:600; line-height:1.7; }
.physics-options { display:grid; gap:10px; }.physics-options button { display:grid; grid-template-columns:28px 1fr; gap:12px; align-items:center; width:100%; padding:14px 16px; border:1px solid var(--line); border-radius:8px; color:var(--ink); background:white; text-align:left; font-size:14px; cursor:pointer; }.physics-options button i { display:grid; place-items:center; width:27px; height:27px; border:1px solid #c7c8c2; border-radius:50%; font-family:Georgia,serif; font-size:11px; font-style:normal; }.physics-options button:hover:not(:disabled) { border-color:var(--blue); background:#f6fafb; }.physics-options button.correct { border-color:var(--green); background:var(--green-soft); }.physics-options button.correct i { color:white; border-color:var(--green); background:var(--green); }.physics-options button.wrong { border-color:#c86d5d; background:#f8e9e5; }.physics-options button.wrong i { color:white; border-color:#c86d5d; background:#c86d5d; }
.physics-answer-rule { margin:17px 0 0; color:var(--muted); font-size:11px; }
.physics-answer-analysis { margin-top:17px; overflow:hidden; border:1px solid #cbdccf; border-radius:9px; background:#f2f7f1; }.physics-answer-analysis > header { display:flex; justify-content:space-between; padding:10px 14px; color:#496a53; background:#e4efe5; }.physics-answer-analysis.wrong { border-color:#ead4c1; background:#fbf4e9; }.physics-answer-analysis.wrong > header { color:#976039; background:#f5e5d5; }.physics-answer-analysis header span,.physics-answer-analysis header b { font-size:12px; }.physics-answer-analysis > p { margin:0; padding:14px 16px; color:#4e6263; font-size:13px; line-height:1.8; }.physics-answer-analysis > div { padding:13px 16px; border-top:1px solid rgba(90,110,100,.12); }.physics-answer-analysis > div > b { color:var(--orange); font-size:11px; }.physics-answer-analysis > div p { margin:4px 0 9px; color:#665d50; font-size:12px; line-height:1.7; }.physics-answer-analysis button { padding:7px 10px; border:0; border-radius:5px; color:white; background:var(--phy-dark); font-size:10px; cursor:pointer; }
.physics-question-next { float:right; margin-top:17px; padding:9px 15px; border:0; border-radius:6px; color:white; background:var(--navy); font-size:11px; cursor:pointer; }
.physics-practice-empty { padding:80px 20px; text-align:center; }.physics-practice-empty > span { font-size:36px; }.physics-practice-empty h2 { margin:10px 0 5px; }.physics-practice-empty p { color:var(--muted); }.physics-practice-empty button { padding:9px 14px; border:0; border-radius:6px; color:white; background:var(--navy); cursor:pointer; }
.physics-weak-profile { padding:19px; border:1px solid #d9dfdd; border-radius:11px; background:rgba(255,255,255,.6); }.physics-weak-profile header span { color:var(--blue); font-size:9px; font-weight:800; letter-spacing:.13em; }.physics-weak-profile h3 { margin:5px 0 16px; font-size:16px; }.physics-weak-bars { display:grid; gap:12px; }.physics-weak-bars > div:not(.physics-no-weak) { display:grid; grid-template-columns:67px 1fr 31px; gap:7px; align-items:center; }.physics-weak-bars span,.physics-weak-bars em { font-size:10px; font-style:normal; }.physics-weak-bars em { color:var(--muted); text-align:right; }.physics-weak-bars i { height:5px; overflow:hidden; border-radius:5px; background:#e7e7e1; }.physics-weak-bars i b { display:block; height:100%; background:var(--orange); }.physics-weak-profile > p { margin:16px 0 10px; padding-top:13px; border-top:1px solid #e4e4df; color:var(--muted); font-size:10px; line-height:1.7; }.physics-weak-profile > button { width:100%; padding:8px; border:1px solid var(--phy-dark); border-radius:6px; color:var(--phy-dark); background:transparent; font-size:10px; cursor:pointer; }
.physics-no-weak { padding:15px 10px; border-radius:8px; text-align:center; background:var(--green-soft); }.physics-no-weak > span { display:grid; place-items:center; width:29px; height:29px; margin:0 auto 7px; border-radius:50%; color:white; background:var(--green); }.physics-no-weak p { margin:0; color:#54705c; font-size:10px; line-height:1.65; }.physics-no-weak p b { display:block; }

/* Physics foundation/reinforcement banks and printable papers */
.physics-practice-layout.paper-mode { grid-template-columns:220px minmax(0,1fr); }
.physics-question-card.physics-paper-shell { min-height:620px; padding:0; overflow:hidden; }
.physics-paper-library > header { display:flex; justify-content:space-between; align-items:flex-end; gap:28px; padding:25px 28px 19px; color:white; background:linear-gradient(135deg,#244c5e,#3a6b7f); }
.physics-paper-library > header span { color:#aed0dd; font-size:10px; font-weight:800; letter-spacing:.13em; }
.physics-paper-library > header h2 { margin:5px 0 0; font-family:Georgia,"Noto Serif SC",serif; font-size:23px; }
.physics-paper-library > header p { max-width:430px; margin:0; color:#cadbe0; font-size:12px; line-height:1.75; text-align:right; }
.physics-paper-bank-stats { display:flex; flex-wrap:wrap; gap:8px; padding:14px 27px; border-bottom:1px solid #e3e6e3; background:#f2f6f6; }
.physics-paper-bank-stats span { padding:5px 9px; border-radius:18px; color:#65777e; background:white; font-size:10px; }
.physics-paper-bank-stats b { color:var(--blue); font-size:13px; }
.physics-paper-group { padding:22px 27px 4px; }
.physics-paper-group-title { display:flex; align-items:center; justify-content:space-between; margin-bottom:11px; }
.physics-paper-group-title h3 { margin:0; font-size:17px; }
.physics-paper-group-title span { color:var(--muted); font-size:10px; }
.physics-paper-card-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:11px; }
.physics-paper-card { padding:17px; border:1px solid #d9dfdd; border-top:4px solid var(--green); border-radius:9px; background:#fffefa; box-shadow:0 7px 18px rgba(31,57,68,.035); }
.physics-paper-card:nth-child(even) { border-top-color:var(--orange); }
.physics-paper-card-top { display:flex; justify-content:space-between; align-items:center; }
.physics-paper-card-top > span { color:var(--blue); font-size:10px; font-weight:800; letter-spacing:.08em; }
.physics-paper-card-top > b { padding:3px 7px; border-radius:12px; color:var(--green); background:var(--green-soft); font-size:9px; }
.physics-paper-card-top > b.strong { color:var(--orange); background:var(--orange-soft); }
.physics-paper-card h3 { margin:10px 0 5px; font-size:17px; }
.physics-paper-card > p { min-height:42px; margin:0; color:var(--muted); font-size:11px; line-height:1.65; }
.physics-paper-types { margin-top:10px; padding:8px 9px; border-radius:6px; color:#5f737b; background:#eef3f4; font-size:9px; }
.physics-paper-last-result { display:flex; justify-content:space-between; gap:10px; margin-top:8px; padding:8px 9px; border-radius:6px; color:#5e745f; background:#edf4ed; font-size:9px; }.physics-paper-last-result b { color:var(--green); }
.physics-paper-card footer { display:flex; justify-content:space-between; align-items:center; gap:10px; margin-top:13px; padding-top:12px; border-top:1px solid #eceae4; }
.physics-paper-card footer span { color:#7b878a; font-size:9px; }
.physics-paper-card footer button { flex:0 0 auto; padding:7px 9px; border:0; border-radius:5px; color:white; background:var(--phy-dark); font-size:9px; cursor:pointer; }
.physics-paper-source { display:flex; gap:10px; margin:21px 27px 27px; padding:13px 15px; border-left:3px solid var(--yellow); background:#faf4e4; }
.physics-paper-source b { flex:0 0 auto; color:#9c742d; font-size:10px; }
.physics-paper-source p { margin:0; color:#71644b; font-size:10px; line-height:1.65; }
.physics-paper-head { display:flex; justify-content:space-between; align-items:center; gap:25px; padding:25px 29px; color:white; background:linear-gradient(135deg,#173744,#315f72); }
.physics-paper-head > div:first-child > span { color:#9fc1cf; font-size:10px; font-weight:800; letter-spacing:.1em; }
.physics-paper-head h2 { margin:5px 0; font-family:Georgia,"Noto Serif SC",serif; font-size:25px; }
.physics-paper-head p { margin:0; color:#c1d3da; font-size:11px; }
.physics-paper-head > div:last-child { flex:0 0 auto; text-align:right; }
.physics-paper-head > div:last-child b { display:block; color:#e4b083; font-family:Georgia,serif; font-size:32px; }
.physics-paper-head > div:last-child small { color:#b5c9d0; font-size:10px; }
.physics-paper-time > em { display:block; color:#9fc1cf; font-size:8px; font-style:normal; letter-spacing:.12em; }.physics-paper-time b { min-width:108px; font-variant-numeric:tabular-nums; }.physics-paper-time b:not(:only-child) { letter-spacing:.03em; }.physics-paper-time .physics-paper-print-score { display:none !important; }
.physics-paper-preview-banner { display:flex; align-items:center; gap:11px; padding:12px 20px; border-bottom:1px solid #d7e3e6; color:#526a74; background:#eaf3f6; }.physics-paper-preview-banner b { flex:0 0 auto; padding:4px 8px; border-radius:4px; color:white; background:var(--blue); font-size:10px; }.physics-paper-preview-banner p { flex:1; margin:0; font-size:11px; line-height:1.65; }.physics-paper-preview-banner > span { flex:0 0 auto; color:#416272; font-size:10px; font-weight:700; }.physics-paper-preview-banner.formal { border-bottom-color:#e4d6bd; background:#faf2df; }.physics-paper-preview-banner.formal b { background:var(--orange); }
.physics-paper-actions { display:grid; grid-template-columns:auto 1fr auto; gap:13px; align-items:center; padding:12px 20px; border-bottom:1px solid #e0e3e1; background:#f4f6f5; }
.physics-paper-actions > button,.physics-paper-actions div button { padding:7px 9px; border:1px solid #bdc9cc; border-radius:5px; color:#506a75; background:white; font-size:9px; cursor:pointer; }
.physics-paper-actions div { display:flex; gap:6px; }.physics-paper-actions div button.submit,.physics-paper-footer button.submit { color:white; border-color:var(--orange); background:var(--orange); font-weight:700; }
.physics-paper-actions div button.print { color:white; border-color:var(--phy-dark); background:var(--phy-dark); }
.physics-paper-actions p { margin:0; color:#68777c; font-size:10px; text-align:center; }
.physics-paper-number-nav { margin:16px 22px 7px; padding:13px 14px; border:1px solid #d8e2e4; border-radius:8px; background:#f7faf9; }.physics-paper-number-nav > header { display:flex; justify-content:space-between; align-items:center; gap:10px; margin-bottom:10px; }.physics-paper-number-nav header b { color:#385b69; font-size:11px; }.physics-paper-number-nav header span { color:#7a898e; font-size:9px; }.physics-paper-number-nav > div { display:grid; grid-template-columns:repeat(auto-fill,minmax(48px,1fr)); gap:6px; }.physics-paper-number-nav button { display:flex; flex-direction:column; align-items:center; gap:2px; padding:7px 4px; border:1px solid #ccd7d9; border-radius:5px; color:#315a6d; background:white; font-family:Georgia,serif; font-size:11px; cursor:pointer; }.physics-paper-number-nav button:hover,.physics-paper-number-nav button.current { color:white; border-color:var(--blue); background:var(--blue); }.physics-paper-number-nav button.answered,.physics-paper-number-nav button.correct,.physics-paper-number-nav button.mastered { color:white; border-color:var(--green); background:var(--green); }.physics-paper-number-nav button.skipped,.physics-paper-number-nav button.wrong,.physics-paper-number-nav button.unknown { color:#94542f; border-color:#e5b08b; background:#fae7d8; }.physics-paper-number-nav button.pending,.physics-paper-number-nav button.partial { color:#826323; border-color:#dfc57b; background:#faf1d5; }.physics-paper-number-nav button small { font-family:system-ui,sans-serif; font-size:7px; opacity:.7; }
.physics-paper-instructions { display:flex; flex-wrap:wrap; gap:10px 18px; margin:17px 22px 8px; padding:12px 14px; border:1px solid #d8e3e5; border-radius:7px; color:#5e7178; background:#edf4f6; font-size:10px; }
.physics-paper-instructions b { color:var(--phy-dark); }
.physics-paper-question-list { display:grid; gap:11px; padding:13px 22px 25px; }
.physics-paper-question { overflow:hidden; scroll-margin-top:90px; border:1px solid #deded8; border-radius:9px; background:white; break-inside:avoid; }.physics-paper-exam-question.answered,.physics-paper-exam-question.correct,.physics-paper-exam-question.mastered { border-color:#a9c9b1; }.physics-paper-exam-question.skipped,.physics-paper-exam-question.wrong,.physics-paper-exam-question.unknown { border-color:#e0b08e; }
.physics-paper-question > header { display:flex; gap:10px; align-items:center; padding:10px 13px; border-bottom:1px solid #e7e7e1; background:#f4f3ee; }
.physics-paper-question > header > span { display:grid; place-items:center; width:28px; height:28px; border-radius:50%; color:white; background:var(--blue); font-family:Georgia,serif; font-size:11px; font-weight:700; }
.physics-paper-question > header b { display:block; color:#435963; font-size:10px; }
.physics-paper-question > header small { display:block; margin-top:2px; color:#829095; font-size:8px; }.physics-paper-question > header em { margin-left:auto; padding:3px 7px; border-radius:12px; color:#5d7564; background:#e3eee5; font-size:8px; font-style:normal; }.physics-paper-question.skipped > header em,.physics-paper-question.wrong > header em,.physics-paper-question.unknown > header em { color:#985b38; background:#f7e4d7; }.physics-paper-question.pending > header em,.physics-paper-question.partial > header em { color:#896927; background:#f6edcf; }
.physics-paper-question > h3 { margin:0; padding:15px 16px 10px; font-family:Georgia,"Noto Serif SC",serif; font-size:16px; font-weight:600; line-height:1.75; }
.physics-paper-options { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:7px; padding:3px 16px 15px; }
.physics-paper-options > span,.physics-paper-input-options button { display:flex; gap:8px; align-items:flex-start; padding:8px 10px; border:1px solid #e1e1db; border-radius:6px; color:#44575f; background:white; font-size:12px; line-height:1.55; text-align:left; }.physics-paper-input-options button { width:100%; cursor:pointer; }.physics-paper-input-options button:hover:not(:disabled) { border-color:var(--blue); background:#f5fafb; }.physics-paper-input-options button.selected { color:#284f60; border-color:var(--blue); background:#e8f1f5; }.physics-paper-input-options button.correct { color:#42664b; border-color:var(--green); background:var(--green-soft); }.physics-paper-input-options button.wrong { color:#92533b; border-color:#cf8064; background:#fae8df; }.physics-paper-input-options button:disabled { opacity:1; cursor:default; }
.physics-paper-options i { display:grid; place-items:center; flex:0 0 22px; width:22px; height:22px; border:1px solid #c7c8c2; border-radius:50%; font-family:Georgia,serif; font-size:9px; font-style:normal; }
.physics-paper-fill-line { padding:8px 17px 19px; color:#69777c; font-size:12px; }
.physics-paper-input-hint { margin:-8px 16px 14px; color:#77868a; font-size:9px; }.physics-paper-written-input { display:grid; gap:7px; padding:5px 16px 17px; }.physics-paper-written-input label { color:#506871; font-size:10px; font-weight:700; }.physics-paper-written-input input,.physics-paper-written-input textarea { width:100%; padding:10px 11px; border:1px solid #ccd4d4; border-radius:6px; outline:0; color:var(--ink); background:#fff; font:inherit; font-size:12px; line-height:1.65; resize:vertical; }.physics-paper-written-input input:focus,.physics-paper-written-input textarea:focus { border-color:var(--blue); box-shadow:0 0 0 3px rgba(92,131,165,.12); }.physics-paper-written-input input.correct { border-color:var(--green); background:var(--green-soft); }.physics-paper-written-input input.wrong { border-color:#cf8064; background:#fae8df; }.physics-paper-written-input small { color:#4f7057; font-size:10px; }.physics-paper-written-input .paper-done { justify-self:start; padding:7px 10px; border:1px solid #bfcdd0; border-radius:5px; color:#526d77; background:white; font-size:9px; cursor:pointer; }.physics-paper-written-input .paper-done.active { color:white; border-color:var(--green); background:var(--green); }
.physics-paper-response-lines { display:grid; gap:17px; padding:5px 17px 21px; }
.physics-paper-response-lines i { display:block; height:1px; border-bottom:1px dotted #bfc1bb; }
.physics-paper-question > details { margin:0; border-top:1px dashed #d8d8d2; }
.physics-paper-question > details > summary { padding:10px 15px; color:var(--orange); background:#fcfaf6; font-size:10px; cursor:pointer; }
.physics-paper-question-nav { display:flex; justify-content:space-between; align-items:center; gap:10px; padding:9px 13px; border-top:1px solid #e2e4df; background:#f7f8f5; }.physics-paper-question-nav span { color:#7b878b; font-size:9px; }.physics-paper-question-nav button { padding:6px 9px; border:1px solid #c5d0d2; border-radius:5px; color:#496875; background:white; font-size:9px; cursor:pointer; }.physics-paper-question-nav button.submit { color:white; border-color:var(--orange); background:var(--orange); }.physics-paper-question-nav button:disabled { opacity:.3; cursor:not-allowed; }
.physics-paper-solution { padding:14px 16px; color:#40584a; background:var(--green-soft); }
.physics-paper-solution > b { color:var(--green); font-size:12px; }
.physics-paper-solution > p { margin:6px 0; font-size:12px; line-height:1.8; }
.physics-paper-solution > ol { margin:8px 0; padding-left:21px; }
.physics-paper-solution > ol li { padding:3px 0; font-size:11px; line-height:1.65; }
.physics-paper-solution .physics-paper-explain { padding-top:7px; border-top:1px solid rgba(80,110,90,.16); color:#5e7062; }
.physics-paper-solution > button { margin-top:5px; padding:6px 9px; border:0; border-radius:5px; color:white; background:var(--green); font-size:9px; cursor:pointer; }
.physics-paper-self-rating { margin:12px 0 8px; padding:11px 12px; border:1px solid #d4dfd6; border-radius:7px; background:white; }.physics-paper-self-rating > b { color:#486351; font-size:10px; }.physics-paper-self-rating > p { margin:4px 0 8px; color:#68766c; font-size:9px; }.physics-paper-self-rating > div { display:flex; flex-wrap:wrap; gap:6px; }.physics-paper-self-rating button { padding:6px 9px; border:1px solid #bdccc0; border-radius:5px; color:#536c5a; background:#f8faf7; font-size:9px; cursor:pointer; }.physics-paper-self-rating button.active { color:white; border-color:var(--green); background:var(--green); }
.physics-paper-submit-check { display:grid; grid-template-columns:auto 1fr auto auto; gap:12px; align-items:center; margin:16px 22px 4px; padding:14px 15px; border:1px solid #e4b38e; border-radius:8px; background:#fff0e4; }.physics-paper-submit-check > span { display:grid; place-items:center; width:30px; height:30px; border-radius:50%; color:white; background:var(--orange); font-weight:800; }.physics-paper-submit-check h3 { margin:0; font-size:14px; }.physics-paper-submit-check p { margin:3px 0 0; color:#785f50; font-size:10px; line-height:1.6; }.physics-paper-submit-check button { padding:8px 10px; border:1px solid #d0b8a6; border-radius:5px; color:#725845; background:white; font-size:9px; cursor:pointer; }.physics-paper-submit-check button.confirm { color:white; border-color:var(--orange); background:var(--orange); }
.physics-paper-report-summary { margin:17px 22px 5px; overflow:hidden; border:1px solid #cadccf; border-radius:10px; background:#fbfdfb; }.physics-paper-report-summary > header { display:flex; justify-content:space-between; align-items:center; gap:20px; padding:17px 19px; color:white; background:linear-gradient(135deg,#436a50,#63806a); }.physics-paper-report-summary header span { color:#c7ddcd; font-size:8px; font-weight:800; letter-spacing:.11em; }.physics-paper-report-summary h3 { margin:4px 0; font-size:18px; }.physics-paper-report-summary header p { margin:0; color:#d7e4d9; font-size:10px; }.physics-paper-report-summary header > strong { flex:0 0 auto; font-family:Georgia,serif; font-size:34px; }.physics-paper-report-summary header > strong small { font-family:system-ui,sans-serif; font-size:10px; }.physics-paper-report-summary > div { display:grid; grid-template-columns:repeat(4,1fr); }.physics-paper-report-summary article { padding:13px; border-right:1px solid #e0e7e1; text-align:center; }.physics-paper-report-summary article:last-child { border:0; }.physics-paper-report-summary article b { display:block; color:var(--green); font-family:Georgia,serif; font-size:20px; }.physics-paper-report-summary article span,.physics-paper-report-summary article small { display:block; color:#647269; font-size:9px; }.physics-paper-report-summary > footer { padding:10px 14px; color:#5b715f; background:#edf4ed; font-size:10px; text-align:center; }.physics-paper-report-summary > footer.review { color:#805c3f; background:#faf0df; }
.physics-paper-print-copy { display:none; }
.physics-paper-footer { display:flex; justify-content:space-between; align-items:center; gap:20px; padding:17px 22px; border-top:1px solid #dfe2df; background:#f4f6f4; }
.physics-paper-footer p { margin:0; color:#637269; font-size:10px; line-height:1.65; }.physics-paper-footer > div { display:flex; flex:0 0 auto; gap:7px; }
.physics-paper-footer button { flex:0 0 auto; padding:8px 11px; border:0; border-radius:5px; color:white; background:var(--phy-dark); font-size:9px; cursor:pointer; }

.physics-review-intro { display:flex; justify-content:space-between; gap:30px; max-width:none; }.physics-review-intro > div:first-child { max-width:900px; }.physics-review-count { flex:0 0 auto; align-self:flex-end; padding:13px 17px; border:1px solid #d8dfdf; border-radius:9px; background:rgba(255,255,255,.5); }.physics-review-count strong { color:var(--blue); font-family:Georgia,serif; font-size:28px; }.physics-review-count span { color:var(--muted); font-size:11px; }
.physics-review-guide { display:grid; grid-template-columns:1fr auto 1fr auto 1fr; gap:14px; align-items:center; margin-bottom:17px; padding:16px 19px; border:1px solid #d7e1e3; border-radius:10px; background:#eef4f6; }.physics-review-guide div { display:flex; align-items:center; gap:10px; }.physics-review-guide div > b { display:grid; place-items:center; flex:0 0 27px; width:27px; height:27px; border-radius:50%; color:white; background:var(--blue); font-family:Georgia,serif; }.physics-review-guide p { margin:0; color:#65757c; font-size:11px; }.physics-review-guide p strong { display:block; color:var(--ink); font-size:12px; }.physics-review-guide > i { color:#aebdbf; font-style:normal; }
.physics-proof-boundary { display:flex; gap:15px; margin-bottom:18px; padding:16px 18px; border-left:4px solid var(--orange); background:#faf1e8; }.physics-proof-boundary > span { flex:0 0 auto; align-self:flex-start; padding:4px 7px; border-radius:4px; color:white; background:var(--orange); font-size:10px; font-weight:700; }.physics-proof-boundary h3 { margin:0 0 4px; font-size:14px; }.physics-proof-boundary p { margin:0; color:#6e6055; font-size:12px; line-height:1.75; }
.physics-review-toolbar { display:flex; justify-content:space-between; gap:14px; align-items:center; margin-bottom:16px; }.physics-formula-tabs { display:flex; flex:1; gap:5px; }.physics-formula-tabs button { display:flex; align-items:center; gap:6px; padding:8px 10px; border:1px solid var(--line); border-radius:7px; color:#68787e; background:rgba(255,255,255,.55); font-size:10px; cursor:pointer; }.physics-formula-tabs b { color:var(--blue); font-family:Georgia,serif; }.physics-formula-tabs button.active { color:white; border-color:var(--phy-dark); background:var(--phy-dark); }.physics-formula-tabs button.active b { color:#aac9d7; }.physics-review-toolbar > label { display:flex; align-items:center; gap:8px; min-width:275px; padding:9px 12px; border:1px solid var(--line); border-radius:7px; background:white; }.physics-review-toolbar label span { color:var(--blue); }.physics-review-toolbar input { width:100%; border:0; outline:0; color:var(--ink); background:transparent; font-size:11px; }
.physics-formula-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:14px; }.physics-formula-card { overflow:hidden; border:1px solid #d9dfdd; border-radius:11px; background:var(--card); box-shadow:0 8px 25px rgba(26,50,61,.04); }.physics-formula-card > header { display:grid; grid-template-columns:37px 1fr; gap:10px; align-items:center; padding:15px 17px; border-bottom:1px solid #e7e8e2; }.physics-formula-card > header > span { display:grid; place-items:center; width:35px; height:35px; border-radius:9px; color:white; background:var(--blue); font-family:Georgia,serif; }.physics-formula-card header small { color:var(--blue); font-size:9px; }.physics-formula-card h3 { margin:2px 0 0; font-size:15px; }.physics-formula-expression { min-height:75px; display:grid; place-items:center; padding:16px; color:#21485b; background:#eef4f6; font-family:"STIX Two Math","Cambria Math",Georgia,serif; font-size:22px; font-weight:700; text-align:center; }.physics-formula-card dl { display:grid; gap:0; margin:0; padding:11px 16px; }.physics-formula-card dl div { display:grid; grid-template-columns:66px 1fr; gap:8px; padding:9px 0; border-bottom:1px solid #ecebe5; }.physics-formula-card dl div:last-child { border:0; }.physics-formula-card dt { color:#66777d; font-size:10px; font-weight:700; }.physics-formula-card dd { margin:0; color:#56686f; font-size:11px; line-height:1.65; }.physics-formula-card dl .condition dt { color:var(--green); }.physics-formula-card dl .warning dt { color:var(--orange); }.physics-formula-card > button { width:100%; padding:11px 16px; border:0; border-top:1px solid #e8e8e2; color:var(--blue); background:#fafbf9; font-size:10px; text-align:left; cursor:pointer; }.physics-formula-empty { grid-column:1/-1; padding:70px 20px; border:1px dashed #c7c7bf; border-radius:10px; text-align:center; }.physics-formula-empty span { font-size:30px; }.physics-formula-empty h3 { margin:10px 0 4px; }.physics-formula-empty p { color:var(--muted); }

/* Full physics classroom */
.physics-lesson { background:var(--card); }
.physics-lesson-hero { position:relative; overflow:hidden; padding:38px 48px 34px; color:white; background:radial-gradient(circle at 90% 20%, color-mix(in srgb,var(--lesson-color) 35%,transparent),transparent 28%),linear-gradient(135deg,#102d3b,#254e60); }
.physics-lesson-hero::after { content:""; position:absolute; right:-65px; bottom:-130px; width:300px; height:300px; border:1px solid rgba(255,255,255,.09); border-radius:50%; box-shadow:0 0 0 34px rgba(255,255,255,.025); }
.physics-lesson-path { display:flex; gap:7px; align-items:center; color:#91acb7; font-size:12px; }.physics-lesson-path i { color:#617e89; font-style:normal; }
.physics-lesson-hero h1 { position:relative; z-index:1; max-width:760px; margin:13px 45px 8px 0; font-family:Georgia,"Noto Serif SC",serif; font-size:31px; line-height:1.45; }.physics-lesson-hero > p { max-width:760px; margin:0; color:#c1d3da; font-size:15px; line-height:1.8; }
.physics-lesson-meta { display:flex; flex-wrap:wrap; gap:16px; margin-top:18px; color:#9fb5bd; font-size:12px; }
.physics-objectives { display:grid; grid-template-columns:repeat(3,1fr); gap:9px; position:relative; z-index:1; margin-top:20px; }.physics-objectives div { padding:11px 13px; border:1px solid rgba(255,255,255,.11); border-radius:7px; background:rgba(255,255,255,.05); }.physics-objectives b { display:block; color:#a9cedd; font-size:11px; }.physics-objectives span { display:block; margin-top:3px; color:#d5e1e5; font-size:13px; line-height:1.6; }
.physics-lesson-body { padding:30px 46px 42px; }
.physics-lesson-map { display:flex; flex-wrap:wrap; gap:6px; margin-bottom:19px; }.physics-lesson-map span { padding:6px 9px; border-radius:20px; color:#728086; background:#f0eee7; font-size:11px; }.physics-lesson-map span.active { color:white; background:var(--blue); }
.physics-lesson-summary { margin-bottom:20px; overflow:hidden; border:1px solid #cbdde5; border-top:5px solid var(--blue); border-radius:11px; background:#fbfdfd; box-shadow:0 8px 25px rgba(40,78,96,.055); }
.physics-lesson-summary > header { display:flex; justify-content:space-between; align-items:center; gap:14px; padding:15px 18px; border-bottom:1px solid #dce6e9; background:#edf4f7; }
.physics-lesson-summary > header > div { display:flex; align-items:center; gap:10px; }
.physics-lesson-summary > header span { padding:5px 8px; border-radius:5px; color:white; background:var(--blue); font-size:11px; font-weight:800; }
.physics-lesson-summary > header h2 { margin:0; font-size:18px; }
.physics-lesson-summary > header small { color:#687a82; font-size:11px; }
.physics-summary-memory { display:grid; grid-template-columns:auto 1fr; gap:12px; align-items:center; padding:17px 19px; color:white; background:linear-gradient(135deg,#315d70,#46788c); }
.physics-summary-memory > span { padding:4px 8px; border:1px solid rgba(255,255,255,.35); border-radius:5px; color:#d9e9ef; background:rgba(255,255,255,.07); font-size:11px; font-weight:700; }
.physics-summary-memory > strong { font-family:Georgia,"Noto Serif SC",serif; font-size:17px; line-height:1.7; }
.physics-summary-grid { display:grid; grid-template-columns:minmax(0,1.05fr) minmax(280px,.95fr); }
.physics-summary-grid > div,.physics-summary-grid > aside { padding:18px 20px; }
.physics-summary-grid > aside { border-left:1px solid #dde6e7; background:#f6f9f9; }
.physics-summary-grid h3 { margin:0 0 11px; color:#345564; font-size:14px; }
.physics-summary-points ol { display:grid; gap:9px; margin:0; padding:0; list-style:none; }
.physics-summary-points li { display:grid; grid-template-columns:25px 1fr; gap:9px; align-items:flex-start; }
.physics-summary-points li i { display:grid; place-items:center; width:23px; height:23px; border-radius:50%; color:var(--blue); background:var(--blue-soft); font-family:Georgia,serif; font-size:10px; font-style:normal; font-weight:700; }
.physics-summary-points li p { margin:0; color:#445a63; font-size:14px; line-height:1.7; }
.physics-summary-formula-list { display:grid; gap:8px; }
.physics-summary-formula-list article { display:grid; grid-template-columns:auto minmax(110px,auto) 1fr; gap:9px; align-items:center; padding:10px 11px; border:1px solid #d6e2e5; border-radius:7px; background:white; }
.physics-summary-formula-list article > span { padding:3px 6px; border-radius:4px; color:white; background:#6f94a7; font-size:9px; font-weight:700; }
.physics-summary-formula-list strong { color:#21495c; font-family:"STIX Two Math","Cambria Math",Georgia,serif; font-size:20px; white-space:nowrap; }
.physics-summary-formula-list p { margin:0; color:#65767c; font-size:11px; line-height:1.55; }
.physics-summary-no-formula { padding:14px 15px; border-left:4px solid var(--yellow); border-radius:7px; background:#faf3df; }
.physics-summary-no-formula > span { color:#a47729; font-size:10px; font-weight:800; }
.physics-summary-no-formula > strong { display:block; margin:5px 0; color:#5e5238; font-size:15px; }
.physics-summary-no-formula p { margin:0; color:#6e634b; font-size:12px; line-height:1.7; }
.physics-textbook-match { display:grid; grid-template-columns:auto 1fr; gap:13px; align-items:center; margin-bottom:20px; padding:14px 16px; border:1px solid #cdddcf; border-radius:9px; background:#eff5ed; }.physics-textbook-match > span { padding:6px 8px; border-radius:5px; color:white; background:var(--green); font-size:11px; font-weight:700; }.physics-textbook-match b { font-size:14px; }.physics-textbook-match p { margin:3px 0 0; color:#617166; font-size:12px; line-height:1.6; }
.physics-scene { display:grid; grid-template-columns:minmax(240px,.75fr) minmax(0,1.25fr); gap:16px; align-items:stretch; }.physics-scene > div:first-child { display:flex; flex-direction:column; justify-content:center; padding:23px; border-radius:11px; color:white; background:linear-gradient(145deg,#315e72,#203f4e); }.physics-scene > div > span { color:#a8c5d1; font-size:10px; font-weight:800; letter-spacing:.1em; }.physics-scene h2 { margin:10px 0 15px; font-family:Georgia,"Noto Serif SC",serif; font-size:21px; line-height:1.65; }.physics-scene details { border-top:1px solid rgba(255,255,255,.13); padding-top:13px; }.physics-scene summary { color:#e0c293; font-size:12px; cursor:pointer; }.physics-scene details p { margin:10px 0 0; color:#cbd9de; font-size:14px; line-height:1.85; }.physics-scene .physics-diagram { height:100%; margin:0; }.physics-scene .physics-diagram svg { min-height:255px; }
.physics-nature { display:flex; gap:14px; align-items:flex-start; margin:20px 0 29px; padding:15px 17px; border-left:4px solid var(--blue); background:#eef4f6; }.physics-nature.experiment,.physics-nature.law { border-left-color:var(--green); background:#eef5ed; }.physics-nature > span { flex:0 0 auto; padding:5px 8px; border-radius:4px; color:white; background:var(--blue); font-size:10px; font-weight:700; }.physics-nature.experiment > span,.physics-nature.law > span { background:var(--green); }.physics-nature h3 { margin:0 0 3px; font-size:15px; }.physics-nature p { margin:0; color:#5c7078; font-size:13px; line-height:1.75; }
.physics-lesson-section { margin-top:34px; padding-left:26px; border-left:1px solid #d7d7cf; }.physics-lesson-section > header { display:flex; gap:12px; align-items:flex-start; position:relative; }.physics-lesson-section > header > span { display:grid; place-items:center; position:absolute; left:-41px; top:-2px; width:29px; height:29px; border-radius:50%; color:white; background:var(--phy-dark); font-family:Georgia,serif; font-size:10px; }.physics-lesson-section > header h2 { margin:0; font-size:21px; }.physics-lesson-section > header p { margin:3px 0 0; color:var(--muted); font-size:12px; }
.physics-concepts { display:grid; gap:15px; margin-top:15px; }.physics-concepts > article { padding:20px; border:1px solid #dcded9; border-radius:10px; background:#fffefa; }.physics-concept-title { display:grid; grid-template-columns:35px 1fr; gap:12px; align-items:flex-start; }.physics-concept-title > span { display:grid; place-items:center; width:33px; height:33px; border-radius:9px; color:var(--blue); background:var(--blue-soft); font-family:Georgia,serif; font-weight:700; }.physics-concept-title h3 { margin:0 0 5px; font-size:19px; }.physics-concept-title p { margin:0; color:#68777d; font-size:15px; line-height:1.8; }
.physics-precise { margin-top:15px; padding:14px 16px; border-radius:8px; background:#f2f0e9; }.physics-precise b { color:var(--phy-dark); font-size:12px; }.physics-precise p { margin:5px 0 0; color:#465b65; font-size:15px; line-height:1.9; }
.physics-reason-chain { margin-top:13px; overflow:hidden; border:1px solid #d8e3e6; border-radius:8px; }.physics-reason-chain > header { display:flex; justify-content:space-between; padding:11px 14px; color:white; background:#426b7d; }.physics-reason-chain header b { font-size:11px; font-weight:600; }
.physics-reason-chain header span { font-size:12px; }.physics-reason-chain ol { margin:0; padding:7px 15px; list-style:none; }.physics-reason-chain li { display:grid; grid-template-columns:30px 1fr; gap:10px; align-items:flex-start; padding:11px 0; border-bottom:1px solid #e4eaeb; }.physics-reason-chain li:last-child { border:0; }.physics-reason-chain li i { display:grid; place-items:center; width:27px; height:27px; border-radius:50%; color:#315e72; background:#e4eff3; font-family:Georgia,serif; font-style:normal; }.physics-reason-chain li p { margin:0; color:#3e555f; font-size:15px; line-height:1.85; }
.physics-mini-check { display:flex; justify-content:space-between; gap:15px; align-items:flex-start; margin-top:13px; padding:13px 15px; border-left:3px solid var(--yellow); background:#faf3df; }.physics-mini-check p { margin:0; color:#645b45; font-size:14px; line-height:1.75; }.physics-mini-check details { flex:0 0 175px; }.physics-mini-check summary { color:#a4792d; font-size:12px; cursor:pointer; }.physics-mini-check details span { display:block; margin-top:6px; color:#566a58; font-size:13px; line-height:1.7; }
.physics-compare-table { margin-top:14px; overflow:auto; border:1px solid #daddd8; border-radius:9px; }.physics-compare-table table { width:100%; border-collapse:collapse; }.physics-compare-table th,.physics-compare-table td { padding:12px 14px; border-right:1px solid #e4e5e0; border-bottom:1px solid #e4e5e0; font-size:13px; text-align:left; }.physics-compare-table thead th { color:white; background:var(--phy-dark); }.physics-compare-table tbody th { color:var(--blue); background:#eef4f6; }
.physics-worked-list { display:grid; gap:14px; margin-top:15px; }.physics-worked-list > article { overflow:hidden; border:1px solid #d9dcd7; border-radius:10px; }.physics-worked-list > article > header { padding:13px 17px; background:#f0eee7; }.physics-worked-list header span { color:var(--blue); font-size:10px; font-weight:800; }.physics-worked-list header h3 { display:inline; margin-left:8px; font-size:15px; }.physics-worked-problem { padding:17px 19px; font-size:17px; font-weight:600; line-height:1.75; }.physics-worked-list ol { margin:0; padding:0 19px 10px; list-style:none; }.physics-worked-list li { display:grid; grid-template-columns:28px 72px 1fr; gap:10px; align-items:flex-start; padding:10px 0; border-bottom:1px solid #ecebe5; }.physics-worked-list li i { display:grid; place-items:center; width:25px; height:25px; border-radius:50%; color:white; background:var(--blue); font-family:Georgia,serif; font-size:10px; font-style:normal; }.physics-worked-list li b { color:var(--orange); font-size:13px; }.physics-worked-list li p { margin:0; color:#455a63; font-size:15px; line-height:1.8; }.physics-worked-answer { display:flex; gap:10px; align-items:center; margin:3px 19px 13px; padding:12px 14px; border-radius:7px; color:#45604e; background:var(--green-soft); }.physics-worked-answer span { padding:3px 6px; border-radius:4px; color:white; background:var(--green); font-size:10px; }.physics-worked-answer b { font-size:14px; }.physics-transfer { padding:12px 18px; color:#6f5d47; background:#faf3df; font-size:13px; line-height:1.75; }.physics-transfer b { color:#9c722b; }
.physics-experiment { margin-top:15px; overflow:hidden; border:1px solid #cadccf; border-radius:10px; background:#fbfdf9; }.physics-experiment > header { display:flex; gap:13px; align-items:center; padding:15px 18px; color:white; background:#52745e; }.physics-experiment > header > span { padding:5px 8px; border:1px solid rgba(255,255,255,.35); border-radius:4px; font-size:10px; }.physics-experiment h3 { margin:0; font-size:17px; }.physics-experiment header p { margin:3px 0 0; color:#d4e2d7; font-size:12px; }.physics-experiment-meta { display:grid; grid-template-columns:1fr 1fr; gap:1px; background:#dce7de; }.physics-experiment-meta p { margin:0; padding:13px 16px; color:#51665a; background:#f2f7f1; font-size:12px; line-height:1.7; }.physics-experiment-meta b { display:block; color:#52745e; font-size:11px; }.physics-experiment > ol { margin:0; padding:12px 20px; list-style:none; }.physics-experiment > ol li { display:grid; grid-template-columns:28px 1fr; gap:10px; align-items:start; padding:8px 0; }.physics-experiment li i { display:grid; place-items:center; width:25px; height:25px; border-radius:50%; color:#52745e; background:#e0ede2; font-family:Georgia,serif; font-style:normal; }.physics-experiment li p { margin:0; color:#43584b; font-size:14px; line-height:1.8; }.physics-experiment-conclusion { padding:14px 17px; border-top:1px solid #d8e5da; color:#43604b; background:#edf5ec; font-size:14px; line-height:1.75; }
.physics-pitfalls { display:grid; grid-template-columns:repeat(2,1fr); gap:10px; margin-top:14px; }.physics-pitfalls article { display:grid; grid-template-columns:29px 1fr; gap:10px; padding:16px; border-radius:8px; background:#faf1df; }.physics-pitfalls article > span { display:grid; place-items:center; width:27px; height:27px; border-radius:50%; color:white; background:#c78b58; font-weight:700; }.physics-pitfalls h3 { margin:1px 0 5px; color:#79562f; font-size:15px; }.physics-pitfalls p { margin:0; color:#706047; font-size:13px; line-height:1.75; }
.physics-layered-practice { display:grid; gap:12px; margin-top:14px; }.physics-practice-layer { overflow:hidden; border:1px solid #d9dcd7; border-left:4px solid var(--green); border-radius:9px; }.physics-practice-layer.standard { border-left-color:var(--blue); }.physics-practice-layer.challenge { border-left-color:var(--orange); }.physics-practice-layer > header { display:flex; justify-content:space-between; align-items:center; gap:15px; padding:13px 16px; background:#f0f3ed; }.physics-practice-layer.standard > header { background:#eef4f6; }.physics-practice-layer.challenge > header { background:#faf0e9; }.physics-practice-layer header > div { display:flex; align-items:center; gap:8px; }.physics-practice-layer header span { display:grid; place-items:center; width:27px; height:27px; border-radius:6px; color:white; background:var(--green); font-family:Georgia,serif; font-weight:700; }.physics-practice-layer.standard header span { background:var(--blue); }.physics-practice-layer.challenge header span { background:var(--orange); }.physics-practice-layer h3 { margin:0; font-size:15px; }.physics-practice-layer header > p { margin:0; color:var(--muted); font-size:11px; }.physics-practice-layer > ol { margin:0; padding:12px 20px 5px 42px; }.physics-practice-layer > ol > li { padding:8px 0; color:#40535b; font-size:15px; line-height:1.8; }.physics-practice-layer li > p { display:inline; margin:0; }.physics-practice-layer li > details { display:inline; margin-left:8px; }.physics-practice-layer li summary { display:inline; color:var(--blue); font-size:11px; cursor:pointer; }.physics-practice-layer li details span { display:block; margin:5px 0 0; padding:8px 10px; border-radius:5px; color:#68715e; background:#f4f2e9; font-size:12px; }.physics-layer-answers { margin:6px 15px 14px; }.physics-layer-answers > summary { color:var(--orange); font-size:12px; cursor:pointer; }.physics-layer-answers > div { display:grid; grid-template-columns:repeat(2,1fr); gap:8px; margin-top:9px; }.physics-layer-answers article { padding:12px 13px; border-radius:7px; background:var(--green-soft); }.physics-layer-answers article b { color:var(--green); font-size:11px; }.physics-layer-answers article p { margin:5px 0 0; color:#40594a; font-size:13px; line-height:1.75; }.physics-practice-layer.challenge .physics-layer-answers article { background:var(--orange-soft); }.physics-practice-layer.challenge .physics-layer-answers article b { color:var(--orange); }
.physics-more-practice { display:flex; justify-content:space-between; align-items:center; gap:20px; margin-top:22px; padding:19px 21px; border:1px solid #d3e0e4; border-left:5px solid var(--blue); border-radius:9px; background:#eef4f6; }
.physics-more-practice span { color:var(--blue); font-size:9px; font-weight:800; letter-spacing:.12em; }
.physics-more-practice h2 { margin:5px 0; font-size:17px; }
.physics-more-practice p { margin:0; color:#63767e; font-size:12px; line-height:1.7; }
.physics-more-practice > div:last-child { display:flex; flex:0 0 auto; gap:7px; }
.physics-more-practice button { padding:9px 11px; border:1px solid var(--blue); border-radius:6px; color:var(--blue); background:white; font-size:10px; font-weight:700; cursor:pointer; }
.physics-more-practice button.strong { color:white; background:var(--blue); }
.physics-exit { margin-top:34px; padding:22px; border:2px solid var(--phy-dark); border-radius:10px; }.physics-exit > span { color:var(--blue); font-size:10px; font-weight:800; letter-spacing:.14em; }.physics-exit h2 { margin:7px 0 5px; font-size:19px; line-height:1.6; }.physics-exit > p { margin:0; color:var(--muted); font-size:13px; }.physics-exit details { margin-top:12px; }.physics-exit summary { color:var(--orange); font-size:13px; cursor:pointer; }.physics-exit details div { margin-top:9px; padding:13px 15px; color:#44614e; background:var(--green-soft); font-size:14px; line-height:1.8; }
.physics-review-schedule { display:grid; grid-template-columns:repeat(4,1fr); gap:8px; margin-top:15px; }.physics-review-schedule div { padding:13px 8px; border-radius:7px; background:#f0eee7; text-align:center; }.physics-review-schedule b { display:block; color:var(--blue); font-size:13px; }.physics-review-schedule span { display:block; margin-top:3px; color:var(--muted); font-size:11px; line-height:1.5; }
.physics-complete { width:100%; margin-top:16px; padding:14px; border:0; border-radius:7px; color:white; background:var(--blue); font-size:14px; font-weight:700; cursor:pointer; }.physics-complete.done { background:var(--green); }

@media (max-width:1180px) {
  .physics-course-grid,.physics-formula-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .physics-practice-layout,.physics-practice-layout.paper-mode { grid-template-columns:205px 1fr; }.physics-weak-profile { grid-column:2; }
}
@media (max-width:980px) {
  .physics-hero,.physics-dashboard-grid { grid-template-columns:1fr; }.physics-compass { max-width:360px; }
  .physics-side-stack { grid-template-columns:1fr 1fr; }.physics-visual-feature { grid-template-columns:1fr; }
  .physics-route-chapter { grid-template-columns:230px 1fr; }.physics-lab-grid { grid-template-columns:1fr; }.physics-simulator { border-right:0; border-bottom:1px solid #e0e5e4; }
  .physics-practice-layout,.physics-practice-layout.paper-mode { grid-template-columns:1fr; }.physics-practice-nav { display:grid; grid-template-columns:repeat(4,1fr); gap:5px; }.physics-practice-nav > h3,.physics-practice-discipline { display:none; }.physics-practice-nav > button { display:block; text-align:center; }.physics-practice-nav > button > span { margin:0 auto 4px; }.physics-practice-nav button small { display:none; }.physics-practice-nav button em { margin:3px auto 0; }.physics-weak-profile { grid-column:auto; }
}
@media (max-width:760px) {
  .physics-hero { padding:31px 24px; }.physics-rule-strip { grid-template-columns:1fr 1fr; }.physics-paper-entry { align-items:flex-start; flex-direction:column; }.physics-paper-entry button { width:100%; }.physics-rule-strip > i { display:none; }.physics-side-stack { grid-template-columns:1fr; }
  .physics-route-chapter { grid-template-columns:1fr; }.physics-route-goal { grid-template-columns:1fr; }.physics-week-rhythm > div { flex-wrap:wrap; justify-content:flex-start; }.physics-week-rhythm i { display:none; }
  .physics-course-tabs { overflow-x:auto; grid-template-columns:repeat(5,145px); }.physics-course-grid,.physics-formula-grid { grid-template-columns:1fr; }
  .physics-lab-controls,.physics-lab-lessons { grid-template-columns:1fr; }.physics-live-equations { grid-template-columns:1fr; }.physics-animation-grid { grid-template-columns:1fr; }.physics-exp-controls.three { grid-template-columns:repeat(2,minmax(0,1fr)); }.physics-animation-card > header { align-items:flex-start; }.physics-experiment-library > div { grid-template-columns:1fr; }
  .physics-paper-library > header { align-items:flex-start; flex-direction:column; }.physics-paper-library > header p { text-align:left; }.physics-paper-card-grid { grid-template-columns:1fr; }.physics-paper-head { align-items:flex-start; }.physics-paper-preview-banner { align-items:flex-start; flex-wrap:wrap; }.physics-paper-preview-banner > span { width:100%; }.physics-paper-actions { grid-template-columns:1fr; }.physics-paper-actions p { text-align:left; }.physics-paper-options { grid-template-columns:1fr; }.physics-paper-submit-check { grid-template-columns:auto 1fr; }.physics-paper-submit-check button { grid-column:auto; }.physics-paper-report-summary > div { grid-template-columns:repeat(2,1fr); }.physics-paper-report-summary article:nth-child(2) { border-right:0; }.physics-paper-footer { align-items:flex-start; flex-direction:column; }
  .physics-review-intro { display:block; }.physics-review-count { display:inline-block; margin-top:12px; }.physics-review-guide { grid-template-columns:1fr; }.physics-review-guide > i { display:none; }.physics-review-toolbar { align-items:stretch; flex-direction:column; }.physics-formula-tabs { overflow-x:auto; }.physics-review-toolbar > label { min-width:0; }
  .physics-lesson-hero { padding:33px 23px 28px; }.physics-lesson-body { padding:24px 20px 35px; }.physics-more-practice { align-items:flex-start; flex-direction:column; }.physics-more-practice > div:last-child { width:100%; }.physics-more-practice button { flex:1; }.physics-objectives { grid-template-columns:1fr; }.physics-lesson-summary > header { align-items:flex-start; flex-direction:column; }.physics-summary-grid { grid-template-columns:1fr; }.physics-summary-grid > aside { border-top:1px solid #dde6e7; border-left:0; }.physics-scene { grid-template-columns:1fr; }.physics-scene .physics-diagram svg { min-height:190px; }.physics-mini-check { flex-direction:column; }.physics-mini-check details { flex:auto; }.physics-experiment-meta { grid-template-columns:1fr; }.physics-pitfalls { grid-template-columns:1fr; }.physics-layer-answers > div { grid-template-columns:1fr; }
}
@media (max-width:540px) {
  .physics-hero h1 { font-size:34px; }.physics-compass dl { grid-template-columns:1fr; }.physics-lab-main > header { align-items:flex-start; flex-direction:column; }.physics-prominent-play,.physics-prominent-play.compact { width:100%; min-width:0; }.physics-animation-card > header { flex-direction:column; width:100%; }.physics-exp-controls,.physics-exp-controls.single,.physics-exp-controls.three { grid-template-columns:1fr; }.physics-animation-card > footer { align-items:flex-start; flex-direction:column; }.orbit { width:135px;height:135px; }.physics-rule-strip { grid-template-columns:1fr; }.physics-today { padding:20px 16px; }.physics-today > header { align-items:flex-start; flex-direction:column; }.physics-today-list article { grid-template-columns:38px 1fr; }.physics-today-list article > b { grid-column:2; }.physics-foundation-depth > div { grid-template-columns:1fr; }
  .physics-route-main { padding:18px 16px; }.physics-route-main li { grid-template-columns:32px 1fr; }.physics-route-main li > span { display:none; }
  .physics-practice-nav { grid-template-columns:repeat(3,1fr); padding:11px; }.physics-question-card { min-height:0; padding:22px 17px; }.physics-paper-head { flex-direction:column; }.physics-paper-head > div:last-child { text-align:left; }.physics-paper-submit-check { grid-template-columns:1fr; }.physics-paper-submit-check > span { display:none; }.physics-paper-submit-check button { width:100%; }.physics-paper-report-summary > header { align-items:flex-start; flex-direction:column; }.physics-paper-report-summary > div { grid-template-columns:1fr; }.physics-paper-report-summary article { border-right:0; border-bottom:1px solid #e0e7e1; }.physics-preview-banner { grid-template-columns:1fr; }.physics-preview-banner > b { width:max-content; }.physics-preview-banner > span { white-space:normal; }.physics-preview-controls { align-items:flex-start; flex-direction:column; }.physics-preview-controls > div { width:100%; }.physics-preview-controls button { flex:1; }.physics-preview-map > summary span { display:block; margin:3px 0 0; }.physics-paper-preview-banner { flex-direction:column; }.physics-paper-number-nav > header { align-items:flex-start; flex-direction:column; }.physics-paper-footer > div { width:100%; flex-direction:column; }.physics-paper-footer button { width:100%; }.physics-lesson-practice-banner { grid-template-columns:1fr; }.physics-lesson-practice-banner > span { width:max-content; }.physics-more-practice > div:last-child { flex-direction:column; }.physics-question-card > h2 { font-size:19px; }.physics-options button { font-size:13px; }
  .physics-proof-boundary { flex-direction:column; }.physics-formula-tabs button { flex:0 0 auto; }
  .physics-lesson-hero h1 { font-size:25px; }.physics-lesson-meta { gap:7px; flex-direction:column; }.physics-summary-memory { grid-template-columns:1fr; }.physics-summary-memory > strong { font-size:15px; }.physics-summary-formula-list article { grid-template-columns:auto 1fr; }.physics-summary-formula-list article p { grid-column:1/-1; }.physics-lesson-section { padding-left:20px; }.physics-lesson-section > header > span { left:-35px; }.physics-concept-title { grid-template-columns:30px 1fr; }.physics-concepts > article { padding:16px 13px; }.physics-worked-list li { grid-template-columns:25px 60px 1fr; gap:7px; }.physics-worked-list li p,.physics-reason-chain li p,.physics-precise p { font-size:14px; }.physics-practice-layer > header { align-items:flex-start; flex-direction:column; }.physics-review-schedule { grid-template-columns:1fr 1fr; }
}

@media print {
  @page { size: A4; margin: 12mm; }
  body { color: #111; background: white; }
  .sidebar, .topbar, .formula-print, .formula-use-guide, .formula-toolbar, .formula-tabs, .toast { display: none !important; }
  .main-content { width: 100%; margin: 0; }
  .view { display: none !important; max-width: none; padding: 0; }
  #formulasView { display: block !important; }
  .formula-page-intro { margin-bottom: 12px; }
  .formula-page-intro h1 { font-size: 25px; }
  .essential-formulas { color: #111; background: white; border: 2px solid #233f4c; box-shadow: none; }
  .formula-section-heading > div > span, .essential-grid article > span, .essential-grid strong, .essential-grid h3 { color: #111; }
  .formula-section-heading > p, .essential-grid p { color: #444; }
  .essential-grid article { border-color: #bbb; background: white; }
  .formula-review-content { gap: 18px; }
  .formula-card-grid { gap: 8px; }
  .formula-card { box-shadow: none; border-color: #bbb; }
  .formula-chapter { break-before: page; }
  .formula-chapter:first-child { break-before: auto; }
  .formula-card, .essential-grid article, .formula-table { break-inside: avoid; }

  body.print-physics-paper #formulasView { display: none !important; }
  body.print-physics-paper #physicsPracticeView { display: block !important; }
  body.print-physics-paper #physicsPracticeView > .page-intro,
  body.print-physics-paper .physics-practice-nav,
  body.print-physics-paper .physics-paper-preview-banner,
  body.print-physics-paper .physics-paper-actions,
  body.print-physics-paper .physics-paper-number-nav,
  body.print-physics-paper .physics-paper-report-summary,
  body.print-physics-paper .physics-paper-submit-check,
  body.print-physics-paper .physics-paper-exam-list,
  body.print-physics-paper .physics-paper-question > details,
  body.print-physics-paper .physics-paper-question-nav,
  body.print-physics-paper .physics-paper-footer { display: none !important; }
  body.print-physics-paper .physics-paper-print-copy { display: block !important; }
  body.print-physics-paper .physics-practice-layout.paper-mode { display: block; }
  body.print-physics-paper .physics-question-card.physics-paper-shell { min-height: 0; border: 0; box-shadow: none; }
  body.print-physics-paper .physics-paper-head { padding: 0 0 12px; color: #111; background: white; border-bottom: 2px solid #111; }
  body.print-physics-paper .physics-paper-head > div:first-child > span,
  body.print-physics-paper .physics-paper-head p,
  body.print-physics-paper .physics-paper-head > div:last-child small { color: #333; }
  body.print-physics-paper .physics-paper-time > em,
  body.print-physics-paper #physicsPaperTimer { display:none; }
  body.print-physics-paper .physics-paper-time .physics-paper-print-score { display:block !important; color:#111; }
  body.print-physics-paper .physics-paper-head > div:last-child b { color: #111; }
  body.print-physics-paper .physics-paper-instructions { margin: 10px 0; color: #111; background: white; border-color: #999; }
  body.print-physics-paper .physics-paper-question-list { gap: 7px; padding: 0; }
  body.print-physics-paper .physics-paper-question { border-color: #aaa; box-shadow: none; }
  body.print-physics-paper .physics-paper-question > header { padding: 6px 9px; background: #f3f3f3; }
  body.print-physics-paper .physics-paper-question > header > span { color: #111; background: white; border: 1px solid #555; }
  body.print-physics-paper .physics-paper-question > h3 { padding: 9px 11px 6px; font-size: 13px; }
  body.print-physics-paper .physics-paper-options { gap: 4px; padding: 2px 11px 9px; }
  body.print-physics-paper .physics-paper-options span { padding: 5px 7px; font-size: 10px; }
  body.print-physics-paper .physics-paper-response-lines { gap: 13px; padding-bottom: 15px; }
}
