.practice-exam-section { background: none; }
.practice-heading { display:flex; align-items:flex-end; justify-content:space-between; gap:28px; }
.practice-heading-badge { display:flex; align-items:center; gap:10px; flex:0 0 auto; padding:12px 15px; border:1px solid var(--line); border-radius:12px; background:var(--surface); }
.practice-heading-badge strong { color:var(--primary); font-size:26px; line-height:1; }
.practice-heading-badge span { max-width:80px; color:var(--muted); font-size:12px; line-height:1.35; }
.practice-notice { display:flex; align-items:flex-start; gap:12px; margin-bottom:22px; padding:14px 16px; border:1px solid #bfdbfe; border-radius:12px; background:#eff6ff; color:#1e3a5f; font-size:13px; line-height:1.65; }
.practice-notice > span { display:grid; place-items:center; flex:0 0 22px; height:22px; border-radius:50%; background:#2563eb; color:#fff; font-weight:800; }
.practice-notice p { margin:0; }
.practice-notice a { color:#1d4ed8; font-weight:700; text-decoration:underline; text-underline-offset:3px; }
.dark .practice-notice { border-color:#244b7b; background:#12263f; color:#dbeafe; }
.dark .practice-notice a { color:#93c5fd; }
.practice-toolbar { display:flex; align-items:center; justify-content:space-between; gap:16px; margin-bottom:18px; }
.practice-filters { display:flex; gap:5px; padding:4px; border:1px solid var(--line); border-radius:10px; background:var(--surface-soft); overflow-x:auto; }
.practice-filters button { min-height:36px; padding:7px 13px; border:0; border-radius:7px; background:transparent; color:var(--muted); font:inherit; font-size:13px; font-weight:600; white-space:nowrap; }
.practice-filters button.is-active { background:var(--primary); color:#fff; }
.practice-search { display:flex; align-items:center; gap:8px; width:240px; min-height:44px; padding:0 12px; border:1px solid var(--line); border-radius:10px; background:var(--surface); color:var(--muted); }
.practice-search input { min-width:0; width:100%; border:0; outline:0; background:transparent; color:var(--text); font:inherit; font-size:14px; }
.practice-directory { display:grid; grid-template-columns:minmax(0,1fr) 300px; gap:24px; align-items:start; }
.practice-count { margin:0 0 12px; color:var(--muted); font-size:13px; }
.practice-subject-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:14px; }
.practice-subject-card { display:flex; min-width:0; min-height:248px; flex-direction:column; padding:18px; border:1px solid var(--line); border-radius:13px; background:var(--surface); box-shadow:var(--shadow); }
.practice-card-top { display:flex; align-items:center; justify-content:space-between; gap:10px; }
.practice-icon { display:grid; place-items:center; width:40px; height:40px; border-radius:10px; background:var(--primary-soft); color:var(--primary); font-size:15px; font-weight:800; }
.practice-category { padding:5px 8px; border-radius:999px; background:var(--surface-soft); color:var(--muted); font-size:10px; font-weight:700; text-transform:uppercase; }
.practice-category.is-official { background:#dcfce7; color:#166534; }
.dark .practice-category.is-official { background:#133c2a; color:#86efac; }
.practice-subject-card h3 { margin:15px 0 4px; font-size:17px; line-height:1.45; }
.practice-subject-card > p { margin:0 0 12px; color:var(--muted); font-size:12px; }
.practice-subject-card dl { display:grid; grid-template-columns:1fr 1fr; gap:8px; margin:0 0 12px; }
.practice-subject-card dl div { padding:9px; border-radius:8px; background:var(--surface-soft); }
.practice-subject-card dt { color:var(--muted); font-size:10px; }
.practice-subject-card dd { margin:3px 0 0; font-size:12px; font-weight:700; }
.practice-latest { margin:-2px 0 10px; color:var(--muted); font-size:11px; }
.practice-latest strong { color:var(--primary); }
.practice-subject-card .button { width:100%; margin-top:auto; }
.practice-history { position:sticky; top:142px; padding:18px; border:1px solid var(--line); border-radius:13px; background:var(--surface); }
.practice-history-heading { display:flex; align-items:center; justify-content:space-between; gap:12px; padding-bottom:13px; border-bottom:1px solid var(--line); }
.practice-history-heading span { color:var(--primary); font-size:10px; font-weight:700; text-transform:uppercase; }
.practice-history-heading h3 { margin:3px 0 0; font-size:16px; }
.practice-history-heading > b { display:grid; place-items:center; min-width:32px; height:32px; border-radius:50%; background:var(--primary-soft); color:var(--primary); }
.practice-history-row { width:100%; display:flex; align-items:center; justify-content:space-between; gap:12px; padding:12px 0; border:0; border-bottom:1px solid var(--line); background:transparent; color:var(--text); text-align:left; }
.practice-history-row span { display:grid; gap:3px; min-width:0; }
.practice-history-row b { overflow:hidden; text-overflow:ellipsis; white-space:nowrap; font-size:13px; }
.practice-history-row small { color:var(--muted); font-size:10px; }
.practice-history-row > strong { color:var(--primary); font-size:18px; }
.practice-empty { color:var(--muted); font-size:12px; line-height:1.6; }
.practice-resume { display:flex; align-items:center; justify-content:space-between; gap:18px; margin-bottom:18px; padding:15px 18px; border:1px solid #a7f3d0; border-radius:12px; background:var(--accent-soft); }
.practice-resume div { display:grid; gap:3px; }
.practice-resume span { color:var(--muted); font-size:11px; text-transform:uppercase; }
.practice-resume strong { font-size:14px; }
.practice-replace { display:flex; align-items:center; justify-content:space-between; gap:18px; margin:-8px 0 18px; padding:15px 18px; border:1px solid #fed7aa; border-radius:12px; background:#fff7ed; color:#7c2d12; }
.practice-replace > div:first-child { display:grid; gap:3px; }
.practice-replace span { font-size:12px; }
.practice-replace > div:last-child { display:flex; gap:8px; }
.dark .practice-replace { border-color:#7c2d12; background:#2c1b13; color:#fed7aa; }
.practice-exam-shell { max-width:1100px; margin:0 auto; }
.practice-exam-header { position:sticky; z-index:8; top:128px; display:flex; align-items:center; justify-content:space-between; gap:20px; margin-bottom:14px; padding:17px 20px; border:1px solid var(--line); border-radius:13px; background:var(--surface); box-shadow:var(--shadow); }
.practice-exam-header h3 { margin:2px 0; font-size:22px; }
.practice-exam-header p { margin:0; color:var(--muted); font-size:12px; }
.practice-timer-wrap { display:grid; min-width:155px; justify-items:end; }
.practice-timer-wrap span { color:var(--muted); font-size:11px; }
.practice-timer-wrap strong { color:var(--primary); font-size:29px; font-variant-numeric:tabular-nums; letter-spacing:.02em; }
.practice-timer-wrap strong.is-urgent { color:#dc2626; }
.practice-progress { display:grid; grid-template-columns:auto 1fr; align-items:center; gap:12px; margin:0 0 14px; color:var(--muted); font-size:12px; }
.practice-progress > div { height:7px; overflow:hidden; border-radius:999px; background:var(--surface-soft); }
.practice-progress i { display:block; width:0; height:100%; border-radius:inherit; background:var(--primary); transition:width .2s; }
.practice-exam-note { margin:0 0 14px; padding:11px 14px; border-left:3px solid var(--primary); background:var(--primary-soft); color:var(--muted); font-size:12px; line-height:1.6; }
.practice-paper,.practice-solutions { margin:0 0 18px; border:1px solid var(--line); border-radius:13px; background:var(--surface); overflow:hidden; }
.practice-paper summary,.practice-solutions summary { display:flex; align-items:center; justify-content:space-between; gap:16px; padding:14px 17px; cursor:pointer; color:var(--text); font-size:13px; font-weight:700; list-style-position:inside; }
.practice-paper summary span { display:inline-grid; gap:3px; }
.practice-paper summary small { color:var(--muted); font-size:11px; font-weight:500; }
.practice-paper summary strong { flex:0 0 auto; padding:5px 8px; border-radius:999px; background:var(--primary-soft); color:var(--primary); font-size:11px; }
.practice-paper[open] summary,.practice-solutions[open] summary { border-bottom:1px solid var(--line); }
.practice-paper-pages,.practice-solution-pages { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:12px; padding:12px; background:var(--surface-soft); }
.practice-paper-pages a,.practice-solution-pages a { display:block; min-width:0; overflow:hidden; border:1px solid var(--line); border-radius:9px; background:#fff; box-shadow:0 5px 18px #0f172a12; }
.practice-paper-pages img,.practice-solution-pages img { display:block; width:100%; height:auto; }
.practice-branch-picker { display:flex; align-items:center; justify-content:space-between; gap:14px; margin:0 0 14px; padding:12px 14px; border:1px solid #c4b5fd; border-radius:11px; background:#f5f3ff; }
.practice-branch-picker > span { color:#5b21b6; font-size:12px; font-weight:700; }
.practice-branch-picker > div { display:flex; gap:7px; }
.practice-branch-picker button { min-height:34px; padding:6px 10px; border:1px solid #c4b5fd; border-radius:7px; background:#fff; color:#6d28d9; font:inherit; font-size:11px; font-weight:700; }
.practice-branch-picker button.is-active { border-color:#6d28d9; background:#6d28d9; color:#fff; }
.dark .practice-branch-picker { border-color:#5b21b6; background:#24163e; }
.dark .practice-branch-picker > span { color:#ddd6fe; }
.dark .practice-branch-picker button { background:#171126; color:#ddd6fe; }
.practice-exam-layout { display:grid; grid-template-columns:minmax(0,1fr) 230px; gap:18px; align-items:start; }
.practice-question-list { display:grid; gap:14px; }
.practice-question-list.is-answer-sheet { grid-template-columns:repeat(2,minmax(0,1fr)); }
.practice-question-list.is-answer-sheet .type-true-false,.practice-question-list.is-answer-sheet .type-short { grid-column:1/-1; }
.practice-question { min-width:0; margin:0; padding:20px; border:1px solid var(--line); border-radius:13px; background:var(--surface); }
.practice-question legend { width:100%; padding:0; color:var(--text); font-size:15px; font-weight:600; line-height:1.65; }
.practice-question legend span { display:inline-grid; place-items:center; min-width:54px; height:27px; margin-right:7px; border-radius:7px; background:var(--primary-soft); color:var(--primary); font-size:11px; }
.practice-question-context { margin:14px 0 0; padding:14px; border:1px solid var(--line); border-radius:10px; background:var(--surface-soft); color:var(--text); font-size:13px; line-height:1.7; white-space:pre-wrap; overflow-wrap:anywhere; }
.practice-options { display:grid; gap:9px; margin-top:14px; }
.practice-options label { cursor:pointer; }
.practice-options input { position:absolute; opacity:0; pointer-events:none; }
.practice-options label > span { display:flex; align-items:center; gap:11px; min-height:45px; padding:9px 12px; border:1px solid var(--line); border-radius:9px; color:var(--text); font-size:13px; transition:border-color .15s,background .15s; }
.practice-options label > span b { display:grid; place-items:center; flex:0 0 27px; height:27px; border-radius:7px; background:var(--surface-soft); color:var(--muted); }
.practice-options input:checked + span { border-color:var(--primary); background:var(--primary-soft); }
.practice-options input:checked + span b { background:var(--primary); color:#fff; }
.practice-options input:focus-visible + span { outline:3px solid color-mix(in srgb,var(--primary) 28%,transparent); outline-offset:2px; }
.practice-options.is-answer-sheet { grid-template-columns:repeat(4,minmax(0,1fr)); gap:7px; }
.practice-options.is-answer-sheet label > span { justify-content:center; min-height:42px; padding:6px; }
.practice-options.is-answer-sheet label > span b { flex-basis:29px; }
.practice-tf-list { display:grid; gap:8px; margin-top:14px; }
.practice-tf-row { display:flex; align-items:center; justify-content:space-between; gap:12px; min-height:46px; padding:7px 9px 7px 12px; border:1px solid var(--line); border-radius:9px; }
.practice-tf-statement { display:flex; align-items:flex-start; gap:8px; min-width:0; }
.practice-tf-statement b { flex:0 0 auto; color:var(--primary); font-size:12px; }
.practice-tf-statement p { margin:0; color:var(--text); font-size:13px; line-height:1.55; white-space:pre-wrap; overflow-wrap:anywhere; }
.practice-tf-row > div { display:grid; grid-template-columns:repeat(2,76px); gap:7px; }
.practice-tf-row > .practice-tf-statement { display:flex; grid-template-columns:none; }
.practice-tf-row label { cursor:pointer; }
.practice-tf-row input { position:absolute; opacity:0; pointer-events:none; }
.practice-tf-row label span { display:grid; place-items:center; min-height:32px; border:1px solid var(--line); border-radius:7px; color:var(--muted); font-size:11px; font-weight:700; }
.practice-tf-row input:checked + span { border-color:var(--primary); background:var(--primary); color:#fff; }
.practice-tf-row input:focus-visible + span { outline:3px solid color-mix(in srgb,var(--primary) 28%,transparent); outline-offset:2px; }
.practice-short { display:grid; gap:7px; margin-top:14px; }
.practice-short span { color:var(--muted); font-size:11px; font-weight:700; }
.practice-short input { width:100%; min-height:45px; padding:9px 12px; border:1px solid var(--line); border-radius:9px; outline:0; background:var(--surface); color:var(--text); font:inherit; }
.practice-short input:focus { border-color:var(--primary); box-shadow:0 0 0 3px color-mix(in srgb,var(--primary) 18%,transparent); }
.practice-flag { margin-top:12px; padding:5px 0; border:0; background:transparent; color:var(--muted); font-size:11px; }
.practice-flag.is-active { color:#d97706; font-weight:700; }
.practice-review-context { margin:12px 0; padding:12px; border-radius:9px; background:var(--surface-soft); color:var(--text); font-size:12px; line-height:1.65; white-space:pre-wrap; overflow-wrap:anywhere; }
.practice-review-prompt { margin:12px 0; color:var(--text); font-size:13px; font-weight:600; line-height:1.6; white-space:pre-wrap; }
.practice-question-nav { position:sticky; top:242px; padding:16px; border:1px solid var(--line); border-radius:12px; background:var(--surface); }
.practice-question-nav h4 { margin:0 0 12px; font-size:14px; }
.practice-nav-grid { display:grid; grid-template-columns:repeat(5,1fr); gap:6px; }
.practice-nav-grid button { aspect-ratio:1; min-width:0; border:1px solid var(--line); border-radius:7px; background:var(--surface-soft); color:var(--muted); font-size:11px; font-weight:700; }
.practice-nav-grid button.is-answered { border-color:var(--primary); background:var(--primary); color:#fff; }
.practice-nav-grid button.is-flagged { box-shadow:inset 0 -3px #f59e0b; }
.practice-question-nav p { color:var(--muted); font-size:11px; line-height:1.55; }
.practice-question-nav .button { width:100%; margin-top:7px; }
.practice-result { max-width:1000px; margin:0 auto; }
.practice-result-hero { display:flex; align-items:center; justify-content:space-between; gap:24px; padding:25px; border-radius:16px; color:#fff; background:#173858; }
.practice-result-hero.excellent { background:linear-gradient(135deg,#065f46,#0f766e); }
.practice-result-hero.needs-work { background:linear-gradient(135deg,#7c2d12,#9a3412); }
.practice-result-hero .eyebrow,.practice-result-hero p { color:#ffffffc9; }
.practice-result-hero h3 { margin:3px 0; color:#fff; font-size:54px; line-height:1; }
.practice-result-hero h3 span { font-size:18px; font-weight:500; opacity:.75; }
.practice-result-hero dl { display:grid; grid-template-columns:repeat(3,1fr); margin:0; overflow:hidden; border:1px solid #ffffff32; border-radius:11px; }
.practice-result-hero dl div { min-width:95px; padding:13px; text-align:center; }
.practice-result-hero dl div+div { border-left:1px solid #ffffff32; }
.practice-result-hero dt { font-size:10px; opacity:.75; }
.practice-result-hero dd { margin:4px 0 0; font-size:18px; font-weight:700; }
.practice-result-actions { display:flex; gap:10px; margin:16px 0 26px; }
.practice-result .practice-solutions { margin-bottom:14px; }
.practice-no-solution { margin:0 0 14px; padding:12px 14px; border:1px dashed var(--line); border-radius:10px; background:var(--surface-soft); color:var(--muted); font-size:12px; }
.practice-answer-source { margin:0 0 14px; padding:12px 14px; border:1px solid #bfdbfe; border-radius:10px; background:#eff6ff; color:#1e3a5f; font-size:12px; }
.practice-answer-source a { color:#1d4ed8; font-weight:700; }
.dark .practice-answer-source { border-color:#244b7b; background:#12263f; color:#dbeafe; }
.dark .practice-answer-source a { color:#93c5fd; }
.practice-review-heading { display:flex; align-items:end; justify-content:space-between; gap:16px; margin-bottom:14px; }
.practice-review-heading h3 { margin:3px 0 0; font-size:21px; }
.practice-review-heading > span { color:var(--muted); font-size:11px; }
.practice-review-list { display:grid; gap:14px; }
.practice-review { padding:19px; border:1px solid var(--line); border-left:4px solid #dc2626; border-radius:12px; background:var(--surface); }
.practice-review.is-correct { border-left-color:#059669; }
.practice-review h4 { margin:0 0 13px; font-size:14px; line-height:1.6; }
.practice-review h4 span { margin-right:7px; color:var(--primary); }
.practice-review-options { display:grid; gap:6px; }
.practice-review-options p { display:flex; align-items:center; gap:9px; margin:0; padding:8px 10px; border-radius:8px; color:var(--muted); font-size:12px; }
.practice-review-options p > b { display:grid; place-items:center; flex:0 0 25px; height:25px; border-radius:6px; background:var(--surface-soft); }
.practice-review-options p > strong { margin-left:auto; font-size:10px; }
.practice-review-options .is-answer { background:#ecfdf5; color:#065f46; }
.practice-review-options .is-answer > b { background:#059669; color:#fff; }
.practice-review-options .is-selected-wrong { background:#fef2f2; color:#991b1b; }
.practice-review-options .is-selected-wrong > b { background:#dc2626; color:#fff; }
.dark .practice-review-options .is-answer { background:#113d32; color:#a7f3d0; }
.dark .practice-review-options .is-selected-wrong { background:#451a1a; color:#fecaca; }
.practice-explanation { margin-top:12px; padding:12px 14px; border-radius:8px; background:var(--surface-soft); }
.practice-explanation b { color:var(--primary); font-size:11px; text-transform:uppercase; }
.practice-explanation p { margin:4px 0 0; color:var(--muted); font-size:12px; line-height:1.65; }

@media(max-width:1050px) {
  .practice-subject-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .practice-directory { grid-template-columns:minmax(0,1fr) 270px; }
}
@media(max-width:820px) {
  .practice-heading { align-items:flex-start; }
  .practice-directory,.practice-exam-layout { grid-template-columns:1fr; }
  .practice-history,.practice-question-nav { position:static; }
  .practice-exam-header { top:72px; }
  .practice-question-nav { display:grid; grid-template-columns:1fr auto; gap:10px 14px; align-items:center; }
  .practice-question-nav h4,.practice-question-nav p { margin:0; }
  .practice-nav-grid { grid-column:1/-1; grid-template-columns:repeat(8,36px); overflow-x:auto; }
  .practice-question-nav .button { margin:0; width:auto; }
  .practice-paper-pages,.practice-solution-pages { grid-template-columns:1fr; }
}
@media(max-width:560px) {
  .practice-heading-badge { display:none; }
  .practice-toolbar { align-items:stretch; flex-direction:column; }
  .practice-filters { width:100%; }
  .practice-search { width:100%; }
  .practice-directory { gap:15px; }
  .practice-subject-grid { grid-template-columns:1fr; }
  .practice-subject-card { min-height:215px; }
  .practice-resume,.practice-replace { align-items:stretch; flex-direction:column; }
  .practice-replace > div:last-child { display:grid; }
  .practice-exam-header { top:64px; padding:13px 14px; }
  .practice-exam-header h3 { font-size:17px; }
  .practice-exam-header > div:first-child > p:last-child { display:none; }
  .practice-timer-wrap { min-width:106px; }
  .practice-timer-wrap strong { font-size:24px; }
  .practice-question { padding:16px 14px; scroll-margin-top:160px; }
  .practice-question legend { font-size:14px; }
  .practice-question-list.is-answer-sheet { grid-template-columns:1fr; }
  .practice-question-list.is-answer-sheet .type-true-false,.practice-question-list.is-answer-sheet .type-short { grid-column:auto; }
  .practice-options label > span { align-items:flex-start; min-height:48px; }
  .practice-options.is-answer-sheet label > span { align-items:center; min-height:42px; }
  .practice-paper summary,.practice-solutions summary { padding:12px; }
  .practice-paper-pages,.practice-solution-pages { gap:8px; padding:8px; }
  .practice-branch-picker { align-items:stretch; flex-direction:column; }
  .practice-branch-picker > div { display:grid; grid-template-columns:1fr; }
  .practice-tf-row > div { grid-template-columns:repeat(2,64px); }
  .practice-tf-row { align-items:stretch; flex-direction:column; }
  .practice-tf-row > div:last-child { align-self:flex-end; }
  .practice-review-options p { align-items:flex-start; flex-wrap:wrap; }
  .practice-review-options p > strong { width:100%; margin-left:34px; }
  .practice-question-nav { position:sticky; z-index:7; bottom:8px; grid-template-columns:1fr 1fr; box-shadow:var(--shadow); }
  .practice-question-nav h4,.practice-question-nav p,.practice-nav-grid { display:none; }
  .practice-result-hero { align-items:stretch; flex-direction:column; padding:20px; }
  .practice-result-hero h3 { font-size:46px; }
  .practice-result-hero dl { width:100%; }
  .practice-result-hero dl div { min-width:0; }
  .practice-result-actions { display:grid; }
  .practice-review-heading { align-items:flex-start; flex-direction:column; }
}
.practice-solution-picker {
  display: grid;
  gap: 8px;
  max-width: 420px;
  margin: 18px 0;
  font-weight: 700;
}

.practice-solution-picker select {
  width: 100%;
  min-height: 44px;
  padding: 0 12px;
  border: 1px solid var(--border);
  border-radius: 10px;
  background: var(--surface);
  color: var(--text);
}

.practice-question-solution {
  margin-top: 14px;
  border: 1px solid color-mix(in srgb, var(--primary) 24%, var(--border));
  border-radius: 12px;
  background: color-mix(in srgb, var(--primary) 5%, var(--surface));
}

.practice-question-solution summary {
  padding: 12px 14px;
  cursor: pointer;
  color: var(--primary);
  font-weight: 750;
}

.practice-question-solution div {
  padding: 0 14px 14px;
  white-space: pre-line;
  line-height: 1.65;
}
