/* Source: keep-hustling.css */
.hustle-opening{position:fixed;inset:0;z-index:99990;display:grid;place-items:center;background:#050505;color:#f7f7f4;font-family:Inter,Arial,Helvetica,sans-serif;padding:24px;isolation:isolate;overflow:hidden;opacity:1;transition:opacity .2s ease,visibility .2s;box-sizing:border-box}
.hustle-opening *{box-sizing:border-box}.hustle-opening a{color:inherit;text-decoration:none}.hustle-opening button{font:inherit}
.hustle-top{display:none}.hustle-bottom{position:absolute;bottom:22px;right:24px;z-index:2}.hustle-bottom>span{display:none}
.hustle-brand{display:flex;align-items:center;gap:12px}.hustle-brand b{font-size:30px;font-weight:800;letter-spacing:-3px;line-height:1}.hustle-brand span{font-size:10px;font-weight:600;letter-spacing:.24em;padding-left:12px;border-left:1px solid #515151}
.hustle-edition,.hustle-bottom>span{font-size:9px;letter-spacing:.2em;color:#909090;font-weight:500}
.hustle-composition{width:min(260px,100%);margin:0 auto;position:relative;text-align:center}.hustle-scene{position:relative;width:100%;height:115px}
.hustle-art{display:block;position:absolute;inset:auto 0 0;width:100%;height:100%;overflow:visible}.hustle-coordinate{display:none}
.hustle-heading-wrap{overflow:hidden;padding:0 0 5px}.hustle-heading{display:flex;justify-content:center;white-space:nowrap;margin:0!important;font-family:Inter,Arial,Helvetica,sans-serif!important;font-weight:800!important;font-size:28px!important;line-height:1.05!important;letter-spacing:-.055em!important;color:#f7f7f4!important;text-transform:uppercase;animation:hs-title 1.1s cubic-bezier(.2,.8,.2,1) both}.hustle-heading>span:first-child{margin-right:.2em}.hustle-period{color:#858585}
.hustle-under{width:100%;margin:9px auto 0;display:flex;align-items:center;justify-content:center;color:#aaa}.hustle-under>span:first-child{display:none}
.hustle-loading{display:flex;align-items:center;gap:9px;letter-spacing:.03em;color:#929292;font-size:10px}.hustle-loading i{width:4px;height:4px;background:white;border-radius:50%;animation:hs-pulse 1.6s ease-in-out infinite}
.hustle-skip{border:0;border-bottom:1px solid #555;background:transparent;color:#c7c7c7;padding:10px 0;cursor:pointer;font-size:11px!important}.hustle-skip span{margin-left:18px}.hustle-skip:hover{color:white;border-color:white}.hustle-skip:focus-visible,.hustle-brand:focus-visible{outline:2px solid white;outline-offset:7px}
.hustle-exit{opacity:0;visibility:hidden;pointer-events:none}.hustle-flight,.hustle-speed{opacity:0}
@keyframes hs-title{0%,47%{opacity:0;transform:translateY(110%);filter:blur(4px)}61%,100%{opacity:1;transform:translateY(0);filter:blur(0)}}
@keyframes hs-pulse{0%,100%{opacity:.25}50%{opacity:1}}
@media(max-width:360px){.hustle-composition{width:240px}.hustle-heading{font-size:26px!important}.hustle-scene{height:106px}}
@media(prefers-reduced-motion:reduce){.hustle-opening,.hustle-opening *{animation:none!important;transition:none!important}.hustle-held-spear{opacity:1}.hustle-flight,.hustle-speed{opacity:0}.hustle-heading{opacity:1;transform:none;filter:none}}

/* Source: workspace.css */
:root {
  --orange: #ff641f;
  --orange-soft: #fff2e9;
  --ink: #191a1c;
  --muted: #737880;
  --line: #e8eaed;
  --canvas: #f7f8fa;
  --font: "DM Sans", Arial, sans-serif;
  --display: "Manrope", Arial, sans-serif;
  --radius: 16px;
}
* {
  box-sizing: border-box;
}
html {
  scroll-behavior: smooth;
  scroll-padding-top: 90px;
}
body {
  margin: 0;
  font: 15px/1.6 var(--font);
  background: var(--canvas);
  color: var(--ink);
  -webkit-font-smoothing: antialiased;
}
button,
input,
select {
  font: inherit;
}
button,
a,
input,
select {
  -webkit-tap-highlight-color: transparent;
}
button {
  cursor: pointer;
  color: inherit;
}
button:disabled {
  cursor: not-allowed;
  opacity: 0.45;
}
a {
  color: inherit;
  text-decoration: none;
}
h1,
h2,
h3,
h4,
p {
  margin: 0;
}
h1,
h2,
h3,
h4 {
  font-family: var(--display);
}
button:focus-visible,
a:focus-visible,
input:focus-visible,
select:focus-visible,
summary:focus-visible {
  outline: 3px solid #ff8c52;
  outline-offset: 3px;
}
input[type="checkbox"],
input[type="radio"] {
  accent-color: var(--orange);
}
button svg,
a svg {
  flex-shrink: 0;
  vertical-align: middle;
}
.btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 12px;
  padding: 13px 21px;
  border: 1px solid transparent;
  border-radius: 9px;
  font-size: 14px;
  font-weight: 600;
  line-height: 1.5;
  transition:
    background 0.15s,
    transform 0.15s;
  white-space: nowrap;
}
.btn:hover:not(:disabled) {
  transform: translateY(-1px);
}
.primary {
  background: var(--orange);
  color: #151515;
}
.primary:hover {
  background: #ff793e;
}
.ink {
  background: var(--ink);
  color: #fff;
}
.outline {
  background: #fff;
  border-color: #dfe2e7;
}
.outline:hover {
  background: #fafafa;
}
.soft {
  background: var(--orange-soft);
  color: #a74615;
}
.btn.small {
  padding: 9px 14px;
  font-size: 12px;
}
.icon-btn {
  border: 1px solid transparent;
  background: none;
  border-radius: 8px;
  display: inline-grid;
  place-items: center;
  width: 36px;
  height: 36px;
  padding: 7px;
}
.icon-btn:hover {
  background: #f1f2f4;
}
.text-link {
  display: inline-flex;
  align-items: center;
  gap: 7px;
  border: 0;
  background: none;
  padding: 0;
  font-size: 13px;
  font-weight: 550;
  color: #bd541f;
}
.text-link:hover {
  color: #f66b29;
}
.text-link.light {
  color: #ffd2bb;
}
.is-saved {
  color: #f46b2b !important;
  background: #fff2e9 !important;
}
.is-saved svg {
  fill: #ffe0ce;
}
.brand {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  white-space: nowrap;
  font: 750 19px var(--display);
  letter-spacing: -0.8px;
}
.brand-number {
  font: 800 31px var(--display);
  letter-spacing: -2.3px;
  color: var(--orange);
  line-height: 1;
}
.brand-dot {
  color: var(--orange);
}
.mouse-icon {
  object-fit: contain;
  vertical-align: middle;
  flex-shrink: 0;
}
.eyebrow,
.mini-label {
  display: block;
  font-size: 10px;
  font-weight: 600;
  letter-spacing: 1.4px;
  line-height: 1.5;
  color: #8c7365;
}
.mini-label {
  font-size: 8px;
  letter-spacing: 1px;
}
.muted,
.footnote {
  color: var(--muted);
}
.footnote {
  font-size: 12px;
  line-height: 1.7;
  margin-top: 18px;
}
.small-copy {
  font-size: 12px;
}
.tiny {
  font-size: 10px;
}
.skip-link {
  position: fixed;
  top: -50px;
  left: 20px;
  z-index: 1000;
  background: #fff;
  padding: 10px;
}
.skip-link:focus {
  top: 10px;
}
.boot-state {
  min-height: 90vh;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  text-align: center;
  padding: 30px;
  gap: 20px;
}
.boot-state h1 {
  font-size: 30px;
  letter-spacing: -1px;
}
.boot-state p {
  color: var(--muted);
}
.app-shell {
  min-height: 100vh;
  display: grid;
  grid-template-columns: 230px minmax(0, 1fr);
}
.sidebar {
  position: sticky;
  top: 0;
  height: 100vh;
  background: #1c1d1f;
  color: #babdc2;
  padding: 30px 18px 18px;
  display: flex;
  flex-direction: column;
  z-index: 40;
}
.sidebar > .brand {
  color: #fff;
  margin: 0 7px 29px;
}
.workspace-switch {
  border: 1px solid #343639;
  border-radius: 10px;
  padding: 12px;
  display: flex;
  gap: 10px;
  align-items: center;
  margin-bottom: 25px;
}
.exam-icon {
  display: grid;
  place-items: center;
  width: 30px;
  height: 34px;
  background: #35302d;
  color: #ffaf85;
  border: 1px solid #66422f;
  border-radius: 7px;
  font-size: 14px;
  font-weight: 600;
}
.workspace-switch strong {
  display: block;
  font-size: 12px;
  color: #eee;
  font-weight: 500;
}
.workspace-switch small {
  display: block;
  font-size: 9px;
  color: #888e96;
}
.sidebar nav {
  display: grid;
  gap: 4px;
}
.nav-item {
  display: flex;
  align-items: center;
  gap: 12px;
  width: 100%;
  padding: 11px 12px;
  border: 0;
  border-radius: 8px;
  background: none;
  color: #9b9fa7;
  text-align: left;
  font-size: 12px;
  line-height: 1.4;
}
.nav-item:hover {
  background: #27292c;
  color: #eee;
}
.nav-item.active {
  color: #ffb18a;
  background: #3a2b24;
}
.nav-item b {
  margin-left: auto;
  background: #343638;
  color: #babdc2;
  border-radius: 4px;
  padding: 2px 5px;
  font-size: 10px;
}
.sidebar-bottom {
  margin-top: auto;
  padding-top: 30px;
}
.sidebar-plan {
  padding: 17px 13px 15px;
  border: 1px solid #36383c;
  border-radius: 11px;
  margin-bottom: 17px;
  background: linear-gradient(130deg, #292726, #222325);
}
.sidebar-plan .mini-label {
  color: #a7998f;
  font-size: 8px;
}
.sidebar-plan > strong {
  display: block;
  color: #f4f4f4;
  font-size: 15px;
  letter-spacing: -0.3px;
  margin: 9px 0 6px;
}
.sidebar-plan p {
  font-size: 10px;
  line-height: 1.7;
  color: #91949b;
}
.sidebar-plan > a {
  display: flex;
  align-items: center;
  justify-content: space-between;
  color: #e39a73;
  font-size: 11px;
  margin-top: 14px;
}
.local-status {
  display: block;
  text-align: center;
  color: #757c84;
  font-size: 9px;
  margin-top: 16px;
}
.local-status i {
  display: inline-block;
  width: 5px;
  height: 5px;
  border-radius: 50%;
  background: #82a795;
  margin-right: 5px;
}
.app-body {
  min-width: 0;
}
.app-header {
  height: 76px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 0 38px;
  border-bottom: 1px solid var(--line);
  background: #ffffffed;
  position: sticky;
  top: 0;
  z-index: 25;
  backdrop-filter: blur(16px);
}
.header-left,
.header-right {
  display: flex;
  align-items: center;
  gap: 16px;
}
.breadcrumb {
  font-size: 12px;
  color: #5f6670;
}
.breadcrumb > span {
  padding: 0 10px;
  color: #c3c6cc;
}
.preview-label {
  font-size: 10px;
  color: #9398a0;
}
.credit-pill {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  background: #fff9f4;
  border: 1px solid #f0dacb;
  border-radius: 30px;
  padding: 3px 12px 3px 5px;
  font-size: 12px;
}
.credit-pill strong {
  font-size: 14px;
}
.credit-pill span {
  color: #8f796a;
  font-size: 10px;
}
.avatar {
  background: #eceef1;
  border: 1px solid #e3e5e8;
  border-radius: 50%;
  width: 31px;
  height: 31px;
  font-size: 11px;
  color: #626b76;
}
.mobile-menu {
  display: none;
}
.workspace-main {
  max-width: 1390px;
  margin: auto;
  padding: 38px 38px 45px;
}
.app-footer {
  border-top: 1px solid var(--line);
  display: flex;
  justify-content: space-between;
  margin: 0 38px;
  padding: 18px 0;
  font-size: 10px;
  color: #989da5;
}
.page-heading {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 20px;
  margin-bottom: 29px;
}
.page-heading .eyebrow {
  margin-bottom: 9px;
}
.page-heading h1 {
  font-size: 29px;
  font-weight: 650;
  line-height: 1.3;
  letter-spacing: -1.1px;
}
.page-heading p {
  margin-top: 10px;
  font-size: 13px;
  color: var(--muted);
}
.card {
  background: #fff;
  border: 1px solid var(--line);
  border-radius: var(--radius);
  padding: 25px;
  box-shadow: 0 2px 5px #19253601;
}
.dark-card {
  background: #1b1c1e;
  color: #fff;
  border: 1px solid #2a2c2f;
  border-radius: var(--radius);
  padding: 26px;
}
.dark-card .eyebrow {
  color: #d5a88f;
}
.dashboard-top {
  display: grid;
  grid-template-columns: 1.75fr 1fr;
  gap: 20px;
}
.daily-progress {
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 25px;
  padding: 33px;
}
.daily-progress h2 {
  font-size: 25px;
  line-height: 1.45;
  font-weight: 600;
  letter-spacing: -0.8px;
  margin: 10px 0 13px;
}
.daily-progress p {
  font-size: 12px;
  color: #8a8f97;
  max-width: 265px;
  margin-bottom: 24px;
}
.daily-progress .text-link {
  font-size: 11px;
}
.progress-ring {
  width: 140px;
  height: 140px;
  border-radius: 50%;
  background: conic-gradient(var(--orange) var(--progress), #f0f1f3 0);
  display: grid;
  place-items: center;
  flex-shrink: 0;
  transform: rotate(-90deg);
}
.progress-ring > div {
  width: 126px;
  height: 126px;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  background: white;
  border-radius: 50%;
  transform: rotate(90deg);
}
.progress-ring strong {
  font: 600 32px var(--display);
  letter-spacing: -1px;
}
.progress-ring strong span {
  font: 400 17px var(--font);
  color: #c3c7ce;
}
.progress-ring small {
  font-size: 7px;
  letter-spacing: 1px;
  color: #9da3ad;
  margin-top: 7px;
}
.dashboard-plan h2 {
  font-size: 23px;
  line-height: 1.4;
  margin: 10px 0 15px;
  font-weight: 550;
  letter-spacing: -0.7px;
}
.plan-inline-price {
  font: 600 32px var(--display);
  letter-spacing: -1px;
}
.plan-inline-price small {
  font: 400 10px var(--font);
  color: #a1a2a6;
  margin-left: 7px;
  letter-spacing: 0;
}
.dashboard-plan > p {
  font-size: 10px;
  color: #c5b09f;
  margin: 10px 0 16px;
}
.dashboard-plan .btn {
  width: 100%;
  padding: 10px;
  font-size: 12px;
}
.stats-grid {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 16px;
  margin: 20px 0 32px;
}
.stat {
  background: #fff;
  border: 1px solid var(--line);
  border-radius: 13px;
  padding: 21px 23px;
}
.stat > span {
  display: block;
  font-size: 8px;
  font-weight: 600;
  letter-spacing: 1.1px;
  color: #8f96a0;
}
.stat > strong {
  display: block;
  font: 600 28px var(--display);
  letter-spacing: -1px;
  margin: 8px 0 6px;
}
.stat > small {
  font-size: 10px;
  color: #939aa5;
  display: block;
}
.section-heading {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
  margin-bottom: 20px;
}
.section-heading h2 {
  font-size: 18px;
  letter-spacing: -0.5px;
  font-weight: 600;
}
.section-heading p {
  font-size: 12px;
  color: #8a919a;
  margin-top: 6px;
}
.section-heading > .muted {
  font-size: 10px;
}
.practice-cards {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 17px;
  margin-bottom: 30px;
}
.practice-card {
  display: block;
  padding: 24px;
  transition:
    border-color 0.15s,
    transform 0.15s;
}
.practice-card:hover {
  border-color: #e8b99f;
  transform: translateY(-2px);
}
.practice-card > div:first-child {
  display: flex;
  justify-content: space-between;
  align-items: center;
  margin-bottom: 20px;
}
.section-token {
  display: inline-grid;
  place-items: center;
  min-width: 37px;
  height: 34px;
  padding: 0 7px;
  background: #f3f4f6;
  color: #727b89;
  border: 1px solid #e9ebef;
  border-radius: 7px;
  font-size: 10px;
  font-weight: 550;
}
.card-number {
  font-size: 10px;
  color: #c7cbd1;
}
.practice-card h3 {
  font-size: 15px;
  letter-spacing: -0.3px;
  margin-bottom: 8px;
  font-weight: 600;
}
.practice-card > p {
  font-size: 11px;
  color: #949aa4;
}
.practice-card-footer {
  display: flex;
  justify-content: space-between;
  align-items: center;
  border-top: 1px solid #f0f1f3;
  padding-top: 17px;
  margin-top: 21px;
  color: #9ba0a8;
  font-size: 9px;
}
.practice-card-footer svg {
  color: #cc6b35;
}
.dashboard-bottom {
  display: grid;
  grid-template-columns: 1.9fr 1fr;
  gap: 20px;
}
.recent-card .section-heading {
  margin-bottom: 4px;
}
.recent-row {
  display: flex;
  gap: 14px;
  align-items: center;
  border-bottom: 1px solid #eef0f3;
  padding: 20px 0;
}
.recent-row:last-child {
  border-bottom: 0;
  padding-bottom: 5px;
}
.session-symbol {
  display: grid;
  place-items: center;
  background: #f5f6f8;
  border: 1px solid #e9ecf0;
  border-radius: 10px;
  width: 40px;
  height: 42px;
  color: #8f97a2;
  flex-shrink: 0;
}
.recent-row > div:nth-child(2) {
  min-width: 0;
  flex: 1;
}
.recent-row strong {
  display: block;
  font-size: 12px;
  font-weight: 550;
}
.recent-row small {
  display: block;
  font-size: 9px;
  color: #9199a4;
  margin-top: 4px;
}
.recent-score {
  text-align: right;
  margin-right: 9px;
  min-width: 67px;
}
.recent-score strong {
  font-size: 16px;
  font-weight: 600;
}
.recent-score strong span {
  font-size: 10px;
  color: #959ca6;
  font-weight: 400;
}
.recent-row .text-link {
  font-size: 10px;
}
.companion-card {
  text-align: center;
  padding: 20px 24px;
  display: flex;
  align-items: center;
  flex-direction: column;
}
.companion-card img {
  object-fit: contain;
  width: 100px;
  height: 100px;
  margin-top: -6px;
}
.companion-card .eyebrow {
  font-size: 8px;
  margin-top: 7px;
}
.companion-card h3 {
  font-size: 17px;
  letter-spacing: -0.5px;
  margin: 9px 0 10px;
  line-height: 1.5;
  font-weight: 600;
}
.companion-card p {
  font-size: 11px;
  color: #8a939f;
  line-height: 1.8;
  max-width: 235px;
  margin-bottom: 17px;
}
.companion-card .text-link {
  font-size: 11px;
}
.library-summary {
  display: flex;
  justify-content: space-between;
  align-items: center;
  font-size: 11px;
  color: #7e8794;
  margin: 0 0 23px;
}
.library-summary strong {
  color: #303946;
}
.section-tabs {
  display: flex;
  gap: 8px;
  margin-bottom: 20px;
  flex-wrap: wrap;
}
.section-tabs button {
  display: flex;
  align-items: center;
  gap: 14px;
  background: #fff;
  border: 1px solid #e5e8ec;
  border-radius: 8px;
  padding: 9px 16px;
  color: #828b99;
  font-size: 12px;
}
.section-tabs button span {
  font-size: 10px;
  background: #f1f3f5;
  padding: 1px 6px;
  border-radius: 4px;
}
.section-tabs button.active {
  background: #24272c;
  border-color: #24272c;
  color: #fff;
}
.section-tabs button.active span {
  background: #ffffff18;
  color: #c8ccd2;
}
.library-card {
  padding: 0;
  overflow: hidden;
}
.filter-bar {
  display: flex;
  gap: 10px;
  padding: 20px;
  border-bottom: 1px solid var(--line);
  flex-wrap: wrap;
}
.search-box {
  display: flex;
  align-items: center;
  gap: 9px;
  flex: 1;
  min-width: 220px;
  background: #fafbfc;
  border: 1px solid #e7eaee;
  border-radius: 8px;
  color: #9ba3af;
  padding: 0 11px;
}
.search-box input {
  border: 0;
  background: none;
  width: 100%;
  padding: 10px 0;
  font-size: 12px;
  outline: none;
  color: #374151;
}
.search-box:focus-within {
  outline: 2px solid #ffc7a7;
}
.filter-bar select,
select {
  border: 1px solid #e2e6eb;
  padding: 9px 27px 9px 10px;
  border-radius: 7px;
  background: #fff;
  font-size: 11px;
  color: #657081;
  max-width: 100%;
}
.filter-bar select {
  max-width: 180px;
}
.table-label {
  display: flex;
  justify-content: space-between;
  padding: 14px 23px 10px;
  font-size: 8px;
  letter-spacing: 1.2px;
  color: #a0a7b2;
}
.bank-row {
  padding: 22px 23px;
  display: flex;
  gap: 17px;
  align-items: center;
  border-bottom: 1px solid #edf0f3;
}
.bank-row-copy {
  min-width: 0;
  flex: 1;
}
.bank-row-copy > div {
  display: flex;
  align-items: center;
  gap: 8px;
  flex-wrap: wrap;
}
.source-tag {
  display: inline-flex;
  width: max-content;
  max-width: 100%;
  padding: 3px 6px;
  border: 1px solid #e0e5ea;
  border-radius: 4px;
  background: #f6f7f9;
  font-size: 8px;
  font-weight: 600;
  letter-spacing: 0.4px;
  color: #7d8693;
  line-height: 1.4;
}
.source-tag.pyq {
  color: #9a5d24;
  border-color: #f0d8b7;
  background: #fff8ef;
}
.free-tag {
  font-size: 8px;
  color: #3c936b;
  letter-spacing: 0.5px;
}
.difficulty {
  font-size: 9px;
  color: #9b8a76;
  display: inline-flex;
  gap: 5px;
  align-items: center;
}
.difficulty:before {
  content: "";
  width: 3px;
  height: 3px;
  border-radius: 50%;
  background: currentColor;
}
.difficulty.easy {
  color: #659682;
}
.difficulty.hard {
  color: #b17b79;
}
.bank-row h3 {
  font-size: 14px;
  font-weight: 600;
  letter-spacing: -0.2px;
  margin: 7px 0 4px;
}
.bank-row p {
  font-size: 12px;
  line-height: 1.65;
  color: #778191;
  display: -webkit-box;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
  overflow: hidden;
  max-width: 660px;
}
.bank-row-copy > small {
  display: block;
  font-size: 9px;
  color: #a1a8b1;
  margin-top: 8px;
}
.row-actions {
  display: flex;
  gap: 6px;
  align-items: center;
}
.pagination {
  display: flex;
  justify-content: space-between;
  align-items: center;
  font-size: 10px;
  color: #8c96a4;
  padding: 15px 23px;
}
.pagination > div {
  display: flex;
  gap: 14px;
  align-items: center;
}
.pagination .icon-btn {
  border-color: #e4e8ed;
  width: 29px;
  height: 29px;
}
.notice {
  display: flex;
  align-items: center;
  gap: 12px;
  background: #fff6ef;
  border: 1px solid #f0ddcf;
  border-radius: 9px;
  padding: 14px 17px;
  font-size: 12px;
  color: #9a765f;
  line-height: 1.7;
  margin: 18px 0;
}
.notice.subtle {
  background: #f0f3f7;
  border-color: #e6eaf0;
  color: #8490a0;
}
.notice svg {
  flex-shrink: 0;
}
.mock-grid {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 20px;
}
.mock-card {
  padding: 28px;
  position: relative;
  overflow: hidden;
}
.mock-top {
  display: flex;
  align-items: center;
  gap: 10px;
}
.mock-number {
  position: absolute;
  right: 25px;
  top: 12px;
  font: 700 72px var(--display);
  letter-spacing: -5px;
  color: #f0f2f5;
}
.mock-card h2 {
  font-size: 21px;
  letter-spacing: -0.7px;
  font-weight: 600;
  margin: 25px 0 9px;
}
.mock-card p {
  font-size: 12px;
  color: #9098a5;
}
.mock-specs {
  display: flex;
  gap: 10px;
  flex-wrap: wrap;
  margin: 22px 0;
}
.mock-specs span {
  font-size: 10px;
  color: #8390a2;
  border: 1px solid #e6ebf0;
  background: #fafbfc;
  padding: 5px 9px;
  border-radius: 5px;
}
.mock-card .btn {
  width: 100%;
  justify-content: space-between;
  padding: 12px 16px;
}
.mock-card > small {
  display: block;
  text-align: center;
  font-size: 10px;
  color: #9ca5b2;
  margin-top: 12px;
}
.resume-card {
  display: flex;
  align-items: center;
  justify-content: space-between;
  margin-top: 25px;
  padding: 25px;
  border-radius: 13px;
  background: #fff2e9;
  border: 1px solid #f1d3be;
  gap: 20px;
}
.resume-card h3 {
  font-size: 18px;
  margin-top: 6px;
}
.resume-card p {
  font-size: 12px;
  color: #9f816d;
  margin-top: 6px;
}
.empty-state {
  text-align: center;
  padding: 65px 24px;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 15px;
  min-height: 270px;
  color: #a8b0bb;
}
.empty-state h3 {
  font-size: 19px;
  color: #414b5a;
  font-weight: 550;
  letter-spacing: -0.5px;
}
.empty-state p {
  font-size: 13px;
  color: #8994a3;
  max-width: 420px;
  line-height: 1.8;
}
.empty-state .btn {
  margin-top: 5px;
}
.analysis-callout {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 25px;
  border: 1px solid #f2d4c0;
  border-radius: 14px;
  padding: 25px 28px;
  background: #fff7f0;
  margin-bottom: 24px;
}
.analysis-callout h2 {
  font-size: 22px;
  margin-top: 8px;
  letter-spacing: -0.5px;
  font-weight: 600;
}
.analysis-callout p {
  font-size: 12px;
  color: #9d8677;
  margin-top: 8px;
}
.analytics-grid {
  display: grid;
  grid-template-columns: 1.5fr 1fr;
  gap: 20px;
  margin-bottom: 22px;
}
.analytics-grid + .card {
  margin-bottom: 22px;
}
.accuracy-chart {
  height: 205px;
  display: flex;
  gap: 15px;
  padding: 18px 15px 0;
}
.chart-column {
  display: flex;
  flex-direction: column;
  align-items: center;
  flex: 1;
  font-size: 10px;
  color: #8e99a8;
}
.chart-column strong {
  font-size: 10px;
  font-weight: 500;
  margin-bottom: 8px;
}
.chart-column > div {
  flex: 1;
  width: 100%;
  display: flex;
  align-items: flex-end;
  border-bottom: 1px solid #e8ecf2;
}
.chart-column i {
  display: block;
  width: min(32px, 100%);
  margin: auto auto 0;
  background: #ffae86;
  border-radius: 5px 5px 0 0;
  min-height: 3px;
}
.chart-column:hover i {
  background: var(--orange);
}
.chart-column small {
  margin-top: 9px;
  font-size: 9px;
}
.insight-card {
  display: flex;
  flex-direction: column;
  justify-content: center;
  background: #fcfaf7;
}
.insight-card h2 {
  font-size: 23px;
  letter-spacing: -0.7px;
  margin: 12px 0;
  font-weight: 550;
}
.insight-card p {
  font-size: 13px;
  color: #8a8b8e;
  line-height: 1.9;
}
.insight-card .text-link {
  margin-top: 24px;
}
.table-scroll {
  overflow-x: auto;
}
.data-table {
  width: 100%;
  border-collapse: collapse;
  text-align: left;
  white-space: nowrap;
}
.data-table th {
  font-size: 10px;
  font-weight: 550;
  color: #8f9aaa;
  border-bottom: 1px solid #e5eaf1;
  padding: 13px 13px 13px 0;
}
.data-table td {
  font-size: 12px;
  padding: 17px 13px 17px 0;
  border-bottom: 1px solid #edf0f5;
  color: #778294;
}
.data-table td strong {
  font-weight: 500;
  color: #485567;
}
.data-table td small {
  display: block;
  font-size: 9px;
  color: #acb4bf;
  margin-top: 4px;
}
.data-table tr:last-child td {
  border: 0;
}
.data-table tbody th {
  font-size: 12px;
  color: #657285;
  font-weight: 500;
}
.compare-card {
  margin-top: 23px;
}
.compare-selects {
  display: flex;
  align-items: center;
  gap: 15px;
  margin-bottom: 12px;
}
.compare-selects select {
  flex: 1;
}
.compare-selects span {
  font-size: 11px;
  color: #a4afbd;
}
.membership-grid {
  display: grid;
  grid-template-columns: 1fr 1.35fr;
  gap: 24px;
}
.membership-grid > section {
  padding: 32px;
}
.membership-grid h2 {
  font-size: 27px;
  letter-spacing: -1px;
  margin: 12px 0 8px;
}
.membership-grid p {
  font-size: 13px;
  color: #8e98a7;
}
.membership-price {
  font: 550 49px var(--display);
  letter-spacing: -2px;
  margin: 27px 0 22px;
}
.membership-price > span {
  font: 400 12px var(--font);
  color: #a5a7ac;
  letter-spacing: 0;
}
.feature-list {
  list-style: none;
  padding: 23px 0 10px;
  margin: 0 0 25px;
  border-top: 1px solid #e5e9ee;
}
.feature-list li {
  display: flex;
  align-items: center;
  gap: 11px;
  margin: 15px 0;
  font-size: 13px;
}
.feature-list svg {
  color: #ea6f32;
  width: 17px;
}
.membership-grid .btn {
  width: 100%;
  justify-content: space-between;
}
.membership-grid > section > small {
  display: block;
  font-size: 10px;
  color: #9ea7b3;
  text-align: center;
  margin-top: 15px;
}
.membership-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 15px;
}
.membership-full .feature-list {
  border-color: #353639;
}
.membership-full .feature-list li {
  color: #dedfe2;
}
.membership-full > .text-link {
  display: flex;
  justify-content: center;
  margin-top: 17px;
  font-size: 11px;
}
.credit-explainer {
  display: flex;
  gap: 28px;
  align-items: center;
  margin-top: 24px;
}
.credit-explainer h2 {
  font-size: 20px;
  letter-spacing: -0.5px;
  margin-bottom: 10px;
}
.credit-explainer p {
  font-size: 13px;
  color: #8590a0;
  line-height: 1.9;
}
.credit-explainer .footnote {
  display: block;
  font-size: 10px;
}
.back-link {
  display: inline-flex;
  font-size: 11px;
  color: #929aa7;
  margin-bottom: 20px;
}
.result-heading h1 {
  font-size: 31px;
}
.parent-test-link {
  display: block;
  font-size: 12px;
  color: #b0643c;
  margin: -9px 0 23px;
}
.result-stats {
  display: grid;
  grid-template-columns: 1fr 1fr 1.25fr 1fr;
  gap: 16px;
}
.result-stats > div {
  padding: 23px;
  border: 1px solid #e1e6ed;
  border-radius: 13px;
  background: white;
}
.result-stats > div > span {
  font-size: 9px;
  font-weight: 550;
  letter-spacing: 1px;
  color: #8e98a6;
}
.result-stats strong {
  display: block;
  font: 550 32px var(--display);
  letter-spacing: -1.2px;
  line-height: 1.2;
  margin-top: 12px;
}
.result-stats strong small {
  font: 400 17px var(--font);
  color: #abb3c0;
  letter-spacing: 0;
}
.result-stats p {
  font-size: 10px;
  color: #8e99a9;
  margin-top: 10px;
}
.result-stats .result-score {
  background: #1d1f22;
  color: #fff;
  border-color: #1d1f22;
}
.result-score > span {
  color: #efb89c !important;
}
.score-breakdown {
  display: flex;
  justify-content: space-between;
  gap: 10px;
  margin-top: 10px;
}
.score-breakdown b {
  font: 500 26px var(--display);
  color: #8b98a9;
}
.score-breakdown b.green {
  color: #5b987c;
}
.score-breakdown b.red {
  color: #c17d73;
}
.score-breakdown small {
  display: block;
  font: 400 9px var(--font);
  color: #9ca5b2;
  margin-top: 4px;
}
.analysis-tabs {
  display: flex;
  gap: 28px;
  border-bottom: 1px solid #e1e6ed;
  margin: 30px 0 25px;
  overflow: auto;
}
.analysis-tabs button {
  display: flex;
  gap: 7px;
  align-items: center;
  border: 0;
  border-bottom: 2px solid transparent;
  padding: 0 0 14px;
  background: none;
  font-size: 12px;
  color: #8a95a5;
  white-space: nowrap;
}
.analysis-tabs button.active {
  color: #363e4c;
  border-color: var(--orange);
}
.analysis-overview-grid {
  display: grid;
  grid-template-columns: 1fr 1.15fr;
  gap: 20px;
  margin-bottom: 22px;
}
.overview-summary {
  padding: 30px;
}
.overview-summary h2 {
  font-size: 23px;
  font-weight: 600;
  letter-spacing: -0.8px;
  margin: 12px 0;
}
.overview-summary p {
  font-size: 13px;
  color: #8994a4;
  line-height: 1.8;
  max-width: 410px;
}
.overview-summary .btn {
  margin-top: 25px;
  font-size: 12px;
}
.related-promo {
  display: flex;
  align-items: center;
  gap: 22px;
  background: #fffaf6;
}
.related-promo h2 {
  font-size: 24px;
  font-weight: 550;
  line-height: 1.45;
  letter-spacing: -0.8px;
  margin: 9px 0;
}
.related-promo p {
  font-size: 12px;
  color: #938b86;
  line-height: 1.8;
}
.related-promo .text-link {
  font-size: 11px;
  margin-top: 16px;
  flex-wrap: wrap;
}
.section-performance {
  display: flex;
  gap: 30px;
}
.section-performance > div {
  flex: 1;
  border-right: 1px solid #edf0f5;
  padding: 4px 25px 4px 0;
}
.section-performance > div:last-child {
  border: 0;
}
.section-performance h3 {
  font-size: 12px;
  color: #7f8a99;
  font-weight: 450;
  margin: 10px 0;
}
.section-performance strong {
  font: 550 29px var(--display);
  letter-spacing: -0.8px;
}
.section-performance strong small {
  font: 400 14px var(--font);
  color: #a8b1bf;
}
.topic-meter {
  height: 5px;
  background: #f0f3f7;
  border-radius: 5px;
  margin: 18px 0 13px;
}
.topic-meter i {
  display: block;
  height: 100%;
  background: #f39364;
  border-radius: 5px;
}
.section-performance p {
  font-size: 10px;
  color: #8190a3;
}
.section-performance p span {
  margin: 0 4px;
  color: #b8c2ce;
}
.section-performance > div > small {
  font-size: 9px;
  color: #a1acba;
  display: block;
  margin-top: 6px;
}
.review-layout {
  display: grid;
  grid-template-columns: 215px minmax(0, 1fr);
  gap: 20px;
  align-items: start;
}
.review-rail {
  padding: 0;
  position: sticky;
  top: 96px;
  overflow: hidden;
}
.review-rail-heading {
  display: flex;
  justify-content: space-between;
  padding: 19px 17px 13px;
  font-size: 12px;
}
.review-rail-heading span {
  color: #a2adba;
  font-size: 10px;
}
.review-filters {
  display: flex;
  gap: 7px;
  padding: 0 11px 12px;
}
.review-filters select {
  min-width: 0;
  width: 50%;
  font-size: 9px;
  padding: 7px 18px 7px 7px;
}
.review-question-list {
  padding: 5px;
  max-height: 515px;
  overflow: auto;
}
.review-question-list > button {
  display: flex;
  align-items: center;
  gap: 10px;
  width: 100%;
  padding: 11px 9px;
  background: none;
  border: 1px solid transparent;
  border-radius: 8px;
  margin-bottom: 2px;
  text-align: left;
}
.review-question-list > button.active {
  border-color: #f2d4c0;
  background: #fff7f0;
}
.review-question-list > button > div {
  min-width: 0;
  flex: 1;
}
.review-question-list strong {
  display: block;
  font-size: 10px;
  font-weight: 550;
  color: #788291;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}
.review-question-list small {
  display: block;
  font-size: 8px;
  color: #a3adbb;
  margin-top: 3px;
}
.review-question-list > button > span:last-child {
  font-size: 10px;
  color: #a0aaba;
}
.question-status {
  width: 29px;
  height: 30px;
  border-radius: 6px;
  font-size: 9px;
  display: grid;
  place-items: center;
  flex-shrink: 0;
}
.question-status.correct {
  background: #edf5ef;
  color: #689e7c;
}
.question-status.incorrect {
  background: #fff0eb;
  color: #c48b78;
}
.question-status.skipped {
  background: #f0f3f7;
  color: #9da9b9;
}
.rail-empty {
  font-size: 11px;
  color: #9da7b4;
  padding: 20px;
  text-align: center;
}
.review-main {
  padding: 0;
  overflow: clip;
}
.review-question-header {
  padding: 25px 28px;
}
.review-question-header > .review-question-meta {
  display: flex;
  align-items: center;
  gap: 12px;
}
.review-question-header > .review-question-meta > span:nth-child(2) {
  font-size: 8px;
  letter-spacing: 0.8px;
  color: #9ba4b1;
}
.review-question-header .difficulty {
  margin-left: auto;
}
.review-question-header h2 {
  font: 550 18px/1.7 var(--font);
  letter-spacing: -0.2px;
  margin: 17px 0 12px;
}
.review-question-header > p {
  display: flex;
  align-items: center;
  gap: 12px;
  flex-wrap: wrap;
  font-size: 9px;
  color: #9da6b4;
}
.review-mode-tabs {
  display: flex;
  gap: 27px;
  padding: 0 27px;
  border-block: 1px solid #edf0f4;
}
.review-mode-tabs button {
  display: flex;
  gap: 5px;
  align-items: center;
  border: 0;
  border-bottom: 2px solid transparent;
  background: none;
  font-size: 12px;
  color: #9ba6b5;
  padding: 13px 0;
}
.review-mode-tabs button.active {
  color: #4e5a6c;
  border-bottom-color: var(--orange);
}
.solution-body {
  padding: 26px 28px;
}
.passage-disclosure {
  border: 1px solid #e5eaf1;
  border-radius: 10px;
  background: #fafbfd;
  padding: 15px 18px;
  margin-bottom: 23px;
}
.passage-disclosure summary {
  font-size: 11px;
  font-weight: 550;
  color: #7a8799;
  cursor: pointer;
}
.passage-disclosure > div {
  font-size: 14px;
  line-height: 1.95;
  color: #647185;
  margin-top: 18px;
}
.answer-status {
  display: flex;
  justify-content: space-between;
  padding: 11px 14px;
  font-size: 12px;
  border-radius: 8px;
  margin-bottom: 17px;
}
.answer-status strong {
  font-weight: 500;
}
.answer-status.correct {
  background: #eef7f1;
  color: #548a69;
}
.answer-status.incorrect {
  background: #fff1eb;
  color: #ba7c65;
}
.answer-status.skipped {
  background: #f1f4f8;
  color: #8795a8;
}
.solution-options {
  display: grid;
  gap: 10px;
}
.solution-options > div {
  display: flex;
  align-items: center;
  gap: 12px;
  border: 1px solid #e5eaf1;
  padding: 12px 14px;
  border-radius: 8px;
}
.solution-options > div > span {
  display: grid;
  place-items: center;
  width: 25px;
  height: 25px;
  border-radius: 5px;
  background: #f2f4f8;
  color: #94a0b1;
  font-size: 10px;
  flex-shrink: 0;
}
.solution-options p {
  flex: 1;
  font-size: 13px;
  color: #657286;
}
.solution-options small {
  font-size: 9px;
  color: #98a5b6;
}
.solution-options .right {
  background: #f6fbf7;
  border-color: #cbe4d3;
}
.solution-options .right small {
  color: #6c9479;
}
.solution-options .wrong {
  background: #fff8f5;
  border-color: #efcec0;
}
.solution-options .wrong small {
  color: #c48d76;
}
.numeric-review {
  display: flex;
  gap: 16px;
}
.numeric-review > div {
  padding: 18px;
  border: 1px solid #e5eaf0;
  flex: 1;
  border-radius: 9px;
}
.numeric-review span {
  font-size: 9px;
  color: #92a0b2;
}
.numeric-review strong {
  display: block;
  margin-top: 8px;
  font-size: 24px;
  font-weight: 550;
}
.explanation {
  padding: 23px;
  background: #f6f8fb;
  border-radius: 10px;
  margin: 23px 0;
}
.explanation p {
  font-size: 14px;
  line-height: 1.9;
  color: #67768a;
  margin-top: 12px;
}
.mistake-label {
  display: grid;
  gap: 7px;
  font-size: 11px;
  color: #8998ac;
}
.field-note {
  font-size: 10px;
  color: #a2aebe;
  margin-top: 7px;
  margin-bottom: 24px;
}
.solution-body > .btn {
  font-size: 12px;
}
.matching-state {
  padding: 55px 25px;
  text-align: center;
  min-height: 280px;
}
.matching-state h3 {
  font-size: 17px;
  font-weight: 500;
  color: #6c7a8e;
  margin-top: 18px;
}
.matching-state p {
  font-size: 12px;
  color: #a0adbe;
  margin-top: 9px;
}
.loading-dot {
  width: 25px;
  height: 25px;
  border: 2px solid #ffe5d3;
  border-top-color: var(--orange);
  border-radius: 50%;
  animation: spin 0.8s linear infinite;
  margin: auto;
}
@keyframes spin {
  to {
    transform: rotate(360deg);
  }
}
.unlock-panel {
  text-align: center;
  padding: 34px 35px 40px;
  display: flex;
  align-items: center;
  flex-direction: column;
  min-height: 350px;
}
.unlock-panel > .eyebrow {
  font-size: 8px;
  margin-top: 13px;
}
.unlock-panel h3 {
  font-size: 22px;
  font-weight: 600;
  letter-spacing: -0.6px;
  margin: 9px 0 10px;
}
.unlock-panel p {
  font-size: 12px;
  color: #8997aa;
  line-height: 1.8;
  max-width: 385px;
}
.unlock-panel > .btn {
  margin: 22px 0 11px;
  font-size: 12px;
  min-width: 230px;
  padding: 9px 17px;
}
.unlock-panel > small {
  font-size: 10px;
  color: #9cabbf;
}
.related-scope {
  display: flex;
  align-items: center;
  gap: 16px;
  font-size: 10px;
  color: #98a6b8;
  flex-wrap: wrap;
  margin-top: 20px;
}
.related-scope label {
  display: flex;
  align-items: center;
  gap: 6px;
  min-height: 30px;
}
.related-scope input {
  width: 14px;
  height: 14px;
}
.locked-match-note {
  margin-top: 15px !important;
  font-size: 10px !important;
}
.locked-match-note a {
  color: #c17046;
}
.related-controls {
  padding: 20px 25px 0;
}
.unlock-confirmed {
  display: flex;
  align-items: center;
  gap: 5px;
  color: #7c9d85;
  font-size: 9px;
  margin-bottom: 15px;
}
.source-filter {
  display: flex;
  gap: 6px;
  flex-wrap: wrap;
}
.source-filter button {
  display: flex;
  align-items: center;
  gap: 7px;
  padding: 8px 11px;
  border: 1px solid #e2e8ef;
  border-radius: 7px;
  background: white;
  font-size: 10px;
  color: #8d9caf;
}
.source-filter button span {
  background: #f1f4f8;
  padding: 1px 5px;
  border-radius: 4px;
  font-size: 9px;
}
.source-filter button.active {
  background: #2b3442;
  color: white;
  border-color: #2b3442;
}
.source-filter button.active span {
  background: #ffffff20;
}
.related-list-title {
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 15px;
  padding: 22px 25px 13px;
  font-size: 11px;
  color: #8394ab;
}
.related-list-title .text-link {
  font-size: 10px;
}
.related-rows {
  padding: 0 13px 14px;
}
.related-row {
  display: flex;
  align-items: flex-start;
  gap: 12px;
  border: 1px solid transparent;
  border-bottom-color: #edf1f6;
  padding: 19px 12px;
  border-radius: 8px;
}
.related-row.selected {
  background: #fffaf6;
  border-color: #f1d7c7;
}
.related-row > input {
  width: 15px;
  height: 15px;
  margin-top: 4px;
  flex-shrink: 0;
}
.related-row > div {
  min-width: 0;
  flex: 1;
}
.related-row > div > div {
  display: flex;
  gap: 10px;
  align-items: center;
  flex-wrap: wrap;
}
.related-row .difficulty {
  margin-left: auto;
}
.related-row h4 {
  font: 500 14px/1.8 var(--font);
  color: #62718a;
  margin: 10px 0;
}
.related-row p {
  display: flex;
  justify-content: space-between;
  gap: 15px;
  font-size: 9px;
  color: #a1afc1;
  align-items: center;
}
.related-row p > .text-link {
  font-size: 10px;
  flex-shrink: 0;
  color: #8091a8;
}
.load-more {
  display: block;
  margin: 0 auto 20px;
  background: white;
  border: 1px solid #e5ebf3;
  border-radius: 7px;
  padding: 9px 30px;
  font-size: 10px;
  color: #95a5bc;
}
.related-tray {
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 20px;
  padding: 17px 23px;
  background: #fcfdff;
  border-top: 1px solid #e4ebf4;
  box-shadow: 0 -4px 16px #203c6204;
}
.related-tray > div:last-child {
  display: flex;
  align-items: center;
  gap: 10px;
}
.related-tray strong {
  font-size: 13px;
  font-weight: 550;
}
.related-tray strong small {
  font-size: 10px;
  color: #a2b0c4;
  font-weight: 400;
}
.related-tray > div:first-child > span {
  display: block;
  font-size: 9px;
  color: #a1afc3;
  margin-top: 3px;
}
.related-tray .text-link {
  font-size: 10px;
  white-space: nowrap;
}
.related-tray select {
  font-size: 10px;
  padding: 8px;
}
.related-tray .btn {
  font-size: 10px;
  padding: 10px;
}
.review-main #related-selection {
  position: sticky;
  bottom: 0;
  z-index: 8;
}
.selected-review {
  max-height: 45vh;
  overflow: auto;
}
.selected-review > div {
  padding: 16px 0;
  border-bottom: 1px solid #e8eef5;
}
.selected-review p {
  font-size: 13px;
  color: #8190a6;
  margin: 8px 0;
}
.selected-review .text-link {
  font-size: 11px;
}
#analysis-content > section.card {
  margin-bottom: 22px;
}
.status-pill {
  font-size: 9px;
  padding: 4px 7px;
  border-radius: 5px;
}
.status-pill.correct {
  background: #eff7f1;
  color: #7c9f86;
}
.status-pill.incorrect {
  background: #fff2eb;
  color: #bf8f77;
}
.status-pill.skipped {
  background: #f0f4f9;
  color: #99a9c0;
}
.coach-heading {
  display: flex;
  align-items: center;
  gap: 20px;
  margin: 25px 0;
}
.coach-heading h2 {
  font-size: 22px;
  letter-spacing: -0.6px;
  margin: 6px 0;
}
.coach-heading p {
  font-size: 12px;
  color: #8f9db1;
}
.coach-heading > .source-tag {
  margin-left: auto;
}
.coach-symbol {
  display: grid;
  place-items: center;
  width: 62px;
  height: 62px;
  background: #fff0e4;
  border: 1px solid #f1d5bf;
  color: #da8858;
  border-radius: 15px;
  flex-shrink: 0;
}
.coach-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 19px;
  margin-bottom: 24px;
}
.coach-insight {
  padding: 27px;
}
.insight-number {
  font: 600 32px var(--display);
  color: #e0e7f0;
}
.coach-insight h3 {
  font-size: 18px;
  letter-spacing: -0.5px;
  margin: 9px 0 13px;
  font-weight: 550;
}
.coach-insight p {
  font-size: 13px;
  line-height: 1.9;
  color: #8797ad;
}
.coach-insight > div {
  display: flex;
  gap: 7px;
  margin-top: 21px;
  flex-wrap: wrap;
}
.evidence-chip {
  display: flex;
  align-items: center;
  gap: 8px;
  background: #f7f9fc;
  border: 1px solid #e3eaf4;
  border-radius: 6px;
  padding: 7px 10px;
  color: #8194af;
  font-size: 10px;
}
.ai-card {
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 30px;
  background: #fcfbfa;
}
.ai-card h2 {
  font-size: 20px;
  letter-spacing: -0.5px;
  margin: 8px 0;
}
.ai-card p {
  font-size: 12px;
  line-height: 1.8;
  color: #8d9aae;
  max-width: 650px;
}
.notice-inline {
  display: block;
  font-size: 10px;
  color: #aa9482;
  margin-top: 13px;
}
.ai-card .btn {
  font-size: 11px;
}
.exam-shell {
  min-height: 100vh;
  background: #f7f8fa;
  padding-bottom: 80px;
}
.exam-header {
  height: 78px;
  display: flex;
  align-items: center;
  gap: 30px;
  background: #fff;
  border-bottom: 1px solid #e1e6ee;
  padding: 0 30px;
  position: sticky;
  top: 0;
  z-index: 25;
}
.exam-name {
  border-left: 1px solid #e9edf3;
  padding-left: 25px;
  flex: 1;
  min-width: 0;
}
.exam-name strong {
  display: block;
  font-size: 13px;
  font-weight: 550;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.exam-name span {
  display: block;
  font-size: 10px;
  color: #929fb2;
  margin-top: 3px;
}
.exam-header-actions {
  display: flex;
  align-items: center;
  gap: 20px;
}
.exam-header-actions > .text-link {
  font-size: 10px;
  color: #8495ae;
}
.exam-timer {
  padding: 0 22px;
  border-inline: 1px solid #e6ebf3;
  text-align: center;
}
.exam-timer span {
  display: block;
  font-size: 7px;
  letter-spacing: 1px;
  color: #9aa9be;
}
.exam-timer strong {
  font: 550 22px var(--display);
  letter-spacing: -0.5px;
  font-variant-numeric: tabular-nums;
  display: block;
  color: #4d5d75;
}
.exam-sectionbar {
  height: 54px;
  background: #fff;
  border-bottom: 1px solid #e2e8f1;
  padding: 0 30px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 20px;
}
.exam-sectionbar > div {
  display: flex;
  align-items: center;
  gap: 20px;
  height: 100%;
}
.exam-sectionbar button {
  display: flex;
  align-items: center;
  gap: 10px;
  border: 0;
  border-bottom: 2px solid transparent;
  background: none;
  height: 100%;
  font-size: 11px;
  color: #94a2b8;
  padding: 0 12px;
}
.exam-sectionbar button span {
  font-size: 9px;
  background: #f2f5f9;
  border-radius: 4px;
  padding: 1px 5px;
  color: #a0aec1;
}
.exam-sectionbar button.active {
  color: #394c67;
  border-bottom-color: var(--orange);
}
#save-status {
  font-size: 9px;
  color: #879c90;
}
.exam-main {
  display: grid;
  grid-template-columns: minmax(0, 1fr) 235px;
  gap: 22px;
  max-width: 1580px;
  margin: 25px auto;
  padding: 0 25px;
  align-items: start;
}
.exam-content {
  background: #fff;
  border: 1px solid #e4eaf3;
  border-radius: 12px;
  min-width: 0;
  overflow: hidden;
}
.exam-question-meta {
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 20px;
  padding: 18px 24px;
  border-bottom: 1px solid #edf1f6;
  font-size: 10px;
  color: #9eacc0;
}
.exam-question-meta > div {
  display: flex;
  align-items: center;
  gap: 11px;
  flex-wrap: wrap;
}
.exam-question-meta strong {
  color: #4f6380;
  font-weight: 600;
}
.marking {
  font-size: 9px;
  color: #9eacc0;
}
.question-reading {
  padding: 28px 30px;
}
.question-reading.split-reading {
  display: grid;
  grid-template-columns: 1.03fr 1fr;
  padding: 0;
}
.reading-passage {
  padding: 25px 28px;
  border-right: 1px solid #e8edf5;
  line-height: 1.95;
  color: #657993;
  font-size: 15px;
}
.reading-passage > .eyebrow {
  font-size: 9px;
  color: #93a1b5;
  margin-bottom: 18px;
}
.split-reading > .reading-passage {
  max-height: calc(100vh - 310px);
  overflow: auto;
  min-height: 420px;
}
.answer-area {
  min-width: 0;
}
.split-reading > .answer-area {
  padding: 26px;
  max-height: calc(100vh - 310px);
  overflow: auto;
  min-height: 420px;
}
.question-label {
  font-size: 10px;
  color: #8699b2;
  margin-bottom: 18px;
}
.question-label span {
  color: #aab6c7;
  margin-left: 4px;
}
.question-prompt {
  font: 500 20px/1.8 var(--font);
  letter-spacing: -0.25px;
  color: #3a4b64;
  margin-bottom: 25px;
}
.answer-options {
  display: grid;
  gap: 12px;
  margin-bottom: 25px;
}
.answer-option {
  position: relative;
  display: flex;
  align-items: center;
  gap: 14px;
  border: 1px solid #dfe7f2;
  border-radius: 9px;
  padding: 15px 17px;
  min-height: 58px;
  cursor: pointer;
  transition:
    border-color 0.15s,
    background 0.15s;
}
.answer-option:hover {
  border-color: #edbf9f;
  background: #fffdfb;
}
.answer-option input {
  position: absolute;
  inset: 0;
  opacity: 0;
  width: 100%;
  height: 100%;
  cursor: pointer;
  margin: 0;
}
.answer-option:has(input:checked) {
  border-color: #f6b78e;
  background: #fff6ef;
}
.answer-option:has(input:focus-visible) {
  outline: 3px solid #ffb684;
  outline-offset: 3px;
}
.answer-option > span {
  width: 26px;
  height: 26px;
  display: grid;
  place-items: center;
  border: 1px solid #e0e8f3;
  border-radius: 6px;
  font-size: 10px;
  color: #8da0b9;
  flex-shrink: 0;
}
.answer-option > div {
  font-size: 14px;
  color: #687e9b;
  line-height: 1.7;
  flex: 1;
}
.answer-option:has(input:checked) > span {
  background: var(--orange);
  color: #fff;
  border-color: var(--orange);
}
.answer-option i {
  border: 1px solid #d2dce9;
  border-radius: 50%;
  width: 13px;
  height: 13px;
  flex-shrink: 0;
}
.answer-option:has(input:checked) i {
  border: 4px solid var(--orange);
}
.answer-tools {
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 12px;
  margin-top: 24px;
}
.answer-tools .text-link {
  font-size: 11px;
  color: #9caac0;
}
.answer-tools > span {
  font-size: 9px;
  color: #b2bdce;
}
.numeric-label {
  display: block;
  font-size: 11px;
  color: #8da0b8;
  margin-bottom: 8px;
}
.numeric-answer {
  border: 1px solid #d9e3f0;
  border-radius: 8px;
  padding: 15px;
  font: 500 23px var(--display);
  width: min(270px, 100%);
  color: #647b98;
}
.field-error {
  color: #bd7d66;
  font-size: 11px;
  min-height: 23px;
}
.exam-sidebar {
  background: #fff;
  border: 1px solid #e3eaf3;
  border-radius: 12px;
  padding: 21px;
  position: sticky;
  top: 99px;
}
.palette-heading .eyebrow {
  font-size: 9px;
  color: #93a1b5;
}
.palette-heading > strong {
  font-size: 21px;
  font-weight: 550;
  display: block;
  margin-top: 9px;
  color: #647991;
}
.palette-heading > strong > span {
  font-size: 10px;
  font-weight: 400;
  color: #99aac0;
}
.palette-progress {
  background: #eff3f8;
  height: 4px;
  border-radius: 4px;
  margin: 15px 0 22px;
}
.palette-progress i {
  display: block;
  height: 100%;
  border-radius: 4px;
  background: #f7a677;
}
.question-palette {
  display: grid;
  grid-template-columns: repeat(5, 1fr);
  gap: 8px;
  margin-bottom: 20px;
}
.question-palette button {
  position: relative;
  display: grid;
  place-items: center;
  background: #fff;
  border: 1px solid #dbe5f1;
  border-radius: 7px;
  aspect-ratio: 1;
  font-size: 10px;
  color: #99abc3;
}
.question-palette button.answered {
  color: #508d70;
  background: #edf7f0;
  border-color: #c9e3d2;
}
.question-palette button.visited {
  color: #b27863;
  background: #fff1e9;
  border-color: #efccba;
}
.question-palette button.flagged {
  color: #9884bc;
  background: #f5effe;
  border-color: #ddd0ee;
}
.question-palette button.current {
  box-shadow: 0 0 0 2px #f7a575;
  border-color: #fff;
}
.question-palette button.answered.flagged:after {
  content: "";
  position: absolute;
  right: 0;
  bottom: 0;
  width: 6px;
  height: 6px;
  background: #73a98a;
  border-radius: 50%;
  border: 1px solid white;
}
.palette-legend {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 10px;
  font-size: 8px;
  color: #99a9bf;
}
.palette-legend > span {
  display: flex;
  align-items: center;
  gap: 6px;
  white-space: nowrap;
}
.palette-legend > span:last-child {
  grid-column: 1/-1;
}
.palette-legend i {
  width: 9px;
  height: 9px;
  border: 1px solid #d9e3f0;
  border-radius: 3px;
  background: #fff;
}
.palette-legend i.answered {
  background: #e9f6ee;
  border-color: #c3e0cd;
}
.palette-legend i.visited {
  background: #ffede3;
  border-color: #efc5af;
}
.palette-legend i.flagged {
  background: #f4eafc;
  border-color: #d9c7e9;
}
.palette-legend i.answered.flagged {
  box-shadow: 2px 2px 0 #8cb6a0;
}
.exam-sidebar-note {
  border-top: 1px solid #eaf0f7;
  margin-top: 22px;
  padding-top: 22px;
  color: #adbbce;
}
.exam-sidebar-note p {
  font-size: 10px;
  line-height: 1.8;
  margin-top: 7px;
}
.exam-sidebar > .btn {
  width: 100%;
  padding: 11px;
  font-size: 11px;
  margin-top: 22px;
}
.exam-bottom {
  position: fixed;
  bottom: 0;
  left: 0;
  right: 0;
  z-index: 30;
  background: #ffffffed;
  border-top: 1px solid #e2eaf5;
  backdrop-filter: blur(15px);
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 15px;
  padding: 16px 30px;
}
.exam-bottom > div {
  display: flex;
  gap: 12px;
}
.exam-bottom .btn {
  font-size: 12px;
}
.exam-bottom > .btn {
  color: #9480aa;
  border-color: #e2d8ed;
  background: #fbf8fe;
}
.question-preview {
  max-height: 48vh;
  overflow: auto;
  margin: 20px 0;
}
.question-preview h3 {
  font: 500 17px/1.8 var(--font);
  color: #5e7494;
}
.question-preview .reading-passage {
  border: 0;
  background: #f7f9fc;
  border-radius: 8px;
  margin-bottom: 20px;
}
.question-preview ol {
  font-size: 14px;
  line-height: 1.8;
  padding-left: 23px;
  color: #8397b2;
}
.question-preview li {
  padding: 8px 0;
}
dialog {
  border: 1px solid #e0e7f1;
  border-radius: 18px;
  padding: 35px;
  width: min(570px, calc(100% - 30px));
  max-height: 90vh;
  overflow: auto;
  box-shadow: 0 25px 90px #152b4730;
  color: var(--ink);
}
dialog::backdrop {
  background: #17223660;
  backdrop-filter: blur(4px);
}
dialog .dialog-close {
  position: absolute;
  top: 13px;
  right: 13px;
  color: #b0bdcf;
}
dialog h2 {
  font-size: 25px;
  font-weight: 600;
  letter-spacing: -0.8px;
  margin: 12px 0 14px;
  padding-right: 20px;
  line-height: 1.4;
}
dialog > p {
  font-size: 13px;
  line-height: 1.9;
  color: #8b9eb9;
}
dialog > .eyebrow {
  font-size: 9px;
}
.dialog-actions {
  display: flex;
  gap: 12px;
  justify-content: flex-end;
  margin-top: 26px;
  align-items: center;
}
.dialog-actions .btn {
  font-size: 12px;
}
.form-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 18px;
  margin-top: 23px;
}
.form-grid label,
.form-label {
  display: grid;
  gap: 8px;
  font-size: 11px;
  color: #94a5be;
}
.form-grid select {
  width: 100%;
  font-size: 12px;
  padding: 11px;
}
.form-label {
  margin: 25px 0;
}
.form-label input {
  border: 1px solid #dfe8f4;
  border-radius: 8px;
  padding: 12px;
  font-size: 15px;
}
.instructions {
  font-size: 13px;
  color: #869bb7;
  line-height: 1.9;
  padding-left: 22px;
  margin: 25px 0;
}
.instructions li {
  padding: 6px 0;
}
.check-line {
  display: flex;
  align-items: center;
  gap: 9px;
  font-size: 12px;
  color: #8b9eb9;
}
.check-line input {
  width: 17px;
  height: 17px;
}
.submit-breakdown {
  display: flex;
  gap: 10px;
  margin: 23px 0;
}
.submit-breakdown span {
  background: #f3f6fa;
  border-radius: 7px;
  font-size: 11px;
  padding: 9px 13px;
  color: #91a3bd;
}
.upload-zone {
  display: flex;
  align-items: center;
  flex-direction: column;
  justify-content: center;
  gap: 8px;
  position: relative;
  border: 1px dashed #cfdceb;
  border-radius: 12px;
  padding: 28px;
  background: #f8fafc;
  margin: 25px 0;
  cursor: pointer;
  color: #92a5bf;
}
.upload-zone strong {
  font-size: 13px;
  font-weight: 500;
}
.upload-zone span {
  font-size: 10px;
  color: #a5b3c7;
}
.upload-zone input {
  position: absolute;
  inset: 0;
  width: 100%;
  opacity: 0;
  cursor: pointer;
}
.format-help {
  font-size: 11px;
  color: #97a9c1;
}
.format-help summary {
  cursor: pointer;
}
.format-help pre {
  font-size: 10px;
  background: #f5f8fb;
  border-radius: 8px;
  padding: 15px;
  overflow: auto;
  max-height: 220px;
}
.format-help p {
  line-height: 1.8;
}
#import-status {
  font-size: 12px;
  color: #aa885f;
}
.settings-lines {
  margin: 25px 0;
}
.settings-lines > div {
  display: flex;
  justify-content: space-between;
  gap: 20px;
  padding: 15px 0;
  border-bottom: 1px solid #edf2f8;
  font-size: 11px;
}
.settings-lines strong {
  font-weight: 500;
  color: #6b83a4;
}
.settings-lines span {
  color: #9bacbf;
}
.wallet-note {
  font-size: 11px;
  background: #fff6ec;
  border: 1px solid #f0dfc9;
  padding: 14px;
  border-radius: 8px;
  color: #b09a7b;
  margin: 20px 0;
}
.ledger {
  max-height: 250px;
  overflow: auto;
}
.ledger > div {
  display: flex;
  justify-content: space-between;
  gap: 15px;
  font-size: 12px;
  padding: 13px 0;
  border-bottom: 1px solid #edf2f8;
  color: #879cb9;
}
.ledger small {
  display: block;
  font-size: 9px;
  color: #a5b5cb;
  margin-top: 3px;
}
.ledger > p {
  font-size: 12px;
  color: #a0b0c7;
}
#calc-output {
  display: block;
  margin: 22px 0 0;
  font: 550 27px var(--display);
  color: #7e94b2;
}
#toast {
  position: fixed;
  bottom: 25px;
  left: 50%;
  transform: translate(-50%, 20px);
  background: #293344;
  color: #fff;
  border: 1px solid #475771;
  border-radius: 10px;
  padding: 13px 21px;
  font-size: 12px;
  box-shadow: 0 6px 20px #23395725;
  z-index: 200;
  opacity: 0;
  pointer-events: none;
  transition:
    opacity 0.2s,
    transform 0.2s;
  max-width: min(540px, calc(100% - 30px));
  text-align: center;
}
#toast.visible {
  opacity: 1;
  transform: translate(-50%, 0);
}
@media (min-width: 1500px) {
  .workspace-main {
    padding-top: 44px;
  }
  .page-heading h1 {
    font-size: 34px;
  }
  .daily-progress h2 {
    font-size: 28px;
  }
  .card {
    border-radius: 17px;
  }
  .sidebar {
    padding-top: 33px;
  }
}
@media (max-width: 1200px) {
  .app-shell {
    grid-template-columns: 205px minmax(0, 1fr);
  }
  .sidebar {
    padding-inline: 12px;
  }
  .sidebar > .brand {
    font-size: 16px;
    gap: 6px;
  }
  .sidebar .brand-number {
    font-size: 29px;
  }
  .workspace-main {
    padding: 28px 25px;
  }
  .app-header {
    padding-inline: 25px;
  }
  .page-heading h1 {
    font-size: 26px;
  }
  .page-heading > .btn {
    font-size: 11px;
    padding: 11px 14px;
  }
  .dashboard-top {
    grid-template-columns: 1.45fr 1fr;
  }
  .daily-progress {
    padding: 25px;
    gap: 15px;
  }
  .daily-progress h2 {
    font-size: 21px;
  }
  .progress-ring {
    width: 115px;
    height: 115px;
  }
  .progress-ring > div {
    width: 103px;
    height: 103px;
  }
  .progress-ring strong {
    font-size: 28px;
  }
  .progress-ring small {
    font-size: 6px;
  }
  .stats-grid {
    gap: 11px;
  }
  .stat {
    padding: 18px 16px;
  }
  .stat > span {
    font-size: 7px;
  }
  .stat > small {
    font-size: 9px;
  }
  .practice-card {
    padding: 20px;
  }
  .practice-card h3 {
    font-size: 13px;
  }
  .practice-card > p {
    font-size: 10px;
  }
  .practice-card-footer {
    font-size: 8px;
  }
  .recent-score {
    display: none;
  }
  .recent-row .text-link {
    font-size: 9px;
  }
  .result-stats {
    gap: 10px;
  }
  .result-stats > div {
    padding: 19px 17px;
  }
  .result-stats strong {
    font-size: 28px;
  }
  .review-layout {
    grid-template-columns: 190px minmax(0, 1fr);
    gap: 15px;
  }
  .related-tray {
    display: block;
    padding: 15px 18px;
  }
  .related-tray > div:first-child {
    display: flex;
    justify-content: space-between;
    margin-bottom: 10px;
  }
  .related-tray > div:last-child {
    justify-content: space-between;
  }
  .exam-main {
    grid-template-columns: minmax(0, 1fr) 210px;
    gap: 17px;
    padding: 0 18px;
  }
  .exam-sidebar {
    padding: 17px;
  }
  .exam-name {
    padding-left: 18px;
  }
  .exam-header {
    gap: 20px;
    padding: 0 20px;
  }
  .exam-header-actions {
    gap: 12px;
  }
  .split-reading > .answer-area {
    padding: 20px;
  }
  .reading-passage {
    padding: 22px;
    font-size: 14px;
  }
  .question-prompt {
    font-size: 18px;
  }
  .answer-option {
    padding: 12px;
  }
  .answer-option > div {
    font-size: 13px;
  }
}
@media (max-width: 950px) {
  .sidebar-plan {
    display: none;
  }
  .app-shell {
    grid-template-columns: 185px minmax(0, 1fr);
  }
  .sidebar {
    padding-inline: 10px;
  }
  .sidebar > .brand {
    font-size: 14px;
  }
  .sidebar .brand-number {
    font-size: 26px;
  }
  .nav-item {
    font-size: 11px;
    gap: 9px;
    padding: 11px 10px;
  }
  .workspace-switch {
    padding: 10px;
    gap: 7px;
  }
  .workspace-switch small {
    font-size: 8px;
  }
  .dashboard-top {
    grid-template-columns: 1fr;
  }
  .dashboard-plan {
    display: none;
  }
  .daily-progress h2 {
    font-size: 24px;
  }
  .progress-ring {
    width: 140px;
    height: 140px;
  }
  .progress-ring > div {
    width: 126px;
    height: 126px;
  }
  .stats-grid {
    grid-template-columns: 1fr 1fr;
  }
  .practice-cards {
    grid-template-columns: 1fr;
    gap: 12px;
  }
  .practice-card {
    padding: 20px;
    display: grid;
    grid-template-columns: 50px 1fr;
    column-gap: 14px;
  }
  .practice-card > div:first-child {
    grid-row: 1/4;
    margin: 0;
    align-items: start;
  }
  .card-number {
    display: none;
  }
  .practice-card h3 {
    font-size: 15px;
  }
  .practice-card > p {
    font-size: 11px;
  }
  .practice-card-footer {
    font-size: 9px;
    grid-column: 2;
    padding-top: 10px;
    margin-top: 13px;
  }
  .dashboard-bottom {
    grid-template-columns: 1fr;
  }
  .companion-card {
    display: none;
  }
  .page-heading {
    align-items: flex-start;
  }
  .page-heading > .btn {
    font-size: 10px;
    padding: 10px;
  }
  .page-heading h1 {
    font-size: 24px;
  }
  .header-right {
    gap: 9px;
  }
  .preview-label {
    display: none;
  }
  .breadcrumb {
    font-size: 10px;
  }
  .app-header {
    padding-inline: 20px;
  }
  .workspace-main {
    padding: 25px 20px;
  }
  .bank-row {
    padding: 19px 17px;
    gap: 12px;
    align-items: flex-start;
    flex-wrap: wrap;
  }
  .bank-row-copy {
    flex-basis: calc(100% - 65px);
  }
  .row-actions {
    margin-left: auto;
    margin-top: 3px;
  }
  .row-actions .btn {
    padding: 7px 11px;
  }
  .table-label {
    display: none;
  }
  .filter-bar select {
    flex: 1;
    min-width: 100px;
  }
  .library-summary {
    font-size: 10px;
    align-items: flex-start;
    gap: 15px;
  }
  .mock-grid {
    grid-template-columns: 1fr;
  }
  .analytics-grid {
    grid-template-columns: 1fr;
  }
  .analysis-callout {
    padding: 22px;
    display: block;
  }
  .analysis-callout > .text-link {
    margin-top: 18px;
  }
  .membership-grid {
    grid-template-columns: 1fr;
  }
  .membership-grid > section {
    padding: 28px;
  }
  .membership-price {
    font-size: 42px;
  }
  .credit-explainer {
    align-items: flex-start;
    padding: 22px;
    gap: 18px;
  }
  .credit-explainer > .mouse-icon {
    width: 65px;
    height: 65px;
  }
  .credit-explainer h2 {
    font-size: 18px;
  }
  .result-stats {
    grid-template-columns: 1fr 1fr;
  }
  .analysis-tabs {
    gap: 20px;
  }
  .analysis-tabs button {
    font-size: 11px;
  }
  .analysis-overview-grid {
    grid-template-columns: 1fr;
  }
  .related-promo {
    padding: 25px;
  }
  .section-performance {
    gap: 15px;
  }
  .section-performance > div {
    padding-right: 15px;
  }
  .section-performance h3 {
    font-size: 10px;
  }
  .section-performance strong {
    font-size: 24px;
  }
  .section-performance p {
    font-size: 9px;
  }
  .review-layout {
    display: block;
  }
  .review-rail {
    position: static;
    margin-bottom: 15px;
  }
  .review-rail-heading {
    padding: 15px 17px 10px;
  }
  .review-filters {
    position: absolute;
    right: 10px;
    top: 8px;
    width: 210px;
  }
  .review-rail-heading > span {
    display: none;
  }
  .review-question-list {
    display: flex;
    overflow-x: auto;
    max-height: none;
    padding: 8px;
  }
  .review-question-list > button {
    flex: 0 0 85px;
    flex-direction: column;
    gap: 6px;
    text-align: center;
    padding: 9px;
  }
  .review-question-list > button > div {
    width: 100%;
  }
  .review-question-list > button > span:last-child {
    display: none;
  }
  .review-question-list strong {
    font-size: 8px;
  }
  .review-question-list small {
    font-size: 8px;
  }
  .question-status {
    width: 27px;
    height: 27px;
  }
  .coach-grid {
    grid-template-columns: 1fr;
  }
  .coach-heading {
    gap: 13px;
  }
  .coach-heading > .source-tag {
    display: none;
  }
  .coach-heading h2 {
    font-size: 19px;
  }
  .coach-heading p {
    font-size: 11px;
  }
  .ai-card {
    display: block;
  }
  .ai-card .btn {
    margin-top: 18px;
  }
  .exam-header {
    height: auto;
    min-height: 74px;
    flex-wrap: wrap;
    gap: 12px;
    padding: 15px 20px;
  }
  .exam-header > .brand {
    font-size: 16px;
  }
  .exam-header .brand-number {
    font-size: 28px;
  }
  .exam-name {
    flex: 1;
    border: 0;
    padding: 0;
  }
  .exam-header-actions {
    width: 100%;
    justify-content: flex-end;
    gap: 18px;
  }
  .exam-timer {
    border: 0;
    padding: 0 8px;
  }
  .exam-header-actions > .icon-btn {
    margin-right: auto;
  }
  .exam-sectionbar {
    padding: 0 18px;
  }
  .exam-main {
    display: flex;
    flex-direction: column;
    margin: 17px auto;
  }
  .exam-content {
    width: 100%;
  }
  .exam-sidebar {
    position: static;
    width: 100%;
    padding: 20px;
  }
  .question-palette {
    grid-template-columns: repeat(10, 1fr);
    max-width: 550px;
    gap: 10px;
    margin-top: 15px;
  }
  .question-palette button {
    max-width: 40px;
  }
  .palette-heading {
    display: flex;
    align-items: center;
    justify-content: space-between;
  }
  .palette-heading > strong {
    margin: 0;
  }
  .palette-progress {
    margin: 12px 0;
  }
  .palette-legend {
    display: flex;
    gap: 15px;
    flex-wrap: wrap;
    font-size: 9px;
  }
  .palette-legend i {
    width: 10px;
    height: 10px;
  }
  .exam-sidebar-note {
    display: none;
  }
  .exam-sidebar > .btn {
    margin-top: 19px;
    width: auto;
  }
  .question-reading.split-reading {
    grid-template-columns: 1fr 1fr;
  }
  .split-reading > .reading-passage,
  .split-reading > .answer-area {
    max-height: 550px;
    min-height: 400px;
  }
  .exam-bottom {
    padding: 14px 20px;
  }
  .question-prompt {
    font-size: 18px;
  }
  .answer-option > div {
    font-size: 13px;
  }
}
@media (max-width: 700px) {
  .app-shell {
    display: block;
  }
  .sidebar {
    position: fixed;
    left: -250px;
    width: 230px;
    transition: left 0.2s;
  }
  .sidebar.is-open {
    left: 0;
    box-shadow: 10px 0 40px #0004;
  }
  .sidebar > .brand {
    font-size: 19px;
  }
  .sidebar .brand-number {
    font-size: 31px;
  }
  .mobile-menu {
    display: inline-grid;
  }
  .app-header {
    height: 64px;
    padding: 0 16px;
  }
  .header-left {
    gap: 7px;
  }
  .breadcrumb {
    font-size: 10px;
  }
  .breadcrumb > span {
    padding: 0 6px;
  }
  .header-right {
    gap: 8px;
  }
  .avatar {
    display: none;
  }
  .credit-pill {
    gap: 4px;
    padding-right: 9px;
  }
  .credit-pill .mouse-icon {
    width: 27px;
    height: 27px;
  }
  .credit-pill strong {
    font-size: 12px;
  }
  .credit-pill > span {
    font-size: 9px;
  }
  .workspace-main {
    padding: 25px 16px 30px;
  }
  .page-heading {
    display: block;
    margin-bottom: 23px;
  }
  .page-heading h1 {
    font-size: 27px;
    letter-spacing: -1px;
  }
  .page-heading p {
    font-size: 12px;
    line-height: 1.8;
  }
  .page-heading > .btn {
    margin-top: 17px;
    font-size: 12px;
    padding: 11px 15px;
  }
  .eyebrow {
    font-size: 9px;
  }
  .daily-progress {
    padding: 24px;
    gap: 15px;
  }
  .daily-progress h2 {
    font-size: 20px;
  }
  .daily-progress p {
    font-size: 11px;
    line-height: 1.8;
    margin-bottom: 17px;
  }
  .progress-ring {
    width: 105px;
    height: 105px;
  }
  .progress-ring > div {
    width: 94px;
    height: 94px;
  }
  .progress-ring strong {
    font-size: 25px;
  }
  .progress-ring strong > span {
    font-size: 13px;
  }
  .progress-ring small {
    font-size: 5px;
  }
  .daily-progress .text-link {
    font-size: 9px;
  }
  .stats-grid {
    gap: 10px;
    margin: 15px 0 28px;
  }
  .stat {
    padding: 18px;
  }
  .stat > span {
    font-size: 7px;
  }
  .stat > strong {
    font-size: 25px;
  }
  .stat > small {
    font-size: 9px;
  }
  .section-heading h2 {
    font-size: 17px;
  }
  .section-heading p {
    font-size: 11px;
  }
  .section-heading .text-link {
    font-size: 10px;
  }
  .card {
    border-radius: 13px;
    padding: 21px;
  }
  .practice-card {
    display: block;
    padding: 22px;
  }
  .practice-card > div:first-child {
    display: flex;
    margin-bottom: 17px;
  }
  .card-number {
    display: block;
  }
  .practice-card h3 {
    font-size: 16px;
  }
  .practice-card > p {
    font-size: 12px;
  }
  .practice-card-footer {
    font-size: 10px;
    margin-top: 18px;
    padding-top: 14px;
  }
  .recent-row {
    gap: 11px;
    padding: 17px 0;
  }
  .recent-row strong {
    font-size: 11px;
  }
  .recent-row small {
    font-size: 9px;
  }
  .recent-row .text-link {
    font-size: 9px;
  }
  .session-symbol {
    width: 32px;
    height: 36px;
  }
  .app-footer {
    margin: 0 17px;
    font-size: 9px;
  }
  .library-card {
    padding: 0;
  }
  .library-summary {
    display: block;
    margin-bottom: 18px;
  }
  .library-summary > span {
    display: block;
    font-size: 11px;
  }
  .library-summary > span + span {
    font-size: 10px;
    margin-top: 4px;
  }
  .section-tabs {
    gap: 5px;
  }
  .section-tabs button {
    padding: 8px 10px;
    font-size: 10px;
    gap: 7px;
  }
  .section-tabs button > span {
    font-size: 9px;
  }
  .filter-bar {
    padding: 15px;
    gap: 8px;
  }
  .search-box {
    flex-basis: 100%;
    min-width: 0;
  }
  .filter-bar select {
    font-size: 10px;
    min-width: 75px;
    padding: 9px 21px 9px 8px;
    max-width: none;
  }
  .bank-row {
    gap: 10px;
    padding: 18px 16px;
  }
  .bank-row p {
    font-size: 12px;
    -webkit-line-clamp: 3;
  }
  .bank-row h3 {
    font-size: 14px;
  }
  .bank-row-copy > small {
    font-size: 8px;
  }
  .bank-row-copy > div {
    gap: 7px;
  }
  .source-tag {
    font-size: 8px;
  }
  .bank-row .section-token {
    min-width: 31px;
    height: 30px;
    font-size: 9px;
  }
  .row-actions .btn {
    font-size: 10px;
  }
  .pagination {
    padding: 12px 16px;
    font-size: 9px;
  }
  .pagination > div {
    gap: 9px;
  }
  .pagination .icon-btn {
    width: 25px;
    height: 25px;
  }
  .footnote {
    font-size: 10px;
  }
  .notice {
    font-size: 11px;
    padding: 14px;
  }
  .mock-card {
    padding: 25px;
  }
  .mock-card h2 {
    font-size: 22px;
  }
  .mock-card p {
    font-size: 12px;
  }
  .mock-specs {
    gap: 7px;
  }
  .mock-specs span {
    font-size: 9px;
  }
  .mock-card .btn {
    font-size: 12px;
  }
  .empty-state {
    padding: 45px 18px;
    min-height: 230px;
  }
  .empty-state h3 {
    font-size: 18px;
  }
  .empty-state p {
    font-size: 12px;
  }
  .empty-state .btn {
    font-size: 12px;
  }
  .analytics-grid {
    gap: 15px;
  }
  .analysis-callout {
    padding: 22px;
  }
  .analysis-callout h2 {
    font-size: 21px;
  }
  .accuracy-chart {
    height: 185px;
    gap: 8px;
    padding: 15px 2px 0;
  }
  .chart-column strong {
    font-size: 8px;
  }
  .insight-card h2 {
    font-size: 22px;
  }
  .data-table td {
    font-size: 11px;
  }
  .data-table th {
    font-size: 9px;
  }
  .compare-selects {
    flex-wrap: wrap;
    gap: 7px;
  }
  .compare-selects select {
    flex-basis: 100%;
    font-size: 10px;
  }
  .compare-selects > span {
    margin: auto;
    font-size: 10px;
  }
  .membership-grid > section {
    padding: 27px;
  }
  .membership-grid h2 {
    font-size: 26px;
  }
  .membership-head > .mouse-icon {
    width: 70px;
    height: 70px;
  }
  .membership-price {
    font-size: 46px;
  }
  .membership-price > span {
    font-size: 10px;
  }
  .feature-list li {
    font-size: 12px;
  }
  .credit-explainer {
    padding: 22px;
    gap: 17px;
  }
  .credit-explainer > .mouse-icon {
    width: 50px;
    height: 50px;
  }
  .credit-explainer h2 {
    font-size: 17px;
  }
  .credit-explainer p {
    font-size: 11px;
  }
  .credit-explainer .footnote {
    font-size: 9px;
  }
  .result-heading > .btn {
    font-size: 10px;
    padding: 9px 12px;
  }
  .result-stats {
    gap: 10px;
  }
  .result-stats > div {
    padding: 19px 17px;
  }
  .result-stats > div > span {
    font-size: 8px;
    letter-spacing: 0.7px;
  }
  .result-stats strong {
    font-size: 28px;
  }
  .result-stats p {
    font-size: 9px;
    line-height: 1.7;
  }
  .score-breakdown b {
    font-size: 24px;
  }
  .score-breakdown small {
    font-size: 8px;
  }
  .score-breakdown {
    gap: 7px;
  }
  .analysis-tabs {
    gap: 23px;
    margin: 24px 0 20px;
  }
  .analysis-tabs button {
    font-size: 11px;
    padding-bottom: 12px;
  }
  .overview-summary {
    padding: 25px;
  }
  .overview-summary h2 {
    font-size: 23px;
  }
  .related-promo {
    padding: 24px;
    gap: 16px;
  }
  .related-promo > .mouse-icon {
    width: 66px;
    height: 66px;
  }
  .related-promo h2 {
    font-size: 21px;
  }
  .related-promo p {
    font-size: 11px;
  }
  .related-promo .eyebrow {
    font-size: 7px;
  }
  .related-promo .text-link {
    font-size: 10px;
  }
  .section-performance {
    display: block;
  }
  .section-performance > div {
    border-right: 0;
    border-bottom: 1px solid #eef2f7;
    padding: 17px 0;
  }
  .section-performance h3 {
    display: inline;
    margin-left: 10px;
    font-size: 11px;
  }
  .section-performance strong {
    display: block;
    font-size: 28px;
    margin-top: 13px;
  }
  .section-performance p {
    font-size: 11px;
  }
  .section-performance > div > small {
    font-size: 10px;
  }
  .review-rail {
    padding: 0;
  }
  .review-main {
    padding: 0;
  }
  .review-question-header {
    padding: 21px;
  }
  .review-question-header > .review-question-meta {
    gap: 9px;
  }
  .review-question-header > .review-question-meta > span:nth-child(2) {
    font-size: 7px;
    letter-spacing: 0.5px;
  }
  .review-question-header h2 {
    font-size: 16px;
    margin-top: 15px;
  }
  .review-question-header > p {
    gap: 9px;
    font-size: 9px;
  }
  .review-mode-tabs {
    padding: 0 20px;
    gap: 24px;
  }
  .review-mode-tabs button {
    font-size: 11px;
  }
  .solution-body {
    padding: 22px 20px;
  }
  .passage-disclosure {
    padding: 13px 15px;
  }
  .passage-disclosure > div {
    font-size: 13px;
  }
  .solution-options > div {
    gap: 10px;
    padding: 12px;
    flex-wrap: wrap;
  }
  .solution-options p {
    font-size: 13px;
  }
  .solution-options small {
    margin-left: 35px;
    width: 100%;
    font-size: 9px;
  }
  .explanation {
    padding: 19px;
  }
  .explanation p {
    font-size: 14px;
  }
  .solution-body > .btn {
    font-size: 11px;
    gap: 8px;
    padding: 10px 14px;
  }
  .unlock-panel {
    padding: 25px 23px 33px;
  }
  .unlock-panel h3 {
    font-size: 21px;
  }
  .unlock-panel p {
    font-size: 12px;
  }
  .unlock-panel > .eyebrow {
    font-size: 7px;
  }
  .unlock-panel > .btn {
    font-size: 11px;
    min-width: 0;
  }
  .related-controls {
    padding: 19px 18px 0;
  }
  .related-scope {
    gap: 11px;
    font-size: 9px;
    align-items: center;
    margin-top: 15px;
  }
  .source-filter {
    gap: 5px;
  }
  .source-filter button {
    font-size: 9px;
    gap: 6px;
    padding: 8px;
  }
  .related-list-title {
    padding: 19px 18px 12px;
    font-size: 10px;
  }
  .related-list-title .text-link {
    font-size: 9px;
  }
  .related-row {
    gap: 9px;
    padding: 17px 8px;
  }
  .related-rows {
    padding: 0 9px 12px;
  }
  .related-row h4 {
    font-size: 13px;
  }
  .related-row .source-tag {
    font-size: 7px;
  }
  .related-row .difficulty {
    font-size: 8px;
  }
  .related-row p {
    font-size: 8px;
    gap: 9px;
  }
  .related-row p > .text-link {
    font-size: 9px;
  }
  .related-tray {
    padding: 14px 16px;
  }
  .related-tray > div:first-child > span {
    font-size: 8px;
  }
  .related-tray strong {
    font-size: 12px;
  }
  .related-tray > div:last-child {
    gap: 8px;
  }
  .related-tray .text-link {
    font-size: 9px;
  }
  .related-tray .btn {
    font-size: 10px;
    padding: 10px;
  }
  .related-tray select {
    font-size: 9px;
    max-width: 87px;
  }
  .coach-symbol {
    width: 45px;
    height: 45px;
    border-radius: 11px;
  }
  .coach-heading h2 {
    font-size: 18px;
  }
  .coach-heading p {
    font-size: 11px;
  }
  .coach-insight {
    padding: 24px;
  }
  .coach-insight h3 {
    font-size: 19px;
  }
  .coach-insight p {
    font-size: 13px;
  }
  .ai-card h2 {
    font-size: 20px;
  }
  .ai-card p {
    font-size: 12px;
  }
  .ai-card .notice-inline {
    font-size: 9px;
  }
  .exam-header {
    padding: 13px 16px;
    gap: 10px;
  }
  .exam-header > .brand {
    font-size: 14px;
    gap: 5px;
  }
  .exam-header .brand-number {
    font-size: 25px;
  }
  .exam-name {
    text-align: right;
    min-width: 130px;
  }
  .exam-name strong {
    font-size: 11px;
  }
  .exam-name span {
    font-size: 8px;
  }
  .exam-header-actions {
    gap: 15px;
  }
  .exam-header-actions > .text-link {
    font-size: 9px;
  }
  .exam-header-actions > .btn {
    font-size: 10px;
    padding: 8px 11px;
  }
  .exam-timer strong {
    font-size: 21px;
  }
  .exam-timer span {
    font-size: 7px;
  }
  .exam-sectionbar {
    height: 47px;
    padding: 0 14px;
    gap: 8px;
  }
  .exam-sectionbar > div {
    gap: 8px;
  }
  .exam-sectionbar button {
    font-size: 10px;
    gap: 6px;
    padding: 0 7px;
  }
  .exam-sectionbar button span {
    font-size: 8px;
  }
  #save-status {
    font-size: 8px;
  }
  .exam-main {
    padding: 0 12px;
    margin: 13px auto;
    gap: 14px;
  }
  .exam-question-meta {
    padding: 15px 17px;
    gap: 9px;
    font-size: 9px;
    align-items: flex-start;
  }
  .exam-question-meta > div {
    gap: 8px;
  }
  .exam-question-meta .source-tag {
    font-size: 7px;
  }
  .exam-question-meta .difficulty {
    font-size: 8px;
  }
  .exam-question-meta .icon-btn {
    width: 25px;
    height: 25px;
    padding: 4px;
  }
  .marking {
    font-size: 8px;
  }
  .question-reading {
    padding: 23px 20px;
  }
  .question-reading.split-reading {
    display: block;
  }
  .split-reading > .reading-passage {
    border-right: 0;
    border-bottom: 1px solid #e7edf6;
    min-height: 0;
    max-height: 330px;
    padding: 21px;
    font-size: 14px;
    line-height: 1.9;
  }
  .split-reading > .answer-area {
    min-height: 0;
    max-height: none;
    padding: 23px 20px;
  }
  .question-prompt {
    font-size: 18px;
    line-height: 1.8;
  }
  .question-label {
    font-size: 9px;
    margin-bottom: 13px;
  }
  .question-label span {
    font-size: 8px;
  }
  .answer-option {
    padding: 14px 13px;
    gap: 11px;
  }
  .answer-option > div {
    font-size: 14px;
  }
  .answer-option > span {
    width: 23px;
    height: 23px;
    font-size: 9px;
  }
  .answer-tools > span {
    display: none;
  }
  .answer-tools .text-link {
    font-size: 10px;
  }
  .exam-sidebar {
    padding: 20px;
  }
  .palette-heading > strong {
    font-size: 18px;
  }
  .palette-heading > strong > span {
    font-size: 9px;
  }
  .question-palette {
    grid-template-columns: repeat(8, 1fr);
    gap: 10px;
  }
  .question-palette button {
    font-size: 10px;
    max-width: 40px;
  }
  .palette-legend {
    font-size: 8px;
    gap: 12px;
  }
  .exam-bottom {
    padding: 13px;
    gap: 8px;
  }
  .exam-bottom .btn {
    font-size: 10px;
    padding: 10px;
    gap: 7px;
  }
  .exam-bottom > div {
    gap: 7px;
  }
  .exam-bottom > .btn {
    font-size: 9px;
  }
  .exam-bottom > .btn svg {
    width: 13px;
  }
  .numeric-answer {
    font-size: 23px;
  }
  .exam-shell {
    padding-bottom: 77px;
  }
  dialog {
    padding: 27px 23px;
    border-radius: 15px;
  }
  dialog h2 {
    font-size: 23px;
  }
  dialog > p {
    font-size: 13px;
  }
  .dialog-actions {
    gap: 9px;
    flex-wrap: wrap;
  }
  .dialog-actions .btn {
    font-size: 11px;
    padding: 10px 15px;
  }
  .instructions {
    font-size: 12px;
  }
  .form-grid {
    gap: 13px;
  }
  .form-grid label {
    font-size: 10px;
  }
  .form-grid select {
    font-size: 11px;
    padding: 10px;
  }
  .check-line {
    font-size: 11px;
  }
  .wallet-note {
    font-size: 10px;
  }
  .settings-lines > div {
    font-size: 10px;
  }
  .upload-zone {
    padding: 25px 20px;
  }
  .question-preview h3 {
    font-size: 16px;
  }
  #toast {
    font-size: 11px;
    bottom: 18px;
    padding: 12px 16px;
  }
}
@media (prefers-reduced-motion: reduce) {
  html {
    scroll-behavior: auto;
  }
  * {
    transition: none !important;
    animation: none !important;
  }
}
/* Readable secondary text on every practice surface. */
.stat > small,
.page-heading p,
.bank-row p,
.recent-row small,
.card > p,
.related-row h4,
.related-row p,
.solution-options p,
.explanation p,
.question-label,
.answer-option > div,
.question-prompt,
.reading-passage,
.coach-insight p,
.unlock-panel p,
.review-question-header > p,
.data-table td {
  color: #667488;
}
.stat > span,
.source-tag,
.difficulty,
.eyebrow,
.footnote,
.filter-bar select,
.sidebar-plan p {
  font-weight: 500;
}

/* Clear, neutral reading surfaces and accessible small-screen navigation. */
.question-prompt,
.answer-option > div,
.reading-passage,
.solution-options p,
.explanation p,
.question-preview h3 {
  color: #303a46;
}
.instructions,
dialog > p,
.form-grid label,
.form-label,
.check-line,
.question-preview ol,
.numeric-label,
.small-copy,
.settings-lines span,
.settings-lines strong {
  color: #586474;
}
.field-error {
  color: #a33924;
}
.answer-tools .text-link {
  color: #8f431c;
}
.stat > span,
.result-stats > div > span {
  font-size: 10px;
  color: #647081;
}
.stat > small {
  font-size: 11px;
}
.nav-item {
  font-size: 13px;
  color: #b6bac1;
}
.workspace-switch small {
  font-size: 10px;
}
.source-tag {
  font-size: 10px;
}
.palette-legend {
  font-size: 10px;
  color: #586474;
}
.question-label {
  font-size: 12px;
}
.question-palette button {
  font-size: 12px;
}
.eyebrow {
  font-size: 10px;
}
.sidebar-close {
  display: none;
}
@media (max-width: 700px) {
  .sidebar {
    visibility: hidden;
    transition:
      left 0.2s,
      visibility 0.2s;
  }
  .sidebar.is-open {
    visibility: visible;
  }
  .sidebar-close {
    display: grid;
    position: absolute;
    right: 5px;
    top: 5px;
    color: #fff;
    font-size: 24px;
  }
  .sidebar-bottom {
    padding-top: 10px;
  }
  .sidebar {
    overflow: auto;
  }
  .question-prompt {
    font-size: 18px;
  }
  .stat > span {
    font-size: 9px;
  }
  .stat > small {
    font-size: 10px;
  }
  .source-tag {
    font-size: 9px;
  }
  .field-note,
  .footnote,
  .related-scope,
  .review-question-header > p {
    font-size: 11px;
  }
  .dialog-actions .btn {
    font-size: 12px;
  }
  .related-row p {
    font-size: 11px;
  }
}

.passage-table-wrap {
  overflow: auto;
  margin: 19px 0;
}
.passage-table {
  border-collapse: collapse;
  width: 100%;
  min-width: 330px;
  font-size: 12px;
  line-height: 1.6;
}
.passage-table td,
.passage-table th {
  padding: 10px 11px;
  border: 1px solid #dfe4e8;
  text-align: left;
  vertical-align: top;
}
.passage-table thead {
  background: #f3f5f6;
  color: #4f5b65;
}
.passage-table th {
  font-weight: 550;
}
.reading-passage p + p,
.passage-disclosure p + p {
  margin-top: 16px;
}
.ai-report > h3 {
  font-size: 25px;
  margin: 12px 0;
}
.ai-report > p {
  margin-bottom: 25px;
  line-height: 1.9;
  color: #515e70;
}
.ai-report .coach-insight {
  padding: 20px;
  border: 1px solid #e9edf1;
  border-radius: 10px;
}
.ai-report .coach-insight p + p {
  margin-top: 12px;
}

.library-summary .text-link {
  font-size: 11px;
}
.sidebar {
  overflow-y: auto;
}
.sidebar-bottom {
  flex-shrink: 0;
}
@media (max-height: 820px) {
  .sidebar-plan {
    display: none;
  }
  .sidebar-bottom {
    padding-top: 15px;
  }
  .sidebar > .brand {
    margin-bottom: 20px;
  }
  .workspace-switch {
    margin-bottom: 15px;
  }
}
/* Topic-first practice, with quiet progress and consistent actions. */
:root {
  --canvas: #fafafa;
  --line: #e7e7e9;
  --muted: #6d6d76;
}
body {
  font-size: 16px;
}
.nav-item {
  font-size: 14px;
}
.sidebar {
  background: #191919;
}
.sidebar-plan p {
  font-size: 13px;
  line-height: 1.7;
}
.sidebar-plan .mini-label {
  font-size: 11px;
  letter-spacing: 0.09em;
}
.page-heading p {
  font-size: 16px;
}
.app-footer {
  font-size: 12px;
}
.breadcrumb {
  font-size: 14px;
}
.credit-pill {
  gap: 5px;
  padding: 3px 10px 3px 5px;
  background: #f6f6f7;
  border-color: #e9e9ec;
}
.credit-pill img {
  width: 29px;
  height: 29px;
}
.credit-pill strong {
  font-size: 13px;
}
.credit-pill > span {
  font-size: 12px;
}
.dashboard-plan p {
  font-size: 14px;
}
.dashboard-plan p > img {
  display: none;
}
.membership-head {
  min-height: 99px;
}
.credit-explainer {
  gap: 16px;
  padding: 21px 25px;
  align-items: center;
}
.credit-explainer > img {
  width: 46px;
  height: 46px;
  flex: 0 0 46px;
}
.credit-explainer h2 {
  font-size: 17px;
  letter-spacing: -0.025em;
}
.credit-explainer p {
  font-size: 14px;
}
.credit-explainer .footnote {
  font-size: 12px;
}
.bank-heading-actions {
  display: flex;
  align-items: center;
  gap: 20px;
}
.catalogue-heading {
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 25px;
  margin-bottom: 31px;
}
.catalogue-heading .eyebrow {
  font-size: 12px;
  color: #797980;
  letter-spacing: 0.09em;
}
.catalogue-heading h1 {
  font: 600 36px/1.2 var(--display);
  letter-spacing: -0.05em;
  margin-top: 13px;
}
.catalogue-heading p {
  color: #72727b;
  font-size: 16px;
  margin-top: 12px;
}
.catalogue-heading .btn {
  background: #fff;
  font-weight: 500;
  flex-shrink: 0;
}
.catalogue-tabs {
  display: flex;
  border-bottom: 1px solid #dfe0e4;
  gap: 32px;
}
.catalogue-tabs button {
  background: none;
  border: 0;
  border-bottom: 3px solid transparent;
  padding: 9px 0 17px;
  text-align: left;
  display: flex;
  align-items: center;
  gap: 10px;
  color: #777780;
  font-size: 14px;
}
.catalogue-tabs button strong {
  font-size: 16px;
  font-weight: 600;
  color: #595960;
}
.catalogue-tabs button.active {
  border-color: #ff641f;
}
.catalogue-tabs button.active strong {
  color: #dc5010;
}
.catalogue-tabs button.active span {
  color: #28282d;
}
.catalogue-topline {
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 25px;
  margin: 22px 0 28px;
  color: #7a7a82;
  font-size: 13px;
}
.catalogue-topline strong {
  color: #3d3d44;
  font-weight: 500;
}
.catalogue-topline div > span {
  margin: 0 11px;
  color: #aaa;
}
.catalogue-topline .text-link {
  font-size: 13px;
  font-weight: 500;
}
.catalogue-resume {
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 25px;
  padding: 18px 22px;
  border: 1px solid #f7d8c8;
  background: #fff8f4;
  border-radius: 10px;
  margin-bottom: 25px;
}
.catalogue-resume > div {
  display: flex;
  align-items: center;
  gap: 14px;
}
.catalogue-resume > div > svg {
  color: #e66524;
}
.catalogue-resume strong,
.catalogue-resume small {
  display: block;
}
.catalogue-resume strong {
  font-size: 15px;
  font-weight: 600;
}
.catalogue-resume small {
  font-size: 13px;
  color: #777780;
  margin-top: 3px;
}
.catalogue-resume .btn {
  padding: 10px 17px;
  font-size: 13px;
  white-space: nowrap;
}
.catalogue-tools {
  display: flex;
  align-items: center;
  gap: 24px;
  margin-bottom: 28px;
}
.catalogue-tools .search-box {
  background: #fff;
  width: 300px;
  max-width: 100%;
  min-height: 44px;
  border-color: #dedee3;
}
.catalogue-tools .search-box input {
  font-size: 14px;
}
.catalogue-access {
  display: flex;
  align-items: center;
  gap: 9px;
  font-size: 13px;
  color: #71717a;
  cursor: pointer;
  white-space: nowrap;
}
.catalogue-access input {
  width: 15px;
  height: 15px;
}
.catalogue-progress-key {
  font-size: 12px;
  color: #83838b;
  margin-left: auto;
  white-space: nowrap;
}
.topic-catalogue {
  display: grid;
  grid-template-columns: 1fr;
  gap: 28px;
}
.topic-group {
  background: #fff;
  border: 1px solid #e3e3e7;
  border-radius: 13px;
  overflow: hidden;
}
.topic-group-heading {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 20px 24px;
  background: #fcfcfc;
  border-bottom: 1px solid #e8e8eb;
}
.topic-group-heading h2 {
  font: 600 19px var(--display);
  letter-spacing: -0.025em;
}
.topic-group-heading > span {
  font-size: 12px;
  color: #85858e;
}
.topic-entry {
  display: grid;
  grid-template-columns: minmax(190px, 1fr) 148px 120px;
  align-items: center;
  gap: 30px;
  padding: 23px 24px;
  min-height: 104px;
}
.topic-entry + .topic-entry {
  border-top: 1px solid #eeeef0;
}
.topic-entry-name h3 {
  font: 550 16px/1.5 var(--font);
  letter-spacing: 0;
}
.topic-entry-name p {
  font-size: 12px;
  color: #85858e;
  margin-top: 7px;
  line-height: 1.65;
}
.topic-entry-name p > span:not(.topic-free) {
  margin: 0 6px;
}
.topic-free {
  display: inline-block;
  font-size: 11px;
  color: #a04b20;
  margin-left: 11px;
  border-left: 1px solid #e4e4e7;
  padding-left: 11px;
}
.progress-segments {
  display: flex;
  gap: 4px;
  height: 7px;
}
.progress-segments > span {
  display: block;
  width: 25%;
  background: #eeeeef;
  border-radius: 2px;
  overflow: hidden;
}
.progress-segments i {
  display: block;
  height: 100%;
  background: #ff793a;
}
.topic-progress > small {
  display: block;
  font-size: 12px;
  color: #8b8b93;
  margin-top: 9px;
  text-align: right;
}
.topic-start {
  min-width: 115px;
  min-height: 42px;
  padding: 10px 15px;
  gap: 13px;
  font-size: 14px;
  border-radius: 7px;
  box-shadow: none;
  font-weight: 500;
}
.topic-start.outline {
  background: #fff;
}
.catalogue-bottom {
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 22px;
  margin: 24px 0 13px;
  font-size: 12px;
  color: #87878f;
}
.catalogue-bottom .text-link {
  font-size: 13px;
}
.topic-setup-summary {
  font-size: 14px;
  background: #f7f7f8;
  border-radius: 8px;
  padding: 13px 16px;
  margin: 18px 0;
}
.workspace-welcome {
  max-width: 560px;
  margin: 65px auto 100px;
  padding: 40px;
  background: #fff;
  border: 1px solid var(--line);
  border-radius: 16px;
}
.workspace-welcome .eyebrow {
  font-size: 12px;
  letter-spacing: 0.08em;
  color: #83838b;
}
.workspace-welcome h1 {
  font: 550 41px/1.3 var(--display);
  letter-spacing: -0.05em;
  margin-top: 15px;
}
.workspace-welcome > p {
  font-size: 16px;
  color: #74747d;
  margin-top: 17px;
}
.welcome-device {
  display: flex;
  align-items: center;
  gap: 17px;
  margin: 28px 0;
  padding: 22px 0;
  border-top: 1px solid var(--line);
  border-bottom: 1px solid var(--line);
}
.welcome-device > svg {
  color: #e86325;
}
.welcome-device strong,
.welcome-device span {
  display: block;
}
.welcome-device strong {
  font-size: 16px;
  font-weight: 500;
}
.welcome-device span {
  font-size: 13px;
  color: #87878e;
  margin-top: 6px;
}
.workspace-welcome > .btn {
  width: 100%;
  justify-content: space-between;
}
.workspace-welcome > .footnote {
  font-size: 13px;
  line-height: 1.8;
  margin: 22px 0;
}
.workspace-welcome > .text-link {
  font-size: 14px;
}
.form-grid label {
  font-size: 14px;
}
.form-grid select {
  font-size: 15px;
  min-height: 45px;
}
.notice {
  font-size: 14px;
}
.footnote {
  font-size: 12px;
  line-height: 1.75;
}
.eyebrow,
.mini-label {
  font-size: 12px;
}
.section-tabs button {
  font-size: 14px;
}
.bank-row h3 {
  font-size: 16px;
}
.bank-row p {
  font-size: 15px;
}
.membership-full .feature-list {
  font-size: 16px;
}
.section-heading p {
  font-size: 14px;
}
.mock-card p {
  font-size: 16px;
}
.source-tag,
.difficulty {
  font-size: 12px;
}
.question-copy {
  font-size: 20px;
}
@media (min-width: 1600px) {
  .topic-catalogue {
    grid-template-columns: 1fr 1fr;
    align-items: start;
  }
  .topic-entry {
    grid-template-columns: minmax(160px, 1fr) 94px 103px;
    gap: 15px;
  }
  .topic-start {
    min-width: 103px;
  }
  .topic-entry-name h3 {
    font-size: 16px;
  }
  .topic-entry-name p .topic-free {
    display: block;
    margin: 4px 0 0;
    border: 0;
    padding: 0;
  }
}
@media (max-width: 1200px) {
  .catalogue-tabs {
    gap: 25px;
  }
  .catalogue-tabs button {
    display: block;
  }
  .catalogue-tabs button span {
    display: block;
    font-size: 13px;
    margin-top: 3px;
  }
  .catalogue-progress-key {
    display: none;
  }
  .topic-entry {
    gap: 22px;
    grid-template-columns: minmax(170px, 1fr) 114px 112px;
  }
  .topic-start {
    min-width: 112px;
  }
  .topic-free {
    display: block;
    margin-left: 0;
    border: 0;
    padding-left: 0;
    margin-top: 3px;
  }
  .catalogue-topline .text-link {
    font-size: 13px;
  }
  .catalogue-heading p {
    max-width: 340px;
  }
  .catalogue-bottom {
    display: block;
  }
  .catalogue-bottom a {
    margin-top: 10px;
  }
}
@media (max-width: 700px) {
  .catalogue-heading {
    align-items: flex-start;
    margin-bottom: 27px;
    gap: 20px;
  }
  .catalogue-heading h1 {
    font-size: 31px;
  }
  .catalogue-heading p {
    font-size: 15px;
    max-width: 260px;
  }
  .catalogue-heading > .btn {
    padding: 10px 12px;
    font-size: 13px;
    gap: 7px;
  }
  .catalogue-heading > .btn svg {
    display: none;
  }
  .catalogue-heading .eyebrow {
    font-size: 11px;
    letter-spacing: 0.06em;
  }
  .catalogue-tabs {
    gap: 25px;
  }
  .catalogue-tabs button {
    flex: 1;
    padding-top: 0;
    padding-bottom: 14px;
  }
  .catalogue-tabs button strong {
    font-size: 16px;
  }
  .catalogue-tabs button span {
    font-size: 12px;
    line-height: 1.6;
  }
  .catalogue-topline {
    display: block;
    margin: 20px 0;
  }
  .catalogue-topline > div {
    font-size: 12px;
  }
  .catalogue-topline div > span {
    margin: 0 5px;
  }
  .catalogue-topline > a {
    margin-top: 12px;
  }
  .catalogue-tools {
    flex-wrap: wrap;
    gap: 13px;
    margin-bottom: 22px;
  }
  .catalogue-tools .search-box {
    flex: 1 0 100%;
    width: 100%;
  }
  .catalogue-access {
    font-size: 14px;
  }
  .catalogue-progress-key {
    display: block;
    margin-left: 0;
    font-size: 11px;
  }
  .topic-group-heading {
    padding: 17px 18px;
  }
  .topic-group-heading h2 {
    font-size: 18px;
  }
  .topic-entry {
    grid-template-columns: minmax(0, 1fr) 106px;
    gap: 16px 20px;
    padding: 21px 18px;
  }
  .topic-entry-name h3 {
    font-size: 16px;
  }
  .topic-entry-name p {
    font-size: 12px;
  }
  .topic-start {
    grid-column: 2;
    grid-row: 1 / span 2;
    align-self: center;
    min-width: 106px;
    font-size: 14px;
    padding: 10px 13px;
  }
  .topic-progress {
    max-width: 160px;
    grid-column: 1;
  }
  .progress-segments {
    height: 6px;
  }
  .topic-progress small {
    text-align: left;
    font-size: 11px;
    margin-top: 6px;
  }
  .topic-entry-name p .topic-free {
    display: block;
    font-size: 11px;
  }
  .catalogue-topline .text-link {
    font-size: 14px;
  }
  .catalogue-resume {
    align-items: flex-start;
    flex-direction: column;
    gap: 13px;
    padding: 17px;
  }
  .catalogue-resume .btn {
    align-self: flex-end;
    font-size: 14px;
  }
  .catalogue-bottom {
    font-size: 12px;
  }
  .catalogue-bottom .text-link {
    font-size: 14px;
  }
  .workspace-welcome {
    margin: 25px 0 50px;
    padding: 28px 24px;
  }
  .workspace-welcome h1 {
    font-size: 34px;
  }
  .workspace-welcome .eyebrow {
    font-size: 11px;
  }
  .bank-heading-actions {
    align-items: flex-start;
    flex-direction: column;
    gap: 15px;
  }
  .credit-explainer {
    padding: 20px;
    align-items: flex-start;
  }
  .credit-explainer h2 {
    font-size: 16px;
  }
  .credit-explainer p {
    font-size: 14px;
  }
  .credit-pill > span {
    display: none;
  }
  .app-footer {
    font-size: 11px;
    gap: 20px;
  }
  .app-footer > span:first-child {
    max-width: 160px;
  }
  .form-grid select {
    font-size: 16px;
  }
}
.mouse-icon {
  border-radius: 50%;
}
.history-type-tabs {
  display: flex;
  gap: 24px;
  margin: 0 0 25px;
  border-bottom: 1px solid var(--line);
}
.history-type-tabs > a {
  font-size: 14px;
  padding: 13px 0;
  border-bottom: 2px solid transparent;
  color: #73737c;
}
.history-type-tabs > a.active {
  color: #ce500e;
  border-color: #ff641f;
}
.related-promo > img {
  width: 60px;
  height: 60px;
  flex: 0 0 60px;
}
.unlock-panel > img {
  width: 65px;
  height: 65px;
}
@media (max-width: 600px) {
  .history-type-tabs {
    gap: 20px;
  }
  .history-type-tabs > a {
    font-size: 13px;
  }
  .credit-explainer > img {
    border-radius: 50%;
  }
}

/* Desktop shared-set review: full-width answer and explanation. */
/* Isolated candidate: preserve passage/question pairing; use full review width below. */
@container (min-width: 900px) {
 #analysis-root .review-reader-grid.has-context > .review-response { display: contents; }
 #analysis-root .review-reader-grid.has-context > .review-passage { grid-column: 1; grid-row: 1; }
 #analysis-root .review-reader-grid.has-context > .review-response > * { grid-column: 1 / -1; min-width: 0; margin-inline: 24px; }
 #analysis-root .review-reader-grid.has-context > .review-response > .review-question-header { grid-column: 2; grid-row: 1; margin: 24px; }
 #analysis-root .review-reader-grid.has-context > .review-response > .review-pagination { margin-bottom: 24px; }
}

@container (max-width: 899px) { #analysis-root .review-reader-grid.has-context { grid-template-columns: minmax(0,1fr); } #analysis-root .review-reader-grid.has-context > .review-response, #analysis-root .review-reader-grid.has-context > .review-passage { padding:20px; } }

/* Source: workspace-simple.css */
:root {
  --font: Inter, Arial, sans-serif;
  --display: Inter, Arial, sans-serif;
  --line: #e9e9ec;
  --muted: #707079;
  --ink: #202024;
}
body {
  font-family: var(--font);
  font-size: 14px;
  background: #fafafa;
  color: var(--ink);
}
h1,
h2,
h3,
h4 {
  font-family: var(--display);
  font-weight: 600;
  letter-spacing: -0.025em;
}
.app-shell {
  grid-template-columns: 220px minmax(0, 1fr);
}
.sidebar {
  background: #fff;
  color: #6b6b73;
  border-right: 1px solid var(--line);
  padding: 25px 14px 16px;
}
.sidebar > .brand {
  color: #1a1a1d;
  font-family: Manrope, Arial, sans-serif;
  font-size: 20px;
  margin: 0 5px 36px;
}
.sidebar .brand-number {
  color: #ff6925;
}
.workspace-label {
  font-size: 10px;
  font-weight: 600;
  letter-spacing: 0.13em;
  color: #8b8b95;
  padding: 0 12px 15px;
}
.nav-item {
  color: #686872;
  font-size: 13px;
  min-height: 41px;
  padding: 10px 12px;
  border-radius: 6px;
  font-weight: 400;
  margin-bottom: 3px;
}
.nav-item svg {
  width: 17px;
  height: 17px;
  opacity: 0.8;
}
.nav-item:hover {
  background: #f5f5f7;
  color: #27272e;
}
.nav-item.active {
  background: #fff1e8;
  color: #c44c0b;
  font-weight: 500;
}
.nav-item.active:before {
  display: none;
}
.nav-item b {
  background: #eeeef1;
  color: #696975;
}
.sidebar-bottom {
  padding-top: 24px;
}
.sidebar-bottom .nav-item {
  font-size: 12px;
}
.local-status {
  color: #85858e;
  font-size: 10px;
  padding-left: 12px;
  margin-top: 12px;
}
.app-header {
  height: 56px;
  padding: 0 26px;
  backdrop-filter: none;
  background: #fff;
}
.breadcrumb {
  font-size: 13px;
  color: #555561;
  font-weight: 500;
}
.preview-label {
  font-size: 11px;
  color: #888892;
}
.avatar {
  width: 29px;
  height: 29px;
}
.workspace-main {
  padding: 28px 26px 44px;
  max-width: 1440px;
  width: 100%;
}
.page-heading,
.catalogue-heading {
  margin-bottom: 23px;
  gap: 16px;
}
.page-heading .eyebrow,
.catalogue-heading .eyebrow {
  display: none;
}
.page-heading h1,
.catalogue-heading h1 {
  font-size: 26px;
  font-weight: 600;
  letter-spacing: -0.04em;
  line-height: 1.35;
}
.page-heading p,
.catalogue-heading p {
  font-size: 13px;
  line-height: 1.7;
  color: #777782;
  margin-top: 7px;
}
.card {
  border-radius: 8px;
  padding: 20px;
  box-shadow: none;
}
.card h2,
.section-heading h2 {
  font-size: 17px;
  font-weight: 600;
  letter-spacing: -0.025em;
}
.section-heading {
  margin-bottom: 17px;
  gap: 15px;
}
.section-heading p {
  font-size: 13px;
}
.btn {
  font-size: 13px;
  font-weight: 500;
  min-height: 40px;
  border-radius: 6px;
  padding: 10px 15px;
  box-shadow: none;
  gap: 10px;
}
.btn.small {
  min-height: 34px;
  padding: 8px 13px;
  font-size: 12px;
}
.btn.primary {
  background: #ff702a;
  color: #171717;
  border-color: #ff702a;
  box-shadow: none;
}
.btn.primary:hover {
  background: #f8631b;
  border-color: #f8631b;
}
.btn.outline {
  border-color: #dfdfe5;
  background: #fff;
  color: #555561;
}
.btn.outline:hover {
  background: #f5f5f7;
  border-color: #c9c9d0;
}
.text-link {
  font-size: 12px;
  font-weight: 500;
}
.daily-focus-row {
  background: #fff;
  border: 1px solid var(--line);
  border-radius: 8px;
  padding: 18px 20px;
  display: flex;
  align-items: center;
  gap: 28px;
  margin-bottom: 16px;
}
.daily-focus-row strong {
  font-weight: 600;
  font-size: 14px;
}
.daily-focus-row p {
  font-size: 12px;
  color: #80808a;
  margin-top: 7px;
}
.daily-focus-row .text-link {
  margin-left: 8px;
  color: #bf531b;
}
.daily-meter {
  margin-left: auto;
  width: 120px;
  flex-shrink: 0;
  height: 5px;
  background: #eeeef0;
  border-radius: 5px;
  overflow: hidden;
}
.daily-meter i {
  display: block;
  height: 100%;
  background: #ff762e;
  border-radius: 5px;
}
.stats-grid {
  gap: 12px;
  margin: 0 0 29px;
}
.stat {
  background: #fff;
  border: 1px solid var(--line);
  border-radius: 8px;
  padding: 18px 17px;
  box-shadow: none;
}
.stat > span {
  font-size: 11px;
  font-weight: 400;
  letter-spacing: 0;
  text-transform: none;
  color: #73737e;
}
.stat > strong {
  font-size: 27px;
  font-weight: 600;
  line-height: 1.4;
  letter-spacing: -0.04em;
  margin: 9px 0 3px;
}
.stat > small {
  font-size: 11px;
  color: #8a8a94;
}
.practice-shortcuts {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 12px;
  margin-bottom: 30px;
}
.practice-shortcuts > a {
  display: flex;
  gap: 12px;
  align-items: center;
  padding: 18px 15px;
  border: 1px solid var(--line);
  border-radius: 8px;
  background: #fff;
  transition: border-color 0.18s;
}
.practice-shortcuts > a:hover {
  border-color: #ef9c72;
}
.practice-shortcuts > a > svg {
  margin-left: auto;
  flex-shrink: 0;
  color: #90909a;
}
.practice-shortcuts strong {
  display: block;
  font-size: 12px;
  font-weight: 500;
  line-height: 1.6;
}
.practice-shortcuts small {
  display: block;
  font-size: 11px;
  color: #8a8a94;
  margin-top: 5px;
  line-height: 1.5;
}
.section-token {
  font-size: 11px;
  font-weight: 600;
  border-radius: 4px;
  padding: 5px 7px;
  flex-shrink: 0;
  background: #f3f3f5;
  color: #696975;
}
.recent-row {
  padding: 16px 0;
  gap: 15px;
}
.recent-row > div > strong {
  font-size: 13px;
  font-weight: 500;
}
.recent-row small {
  font-size: 11px;
  color: #82828d;
}
.session-symbol {
  width: 30px;
  height: 30px;
  background: #f5f5f7;
  border-radius: 6px;
  color: #90909b;
}
.recent-score > strong {
  font-size: 16px;
}
.recent-score > strong > span {
  font-size: 11px;
}
.empty-state {
  padding: 37px 20px;
}
.empty-state h3 {
  font-size: 16px;
  font-weight: 500;
}
.empty-state p {
  font-size: 13px;
  line-height: 1.8;
}
.catalogue-tabs {
  gap: 10px;
  margin-bottom: 20px;
}
.catalogue-tabs button {
  min-height: 58px;
  padding: 12px 16px;
  border-radius: 7px;
  background: #fff;
  border-color: #e6e6eb;
  box-shadow: none;
}
.catalogue-tabs button strong {
  font-size: 14px;
  font-weight: 600;
}
.catalogue-tabs button span {
  font-size: 11px;
  color: #7b7b85;
}
.catalogue-tabs button.active {
  border-color: #ff9e6d;
  background: #fff8f4;
}
.catalogue-tabs button.active strong {
  color: #b94709;
}
.catalogue-tabs button.active span {
  color: #a86a49;
}
.catalogue-topline {
  font-size: 12px;
  margin-bottom: 16px;
}
.catalogue-tools {
  margin-bottom: 18px;
}
.catalogue-tools .search-box {
  min-height: 38px;
  border-radius: 6px;
}
.catalogue-tools .search-box input {
  font-size: 13px;
}
.catalogue-access {
  font-size: 12px;
}
.catalogue-progress-key {
  display: none;
}
.topic-catalogue {
  grid-template-columns: 1fr;
  gap: 18px;
}
.topic-group {
  border-radius: 8px;
  border-color: var(--line);
}
.topic-group-heading {
  padding: 14px 20px;
  background: #fdfdfd;
}
.topic-group-heading h2 {
  font-size: 15px;
  letter-spacing: -0.015em;
}
.topic-entry {
  grid-template-columns: minmax(170px, 1fr) 124px 100px;
  min-height: 85px;
  padding: 16px 20px;
  gap: 24px;
}
.topic-entry-name h3 {
  font-family: var(--font);
  font-size: 14px;
  font-weight: 500;
  line-height: 1.5;
}
.topic-entry-name p {
  font-size: 11px;
  margin-top: 5px;
  color: #81818b;
}
.topic-free {
  font-size: 10px;
  color: #ab521f;
}
.topic-progress > small {
  font-size: 10px;
  margin-top: 7px;
}
.progress-segments {
  height: 5px;
}
.topic-start {
  min-width: 96px;
  min-height: 35px;
  padding: 8px 12px;
  font-size: 12px;
  gap: 10px;
}
.catalogue-bottom {
  font-size: 11px;
  margin-top: 20px;
}
.catalogue-bottom .text-link,
.catalogue-topline .text-link {
  font-size: 12px;
}
.footnote {
  font-size: 11px;
  line-height: 1.8;
}
.mock-grid {
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 12px;
  margin-bottom: 22px;
}
.mock-card {
  padding: 20px;
  min-height: 146px;
  display: block;
}
.mock-title-row {
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 14px;
}
.mock-card h2 {
  font-size: 15px;
  margin: 0;
  letter-spacing: -0.02em;
  font-weight: 500;
}
.mock-card p {
  font-size: 12px;
  line-height: 1.6;
  margin: 8px 0 19px;
  min-height: 0;
  color: #83838d;
}
.mock-card .btn {
  width: auto;
  margin: 0;
  background: #f6f6f7;
  border-color: #e7e7eb;
  border-radius: 20px;
  min-height: 31px;
  font-size: 11px;
  padding: 7px 13px;
}
.source-tag {
  font-size: 9px;
  background: #f4f4f6;
  color: #797985;
  border-radius: 4px;
  padding: 4px 6px;
}
.sectional-surface {
  background: #fff;
  border: 1px solid var(--line);
  border-radius: 8px;
  overflow: hidden;
  margin-bottom: 30px;
}
.sectional-select-label {
  display: block;
  font-size: 11px;
  color: #81818a;
  padding: 18px 20px 0;
}
.sectional-select-label select {
  display: block;
  width: 100%;
  margin-top: 9px;
  min-height: 41px;
  font-size: 13px;
  border-radius: 5px;
}
.sectional-attempt-row {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 20px;
  padding: 23px 20px 20px;
}
.sectional-attempt-row h2 {
  font-size: 16px;
  font-weight: 500;
}
.sectional-attempt-row p {
  font-size: 12px;
  color: #81818b;
  margin-top: 8px;
}
.sectional-note {
  font-size: 11px;
  color: #85858e;
  padding: 14px 20px;
  line-height: 1.8;
  border-top: 1px solid #f0f0f2;
  background: #fdfdfd;
}
.quiet-empty {
  font-size: 13px;
  color: #85858e;
  padding: 26px 0 14px;
}
.catalogue-resume {
  padding: 15px 18px;
  border-radius: 7px;
  background: #fff9f4;
  margin-bottom: 22px;
}
.catalogue-resume > div {
  display: block;
}
.catalogue-resume strong {
  font-size: 13px;
}
.catalogue-resume small {
  font-size: 11px;
  margin-top: 5px;
}
.analysis-callout {
  background: #fff;
  border: 1px solid var(--line);
  border-radius: 8px;
  padding: 19px 20px;
  margin-bottom: 16px;
}
.analysis-callout .eyebrow {
  display: none;
}
.analysis-callout h2 {
  font-size: 15px;
  font-weight: 500;
}
.analysis-callout p {
  font-size: 12px;
  margin-top: 6px;
  color: #81818b;
}
.analysis-callout .text-link {
  color: #c45c23;
}
.analytics-grid {
  gap: 16px;
  margin-bottom: 18px;
}
.analytics-grid .card {
  padding: 20px;
}
.insight-card {
  background: #fff;
}
.insight-card p {
  font-size: 13px;
  line-height: 1.8;
}
.data-table {
  font-size: 12px;
}
.data-table th {
  font-size: 11px;
  font-weight: 500;
  color: #757580;
  letter-spacing: 0;
  text-transform: none;
  padding: 13px 12px;
}
.data-table td {
  padding: 15px 12px;
  font-size: 12px;
}
.data-table td strong {
  font-size: 12px;
  font-weight: 500;
}
.history-type-tabs {
  gap: 20px;
  margin-bottom: 20px;
}
.history-type-tabs a {
  font-size: 12px;
  padding: 10px 0;
}
.result-stats {
  border-radius: 8px;
  margin-bottom: 20px;
}
.result-stats > div {
  padding: 22px 19px;
}
.result-stats strong {
  font-size: 28px;
  font-weight: 600;
}
.result-stats span {
  font-size: 10px;
  letter-spacing: 0.02em;
}
.result-stats p {
  font-size: 11px;
  line-height: 1.8;
}
.result-score {
  background: #f9f9fb;
}
.result-score strong {
  font-size: 34px;
  color: #262630;
}
.analysis-tabs {
  gap: 24px;
  margin-bottom: 22px;
}
.analysis-tabs button {
  font-size: 12px;
  padding: 12px 0;
}
.analysis-overview-grid {
  gap: 16px;
  margin-bottom: 18px;
}
.overview-summary h2,
.related-promo h2 {
  font-size: 19px;
  font-weight: 600;
  line-height: 1.4;
}
.overview-summary p,
.related-promo p {
  font-size: 13px;
  line-height: 1.8;
  color: #74747f;
}
.related-promo {
  background: #fff;
  display: block;
}
.related-promo .eyebrow,
.overview-summary .eyebrow {
  font-size: 10px;
  letter-spacing: 0.06em;
  color: #8b8b96;
}
.section-performance h3 {
  font-size: 13px;
  font-weight: 500;
}
.unlock-panel {
  padding: 28px 22px;
  border-radius: 8px;
}
.unlock-panel h3 {
  font-size: 19px;
}
.unlock-panel > .mouse-icon {
  width: 36px;
  height: 36px;
}
.unlock-panel p {
  font-size: 13px;
  line-height: 1.8;
}
.membership-grid {
  gap: 18px;
}
.membership-full {
  background: #222225;
  border-radius: 8px;
  padding: 28px;
}
.membership-free {
  padding: 28px;
}
.membership-price {
  font-size: 42px;
  font-weight: 600;
}
.membership-price span {
  font-size: 12px;
}
.feature-list {
  font-size: 13px;
  gap: 18px;
}
.membership-head h2,
.membership-free h2 {
  font-size: 23px;
}
.membership-full .text-link {
  color: #d8d8de;
  font-size: 12px;
}
.question-item {
  border-radius: 7px;
  box-shadow: none;
}
#app-dialog {
  border-radius: 12px;
}
@media (max-width: 1150px) {
  .practice-shortcuts {
    grid-template-columns: 1fr;
  }
  .practice-shortcuts > a {
    padding: 15px 17px;
  }
  .practice-shortcuts strong {
    font-size: 13px;
  }
  .practice-shortcuts small {
    font-size: 11px;
  }
  .practice-shortcuts {
    gap: 8px;
  }
  .stats-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
  .daily-meter {
    width: 70px;
  }
  .daily-focus-row {
    gap: 15px;
  }
  .topic-entry {
    grid-template-columns: minmax(150px, 1fr) 100px 96px;
    gap: 15px;
  }
}
@media (max-width: 950px) {
  .app-shell {
    display: block;
  }
  .sidebar {
    position: fixed;
    left: -250px;
    width: 220px;
    visibility: hidden;
    overflow: auto;
    transition:
      left 0.2s,
      visibility 0.2s;
  }
  .sidebar.is-open {
    left: 0;
    visibility: visible;
    box-shadow: 10px 0 40px #0004;
  }
  .sidebar .sidebar-close {
    display: inline-flex;
    position: absolute;
    right: 5px;
    top: 5px;
    font-size: 24px;
  }
  .app-header {
    padding: 0 22px;
  }
  .workspace-main {
    padding: 24px 22px 38px;
  }
  .daily-meter {
    width: 100px;
  }
  .topic-entry {
    grid-template-columns: minmax(160px, 1fr) 120px 100px;
  }
  .mobile-menu {
    display: inline-flex;
  }
  .sidebar-close {
    color: #777780;
    background: #f3f3f5;
  }
}
@media (max-width: 700px) {
  .app-header {
    height: 55px;
    padding: 0 16px;
  }
  .workspace-main {
    padding: 22px 16px 34px;
  }
  .header-left,
  .header-right {
    gap: 12px;
  }
  .breadcrumb {
    font-size: 12px;
  }
  .preview-label {
    display: none;
  }
  .page-heading h1,
  .catalogue-heading h1 {
    font-size: 24px;
  }
  .page-heading p,
  .catalogue-heading p {
    font-size: 12px;
  }
  .page-heading,
  .catalogue-heading {
    margin-bottom: 20px;
  }
  .daily-focus-row {
    flex-wrap: wrap;
    padding: 17px;
  }
  .daily-focus-row > div:first-child {
    width: 100%;
  }
  .daily-meter {
    margin: 0;
    flex: 1;
  }
  .daily-focus-row .btn {
    margin-left: 12px;
  }
  .stats-grid {
    gap: 10px;
    margin-bottom: 25px;
  }
  .stat {
    padding: 16px 14px;
  }
  .stat > span {
    font-size: 11px;
  }
  .stat > strong {
    font-size: 26px;
  }
  .stat > small {
    font-size: 10px;
  }
  .card {
    padding: 18px;
  }
  .section-heading h2,
  .card h2 {
    font-size: 16px;
  }
  .section-heading .text-link {
    font-size: 11px;
  }
  .practice-shortcuts {
    margin-bottom: 25px;
  }
  .recent-row {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    gap: 10px;
  }
  .recent-row > .session-symbol {
    display: none;
  }
  .recent-row > div > strong {
    font-size: 12px;
  }
  .recent-row > .text-link {
    grid-column: 1/-1;
    justify-self: start;
    font-size: 11px;
  }
  .recent-score > strong {
    font-size: 15px;
  }
  .recent-score {
    min-width: 0;
  }
  .catalogue-tabs {
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 7px;
  }
  .catalogue-tabs button {
    min-height: 49px;
    padding: 9px 11px;
  }
  .catalogue-tabs button strong {
    font-size: 13px;
  }
  .catalogue-tabs button span {
    display: none;
  }
  .catalogue-heading > .btn {
    font-size: 11px;
    min-height: 33px;
    padding: 7px 10px;
    max-width: none;
  }
  .catalogue-heading > .btn svg {
    display: none;
  }
  .catalogue-topline {
    font-size: 11px;
    gap: 10px;
  }
  .catalogue-topline > div {
    font-size: 11px;
  }
  .catalogue-topline .text-link {
    font-size: 11px;
  }
  .catalogue-tools {
    gap: 12px;
    flex-wrap: wrap;
  }
  .catalogue-tools .search-box {
    flex: 1 1 100%;
    width: 100%;
    min-width: 0;
  }
  .catalogue-access {
    font-size: 11px;
  }
  .topic-group-heading {
    padding: 13px 16px;
  }
  .topic-group-heading h2 {
    font-size: 14px;
  }
  .topic-entry {
    grid-template-columns: minmax(0, 1fr) auto;
    min-height: 83px;
    padding: 15px 16px;
    gap: 10px 14px;
  }
  .topic-entry-name {
    grid-column: 1;
  }
  .topic-entry-name h3 {
    font-size: 13px;
  }
  .topic-entry-name p {
    font-size: 10px;
    line-height: 1.8;
  }
  .topic-free {
    display: none;
  }
  .topic-progress {
    grid-column: 1;
    grid-row: 2;
    max-width: 150px;
    margin-top: 0;
  }
  .topic-progress > small {
    font-size: 9px;
    margin-top: 5px;
    text-align: left;
  }
  .topic-start {
    grid-column: 2;
    grid-row: 1/3;
    min-width: 83px;
    font-size: 11px;
    gap: 7px;
    min-height: 33px;
    padding: 7px 10px;
  }
  .topic-catalogue {
    gap: 14px;
  }
  .catalogue-bottom {
    font-size: 10px;
    display: block;
    line-height: 1.8;
  }
  .catalogue-bottom .text-link {
    font-size: 11px;
    display: inline-flex;
    margin-top: 12px;
  }
  .mock-grid {
    grid-template-columns: 1fr;
    gap: 10px;
  }
  .mock-card {
    min-height: 136px;
    padding: 19px;
  }
  .mock-card h2 {
    font-size: 14px;
  }
  .mock-card p {
    font-size: 11px;
  }
  .mock-card .btn {
    font-size: 11px;
  }
  .sectional-select-label {
    padding: 17px 17px 0;
  }
  .sectional-attempt-row {
    padding: 20px 17px;
    gap: 12px;
  }
  .sectional-attempt-row h2 {
    font-size: 14px;
  }
  .sectional-attempt-row p {
    font-size: 11px;
    line-height: 1.8;
  }
  .sectional-attempt-row .btn {
    flex-shrink: 0;
    font-size: 11px;
    min-height: 33px;
    padding: 8px 11px;
  }
  .sectional-note {
    padding: 13px 17px;
    font-size: 10px;
  }
  .sectional-history .section-heading > span {
    font-size: 11px;
  }
  .quiet-empty {
    font-size: 12px;
    line-height: 1.8;
  }
  .analysis-callout {
    padding: 17px;
    gap: 15px;
    flex-wrap: wrap;
  }
  .analysis-callout h2 {
    font-size: 14px;
  }
  .analysis-callout p {
    font-size: 12px;
  }
  .analysis-overview-grid {
    grid-template-columns: 1fr;
  }
  .result-stats {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
  .result-stats > div {
    padding: 18px 14px;
  }
  .result-stats strong {
    font-size: 26px;
  }
  .result-stats span {
    font-size: 9px;
  }
  .result-stats p {
    font-size: 10px;
  }
  .analysis-tabs {
    gap: 19px;
    overflow: auto;
    flex-wrap: nowrap;
  }
  .analysis-tabs button {
    font-size: 11px;
    white-space: nowrap;
    flex-shrink: 0;
  }
  .history-type-tabs {
    gap: 18px;
    overflow: auto;
  }
  .history-type-tabs a {
    font-size: 11px;
    white-space: nowrap;
  }
  .membership-grid {
    grid-template-columns: 1fr;
  }
  .membership-full,
  .membership-free {
    padding: 24px;
  }
  .feature-list {
    font-size: 13px;
  }
  .membership-price {
    font-size: 42px;
  }
}

/* Keep secondary information legible against the restrained white surface. */
.page-heading p,
.catalogue-heading p,
.topic-entry-name p,
.recent-row small,
.sectional-note,
.sectional-attempt-row p,
.mock-card p,
.stat > small,
.stat > span,
.quiet-empty {
  color: #70707b;
}

.result-stats > .result-score {
  background: #fff6ef;
  color: #262630;
  border: 1px solid #f0e2d8;
}
.result-stats > .result-score strong {
  color: #262630;
}
.result-stats > .result-score > span {
  color: #9a4b25;
}
.result-stats > .result-score small,
.result-stats > .result-score p {
  color: #76717a;
}

/* Professional presentation: restrained actions and readable working labels. */
.app-shell .nav-item {
  font-size: 14px;
}
.app-shell .btn.primary {
  background: #252529;
  border-color: #252529;
  color: #fff;
}
.app-shell .btn.primary:hover {
  background: #3b3b42;
  border-color: #3b3b42;
}
.page-heading p,
.catalogue-heading p {
  font-size: 14px;
}
.topic-entry-name h3 {
  font-size: 15px;
}
.topic-entry-name p,
.topic-progress > small,
.catalogue-access,
.catalogue-bottom,
.catalogue-topline,
.stat > small,
.recent-row small {
  font-size: 12px;
}
.app-shell .text-link,
.topic-start,
.history-type-tabs a,
.analysis-tabs button {
  font-size: 14px;
}
.app-shell .nav-item.active {
  color: #904c28;
  background: #f5f0eb;
}
.plan-price,
.membership-price {
  font-weight: 600;
}
@media (max-width: 700px) {
  .topic-entry {
    padding: 16px;
  }
  .topic-entry-name h3 {
    font-size: 14px;
  }
  .topic-start {
    font-size: 12px;
  }
  .app-shell .text-link {
    font-size: 12px;
  }
  .page-heading p,
  .catalogue-heading p {
    font-size: 13px;
  }
}

.catalogue-bottom {
  display: flex;
  gap: 16px 24px;
  flex-wrap: wrap;
}
.membership-full .btn.primary {
  background: #f5f5f7;
  border-color: #f5f5f7;
  color: #242428;
}
.membership-full .btn.primary:hover {
  background: #e4e4e9;
  border-color: #e4e4e9;
}

/* Student portal refinements: the test room keeps its own approved theme. */
@font-face {
  font-family: Inter;
  src: url("assets/fonts/inter-latin-variable-400-800.woff2") format("woff2");
  font-style: normal;
  font-weight: 400 800;
  font-display: swap;
}
@font-face {
  font-family: Manrope;
  src: url("assets/fonts/manrope-latin-variable-700-800.woff2") format("woff2");
  font-style: normal;
  font-weight: 700 800;
  font-display: swap;
}
.app-body { min-width: 0; }
.app-shell { background: #f7f9f8; }
.sidebar { border-right-color: #e0e7e3; }
.sidebar > .brand { margin-bottom: 30px; }
.app-shell .nav-item { min-height: 44px; border-radius: 8px; color: #505b55; }
.app-shell .nav-item.active { color: #a44416; background: #fff0e6; font-weight: 600; }
.sidebar-bottom { margin-top: auto; }
.local-status { color: #63706a; line-height: 1.6; }
.sidebar-backdrop { display: none; }
.app-header { border-bottom-color: #e1e7e4; }
.preview-label { max-width: 200px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; color: #64716a; }
.avatar { width: 36px; height: 36px; background: #f1f5f3; color: #164f40; border: 1px solid #dce7e1; }
.page-heading h1, .catalogue-heading h1 { font-size: clamp(25px, 2.3vw, 32px); font-weight: 650; letter-spacing: -.035em; }
.page-heading p, .catalogue-heading p { color: #5e6c64; max-width: 70ch; }
.card, .topic-group { border-color: #e1e7e3; border-radius: 12px; }
.topic-group-heading { background: #f7faf8; border-bottom-color: #e4eae6; }
.topic-group-heading h2 { font-size: 17px; }
.topic-entry-name p, .topic-progress > small, .catalogue-access, .catalogue-bottom, .catalogue-topline, .stat > small, .recent-row small { color: #626e67; line-height: 1.6; }
.topic-entry { gap: 24px; }
.topic-entry-name h3 { font-size: 15px; font-weight: 600; }
.app-shell .btn, #app-dialog .btn { border-radius: 8px; min-height: 42px; }
.app-shell .btn.primary { background: #202724; border-color: #202724; }
.app-shell .btn.primary:hover { background: #123e31; border-color: #123e31; }
.app-shell .btn.outline { color: #34483e; border-color: #d5dfd8; }
.app-shell .btn.outline:hover { background: #f0f6f2; border-color: #afc5b7; }
.app-shell .text-link { color: #17664e; }
.app-shell .text-link:hover { color: #0d4937; }
.catalogue-tools { align-items: center; }
.catalogue-tools .search-box { min-height: 44px; border-radius: 8px; }
.catalogue-tools .search-box input { min-height: 40px; }
.progress-segments i, .daily-meter i { background: #158568; }
.analytics-loading-note { align-items: flex-start; margin-bottom: 20px; }
.analytics-loading-note p { margin: 6px 0 0; line-height: 1.6; }
.access-card { max-width: 780px; }
.access-card > p { color: #5f6e65; margin-top: 12px; line-height: 1.7; }
.settings-lines { margin: 22px 0; }
.settings-lines > div { gap: 20px; }
.review-main { container-type: inline-size; padding: 0; overflow: hidden; min-width: 0; }
.review-reader-grid { display: grid; min-width: 0; }
.review-response { min-width: 0; padding: 24px; }
.review-passage { min-width: 0; padding: 24px; background: #f7faf8; border-bottom: 1px solid #e1e8e3; }
.review-passage > h3 { margin: 0 0 18px; color: #29644f; font: 650 13px/1.5 Inter, Arial, sans-serif; letter-spacing: .02em; }
.review-passage-copy { font: 400 15px/1.85 Inter, Arial, sans-serif; color: #283a30; overflow-wrap: anywhere; }
.review-passage-copy p { margin: 0 0 1.1em; }
.review-passage-copy > :last-child { margin-bottom: 0; }
.review-passage-copy .set-table { font-size: 13px; }
.review-question-header { padding: 0 0 20px; border-bottom: 1px solid #e4eae6; }
.review-question-header h2 { font-size: 18px; font-weight: 550; line-height: 1.8; letter-spacing: -.01em; color: #23362a; }
.review-question-meta { gap: 10px; display: flex; flex-wrap: wrap; align-items: center; font-size: 11px; }
.review-question-tools { display: flex; align-items: center; flex-wrap: wrap; justify-content: space-between; gap: 12px; margin-top: 18px; color: #65736b; font-size: 12px; }
.review-bookmark { font-size: 12px; white-space: nowrap; }
.review-bookmark.is-saved { background: #eaf5ee; border-color: #96bba7; color: #14563c; }
.review-bookmark.is-saved svg { fill: #d4e9dc; }
.review-solution-label { font: 650 13px/1.5 Inter, Arial, sans-serif; color: #4c6255; margin: 20px 0 16px; }
.review-response .solution-body { padding: 0; }
.review-response .explanation { line-height: 1.8; }
.review-response .solution-options > div { min-height: 52px; align-items: flex-start; }
.review-pagination { display: flex; align-items: center; justify-content: space-between; gap: 12px; border-top: 1px solid #e0e8e2; padding-top: 18px; margin-top: 24px; }
.review-pagination > span { font-size: 12px; color: #627366; }
.review-question-list { scrollbar-width: none; }
.review-question-list::-webkit-scrollbar { display: none; }
@container (min-width: 650px) {
  .review-reader-grid.has-context { grid-template-columns: minmax(0, .95fr) minmax(0, 1fr); align-items: start; }
  .review-reader-grid.has-context .review-passage { border-right: 1px solid #e1e8e3; border-bottom: 0; max-height: 75vh; overflow-y: auto; overscroll-behavior: contain; scrollbar-width: thin; scrollbar-color: #bbcdc1 transparent; }
}
@media (min-width: 1200px) {
  .review-layout { grid-template-columns: 180px minmax(0, 1fr); gap: 18px; }
  .review-rail { padding: 16px; }
  .review-question-list button { gap: 8px; }
}
@media (max-width: 700px) {
  body.navigation-open { overflow: hidden; }
  .sidebar-backdrop:not([hidden]) { display: block; position: fixed; inset: 0; z-index: 39; border: 0; border-radius: 0; background: rgb(12 29 21 / 32%); }
  .sidebar { width: min(290px, 86vw); max-height: 100dvh; padding: 28px 16px 22px; }
  .sidebar.is-open { box-shadow: 16px 0 40px rgb(18 42 29 / 15%); }
  .sidebar-close { color: #20392b; width: 40px; height: 40px; right: 8px; top: 9px; }
  .app-shell .nav-item { min-height: 46px; font-size: 14px; }
  .preview-label { max-width: 115px; }
  .workspace-main { padding: 24px 18px 40px; }
  .topic-entry { gap: 14px; }
  .topic-start { min-height: 42px; font-size: 13px; }
  .app-shell .text-link { min-height: 36px; display: inline-flex; align-items: center; font-size: 13px; }
  .review-response, .review-passage { padding: 18px; }
  .review-passage-copy { font-size: 14px; line-height: 1.85; }
  .review-question-header h2 { font-size: 17px; }
  .review-pagination .btn { font-size: 12px; padding: 8px 10px; }
}
@media (prefers-reduced-motion: reduce) {
  .sidebar { transition: none; }
}

/* Reference-inspired portal shell. The approved test room renders outside it. */
.portal-shell {
  grid-template-columns: 224px minmax(0, 1fr);
  background: #f7f7f3;
  color: #20231f;
  font-family: Inter, Arial, sans-serif;
}
.portal-shell > .sidebar {
  background: #191c19;
  color: #b9beb6;
  border-right: 1px solid #2b3029;
  padding: 30px 16px 20px;
  height: 100vh;
  height: 100dvh;
  overflow-y: auto;
  scrollbar-width: thin;
  scrollbar-color: #454b40 transparent;
}
.portal-shell .sidebar > .brand {
  color: #f7f7f2;
  font: 800 19px/1.2 Manrope, Inter, Arial, sans-serif;
  letter-spacing: -.8px;
  gap: 8px;
  margin: 0 8px 38px;
  flex-shrink: 0;
}
.portal-shell .sidebar .brand-number {
  color: #ff641f;
  font: 800 32px/1 Manrope, Inter, Arial, sans-serif;
  letter-spacing: -2.3px;
}
.portal-shell .sidebar .brand-dot { color: #ff641f; }
.portal-shell .workspace-label {
  color: #999f93;
  font-size: 10px;
  font-weight: 600;
  letter-spacing: .13em;
  line-height: 1.5;
  padding: 0 12px 13px;
}
.portal-shell .sidebar nav { gap: 4px; flex-shrink: 0; }
.portal-shell .sidebar .nav-item {
  min-height: 44px;
  margin: 0;
  padding: 11px 12px;
  gap: 11px;
  color: #c0c5bc;
  border-radius: 8px;
  font-size: 13px;
  font-weight: 500;
  line-height: 1.45;
  transition: background-color .15s, color .15s;
}
.portal-shell .sidebar .nav-item svg { width: 18px; height: 18px; opacity: .85; flex-shrink: 0; }
.portal-shell .sidebar .nav-item:hover { color: #fff; background: #272c25; }
.portal-shell .sidebar .nav-item.active {
  color: #ffb78f;
  background: #35281f;
  box-shadow: inset 2px 0 #ff641f;
  font-weight: 600;
}
.portal-shell .sidebar .nav-item.active svg { color: #ff9e66; opacity: 1; }
.portal-shell .sidebar .nav-item b {
  min-width: 21px;
  padding: 2px 5px;
  text-align: center;
  color: #d4d9cd;
  background: #343c30;
  font-size: 10px;
  font-weight: 600;
}
.portal-shell .sidebar-sections {
  margin: 29px 0 24px;
  padding-top: 22px;
  border-top: 1px solid #32372f;
  flex-shrink: 0;
}
.portal-shell .section-link {
  display: grid;
  grid-template-columns: 34px minmax(0, 1fr) 13px;
  gap: 9px;
  align-items: center;
  min-height: 44px;
  padding: 8px 10px;
  border-radius: 8px;
  color: #b5bcae;
  font-size: 12px;
  line-height: 1.5;
  transition: color .15s, background-color .15s;
}
.portal-shell .section-short {
  display: grid;
  place-items: center;
  min-height: 29px;
  border: 1px solid #3d4536;
  border-radius: 6px;
  color: #d4d9cd;
  font-size: 10px;
  font-weight: 650;
  letter-spacing: .01em;
}
.portal-shell .section-link > svg { opacity: .55; }
.portal-shell .section-link:hover { color: #fff; background: #272c25; }
.portal-shell .section-link[aria-current="page"] { color: #f5dfcc; background: #2b2820; }
.portal-shell .section-link[aria-current="page"] .section-short { color: #ffb68a; background: #392b20; border-color: #6b4830; }
.portal-shell .sidebar-bottom {
  margin-top: auto;
  padding-top: 16px;
  border-top: 1px solid #32372f;
  flex-shrink: 0;
}
.portal-shell .sidebar-account {
  display: flex;
  gap: 10px;
  align-items: flex-start;
  padding: 19px 12px 3px;
}
.portal-shell .sidebar-account > div { min-width: 0; }
.portal-shell .sidebar-account strong { display: block; color: #d3d9cc; font-size: 11px; font-weight: 500; line-height: 1.5; }
.portal-shell .account-status-dot { flex: 0 0 6px; height: 6px; border-radius: 50%; background: #929c87; margin-top: 5px; }
.portal-shell .is-signed-in > .account-status-dot { background: #56c99a; box-shadow: 0 0 0 3px rgb(69 181 132 / 10%); }
.portal-shell .sidebar .local-status { display: block; padding: 0; margin: 4px 0 0; color: #a7b09e; font-size: 10px; line-height: 1.6; overflow-wrap: anywhere; }
.portal-shell .sidebar .local-status::before { display: none; }
.portal-shell .sidebar a:focus-visible,
.portal-shell .sidebar button:focus-visible { outline: 2px solid #ffa470; outline-offset: 3px; }
.portal-shell .app-header {
  height: 64px;
  padding: 0 36px;
  background: #fff;
  border-bottom: 1px solid #e5e7df;
  backdrop-filter: none;
}
.portal-shell .header-left { min-width: 0; gap: 13px; }
.portal-shell .header-right { gap: 16px; flex-shrink: 0; margin-left: 18px; }
.portal-shell .breadcrumb { display: flex; align-items: center; gap: 12px; min-width: 0; font-size: 12px; line-height: 1.5; }
.portal-shell .breadcrumb > span { padding: 0; }
.portal-shell .breadcrumb-root { color: #7b8274; font-weight: 400; }
.portal-shell .breadcrumb-divider { color: #c6cbc0; font-weight: 400; }
.portal-shell .breadcrumb > strong { color: #3d4636; font-weight: 550; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.portal-shell .preview-label { color: #747f6a; font-size: 11px; max-width: 180px; }
.portal-shell .preview-label.is-signed-in::before { content: ""; display: inline-block; width: 5px; height: 5px; margin: 0 7px 2px 0; background: #258465; border-radius: 50%; }
.portal-shell .app-header .account-action { color: #425339; font-size: 12px; font-weight: 600; min-height: 38px; padding: 7px 0; }
.portal-shell .app-header .account-action:hover { color: #176b50; }
.portal-shell .app-header .avatar {
  display: inline-grid;
  place-items: center;
  width: 34px;
  height: 34px;
  flex-shrink: 0;
  background: #f0f4ec;
  border: 1px solid #dfe7d7;
  color: #446235;
  font-size: 12px;
  font-weight: 650;
}
.portal-shell .app-header .avatar:hover { background: #e5efde; border-color: #c0d1b5; }
.portal-shell .app-header button:focus-visible { outline: 2px solid #168364; outline-offset: 3px; }
.portal-shell .workspace-main { max-width: 1450px; padding: 32px 36px 48px; }
@media (min-width: 951px) {
  .portal-shell { display: grid; }
  .portal-shell > .sidebar { position: sticky; left: auto; width: auto; visibility: visible; transform: none; }
  .portal-shell .sidebar-close, .portal-shell .mobile-menu { display: none; }
}
@media (min-width: 951px) and (max-width: 1150px) {
  .portal-shell .app-header { padding-inline: 26px; }
  .portal-shell .workspace-main { padding: 28px 26px 44px; }
}
@media (max-width: 950px) {
  body.navigation-open { overflow: hidden; }
  .portal-shell { display: block; }
  .portal-shell > .sidebar {
    position: fixed;
    top: 0;
    left: 0;
    width: min(290px, 86vw);
    max-height: 100dvh;
    padding: 32px 18px 22px;
    visibility: hidden;
    transform: translateX(-100%);
    transition: transform .2s, visibility .2s;
  }
  .portal-shell > .sidebar.is-open { visibility: visible; transform: translateX(0); box-shadow: 16px 0 48px rgb(14 24 12 / 24%); }
  .portal-shell .sidebar-backdrop:not([hidden]) { display: block; position: fixed; inset: 0; z-index: 39; border: 0; border-radius: 0; background: rgb(15 24 13 / 38%); }
  .portal-shell .sidebar > .brand { margin-bottom: 34px; }
  .portal-shell .sidebar-close { display: inline-grid; place-items: center; position: absolute; top: 11px; right: 8px; width: 40px; height: 40px; background: transparent; border: 0; color: #c5cdbc; }
  .portal-shell .sidebar-close:hover { color: #fff; background: #2b3225; }
  .portal-shell .mobile-menu { display: inline-grid; place-items: center; width: 40px; height: 40px; flex-shrink: 0; color: #46553c; border-radius: 8px; }
  .portal-shell .sidebar .nav-item { min-height: 46px; font-size: 14px; }
  .portal-shell .section-link { min-height: 46px; }
  .portal-shell .app-header { padding: 0 22px; }
  .portal-shell .workspace-main { padding: 28px 24px 42px; }
}
@media (max-width: 700px) {
  .portal-shell .app-header { height: 60px; padding-inline: 15px; }
  .portal-shell .header-left { gap: 8px; }
  .portal-shell .header-right { gap: 12px; margin-left: 12px; }
  .portal-shell .breadcrumb-root, .portal-shell .breadcrumb-divider, .portal-shell .preview-label { display: none; }
  .portal-shell .breadcrumb { font-size: 12px; }
  .portal-shell .app-header .account-action { min-height: 40px; }
  .portal-shell .app-header .avatar { width: 34px; height: 34px; }
  .portal-shell .workspace-main { padding: 26px 18px 40px; }
}
@media (max-height: 740px) and (min-width: 951px) {
  .portal-shell > .sidebar { padding-top: 24px; }
  .portal-shell .sidebar > .brand { margin-bottom: 26px; }
  .portal-shell .sidebar-sections { margin-top: 22px; margin-bottom: 20px; padding-top: 18px; }
}
@media (prefers-reduced-motion: reduce) {
  .portal-shell > .sidebar, .portal-shell .sidebar .nav-item, .portal-shell .section-link { transition: none; }
}

/* Source: mega-workspace.css */
.mega-difficulty{margin-left:auto;min-width:210px;max-width:260px;font:inherit;color:inherit}.mega-difficulty>label{display:flex;justify-content:space-between;font-size:12px;gap:20px}.mega-difficulty input{width:100%;accent-color:var(--green,#0d7c66);height:16px;margin:8px 0}.mega-difficulty>div{display:flex;justify-content:space-between;gap:16px}.mega-difficulty .text-link{font-size:11px}.mega-difficulty [aria-pressed=true]{font-weight:700;color:var(--green,#0d7c66)}@media(max-width:680px){.mega-difficulty{width:100%;max-width:none;margin-left:0}}
.set-table{max-width:100%;overflow-x:auto;margin:18px 0}.set-table table{width:100%;border-collapse:collapse;font:inherit;font-size:13px}.set-table caption{text-align:left;font-weight:600;margin-bottom:10px}.set-table th,.set-table td{border:1px solid var(--line,#e2e7e4);padding:9px 12px;text-align:left;white-space:normal}.set-table th{font-weight:600;background:var(--surface,#f6f8f7)}
.solution-media{margin:18px 0;max-width:100%;min-width:0;overflow-x:auto}.solution-media>a{display:block;max-width:100%}.solution-media img{display:block;width:100%;max-width:100%;height:auto}.solution-media figcaption,.solution-media-status{font-size:12px;color:var(--muted,#626864);line-height:1.5}.solution-media figcaption{margin-top:8px}.review-main,.solution-body,.explanation{min-width:0}

.attempt-media{margin:16px 0;max-width:100%;min-width:0;overflow-x:auto}.attempt-media>a{display:block;max-width:100%}.attempt-media img{display:block;max-width:100%;height:auto}.attempt-media p{font-size:12px;color:var(--muted,#626864)}.answer-option>div{min-width:0}.answer-option .attempt-media{margin:8px 0}

.attempt-media-inline{display:inline-flex;vertical-align:middle;margin:0 .18em;max-width:8em}.attempt-media-inline>a{display:inline-block}.attempt-media-inline img{display:inline-block;width:auto;max-height:3em}.solution-option-content{flex:1;min-width:0;margin:0}.solution-option-content .attempt-media:not(.attempt-media-inline){margin:8px 0}.attempt-media>span[role=status]{font-size:12px;color:var(--muted,#626864)}

/* Reference-inspired filled pill and white thumb; practice keeps three difficulty stops. */
.mega-difficulty>.mega-range{display:block;position:relative;height:36px;margin:8px 0;isolation:isolate}.mega-range::before{content:"";position:absolute;inset:6px 3px;border-radius:999px;background:#d9dce1;box-shadow:inset 0 0 0 1px #00000008}.mega-range-fill{position:absolute;left:3px;top:6px;height:24px;width:calc(15px + var(--position) * (100% - 30px) / var(--steps, 2));border-radius:999px;background:#0d8266;transition:width .18s cubic-bezier(.2,.8,.2,1),background .18s}.mega-difficulty[data-level="2"] .mega-range-fill{background:#075b47;box-shadow:none}.mega-difficulty[data-level="2"] .mega-range-fill::after{content:none}.mega-range-ticks{position:absolute;inset:6px 15px;display:flex;justify-content:space-between;align-items:center;pointer-events:none}.mega-range-ticks i{height:4px;width:4px;border-radius:50%;background:#ffffff90}.mega-range-thumb{position:absolute;z-index:1;top:3px;left:calc(3px + var(--position) * (100% - 36px) / var(--steps, 2));width:30px;height:30px;border-radius:50%;background:#fff;border:1px solid #0000000d;box-shadow:0 1px 4px #00000025;pointer-events:none;transition:left .18s cubic-bezier(.2,.8,.2,1)}.mega-difficulty .mega-range input{position:relative;z-index:2;display:block;appearance:none;-webkit-appearance:none;background:transparent;height:36px;margin:0;cursor:pointer;touch-action:pan-y}.mega-range input::-webkit-slider-runnable-track{background:transparent;height:24px}.mega-range input::-moz-range-track{background:transparent;height:24px}.mega-range input::-webkit-slider-thumb{appearance:none;-webkit-appearance:none;width:30px;height:30px;background:transparent;margin-top:-3px}.mega-range input::-moz-range-thumb{width:30px;height:30px;background:transparent;border:0}.mega-range:has(input:focus-visible){outline:2px solid var(--green,#0d7c66);outline-offset:3px;border-radius:999px}.mega-range input:focus-visible{outline:none}.mega-difficulty #practice-difficulty-value{color:#146a52}.mega-difficulty[data-level="2"] #practice-difficulty-value{color:#075b47}.mega-difficulty[data-level="2"] [aria-pressed=true]{color:#075b47}@media(prefers-reduced-motion:reduce){.mega-range-fill,.mega-range-thumb{transition:none}.mega-range-fill::after{animation:none!important}}

.mega-difficulty>label{font-size:13px;color:#53655a}.mega-difficulty .text-link{font-size:12px;min-height:32px}.mega-range::before{background:#e1eae5}.mega-range-fill,.mega-range-thumb{transition:none}.mega-difficulty .mega-easy-choice{color:#526a5b}

/* Source: practice-catalogue.css */
/* Chapter catalogue: a presentation layer around the existing practice engine. */
.practice-catalogue {
  --catalogue-ink: #20241f;
  --catalogue-muted: #687068;
  --catalogue-line: #e1e5de;
  --catalogue-orange: #ff702a;
  --catalogue-emerald: #16775b;
  color: var(--catalogue-ink);
  max-width: 1320px;
  margin: 0 auto;
}
.practice-catalogue .catalogue-heading { align-items: center; margin: 0 0 17px; }
.practice-catalogue .catalogue-heading .eyebrow {
  display: block; margin: 0 0 8px; color: #7b8178;
  font-size: 10px; font-weight: 650; letter-spacing: .15em;
}
.practice-catalogue .catalogue-heading h1 {
  font-family: Manrope, Inter, sans-serif;
  font-size: clamp(27px, 2.55vw, 36px); font-weight: 700;
  line-height: 1.2; letter-spacing: -.045em;
}
.practice-catalogue .catalogue-heading p { font-size: 13px; line-height: 1.65; margin-top: 9px; color: var(--catalogue-muted); }
.practice-catalogue .catalogue-heading > .btn { min-height: 40px; padding: 10px 14px; white-space: nowrap; font-size: 12px; }
.practice-catalogue .catalogue-tabs {
  display: flex; gap: 4px; margin: 0; padding: 0;
  border-bottom: 1px solid var(--catalogue-line);
}
.practice-catalogue .catalogue-tabs button {
  position: relative; display: flex; align-items: center; gap: 8px;
  flex: 0 1 auto; min-height: 47px; padding: 10px 18px;
  background: transparent; border: 0; border-radius: 0; box-shadow: none;
}
.practice-catalogue .catalogue-tabs button:first-child { padding-left: 0; padding-right: 22px; }
.practice-catalogue .catalogue-tabs button strong { font-size: 12px; letter-spacing: .01em; color: #434b42; }
.practice-catalogue .catalogue-tabs button span { font-size: 12px; color: #7a8077; }
.practice-catalogue .catalogue-tabs button.active { background: transparent; }
.practice-catalogue .catalogue-tabs button.active::after {
  content: ''; position: absolute; height: 2px; bottom: -1px; left: 12px; right: 12px;
  background: var(--catalogue-orange); border-radius: 2px;
}
.practice-catalogue .catalogue-tabs button.active:first-child::after { left: 0; }
.practice-catalogue .catalogue-tabs button.active strong { color: #af4213; }
.practice-catalogue .catalogue-tabs button.active span { color: #4f514a; }
.practice-catalogue .catalogue-topline {
  min-height: 48px; padding: 12px 0; margin: 0 0 15px;
  border-bottom: 1px solid var(--catalogue-line); color: #788075;
  font-size: 11px; line-height: 1.65; gap: 12px;
}
.practice-catalogue .catalogue-topline > div { display: flex; flex-wrap: wrap; column-gap: 5px; row-gap: 3px; align-items: baseline; }
.practice-catalogue .catalogue-topline strong { font-weight: 650; color: #394337; font-variant-numeric: tabular-nums; }
.practice-catalogue .catalogue-topline > div > span { margin: 0 7px; color: #acb3a7; }
.practice-catalogue .catalogue-topline > span { white-space: nowrap; }
.practice-catalogue .catalogue-categories {
  display: flex; align-items: center; flex-wrap: wrap; gap: 5px;
  margin: 0 0 15px; padding: 0;
}
.practice-catalogue .catalogue-categories button {
  display: inline-flex; align-items: center; gap: 6px;
  min-height: 34px; padding: 8px 12px; border-radius: 7px;
  border: 1px solid transparent; background: transparent;
  color: #697164; font: inherit; font-size: 11px; font-weight: 500;
  cursor: pointer; transition: background .16s, border-color .16s, color .16s;
}
.practice-catalogue .catalogue-categories button:hover { color: #222a20; background: #ecefe7; }
.practice-catalogue .catalogue-categories button[aria-pressed="true"] {
  color: #f8faf6; background: #252c23; border-color: #252c23;
}
.practice-catalogue .catalogue-categories button span { opacity: .7; font-size: 10px; }
.practice-catalogue .catalogue-tools {
  display: flex; align-items: center; gap: 18px; padding: 0;
  margin: 0 0 24px; border: 0; background: transparent;
}
.practice-catalogue .catalogue-tools .search-box {
  flex: 1 1 260px; width: auto; max-width: 430px; min-width: 160px;
  min-height: 43px; border: 1px solid #dfe4da; border-radius: 9px;
  background: #fff; color: #7d8577; padding: 0 13px;
  transition: border-color .16s, box-shadow .16s;
}
.practice-catalogue .catalogue-tools .search-box:focus-within { border-color: #5c927a; box-shadow: 0 0 0 3px #16775b0d; }
.practice-catalogue .catalogue-tools .search-box input { min-width: 0; min-height: 41px; width: 100%; font-size: 12px; color: #30382c; }
.practice-catalogue .catalogue-tools .search-box input::placeholder { color: #858c7f; }
.practice-catalogue .catalogue-access { gap: 7px; font-size: 11px; color: #6a7363; white-space: nowrap; }
.practice-catalogue .catalogue-access input { width: 14px; height: 14px; accent-color: var(--catalogue-emerald); }
.practice-catalogue .mega-difficulty { flex: 0 0 242px; max-width: 260px; min-width: 220px; margin-left: auto; }
.practice-catalogue .mega-difficulty > label { font-size: 11px; }
.practice-catalogue .mega-difficulty > label strong { font-size: 11px; font-weight: 650; }
.practice-catalogue .mega-difficulty > .mega-range { height: 30px; margin: 3px 0 0; }
.practice-catalogue .mega-difficulty .mega-range input { height: 30px; }
.practice-catalogue .mega-range::before { inset: 6px 3px; }
.practice-catalogue .mega-range-fill { top: 6px; height: 18px; width: calc(12px + var(--position) * (100% - 24px) / var(--steps, 2)); }
.practice-catalogue .mega-range-thumb { top: 3px; width: 24px; height: 24px; left: calc(3px + var(--position) * (100% - 30px) / var(--steps, 2)); }
.practice-catalogue .mega-range-ticks { inset: 6px 12px; }
.practice-catalogue .mega-range input::-webkit-slider-runnable-track { height: 18px; }
.practice-catalogue .mega-range input::-moz-range-track { height: 18px; }
.practice-catalogue .mega-range input::-webkit-slider-thumb { width: 24px; height: 24px; margin-top: -3px; }
.practice-catalogue .mega-range input::-moz-range-thumb { width: 24px; height: 24px; }
.practice-catalogue .mega-difficulty .text-link { min-height: 25px; font-size: 10px; }
.practice-catalogue .mega-difficulty .mega-easy-choice { display: block; min-height: 20px; margin-top: 0; font-size: 10px; color: #7a8174; }
.practice-catalogue .topic-catalogue { display: flex; flex-direction: column; gap: 32px; }
.practice-catalogue .topic-group { margin: 0; padding: 0; border: 0; border-radius: 0; background: transparent; overflow: visible; box-shadow: none; }
.practice-catalogue .topic-group-heading {
  display: flex; align-items: center; justify-content: space-between; gap: 10px;
  padding: 0 1px 14px; border: 0; background: transparent;
}
.practice-catalogue .topic-group-heading h2 { font-family: Manrope, Inter, sans-serif; font-size: 18px; line-height: 1.4; font-weight: 700; letter-spacing: -.025em; }
.practice-catalogue .topic-group-heading > span { font-size: 11px; color: #7e8678; }
.practice-catalogue .chapter-grid { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 17px; }
.practice-catalogue .chapter-card {
  display: flex; flex-direction: column; align-items: stretch; min-width: 0;
  padding: 0; gap: 0; border: 1px solid #dfe4da; border-radius: 13px;
  overflow: hidden; background: #fff; box-shadow: 0 2px 3px #24391a03;
  transition: border-color .18s, box-shadow .18s, transform .18s;
}
.practice-catalogue .chapter-card:hover { border-color: #bac9b5; box-shadow: 0 7px 20px #2132190a; transform: translateY(-2px); }
.practice-catalogue .chapter-card:focus-within { border-color: #5f9377; box-shadow: 0 0 0 3px #16775b0d; }
.practice-catalogue .chapter-art {
  position: relative; display: flex; align-items: center; justify-content: flex-start;
  min-height: 106px; padding: 12px 18px;
  background: linear-gradient(115deg,#f1f2ea,#faf9f4); border-bottom: 1px solid #edf0e8;
  color: #3c4737;
}
.practice-catalogue .chapter-art > svg { display: block; width: 108px; height: 81px; overflow: visible; flex-shrink: 0; }
.practice-catalogue .art-accent { stroke: #ed6b30; }
.practice-catalogue .art-fill { fill: #ed6b3017; }
.practice-catalogue .chapter-count {
  position: absolute; top: 15px; right: 14px; padding: 5px 8px; border-radius: 5px;
  border: 1px solid #dedfd3; background: #ffffff80;
  color: #6b7260; font-size: 10px; font-weight: 500; white-space: nowrap;
  font-variant-numeric: tabular-nums;
}
.practice-catalogue .chapter-body { display: flex; flex-direction: column; flex: 1; min-width: 0; padding: 19px 19px 16px; }
.practice-catalogue .chapter-body h3 { font-size: 16px; font-weight: 650; letter-spacing: -.025em; line-height: 1.5; margin: 0; color: #282f24; }
.practice-catalogue .chapter-body h3 a { color: inherit; text-decoration: none; }
.practice-catalogue .chapter-body h3 a:hover { color: #b4491c; }
.practice-catalogue .chapter-description { color: #697461; font-size: 12px; line-height: 1.7; min-height: 40px; margin: 6px 0 12px; }
.practice-catalogue .chapter-meta { display: flex; flex-wrap: wrap; column-gap: 10px; row-gap: 4px; font-size: 11px; line-height: 1.6; color: #697460; }
.practice-catalogue .chapter-meta > span { display: inline-flex; align-items: center; gap: 4px; }
.practice-catalogue .chapter-meta svg { width: 12px; height: 12px; }
.practice-catalogue .chapter-progress { margin: auto 0 0; padding-top: 17px; }
.practice-catalogue .progress-segments { display: grid; grid-template-columns: repeat(4,minmax(0,1fr)); gap: 4px; width: 100%; height: 4px; }
.practice-catalogue .progress-segments span { display: block; width: 100%; height: 4px; background: #edf0e8; border-radius: 3px; overflow: hidden; }
.practice-catalogue .progress-segments i { display: block; height: 100%; background: #1b8666; border-radius: inherit; }
.practice-catalogue .chapter-progress-label { display: flex; justify-content: space-between; gap: 8px; color: #6e7966; font-size: 10px; line-height: 1.6; margin-top: 7px; }
.practice-catalogue .chapter-actions { display: flex; align-items: center; justify-content: space-between; gap: 8px; margin-top: 17px; padding-top: 13px; border-top: 1px solid #edf0e8; }
.practice-catalogue .chapter-explore { display: inline-flex; align-items: center; gap: 6px; min-height: 36px; color: #5d6b51; font-size: 11px; font-weight: 550; text-decoration: none; }
.practice-catalogue .chapter-explore:hover { color: #b4491c; }
.practice-catalogue .chapter-explore svg { width: 13px; height: 13px; }
.practice-catalogue .chapter-actions .btn { min-height: 36px; width: auto; flex: 0 0 auto; padding: 8px 12px; border-radius: 6px; font-size: 11px; font-weight: 600; gap: 9px; }
.practice-catalogue .chapter-actions .btn svg { width: 13px; height: 13px; }
.practice-catalogue .btn.primary { background: var(--catalogue-orange); border-color: var(--catalogue-orange); color: #211b13; }
.practice-catalogue .btn.primary:hover { background: #f46420; border-color: #f46420; }
.practice-catalogue .btn.outline { border-color: #dce3d7; background: #fff; color: #53634a; }
.practice-catalogue .btn.outline:hover { background: #f4f7f0; border-color: #bdcbb4; }
.practice-catalogue .catalogue-resume { margin: 10px 0 20px; padding: 15px 18px; background: #edf5ee; border: 1px solid #d4e4d4; border-radius: 10px; }
.practice-catalogue .catalogue-resume small { color: #61765c; }
.practice-catalogue .catalogue-bottom { border-top: 1px solid var(--catalogue-line); margin-top: 34px; padding: 18px 0 0; color: #7a8473; font-size: 11px; }
.practice-catalogue .catalogue-bottom .text-link { font-size: 11px; color: #4e6850; }
.practice-catalogue .footnote { font-size: 10px; line-height: 1.75; color: #7d8677; max-width: 100ch; margin-top: 12px; }
.practice-catalogue .empty-state { background: #fff; border: 1px dashed #d8dfd0; border-radius: 12px; padding: 48px 20px; }
.practice-catalogue :is(a,button,input):focus-visible { outline: 2px solid #17815f; outline-offset: 4px; }
.practice-catalogue .search-box input:focus-visible { outline: 0; }

/* Topic overview uses real difficulty pools and the existing preparation flow. */
.practice-catalogue .topic-back { display: inline-flex; align-items: center; gap: 7px; color: #6a7561; font-size: 12px; min-height: 30px; margin: 0 0 16px; text-decoration: none; }
.practice-catalogue .topic-back:hover { color: #b4491c; }
.practice-catalogue .topic-back svg { width: 14px; height: 14px; }
.practice-catalogue .topic-hero {
  display: grid; grid-template-columns: 118px minmax(0,1fr) auto; align-items: center;
  gap: 24px; padding: 32px; border-radius: 14px; background: #222a22;
  color: #f5f7f1; border: 1px solid #344132;
}
.practice-catalogue .topic-hero-art { display: flex; align-items: center; justify-content: center; width: 118px; height: 116px; border: 1px solid #ffffff13; border-radius: 12px; background: #ffffff04; color: #dce8d3; }
.practice-catalogue .topic-hero-art svg { display: block; width: 110px; height: 83px; }
.practice-catalogue .topic-hero-art .art-accent { stroke: #ff8b51; }
.practice-catalogue .topic-hero-art .art-fill { fill: #ff8b511a; }
.practice-catalogue .topic-hero-copy { min-width: 0; }
.practice-catalogue .topic-hero-copy .eyebrow { display: block; color: #e5a274; font-size: 10px; font-weight: 600; letter-spacing: .13em; margin-bottom: 9px; }
.practice-catalogue .topic-hero-copy h1 { font: 700 clamp(25px,2.3vw,32px)/1.25 Manrope,Inter,sans-serif; color: #f6f8f1; letter-spacing: -.035em; margin: 0; }
.practice-catalogue .topic-hero-copy p { color: #b4c0aa; font-size: 12px; line-height: 1.8; max-width: 58ch; margin: 9px 0 0; }
.practice-catalogue .topic-hero-copy .chapter-meta { color: #a7b79a; margin-top: 13px; }
.practice-catalogue .topic-hero-actions { display: flex; flex-direction: column; gap: 9px; min-width: 155px; }
.practice-catalogue .topic-hero-actions .btn { width: 100%; min-height: 41px; font-size: 12px; justify-content: center; border-radius: 7px; }
.practice-catalogue .topic-hero-actions .btn.outline { background: transparent; border-color: #ffffff29; color: #dce4d5; }
.practice-catalogue .topic-hero-actions .btn.outline:hover { background: #ffffff0b; }
.practice-catalogue .topic-hero-actions > span { font-size: 10px; line-height: 1.6; color: #a9b79e; text-align: center; }
.practice-catalogue .topic-detail-stats { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 0; padding: 24px 0; margin-bottom: 25px; border-bottom: 1px solid var(--catalogue-line); }
.practice-catalogue .topic-detail-stats > div { padding: 0 24px; border-right: 1px solid var(--catalogue-line); }
.practice-catalogue .topic-detail-stats > div:first-child { padding-left: 0; }
.practice-catalogue .topic-detail-stats > div:last-child { border: 0; }
.practice-catalogue .topic-detail-stats strong { display: block; font-size: 23px; letter-spacing: -.035em; line-height: 1.4; font-weight: 650; font-variant-numeric: tabular-nums; }
.practice-catalogue .topic-detail-stats span,.practice-catalogue .topic-detail-stats small { display: block; color: #7a8473; font-size: 11px; line-height: 1.6; margin-top: 4px; }
.practice-catalogue .topic-detail-stats strong small { display: inline; font-size: 15px; font-weight: 500; letter-spacing: 0; color: #7c8972; }
.practice-catalogue .topic-difficulty-section > header { display: flex; justify-content: space-between; align-items: baseline; gap: 12px; margin-bottom: 16px; }
.practice-catalogue .topic-difficulty-section h2 { font: 700 19px/1.4 Manrope,Inter,sans-serif; letter-spacing: -.025em; }
.practice-catalogue .topic-difficulty-section header p,.practice-catalogue .topic-difficulty-section header > span { color: #7c8673; font-size: 11px; line-height: 1.7; margin-top: 5px; }
.practice-catalogue .topic-difficulty-section > .topic-group-heading { align-items: baseline; margin: 0 0 2px; }
.practice-catalogue .topic-difficulty-section > .topic-group-heading p { color: #727e68; font-size: 12px; line-height: 1.7; margin-top: 5px; }
.practice-catalogue .topic-difficulty-list { border: 1px solid #dfe5d7; border-radius: 12px; overflow: hidden; background: #fff; }
.practice-catalogue .topic-difficulty-row { position: relative; display: flex; align-items: center; gap: 22px; padding: 22px 24px; border-bottom: 1px solid #e8ede1; }
.practice-catalogue .topic-difficulty-row:last-child { border-bottom: 0; }
.practice-catalogue .topic-difficulty-row.selected { background: #f6f9f2; }
.practice-catalogue .topic-difficulty-row.selected::before { content: ''; width: 3px; position: absolute; inset: 0 auto 0 0; background: #238767; }
.practice-catalogue .topic-difficulty-copy { flex: 1; min-width: 0; }
.practice-catalogue .topic-difficulty-copy h3 { display: flex; align-items: center; gap: 10px; font-size: 13px; font-weight: 650; letter-spacing: -.015em; }
.practice-catalogue .topic-difficulty-copy p { color: #7c8673; font-size: 11px; line-height: 1.7; margin-top: 5px; }
.practice-catalogue .topic-difficulty-copy small { color: #8c9464; font-size: 10px; }
.practice-catalogue .topic-difficulty-copy .difficulty-current { display: inline-flex; padding: 3px 6px; background: #e9f1e4; color: #3e7953; font-size: 9px; font-weight: 500; border-radius: 4px; }
.practice-catalogue .topic-difficulty-progress { width: 170px; flex: 0 0 170px; }
.practice-catalogue .topic-difficulty-progress small { display: block; color: #7c8673; font-size: 10px; margin-top: 7px; line-height: 1.5; }
.practice-catalogue .topic-difficulty-row > .btn { min-width: 110px; min-height: 38px; padding: 9px 13px; font-size: 11px; border-radius: 6px; }
.practice-catalogue .topic-format-note { display: flex; flex-direction: column; gap: 3px; margin: 22px 0; padding: 17px 20px; background: #eff4ea; border: 1px solid #dce7d2; border-radius: 9px; font-size: 12px; color: #627256; line-height: 1.8; }
.practice-catalogue .topic-format-note strong { color: #43583a; font-size: 12px; }
.practice-catalogue .topic-format-note p { margin: 4px 0 0; }
.practice-catalogue .topic-format-note svg { flex: 0 0 18px; margin-top: 2px; }
.practice-catalogue .catalogue-notice { padding: 12px 15px; background: #fff5e9; border: 1px solid #f0dfc5; border-radius: 8px; color: #825422; font-size: 12px; margin-bottom: 17px; }
.practice-catalogue :is(.catalogue-heading .eyebrow,.catalogue-topline,.catalogue-categories button,.topic-group-heading > span,.chapter-description,.chapter-progress-label,.catalogue-bottom,.footnote,.topic-detail-stats > div > span,.topic-detail-stats > div > small,.topic-difficulty-copy p,.topic-difficulty-progress small,.mega-easy-choice) { color: var(--catalogue-muted); }
.practice-catalogue .catalogue-categories button[aria-pressed="true"] { color: #f8faf6; }
.practice-catalogue .topic-difficulty-section > .topic-group-heading :is(p,span) { color: var(--catalogue-muted); }

@media (min-width: 951px) {
  /* The persistent sidebar already offers all three practice sections. */
  .practice-catalogue .catalogue-tabs { display: none; }
  .practice-catalogue .catalogue-topline { border-top: 1px solid var(--catalogue-line); }
}

@media (min-width: 1680px) {
  .practice-catalogue .chapter-grid { grid-template-columns: repeat(4,minmax(0,1fr)); }
}
@media (max-width: 1180px) and (min-width: 951px) {
  .practice-catalogue .chapter-grid { grid-template-columns: repeat(2,minmax(0,1fr)); }
  .practice-catalogue .catalogue-tools { gap: 12px; }
  .practice-catalogue .catalogue-access { max-width: 90px; white-space: normal; }
  .practice-catalogue .mega-difficulty { flex-basis: 220px; }
  .practice-catalogue .topic-hero { padding: 26px; gap: 20px; grid-template-columns: 90px minmax(0,1fr) auto; }
  .practice-catalogue .topic-hero-art { width: 90px; height: 98px; }
  .practice-catalogue .topic-hero-art svg { width: 90px; height: 68px; }
}
@media (max-width: 950px) {
  .practice-catalogue .chapter-grid { grid-template-columns: repeat(2,minmax(0,1fr)); }
  .practice-catalogue .catalogue-heading h1 { font-size: 30px; }
}
@media (max-width: 700px) {
  .practice-catalogue .catalogue-heading { align-items: flex-start; margin-bottom: 18px; }
  .practice-catalogue .catalogue-heading h1 { font-size: 27px; line-height: 1.25; max-width: 18ch; }
  .practice-catalogue .catalogue-heading p { font-size: 12px; }
  .practice-catalogue .catalogue-heading > .btn { font-size: 0; padding: 10px; min-width: 39px; min-height: 39px; }
  .practice-catalogue .catalogue-heading > .btn svg { display: block; width: 17px; height: 17px; }
  .practice-catalogue .catalogue-tabs { gap: 0; width: 100%; }
  .practice-catalogue .catalogue-tabs button { flex: 1; display: flex; flex-direction: column; justify-content: center; align-items: center; gap: 3px; padding: 8px 4px; min-height: 55px; }
  .practice-catalogue .catalogue-tabs button:first-child { padding: 8px 4px; }
  .practice-catalogue .catalogue-tabs button strong { font-size: 12px; }
  .practice-catalogue .catalogue-tabs button span { display: block; font-size: 9px; }
  .practice-catalogue .catalogue-tabs button.active:first-child::after { left: 8px; }
  .practice-catalogue .catalogue-topline { font-size: 10px; margin-bottom: 14px; min-height: 44px; }
  .practice-catalogue .catalogue-topline > div > span { margin: 0 3px; }
  .practice-catalogue .catalogue-categories { gap: 4px; margin-bottom: 16px; }
  .practice-catalogue .catalogue-categories button { font-size: 10px; padding: 7px 9px; min-height: 33px; }
  .practice-catalogue .catalogue-tools { display: grid; grid-template-columns: minmax(0,1fr) auto; gap: 14px 10px; margin-bottom: 23px; }
  .practice-catalogue .catalogue-tools .search-box { min-width: 0; width: 100%; max-width: none; grid-column: 1; }
  .practice-catalogue .catalogue-access { max-width: 105px; white-space: normal; font-size: 10px; grid-column: 2; }
  .practice-catalogue .mega-difficulty { min-width: 0; max-width: none; width: 100%; grid-column: 1/-1; margin: 0; padding: 12px 14px 7px; background: #eef1e9; border-radius: 8px; }
  .practice-catalogue .mega-difficulty > label { font-size: 11px; }
  .practice-catalogue .mega-difficulty .text-link { font-size: 10px; }
  .practice-catalogue .mega-difficulty .mega-easy-choice { margin-left: auto; }
  .practice-catalogue .topic-group-heading { padding-bottom: 12px; }
  .practice-catalogue .topic-group-heading h2 { font-size: 17px; }
  .practice-catalogue .chapter-grid { gap: 13px; }
  .practice-catalogue .chapter-body { padding: 16px 15px 13px; }
  .practice-catalogue .chapter-art { min-height: 100px; padding: 10px 14px; }
  .practice-catalogue .chapter-art > svg { width: 96px; height: 72px; }
  .practice-catalogue .chapter-count { right: 11px; top: 11px; font-size: 9px; }
  .practice-catalogue .chapter-body h3 { font-size: 14px; }
  .practice-catalogue .chapter-description { font-size: 11px; }
  .practice-catalogue .chapter-actions { flex-wrap: wrap; }
  .practice-catalogue .chapter-actions .btn { padding: 8px 10px; }
  .practice-catalogue .catalogue-resume { align-items: flex-start; flex-direction: column; gap: 12px; padding: 16px; }
  .practice-catalogue .catalogue-bottom { gap: 12px; align-items: flex-start; }
  .practice-catalogue .topic-hero { grid-template-columns: 74px minmax(0,1fr); gap: 18px; padding: 23px 20px; }
  .practice-catalogue .topic-hero-art { width: 74px; height: 82px; border-radius: 9px; }
  .practice-catalogue .topic-hero-art svg { width: 78px; height: 59px; }
  .practice-catalogue .topic-hero-copy h1 { font-size: 24px; }
  .practice-catalogue .topic-hero-copy p { font-size: 11px; }
  .practice-catalogue .topic-hero-actions { grid-column: 1/-1; flex-direction: column; }
  .practice-catalogue .topic-detail-stats { padding: 20px 0; margin-bottom: 22px; }
  .practice-catalogue .topic-detail-stats > div { padding: 0 12px; }
  .practice-catalogue .topic-detail-stats strong { font-size: 20px; }
  .practice-catalogue .topic-detail-stats span,.practice-catalogue .topic-detail-stats small { font-size: 10px; }
  .practice-catalogue .topic-difficulty-section > header { align-items: flex-start; }
  .practice-catalogue .topic-difficulty-section h2 { font-size: 18px; }
  .practice-catalogue .topic-difficulty-row { display: grid; grid-template-columns: minmax(0,1fr) auto; gap: 13px; padding: 18px; }
  .practice-catalogue .topic-difficulty-copy { grid-column: 1; }
  .practice-catalogue .topic-difficulty-progress { grid-column: 1; grid-row: 2; width: 100%; max-width: 210px; }
  .practice-catalogue .topic-difficulty-row > .btn { grid-column: 2; grid-row: 1/3; min-width: 94px; min-height: 40px; }
  .practice-catalogue .topic-format-note { padding: 16px; }
}
@media (max-width: 520px) {
  .practice-catalogue .catalogue-heading { align-items: center; margin-bottom: 18px; }
  .practice-catalogue .catalogue-heading :is(.eyebrow,p) { display: none; }
  .practice-catalogue .catalogue-heading h1 { font-size: 25px; max-width: 20ch; }
  .practice-catalogue .catalogue-topline { display: flex; flex-direction: row; align-items: center; gap: 10px; }
  .practice-catalogue .catalogue-topline > div { flex: 1; }
  .practice-catalogue .catalogue-categories { flex-wrap: nowrap; overflow-x: auto; scrollbar-width: none; padding: 1px 0 4px; margin-bottom: 15px; }
  .practice-catalogue .catalogue-categories::-webkit-scrollbar { display: none; }
  .practice-catalogue .catalogue-categories button { flex: 0 0 auto; }
  .practice-catalogue .mega-difficulty { display: grid; grid-template-columns: minmax(0,1fr) auto; align-items: center; gap: 0 10px; padding: 10px 12px; }
  .practice-catalogue .mega-difficulty > label { grid-column: 1/-1; margin-bottom: 4px; }
  .practice-catalogue .mega-difficulty > .mega-range { display: none; }
  .practice-catalogue .mega-difficulty > div:not(.mega-range) { gap: 8px; }
  .practice-catalogue .mega-difficulty .text-link { min-height: 34px; }
  .practice-catalogue .mega-difficulty .mega-easy-choice { margin: 0; padding-left: 10px; border-left: 1px solid #dce3d5; white-space: nowrap; }
  .practice-catalogue .mega-difficulty:has(.small-copy) { display: block; }
  .practice-catalogue .mega-difficulty .small-copy { display: none; }
  .practice-catalogue .chapter-grid { grid-template-columns: minmax(0,1fr); }
  .practice-catalogue .chapter-art { min-height: 100px; }
  .practice-catalogue .chapter-body { padding: 18px; }
  .practice-catalogue .chapter-body h3 { font-size: 16px; }
  .practice-catalogue .chapter-description { min-height: 0; font-size: 12px; }
  .practice-catalogue .chapter-count { font-size: 10px; }
  .practice-catalogue .chapter-meta { font-size: 11px; }
  .practice-catalogue .chapter-progress-label { font-size: 10px; }
  .practice-catalogue .chapter-explore { font-size: 11px; }
  .practice-catalogue .chapter-actions .btn { min-height: 40px; padding: 9px 14px; font-size: 12px; }
  .practice-catalogue .catalogue-topline > div { display: block; }
  .practice-catalogue .catalogue-topline > span { font-size: 9px; }
  .practice-catalogue .catalogue-bottom { flex-direction: column; }
  .practice-catalogue .topic-hero { gap: 14px; padding: 20px 17px; }
  .practice-catalogue .topic-hero-copy h1 { font-size: 22px; }
  .practice-catalogue .topic-hero-copy .eyebrow { font-size: 9px; }
  .practice-catalogue .topic-detail-stats { grid-template-columns: 1fr; gap: 14px; padding: 20px 0; }
  .practice-catalogue .topic-detail-stats > div { display: grid; grid-template-columns: minmax(0,1fr) auto; align-items: baseline; gap: 0 15px; padding: 0; border: 0; }
  .practice-catalogue .topic-detail-stats > div > small { grid-column: 1/-1; margin-top: 0; }
  .practice-catalogue .topic-detail-stats strong { font-size: 20px; }
  .practice-catalogue .topic-detail-stats span { text-align: left; }
}
@media (prefers-reduced-motion: reduce) {
  .practice-catalogue * { scroll-behavior: auto !important; transition-duration: 0s !important; }
  .practice-catalogue .chapter-card:hover { transform: none; }
}

/* Source: student-login.css */
@font-face{font-family:Inter;src:url('assets/fonts/inter-latin-variable-400-800.woff2') format('woff2');font-weight:400 800;font-display:swap}
.student-auth{color-scheme:dark;width:min(440px,calc(100% - 32px));max-height:calc(100dvh - 32px);margin:auto;padding:0;overflow:auto;border:1px solid #303235;border-radius:18px;background:#111315;color:#f6f5f2;box-shadow:0 32px 110px #0009;font-family:Inter,Arial,sans-serif;scrollbar-width:thin;scrollbar-color:#3a3d40 transparent}
.student-auth::backdrop{background:#060708d9;backdrop-filter:blur(5px)}.student-auth *{box-sizing:border-box}.student-auth button,.student-auth input{font:inherit}.auth-form-pane{position:relative;padding:34px}
.auth-wordmark{display:inline-flex;align-items:baseline;gap:8px;font-family:Inter,Arial,sans-serif;color:#f7f7f3;font-weight:750;font-size:21px;letter-spacing:-.9px;line-height:1}.auth-wordmark b{font-size:31px;color:#ff782e;letter-spacing:-2px}.auth-dot{color:#ff782e}.auth-modal-brand{margin-bottom:33px}
.auth-kicker{display:block;color:#a5a8ac;font-size:9px;font-weight:600;letter-spacing:.18em;margin:0 0 12px}.student-auth h1,.student-auth h2{margin:0!important;color:#fafaf7!important;font-family:Inter,Arial,sans-serif!important;font-size:32px!important;font-weight:650!important;line-height:1.15!important;letter-spacing:-1.2px!important}.auth-muted{margin:11px 0 0;color:#a4a7ab;font-size:12px;line-height:1.7}
.auth-close{position:absolute;right:16px;top:16px;display:grid;place-items:center;width:30px;height:30px;padding:0;border:1px solid #34383c;border-radius:50%;color:#a9aeb3;background:transparent;cursor:pointer;font-size:21px!important}.auth-close:hover{color:white;border-color:#797f85}
.auth-tabs{display:grid;grid-template-columns:1fr 1fr;gap:4px;margin:25px 0 23px;padding:4px;border:1px solid #2b2f33;border-radius:10px;background:#0b0d0f}.auth-tabs button{padding:10px 6px;border:1px solid transparent;border-radius:6px;background:transparent;color:#999fa5;font-size:12px;cursor:pointer}.auth-tabs button[aria-selected=true]{background:#25292d;border-color:#353b40;color:#f8f8f5;font-weight:600}
.auth-field{display:block;margin:18px 0;color:#e0e2e3;font-size:11px;font-weight:550}.auth-field input{display:block;width:100%;height:49px;margin-top:9px;padding:12px 14px;border:1px solid #353b40;border-radius:8px;background:#0c0e10;color:#fff;font-size:14px!important;font-weight:400;transition:border-color .15s,box-shadow .15s}.auth-field input::placeholder{color:#737a82}.auth-field input:hover{border-color:#5c6269}.auth-field input:focus{outline:none;border-color:#ff9b62;box-shadow:0 0 0 3px #ff8a4412}
.auth-label-row{display:flex;align-items:center;justify-content:space-between;gap:12px}.auth-text-button{border:0;padding:0;background:transparent;color:#afb5bb;font-size:10px!important;font-weight:450;cursor:pointer}.auth-text-button:hover{color:#fff;text-decoration:underline;text-underline-offset:3px}.auth-password-wrap{display:block;position:relative}.auth-password-wrap input{padding-right:47px}.auth-show-password{position:absolute;right:7px;top:7px;display:grid;place-items:center;width:35px;height:35px;padding:0;border:0;border-radius:5px;background:transparent;color:#9098a0;cursor:pointer}.auth-show-password:hover{color:white}
.auth-primary{display:flex;align-items:center;justify-content:center;gap:12px;width:100%;min-height:49px;margin-top:25px;padding:13px 16px;border:1px solid #f4f4ef;border-radius:8px;background:#f4f4ef;color:#141719;font-size:13px!important;font-weight:650!important;cursor:pointer;transition:background .15s,transform .15s}.auth-primary:hover{background:white;transform:translateY(-1px)}.auth-primary:disabled{cursor:wait;transform:none;background:#d6d8d8}.auth-button-arrow{font-size:17px}.auth-spinner{display:none;width:13px;height:13px;border:1.5px solid #15191c45;border-top-color:#15191c;border-radius:50%;animation:auth-spin .7s linear infinite}form[aria-busy=true] .auth-spinner{display:block}form[aria-busy=true] .auth-button-arrow{display:none}
.auth-message{margin:15px 0 0;padding:11px 12px;border:1px solid #5a3a2e;border-radius:7px;background:#241a16;color:#ffc5a5;font-size:11px;line-height:1.7}.auth-message:empty{display:none}.auth-message[data-kind=success]{border-color:#29453b;background:#12231d;color:#b6dccb}.auth-divider{display:flex;align-items:center;gap:14px;margin:23px 0 19px;color:#717b84;font-size:10px}.auth-divider:before,.auth-divider:after{content:'';flex:1;height:1px;background:#292e33}.auth-guest{display:flex;align-items:center;justify-content:center;gap:14px;width:100%;min-height:40px;padding:8px;border:0;background:transparent;color:#c4c9ce;font-size:12px!important;cursor:pointer}.auth-guest:hover{color:#fff}.auth-privacy{margin:10px 0 0;text-align:center;color:#848e97;font-size:10px;line-height:1.6}.auth-back{display:block;margin:22px auto 0;font-size:12px!important}
.student-auth button:focus-visible,.auth-page a:focus-visible{outline:2px solid #ff9b62;outline-offset:4px}.student-auth button:disabled{cursor:wait}.auth-tabs button:disabled,.auth-text-button:disabled{opacity:.6}
html:has(dialog.student-auth[open]),body:has(dialog.student-auth[open]){overflow:hidden;overscroll-behavior:none}
/* The dedicated entry renders independently of the practice application. */
.auth-page{margin:0;min-height:100dvh;background:#090b0d;color:#f5f5f0;font-family:Inter,Arial,sans-serif;-webkit-font-smoothing:antialiased}.auth-page *{box-sizing:border-box}.auth-page a{color:inherit;text-decoration:none}.auth-page-header{max-width:1220px;margin:auto;padding:32px 44px;display:flex;align-items:center;justify-content:space-between;gap:24px}.auth-return{display:flex;align-items:center;gap:10px;color:#a0a7ae!important;font-size:11px}.auth-return:hover{color:#fff!important}.auth-shell{display:grid;grid-template-columns:1fr 400px;gap:100px;align-items:center;max-width:1030px;min-height:calc(100dvh - 164px);margin:auto;padding:40px 34px 56px}.auth-editorial{max-width:420px;padding-bottom:10px}.auth-editorial>.auth-kicker{color:#e4986b;letter-spacing:.2em;font-size:9px;margin-bottom:26px}.auth-editorial h2{font-size:clamp(40px,4.4vw,58px);font-weight:600;line-height:1.07;letter-spacing:-2.5px;margin:0;color:#f1f1ed}.auth-editorial h2 em{font-style:normal;color:#8e979f}.auth-editorial>p{max-width:315px;color:#99a3ac;font-size:13px;line-height:1.9;margin:26px 0 35px}.auth-subjects{display:flex;gap:0;border-top:1px solid #30363b;padding-top:21px;max-width:300px}.auth-subjects span{font-size:10px;letter-spacing:.16em;color:#c4cbd0}.auth-subjects span+span{margin-left:22px;padding-left:22px;border-left:1px solid #343b41}.auth-editorial small{display:block;margin-top:28px;color:#707d88;font-size:9px;letter-spacing:.06em}.auth-page .student-auth{width:100%;max-height:none;overflow:visible;box-shadow:0 24px 90px #0003;border-color:#2a3035;border-radius:15px}.auth-page .auth-form-pane{padding:34px 30px 28px}.auth-page-footer{max-width:1220px;margin:0 auto;padding:0 44px 24px;display:flex;justify-content:space-between;gap:20px;font-size:9px;color:#76828d;letter-spacing:.03em}.auth-noscript{padding:24px;color:#bec5cb}
@keyframes auth-spin{to{transform:rotate(360deg)}}
@media(max-width:900px){.auth-page-header{padding:26px 28px}.auth-editorial{display:none}.auth-shell{display:block;max-width:450px;min-height:calc(100dvh - 145px);padding:25px 20px 42px}.auth-page-footer{padding:0 28px 22px}.auth-page .student-auth{border-color:#30373d}.auth-page .auth-form-pane{padding:32px}}
@media(max-width:480px){.auth-page-header{padding:25px 24px}.auth-wordmark{font-size:18px}.auth-wordmark b{font-size:27px}.auth-return{font-size:10px}.auth-shell{padding:19px 16px 30px}.auth-page .auth-form-pane,.auth-form-pane{padding:28px 24px}.student-auth h1,.student-auth h2{font-size:29px!important}.auth-muted{font-size:12px}.auth-page-footer{padding-inline:24px;font-size:8px}.auth-page-footer span:last-child{display:none}.auth-field input{font-size:16px!important}.auth-tabs{margin-top:24px}.auth-page .student-auth{border-radius:13px}.student-auth{width:calc(100% - 24px);max-height:calc(100dvh - 24px)}.auth-modal-brand{margin-bottom:27px}}
@media(max-height:900px){.auth-page-header{padding-block:20px}.auth-shell{padding-top:12px;padding-bottom:25px;min-height:calc(100dvh - 128px)}.auth-form-pane,.auth-page .auth-form-pane{padding-top:26px;padding-bottom:24px}.auth-modal-brand{margin-bottom:22px}.auth-tabs{margin-top:19px;margin-bottom:17px}.auth-field{margin-block:14px}.auth-field input{height:46px}.auth-primary{margin-top:20px;min-height:46px}.auth-divider{margin-block:17px 9px}.auth-guest{min-height:32px}.auth-privacy{margin-top:7px;font-size:9px}}
@media(prefers-reduced-motion:reduce){.student-auth *{transition:none!important;animation:none!important}.student-auth::backdrop{backdrop-filter:none}}


/* 99 Percentiler premium silver-black login layer — no changes to auth-core */
dialog.student-auth:not([open]){display:none}
.student-auth,.auth-page .student-auth{width:min(1010px,calc(100% - 28px));min-height:650px;display:grid;grid-template-columns:51% 49%;max-height:calc(100dvh - 28px);overflow:auto;border:1px solid #71778085;border-radius:17px;background:#111317;box-shadow:0 40px 135px #000b;color:#f7f6f3}
.student-auth::backdrop{background:#020405de;backdrop-filter:blur(9px)}
.auth-brand-pane{position:relative;display:flex;flex-direction:column;min-height:650px;padding:49px 51px 36px;overflow:hidden;border-right:1px solid #ffffff20;background:radial-gradient(ellipse 95% 55% at 112% 75%,#272a3170,transparent 80%),linear-gradient(140deg,#0c0f12 5%,#12151a 70%,#0b0d11)}
.auth-brand-pane:after{content:"";position:absolute;inset:-15% -43% 0 25%;pointer-events:none;opacity:.3;background:repeating-radial-gradient(ellipse at 98% 65%,transparent 0 31px,#b5bec519 32px,#b5bec519 33px,transparent 34px 59px);transform:rotate(-19deg)}
.auth-brand-pane:before{content:"";position:absolute;right:-45%;bottom:22%;width:86%;height:1px;box-shadow:0 0 30px 2px #ff803d40;transform:rotate(-39deg);background:linear-gradient(90deg,transparent,#ff7c3a6e,transparent)}
.auth-brand-mark{position:relative;z-index:2}.auth-brand-mark .auth-wordmark{font-size:22px;font-weight:700;letter-spacing:-.85px}.auth-brand-mark .auth-wordmark b{font-size:37px;letter-spacing:-2.2px;color:#ff782e}
.auth-etched-99{position:absolute;right:-18px;top:82px;font-size:245px;line-height:1;letter-spacing:-29px;color:transparent;-webkit-text-stroke:1px #c8d0d71b;pointer-events:none;user-select:none}
.auth-brand-content{position:relative;z-index:2;margin-top:114px}
.auth-brand-overline{color:#a8afb8;font-size:10px;font-weight:650;letter-spacing:.2em}
.student-auth .auth-brand-content h2,.auth-page .student-auth .auth-brand-content h2{font-size:clamp(35px,3.7vw,49px)!important;font-weight:610!important;letter-spacing:-2.4px!important;line-height:1.13!important;margin:25px 0 14px!important}
.auth-brand-content h2 em{font-style:normal;color:#ff7f39}
.auth-brand-content>p{max-width:340px;color:#a9b0b7;font-size:13px;line-height:1.9;margin:0}
.auth-feature-list{display:grid;gap:24px;margin-top:40px}
.auth-feature{display:flex;align-items:center;gap:17px}
.auth-feature-icon{display:grid;place-items:center;flex-shrink:0;width:44px;height:44px;border-radius:10px;border:1px solid #65717c78;color:#ff8b4d;font-size:24px;background:#10151a}
.auth-feature strong{display:block;font-size:13px;color:#f5f4f2;font-weight:600}
.auth-feature small{display:block;color:#aab0b7;font-size:11px;line-height:1.6;margin-top:4px;max-width:275px}
.auth-form-pane,.auth-page .auth-form-pane{display:flex;flex-direction:column;justify-content:center;position:relative;min-width:0;padding:60px 54px 42px;background:linear-gradient(145deg,#1b1e22,#111317 85%)}
.auth-form-main{width:100%}
.student-auth h1,.student-auth h2,.auth-page .student-auth h1,.auth-page .student-auth h2{font-size:38px!important;font-weight:620!important;letter-spacing:-1.7px!important;line-height:1.18!important}
.auth-kicker{font-size:10px;font-weight:650;letter-spacing:.2em;color:#b1b5bd;margin-bottom:15px}.auth-kicker:before{content:"";display:inline-block;vertical-align:middle;width:16px;height:1px;background:#ff8a45;margin-right:10px}
.auth-muted{font-size:13px;color:#b1b4ba;margin:12px 0 22px;line-height:1.7}
.auth-close{top:21px;right:23px;border:0;background:transparent;font-size:26px!important;color:#b1b8bf}
.auth-tabs{margin:19px 0 13px;background:#0e1013;border-color:#41464b;border-radius:9px}
.auth-tabs button[aria-selected=true]{background:#292c31;border-color:#55595d}
.auth-field{font-size:12px;margin:15px 0}
.auth-field input,.auth-phone-field{height:50px;border-color:#646b7377;border-radius:8px;background:#0d1014}
.auth-field input:focus{border-color:#fb944f;box-shadow:0 0 0 3px #e479341c}
.auth-primary{min-height:52px;background:linear-gradient(115deg,#ff9c54,#ff782f);color:#100f0c;border-color:#ff8b40;margin-top:20px;font-weight:700!important;border-radius:9px}
.auth-primary:hover{background:linear-gradient(115deg,#ffb06e,#ff8a48)}
.auth-primary:disabled{background:#ac8b78;color:#29221b}
.auth-divider{margin:20px 0 16px;color:#9298a1;letter-spacing:.15em;font-size:9px}
.auth-google{width:100%;display:flex;align-items:center;justify-content:center;gap:11px;height:50px;color:#f4f4f4;border:1px solid #6b737d88;border-radius:8px;background:#ffffff05;font-size:13px;cursor:pointer;transition:border-color .15s,background .15s}
.auth-google:hover{background:#ffffff11;border-color:#9ca6b0}
.auth-google-mark{font-weight:800;font-size:18px;background:conic-gradient(#4285f4 0 90deg,#34a853 90deg 180deg,#fbbc05 180deg 260deg,#ea4335 260deg);-webkit-background-clip:text;background-clip:text;color:transparent}
.auth-mobile-switch{display:block;margin:13px auto 0;padding:7px 4px;border:0;background:transparent;color:#ff9b65;font-size:12px!important;cursor:pointer}
.auth-mobile-switch:hover{color:#ffbe8e}
.auth-privacy{margin-top:10px;color:#9197a0;font-size:10px}
.auth-privacy a{color:#b3b8bd;text-decoration:underline}
.auth-guest{color:#949ca4;font-size:11px!important;min-height:29px}
.auth-phone-field{display:flex;align-items:center;overflow:hidden;border:1px solid #646b7377;margin-top:9px}
.auth-phone-field span{padding:0 15px;border-right:1px solid #646b7377;color:#f2f2f2;font-size:13px}
.auth-phone-field input{flex:1;width:100%;min-width:0;border:0!important;margin:0;background:transparent;box-shadow:none!important}
.auth-phone-note{color:#9299a1;font-size:10px;line-height:1.6}
.auth-page{background:radial-gradient(ellipse 65% 50% at 35% 15%,#22283359,transparent 75%),#07090b}
.auth-page .auth-page-header,.auth-page .auth-editorial,.auth-page .auth-page-footer{display:none}
.auth-page .auth-shell{display:block;max-width:1140px;min-height:100dvh;padding:48px 20px;margin:auto}
.auth-page #auth-root{width:100%;display:flex;align-items:center;justify-content:center}
.auth-page .student-auth{margin:auto;max-height:none;min-height:650px;overflow:hidden}
.auth-page .student-auth .auth-form-pane{padding:60px 54px 42px}
@media(max-height:760px) and (min-width:801px){.student-auth,.auth-page .student-auth{min-height:570px}.auth-brand-pane{min-height:570px;padding-top:31px}.auth-brand-content{margin-top:62px}.auth-feature-list{margin-top:25px;gap:14px}.auth-form-pane,.auth-page .student-auth .auth-form-pane{padding-top:38px;padding-bottom:26px}.student-auth .auth-brand-content h2{font-size:39px!important}}
@media(max-width:800px){
 .student-auth,.auth-page .student-auth{display:flex;flex-direction:column;max-width:470px;min-height:0;max-height:calc(100dvh - 18px);border-radius:14px;overflow:auto}
 .auth-brand-pane{min-height:0;padding:24px 27px 23px;border-right:0;border-bottom:1px solid #ffffff18}
 .auth-brand-pane:after{opacity:.2}.auth-brand-content{margin-top:24px}
 .student-auth .auth-brand-content h2,.auth-page .student-auth .auth-brand-content h2{font-size:27px!important;letter-spacing:-1px!important;margin:12px 0 0!important}
 .auth-brand-content>p,.auth-feature-list{display:none}.auth-etched-99{font-size:125px;right:14px;top:10px;letter-spacing:-13px}
 .auth-form-pane,.auth-page .student-auth .auth-form-pane{padding:31px 29px 28px;display:block}
 .student-auth h1,.student-auth h2,.auth-page .student-auth h1,.auth-page .student-auth h2{font-size:31px!important}
 .auth-close{top:-143px;z-index:5;right:12px}
 .auth-page .auth-shell{min-height:100dvh;padding:18px 12px}
 .auth-page .student-auth{max-height:none;overflow:visible}
}
@media(max-width:420px){
 .auth-brand-pane{padding:20px 22px}
 .auth-brand-mark .auth-wordmark{font-size:19px}.auth-brand-mark .auth-wordmark b{font-size:32px}
 .auth-brand-content{margin-top:19px}.student-auth .auth-brand-content h2{font-size:25px!important}
 .auth-form-pane,.auth-page .student-auth .auth-form-pane{padding:24px 23px}
 .auth-muted{font-size:12px;margin-bottom:16px}.auth-tabs{margin:15px 0 11px}
 .auth-field{margin:12px 0}.auth-divider{margin:16px 0 12px}.auth-close{top:-125px}
}
@media(prefers-reduced-motion:reduce){.auth-brand-pane:after,.auth-brand-pane:before{animation:none}}

/* Source: practice-obsidian.css */
/*
 * 99 Percentiler — Obsidian
 * A dark presentation layer for the production student portal.
 * Existing routes, data, answer states and handlers remain host-owned.
 */
:root {
  color-scheme: dark;
  --canvas: #020304;
  --surface: #090b0e;
  --ink: #f5f7fa;
  --muted: #c8cdd5;
  --line: #20262d;
  --orange: #ff702a;
  --orange-soft: #2b1b13;
  --green: #ff8a4c;
  --obsidian-surface: #090b0e;
  --obsidian-raised: #0d1014;
  --obsidian-line: #20262d;
  --obsidian-soft: #c8cdd5;
  --obsidian-orange: #ff702a;
  --obsidian-orange-light: #ffb184;
}
html { background: #020304; }
body { background: #020304; color: var(--ink); }
::selection { background: #8e3b19; color: #fff4eb; }
.boot-state { background: #020304; }
.skip-link { background: #231a15; color: #ffe5d3; border: 1px solid #9e532e; border-radius: 8px; }

/* Natural atmosphere is isolated in a decorative custom element. The portal
 * retains its existing stacking context and opaque content surfaces. */
.portal-shell {
  position: relative;
  isolation: isolate;
  background: #020304;
  color: var(--ink);
}
.portal-shell .app-body { background: transparent; }
.portal-shell .workspace-main { padding-top: 34px; }

/* Navigation is a quiet dark rail, with clear selected and keyboard states. */
.portal-shell > .sidebar {
  background: linear-gradient(155deg, rgb(26 17 13 / 94%) 0, #101010 27%, #0e0e0e 72%);
  border-right: 1px solid #2b2521;
  color: #c1bbb4;
  scrollbar-color: #4a3a2f transparent;
}
.portal-shell .sidebar > .brand { color: #f6f1eb; }
.portal-shell .sidebar .brand-number,
.portal-shell .sidebar .brand-dot { color: #ff702a; }
.portal-shell .workspace-label { color: #9c9289; font-size: 9px; letter-spacing: .16em; }
.portal-shell .sidebar .nav-item {
  color: #bbb4ac;
  min-height: 46px;
  border: 1px solid transparent;
  border-radius: 10px;
  font-weight: 500;
  transition: color .18s, background-color .18s, border-color .18s;
}
.portal-shell .sidebar .nav-item:hover { background: #1e1b18; color: #fff3e8; border-color: #3a2e25; }
.portal-shell .sidebar .nav-item.active {
  color: #ffb184;
  background: linear-gradient(100deg, #392015, #231912);
  border-color: #5c3420;
  box-shadow: inset 2px 0 #ff702a, 0 1px 0 #ffffff03;
  font-weight: 600;
}
.portal-shell .sidebar .nav-item.active svg { color: #ff9355; }
.portal-shell .sidebar .nav-item b { color: #d8c5b8; background: #382a21; }
.portal-shell .sidebar-sections,
.portal-shell .sidebar-bottom { border-color: #2c2520; }
.portal-shell .section-link { min-height: 46px; color: #b5ada4; border: 1px solid transparent; border-radius: 9px; }
.portal-shell .section-link:hover { color: #f5e9df; background: #211a15; }
.portal-shell .section-short { color: #c6b8ad; background: #1b1714; border-color: #403228; }
.portal-shell .section-link[aria-current="page"] { color: #ffd5b8; background: #231a14; border-color: #3c2c20; }
.portal-shell .section-link[aria-current="page"] .section-short { color: #ffb184; background: #352218; border-color: #754328; }
.portal-shell .sidebar-account strong { color: #d6cec6; }
.portal-shell .sidebar .local-status { color: #a59b91; }
.portal-shell .account-status-dot { background: #a68f7c; }
.portal-shell .is-signed-in > .account-status-dot { background: #d89154; box-shadow: 0 0 0 3px #e68b3612; }
.portal-shell .app-header {
  background: rgb(10 10 10 / 98%);
  border-bottom: 1px solid #2c241f;
  box-shadow: 0 1px 0 #ffffff02;
  backdrop-filter: none;
}
.portal-shell .breadcrumb-root { color: #a69b91; }
.portal-shell .breadcrumb-divider { color: #655549; }
.portal-shell .breadcrumb > strong { color: #e9ded4; }
.portal-shell .preview-label { color: #a89a8e; }
.portal-shell .preview-label.is-signed-in::before { background: #e79a58; }
.portal-shell .app-header .account-action { color: #ffc49f; min-height: 44px; }
.portal-shell .app-header .account-action:hover { color: #ffe2cc; }
.portal-shell .app-header .avatar { background: #251b14; border-color: #59402c; color: #ffba8e; }
.portal-shell .app-header .avatar:hover { background: #382419; border-color: #96613e; }
.portal-shell .mobile-menu,
.portal-shell .sidebar-close { color: #e1c5b0; }
.portal-shell .mobile-menu:hover,
.portal-shell .sidebar-close:hover { color: #ffca9f; background: #2b2018; }

/* Shared controls and surfaces, including the genuine overview/history routes. */
.portal-shell :is(h1,h2,h3,h4) { color: #f2ede7; }
.portal-shell :is(.page-heading p,.section-heading p,.card > p,.access-card > p,.empty-state p,.quiet-empty,.muted,.footnote,.small-copy) { color: #aca39a; }
.portal-shell .eyebrow,
#app-dialog .eyebrow { color: #d4966c; }
.portal-shell :is(.card,.stat,.daily-focus-row,.practice-shortcuts > a,.sectional-surface,.question-item,.bank-row,.related-row,.related-tray) {
  background: #121211;
  border-color: #302b25;
  box-shadow: 0 1px 0 #ffffff03;
}
.portal-shell .card { border-radius: 14px; }
.portal-shell .stat { border-radius: 12px; background: linear-gradient(145deg,#191715,#121211 70%); }
.portal-shell .stat > strong { color: #f2e7de; }
.portal-shell .stat > span { color: #b5a99e; }
.portal-shell .stat > small { color: #a5988c; }
.portal-shell .stat.accent { border-color: #674027; background: linear-gradient(130deg,#2c1c12,#171310); }
.portal-shell .practice-shortcuts > a { border-radius: 12px; transition: background .18s,border-color .18s; }
.portal-shell .practice-shortcuts > a:hover { background: #211910; border-color: #775032; }
.portal-shell :is(.practice-shortcuts small,.recent-row small,.daily-focus-row p,.sectional-note,.bank-row p,.bank-row-copy > small,.recent-score > strong > span) { color: #a99c91; }
.portal-shell :is(.section-token,.session-symbol,.source-tag,.difficulty,.free-tag) { color: #d3bca9; background: #28201a; border-color: #4c3727; }
.portal-shell .recent-row,
.portal-shell .settings-lines > div { border-color: #302922; }
.portal-shell .daily-meter,
.portal-shell .topic-meter { background: #30271f; }
.portal-shell .daily-meter i,
.portal-shell .topic-meter i { background: #f58b4c; }
.portal-shell .settings-lines :is(strong,span) { color: #cbbdb1; }
.portal-shell .btn,
#app-dialog .btn { min-height: 44px; border-radius: 9px; font-weight: 600; transition: background .18s,border-color .18s,color .18s,box-shadow .18s,transform .18s; }
.portal-shell .btn.primary,
#app-dialog .btn.primary {
  background: linear-gradient(180deg,#ff8b4c,#ff7430);
  border-color: #ff965b;
  color: #241107;
  box-shadow: inset 0 1px 0 #ffd0a83d, 0 2px 5px #0002;
}
.portal-shell .btn.primary:hover,
#app-dialog .btn.primary:hover { background: linear-gradient(180deg,#ff9b62,#ff8444); border-color: #ffb17e; box-shadow: 0 4px 16px #d66a2020; }
.portal-shell .btn.outline,
#app-dialog .btn.outline { color: #d9c4b4; background: #191512; border-color: #4d3828; }
.portal-shell .btn.outline:hover,
#app-dialog .btn.outline:hover { background: #2a1f16; border-color: #93613e; color: #ffe0c6; }
.portal-shell .btn.soft { color: #ffc096; background: #342113; border-color: #604022; }
.portal-shell .btn.ink { color: #f7e3d2; background: #392619; border-color: #6b482d; }
.portal-shell .text-link,
#app-dialog .text-link { color: #ffad7b; }
.portal-shell .text-link:hover,
#app-dialog .text-link:hover { color: #ffd1b1; }
.portal-shell .icon-btn { color: #c8b5a6; }
.portal-shell .icon-btn:hover { background: #2b2119; color: #ffbf92; }
.portal-shell .btn:active:not(:disabled),
#app-dialog .btn:active:not(:disabled) { transform: translateY(0); }
.portal-shell .btn:disabled,
#app-dialog .btn:disabled { opacity: .42; box-shadow: none; transform: none; }
.portal-shell :is(a,button,input,select,summary):focus-visible,
#app-dialog :is(a,button,input,select):focus-visible,
.portal-shell .app-header button:focus-visible {
  outline: 2px solid #ffb987;
  outline-offset: 4px;
}
.portal-shell input[type="checkbox"],
.portal-shell input[type="radio"],
#app-dialog input[type="checkbox"] { accent-color: #ff8b4c; }
.portal-shell :is(select,input:not([type="range"]):not([type="checkbox"]):not([type="radio"]),textarea),
#app-dialog :is(select,input:not([type="checkbox"]):not([type="radio"]),textarea) {
  color: #e9d9cd;
  background-color: #171310;
  border-color: #514032;
}
.portal-shell input::placeholder,
#app-dialog input::placeholder { color: #9e8e81; opacity: 1; }
.portal-shell :is(.notice,.notice.subtle) { color: #c4ae9b; background: #20180f; border: 1px solid #493320; border-radius: 10px; }
.portal-shell .notice p { color: #b9a493; }
.portal-shell .notice strong { color: #e6c2a3; }
.portal-shell .is-saved { color: #ffb88d !important; background: #3b2518 !important; }
.portal-shell .is-saved svg { fill: #ff9d5d24; }

/* Section tabs are visible on every screen. Three useful, tactile controls,
 * balanced against a fine border and a restrained orange selected state. */
.practice-catalogue {
  --catalogue-ink: #f5f7fa;
  --catalogue-muted: #c8cdd5;
  --catalogue-line: #20262d;
  --catalogue-orange: #ff702a;
  --catalogue-emerald: #ff9256;
  color: var(--catalogue-ink);
}
.practice-catalogue .catalogue-heading { margin-bottom: 24px; }
.practice-catalogue .catalogue-heading .eyebrow { color: #d8986f; font-size: 10px; letter-spacing: .17em; }
.practice-catalogue .catalogue-heading h1 { color: #f7f0e9; font-weight: 700; letter-spacing: -.045em; }
.practice-catalogue .catalogue-heading p { color: #b4a599; }
.practice-catalogue .catalogue-tabs {
  display: grid;
  grid-template-columns: repeat(3,minmax(0,1fr));
  gap: 5px;
  padding: 5px;
  margin: 0 0 5px;
  border: 1px solid #3b2c22;
  border-radius: 13px;
  background: rgb(15 12 10 / 84%);
  box-shadow: inset 0 1px 0 #ffffff03;
}
.practice-catalogue .catalogue-tabs button,
.practice-catalogue .catalogue-tabs button:first-child {
  min-height: 53px;
  justify-content: flex-start;
  padding: 12px 18px;
  gap: 11px;
  border: 1px solid transparent;
  border-radius: 9px;
  background: transparent;
  transition: background .18s,border-color .18s,color .18s;
}
.practice-catalogue .catalogue-tabs button::after { display: none; }
.practice-catalogue .catalogue-tabs button strong { color: #d2bba9; font-size: 13px; font-weight: 650; }
.practice-catalogue .catalogue-tabs button span { color: #aa9788; font-size: 11px; line-height: 1.4; }
.practice-catalogue .catalogue-tabs button:hover { background: #241b14; border-color: #4d3524; }
.practice-catalogue .catalogue-tabs button.active {
  background: linear-gradient(115deg,#402415,#2b1c12);
  border-color: #8b4a27;
  box-shadow: inset 0 1px 0 #ffad6320, 0 2px 5px #0002;
}
.practice-catalogue .catalogue-tabs button.active strong { color: #ffae77; }
.practice-catalogue .catalogue-tabs button.active span { color: #ead0bb; }
.practice-catalogue .catalogue-topline { border-top: 0; border-bottom-color: #33271e; color: #aa9a8d; padding: 15px 0; margin-bottom: 17px; }
.practice-catalogue .catalogue-topline strong { color: #ecd8c7; }
.practice-catalogue .catalogue-topline > div > span { color: #71543f; }
.practice-catalogue .catalogue-topline > span { padding: 3px 8px; border: 1px solid #493320; border-radius: 5px; color: #c6a687; background: #20170f; }
.practice-catalogue .catalogue-categories { gap: 7px; margin-bottom: 18px; }
.practice-catalogue .catalogue-categories button {
  min-height: 40px;
  padding: 9px 13px;
  color: #b5a697;
  border: 1px solid #342a22;
  border-radius: 8px;
  background: #14110e;
  font-size: 11px;
  font-weight: 550;
}
.practice-catalogue .catalogue-categories button:hover { color: #f6d6b9; background: #271b12; border-color: #715035; }
.practice-catalogue .catalogue-categories button[aria-pressed="true"] {
  color: #ffc49a;
  background: #382315;
  border-color: #96552d;
  box-shadow: inset 0 1px 0 #ffffff06;
}
.practice-catalogue .catalogue-categories button span { color: #b39983; opacity: 1; font-size: 10px; }
.practice-catalogue .catalogue-categories button[aria-pressed="true"] span { color: #e3af88; }
.practice-catalogue .catalogue-tools { gap: 20px; margin-bottom: 28px; }
.practice-catalogue .catalogue-tools .search-box {
  color: #b39b88;
  min-height: 46px;
  border: 1px solid #4a3526;
  border-radius: 10px;
  background: #15110e;
  box-shadow: inset 0 1px 2px #0003;
}
.practice-catalogue .catalogue-tools .search-box:focus-within { border-color: #c57743; box-shadow: 0 0 0 3px #ff8b3612; }
.practice-catalogue .catalogue-tools .search-box input { min-height: 44px; color: #f1dfcf; background: transparent; border: 0; font-size: 12px; }
.practice-catalogue .catalogue-tools .search-box input::placeholder { color: #ab9685; }
.practice-catalogue .catalogue-tools .search-box input:focus-visible { outline: 0; }
.practice-catalogue .catalogue-access { color: #b7a08e; min-height: 44px; font-size: 11px; gap: 8px; }
.practice-catalogue .catalogue-access input { width: 16px; height: 16px; accent-color: #ff8b4c; }
.practice-catalogue .mega-difficulty { flex: 0 0 300px; min-width: 250px; max-width: 310px; }
.practice-catalogue .topic-catalogue { gap: 35px; }
.practice-catalogue .topic-group { background: transparent; border: 0; }
.practice-catalogue .topic-group-heading { padding-bottom: 16px; background: transparent; border: 0; }
.practice-catalogue .topic-group-heading h2 { color: #ede3d9; font-size: 19px; font-weight: 650; }
.practice-catalogue .topic-group-heading > span { color: #a28e7c; }
.practice-catalogue .chapter-grid { gap: 18px; }
.practice-catalogue .chapter-card {
  background: #121110;
  border: 1px solid #38302a;
  border-radius: 15px;
  box-shadow: 0 2px 4px #0002, inset 0 1px 0 #ffffff03;
  transition: border-color .22s,box-shadow .22s,transform .22s;
}
.practice-catalogue .chapter-card:hover {
  border-color: #87552e;
  box-shadow: 0 12px 24px #0004, 0 0 0 1px #ff8b3210;
  transform: translateY(-3px);
}
.practice-catalogue .chapter-card:focus-within { border-color: #c88047; box-shadow: 0 0 0 3px #ff8b3612; }
.practice-catalogue .chapter-art {
  min-height: 111px;
  padding: 15px 20px;
  color: #cbbdae;
  background: radial-gradient(ellipse at 18% 20%,#58321b42,transparent 67%),linear-gradient(115deg,#1b1714,#121110 80%);
  border-bottom: 1px solid #38302a;
}
.practice-catalogue .chapter-art > svg { width: 108px; height: 81px; }
.practice-catalogue .art-accent { stroke: #ff995b; }
.practice-catalogue .art-fill { fill: #ff8c3822; }
.practice-catalogue .chapter-count {
  top: 16px; right: 16px;
  padding: 5px 8px;
  border-radius: 6px;
  border-color: #624329;
  background: #21170fee;
  color: #d6b496;
  font-size: 10px;
  font-weight: 500;
}
.practice-catalogue .chapter-body { padding: 20px 20px 17px; }
.practice-catalogue .chapter-body h3 { color: #f0eae4; font-size: 16px; font-weight: 650; }
.practice-catalogue .chapter-body h3 a:hover { color: #ffb17f; }
.practice-catalogue .chapter-description { color: #b3a69a; font-size: 12px; line-height: 1.75; margin: 7px 0 14px; }
.practice-catalogue .chapter-meta { color: #b0a090; font-size: 11px; line-height: 1.7; gap: 5px 13px; }
.practice-catalogue .chapter-progress { padding-top: 19px; }
.practice-catalogue .progress-segments span { background: #302923; }
.practice-catalogue .progress-segments i { background: #e99152; }
.practice-catalogue .chapter-progress-label { color: #b0a090; margin-top: 8px; }
.practice-catalogue .chapter-actions { margin-top: 17px; padding-top: 14px; border-color: #332c26; }
.practice-catalogue .chapter-explore { color: #c6a58a; min-height: 44px; font-size: 11px; }
.practice-catalogue .chapter-explore:hover { color: #ffbc8a; }
.practice-catalogue .chapter-actions .btn { min-height: 42px; padding: 9px 13px; border-radius: 8px; font-size: 11px; }
.practice-catalogue .btn.primary { color: #241107; background: linear-gradient(180deg,#ff8b4c,#ff7430); border-color: #ff965b; }
.practice-catalogue .btn.primary:hover { background: linear-gradient(180deg,#ff9b62,#ff8444); border-color: #ffb17e; }
.practice-catalogue .btn.outline { background: #1d160f; border-color: #644227; color: #e3c1a3; }
.practice-catalogue .btn.outline:hover { background: #322115; border-color: #a46a3e; color: #ffe1c7; }
.practice-catalogue .catalogue-bottom { border-color: #39291d; color: #b49c87; margin-top: 36px; }
.practice-catalogue .catalogue-bottom .text-link { color: #e8ae7f; }
.practice-catalogue .footnote { color: #a68e7a; font-size: 11px; }
.practice-catalogue .empty-state { background: #16110d; border-color: #5b3a23; color: #d4b89f; }
.practice-catalogue :is(a,button,input):focus-visible { outline-color: #ffb987; }
.practice-catalogue .catalogue-resume { background: #2a1b10; border-color: #6c4225; }
.practice-catalogue .catalogue-resume strong { color: #f2cead; }
.practice-catalogue .catalogue-resume small { color: #c1a184; }
.practice-catalogue .catalogue-notice { background: #2d1d10; border-color: #79502c; color: #f2c38f; }

/* Chapter overview: the same material, with measured orange depth. */
.practice-catalogue .topic-back { color: #d4aa88; min-height: 40px; }
.practice-catalogue .topic-back:hover { color: #ffca9b; }
.practice-catalogue .topic-hero {
  padding: 34px;
  border: 1px solid #6c4227;
  border-radius: 17px;
  color: #f5e9df;
  background: radial-gradient(ellipse at 5% 0%,#6f3b1d55,transparent 65%),linear-gradient(120deg,#1c1713,#100f0e);
  box-shadow: inset 0 1px 0 #ffd9b20a,0 10px 35px #0002;
}
.practice-catalogue .topic-hero-art { color: #dfc2a8; background: #2c1c1266; border-color: #765033; border-radius: 12px; }
.practice-catalogue .topic-hero-art .art-accent { stroke: #ffa164; }
.practice-catalogue .topic-hero-art .art-fill { fill: #ff995326; }
.practice-catalogue .topic-hero-copy .eyebrow { color: #e9a574; }
.practice-catalogue .topic-hero-copy h1 { color: #f6eadd; }
.practice-catalogue .topic-hero-copy p { color: #c2a78f; }
.practice-catalogue .topic-hero-copy .chapter-meta { color: #b7977b; }
.practice-catalogue .topic-hero-actions .btn { min-height: 44px; border-radius: 9px; }
.practice-catalogue .topic-hero-actions .btn.outline { border-color: #765032; color: #e7c5a6; background: #25180f; }
.practice-catalogue .topic-hero-actions .btn.outline:hover { background: #3c2515; border-color: #ac7348; }
.practice-catalogue .topic-hero-actions > span { color: #b99a7c; }
.practice-catalogue .topic-detail-stats { border-color: #46301e; }
.practice-catalogue .topic-detail-stats > div { border-color: #46301e; }
.practice-catalogue .topic-detail-stats strong { color: #f2ddc9; }
.practice-catalogue .topic-detail-stats :is(span,small) { color: #b59a81; }
.practice-catalogue .topic-detail-stats strong small { color: #c4a589; }
.practice-catalogue .topic-difficulty-section :is(p,span),
.practice-catalogue .topic-difficulty-section > .topic-group-heading :is(p,span) { color: #b09a85; }
.practice-catalogue .topic-difficulty-list { background: #13110f; border-color: #4a382a; border-radius: 13px; }
.practice-catalogue .topic-difficulty-row { border-color: #39281b; }
.practice-catalogue .topic-difficulty-row.selected { background: linear-gradient(95deg,#312015,#1b1612); }
.practice-catalogue .topic-difficulty-row.selected::before { width: 3px; background: #f59751; }
.practice-catalogue .topic-difficulty-copy h3 { color: #e7cdb5; font-size: 14px; }
.practice-catalogue .topic-difficulty-copy p { color: #b79b81; }
.practice-catalogue .topic-difficulty-copy small { color: #c0a07d; }
.practice-catalogue .topic-difficulty-copy .difficulty-current { color: #ffbd85; background: #57321a; border: 1px solid #8a512b; border-radius: 4px; }
.practice-catalogue .topic-difficulty-progress small { color: #b2967c; }
.practice-catalogue .topic-difficulty-row > .btn { min-height: 44px; border-radius: 8px; }
.practice-catalogue .topic-format-note { color: #bea184; background: #21160d; border-color: #5b3b21; border-radius: 11px; }
.practice-catalogue .topic-format-note strong { color: #e0b78e; }

/* Completed test analysis and saved-question review. Status colors still carry
 * their existing meaning; large panels and control treatments use the theme. */
.portal-shell :is(.history-type-tabs,.analysis-tabs,.review-mode-tabs,.source-filter) { border-color: #3d2e22; }
.portal-shell :is(.history-type-tabs > a,.analysis-tabs button,.review-mode-tabs button,.source-filter button) {
  min-height: 44px; color: #bc9e84; border: 1px solid transparent; border-radius: 8px; background: transparent; padding-inline: 15px;
}
.portal-shell :is(.history-type-tabs > a,.analysis-tabs button,.review-mode-tabs button,.source-filter button):hover { color: #f0c8a5; background: #281a10; }
.portal-shell :is(.history-type-tabs > a.active,.analysis-tabs button.active,.review-mode-tabs button.active,.source-filter button.active) { color: #ffc28d; background: #3a2413; border-color: #85532d; box-shadow: none; }
.portal-shell .result-stats > div { background: #141210; border-color: #3e3024; }
.portal-shell .result-stats > div > span { color: #c5a386; }
.portal-shell .result-stats :is(p,strong small) { color: #b69a81; }
.portal-shell .result-stats strong { color: #efdbc8; }
.portal-shell .result-stats > .result-score { background: linear-gradient(135deg,#422612,#20140c); color: #ffddba; }
.portal-shell .result-stats > .result-score strong { color: #ffca94; }
.portal-shell .result-stats > .result-score > span { color: #e0ab78; }
.portal-shell .result-stats > .result-score p { color: #c8a685; }
.portal-shell .score-breakdown b.green { color: #89cfaa; }
.portal-shell .score-breakdown b.red { color: #f3a18e; }
.portal-shell .score-breakdown small { color: #b39c88; }
.portal-shell .section-performance > div { border-color: #49301d; }
.portal-shell .section-performance :is(p,small) { color: #b99b7e; }
.portal-shell .section-performance h3 { color: #e5c7ac; }
.portal-shell .review-rail-heading { border-color: #43301e; }
.portal-shell .review-rail-heading span { color: #ceac8a; }
.portal-shell .review-question-list > button { border-color: #38291d; color: #c4aa92; }
.portal-shell .review-question-list > button:hover { background: #251a11; }
.portal-shell .review-question-list > button.active { background: #3b2515; border-color: #88532c; }
.portal-shell .review-question-list strong { color: #dec2a8; }
.portal-shell .review-question-list small { color: #b89b80; }
.portal-shell .review-passage { background: #151311; border-color: #3c3026; }
.portal-shell .review-passage > h3 { color: #e9ad7a; }
.portal-shell .review-passage-copy { color: #dac5b3; }
.portal-shell .review-question-header { border-color: #4a321f; }
.portal-shell .review-question-header h2 { color: #ead5c1; }
.portal-shell :is(.review-question-meta,.review-question-tools,.review-pagination > span,.review-solution-label) { color: #bda084; }
.portal-shell .review-pagination { border-color: #4b321e; }
.portal-shell .solution-options > div { color: #dacfc4; border-color: #44372c; background: #191512; }
.portal-shell .solution-options > div > span { background: #312115; color: #e3be9b; border-color: #725033; }
.portal-shell .solution-options .right { background: #14251c; border-color: #406f52; color: #bce0c5; }
.portal-shell .solution-options .wrong { background: #311b16; border-color: #8a4d39; color: #edb7a9; }
.portal-shell .solution-options .right small { color: #a0d1b0; }
.portal-shell .solution-options .wrong small { color: #efae96; }
.portal-shell .solution-options p,
.portal-shell .explanation p { color: #dac3ae; }
.portal-shell .explanation { background: #191512; border-color: #3f3126; }
.portal-shell .numeric-review > div { background: #21170e; border-color: #5d3e24; color: #ddbb98; }
.portal-shell :is(.mistake-label,.field-note,.parent-test-link) { color: #baa084; }
.portal-shell .answer-status.correct { background: #152a1c; color: #b1dbb9; border-color: #466a4b; }
.portal-shell .answer-status.incorrect { background: #311c15; color: #efb39a; border-color: #84503b; }
.portal-shell .answer-status.skipped { background: #282017; color: #ceb79b; border-color: #65523a; }
.portal-shell .set-table th { background: #2c1d11; color: #e2c5a5; }
.portal-shell .set-table td { color: #ccb49b; }
.portal-shell .set-table :is(th,td) { border-color: #765238; }
.portal-shell .data-table th { background: #1c140e; color: #c5a484; border-color: #583d26; }
.portal-shell .data-table td { color: #d1b79d; border-color: #432f1e; }
.portal-shell .data-table td strong { color: #e9cdb1; }
.portal-shell .data-table td small { color: #b79a7b; }
.portal-shell .data-table tbody tr:hover { background: #261a10; }
.portal-shell .table-label { color: #bb9776; border-color: #4d341e; }
.portal-shell .filter-bar { background: #17100b; border-color: #4e321d; }
.portal-shell .filter-bar .search-box { background: #20160e; color: #bda084; border-color: #67452b; }
.portal-shell .question-status.correct,
.portal-shell .status-pill.correct { background: #1d3525; color: #a8d7b6; }
.portal-shell .question-status.incorrect,
.portal-shell .status-pill.incorrect { background: #3d241b; color: #f0b49d; }
.portal-shell .question-status.skipped,
.portal-shell .status-pill.skipped { background: #33281b; color: #d2ba98; }
.portal-shell .pagination { border-color: #4a321f; color: #bc9f82; }

/* Preparation and confirmation stay native dialogs, with readable form states. */
#app-dialog {
  color-scheme: dark;
  background: linear-gradient(140deg,#21170f,#110e0b 70%);
  color: #ecd9c7;
  border-color: #7a4c2a;
  border-radius: 18px;
  box-shadow: 0 30px 100px #000b, inset 0 1px 0 #ffc18b14;
  scrollbar-width: thin;
  scrollbar-color: #67452d transparent;
}
#app-dialog::backdrop { background: #030201bb; backdrop-filter: blur(7px); }
#app-dialog h2 { color: #f5e4d3; }
#app-dialog :is(p,.form-label,.form-grid label,.check-line,.instructions,.small-copy,.muted) { color: #c5aa90; }
#app-dialog .dialog-close { color: #d2a77f; border: 1px solid #5b3d27; background: #2c1d11; }
#app-dialog :is(select,input:not([type="checkbox"]):not([type="radio"]),textarea) { min-height: 44px; color: #edd6bf; background: #1b120b; border-color: #785435; }
#app-dialog .question-preview .reading-passage { color: #ddc6ae; background: #1f160d; }
#app-dialog .question-preview :is(h3,ol) { color: #e2c7ab; }
#app-dialog .field-error { color: #ffb18f; }
#toast { color: #ffe0c3; background: #332113; border: 1px solid #a06a3e; box-shadow: 0 12px 36px #0007; }
.student-auth { border-color: #5d3a22; background: #120f0c; }
.student-auth .auth-tabs { background: #20170f; border-color: #513721; }
.student-auth .auth-tabs button { color: #c5a587; }
.student-auth .auth-tabs button[aria-selected=true] { background: #3b2413; border-color: #85522b; color: #ffca96; }

/* Deep-neutral finish. Orange is an action/selection accent, rather than a
 * brown wash across panels. Text stays close to white even as the tide changes.
 * Sidebar-specific symbols and grouping are owned by sidebar-premium.css. */
.portal-shell .app-header { background: rgb(3 4 5 / 98%); border-color: #20262d; }
.portal-shell .breadcrumb-root,
.portal-shell .preview-label { color: #c8cdd5; }
.portal-shell .breadcrumb-divider { color: #747d89; }
.portal-shell .breadcrumb > strong { color: #f5f7fa; }
.portal-shell .app-header .avatar { background: #0d1014; border-color: #343c47; color: #f0f3f7; }
.portal-shell .app-header .avatar:hover { background: #171d24; border-color: #5f6d7e; }
.portal-shell .mobile-menu { color: #f5f7fa; }
.portal-shell :is(h1,h2,h3,h4) { color: #f5f7fa; }
.portal-shell :is(.page-heading p,.section-heading p,.card > p,.access-card > p,.empty-state p,.quiet-empty,.muted,.footnote,.small-copy) { color: #c8cdd5; }
.portal-shell :is(.card,.stat,.daily-focus-row,.practice-shortcuts > a,.sectional-surface,.question-item,.bank-row,.related-row,.related-tray) { background: #090b0e; border-color: #252c35; }
.portal-shell .stat { background: #090b0e; }
.portal-shell .stat > strong { color: #f5f7fa; }
.portal-shell .stat > span { color: #d2d7de; }
.portal-shell .stat > small { color: #b3bbc6; }
.portal-shell .stat.accent { background: #0c0e12; border-color: #53402e; }
.portal-shell .practice-shortcuts > a:hover { background: #11161c; border-color: #56616f; }
.portal-shell :is(.practice-shortcuts small,.recent-row small,.daily-focus-row p,.sectional-note,.bank-row p,.bank-row-copy > small,.recent-score > strong > span) { color: #c0c7d1; }
.portal-shell :is(.section-token,.session-symbol,.source-tag,.difficulty,.free-tag) { color: #d7dde5; background: #131820; border-color: #303b48; }
.portal-shell .recent-row,
.portal-shell .settings-lines > div { border-color: #262e37; }
.portal-shell .settings-lines :is(strong,span) { color: #d5dbe3; }
.portal-shell .daily-meter,
.portal-shell .topic-meter { background: #252d38; }
.portal-shell .btn.outline,
#app-dialog .btn.outline { color: #e7ebf0; background: #0d1014; border-color: #39424e; }
.portal-shell .btn.outline:hover,
#app-dialog .btn.outline:hover { background: #161c23; border-color: #707d8d; color: #fff; }
.portal-shell .icon-btn { color: #d7dde5; }
.portal-shell .icon-btn:hover { background: #171d25; color: #fff; }
.portal-shell :is(select,input:not([type="range"]):not([type="checkbox"]):not([type="radio"]),textarea),
#app-dialog :is(select,input:not([type="checkbox"]):not([type="radio"]),textarea) { color: #f0f3f7; background-color: #0a0e13; border-color: #394552; }
.portal-shell input::placeholder,
#app-dialog input::placeholder { color: #b2bbc7; }
.portal-shell :is(.notice,.notice.subtle) { color: #d0d7e0; background: #0c1015; border-color: #333e4c; }
.portal-shell .notice p { color: #c2ccd7; }
.portal-shell .notice strong { color: #edf1f6; }

.portal-shell .practice-catalogue .catalogue-heading h1 { color: #f5f7fa; }
.portal-shell .practice-catalogue .catalogue-heading p { color: #c8cdd5; }
.portal-shell .practice-catalogue .catalogue-tabs { background: #070a0e; border-color: #29313b; }
.portal-shell .practice-catalogue .catalogue-tabs button strong { color: #e9edf3; }
.portal-shell .practice-catalogue .catalogue-tabs button span { color: #c0c9d4; }
.portal-shell .practice-catalogue .catalogue-tabs button:hover { background: #131a23; border-color: #424f60; }
.portal-shell .practice-catalogue .catalogue-tabs button.active { background: #211810; border-color: #8c532e; }
.portal-shell .practice-catalogue .catalogue-tabs button.active strong { color: #ffb17d; }
.portal-shell .practice-catalogue .catalogue-tabs button.active span { color: #f5e9df; }
.portal-shell .practice-catalogue .catalogue-topline { color: #c8cdd5; border-color: #27303a; }
.portal-shell .practice-catalogue .catalogue-topline strong { color: #f5f7fa; }
.portal-shell .practice-catalogue .catalogue-topline > div > span { color: #8894a3; }
.portal-shell .practice-catalogue .catalogue-topline > span { color: #d2dae4; border-color: #344152; background: #10161e; }
.portal-shell .practice-catalogue .catalogue-categories button { color: #d1d8e2; background: #0a0e13; border-color: #283340; }
.portal-shell .practice-catalogue .catalogue-categories button:hover { color: #f4f7fc; background: #151d27; border-color: #637287; }
.portal-shell .practice-catalogue .catalogue-categories button[aria-pressed="true"] { color: #ffc195; background: #251a12; border-color: #8d522d; }
.portal-shell .practice-catalogue .catalogue-categories button span { color: #afbac9; }
.portal-shell .practice-catalogue .catalogue-categories button[aria-pressed="true"] span { color: #e9b38b; }
.portal-shell .practice-catalogue .catalogue-tools .search-box { color: #c3cedc; border-color: #394859; background: #090d12; }
.portal-shell .practice-catalogue .catalogue-tools .search-box input { color: #f5f7fa; background: transparent; }
.portal-shell .practice-catalogue .catalogue-tools .search-box input::placeholder { color: #b5c0cf; }
.portal-shell .practice-catalogue .catalogue-access { color: #c8cdd5; }
.portal-shell .practice-catalogue .topic-group-heading h2 { color: #f5f7fa; }
.portal-shell .practice-catalogue .topic-group-heading > span { color: #bdc6d1; }
.portal-shell .practice-catalogue .chapter-card { background: #090b0e; border-color: #29323d; }
.portal-shell .practice-catalogue .chapter-card:hover { border-color: #77583f; }
.portal-shell .practice-catalogue .chapter-art { color: #d0d9e4; background: linear-gradient(120deg,#0e131a,#080b0f); border-color: #27303a; }
.portal-shell .practice-catalogue .chapter-count { color: #d4dde7; background: #0c1118; border-color: #3d4b5d; }
.portal-shell .practice-catalogue .chapter-body h3 { color: #f5f7fa; }
.portal-shell .practice-catalogue .chapter-description { color: #c8cdd5; }
.portal-shell .practice-catalogue .chapter-meta { color: #bdc6d1; }
.portal-shell .practice-catalogue .progress-segments span { background: #28313c; }
.portal-shell .practice-catalogue .chapter-progress-label { color: #b9c3d0; }
.portal-shell .practice-catalogue .chapter-actions { border-color: #27303b; }
.portal-shell .practice-catalogue .chapter-explore { color: #dae2ec; }
.portal-shell .practice-catalogue .chapter-explore:hover { color: #ffc19a; }
.portal-shell .practice-catalogue .btn.outline { color: #e3eaf3; background: #10161d; border-color: #435164; }
.portal-shell .practice-catalogue .btn.outline:hover { color: #fff; background: #1b2531; border-color: #6c7d94; }
.portal-shell .practice-catalogue .catalogue-bottom { border-color: #2c3744; color: #c8cdd5; }
.portal-shell .practice-catalogue .footnote { color: #b2bfce; }
.portal-shell .practice-catalogue .empty-state { background: #090d12; border-color: #44536a; color: #e4ebf4; }
.portal-shell .practice-catalogue .catalogue-resume { background: #10141a; border-color: #645039; }
.portal-shell .practice-catalogue .catalogue-resume strong { color: #f2f5fa; }
.portal-shell .practice-catalogue .catalogue-resume small { color: #c5cfdb; }
.portal-shell .practice-catalogue .topic-back { color: #dae2ec; }
.portal-shell .practice-catalogue .topic-back:hover { color: #ffc19a; }
.portal-shell .practice-catalogue .topic-hero { background: linear-gradient(120deg,#0d1219,#070a0e); border-color: #3d4651; color: #f5f7fa; }
.portal-shell .practice-catalogue .topic-hero-art { color: #d4deea; background: #111922; border-color: #425267; }
.portal-shell .practice-catalogue .topic-hero-copy h1 { color: #f5f7fa; }
.portal-shell .practice-catalogue .topic-hero-copy p { color: #c8cdd5; }
.portal-shell .practice-catalogue .topic-hero-copy .chapter-meta { color: #bcc8d7; }
.portal-shell .practice-catalogue .topic-hero-actions > span { color: #bbc8d8; }
.portal-shell .practice-catalogue .topic-detail-stats,
.portal-shell .practice-catalogue .topic-detail-stats > div { border-color: #2e3947; }
.portal-shell .practice-catalogue .topic-detail-stats strong { color: #f5f7fa; }
.portal-shell .practice-catalogue .topic-detail-stats :is(span,small) { color: #c1ccda; }
.portal-shell .practice-catalogue .topic-difficulty-section :is(p,span),
.portal-shell .practice-catalogue .topic-difficulty-section > .topic-group-heading :is(p,span) { color: #c1ccd9; }
.portal-shell .practice-catalogue .topic-difficulty-list { background: #090c10; border-color: #344153; }
.portal-shell .practice-catalogue .topic-difficulty-row { border-color: #293442; }
.portal-shell .practice-catalogue .topic-difficulty-row.selected { background: #19150f; }
.portal-shell .practice-catalogue .topic-difficulty-copy h3 { color: #f1f5fb; }
.portal-shell .practice-catalogue .topic-difficulty-copy p,
.portal-shell .practice-catalogue .topic-difficulty-progress small { color: #c2cfde; }
.portal-shell .practice-catalogue .topic-difficulty-copy small { color: #b7c4d5; }
.portal-shell .practice-catalogue .topic-difficulty-copy .difficulty-current { color: #ffc396; background: #3a2517; border-color: #966239; }
.portal-shell .practice-catalogue .topic-format-note { color: #c5d0de; background: #0d131b; border-color: #36465b; }
.portal-shell .practice-catalogue .topic-format-note strong { color: #e5edf7; }

.portal-shell :is(.history-type-tabs,.analysis-tabs,.review-mode-tabs,.source-filter) { border-color: #303c4c; }
.portal-shell :is(.history-type-tabs > a,.analysis-tabs button,.review-mode-tabs button,.source-filter button) { color: #d0d9e5; }
.portal-shell :is(.history-type-tabs > a,.analysis-tabs button,.review-mode-tabs button,.source-filter button):hover { color: #f7faff; background: #121b27; }
.portal-shell .result-stats > div { background: #090d12; border-color: #2f3d50; }
.portal-shell .result-stats > div > span { color: #d0dbe8; }
.portal-shell .result-stats :is(p,strong small) { color: #bdccde; }
.portal-shell .result-stats strong { color: #f5f7fa; }
.portal-shell .result-stats > .result-score { background: #14130f; color: #f5f7fa; border-color: #6a5339; }
.portal-shell .result-stats > .result-score p { color: #c8cdd5; }
.portal-shell .score-breakdown small { color: #c8cdd5; }
.portal-shell .section-performance > div { border-color: #303d50; }
.portal-shell .section-performance :is(p,small) { color: #c8cdd5; }
.portal-shell .section-performance h3 { color: #f1f5fb; }
.portal-shell .review-rail-heading { border-color: #344155; }
.portal-shell .review-rail-heading span { color: #c8cdd5; }
.portal-shell .review-question-list > button { border-color: #2d394a; color: #c8cdd5; }
.portal-shell .review-question-list > button:hover { background: #111b29; }
.portal-shell .review-question-list > button.active { background: #221a11; border-color: #85532c; }
.portal-shell .review-question-list strong { color: #f0f4fa; }
.portal-shell .review-question-list small { color: #bdc9d9; }
.portal-shell .review-passage { background: #0c1016; border-color: #303d50; }
.portal-shell .review-passage-copy { color: #e0e6ee; }
.portal-shell .review-question-header { border-color: #344155; }
.portal-shell .review-question-header h2 { color: #f5f7fa; }
.portal-shell :is(.review-question-meta,.review-question-tools,.review-pagination > span,.review-solution-label) { color: #c8d2df; }
.portal-shell .review-pagination { border-color: #344155; }
.portal-shell .solution-options > div { color: #e3eaf3; border-color: #3b4a60; background: #0d131c; }
.portal-shell .solution-options > div > span { color: #eaf1fa; border-color: #536680; background: #172131; }
.portal-shell .solution-options .right { background: #11251a; border-color: #406f52; color: #d1efda; }
.portal-shell .solution-options .wrong { background: #301a16; border-color: #8a4d39; color: #f3c3b6; }
.portal-shell .solution-options p,
.portal-shell .explanation p { color: #e0e7f0; }
.portal-shell .explanation { background: #0d131c; border-color: #35455c; }
.portal-shell .numeric-review > div { background: #121b28; border-color: #41556f; color: #e5edf8; }
.portal-shell :is(.mistake-label,.field-note,.parent-test-link) { color: #c8d2df; }
.portal-shell .set-table th { background: #141e2c; color: #e9eff7; }
.portal-shell .set-table td { color: #d4dfed; }
.portal-shell .set-table :is(th,td) { border-color: #506680; }
.portal-shell .data-table th { background: #101722; color: #d9e3f1; border-color: #41536b; }
.portal-shell .data-table td { color: #d9e3f1; border-color: #303e52; }
.portal-shell .data-table td strong { color: #f0f5fc; }
.portal-shell .data-table td small { color: #c2cede; }
.portal-shell .data-table tbody tr:hover { background: #131d2b; }
.portal-shell .table-label { color: #c5d3e5; border-color: #3e506b; }
.portal-shell .filter-bar { background: #0b1017; border-color: #36465e; }
.portal-shell .filter-bar .search-box { background: #121b28; color: #d0deef; border-color: #4a607e; }
.portal-shell .pagination { border-color: #37485f; color: #ccd9ea; }

#app-dialog { background: #080b0f; color: #e8eff8; border-color: #455971; }
#app-dialog h2 { color: #f5f7fa; }
#app-dialog :is(p,.form-label,.form-grid label,.check-line,.instructions,.small-copy,.muted) { color: #c8d3e1; }
#app-dialog .dialog-close { color: #dbe7f6; border-color: #435a78; background: #172232; }
#app-dialog :is(select,input:not([type="checkbox"]):not([type="radio"]),textarea) { color: #edf3fc; background: #101824; border-color: #526b8a; }
#app-dialog .question-preview .reading-passage { color: #dce6f3; background: #111a27; }
#app-dialog .question-preview :is(h3,ol) { color: #e6eef9; }
#toast { color: #f0f5fc; background: #141e2b; border-color: #5d7695; }
.student-auth { background: #080b0f; border-color: #39495e; }
.student-auth .auth-tabs { background: #111923; border-color: #3a4c64; }
.student-auth .auth-tabs button { color: #c8d4e3; }

@media (min-width: 951px) and (max-width: 1180px) {
  .practice-catalogue .catalogue-tools { gap: 14px; }
  .practice-catalogue .mega-difficulty { flex-basis: 250px; min-width: 230px; }
  .practice-catalogue .catalogue-tabs button,
  .practice-catalogue .catalogue-tabs button:first-child { gap: 8px; padding-inline: 12px; }
  .practice-catalogue .catalogue-tabs button span { font-size: 10px; }
}
@media (max-width: 950px) {
  .portal-shell > .sidebar { background: linear-gradient(150deg,#20150e,#101010 45%); }
  .portal-shell > .sidebar.is-open { box-shadow: 20px 0 80px #000b; }
  .portal-shell .sidebar-backdrop:not([hidden]) { background: #030201b3; }
  .practice-catalogue .topic-hero { padding: 27px; }
}
@media (max-width: 700px) {
  .portal-shell .workspace-main { padding-top: 27px; }
  .portal-shell::before,
  .portal-shell::after,
  .portal-shell .app-body::before,
  .portal-shell .app-body::after { inset: -7vh -12vw; }
  .practice-catalogue .catalogue-heading { margin-bottom: 20px; }
  .practice-catalogue .catalogue-tabs { gap: 4px; padding: 4px; border-radius: 11px; }
  .practice-catalogue .catalogue-tabs button,
  .practice-catalogue .catalogue-tabs button:first-child {
    flex-direction: column;
    justify-content: center;
    align-items: flex-start;
    min-height: 60px;
    padding: 10px 11px;
    gap: 4px;
    border-radius: 7px;
  }
  .practice-catalogue .catalogue-tabs button span { display: block; font-size: 10px; line-height: 1.4; }
  .practice-catalogue .catalogue-tabs button strong { font-size: 12px; }
  .practice-catalogue .catalogue-categories button { min-height: 40px; padding-inline: 12px; font-size: 11px; }
  .practice-catalogue .catalogue-tools { gap: 16px 12px; }
  .practice-catalogue .mega-difficulty { min-width: 0; width: 100%; max-width: none; background: #18110b; border: 1px solid #573820; border-radius: 11px; }
  .practice-catalogue .chapter-body { padding: 19px; }
  .practice-catalogue .topic-hero { padding: 24px 20px; }
  .practice-catalogue .topic-difficulty-row { padding: 19px; }
  .practice-catalogue .topic-format-note { padding: 17px; }
  .portal-shell .review-passage { border-right-color: #4b321f; }
}
@media (max-width: 520px) {
  .practice-catalogue .catalogue-heading h1 { font-size: 25px; max-width: none; }
  .practice-catalogue .catalogue-heading > .btn { min-height: 42px; padding: 9px 11px; font-size: 11px; }
  .practice-catalogue .catalogue-tabs button,
  .practice-catalogue .catalogue-tabs button:first-child { padding: 10px 8px; }
  .practice-catalogue .catalogue-tabs button span { font-size: 9px; }
  .practice-catalogue .catalogue-topline { margin-bottom: 15px; padding: 12px 0; }
  .practice-catalogue .catalogue-tools { margin-bottom: 27px; }
  .practice-catalogue .chapter-grid { gap: 17px; }
  .practice-catalogue .chapter-art { min-height: 111px; }
  .practice-catalogue .chapter-art > svg { width: 108px; height: 81px; }
  .practice-catalogue .chapter-body h3 { font-size: 17px; }
  .practice-catalogue .chapter-actions .btn { min-height: 44px; padding: 10px 16px; }
  .practice-catalogue .chapter-explore { font-size: 12px; }
  .practice-catalogue .topic-hero { padding: 21px 18px; gap: 15px; }
  .practice-catalogue .topic-detail-stats { gap: 16px; }
  .practice-catalogue .topic-detail-stats > div { border: 0; }
  .practice-catalogue .topic-difficulty-row > .btn { min-width: 91px; }
  .practice-catalogue .topic-difficulty-copy h3 { flex-wrap: wrap; gap: 5px 8px; }
}
@media (prefers-reduced-motion: reduce) {
  .portal-shell::before,
  .portal-shell::after,
  .portal-shell .app-body::before,
  .portal-shell .app-body::after { animation: none !important; will-change: auto; transform: none; opacity: 0; }
  .portal-shell::before { opacity: .5; }
  .portal-shell *,
  #app-dialog *,
  .student-auth * { scroll-behavior: auto !important; transition: none !important; }
  .portal-shell .chapter-card:hover,
  .portal-shell .btn:hover { transform: none; }
  .portal-shell .app-header,
  #app-dialog::backdrop { backdrop-filter: none; }
}
@media (forced-colors: active) {
  .portal-shell::before,
  .portal-shell::after,
  .portal-shell .app-body::before,
  .portal-shell .app-body::after { display: none; }
  .practice-catalogue .chapter-card,
  .practice-catalogue .catalogue-tabs,
  .practice-catalogue .catalogue-tabs button,
  .practice-catalogue .catalogue-categories button { border: 1px solid ButtonText; }
  .practice-catalogue .catalogue-tabs button.active,
  .practice-catalogue .catalogue-categories button[aria-pressed="true"] { outline: 2px solid Highlight; outline-offset: -3px; }
}

/* Source: difficulty-control.css */
/* Three real API grades. Restore the original substantial capsule silhouette
   while retaining a 44px native range hit area and quiet moving sparkle. */
.practice-catalogue .mega-difficulty {
  --difficulty-orange: #ff7b35;
  --difficulty-ember: #d34d12;
  position: relative;
  display: block;
  flex: 0 1 302px;
  width: 302px;
  min-width: 250px;
  max-width: none;
  padding: 12px 14px 9px;
  border: 1px solid #34302c;
  border-radius: 13px;
  background: linear-gradient(115deg, #191512 0%, #111111 62%);
  box-shadow: inset 0 1px 0 #ffffff04, 0 5px 18px #0000001a;
}
.practice-catalogue .mega-difficulty > label {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  margin: 0;
  color: #aaa39c;
  font-size: 10px;
  font-weight: 550;
  line-height: 18px;
}
.practice-catalogue .mega-difficulty > label > span {
  text-transform: uppercase;
  letter-spacing: .12em;
}
.practice-catalogue .mega-difficulty #practice-difficulty-value {
  color: #ffad7e;
  font-size: 11px;
  font-weight: 650;
}
.practice-catalogue .mega-difficulty > .mega-range {
  position: relative;
  display: block;
  width: 100%;
  height: 44px;
  margin: 1px 0 0;
  border: 0;
  background: transparent;
  isolation: isolate;
}
.practice-catalogue .mega-range::before,
.practice-catalogue .mega-range-fill::after { content: none; animation: none; }
.practice-catalogue .mega-range-track,
.practice-catalogue .mega-difficulty[data-level] .mega-range-fill {
  position: absolute;
  top: 10px;
  left: 3px;
  height: 24px;
  border-radius: 999px;
  pointer-events: none;
}
.practice-catalogue .mega-range-track {
  right: 3px;
  border: 1px solid #88502b66;
  background: linear-gradient(180deg, #352318, #261a13);
  box-shadow: inset 0 2px 4px #0000003d, 0 1px 0 #ffffff04;
}
.practice-catalogue .mega-difficulty[data-level] .mega-range-fill {
  width: calc(12px + var(--position) * (100% - 30px) / var(--steps, 2));
  background: linear-gradient(110deg, #b94b1d 0%, #e9672c 48%, #ff8b47 100%);
  box-shadow: inset 0 1px 0 #ffc28b61, inset 0 -1px 0 #862b1a3d, 0 0 14px #ff6e201f;
  transition: width .28s cubic-bezier(.2,.75,.25,1);
  overflow: hidden;
}
.practice-catalogue .mega-range-ticks {
  position: absolute;
  z-index: 1;
  inset: 19px 12px auto;
  height: 6px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  pointer-events: none;
}
.practice-catalogue .mega-range-ticks i {
  width: 6px;
  height: 6px;
  background: #bc9175;
  border: 0;
  border-radius: 50%;
}
.practice-catalogue .mega-difficulty[data-level="1"] .mega-range-ticks i:first-child,
.practice-catalogue .mega-difficulty[data-level="2"] .mega-range-ticks i { background: #ffaf80; }
.practice-catalogue .mega-range-spark {
  position: absolute;
  z-index: 2;
  inset: 12px 3px auto;
  height: 20px;
  overflow: hidden;
  pointer-events: none;
  border-radius: 999px;
}
.practice-catalogue .mega-range-spark > i {
  position: absolute;
  inset: 0;
  display: block;
  animation: difficulty-spark-travel 5.6s linear infinite;
  will-change: transform;
}
.practice-catalogue .mega-range-spark > i::before {
  content: '';
  position: absolute;
  left: -33px;
  top: 6px;
  width: 42px;
  height: 8px;
  border-radius: 99px;
  background: linear-gradient(90deg, transparent, #ffb27424 45%, #ffd6a166);
  box-shadow: 5px 0 8px #ff9b3933;
}
.practice-catalogue .mega-range-spark > i::after {
  content: '';
  position: absolute;
  left: 0;
  top: 4px;
  width: 11px;
  height: 11px;
  background: #ffe2ba;
  clip-path: polygon(50% 0,62% 36%,100% 50%,62% 62%,50% 100%,36% 62%,0 50%,36% 36%);
}
.practice-catalogue .mega-range-thumb {
  position: absolute;
  z-index: 3;
  top: 7px;
  left: calc(var(--position) * (100% - 30px) / var(--steps, 2));
  display: grid;
  place-items: center;
  width: 30px;
  height: 30px;
  border: 1px solid #ffbf8e;
  border-radius: 50%;
  background: linear-gradient(145deg, #ffc17e, #ff9a4f 54%, #ec702c);
  box-shadow: inset 0 1px 0 #ffe0ba8a, 0 0 0 3px #1a100c45, 0 3px 9px #00000065;
  pointer-events: none;
  transition: left .28s cubic-bezier(.2,.75,.25,1), box-shadow .2s ease;
}
.practice-catalogue .mega-range-thumb > i {
  display: block;
  width: 12px;
  height: 12px;
  background: #32180c;
  clip-path: polygon(50% 0,62% 36%,100% 50%,62% 62%,50% 100%,36% 62%,0 50%,36% 36%);
}
.practice-catalogue .mega-difficulty .mega-range input {
  position: relative;
  z-index: 4;
  display: block;
  appearance: none;
  -webkit-appearance: none;
  width: 100%;
  height: 44px;
  min-height: 44px;
  margin: 0;
  padding: 0;
  border: 0;
  border-radius: 999px;
  background: transparent;
  box-shadow: none;
  cursor: pointer;
  touch-action: pan-y;
}
.practice-catalogue .mega-range input::-webkit-slider-runnable-track { height: 24px; background: transparent; border: 0; }
.practice-catalogue .mega-range input::-moz-range-track,
.practice-catalogue .mega-range input::-moz-range-progress { height: 24px; background: transparent; border: 0; }
.practice-catalogue .mega-range input::-webkit-slider-thumb {
  appearance: none;
  -webkit-appearance: none;
  width: 30px;
  height: 30px;
  margin-top: -3px;
  border: 0;
  border-radius: 50%;
  background: transparent;
  box-shadow: none;
}
.practice-catalogue .mega-range input::-moz-range-thumb {
  width: 30px;
  height: 30px;
  border: 0;
  border-radius: 50%;
  background: transparent;
  box-shadow: none;
}
.practice-catalogue .mega-range:has(input:focus-visible) { outline: 2px solid #ff995d; outline-offset: 1px; border-radius: 8px; }
.practice-catalogue .mega-range input:focus-visible { outline: 0; }
.practice-catalogue .mega-range:has(input:hover) .mega-range-thumb,
.practice-catalogue .mega-range:has(input:focus-visible) .mega-range-thumb { box-shadow: inset 0 1px 0 #ffe0ba8a, 0 0 0 4px #ff7b351c, 0 3px 11px #00000065; }
.practice-catalogue .mega-difficulty > .mega-range-labels {
  display: grid;
  grid-template-columns: repeat(3,minmax(0,1fr));
  align-items: stretch;
  gap: 4px;
  margin: 0;
  padding: 0;
}
.practice-catalogue .mega-difficulty .mega-range-labels .text-link {
  display: inline-flex;
  justify-content: center;
  align-items: center;
  min-width: 0;
  min-height: 36px;
  margin: 0;
  padding: 7px 10px;
  border: 1px solid transparent;
  border-radius: 7px;
  background: transparent;
  color: #b7aea7;
  font-size: 11px;
  line-height: 1.5;
  font-weight: 550;
  text-decoration: none;
  transition: background .18s ease, border-color .18s ease, color .18s ease;
}
.practice-catalogue .mega-difficulty .mega-range-labels .text-link:hover { color: #f9e5d8; background: #ffffff06; border-color: #ffffff0a; }
.practice-catalogue .mega-difficulty .mega-range-labels [aria-pressed="true"] { color: #ffac7b; background: #ff7b3510; border-color: #ff8b482b; }
.practice-catalogue .mega-difficulty .mega-range-labels .text-link:focus-visible { outline: 2px solid #ff995d; outline-offset: 2px; }
@keyframes difficulty-spark-travel {
  0% { transform: translate3d(-8%,0,0); opacity: 0; }
  10% { opacity: .75; }
  85% { opacity: .8; }
  100% { transform: translate3d(105%,0,0); opacity: 0; }
}
@media (max-width: 950px) {
  .practice-catalogue .mega-difficulty { width: 100%; min-width: 0; flex-basis: 100%; margin: 0; }
  .practice-catalogue .mega-difficulty .mega-range-labels .text-link { min-height: 40px; }
}
@media (max-width: 520px) {
  .practice-catalogue .mega-difficulty { display: block; padding: 11px 13px 8px; }
  .practice-catalogue .mega-difficulty > label { margin: 0; }
  .practice-catalogue .mega-difficulty > .mega-range { display: block; height: 44px; }
  .practice-catalogue .mega-difficulty > div.mega-range-labels { gap: 5px; }
  .practice-catalogue .mega-difficulty .mega-range-labels .text-link { min-height: 44px; font-size: 12px; }
}
@media (prefers-reduced-motion: reduce) {
  .practice-catalogue .mega-range-spark > i { animation: none; opacity: .6; transform: translateX(50%); will-change: auto; }
  .practice-catalogue .mega-difficulty[data-level] .mega-range-fill,
  .practice-catalogue .mega-range-thumb,
  .practice-catalogue .mega-range-labels .text-link { transition: none; }
}

/* Source: sidebar-premium.css */
/* A compact, semantic navigation rail. All artwork is original SVG in shell().
   Scope intentionally excludes the slider, player and shared icon library. */
.portal-shell > .sidebar {
  background: #030405;
  border-right-color: #20262d;
  color: #f5f7fa;
  scrollbar-color: #424a55 transparent;
  scrollbar-width: none;
}
/* Keep native menu scrolling available without visible scrollbar chrome. */
.portal-shell > .sidebar::-webkit-scrollbar {
  display: none;
  width: 0;
  height: 0;
}
.portal-shell .sidebar .workspace-label {
  padding: 0 12px 11px;
  color: #abb3be;
  font-size: 9px;
  font-weight: 600;
  line-height: 1.5;
  letter-spacing: .13em;
}
.portal-shell .sidebar nav { gap: 3px; }
.portal-shell .sidebar .nav-item {
  position: relative;
  min-height: 44px;
  padding: 10px 11px;
  gap: 11px;
  color: #f5f7fa;
  background: transparent;
  border: 1px solid transparent;
  border-radius: 7px;
  font-size: 13px;
  font-weight: 500;
  line-height: 1.5;
  letter-spacing: -.01em;
  box-shadow: none;
  transition: color .16s ease, border-color .16s ease, background-color .16s ease;
}
.portal-shell .sidebar .nav-item > span { min-width: 0; }
.portal-shell .sidebar .nav-item .sidebar-glyph {
  display: block;
  flex: 0 0 20px;
  width: 20px;
  height: 20px;
  color: #f5f7fa;
  opacity: 1;
}
.portal-shell .sidebar .nav-item .glyph-detail { opacity: .8; }
.portal-shell .sidebar .nav-item:hover {
  color: #fff;
  background: #0f1319;
  border-color: #222b35;
}
.portal-shell .sidebar .nav-item.active {
  color: #fff5ef;
  background: linear-gradient(90deg, #ff702a18, #ff702a07);
  border-color: #ff702a25;
  box-shadow: inset 2px 0 #ff702a;
  font-weight: 600;
}
.portal-shell .sidebar .nav-item.active .sidebar-glyph { color: #ff985f; }
.portal-shell .sidebar .nav-item.active:hover { background: linear-gradient(90deg, #ff702a23, #ff702a0a); border-color: #ff702a38; }
.portal-shell .sidebar .nav-item b {
  min-width: 21px;
  border-radius: 5px;
  color: #e8edf4;
  background: #202630;
  font-size: 10px;
  font-weight: 550;
  font-variant-numeric: tabular-nums;
}
.portal-shell .sidebar-sections {
  margin: 23px 0 22px;
  padding-top: 19px;
  border-top-color: #252c34;
}
.portal-shell .sidebar .section-link {
  grid-template-columns: 26px minmax(0,1fr) 12px;
  gap: 10px;
  min-height: 52px;
  padding: 8px 10px;
  border: 1px solid transparent;
  border-radius: 7px;
  color: #f5f7fa;
  background: transparent;
  box-shadow: none;
  transition: border-color .16s ease, background-color .16s ease;
}
.portal-shell .sidebar .subject-graphic {
  display: grid;
  place-items: center;
  width: 26px;
  height: 30px;
  color: #f1f5fa;
  --subject-accent: #ff9559;
}
.portal-shell .sidebar .subject-varc { --subject-accent: #4cd4ba; }
.portal-shell .sidebar .subject-dilr { --subject-accent: #80adff; }
.portal-shell .sidebar .subject-graphic .sidebar-glyph {
  display: block;
  width: 24px;
  height: 24px;
  color: inherit;
  opacity: 1;
}
.portal-shell .sidebar .subject-graphic .glyph-accent { stroke: var(--subject-accent); }
.portal-shell .sidebar .section-link-copy { display: block; min-width: 0; }
.portal-shell .sidebar .section-link-copy strong {
  display: block;
  color: #f5f7fa;
  font-size: 12px;
  line-height: 1.5;
  font-weight: 600;
  letter-spacing: .035em;
}
.portal-shell .sidebar .section-link-copy small {
  display: block;
  margin-top: 2px;
  color: #c8cdd5;
  font-size: 11px;
  line-height: 1.45;
  font-weight: 400;
  letter-spacing: -.01em;
}
.portal-shell .sidebar .section-link > svg {
  width: 12px;
  height: 12px;
  color: #abb3be;
  opacity: .8;
}
.portal-shell .sidebar .section-link:hover { color: #fff; background: #0f1319; border-color: #222b35; }
.portal-shell .sidebar .section-link[aria-current="page"] {
  color: #fff5ef;
  background: #ff702a0b;
  border-color: #ff702a25;
  box-shadow: inset 2px 0 #ff702a;
}
.portal-shell .sidebar .section-link[aria-current="page"] .section-link-copy strong { color: #ffad7e; }
.portal-shell .sidebar .section-link[aria-current="page"] > svg { color: #ff985f; opacity: 1; }
.portal-shell .sidebar-bottom { padding-top: 15px; border-top-color: #252c34; }
.portal-shell .sidebar .sidebar-bottom .nav-item { color: #e2e8ef; }
.portal-shell .sidebar-account { gap: 10px; padding: 17px 12px 3px; }
.portal-shell .sidebar-account strong { color: #f0f4f8; font-size: 11px; font-weight: 500; }
.portal-shell .sidebar .local-status { margin-top: 3px; color: #abb3be; font-size: 10px; }
.portal-shell .sidebar .account-status-dot { background: #aab4c0; box-shadow: none; }
.portal-shell .sidebar .is-signed-in > .account-status-dot { background: #4cd4ba; box-shadow: 0 0 0 3px #4cd4ba12; }
.portal-shell .sidebar .sidebar-close { color: #f5f7fa; }
.portal-shell .sidebar .sidebar-close:hover { color: #fff; background: #151b23; }
.portal-shell .sidebar a:focus-visible,
.portal-shell .sidebar button:focus-visible { outline: 2px solid #ffad7e; outline-offset: 3px; }
@media (max-width: 950px) {
  .portal-shell .sidebar .nav-item { min-height: 46px; font-size: 13px; }
  .portal-shell .sidebar .section-link { min-height: 54px; }
  .portal-shell .sidebar .section-link-copy strong { font-size: 12px; }
  .portal-shell .sidebar .section-link-copy small { font-size: 11px; }
}
@media (max-height: 760px) and (min-width: 951px) {
  .portal-shell .sidebar-sections { margin-top: 17px; margin-bottom: 18px; padding-top: 15px; }
}
@media (prefers-reduced-motion: reduce) {
  .portal-shell .sidebar .nav-item,
  .portal-shell .sidebar .section-link { transition: none; }
}
@media (forced-colors: active) {
  .portal-shell .sidebar .nav-item,
  .portal-shell .sidebar .section-link { color: CanvasText; background: Canvas; box-shadow: none; }
  .portal-shell .sidebar .nav-item.active,
  .portal-shell .sidebar .section-link[aria-current="page"] { border-color: Highlight; }
  .portal-shell .sidebar .sidebar-glyph,
  .portal-shell .sidebar .subject-graphic .glyph-accent { color: CanvasText; stroke: CanvasText; }
}

/* Source: catalogue-header.css */
/* Catalogue header and chapter count. Sidebar, artwork and sky stay unchanged. */
.portal-shell .practice-catalogue .catalogue-heading { margin-bottom:34px; }
.portal-shell .practice-catalogue .catalogue-heading .eyebrow { color:#b8c4d2; font-size:11px; letter-spacing:.14em; }
.portal-shell .practice-catalogue .catalogue-heading h1 { font-size:clamp(36px,3.2vw,48px); letter-spacing:-.055em; font-weight:700; line-height:1.08; }
.portal-shell .practice-catalogue .catalogue-heading p { margin-top:13px; font-size:14px; color:#c7d0da; }
.portal-shell .practice-catalogue .catalogue-tabs { display:flex; align-items:stretch; gap:32px; padding:0; margin:0; overflow-x:auto; overflow-y:hidden; scrollbar-width:none; border:0; border-bottom:1px solid #2b3643; background:transparent; }
.portal-shell .practice-catalogue .catalogue-tabs button,
.portal-shell .practice-catalogue .catalogue-tabs button:first-child {
  flex:0 0 auto; min-height:56px; padding:13px 1px 15px; border:0; border-radius:0; background:transparent; box-shadow:none;
}
.portal-shell .practice-catalogue .catalogue-tabs button:hover { color:#f5f7fa; background:transparent; border:0; }
.portal-shell .practice-catalogue .catalogue-tabs button.active,
.portal-shell .practice-catalogue .catalogue-tabs button.active:first-child { background:transparent; border:0; box-shadow:none; }
.portal-shell .practice-catalogue .catalogue-tabs button strong { font-size:14px; font-weight:680; }
.portal-shell .practice-catalogue .catalogue-tabs button span { font-size:12px; color:#aeb9c8; }
.portal-shell .practice-catalogue .catalogue-tabs button.active strong { color:#f5f7fa; }
.portal-shell .practice-catalogue .catalogue-tabs button.active span { color:#c7d0dc; }
.portal-shell .practice-catalogue .catalogue-tabs button.active::after,
.portal-shell .practice-catalogue .catalogue-tabs button.active:first-child::after { display:block; height:2px; bottom:-1px; left:0; right:0; background:#edf2f8; }
.portal-shell .practice-catalogue .catalogue-topline {
  min-height:114px; padding:26px 0 29px; margin:0 0 25px;
  align-items:center; border-color:#2b3643; color:#b7c3d2;
}
.portal-shell .practice-catalogue .catalogue-topline > div { flex:1; min-width:0; }
.portal-shell .practice-catalogue .catalogue-metrics { display:flex; flex-wrap:wrap; align-items:end; gap:10px 0; }
.portal-shell .practice-catalogue .catalogue-stat { display:flex; flex-direction:column; gap:7px; padding:0 33px; line-height:1.12; }
.portal-shell .practice-catalogue .catalogue-stat:first-child { padding-left:0; }
.portal-shell .practice-catalogue .catalogue-stat + .catalogue-stat { border-left:1px solid #303d4b; }
.portal-shell .practice-catalogue .catalogue-stat strong { font-size:27px; letter-spacing:-.046em; font-weight:670; font-variant-numeric:tabular-nums; }
.portal-shell .practice-catalogue .catalogue-stat:first-child strong { font-size:41px; }
.portal-shell .practice-catalogue .catalogue-stat small { font-size:12px; font-weight:510; color:#b7c4d2; white-space:nowrap; }
.portal-shell .practice-catalogue .catalogue-categories {
  display:grid; grid-template-columns:repeat(7,minmax(0,1fr)); gap:10px;
  margin:0 0 25px; padding:0; overflow:visible;
}
.portal-shell .practice-catalogue .catalogue-categories button,
.portal-shell .practice-catalogue .catalogue-categories button[aria-pressed="true"] {
  display:flex; flex-direction:column; align-items:flex-start; justify-content:space-between; gap:14px;
  min-width:0; min-height:92px; padding:16px 15px; border:1px solid #344150;
  border-radius:12px; background:#0b1118; text-align:left; box-shadow:none;
  color:#c3cedb; transition:border-color .18s,background .18s,transform .18s;
}
.portal-shell .practice-catalogue .catalogue-categories button:hover {
  color:#f5f7fa; background:#131b24; border-color:#7c8c9d; transform:translateY(-2px);
}
.portal-shell .practice-catalogue .catalogue-categories button[aria-pressed="true"] {
  color:#f5f7fa; background:#17212c; border-color:#a8b7c8;
  box-shadow:inset 0 0 0 1px #ffffff14;
}
.portal-shell .practice-catalogue .catalogue-categories .category-title {
  display:block; font-size:15px; font-weight:650; line-height:1.28; letter-spacing:-.02em;
  overflow-wrap:break-word;
}
.portal-shell .practice-catalogue .catalogue-categories .category-total {
  display:block; font-size:11px; font-weight:520; color:#a8b5c4;
  font-variant-numeric:tabular-nums; line-height:1.3;
}
.portal-shell .practice-catalogue .catalogue-categories button[aria-pressed="true"] .category-total { color:#d0d9e5; }
.portal-shell .practice-catalogue .catalogue-tools { margin-bottom:35px; }
.portal-shell .practice-catalogue .topic-group-heading h2 { font-size:21px; font-weight:650; letter-spacing:-.03em; }
.portal-shell .practice-catalogue .topic-group-heading > span { font-size:12px; font-variant-numeric:tabular-nums; }
@media (max-width:1550px) {
  .portal-shell .practice-catalogue .catalogue-categories {
    display:flex; overflow-x:auto; gap:10px; padding:0 0 5px; scroll-snap-type:x proximity;
  }
  .portal-shell .practice-catalogue .catalogue-categories button { flex:0 0 166px; scroll-snap-align:start; }
}
@media (max-width:700px) {
  .portal-shell .practice-catalogue .catalogue-heading h1 { font-size:32px; }
  .portal-shell .practice-catalogue .catalogue-tabs { gap:20px; }
  .portal-shell .practice-catalogue .catalogue-tabs button span { display:none; }
  .portal-shell .practice-catalogue .catalogue-topline { min-height:0; }
  .portal-shell .practice-catalogue .catalogue-stat { padding:0 15px; }
  .portal-shell .practice-catalogue .catalogue-stat:first-child { flex-basis:100%; }
  .portal-shell .practice-catalogue .catalogue-stat:first-child strong { font-size:32px; }
  .portal-shell .practice-catalogue .catalogue-stat:nth-child(2) { padding-left:0; border-left:0; }
  .portal-shell .practice-catalogue .catalogue-stat:not(:first-child) strong { font-size:21px; }
}
@media (prefers-reduced-motion:reduce) {
  .portal-shell .practice-catalogue .catalogue-categories button { transition:none; }
}


/* Stronger editorial hierarchy for the category choices only. */
.portal-shell .practice-catalogue .catalogue-categories button,
.portal-shell .practice-catalogue .catalogue-categories button[aria-pressed="true"] {
  position:relative; min-height:115px; padding:17px 18px 15px;
  border-color:#3a4755; border-radius:11px;
  background:linear-gradient(150deg,#141d27 0%,#0b1118 76%);
}
.portal-shell .practice-catalogue .catalogue-categories button[aria-pressed="true"] {
  background:linear-gradient(150deg,#1c2936 0%,#121c26 80%);
  border-color:#b5c4d3; box-shadow:0 8px 28px #0000002b,inset 0 0 0 1px #ffffff15;
}
.portal-shell .practice-catalogue .catalogue-categories button:hover {
  background:linear-gradient(150deg,#202e3a 0%,#121b25 78%);
  border-color:#8b9eaf; box-shadow:0 8px 28px #00000035;
}
.portal-shell .practice-catalogue .catalogue-categories .category-title {
  display:flex; align-items:flex-start; justify-content:space-between; width:100%;
  font-size:16px; font-weight:680; letter-spacing:-.035em; color:#edf3f8;
}
.portal-shell .practice-catalogue .catalogue-categories .category-title::after {
  content:'↗'; font-size:17px; line-height:1; font-weight:400;
  color:#8c9cac; transition:transform .18s,color .18s;
}
.portal-shell .practice-catalogue .catalogue-categories button:hover .category-title::after {
  color:#e6eef7; transform:translate(2px,-2px);
}
.portal-shell .practice-catalogue .catalogue-categories .category-total {
  display:flex; align-items:baseline; gap:8px; color:#d9e3ec; white-space:nowrap;
}
.portal-shell .practice-catalogue .catalogue-categories .category-total strong {
  font-size:26px; line-height:1; font-weight:630; letter-spacing:-.065em;
  font-variant-numeric:tabular-nums; color:#e9f0f8;
}
.portal-shell .practice-catalogue .catalogue-categories .category-total small {
  color:#aebdcb; text-transform:uppercase; letter-spacing:.105em;
  font-size:10px; font-weight:560;
}
.portal-shell .practice-catalogue .catalogue-categories button[aria-pressed="true"] .category-total strong,
.portal-shell .practice-catalogue .catalogue-categories button[aria-pressed="true"] .category-total small { color:#f3f8fd; }
.portal-shell .practice-catalogue .catalogue-categories button:first-child .category-title { color:#edf3f8; }
/* Number typography and a shared baseline for the catalogue summary and category counts. */
.portal-shell .practice-catalogue .catalogue-metrics {
  align-items:end;
  gap:0;
}
.portal-shell .practice-catalogue .catalogue-stat {
  box-sizing:border-box;
  min-height:68px;
  justify-content:flex-end;
  gap:8px;
  padding-left:30px;
  padding-right:30px;
}
.portal-shell .practice-catalogue .catalogue-stat:first-child {
  padding-left:0;
  min-width:205px;
}
.portal-shell .practice-catalogue .catalogue-stat strong,
.portal-shell .practice-catalogue .catalogue-stat:first-child strong {
  font-family:Manrope,Inter,system-ui,sans-serif;
  font-feature-settings:"tnum" 1,"lnum" 1;
  font-variant-numeric:tabular-nums lining-nums;
  font-weight:720;
  font-size:34px;
  line-height:40px;
  letter-spacing:-.045em;
  white-space:nowrap;
}
.portal-shell .practice-catalogue .catalogue-stat:first-child strong { font-size:40px; }
.portal-shell .practice-catalogue .catalogue-stat small {
  line-height:16px;
  font-size:11px;
  letter-spacing:.005em;
}
.portal-shell .practice-catalogue .catalogue-categories .category-total {
  display:flex;
  align-items:baseline;
  gap:9px;
  min-height:32px;
  line-height:1;
}
.portal-shell .practice-catalogue .catalogue-categories .category-total strong {
  font-family:Manrope,Inter,system-ui,sans-serif;
  font-feature-settings:"tnum" 1,"lnum" 1;
  font-variant-numeric:tabular-nums lining-nums;
  font-weight:720;
  font-size:27px;
  letter-spacing:-.045em;
  line-height:32px;
  min-width:2ch;
  text-align:left;
}
.portal-shell .practice-catalogue .catalogue-categories .category-total small {
  line-height:14px;
  vertical-align:baseline;
}
.portal-shell .practice-catalogue .catalogue-categories .category-title::after { content:'\2197'; }
@media (max-width:700px) {
  .portal-shell .practice-catalogue .catalogue-stat { min-height:58px; padding-left:15px; padding-right:15px; }
  .portal-shell .practice-catalogue .catalogue-stat:first-child { min-width:0; }
  .portal-shell .practice-catalogue .catalogue-stat strong,
  .portal-shell .practice-catalogue .catalogue-stat:first-child strong { font-size:26px; line-height:32px; }
  .portal-shell .practice-catalogue .catalogue-stat:first-child strong { font-size:32px; }
}

/* Chapter count typography within the existing thumbnail. */
.portal-shell .practice-catalogue .chapter-art .chapter-count {
  display:flex; flex-direction:column; align-items:flex-end; justify-content:center; gap:5px;
  top:16px; right:16px; min-width:105px; padding:0; border:0; border-radius:0;
  background:transparent; box-shadow:none; text-align:right; white-space:nowrap;
}
.portal-shell .practice-catalogue .chapter-art .chapter-count strong {
  font-family:Manrope,Inter,system-ui,sans-serif; font-feature-settings:"tnum" 1,"lnum" 1;
  font-variant-numeric:tabular-nums lining-nums; font-size:29px; line-height:32px;
  font-weight:680; letter-spacing:-.045em; color:#f5f8fc; text-shadow:0 1px 10px #0009;
}
.portal-shell .practice-catalogue .chapter-art .chapter-count small {
  font-family:Inter,system-ui,sans-serif; font-size:10px; line-height:12px;
  font-weight:620; text-transform:uppercase; letter-spacing:.11em;
  color:#bcc9d7; text-shadow:0 1px 8px #000b;
}
@media (max-width:700px) {
  .portal-shell .practice-catalogue .chapter-art .chapter-count { min-width:94px; }
  .portal-shell .practice-catalogue .chapter-art .chapter-count strong { font-size:25px; line-height:27px; }
}

/* Source: portal-cosmos.css */
/* 99 Percentiler — natural atmosphere, strictly behind the portal content. */
.portal-shell > .portal-cosmos {
  display: block;
  position: fixed;
  inset: 0;
  z-index: -1;
  overflow: hidden;
  contain: strict;
  pointer-events: none;
  user-select: none;
  background: #020304;
}
.portal-cosmos > canvas,
.portal-cosmos > video {
  display: block;
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  pointer-events: none;
}
.portal-cosmos .portal-aurora-fallback {
  opacity: .9;
  filter: blur(3px);
}
.portal-cosmos .portal-aurora-canvas { opacity: 0; }
.portal-cosmos .portal-aurora-video { object-fit: fill; background: #020304; }
.portal-cosmos.has-aurora .portal-aurora-canvas { opacity: 1; }
.portal-cosmos.has-aurora .portal-aurora-fallback,
.portal-cosmos.has-aurora .portal-aurora-video { display: none; }
.portal-cosmos .portal-star-canvas {
  opacity: .88;
  -webkit-mask-image: linear-gradient(to bottom, transparent, #000 21%, #000 100%);
  mask-image: linear-gradient(to bottom, transparent, #000 21%, #000 100%);
}
@media (max-width: 759px) {
  .portal-cosmos .portal-star-canvas { opacity: .72; }
}
@media (prefers-reduced-motion: reduce) {
  .portal-cosmos > canvas { transition: none; }
}
@media (forced-colors: active), print {
  .portal-shell > .portal-cosmos { display: none; }
}

/* Source: test-interface-choice.css */
/* Interface setup owns its viewport; removing it restores the normal portal. */
html:has(.prepared-test), body:has(.prepared-test) { overflow:clip; }
.portal-shell:has(.prepared-test) { height:100vh; height:100dvh; min-height:0; overflow:clip; }
.portal-shell:has(.prepared-test) > .app-body { display:grid; grid-template-rows:auto minmax(0,1fr); height:100%; min-height:0; }
#workspace-main:has(> .prepared-test) {
  display:grid; place-items:center; width:100%; max-width:none; height:100%; min-height:0; min-width:0; margin:0;
  padding:clamp(12px,2.8dvh,28px) clamp(16px,3vw,40px);
  padding-bottom:max(12px,min(2.8dvh,28px),env(safe-area-inset-bottom)); overflow:clip;
}
.prepared-test { display:grid; grid-template-rows:44px auto auto minmax(0,1fr) auto; gap:clamp(10px,2dvh,18px); width:min(100%,880px); height:min(100%,650px); min-width:0; min-height:0; color:#f3f5f8; }
.prepared-test-topline { display:flex; align-items:center; justify-content:space-between; gap:12px; min-width:0; }
.prepared-test .back-link { display:inline-flex; align-items:center; gap:9px; min-height:44px; margin:0; padding:0 2px; color:#bac1cc; font:550 13px/1.3 Inter,system-ui,sans-serif; text-decoration:none; }
.prepared-test .back-link:hover { color:#fff; }
.prepared-test-step { color:#909aa7; font:550 10px/1.4 Inter,system-ui,sans-serif; letter-spacing:.13em; text-transform:uppercase; white-space:nowrap; }
.prepared-test-heading { min-width:0; margin:0; }
.prepared-test .prepared-test-heading h1 { margin:0; color:#f5f7fa; font:650 clamp(24px,2.7vw,34px)/1.15 Inter,system-ui,sans-serif; letter-spacing:-.04em; }
.prepared-test-context { display:flex; align-items:center; flex-wrap:wrap; gap:7px 10px; margin:10px 0 0; font:450 14px/1.4 Inter,system-ui,sans-serif; }
.prepared-test-topic { min-width:0; overflow-wrap:anywhere; color:#c9d0d9; }
.prepared-test-level { padding:3px 8px; border:1px solid #ffffff1c; border-radius:5px; background:#ffffff05; color:#b8c0cb; font-size:10px; font-weight:550; white-space:nowrap; }
.prepared-test .prepared-test-summary { display:grid; gap:8px; padding:13px 0; margin:0; border:0; border-block:1px solid #ffffff16; border-radius:0; background:none; box-shadow:none; }
.prepared-test-facts { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:16px; margin:0; }
.prepared-test-facts > div { min-width:0; }
.prepared-test-facts > div + div { padding-left:20px; border-left:1px solid #ffffff16; }
.prepared-test-facts strong { display:block; color:#f2f4f8; font:600 23px/1.1 Inter,system-ui,sans-serif; letter-spacing:-.03em; font-variant-numeric:tabular-nums; }
.prepared-test-facts strong small { font-size:12px; font-weight:450; letter-spacing:0; }
.prepared-test-facts .prepared-test-untimed { font-size:16px; line-height:1.4; }
.prepared-test-facts span { display:block; margin-top:5px; color:#98a3b1; font:450 11px/1.3 Inter,system-ui,sans-serif; }
.portal-shell .prepared-test .bh-difficulty-badges { margin:0; gap:6px; }
.portal-shell .prepared-test .bh-difficulty-badge { padding:3px 7px; font-size:10px; }
.prepared-test .test-interface-choice { position:relative; width:100%; max-width:none; height:100%; min-width:0; min-height:0; margin:0; padding:0; border:0; }
.test-interface-choice > legend { position:absolute; width:1px; height:1px; padding:0; margin:-1px; overflow:hidden; clip-path:inset(50%); white-space:nowrap; }
.test-interface-choice .interface-choice-options { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:18px; height:100%; min-height:0; }
.test-interface-choice .interface-choice-option { display:block; position:relative; min-width:0; min-height:0; cursor:pointer; -webkit-tap-highlight-color:transparent; }
.test-interface-choice .interface-choice-option > input { position:absolute; width:1px; height:1px; margin:0; opacity:0; }
.test-interface-choice .interface-choice-card {
  display:grid; grid-template-rows:minmax(0,1fr) auto; gap:10px; position:relative; width:100%; height:100%; min-width:0; min-height:0;
  padding:18px 24px 21px; border:1px solid #343a44; border-radius:16px;
  background:radial-gradient(ellipse at 50% 25%,#dce6fa09,transparent 70%),linear-gradient(155deg,#14171c,#090c10);
  box-shadow:inset 0 1px 0 #ffffff08; transition:border-color .16s ease,background-color .16s ease;
}
.test-interface-choice .interface-choice-character { display:block; width:100%; height:100%; max-width:210px; max-height:210px; min-width:0; min-height:0; align-self:center; justify-self:center; object-fit:contain; user-select:none; pointer-events:none; }
.test-interface-choice .interface-choice-copy { display:block; min-width:0; text-align:left; }
.test-interface-choice .interface-choice-copy > strong { display:block; color:#f3f5f8; font:650 23px/1.2 Inter,system-ui,sans-serif; letter-spacing:-.035em; white-space:nowrap; }
.test-interface-choice .interface-choice-copy > small { display:block; margin-top:5px; color:#a7b0bd; font:450 12px/1.4 Inter,system-ui,sans-serif; }
.test-interface-choice .interface-choice-check { display:grid; position:absolute; top:15px; right:15px; place-items:center; width:21px; height:21px; border:1px solid #5a626e; border-radius:50%; color:transparent; font:750 12px/1 Inter,system-ui,sans-serif; }
.test-interface-choice .interface-choice-option:hover .interface-choice-card { border-color:#919ba9; }
.test-interface-choice input:checked + .interface-choice-card { border-color:#e1e6ed; background:radial-gradient(ellipse at 50% 25%,#dce6fa0d,transparent 70%),linear-gradient(155deg,#1c2027,#0c0f14); box-shadow:inset 0 0 0 1px #ffffff18; }
.test-interface-choice input:checked + .interface-choice-card .interface-choice-check { background:#e8edf4; border-color:#e8edf4; color:#171b22; }
.test-interface-choice input:focus-visible + .interface-choice-card { outline:3px solid #fff; outline-offset:3px; }
.test-interface-choice input:disabled + .interface-choice-card { opacity:.6; cursor:wait; }
.prepared-test-footer { display:flex; align-items:center; justify-content:space-between; gap:12px; margin:0; }
.prepared-test-footer p { margin:0; color:#a6afbb; font:450 12px/1.4 Inter,system-ui,sans-serif; }
.portal-shell .prepared-test-footer .btn { display:inline-flex; align-items:center; justify-content:center; gap:28px; min-height:48px; min-width:180px; padding:12px 24px; border:1px solid #dfe4eb; border-radius:9px; background:linear-gradient(115deg,#f1f4f8,#bfc6d0); color:#10141a; box-shadow:inset 0 1px 0 #fff9; font:650 13px/1.3 Inter,system-ui,sans-serif; text-shadow:none; }
.portal-shell .prepared-test-footer .btn:hover { background:#f5f7fa; transform:none; }
@media (max-width:700px) {
  #workspace-main:has(> .prepared-test) { padding:10px 16px max(12px,env(safe-area-inset-bottom)); }
  .prepared-test { height:min(100%,590px); gap:12px; }
  .prepared-test .prepared-test-heading h1 { font-size:clamp(23px,6.3vw,29px); }
  .prepared-test-context { margin-top:8px; font-size:13px; gap:6px 8px; }
  .prepared-test .prepared-test-summary { padding-block:11px; }
  .prepared-test-facts { gap:8px; }
  .prepared-test-facts > div + div { padding-left:14px; }
  .prepared-test-facts strong { font-size:21px; }
  .test-interface-choice .interface-choice-options { gap:12px; }
  .test-interface-choice .interface-choice-card { padding:15px 15px 17px; gap:10px; border-radius:13px; }
  .test-interface-choice .interface-choice-character { max-width:170px; max-height:170px; }
  .test-interface-choice .interface-choice-copy > strong { font-size:20px; }
  .test-interface-choice .interface-choice-copy > small { font-size:11px; }
  .test-interface-choice .interface-choice-check { top:11px; right:11px; width:19px; height:19px; }
}
@media (max-width:440px) {
  .prepared-test { gap:10px; }
  .prepared-test-facts strong { font-size:20px; }
  .prepared-test-facts span { font-size:10px; }
  .test-interface-choice .interface-choice-card { padding:13px 12px 15px; gap:8px; }
  .test-interface-choice .interface-choice-character { max-height:145px; }
  .test-interface-choice .interface-choice-copy > strong { font-size:18px; }
  .test-interface-choice .interface-choice-copy > small { min-height:2.8em; }
  .prepared-test-footer { flex-direction:column-reverse; align-items:stretch; gap:7px; }
  .prepared-test-footer p { font-size:10px; text-align:center; }
  .portal-shell .prepared-test-footer .btn { width:100%; min-height:46px; }
}
/* A short landscape screen uses width to preserve both complete choices. */
@media (max-height:520px) and (min-width:540px) {
  #workspace-main:has(> .prepared-test) { padding:8px 16px max(8px,env(safe-area-inset-bottom)); }
  .prepared-test { height:100%; grid-template-columns:minmax(180px,.85fr) minmax(0,1.5fr); grid-template-rows:44px minmax(0,1fr) auto; gap:8px 20px; }
  .prepared-test-topline { grid-column:1; grid-row:1; }
  .prepared-test-step { display:none; }
  .prepared-test-heading { grid-column:1; grid-row:2; align-self:center; }
  .prepared-test .prepared-test-heading h1 { font-size:21px; }
  .prepared-test-context { font-size:11px; margin-top:7px; gap:5px; }
  .prepared-test-level { font-size:9px; padding:2px 6px; }
  .prepared-test .prepared-test-summary { grid-column:1; grid-row:3; padding:7px 0; gap:4px; }
  .prepared-test-facts { gap:5px; }
  .prepared-test-facts > div + div { padding-left:7px; }
  .prepared-test-facts strong { font-size:18px; }
  .prepared-test-facts strong small { font-size:10px; }
  .prepared-test-facts .prepared-test-untimed { font-size:12px; }
  .prepared-test-facts span { font-size:9px; margin-top:3px; }
  .portal-shell .prepared-test .bh-difficulty-badges { gap:3px; }
  .portal-shell .prepared-test .bh-difficulty-badge { font-size:9px; padding:2px 4px; }
  .prepared-test .test-interface-choice { grid-column:2; grid-row:1 / 3; }
  .test-interface-choice .interface-choice-options { gap:10px; }
  .test-interface-choice .interface-choice-card { padding:10px 12px 12px; gap:5px; }
  .test-interface-choice .interface-choice-character { max-height:145px; }
  .test-interface-choice .interface-choice-copy > strong { font-size:18px; }
  .test-interface-choice .interface-choice-copy > small { font-size:10px; margin-top:3px; }
  .prepared-test-footer { grid-column:2; grid-row:3; }
  .prepared-test-footer p { display:none; }
  .portal-shell .prepared-test-footer .btn { width:100%; min-height:44px; padding-block:10px; }
}
@media (max-height:520px) and (max-width:539px) {
  #workspace-main:has(> .prepared-test) { padding-block:6px; }
  .prepared-test { gap:6px; }
  .prepared-test .prepared-test-heading h1 { font-size:22px; }
  .prepared-test-context { margin-top:5px; font-size:11px; gap:4px 6px; }
  .prepared-test .prepared-test-summary { padding-block:7px; }
  .test-interface-choice .interface-choice-card { padding:10px; gap:5px; }
  .test-interface-choice .interface-choice-copy > strong { font-size:16px; }
  .test-interface-choice .interface-choice-copy > small { display:none; }
  .prepared-test-footer p { display:none; }
}
@media (prefers-reduced-motion:reduce) { .test-interface-choice .interface-choice-card { transition:none; } }
@media (forced-colors:active) {
  .test-interface-choice .interface-choice-card { border-color:ButtonText; }
  .test-interface-choice input:checked + .interface-choice-card { outline:2px solid Highlight; outline-offset:-3px; }
  .test-interface-choice input:checked + .interface-choice-card .interface-choice-check { background:Highlight; color:HighlightText; forced-color-adjust:none; }
  .portal-shell .prepared-test-footer .btn { background:ButtonFace; color:ButtonText; border-color:ButtonText; }
}


/* Source: performance-analysis-v2.css */
/* Black / graphite / silver. Scoped to the analysis report only. */
#analysis-root{--line:#ffffff10;color:#e7e9eb;background:#0b0c0e;border:1px solid #ffffff0b;border-radius:14px;padding:30px;min-width:0}
#analysis-root .page-heading{margin:26px 0 27px;align-items:center}#analysis-root .page-heading h1{font-size:32px;font-weight:600;letter-spacing:-.055em;color:#f0f2f3}#analysis-root .page-heading p{font-size:12px;color:#92999f;margin-top:9px}#analysis-root .back-link{color:#92999f;font-size:11px}#analysis-root .eyebrow{color:#838c93;font-size:9px;letter-spacing:.13em}
#analysis-root .btn,#analysis-root .text-link{color:#d8dde0;border-color:#ffffff20;background:#ffffff04;box-shadow:none}#analysis-root .btn:hover{background:#ffffff0c;border-color:#ffffff38}#analysis-root .btn.primary{background:#d8dde0;color:#161a1c;border-color:#d8dde0}
#analysis-root .report-scoreboard{display:grid;grid-template-columns:1.35fr repeat(3,1fr);padding:27px 0;border-top:1px solid #ffffff17;border-bottom:1px solid #ffffff17;margin-bottom:27px}
#analysis-root .report-net,#analysis-root .report-stat{padding:0 25px;border-left:1px solid var(--line);min-width:0}#analysis-root .report-net{border:0;padding-left:0}#analysis-root .report-kicker,#analysis-root .report-stat>span{font-size:8px;font-weight:600;letter-spacing:.15em;color:#889198;line-height:1.6}
#analysis-root .report-net>div{display:flex;gap:9px;align-items:baseline;margin:10px 0 7px}#analysis-root .report-net>div>strong{font-size:56px;font-weight:550;letter-spacing:-.07em;line-height:1;color:#f2f4f5;font-variant-numeric:tabular-nums}#analysis-root .report-net>div>span{font-size:20px;color:#6e7880;font-weight:400}
#analysis-root .report-net p,#analysis-root .report-stat p{font-size:10px;color:#818990;line-height:1.7;margin:0}#analysis-root .report-net p i{padding:0 5px;font-style:normal;color:#4a5259}#analysis-root .report-stat{display:flex;flex-direction:column;justify-content:center}#analysis-root .report-stat>strong{font-size:30px;font-weight:500;letter-spacing:-.04em;font-variant-numeric:tabular-nums;color:#e4e8eb;line-height:1.3;margin:10px 0 6px}#analysis-root .report-stat>strong>small{font-size:16px;color:#66717a;font-weight:400}
#analysis-root .analysis-tabs{display:flex;gap:24px;border-bottom:1px solid #ffffff12;padding:0;margin:0 0 27px;overflow:auto}#analysis-root .analysis-tabs button{flex:none;padding:0 0 14px;border:0;border-radius:0;border-bottom:2px solid transparent;box-shadow:none;background:none;color:#858f97;font-size:11px;font-weight:500}#analysis-root .analysis-tabs button.active{border-bottom-color:#d7dde1;color:#edf0f2;background:none}#analysis-root .analysis-tabs button:hover{color:#edf0f2;background:none}
#analysis-root .report-dashboard{display:flex;flex-direction:column;gap:20px}#analysis-root .report-two-up{display:grid;grid-template-columns:1fr 1fr;gap:20px;min-width:0}#analysis-root .report-panel{background:linear-gradient(145deg,#141619,#101214);border:1px solid #ffffff0f;border-radius:11px;padding:25px;min-width:0}
#analysis-root .panel-heading{display:flex;align-items:start;justify-content:space-between;gap:12px;margin-bottom:24px}#analysis-root .panel-heading h2{font-size:17px;line-height:1.4;font-weight:500;letter-spacing:-.035em;color:#e4e8eb;margin:7px 0 0}#analysis-root .panel-tag{white-space:nowrap;border:1px solid #ffffff10;border-radius:5px;padding:4px 7px;color:#9aa3aa;font-size:8px;font-weight:400}
#analysis-root .response-composition{display:flex;gap:28px;align-items:center;padding:3px 0 24px}#analysis-root .response-ring{position:relative;width:142px;height:142px;flex:none}#analysis-root .response-ring>svg{width:100%;height:100%;transform:rotate(-90deg)}#analysis-root .ring-correct{stroke:#d4dadd}#analysis-root .ring-incorrect{stroke:#858e95}#analysis-root .ring-skipped{stroke:#353b40}
#analysis-root .response-ring>div{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;flex-direction:column;gap:4px}#analysis-root .response-ring strong{font-size:26px;letter-spacing:-.04em;font-weight:500;font-variant-numeric:tabular-nums}#analysis-root .response-ring>div>span{font-size:9px;color:#899198}
#analysis-root .response-legend{display:flex;flex-direction:column;gap:19px;flex:1}#analysis-root .response-legend>div{display:flex;align-items:center;justify-content:space-between;gap:15px}#analysis-root .response-legend>div>span,#analysis-root .allocation-rows>div>span{display:flex;align-items:center;gap:8px;font-size:11px;color:#a1a8ae}#analysis-root .response-legend strong{font-size:15px;font-weight:500;font-variant-numeric:tabular-nums;color:#e4e9ec}#analysis-root .response-legend small{font-size:10px;font-weight:400;color:#6b737b}
#analysis-root :is(.response-legend,.allocation-rows,.chart-legend) i{display:inline-block;width:6px;height:6px;border-radius:1px;flex:none}#analysis-root .legend-correct,#analysis-root .allocation-correct{background:#d4dadd}#analysis-root .legend-incorrect,#analysis-root .allocation-incorrect{background:repeating-linear-gradient(135deg,#7e8992 0 2px,#525d66 2px 4px)}#analysis-root .legend-skipped,#analysis-root .allocation-skipped{background:#353b40}
#analysis-root .score-equation{display:flex;justify-content:space-between;align-items:center;padding-top:19px;border-top:1px solid #ffffff0d}#analysis-root .score-equation>span{font-size:20px;font-weight:500;color:#d9dfe3;font-variant-numeric:tabular-nums}#analysis-root .score-equation small{display:block;font-size:8px;font-weight:400;color:#7a8188;margin-top:5px;letter-spacing:.03em}#analysis-root .score-equation>b{font-weight:300;color:#626a72;font-size:16px}
#analysis-root .time-total{display:flex;align-items:baseline;gap:12px;margin:16px 0 22px}#analysis-root .time-total>strong{font-size:35px;font-weight:500;letter-spacing:-.045em;font-variant-numeric:tabular-nums}#analysis-root .time-total>span{font-size:9px;color:#899198}#analysis-root .allocation-bar{display:flex;height:7px;border-radius:2px;overflow:hidden;gap:3px;margin-bottom:24px;background:#252b30}#analysis-root .allocation-bar>i{display:block;height:100%}
#analysis-root .allocation-rows{display:flex;flex-direction:column;gap:19px}#analysis-root .allocation-rows>div{display:grid;grid-template-columns:1fr auto 34px;align-items:center;gap:14px}#analysis-root .allocation-rows strong{font-size:12px;font-weight:500;color:#d4dce1;font-variant-numeric:tabular-nums}#analysis-root .allocation-rows small{font-size:9px;color:#7a8188;text-align:right}
#analysis-root .timing-unavailable{display:flex;min-height:228px;flex-direction:column;align-items:start;justify-content:center}#analysis-root .timing-unavailable>span{font-size:40px;color:#626a72;font-weight:300}#analysis-root .timing-unavailable h3{font-size:13px;color:#c7cfd5;font-weight:500;margin:12px 0 8px}#analysis-root .timing-unavailable p{font-size:11px;color:#899198;line-height:1.9;max-width:280px}
#analysis-root .chart-hint{font-size:9px;color:#899198;margin-top:5px}#analysis-root .chart-legend{display:flex;align-items:center;flex-wrap:wrap;gap:18px;margin-bottom:25px}#analysis-root .chart-legend>span{display:flex;align-items:center;gap:7px;color:#999fa6;font-size:9px}#analysis-root .chart-legend>small{margin-left:auto;color:#7a8188;font-size:9px}#analysis-root .question-profile-scroll{overflow-x:auto;scrollbar-width:thin;scrollbar-color:#454c52 transparent}
#analysis-root .question-signals{display:grid;grid-template-columns:repeat(var(--question-count),minmax(28px,1fr));gap:12px;min-height:169px;padding:0 1px}#analysis-root .question-signal{display:flex;flex-direction:column;align-items:center;gap:10px;border:0;background:transparent;padding:0 4px;min-width:0;cursor:pointer;color:#c8d2d8;border-radius:4px}#analysis-root .signal-value{font-size:10px;color:#b4c0c8;font-variant-numeric:tabular-nums}#analysis-root .signal-track{display:flex;align-items:end;height:117px;min-height:117px;width:100%;max-width:52px;background:repeating-linear-gradient(to top,#ffffff07 0 1px,transparent 1px 29px);border-bottom:1px solid #ffffff17}
#analysis-root .signal-track>i{display:block;width:100%;border-radius:3px 3px 0 0;background:#d4dadd;min-height:7px}#analysis-root .question-signal.incorrect .signal-track>i{background:repeating-linear-gradient(135deg,#7e8992 0 3px,#59656e 3px 6px)}#analysis-root .question-signal.skipped .signal-track>i{background:#353b40}#analysis-root .signal-number{font-size:9px;color:#7a8188;font-variant-numeric:tabular-nums}#analysis-root .question-signal:hover .signal-track>i{filter:brightness(1.25)}#analysis-root button:focus-visible{outline:2px solid #d4dadd;outline-offset:4px}
#analysis-root .report-table-scroll{overflow:auto}#analysis-root .topic-report-table{width:100%;border-collapse:collapse;text-align:left}#analysis-root .topic-report-table th{font-size:8px;letter-spacing:.1em;font-weight:500;color:#7a8188;padding:0 10px 14px 0;border-bottom:1px solid #ffffff10;white-space:nowrap}#analysis-root .topic-report-table td{padding:17px 12px 17px 0;border-bottom:1px solid #ffffff09;font-size:12px;color:#b8c0c6;vertical-align:middle}#analysis-root .topic-report-table td:first-child{width:54%}#analysis-root .topic-report-table td>strong{display:block;font-size:11px;font-weight:500;color:#c6d0d7}#analysis-root .topic-report-table td small{font-size:9px;color:#899198;line-height:1.7}#analysis-root .accuracy-track{height:2px;background:#293239;margin-top:9px;width:66px}#analysis-root .accuracy-track>i{display:block;height:100%;background:#c8d2d9}#analysis-root .report-footnote{font-size:9px;color:#7a8188;line-height:1.8;margin:15px 0 0}
#analysis-root .review-priority{display:flex;align-items:start;gap:12px;padding:18px 0;border:0;border-bottom:1px solid #ffffff0c;background:none;text-align:left;width:100%;color:#cdd8df}#analysis-root button.review-priority:hover strong{color:#fff}#analysis-root .priority-index{font-size:9px;color:#7a8188;margin-top:2px;flex:none}#analysis-root .review-priority>span:nth-child(2){flex:1;min-width:0}#analysis-root .review-priority strong{display:block;font-size:12px;font-weight:500;line-height:1.6}#analysis-root .review-priority small{display:block;color:#899198;font-size:10px;line-height:1.8;margin-top:6px}#analysis-root .review-priority>b{font-size:14px;font-weight:400;color:#899198}
#analysis-root .review-facts{display:grid;grid-template-columns:1fr 1fr;gap:18px;margin:20px 0}#analysis-root .review-facts>span{font-size:9px;color:#899198}#analysis-root .review-facts strong{display:block;font-size:18px;color:#c4d2dc;font-weight:500;margin-top:8px;font-variant-numeric:tabular-nums}#analysis-root .report-review-all{width:100%;display:flex;justify-content:space-between;padding:12px 14px;border:1px solid #ffffff20;border-radius:6px;background:#ffffff06;color:#d5e0e7;font-size:10px;font-weight:500}#analysis-root .report-review-all:hover{background:#ffffff10}#analysis-root .report-methodology{font-size:9px;line-height:1.9;color:#7a8188;margin:0}
#analysis-root .card{background:#111315;border-color:#ffffff12;border-radius:10px;color:#c7d1d8;box-shadow:none}#analysis-root .card :is(h2,h3){color:#d9e1e6}#analysis-root .card p{color:#999fa6}#analysis-root :is(.review-question-list button,.solution-options>div,.numeric-review>div){background:#171a1e;border-color:#ffffff12;color:#c2d0da}#analysis-root .review-question-list button.active{background:#242b30;border-color:#8e9da6}#analysis-root .question-status.correct,#analysis-root .answer-status.correct{background:#232b2d;color:#dae6e3;border-color:#4b5c56}#analysis-root .question-status.incorrect,#analysis-root .answer-status.incorrect{background:#29282b;color:#dedbdd;border-color:#615d65}#analysis-root :is(select,input){background:#171a1e;color:#c8d6df;border-color:#ffffff20}#analysis-root .topic-meter i{background:#becad2}
@media(max-width:1100px){#analysis-root{padding:24px}#analysis-root .report-net,#analysis-root .report-stat{padding-inline:16px}#analysis-root .report-net{padding-left:0}#analysis-root .report-panel{padding:20px}#analysis-root .response-composition{gap:15px}#analysis-root .response-ring{width:116px;height:116px}}
@media(max-width:850px){#analysis-root .report-two-up{grid-template-columns:1fr}#analysis-root .report-scoreboard{grid-template-columns:1fr 1fr;row-gap:24px}#analysis-root .report-stat:nth-child(3){border-left:0;padding-left:0}#analysis-root .report-net>div>strong{font-size:47px}#analysis-root .response-composition{gap:30px}#analysis-root .response-ring{width:140px;height:140px}}
@media(max-width:480px){#analysis-root{padding:18px 14px;border-radius:10px}#analysis-root .page-heading h1{font-size:27px}#analysis-root .report-two-up{gap:14px}#analysis-root .report-dashboard{gap:14px}#analysis-root .report-panel{padding:19px 16px}#analysis-root .report-stat>strong{font-size:25px}#analysis-root .report-net>div>strong{font-size:42px}#analysis-root .report-stat p{font-size:9px}#analysis-root .response-ring{width:115px;height:115px}#analysis-root .response-composition{gap:20px}#analysis-root .response-legend{gap:16px}#analysis-root .analysis-tabs{gap:18px}#analysis-root .chart-hint{display:none}#analysis-root .chart-legend{gap:13px}#analysis-root .chart-legend>small{margin-left:0;width:100%}#analysis-root .question-signals{gap:7px}#analysis-root .panel-heading{margin-bottom:20px}}
#analysis-root .data-table{background:transparent;color:#c5cbd0;font-size:11px}#analysis-root .data-table th{background:#17191c;color:#949da4;font-size:9px;border-color:#ffffff10;font-weight:500}#analysis-root .data-table td{background:transparent;color:#bcc5cc;border-color:#ffffff0b;padding-block:17px}#analysis-root .data-table td strong{color:#d6dce1}#analysis-root .data-table tbody tr:hover{background:#ffffff03}#analysis-root .card+.card{margin-top:20px}#analysis-root .status-pill{background:#23272b;color:#c1c9cf;border:1px solid #ffffff15}#analysis-root .status-pill.correct{background:#2b3134;color:#e1e6e9;border-color:#6b757d}#analysis-root .status-pill.incorrect{background:#212427;color:#a7b0b7;border-style:dashed}#analysis-root .solution-options>div.right{background:#242b2e;border-color:#8b999f;color:#e3eaee}#analysis-root .solution-options>div.wrong{background:#222428;border-color:#73767e;border-style:dashed;color:#c1c7ce}#analysis-root .solution-options>div small{color:#a6b1b8}#analysis-root .explanation{background:#17191c;border:1px solid #ffffff10;border-radius:8px;padding:22px;color:#c7ced4}#analysis-root .explanation p{color:#b2bcc4;line-height:1.9}#analysis-root .answer-status.correct,#analysis-root .answer-status.incorrect{background:#22272b;border-color:#5f6a72;color:#d5dde2}
#analysis-root .question-status.skipped{background:#24272b;color:#a4adb4;border-color:#454c52}#analysis-root :is(.section-token,.bank-level,.source-tag,.level-badge){background:#23272b;border-color:#ffffff14;color:#aeb9c1}#analysis-root .review-question-list button>span:last-child{color:#aeb9c1}

/* Source: chapter-detail-silver-blend.css */
/* Approved chapter setup treatment: diffused silver fades into black.
   Scoped to the detail view; sky, sidebar, catalogue and test player stay intact. */
.portal-shell .practice-catalogue.topic-detail,
.practice-catalogue.topic-detail {
  color:#f5f6f7;
}
.practice-catalogue.topic-detail .topic-back { color:#c4cbd2; margin-bottom:20px; font-size:13px; }
.practice-catalogue.topic-detail .topic-back:hover { color:#fff; }
.practice-catalogue.topic-detail .topic-hero {
  grid-template-columns:116px minmax(0,1fr);
  min-height:168px;
  gap:28px;
  padding:25px 32px;
  border-radius:15px;
  border:1px solid #4d545b;
  background:linear-gradient(180deg,#4d5054 0%,#34393e 17%,#20262b 41%,#0e1318 71%,#050709 100%);
  box-shadow:none;
}
.practice-catalogue.topic-detail .topic-hero-art {
  width:116px;height:116px;
  background:#101821;
  border:1px solid #3d4a56;
  border-radius:13px;
}
.practice-catalogue.topic-detail .topic-hero-art svg {width:104px;height:82px}
.practice-catalogue.topic-detail .topic-hero-copy .eyebrow {
  color:#c2c9d0;font-size:11px;font-weight:700;letter-spacing:.12em;
}
.practice-catalogue.topic-detail .topic-hero-copy h1 {
  color:#f8f9fa;font-size:clamp(30px,3vw,44px);
  line-height:1.15;letter-spacing:-.045em;
}
.practice-catalogue.topic-detail .topic-hero-copy p {
  color:#c3cbd2;font-size:14px;line-height:1.6;max-width:67ch;
}
.practice-catalogue.topic-detail .topic-choice-stage {
  display:grid;
  grid-template-columns:minmax(0,1fr) minmax(0,1fr);
  margin-top:22px;
  border:1px solid #41484e;
  border-radius:15px;
  overflow:hidden;
  background:linear-gradient(180deg,#45494d 0%,#30353a 17%,#171d22 42%,#0b1014 70%,#050709 100%);
  box-shadow:none;
}
.practice-catalogue.topic-detail .topic-choice-stage > section {
  min-width:0;
  padding:31px 33px 28px;
}
.practice-catalogue.topic-detail .topic-difficulty-section {
  display:flex;flex-direction:column;justify-content:space-between;
  border-right:1px solid #475158;
}
.practice-catalogue.topic-detail .topic-difficulty-section > .topic-group-heading {
  margin:0 0 31px;
}
.practice-catalogue.topic-detail .topic-stage-eyebrow,
.practice-catalogue.topic-detail .topic-session-heading > span {
  display:block;color:#c5cdd5;font-size:10px;font-weight:750;
  letter-spacing:.15em;text-transform:uppercase;margin-bottom:9px;
}
.practice-catalogue.topic-detail .topic-difficulty-section h2,
.practice-catalogue.topic-detail .topic-session-heading h2 {
  color:#f8f9fb;font:700 clamp(21px,2vw,27px)/1.23 Manrope,Inter,sans-serif;
  letter-spacing:-.045em;margin:0;
}
.practice-catalogue.topic-detail .topic-difficulty-section > .topic-group-heading p {
  color:#c2cbd2;font-size:13px;margin-top:9px;line-height:1.5;
}
.practice-catalogue.topic-detail .topic-difficulty-section > div:last-child {
  max-width:460px!important;width:100%;
  margin:0 auto 0;
}
.practice-catalogue.topic-detail .mega-difficulty {
  --difficulty-orange:#19c5c4;
  --difficulty-ember:#148d9b;
  width:100%;min-width:0;max-width:460px;
  border:1px solid #405966;
  background:linear-gradient(180deg,#121b22,#0c1116);
  box-shadow:none;
}
.practice-catalogue.topic-detail .mega-difficulty > label { color:#b8c6cf; }
.practice-catalogue.topic-detail .mega-difficulty #practice-difficulty-value { color:#66eeee; }
.practice-catalogue.topic-detail .mega-range-track {
  border-color:#25565b;
  background:linear-gradient(180deg,#174149,#10292f);
}
.practice-catalogue.topic-detail .mega-difficulty[data-level] .mega-range-fill {
  background:linear-gradient(100deg,#148c99 0%,#1bb9c2 56%,#30e1d5 100%);
  box-shadow:inset 0 1px 0 #b1ffff70,0 0 14px #24d5ce40;
}
.practice-catalogue.topic-detail .mega-range-ticks i,
.practice-catalogue.topic-detail .mega-difficulty[data-level="1"] .mega-range-ticks i:first-child,
.practice-catalogue.topic-detail .mega-difficulty[data-level="2"] .mega-range-ticks i {background:#bcffff}
.practice-catalogue.topic-detail .mega-range-spark > i::before {
  background:linear-gradient(90deg,transparent,#bbffff50,#eaffffaa);
  box-shadow:5px 0 8px #5ff5ec77;
}
.practice-catalogue.topic-detail .mega-range-spark > i::after {background:#d8ffff}
.practice-catalogue.topic-detail .mega-range-thumb {
  border-color:#9afff8;
  background:linear-gradient(145deg,#b9ffff,#4aebe1 55%,#16b7bc);
  box-shadow:inset 0 1px 0 #fff9,0 0 0 3px #01232955,0 3px 9px #0009;
}
.practice-catalogue.topic-detail .mega-range-thumb > i {background:#10333a}
.practice-catalogue.topic-detail .mega-range:has(input:focus-visible) {outline-color:#5df4ed}
.practice-catalogue.topic-detail .mega-range:has(input:hover) .mega-range-thumb,
.practice-catalogue.topic-detail .mega-range:has(input:focus-visible) .mega-range-thumb {
  box-shadow:inset 0 1px 0 #fffa,0 0 0 4px #26ddd544,0 3px 11px #000a;
}
.practice-catalogue.topic-detail .mega-difficulty .mega-range-labels .text-link {color:#b6c5cc}
.practice-catalogue.topic-detail .mega-difficulty .mega-range-labels .text-link:hover {color:#edffff}
.practice-catalogue.topic-detail .mega-difficulty .mega-range-labels [aria-pressed="true"] {
  color:#b2ffff;background:#21c6c31b;border-color:#62e9e866;
}
.practice-catalogue.topic-detail #chapter-selected-panel {min-width:0}
.practice-catalogue.topic-detail .topic-session-heading {margin:0 0 23px}
.practice-catalogue.topic-detail .topic-detail-stats {
  grid-template-columns:1.1fr .95fr 1.2fr;
  padding:0 0 26px;
  margin:0 0 23px;
  border-bottom:1px solid #465058;
}
.practice-catalogue.topic-detail .topic-detail-stats > div {
  min-width:0;padding:0 13px;border-color:#455058;
}
.practice-catalogue.topic-detail .topic-detail-stats > div:first-child {padding-left:0}
.practice-catalogue.topic-detail .topic-detail-stats > div:last-child {padding-right:0}
.practice-catalogue.topic-detail .topic-detail-stats > div > span {
  color:#c1cbd3;font-size:11px;line-height:1.45;margin:0;
}
.practice-catalogue.topic-detail .topic-detail-stats strong {
  color:#f7f9fa;font-size:clamp(22px,2.5vw,38px);
  line-height:1.25;font-weight:740;letter-spacing:-.045em;
  margin-top:9px;font-variant-numeric:tabular-nums;
}
.practice-catalogue.topic-detail .topic-detail-stats strong[style] {
  font-size:clamp(18px,1.85vw,24px)!important;letter-spacing:-.045em;
  margin-top:15px;white-space:normal;
}
.practice-catalogue.topic-detail .topic-detail-stats > div > small {
  color:#b8c3cc;font-size:10px;line-height:1.45;margin-top:1px;
}
.practice-catalogue.topic-detail .topic-hero-actions {
  flex-direction:row-reverse;align-items:flex-end;justify-content:space-between;gap:18px;
}
.practice-catalogue.topic-detail .topic-hero-actions > span {
  max-width:200px;color:#c4cbd0;text-align:left;font-size:11px;line-height:1.55;
}
.practice-catalogue.topic-detail .topic-hero-actions .btn.primary {
  width:auto;min-width:178px;min-height:47px;padding:11px 19px;
  border:1px solid #dce5ee;border-radius:8px;
  color:#19212b;background:#e8eef4;box-shadow:none;
  font-size:13px;font-weight:700;
}
.practice-catalogue.topic-detail .topic-hero-actions .btn.primary:hover {
  color:#090f15;background:#fff;border-color:#fff;
}
.practice-catalogue.topic-detail .topic-format-note {
  margin:22px 0 0;padding:18px 2px;
  background:transparent;border:0;border-top:1px solid #394249;
  border-radius:0;color:#b6c1c9;font-size:11px;
}
.practice-catalogue.topic-detail .topic-format-note strong {
  color:#e4e9ee;font-size:12px;
}
@media (max-width:1180px) {
  .practice-catalogue.topic-detail .topic-choice-stage > section {padding:26px 24px}
  .practice-catalogue.topic-detail .topic-detail-stats > div {padding:0 9px}
}
@media (max-width:830px) {
  .practice-catalogue.topic-detail .topic-choice-stage {grid-template-columns:1fr}
  .practice-catalogue.topic-detail .topic-difficulty-section {border-right:0;border-bottom:1px solid #465058;gap:25px}
  .practice-catalogue.topic-detail .topic-difficulty-section > div:last-child {margin:0;max-width:460px}
  .practice-catalogue.topic-detail .topic-choice-stage > section {padding:26px 24px}
  .practice-catalogue.topic-detail .topic-hero {grid-template-columns:85px 1fr;gap:18px;padding:22px}
  .practice-catalogue.topic-detail .topic-hero-art {width:85px;height:85px}
  .practice-catalogue.topic-detail .topic-hero-art svg {width:79px;height:63px}
}
@media (max-width:470px) {
  .practice-catalogue.topic-detail .topic-hero {grid-template-columns:1fr}
  .practice-catalogue.topic-detail .topic-detail-stats {gap:8px;grid-template-columns:1fr 1fr 1fr}
  .practice-catalogue.topic-detail .topic-detail-stats strong[style] {font-size:16px!important;white-space:normal;margin-top:13px}
  .practice-catalogue.topic-detail .topic-hero-actions {align-items:stretch;flex-direction:column}
  .practice-catalogue.topic-detail .topic-hero-actions .btn.primary {width:100%}
  .practice-catalogue.topic-detail .topic-hero-actions > span {max-width:none}
}


/* Compact chapter setup. Desktop keeps the existing presentation and controls. */
.practice-catalogue.topic-detail .topic-mobile-preview,
.practice-catalogue.topic-detail .topic-mobile-details {
  display: none;
}

@media (max-width: 767px) {
  .portal-shell .workspace-main:has(.practice-catalogue.topic-detail) {
    padding: 12px 16px 28px;
  }

  .practice-catalogue.topic-detail {
    --topic-mobile-line: rgb(174 205 216 / 17%);
    --topic-mobile-muted: #a9b8c3;
    --topic-mobile-accent: #8cf3e7;
    min-width: 0;
  }

  .practice-catalogue.topic-detail .topic-back {
    min-height: 44px;
    margin: 0 0 8px;
    padding: 0;
    color: #bdc8d0;
    font-size: .8125rem;
    line-height: 1.4;
  }

  .practice-catalogue.topic-detail .topic-back:hover {
    color: #f5fbff;
  }

  .practice-catalogue.topic-detail .topic-hero {
    display: grid;
    grid-template-columns: 96px minmax(0, 1fr);
    align-items: center;
    gap: 14px;
    min-height: 0;
    margin: 0;
    padding: 0 0 4px;
    border: 0;
    border-radius: 0;
    background: transparent;
    box-shadow: none;
  }

  .practice-catalogue.topic-detail .topic-hero-art {
    width: 96px;
    height: 96px;
    min-width: 0;
    border: 1px solid var(--topic-mobile-line);
    border-radius: 13px;
    background: #101821;
  }

  .practice-catalogue.topic-detail .topic-hero-art svg {
    display: block;
    width: 90px;
    height: auto;
    aspect-ratio: 10 / 7;
    max-width: 100%;
  }

  .practice-catalogue.topic-detail .topic-hero-copy {
    min-width: 0;
  }

  .practice-catalogue.topic-detail .topic-hero-copy .eyebrow {
    display: block;
    margin: 0 0 5px;
    color: var(--topic-mobile-muted);
    font-size: .75rem;
    font-weight: 500;
    line-height: 1.4;
    letter-spacing: .015em;
    text-transform: none;
    overflow-wrap: anywhere;
  }

  .practice-catalogue.topic-detail .topic-hero-copy h1 {
    margin: 0;
    color: #f4f8fa;
    font-size: 1.4375rem;
    font-weight: 650;
    line-height: 1.25;
    letter-spacing: -.035em;
    white-space: normal;
    overflow-wrap: anywhere;
  }

  .practice-catalogue.topic-detail .topic-hero-copy p,
  .practice-catalogue.topic-detail .topic-difficulty-section > .topic-group-heading,
  .practice-catalogue.topic-detail .topic-session-heading,
  .practice-catalogue.topic-detail .topic-detail-stats,
  .practice-catalogue.topic-detail .topic-format-note {
    display: none;
  }

  .practice-catalogue.topic-detail .topic-choice-stage {
    display: grid;
    grid-template-columns: minmax(0, 1fr);
    gap: 16px;
    margin: 16px 0 0;
    padding: 16px;
    border: 1px solid var(--topic-mobile-line);
    border-radius: 18px;
    overflow: visible;
    background: #10171c;
    box-shadow: 0 8px 28px rgb(0 0 0 / 14%);
  }

  .practice-catalogue.topic-detail .topic-choice-stage > section {
    min-width: 0;
    margin: 0;
    padding: 0;
    border: 0;
  }

  .practice-catalogue.topic-detail .topic-difficulty-section {
    display: block;
  }

  .practice-catalogue.topic-detail .topic-difficulty-section > div:last-child {
    width: 100%;
    max-width: none !important;
    margin: 0;
  }

  .practice-catalogue.topic-detail .mega-difficulty {
    display: block;
    width: 100%;
    min-width: 0;
    max-width: none;
    margin: 0;
    padding: 0;
    border: 0;
    border-radius: 0;
    background: transparent;
    box-shadow: none;
  }

  .practice-catalogue.topic-detail .mega-difficulty > label {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    margin: 0 0 3px;
    color: #d5e0e6;
    font-size: .8125rem;
    font-weight: 550;
    line-height: 1.4;
  }

  .practice-catalogue.topic-detail .mega-difficulty > label > span {
    color: inherit;
    letter-spacing: 0;
    text-transform: none;
  }

  .practice-catalogue.topic-detail .mega-difficulty > .mega-range {
    display: block;
    height: 44px;
    margin: 0 0 4px;
  }

  .practice-catalogue.topic-detail .mega-difficulty #practice-difficulty-value {
    display: inline;
    font-size: .8125rem;
  }

  .practice-catalogue.topic-detail .mega-difficulty > .mega-range-labels {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    align-items: stretch;
    gap: 6px;
    margin: 0;
    padding: 0;
  }

  .practice-catalogue.topic-detail .mega-difficulty .mega-range-labels .text-link {
    min-width: 0;
    min-height: 44px;
    margin: 0;
    padding: 10px 5px;
    border: 1px solid var(--topic-mobile-line);
    border-radius: 10px;
    color: #bdcbd5;
    background: #141e25;
    font-size: .875rem;
    font-weight: 550;
    line-height: 1.4;
    white-space: normal;
    overflow-wrap: anywhere;
    -webkit-tap-highlight-color: transparent;
  }

  .practice-catalogue.topic-detail .mega-difficulty .mega-range-labels .text-link:hover {
    color: #ecfafa;
    border-color: #638284;
    background: #1a2b30;
  }

  .practice-catalogue.topic-detail .mega-difficulty .mega-range-labels .text-link[aria-pressed="true"] {
    color: #b8fff5;
    border-color: #4e9f96;
    background: #1b3938;
    font-weight: 650;
  }

  .practice-catalogue.topic-detail .topic-mobile-preview {
    display: block;
    min-width: 0;
    margin: 0;
    padding: 15px 0 0;
    border-top: 1px solid var(--topic-mobile-line);
  }

  .practice-catalogue.topic-detail .topic-mobile-preview-label {
    display: block;
    margin: 0 0 6px;
    color: var(--topic-mobile-muted);
    font-size: .75rem;
    font-weight: 500;
    line-height: 1.4;
  }

  .practice-catalogue.topic-detail .topic-mobile-preview-row {
    display: flex;
    align-items: baseline;
    justify-content: space-between;
    flex-wrap: wrap;
    gap: 6px 14px;
    min-width: 0;
  }

  .practice-catalogue.topic-detail .topic-mobile-preview-value {
    display: block;
    min-width: 0;
    color: #edf6fa;
    font-size: 1.25rem;
    font-weight: 650;
    line-height: 1.4;
    letter-spacing: -.025em;
    font-variant-numeric: tabular-nums;
    overflow-wrap: anywhere;
  }

  .practice-catalogue.topic-detail .topic-mobile-preview-time {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    min-width: 0;
    max-width: 100%;
    color: #d1e3e8;
    font-size: 1.125rem;
    font-weight: 550;
    line-height: 1.4;
    letter-spacing: -.015em;
    font-variant-numeric: tabular-nums;
  }

  .practice-catalogue.topic-detail .topic-mobile-preview-time > svg {
    flex: 0 0 16px;
    width: 16px;
    height: 16px;
    color: var(--topic-mobile-muted);
  }

  .practice-catalogue.topic-detail .topic-mobile-preview-time > span {
    min-width: 0;
    overflow-wrap: anywhere;
  }

  .practice-catalogue.topic-detail .topic-mobile-preview-meta {
    display: block;
    margin: 7px 0 0;
    color: #bdcbd3;
    font-size: .8125rem;
    line-height: 1.55;
    overflow-wrap: anywhere;
  }

  .practice-catalogue.topic-detail .topic-hero-actions {
    display: flex;
    flex-direction: column;
    align-items: stretch;
    min-width: 0;
    gap: 0;
    margin: 16px 0 0;
  }

  .practice-catalogue.topic-detail .topic-hero-actions > span {
    display: none;
  }

  .practice-catalogue.topic-detail .topic-hero-actions .btn.primary {
    width: 100%;
    min-width: 0;
    min-height: 48px;
    padding: 12px 16px;
    border: 1px solid #b6fff2;
    border-radius: 11px;
    color: #082b2b;
    background: #a4f4e7;
    box-shadow: none;
    font-size: .9375rem;
    font-weight: 700;
    line-height: 1.45;
    white-space: normal;
    overflow-wrap: anywhere;
  }

  .practice-catalogue.topic-detail .topic-hero-actions .btn.primary:hover {
    color: #062322;
    border-color: #d0fff7;
    background: #c0fff2;
  }

  .practice-catalogue.topic-detail .topic-hero-actions .btn.primary:disabled {
    opacity: .5;
    cursor: not-allowed;
  }

  .practice-catalogue.topic-detail .topic-mobile-details {
    display: block;
    min-width: 0;
    margin: 8px 0 0;
    color: var(--topic-mobile-muted);
    font-size: .875rem;
    line-height: 1.6;
  }

  .practice-catalogue.topic-detail .topic-mobile-details > summary {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    min-height: 44px;
    margin: 0;
    padding: 10px 0;
    border-radius: 5px;
    color: #b4c4ce;
    font-size: .8125rem;
    font-weight: 500;
    line-height: 1.5;
    list-style: none;
    cursor: pointer;
    -webkit-tap-highlight-color: transparent;
  }

  .practice-catalogue.topic-detail .topic-mobile-details > summary::-webkit-details-marker {
    display: none;
  }

  .practice-catalogue.topic-detail .topic-mobile-details > summary > svg {
    flex: 0 0 16px;
    width: 16px;
    height: 16px;
  }

  .practice-catalogue.topic-detail .topic-mobile-details[open] > summary > svg {
    transform: rotate(90deg);
  }

  .practice-catalogue.topic-detail .topic-mobile-details-body {
    display: grid;
    gap: 11px;
    min-width: 0;
    padding: 13px 0 2px;
    border-top: 1px solid var(--topic-mobile-line);
    color: #b8c7d0;
    font-size: .875rem;
    line-height: 1.6;
    overflow-wrap: anywhere;
  }

  .practice-catalogue.topic-detail .topic-mobile-details-body p,
  .practice-catalogue.topic-detail .topic-mobile-inventory {
    margin: 0;
  }

  .practice-catalogue.topic-detail .topic-mobile-inventory {
    display: grid;
    gap: 7px;
  }

  .practice-catalogue.topic-detail .topic-mobile-inventory > div {
    display: flex;
    align-items: baseline;
    justify-content: space-between;
    flex-wrap: wrap;
    gap: 2px 12px;
    min-width: 0;
  }

  .practice-catalogue.topic-detail .topic-mobile-inventory dt {
    min-width: 0;
    margin: 0;
  }

  .practice-catalogue.topic-detail .topic-mobile-inventory dd {
    max-width: 100%;
    margin: 0;
    color: #eef5f8;
    font-weight: 650;
    font-variant-numeric: tabular-nums;
  }

  .practice-catalogue.topic-detail :is(.topic-back, .topic-mobile-details > summary):focus-visible,
  .practice-catalogue.topic-detail .mega-difficulty .mega-range-labels .text-link:focus-visible,
  .practice-catalogue.topic-detail .topic-hero-actions .btn.primary:focus-visible {
    outline: 2px solid var(--topic-mobile-accent);
    outline-offset: 3px;
  }
}

.practice-catalogue.topic-detail .topic-prepare-status {
  margin:12px 0 0;padding:10px 12px;border:1px solid #40565b;border-radius:8px;
  background:#143033;color:#c9efeb;font-size:13px;line-height:1.5;overflow-wrap:anywhere;
}
.practice-catalogue.topic-detail .topic-prepare-status[hidden] {display:none}
.practice-catalogue.topic-detail .topic-prepare-status[data-state="error"] {
  background:#301d23;border-color:#70404c;color:#ffced8;
}
.practice-catalogue.topic-detail [data-mega-topic][aria-busy="true"] {cursor:progress;opacity:.8}

/* Source: rich-content.css */
.rich-table-wrap{display:block;max-width:100%;overflow:auto;margin:1.2em 0}.rich-content-table{width:100%;border-collapse:collapse;font-size:16px;line-height:1.5;font-weight:400;font-variant-numeric:tabular-nums}.rich-content-table caption{caption-side:top;text-align:left;font-weight:600;padding:0 0 .6em}.rich-content-table th,.rich-content-table td{border:1px solid var(--line,#717c85);padding:.7em .85em;text-align:center;vertical-align:middle}.rich-content-table th{font-weight:600;background:color-mix(in srgb,currentColor 5%,transparent)}.rich-content-table tbody th{text-align:left}.review-question-text{font-size:20px;line-height:1.7;font-weight:500;margin:20px 0}.review-question-text p{margin:0}.explanation .rich-content-table{font-size:16px}

/* Keep mixed prose, inline maths and figures in normal reading flow. */
.review-question-header > .review-question-text{display:block;min-width:0}

/* Source: analytics-chapters.css */
/* Identical Saved Questions chapter card foundation. */

.saved-chapters{--catalogue-orange:#eb813f;--catalogue-muted:#b6b9bf;display:flex;flex-direction:column;gap:30px;margin-top:22px;}
.saved-chapters .saved-section{margin:0}
.saved-chapters .saved-group-heading{padding:0 1px 15px;border-bottom:1px solid rgba(232,235,239,.11);margin-bottom:18px;align-items:end}
.saved-chapters .saved-section-kicker{display:block;color:#ed955c;font-size:10px;letter-spacing:.12em;font-weight:800;margin-bottom:7px}
.saved-chapters .saved-group-heading h2{font-size:21px;color:#fff;font-weight:700;line-height:1.3}
.saved-chapters .saved-group-heading>span{font-size:12px;color:#afb6c3}
.saved-chapters .chapter-card{background:linear-gradient(160deg,#151820,#11141c);border:1px solid rgba(222,230,243,.19);border-radius:15px;box-shadow:0 7px 22px #0101022d;overflow:hidden}
.saved-chapters .chapter-card:hover{border-color:rgba(237,143,82,.7);box-shadow:0 12px 35px #0005;transform:translateY(-2px)}
.saved-chapters .chapter-card:focus-within{outline:2px solid #e68846;outline-offset:3px}
.saved-chapters .chapter-art{background:radial-gradient(ellipse at 32% 20%,rgba(240,139,61,.16),transparent 60%),linear-gradient(120deg,#242936,#161b26);border-bottom:1px solid #ffffff14;min-height:112px;color:#d9dee8}
.saved-chapters .art-accent{stroke:#ff9b5a}
.saved-chapters .art-fill{fill:rgba(247,133,57,.17)}
.saved-chapters .chapter-count{background:rgba(15,18,25,.82);border:1px solid #c4b8a340;color:#ece4d9;display:flex;align-items:baseline;gap:4px}
.saved-chapters .chapter-count strong{color:#ffad73;font-size:14px}
.saved-chapters .chapter-body h3,.saved-chapters .chapter-body h3 a{color:#fff}
.saved-chapters .chapter-body h3 a:hover{color:#ffad73}
.saved-chapters .chapter-description{color:#bdc2cb;min-height:42px}
.saved-chapters .saved-chapter-date{font-size:11px;color:#b9c0cf;line-height:1.65;margin:0 0 8px}
.saved-chapters .chapter-actions{margin-top:auto;border-color:rgba(255,255,255,.11)}
.saved-chapters .chapter-explore{color:#f6b78c;font-size:12px}
.saved-chapters .chapter-explore:hover{color:#fff}
.saved-chapters .chapter-actions .btn.primary{background:#e88343;border-color:#e88343;color:#19100c;border-radius:9px}
.saved-chapters .chapter-actions .btn.primary:hover{background:#ffab72;border-color:#ffab72}
.saved-chapters .chapter-grid{grid-template-columns:repeat(3,minmax(0,1fr))}
.saved-chapters .saved-back-link{align-self:start;color:#ffa66c;font-size:13px;text-decoration:none}
.saved-chapters .saved-back-link:hover{text-decoration:underline}
.saved-chapters .saved-detail-head{border-bottom:1px solid #ffffff25;padding:3px 0 18px}
.saved-chapters .saved-detail-head>span{color:#ffa66c;font-size:11px;letter-spacing:.09em;font-weight:700}
.saved-chapters .saved-detail-head h2{color:#fff;font-size:27px;margin:6px 0;letter-spacing:-.03em}
.saved-chapters .saved-detail-head p{color:#b8bdca;font-size:13px}
.saved-chapters .saved-question-list{display:grid;gap:13px}
.saved-chapters .saved-question-row{display:flex;align-items:center;gap:16px;background:linear-gradient(135deg,#181c25,#11141b);border:1px solid #ffffff23;border-radius:13px;padding:18px 20px}
.saved-chapters .saved-question-index{display:grid;place-items:center;color:#f1ab75;background:#ed8b4521;border:1px solid #ec94514d;width:33px;height:33px;border-radius:8px;flex-shrink:0;font-size:12px;font-weight:700}
.saved-chapters .saved-question-copy{flex:1;min-width:0}
.saved-chapters .saved-question-copy p{font-size:14px;color:#f3f4f5;line-height:1.7;white-space:normal;overflow-wrap:anywhere;margin:0 0 6px}
.saved-chapters .saved-question-copy small{color:#aeb9c6;font-size:12px}
.saved-chapters .saved-question-actions{display:flex;align-items:center;gap:12px;flex-shrink:0}
.saved-chapters .saved-question-actions .btn{border:1px solid #ec955c77;background:#e9894917;color:#ffc096;text-decoration:none}
.saved-chapters .saved-question-actions .btn:hover{background:#e989493d}
.saved-chapters :is(a,button):focus-visible{outline:2px solid #efa36c;outline-offset:3px}
@media(max-width:1080px){.saved-chapters .chapter-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:690px){.saved-chapters .chapter-grid{grid-template-columns:minmax(0,1fr)}.saved-chapters .saved-group-heading{align-items:start;flex-direction:column;gap:5px}.saved-chapters .saved-question-row{align-items:start;flex-wrap:wrap;padding:15px}.saved-chapters .saved-question-actions{width:100%;justify-content:flex-end}.saved-chapters .saved-question-copy{min-width:calc(100% - 60px)}}

/* Chapter analytics shares the exact illustration/cards used by Saved Questions. */
.analytics-chapter-overview{margin:32px 0 30px}
.analytics-chapter-title{display:flex;justify-content:space-between;align-items:end;gap:20px;margin-bottom:6px;padding-bottom:18px;border-bottom:1px solid #ffffff24}
.analytics-chapter-title .eyebrow{font-size:10px;font-weight:800;letter-spacing:.13em;color:#f4a16f}
.analytics-chapter-title h2{font-size:25px;line-height:1.25;letter-spacing:-.045em;color:#fff;margin:8px 0 6px;font-weight:700}
.analytics-chapter-title p{color:#b4bdc9;font-size:13px;line-height:1.65;margin:0;max-width:680px}
.analytics-chapter-total{flex:none;color:#c4c6ce;font-size:12px;white-space:nowrap}
.analytics-chapters .saved-group-heading h3{font-size:21px;color:#fff;line-height:1.3;font-weight:700;letter-spacing:-.03em}
.analytics-chapters .chapter-body{display:flex;flex-direction:column}
.analytics-chapters .chapter-description{min-height:44px}
.analytics-chapters .analytics-chapter-facts{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin:4px 0 15px}
.analytics-chapters .analytics-chapter-facts>div{background:#ffffff07;padding:11px 12px;border:1px solid #ffffff12;border-radius:9px;min-width:0}
.analytics-chapters .analytics-chapter-facts strong{display:block;font-size:22px;color:#f5f4f2;letter-spacing:-.045em;font-weight:750;line-height:1.3;font-variant-numeric:tabular-nums}
.analytics-chapters .analytics-chapter-facts small{display:block;font-size:10px;line-height:1.4;color:#bec2ce;margin-top:3px}
.analytics-chapters .analytics-chapter-meter{height:5px;background:#343845;border-radius:99px;overflow:hidden;margin-bottom:10px}
.analytics-chapters .analytics-chapter-meter i{display:block;height:100%;background:linear-gradient(90deg,#e77631,#ffae75);border-radius:inherit}
.analytics-chapters .analytics-chapter-meter.is-unavailable{background:#ffffff16}
.analytics-chapters .chapter-card{min-height:355px}
.analytics-chapters .saved-chapter-date{margin-top:auto;padding-bottom:2px}
.analytics-chapters .chapter-actions .btn.primary{min-width:73px;text-align:center}
.analytics-chapter-detail .analytics-detail-hero{display:flex;align-items:center;gap:24px;padding:18px 0 20px;border-bottom:1px solid #ffffff25}
.analytics-chapter-detail .analytics-detail-art{display:flex;align-items:center;justify-content:center;flex:0 0 118px;height:105px;border-radius:16px;background:radial-gradient(ellipse at 30% 20%,#ed913236,transparent 65%),#1c2330;border:1px solid #ffffff1e;color:#e2e7ed}
.analytics-chapter-detail .analytics-detail-art svg{width:105px;height:80px}
.analytics-chapter-detail .analytics-detail-art .art-accent{stroke:#ffac77}
.analytics-chapter-detail .analytics-detail-hero h2{font-size:27px;letter-spacing:-.045em;color:#fff;margin:5px 0}
.analytics-chapter-detail .analytics-detail-hero p{font-size:13px;color:#b9c1cd;line-height:1.65;max-width:650px}
.analytics-chapter-detail .analytics-detail-metrics{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:11px}
.analytics-chapter-detail .analytics-detail-metrics>div{background:linear-gradient(140deg,#1e232e,#151922);border:1px solid #ffffff1e;border-radius:12px;padding:18px 16px;min-width:0}
.analytics-chapter-detail .analytics-detail-metrics small{display:block;font-size:10px;letter-spacing:.09em;font-weight:700;color:#e29a69}
.analytics-chapter-detail .analytics-detail-metrics strong{display:block;font-size:29px;font-weight:720;color:#fff;line-height:1.4;letter-spacing:-.05em;font-variant-numeric:tabular-nums}
.analytics-chapter-detail .analytics-detail-metrics span{font-size:10px;color:#bdc5d0;line-height:1.55}
.analytics-chapter-detail .analytics-detail-note{font-size:12px;line-height:1.7;color:#b4c2ce;background:#ffffff07;border-left:2px solid #db8e54;padding:11px 15px}
.analytics-chapter-detail .analytics-list-heading{display:flex;justify-content:space-between;gap:15px;align-items:baseline;margin-bottom:15px}
.analytics-chapter-detail .analytics-list-heading h3{color:#fff;font-size:20px;letter-spacing:-.03em}
.analytics-chapter-detail .analytics-list-heading span{font-size:11px;color:#adb7c4}
.analytics-chapter-detail .analytics-chapter-test-list{display:flex;flex-direction:column;gap:12px}
.analytics-chapter-detail .analytics-test-row{display:flex;align-items:center;gap:15px;min-width:0;background:linear-gradient(145deg,#1c202a,#131720);border-radius:12px;border:1px solid #ffffff1c;padding:18px 20px}
.analytics-chapter-detail .analytics-test-number{border-radius:9px;display:grid;place-items:center;flex:none;width:34px;height:34px;color:#f3a873;background:#ef934320;font-size:12px;font-weight:800}
.analytics-chapter-detail .analytics-test-copy{flex:1;min-width:0}
.analytics-chapter-detail .analytics-test-copy h4{font-size:14px;color:#f6f6f8;font-weight:650;margin:0 0 6px}
.analytics-chapter-detail .analytics-test-copy p{font-size:12px;color:#c4c9d2;line-height:1.65;margin:0 0 3px}
.analytics-chapter-detail .analytics-test-copy small{font-size:11px;color:#ffa879;line-height:1.65}
.analytics-chapter-detail .analytics-test-row .btn{display:inline-flex;flex:none;white-space:nowrap;border:1px solid #ee9c5d8f;color:#ffd0a2;background:#f1844020;border-radius:9px;min-height:37px}
.analytics-chapter-detail .analytics-test-row .btn:hover{background:#ec955a30}
.analytics-chapter-detail :is(a,button):focus-visible,.analytics-chapter-overview :is(a,button):focus-visible{outline:2px solid #ffac75;outline-offset:3px}
@media(max-width:1020px){.analytics-chapter-detail .analytics-detail-metrics{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:700px){.analytics-chapter-title{align-items:start;flex-direction:column}.analytics-chapter-total{white-space:normal}.analytics-chapter-detail .analytics-detail-hero{align-items:start;flex-direction:column}.analytics-chapter-detail .analytics-detail-metrics{grid-template-columns:repeat(2,minmax(0,1fr))}.analytics-chapter-detail .analytics-test-row{align-items:start;flex-wrap:wrap;padding:15px}.analytics-chapter-detail .analytics-test-copy{min-width:calc(100% - 55px)}.analytics-chapter-detail .analytics-test-row .btn{width:100%;justify-content:center}}
@media(max-width:390px){.analytics-chapter-detail .analytics-detail-metrics{grid-template-columns:minmax(0,1fr)}}

/* Source: chapter-performance.css */

/* Chapter trends UI — scoped to the student dashboard, 99 Percentiler */
#workspace-main:has(.cp-workspace){padding:35px 39px 48px}
.cp-workspace{--cp-orange:#ff9256;--cp-teal:#51ccbf;--cp-bg:#080b0f;--cp-ink:#f4f5f8;--cp-muted:#a1a9b5;--cp-stroke:#292e37;max-width:1390px;margin:0 auto;color:var(--cp-ink);font-family:Inter,system-ui,sans-serif;font-size:13px}
.cp-workspace *{box-sizing:border-box}
.cp-header{display:flex;justify-content:space-between;align-items:flex-end;gap:22px;margin-bottom:20px}
.cp-kicker{font-size:10px;letter-spacing:.17em;font-weight:790;color:#b7bcc6;margin-bottom:12px}
.cp-header h1{margin:0;color:#f8f9fb;font-size:clamp(30px,2.5vw,38px);font-weight:760;letter-spacing:-.05em;line-height:1.15}
.cp-header p{margin:10px 0 0;color:#aab1bc;font-size:13px;line-height:1.5}
.cp-start{display:flex;align-items:center;justify-content:space-between;gap:28px;min-height:45px;padding:0 17px 0 19px;background:linear-gradient(105deg,#34383e 0%,#15191f 42%,#090c10 100%);border:1px solid #515761;border-radius:11px;text-decoration:none;color:#f9fafb;font-size:12px;font-weight:720;white-space:nowrap;box-shadow:inset 0 1px #ffffff22,0 8px 18px #0005;transition:transform .16s,border-color .16s}
.cp-start:hover{color:#fff;border-color:#979da7;transform:translateY(-1px)}
.cp-start svg,.cp-analytics-link svg,.cp-foot a svg,.cp-empty a svg{width:17px;height:17px;color:#ffab79}
.cp-context{display:flex;align-items:center;gap:18px;margin-bottom:21px;color:#a3acbb;font-size:12px;letter-spacing:0}
.cp-context b{color:#e5e9ef;font-weight:800;font-variant-numeric:tabular-nums}
.cp-sep{height:13px;width:1px;background:#393f4b}
.cp-global-note{border:1px solid #51432f;background:#21180b;color:#f4be85;padding:9px 14px;border-radius:9px;margin:0 0 15px;font-size:12px}
.cp-card{background:linear-gradient(145deg,#101419 0%,#0a0d12 60%,#080a0e 100%);border:1px solid #303640;border-radius:18px;padding:25px 28px 23px;box-shadow:0 15px 38px #0005}
.cp-card-top{display:flex;align-items:flex-start;justify-content:space-between;gap:22px}
.cp-kicker.cp-soft{font-size:9px;color:#929ba9;margin-bottom:11px}
.cp-card-top h2{color:#f5f7f9;font-size:19px;font-weight:745;line-height:1.25;letter-spacing:-.034em;margin:0}
.cp-card-top p{font-size:12px;color:#a6afbb;margin:7px 0 0;line-height:1.5}
.cp-legend{display:flex;align-items:center;gap:17px;color:#aeb6c1;font-size:11px;flex-shrink:0;padding-top:15px}
.cp-legend span{display:flex;align-items:center;gap:7px}
.cp-legend i{display:inline-block;width:17px;height:3px;border-radius:8px}
.cp-score-key{background:var(--cp-orange);box-shadow:0 0 12px #ff925633}
.cp-accuracy-key{background:var(--cp-teal)}
.cp-controls{display:grid;grid-template-columns:minmax(110px,.6fr) minmax(185px,1.5fr) auto;gap:13px;align-items:end;margin:24px 0 0}
.cp-field,.cp-period-box{display:flex;flex-direction:column;gap:8px;min-width:0}
.cp-field>span,.cp-period-box>span{font-size:10px;font-weight:760;color:#98a4b1;letter-spacing:.07em;text-transform:uppercase}
.cp-field select{appearance:none;width:100%;height:43px;min-width:0;border-radius:10px;padding:0 33px 0 13px;border:1px solid #383f4b;background-color:#151b23;color:#f5f6f9;font-family:inherit;font-size:12px;font-weight:670;outline:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='14' height='14' viewBox='0 0 24 24' fill='none' stroke='%23afb8c3' stroke-width='2'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E");background-position:right 11px center;background-repeat:no-repeat}
.cp-field select:disabled{opacity:.6}
.cp-field select:focus-visible{border-color:#ff9256;box-shadow:0 0 0 3px #ff925622}
.cp-periods{display:flex;gap:3px;padding:4px;border:1px solid #333b46;border-radius:10px;background:#0c1015;min-height:43px;align-items:center}
.cp-periods button{font:700 11px Inter,system-ui,sans-serif;white-space:nowrap;border:0;cursor:pointer;background:transparent;color:#a5adba;border-radius:7px;padding:8px 11px;min-height:32px}
.cp-periods button:hover{color:#f4f4f6}
.cp-periods button[aria-pressed=true]{background:#343b44;color:#f5f7fa;box-shadow:inset 0 1px #ffffff15}
.cp-custom{display:flex;align-items:center;justify-content:flex-end;gap:14px;margin-top:14px;color:#c6cbd3;font-size:11px}
.cp-custom label{white-space:nowrap}.cp-custom strong{color:var(--cp-orange)}
.cp-custom input[type=range]{accent-color:#ff9256;width:190px;cursor:pointer}
.cp-chart-subheading{display:flex;justify-content:space-between;align-items:flex-end;gap:16px;margin:25px 0 7px}
.cp-chart-subheading>div{display:flex;flex-direction:column;gap:5px}
.cp-chart-subheading strong{font-size:14px;color:#f2f3f5;font-weight:740}
.cp-chart-subheading span{font-size:11px;color:#9ba5b2}
.cp-analytics-link{display:inline-flex;align-items:center;gap:7px;color:#e9a67e;text-decoration:none;font-weight:675;font-size:11px;white-space:nowrap}
.cp-analytics-link:hover{color:#ffc49c}
.cp-plot{position:relative;width:100%;min-height:255px}
.cp-plot>svg{width:100%;height:auto;max-height:330px;display:block;overflow:visible}
.cp-gridline{stroke:#292f38;stroke-width:1;stroke-dasharray:3 5;opacity:.9}
.cp-axis{font-size:11px;font-weight:550;fill:#929cab;font-family:Inter,system-ui,sans-serif}
.cp-score-line{fill:none;stroke:#ff9256;stroke-width:3;stroke-linejoin:round;stroke-linecap:round;vector-effect:non-scaling-stroke}
.cp-accuracy-line{fill:none;stroke:#51ccbf;stroke-width:2.3;stroke-linecap:round;stroke-linejoin:round;vector-effect:non-scaling-stroke;opacity:.93}
.cp-score-dot{fill:#101318;stroke:#ff9f68;stroke-width:2.5;cursor:help}
.cp-accuracy-dot{fill:#0d1516;stroke:#52d2c5;stroke-width:2;cursor:help}
.cp-score-dot:focus,.cp-accuracy-dot:focus{outline:none;fill:#ff9256;stroke:#fff}
.cp-tooltip{position:absolute;z-index:5;width:min(226px,calc(100% - 24px));padding:13px 15px;background:#20262f;border:1px solid #64717e;border-radius:12px;box-shadow:0 12px 35px #000b;font-size:11px;pointer-events:none;letter-spacing:0}
.cp-tooltip[hidden]{display:none}
.cp-tip-date{font-size:10px;color:#b4bec9;margin-bottom:8px}
.cp-tooltip>strong{display:block;font-size:13px;color:#f6f7fa;margin-bottom:11px;line-height:1.4}
.cp-tip-grid{display:grid;grid-template-columns:1fr auto;gap:8px 10px;font-size:10px;color:#b8c0c9}
.cp-tip-grid b{color:#fff;font-variant-numeric:tabular-nums;font-weight:720}
.cp-tip-breakdown{display:flex;gap:7px;flex-wrap:wrap;margin-top:12px;padding-top:11px;border-top:1px solid #3b424a;font-size:10px;color:#d5dbe3}
.cp-tip-warning{margin-top:10px;color:#c4a48d;font-size:10px}
.cp-chart-note{color:#a6b0bd;font-size:11px;margin:7px 0 18px;min-height:17px;line-height:1.4}
.cp-metrics{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;padding-top:19px;border-top:1px solid #2b323d}
.cp-metric{padding:10px 11px 9px;border:1px solid #2c333d;border-radius:11px;background:#10161d;min-width:0}
.cp-metric>span{display:block;font-size:10px;font-weight:620;color:#a9b2bf;line-height:1.35}
.cp-metric>strong{display:block;font-size:24px;font-weight:750;color:#f7f8f9;letter-spacing:-.055em;margin-top:9px;font-variant-numeric:tabular-nums;white-space:nowrap}
.cp-metric>small{display:block;font-size:10px;color:#95a1b0;margin-top:7px;min-height:16px}
.cp-foot{display:flex;align-items:center;justify-content:space-between;gap:17px;padding:19px 6px 0;color:#a5aebb;font-size:11px;line-height:1.5}
.cp-last{display:inline-block;max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.cp-last b{color:#cdd1d8;font-weight:760}.cp-last span{color:#8e98a5}
.cp-foot a{display:inline-flex;gap:6px;align-items:center;color:#eca578;text-decoration:none;font-weight:680;white-space:nowrap}
.cp-foot a:hover{color:#ffd2aa}
.cp-foot a svg{width:14px;height:14px}
.cp-loading,.cp-empty{display:flex;align-items:center;justify-content:center;gap:12px;flex-direction:column;text-align:center;min-height:250px;color:#a5afbb;font-size:12px}
.cp-empty strong{font-size:15px;color:#d9e0e9}
.cp-empty p{font-size:12px;color:#9da6b4;max-width:350px;line-height:1.6}
.cp-empty a{display:flex;gap:7px;align-items:center;color:#ffaf7b;text-decoration:none;font-weight:700}
.cp-loader{width:21px;height:21px;border:2px solid #424b56;border-top-color:#ff995f;border-radius:50%;animation:cp-spin .75s linear infinite}
@keyframes cp-spin{to{transform:rotate(360deg)}}
.cp-workspace button:focus-visible,.cp-workspace a:focus-visible,.cp-workspace input:focus-visible{outline:2px solid #ffa36c;outline-offset:3px}
@media(max-width:1170px){#workspace-main:has(.cp-workspace){padding:25px}.cp-controls{grid-template-columns:minmax(95px,.6fr) minmax(160px,1fr)}.cp-period-box{grid-column:1/-1}.cp-periods{justify-content:flex-start;width:max-content}}
@media(max-width:700px){#workspace-main:has(.cp-workspace){padding:21px 14px 40px}.cp-header{flex-direction:column;align-items:stretch;gap:16px}.cp-start{min-height:41px}.cp-context{gap:10px;flex-wrap:wrap}.cp-card{padding:18px 14px;border-radius:13px}.cp-card-top{flex-wrap:wrap;gap:9px}.cp-card-top h2{font-size:17px}.cp-legend{padding:0}.cp-controls{grid-template-columns:1fr;gap:12px;margin-top:20px}.cp-period-box{grid-column:1}.cp-periods{width:100%;overflow-x:auto;justify-content:space-between}.cp-periods button{padding:7px 10px}.cp-chart-subheading{margin-top:22px;align-items:flex-start}.cp-chart-subheading strong{font-size:12px}.cp-plot{min-height:180px}.cp-chart-note{margin:0 0 12px}.cp-metrics{grid-template-columns:repeat(2,minmax(0,1fr))}.cp-metric>strong{font-size:21px}.cp-foot{align-items:flex-start;flex-direction:column;gap:7px}.cp-last{white-space:normal}.cp-custom{justify-content:space-between}.cp-custom input[type=range]{max-width:60vw}}
@media(prefers-reduced-motion:reduce){.cp-loader{animation:none}.cp-workspace *{transition:none!important}}


.cp-retry{margin-left:8px;padding:3px 9px;border:1px solid #565461;border-radius:7px;color:#ffb08a;background:#18181c;cursor:pointer;font-size:11px;font-weight:680}.cp-retry:hover{border-color:#ff9256}.cp-axis-name{font-size:9px;letter-spacing:.075em;fill:#b1b9c4;font-weight:700}

/* Source: section-visibility.css */
/* 99P section visibility — 20261027. Presentation only; existing handlers stay intact. */
.portal-shell .practice-catalogue .catalogue-tabs[aria-label="Practice section"] {
  display: grid;
  grid-template-columns: repeat(3,minmax(0,1fr));
  align-items: stretch;
  gap: 12px;
  width: 100%;
  padding: 0;
  margin: 8px 0 18px;
  overflow: visible;
  border: 0;
  border-radius: 0;
  background: transparent;
  box-shadow: none;
}
.portal-shell .practice-catalogue .catalogue-tabs[aria-label="Practice section"] button,
.portal-shell .practice-catalogue .catalogue-tabs[aria-label="Practice section"] button:first-child {
  position: relative;
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  justify-content: center;
  gap: 7px;
  min-width: 0;
  min-height: 94px;
  width: 100%;
  padding: 18px 22px;
  border: 1px solid #3d4652;
  border-radius: 12px;
  color: #f7f9fc;
  background: linear-gradient(145deg,#191d24,#0c0f13);
  box-shadow: inset 0 1px 0 #ffffff0a;
  text-align: left;
  cursor: pointer;
  transition: background .16s ease,border-color .16s ease,box-shadow .16s ease;
}
.portal-shell .practice-catalogue .catalogue-tabs[aria-label="Practice section"] button strong {
  display: block;
  color: #f7f9fc;
  font-family: Manrope,Inter,system-ui,sans-serif;
  font-size: 24px;
  font-weight: 800;
  line-height: 1.15;
  letter-spacing: .025em;
}
.portal-shell .practice-catalogue .catalogue-tabs[aria-label="Practice section"] button span {
  display: block;
  color: #cbd3df;
  font-size: 14px;
  font-weight: 500;
  line-height: 1.4;
  white-space: normal;
  overflow-wrap: normal;
}
.portal-shell .practice-catalogue .catalogue-tabs[aria-label="Practice section"] button:hover {
  border-color: #8492a5;
  background: linear-gradient(145deg,#252b34,#11151b);
}
.portal-shell .practice-catalogue .catalogue-tabs[aria-label="Practice section"] button.active,
.portal-shell .practice-catalogue .catalogue-tabs[aria-label="Practice section"] button.active:first-child {
  border-color: #c1c9d4;
  background: linear-gradient(135deg,#373e48,#171c23 90%);
  box-shadow: inset 0 1px 0 #ffffff26,0 4px 14px #0003;
}
.portal-shell .practice-catalogue .catalogue-tabs[aria-label="Practice section"] button.active strong,
.portal-shell .practice-catalogue .catalogue-tabs[aria-label="Practice section"] button.active span {
  color: #fff;
}
.portal-shell .practice-catalogue .catalogue-tabs[aria-label="Practice section"] button.active::after,
.portal-shell .practice-catalogue .catalogue-tabs[aria-label="Practice section"] button.active:first-child::after {
  content: '';
  display: block;
  position: absolute;
  left: 20px;
  right: 20px;
  bottom: 0;
  height: 3px;
  border-radius: 3px 3px 0 0;
  background: #ff9559;
}
.portal-shell .practice-catalogue .catalogue-tabs[aria-label="Practice section"] button:focus-visible {
  outline: 2px solid #f4f7fc;
  outline-offset: 4px;
}
@media (max-width:700px) {
  .portal-shell .practice-catalogue .catalogue-tabs[aria-label="Practice section"] { gap:8px; margin:6px 0 16px; }
  .portal-shell .practice-catalogue .catalogue-tabs[aria-label="Practice section"] button,
  .portal-shell .practice-catalogue .catalogue-tabs[aria-label="Practice section"] button:first-child { min-height:88px; padding:13px 12px; gap:6px; border-radius:10px; }
  .portal-shell .practice-catalogue .catalogue-tabs[aria-label="Practice section"] button strong { font-size:20px; }
  .portal-shell .practice-catalogue .catalogue-tabs[aria-label="Practice section"] button span { display:block; font-size:11.5px; line-height:1.4; }
  .portal-shell .practice-catalogue .catalogue-tabs[aria-label="Practice section"] button.active::after,
  .portal-shell .practice-catalogue .catalogue-tabs[aria-label="Practice section"] button.active:first-child::after { left:12px; right:12px; }
}
@media (max-width:380px) {
  .portal-shell .practice-catalogue .catalogue-tabs[aria-label="Practice section"] { gap:6px; }
  .portal-shell .practice-catalogue .catalogue-tabs[aria-label="Practice section"] button,
  .portal-shell .practice-catalogue .catalogue-tabs[aria-label="Practice section"] button:first-child { padding-inline:9px; }
  .portal-shell .practice-catalogue .catalogue-tabs[aria-label="Practice section"] button strong { font-size:19px; }
  .portal-shell .practice-catalogue .catalogue-tabs[aria-label="Practice section"] button span { font-size:11px; }
}
@media (prefers-reduced-motion:reduce) {
  .portal-shell .practice-catalogue .catalogue-tabs[aria-label="Practice section"] button { transition:none; }
}
@media (forced-colors:active) {
  .portal-shell .practice-catalogue .catalogue-tabs[aria-label="Practice section"] button,
  .portal-shell .practice-catalogue .catalogue-tabs[aria-label="Practice section"] button:first-child { background:Canvas; border-color:ButtonText; box-shadow:none; }
  .portal-shell .practice-catalogue .catalogue-tabs[aria-label="Practice section"] button strong,
  .portal-shell .practice-catalogue .catalogue-tabs[aria-label="Practice section"] button span { color:ButtonText; }
  .portal-shell .practice-catalogue .catalogue-tabs[aria-label="Practice section"] button.active,
  .portal-shell .practice-catalogue .catalogue-tabs[aria-label="Practice section"] button.active:first-child { border:2px solid Highlight; }
  .portal-shell .practice-catalogue .catalogue-tabs[aria-label="Practice section"] button.active::after { background:Highlight; }
}

/* Source: account-menu.css */
/* Account controls only. The practice layout and exam player remain unchanged. */
.portal-shell .app-header:has(.p99-account) { overflow:visible; z-index:45; }
.p99-account { position:relative; flex:0 0 auto; font-family:Inter,system-ui,sans-serif; }
.p99-account [hidden],.p99-password-dialog [hidden] { display:none!important; }
.portal-shell .p99-account-trigger,.portal-shell .p99-account-signin { display:inline-flex; align-items:center; justify-content:center; gap:10px; min-height:46px; padding:5px 12px 5px 6px; border:1px solid #353a43; border-radius:999px; background:linear-gradient(145deg,#272a30,#0c0d10 80%); box-shadow:inset 0 1px #ffffff15; color:#f5f6f8; cursor:pointer; font:650 13px/1.2 Inter,system-ui,sans-serif; }
.portal-shell .p99-account-signin { padding:11px 20px; }
.p99-account-trigger:hover,.p99-account-trigger[aria-expanded=true] { border-color:#89919e; background:linear-gradient(145deg,#30343b,#111318); }
.p99-account-avatar { display:grid; place-items:center; width:34px; height:34px; flex:0 0 auto; border-radius:50%; border:1px solid #bfc4cc66; background:linear-gradient(140deg,#e0e3e8,#a5aab3 44%,#656b76); color:#111318; font:800 12px/1 Inter,system-ui,sans-serif; letter-spacing:.01em; box-shadow:inset 0 1px #fff8; }
.p99-account-trigger>svg { width:17px; height:17px; color:#c5cad4; transition:transform .16s ease; }
.p99-account-trigger[aria-expanded=true]>svg { transform:rotate(180deg); }
.p99-account-menu { position:absolute; right:0; top:calc(100% + 12px); width:316px; max-width:calc(100vw - 28px); padding:10px; border:1px solid #666d7c; border-radius:16px; background:linear-gradient(145deg,#252931 0%,#15171d 48%,#090a0d 100%); color:#f5f7fa; box-shadow:0 22px 60px #0009,inset 0 1px #ffffff20; z-index:70; }
.p99-account-menu::before { content:''; position:absolute; right:24px; top:-6px; width:10px; height:10px; transform:rotate(45deg); background:#22262d; border-left:1px solid #666d7c; border-top:1px solid #666d7c; }
.p99-account-identity { display:flex; align-items:center; gap:13px; padding:12px 9px 20px; margin-bottom:9px; border-bottom:1px solid #ffffff19; }
.p99-account-avatar-large { width:48px; height:48px; border-radius:13px; font-size:17px; }
.p99-account-identity>div { min-width:0; flex:1; }
.p99-account-identity strong { display:block; color:#f5f6f9; font-size:15px; line-height:1.4; font-weight:700; overflow-wrap:anywhere; }
.p99-account-identity div>span { display:block; margin-top:4px; color:#b5bcc8; font-size:12px; line-height:1.5; overflow-wrap:anywhere; }
.portal-shell .p99-account-option { display:flex; align-items:center; gap:12px; width:100%; min-height:50px; padding:12px; border:1px solid #454b56; border-radius:10px; background:linear-gradient(120deg,#323741,#1b1e25); color:#f9fafb; font:600 14px/1.4 Inter,system-ui,sans-serif; text-align:left; cursor:pointer; }
.p99-account-option>span:last-child { margin-left:auto; color:#c8cfda; }
.p99-account-option:hover { border-color:#a0a8b8; background:#353b46; }
.p99-account button:focus-visible,.p99-account-signin:focus-visible,.p99-password-dialog button:focus-visible { outline:2px solid #e5ebf5; outline-offset:3px; }
.p99-password-dialog { box-sizing:border-box; width:460px; max-width:calc(100vw - 28px); max-height:calc(100dvh - 32px); margin:auto; padding:28px; border:1px solid #6a7180; border-radius:20px; background:linear-gradient(145deg,#242831,#111318 50%,#08090c); color:#f4f6fa; box-shadow:0 32px 100px #000b,inset 0 1px #ffffff18; font:400 14px/1.5 Inter,system-ui,sans-serif; overflow:auto; overscroll-behavior:contain; color-scheme:dark; }
.p99-password-dialog::backdrop { background:#020306b8; backdrop-filter:blur(6px); }
.p99-password-heading { display:flex; align-items:center; justify-content:space-between; margin-bottom:20px; }
.p99-password-icon { width:44px; height:44px; display:grid; place-items:center; border:1px solid #6d7482; border-radius:12px; background:linear-gradient(140deg,#cdd2dc,#828a99); color:#161a21; }
.p99-password-dialog button { font-family:inherit; cursor:pointer; }
.p99-password-dialog .p99-password-close { display:grid; place-items:center; min-width:40px; height:40px; padding:0; color:#d3d9e3; border:1px solid #404652; border-radius:10px; background:#ffffff06; font-size:26px; line-height:1; }
.p99-password-eyebrow { margin:0 0 7px; font-size:10px; font-weight:700; letter-spacing:.16em; color:#afb8c7; }
.p99-password-dialog h2 { margin:0; font:750 27px/1.2 Inter,system-ui,sans-serif; color:#fff; letter-spacing:-.035em; }
#p99-password-subtitle { margin:10px 0 23px; color:#bfc6d3; font-size:13px; line-height:1.6; }
.p99-password-field { display:block; margin:17px 0 7px; color:#e7ebf2; font-size:13px; font-weight:600; }
.p99-password-input { position:relative; }
.p99-password-dialog input { box-sizing:border-box; display:block; width:100%; min-width:0; height:48px; padding:11px 68px 11px 13px; font:400 16px/1.4 Inter,system-ui,sans-serif; color:#fafbfe; background:#07090d; border:1px solid #48505d; border-radius:10px; box-shadow:inset 0 1px 4px #0004; }
.p99-password-dialog input:focus { outline:2px solid #b8c3d5; outline-offset:2px; border-color:#b8c3d5; }
.p99-password-dialog input[aria-invalid=true] { border-color:#ffb6ab; }
.p99-password-input button { position:absolute; right:5px; top:5px; height:38px; min-width:53px; padding:0 9px; border:0; border-radius:6px; background:transparent; color:#c8d0df; font:650 11px/1 Inter,system-ui,sans-serif; }
.p99-password-input button:hover { background:#ffffff12; }
#p99-password-hint { margin:8px 0 0; color:#aeb8c8; font-size:11.5px; line-height:1.5; }
.p99-password-status { margin:13px 0 0; color:#cbd5e5; font-size:12px; line-height:1.55; overflow-wrap:anywhere; }
.p99-password-status:empty { display:none; }
.p99-password-status[data-kind=error] { padding:10px 12px; border:1px solid #d8897b77; border-radius:8px; color:#ffd1c8; background:#4829233d; }
.p99-password-actions { display:grid; grid-template-columns:auto 1fr; gap:10px; margin-top:23px; }
.p99-password-actions button,.p99-password-done { min-height:47px; padding:11px 17px; border:1px solid #555e6b; border-radius:10px; color:#e4e9f2; background:#171b22; font-size:13px; font-weight:650; }
.p99-password-actions button[type=submit],.p99-password-done { background:linear-gradient(130deg,#f1f3f6,#aeb7c5); border-color:#c3cad5; color:#10141c; }
.p99-password-dialog button:disabled { cursor:wait; opacity:.65; }
.p99-password-dialog input:disabled { opacity:.7; }
.p99-password-code { margin-top:18px; padding-top:4px; border-top:1px solid #4b5463; }
.p99-password-code input { padding-right:13px; letter-spacing:.2em; }
.p99-password-resend { margin-top:10px; padding:8px 0; border:0; background:transparent; color:#dae1ed; font-size:12px; text-decoration:underline; }
.p99-password-success { text-align:center; padding:20px 0 25px; }
.p99-password-success>span { display:grid; place-items:center; width:52px; height:52px; margin:0 auto 16px; border-radius:50%; background:#dbe2ed; color:#141922; font-size:28px; }
.p99-password-success h3 { margin:0; font-size:20px; color:#fff; }
.p99-password-success p,.p99-password-provider { color:#c5cddd; font-size:13px; }
.p99-password-done { width:100%; }
@media(max-width:520px) { .portal-shell .p99-account-trigger { gap:6px; padding-right:8px; min-height:44px; }.p99-account-caption { display:none; }.p99-account-menu { width:292px; }.p99-password-dialog { padding:22px; border-radius:17px; }.p99-password-dialog h2 { font-size:25px; }.p99-password-actions { grid-template-columns:auto 1fr; }.p99-password-actions button { padding:11px 12px; } }
@media(prefers-reduced-motion:reduce) { .p99-account-trigger>svg { transition:none; } }
@media(forced-colors:active) { .p99-account-menu,.p99-password-dialog { background:Canvas; color:CanvasText; border:1px solid CanvasText; }.p99-account-avatar,.p99-password-icon,.p99-account-option { background:Canvas; color:CanvasText; border:1px solid CanvasText; } }

/* Sign out is separate from password settings, but stays in the same menu. */
.portal-shell .p99-account-option.p99-account-signout { margin-top:8px; color:#f0b8b8; border-color:#ffffff20; background:#ffffff04; }
.portal-shell .p99-account-option.p99-account-signout:hover { color:#ffe2e2; border-color:#885159; background:#44262b; }
.p99-account-signout>span:last-child { color:inherit; }

/* Source: compact-chapters.css */
/* Mobile-only catalogue: desktop uses its original card layout and styles. */
@media (max-width: 767px) {
/* Compact topic catalogue. Scope keeps saved cards, analytics and test setup intact. */
.portal-shell .practice-catalogue.compact-chapter-catalogue {
  --compact-line: rgb(196 208 224 / 18%);
  --compact-muted: #a9b3c1;
}
.portal-shell .compact-chapter-catalogue .catalogue-tools {
  margin-bottom: 25px;
}
.portal-shell .compact-chapter-catalogue .catalogue-tools .search-box {
  flex: 1 1 100%;
  width: 100%;
  max-width: 480px;
  min-height: 46px;
  border-color: var(--compact-line);
  border-radius: 12px;
  background: rgb(10 13 18 / 95%);
}
.portal-shell .compact-chapter-catalogue .catalogue-tools .search-box:focus-within {
  border-color: #b6c2d1;
  box-shadow: 0 0 0 3px rgb(200 211 226 / 8%);
}
.portal-shell .compact-chapter-catalogue .topic-catalogue {
  gap: 32px;
  background: transparent;
  scroll-margin-top: 96px;
}
.portal-shell .compact-chapter-catalogue .topic-group-heading {
  padding: 0 2px 14px;
}
.portal-shell .compact-chapter-catalogue .topic-group-heading h2 {
  font-size: 20px;
  letter-spacing: -.035em;
}
.portal-shell .compact-chapter-catalogue .topic-group-heading > span {
  color: var(--compact-muted);
  font-size: 12px;
}
.portal-shell .compact-chapter-catalogue .chapter-grid {
  grid-template-columns: repeat(auto-fill, minmax(min(100%, 228px), 1fr));
  gap: 18px;
  background: transparent;
}
.portal-shell .compact-chapter-catalogue .chapter-card-compact {
  display: block;
  position: relative;
  min-width: 0;
  margin: 0;
  padding: 0;
  border: 1px solid var(--compact-line);
  border-radius: 17px;
  background: linear-gradient(145deg, #181c23 0%, #0d1015 47%, #090b0f 100%);
  box-shadow: inset 0 1px 0 rgb(255 255 255 / 4%), 0 4px 12px rgb(0 0 0 / 12%);
  overflow: hidden;
  transition: border-color 180ms ease, background-color 180ms ease;
}
.portal-shell .compact-chapter-catalogue .chapter-card-compact:hover {
  transform: none;
  border-color: #626d7c;
  box-shadow: inset 0 1px 0 rgb(255 255 255 / 6%), 0 4px 12px rgb(0 0 0 / 12%);
}
.portal-shell .compact-chapter-catalogue .chapter-card-compact:focus-within {
  border-color: #d4dde8;
  box-shadow: 0 0 0 3px rgb(201 215 235 / 14%);
}
.portal-shell .compact-chapter-catalogue .chapter-card-link {
  display: grid;
  grid-template-columns: minmax(0, 1fr) 18px;
  grid-template-rows: 69px auto;
  column-gap: 12px;
  row-gap: 12px;
  align-items: start;
  min-width: 0;
  min-height: 180px;
  height: 100%;
  box-sizing: border-box;
  padding: 16px 19px 18px;
  color: #f3f5f9;
  text-decoration: none;
  -webkit-tap-highlight-color: rgb(208 220 238 / 9%);
  touch-action: manipulation;
}
.portal-shell .compact-chapter-catalogue .chapter-card-link:focus-visible {
  outline: 2px solid #dce4ef;
  outline-offset: -4px;
  border-radius: inherit;
}
.portal-shell .compact-chapter-catalogue .chapter-card-compact .chapter-art,
.portal-shell .compact-chapter-catalogue .chapter-card-compact .chapter-art:has(> .p99-chapter-symbol) {
  grid-area: 1 / 1;
  display: flex;
  align-items: center;
  justify-content: flex-start;
  min-width: 0;
  min-height: 0;
  height: 69px;
  padding: 0;
  border: 0;
  border-radius: 0;
  background: transparent;
  overflow: visible;
}
.portal-shell .compact-chapter-catalogue .chapter-card-compact .chapter-art > svg,
.portal-shell .compact-chapter-catalogue .chapter-card-compact .chapter-art > svg.p99-chapter-symbol {
  display: block;
  width: 99px;
  height: 69px;
  max-width: 100%;
  transform: none;
  filter: none;
  transition: none;
}
.portal-shell .compact-chapter-catalogue .chapter-card-compact .chapter-body {
  grid-area: 2 / 1 / 3 / -1;
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  justify-content: flex-end;
  gap: 7px;
  min-width: 0;
  height: 100%;
  padding: 0;
}
.portal-shell .compact-chapter-catalogue .chapter-title {
  margin: 0;
  color: #f3f5f9;
  font-family: Inter, system-ui, sans-serif;
  font-size: 16px;
  font-weight: 650;
  line-height: 1.38;
  letter-spacing: -.025em;
  text-wrap: pretty;
  overflow-wrap: break-word;
}
.portal-shell .compact-chapter-catalogue .chapter-question-count {
  display: flex;
  align-items: baseline;
  flex-wrap: wrap;
  gap: 5px;
  color: var(--compact-muted);
  font-size: 12px;
  font-weight: 450;
  line-height: 1.4;
  font-variant-numeric: tabular-nums;
}
.portal-shell .compact-chapter-catalogue .chapter-question-count strong {
  color: #d8dfe9;
  font-size: 14px;
  font-weight: 600;
  letter-spacing: -.01em;
}
.portal-shell .compact-chapter-catalogue .chapter-card-arrow {
  grid-area: 1 / 2;
  display: flex;
  align-items: center;
  justify-content: center;
  width: 18px;
  height: 22px;
  margin-top: 5px;
  color: #8290a2;
  transition: color 180ms ease, transform 180ms ease;
}
.portal-shell .compact-chapter-catalogue .chapter-card-arrow svg {
  width: 16px;
  height: 16px;
}
@media (hover: hover) and (pointer: fine) {
  .portal-shell .compact-chapter-catalogue .chapter-card-link:hover .chapter-card-arrow {
    color: #e8edf5;
    transform: translateX(2px);
  }
}
/* Only visible graphics animate; the shared observer never runs on scroll. */
.compact-chapter-catalogue .chapter-card-compact .cs-pip,
.compact-chapter-catalogue .chapter-card-compact .cs-accent {
  animation: chapter-symbol-breathe 4.8s ease-in-out infinite;
  animation-play-state: paused;
}
.compact-chapter-catalogue .chapter-card-compact:nth-child(3n + 2) .cs-pip,
.compact-chapter-catalogue .chapter-card-compact:nth-child(3n + 2) .cs-accent {
  animation-delay: -1.6s;
}
.compact-chapter-catalogue .chapter-card-compact:nth-child(3n) .cs-pip,
.compact-chapter-catalogue .chapter-card-compact:nth-child(3n) .cs-accent {
  animation-delay: -3.2s;
}
.compact-chapter-catalogue .chapter-card-compact.is-in-view .cs-pip,
.compact-chapter-catalogue .chapter-card-compact.is-in-view .cs-accent {
  animation-play-state: running;
}
@keyframes chapter-symbol-breathe {
  0%, 100% { opacity: .55; }
  50% { opacity: 1; }
}
@media (max-width: 767px) {
  .portal-shell .compact-chapter-catalogue .catalogue-categories {
    display: none;
  }
  .portal-shell .compact-chapter-catalogue .catalogue-tools {
    margin: 0 0 25px;
  }
  .portal-shell .compact-chapter-catalogue .catalogue-tools .search-box {
    max-width: none;
    min-width: 0;
  }
  .portal-shell .compact-chapter-catalogue .catalogue-topline {
    margin-bottom: 20px;
  }
  .portal-shell .compact-chapter-catalogue .chapter-grid {
    grid-template-columns: minmax(0, 1fr);
    gap: 15px;
  }
  .portal-shell .compact-chapter-catalogue .topic-catalogue {
    gap: 30px;
    scroll-margin-top: 86px;
  }
  .portal-shell .compact-chapter-catalogue .topic-group-heading {
    padding-bottom: 13px;
  }
  .portal-shell .compact-chapter-catalogue .topic-group-heading h2 {
    font-size: 19px;
  }
  .portal-shell .compact-chapter-catalogue .chapter-card-link {
    grid-template-columns: 78px minmax(0, 1fr) 14px;
    grid-template-rows: auto;
    align-items: center;
    gap: 14px;
    min-height: 116px;
    padding: 17px 16px 17px 13px;
  }
  .portal-shell .compact-chapter-catalogue .chapter-card-compact .chapter-art,
  .portal-shell .compact-chapter-catalogue .chapter-card-compact .chapter-art:has(> .p99-chapter-symbol) {
    grid-area: 1 / 1;
    width: 78px;
    height: 65px;
  }
  .portal-shell .compact-chapter-catalogue .chapter-card-compact .chapter-art > svg,
  .portal-shell .compact-chapter-catalogue .chapter-card-compact .chapter-art > svg.p99-chapter-symbol {
    width: 78px;
    height: 65px;
    max-width: 100%;
  }
  .portal-shell .compact-chapter-catalogue .chapter-card-compact .chapter-body {
    grid-area: 1 / 2;
    justify-content: center;
    gap: 8px;
    height: auto;
  }
  .portal-shell .compact-chapter-catalogue .chapter-title {
    font-size: 16px;
    line-height: 1.38;
  }
  .portal-shell .compact-chapter-catalogue .chapter-question-count {
    font-size: 12px;
    gap: 5px;
  }
  .portal-shell .compact-chapter-catalogue .chapter-card-arrow {
    grid-area: 1 / 3;
    width: 14px;
    margin: 0;
  }
}
@media (max-width: 359px) {
  .portal-shell .compact-chapter-catalogue .chapter-card-link {
    grid-template-columns: 64px minmax(0, 1fr) 12px;
    gap: 10px;
    padding-inline: 10px 13px;
  }
  .portal-shell .compact-chapter-catalogue .chapter-card-compact .chapter-art,
  .portal-shell .compact-chapter-catalogue .chapter-card-compact .chapter-art:has(> .p99-chapter-symbol),
  .portal-shell .compact-chapter-catalogue .chapter-card-compact .chapter-art > svg.p99-chapter-symbol {
    width: 64px;
  }
}
@media (prefers-reduced-motion: reduce) {
  .compact-chapter-catalogue .chapter-card-compact .cs-pip,
  .compact-chapter-catalogue .chapter-card-compact .cs-accent {
    animation: none;
  }
  .portal-shell .compact-chapter-catalogue .chapter-card-compact,
  .portal-shell .compact-chapter-catalogue .chapter-card-arrow {
    transition: none;
  }
  .portal-shell .compact-chapter-catalogue .chapter-card-link:hover .chapter-card-arrow {
    transform: none;
  }
}
@media (forced-colors: active) {
  .portal-shell .compact-chapter-catalogue .chapter-card-compact {
    background: Canvas;
    border-color: LinkText;
    box-shadow: none;
  }
  .portal-shell .compact-chapter-catalogue .chapter-card-link,
  .portal-shell .compact-chapter-catalogue .chapter-title,
  .portal-shell .compact-chapter-catalogue .chapter-question-count,
  .portal-shell .compact-chapter-catalogue .chapter-question-count strong,
  .portal-shell .compact-chapter-catalogue .chapter-card-arrow {
    color: LinkText;
  }
}

}

/* Source: chapter-desktop.css */
@media (min-width: 951px) {
/* Approved chapter reference, applied only to the desktop topic-detail view.
   The existing slider, real statistics, preparation flow and mobile rules remain
   owned by their production modules. The network module sets its top/height. */
@media (min-width: 951px) {
  .portal-shell .practice-catalogue.topic-detail {
    position: relative;
    isolation: isolate;
  }

  .portal-shell .practice-catalogue.topic-detail > .chapter-desktop-network {
    position: absolute;
    top: 0;
    right: 0;
    left: 54%;
    height: 0;
    z-index: 1;
    overflow: hidden;
    border-radius: 15px;
    opacity: .24;
    pointer-events: none;
    user-select: none;
    contain: layout paint;
    -webkit-mask-image: linear-gradient(90deg, transparent, #0009 48%, #000);
    mask-image: linear-gradient(90deg, transparent, #0009 48%, #000);
  }

  .portal-shell .practice-catalogue.topic-detail .chapter-desktop-network > canvas,
  .portal-shell .practice-catalogue.topic-detail .chapter-desktop-network > svg {
    display: block;
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    pointer-events: none;
  }

  /* Surface backgrounds stay below the single decorative canvas. Content
     remains above it without introducing a second foreground stacking layer. */
  .portal-shell .practice-catalogue.topic-detail .topic-hero,
  .portal-shell .practice-catalogue.topic-detail .topic-choice-stage {
    position: relative;
    z-index: auto;
  }

  .portal-shell .practice-catalogue.topic-detail .topic-hero-art,
  .portal-shell .practice-catalogue.topic-detail .topic-hero-copy,
  .portal-shell .practice-catalogue.topic-detail .topic-choice-stage > section {
    position: relative;
    z-index: 2;
  }

  .portal-shell .practice-catalogue.topic-detail .topic-hero {
    overflow: hidden;
    background: linear-gradient(180deg, #4d5054 0%, #34393e 17%, #20262b 41%, #0e1318 71%, #050709 100%);
  }

  .portal-shell .practice-catalogue.topic-detail .topic-choice-stage {
    grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
    gap: 0;
    margin-top: 20px;
    border-color: #414c55;
    border-radius: 15px;
    background: linear-gradient(180deg, #303b42 0%, #253037 15%, #171f25 43%, #0b1115 73%, #05090b 100%);
  }

  .portal-shell .practice-catalogue.topic-detail .topic-choice-stage > section {
    min-width: 0;
    padding: 23px 32px 24px;
  }

  .portal-shell .practice-catalogue.topic-detail .topic-difficulty-section {
    align-items: stretch;
    justify-content: flex-start;
    gap: 0;
    border-right: 1px solid #424e57;
  }

  .portal-shell .practice-catalogue.topic-detail .topic-difficulty-section > .topic-group-heading {
    width: 100%;
    margin: 0 0 16px;
    padding: 0;
  }

  .portal-shell .practice-catalogue.topic-detail .topic-stage-eyebrow,
  .portal-shell .practice-catalogue.topic-detail .topic-session-heading > span {
    margin-bottom: 8px;
  }

  .portal-shell .practice-catalogue.topic-detail .topic-difficulty-section > .topic-group-heading p {
    margin: 8px 0 0;
  }

  .portal-shell .practice-catalogue.topic-detail .topic-difficulty-section > div:last-child {
    width: 100%;
    min-width: 0;
    margin: 0;
  }

  .portal-shell .practice-catalogue.topic-detail .mega-difficulty {
    width: 100%;
    min-width: 0;
    max-width: 460px;
    margin: 0;
  }

  .portal-shell .practice-catalogue.topic-detail .topic-session-heading {
    margin: 0 0 16px;
  }

  .portal-shell .practice-catalogue.topic-detail .topic-detail-stats {
    grid-template-columns: minmax(0, 1.05fr) minmax(0, 1fr) minmax(0, 1.25fr);
    gap: 0;
    margin: 0 0 12px;
    padding: 0 0 14px;
    border-bottom-color: #414d57;
  }

  .portal-shell .practice-catalogue.topic-detail .topic-detail-stats > div {
    min-width: 0;
    padding: 0 13px;
    border-right: 1px solid #3b4953;
  }

  .portal-shell .practice-catalogue.topic-detail .topic-detail-stats > div:first-child {
    padding-left: 0;
  }

  .portal-shell .practice-catalogue.topic-detail .topic-detail-stats > div:last-child {
    padding-right: 0;
    border-right: 0;
  }

  .portal-shell .practice-catalogue.topic-detail .topic-detail-stats strong {
    margin: 6px 0 1px;
    font-size: clamp(28px, 2.5vw, 38px);
    line-height: 1.25;
  }

  .portal-shell .practice-catalogue.topic-detail .topic-detail-stats strong[style] {
    margin-top: 14px;
    margin-bottom: 6px;
    white-space: normal;
    overflow-wrap: anywhere;
  }

  .portal-shell .practice-catalogue.topic-detail .topic-detail-stats > div > small {
    margin: 0;
    font-weight: 400;
    line-height: 1.45;
    letter-spacing: normal;
    overflow-wrap: break-word;
  }

  .portal-shell .practice-catalogue.topic-detail .topic-hero-actions {
    min-width: 0;
    flex-direction: row-reverse;
    align-items: center;
    justify-content: space-between;
    gap: 18px;
    margin: 0;
    padding: 0;
  }

  .portal-shell .practice-catalogue.topic-detail .topic-hero-actions > span {
    flex: 0 1 200px;
    min-width: 0;
    max-width: 200px;
    margin: 0;
    text-align: left;
  }

  .portal-shell .practice-catalogue.topic-detail .topic-hero-actions .btn.primary {
    flex: 0 0 auto;
    width: auto;
    min-width: 178px;
    min-height: 47px;
  }

  @media (max-width: 1260px) {
    .portal-shell .practice-catalogue.topic-detail .topic-choice-stage > section {
      padding: 23px 24px 24px;
    }

    .portal-shell .practice-catalogue.topic-detail .topic-difficulty-section h2,
    .portal-shell .practice-catalogue.topic-detail .topic-session-heading h2 {
      font-size: 25px;
    }

    .portal-shell .practice-catalogue.topic-detail .topic-detail-stats > div {
      padding-inline: 9px;
    }

    .portal-shell .practice-catalogue.topic-detail .topic-detail-stats > div:first-child {
      padding-left: 0;
    }

    .portal-shell .practice-catalogue.topic-detail .topic-detail-stats > div:last-child {
      padding-right: 0;
    }

    .portal-shell .practice-catalogue.topic-detail .topic-hero-actions {
      gap: 14px;
    }

    .portal-shell .practice-catalogue.topic-detail .topic-hero-actions .btn.primary {
      min-width: 160px;
    }
  }

  /* Narrow desktop windows keep the joined surface and full-size controls,
     with one column instead of squeezing the real timing and availability. */
  @media (max-width: 1130px) {
    .portal-shell .practice-catalogue.topic-detail .topic-choice-stage {
      grid-template-columns: minmax(0, 1fr);
    }

    .portal-shell .practice-catalogue.topic-detail .topic-choice-stage > section {
      padding: 24px 28px;
    }

    .portal-shell .practice-catalogue.topic-detail .topic-difficulty-section {
      border-right: 0;
      border-bottom: 1px solid #424e57;
    }

    .portal-shell .practice-catalogue.topic-detail .topic-detail-stats {
      grid-template-columns: minmax(0, 1fr) minmax(0, 1fr) minmax(0, 1.2fr);
    }

    .portal-shell .practice-catalogue.topic-detail .topic-detail-stats strong:not([style]) {
      font-size: 38px;
    }

    .portal-shell .practice-catalogue.topic-detail .topic-hero-actions > span {
      flex-basis: auto;
      max-width: none;
    }
  }

  @media (forced-colors: active), print {
    .portal-shell .practice-catalogue.topic-detail > .chapter-desktop-network {
      display: none;
    }
  }
}

}
/* BHRAMA-ASTRA wordmark: static text, shared across heading and navigation. */
.portal-shell .bhrama-wordmark { display: inline-flex; align-items: baseline; white-space: nowrap; font-weight: 750; }
.portal-shell .bhrama-wordmark-first { color: #e7edf5; }
.portal-shell .bhrama-wordmark-dash { margin: 0 .045em; color: #a4acb8; font-weight: 550; }
.portal-shell .bhrama-wordmark-last { color: #ffac55; }
.portal-shell .sidebar-sectionals .bhrama-wordmark { font-size: 12px; letter-spacing: .01em; }
.portal-shell .breadcrumb .bhrama-wordmark { font-weight: 700; }
@supports ((background-clip: text) or (-webkit-background-clip: text)) {
  .portal-shell .bhrama-wordmark-first { background: linear-gradient(175deg, #ffffff 12%, #e2e9f2 53%, #aab7c9 100%); background-clip: text; -webkit-background-clip: text; color: transparent; }
  .portal-shell .bhrama-wordmark-last { background: linear-gradient(105deg, #ffe39b 0%, #ffb148 44%, #ff793f 100%); background-clip: text; -webkit-background-clip: text; color: transparent; }
}
@media (forced-colors: active) {
  .portal-shell .bhrama-wordmark > span { background: none; color: CanvasText; -webkit-text-fill-color: CanvasText; }
}
