/* /practice/: the question bank (10 Oct 2026). Source: practice/app.css.
   Sits on top of the lm layer and borrows its tokens. */
.pr {
  --pr-ink:var(--lm-ink,#111);
  --pr-paper:#fff;
  --pr-page:var(--lm-page,#f4f6ec);
  --pr-lime:var(--lm-lime,#c5f135);
  --pr-moss:var(--lm-moss,#3f5a0a);
  --pr-muted:var(--lm-muted,#555);
  --pr-line:var(--lm-line,#ddd);
  --pr-grey:#9a9a9a;
  --pr-right:#2f7d1e;
  --pr-right-bg:#eef8e2;
  --pr-wrong:#b3261e;
  --pr-wrong-bg:#fdeceb;
}
.pr-hero { padding:48px var(--lm-gutter) 28px; max-width:1200px; margin:0 auto; }
.pr-hero .lm-h1 { margin-bottom:16px; }
html.pr-deep .pr-hero { display:none; }
html.pr-deep .pr-wrap { padding-top:24px; }
.pr-wrap { max-width:1200px; margin:0 auto; padding:0 var(--lm-gutter) 64px; }
.pr-h2 { font:900 clamp(22px,2.4vw,28px)/1.1 var(--lm-font); letter-spacing:-.01em; margin:0 0 14px; }
.pr-eyebrow { font:600 11px/1.2 var(--lm-font); letter-spacing:.14em; text-transform:uppercase; color:var(--pr-moss); margin:0 0 8px; }
.pr-label { display:block; font:600 11px/1 var(--lm-font); letter-spacing:.12em; text-transform:uppercase; color:var(--pr-muted); margin:0 0 8px; }
.pr-small { font:400 14px/1.45 var(--lm-font); color:var(--pr-muted); margin:0 0 10px; }
.pr-note { font:400 12px/1.45 var(--lm-font); color:var(--pr-muted); margin:8px 0 0; }
.pr-vh { position:absolute; width:1px; height:1px; overflow:hidden; clip:rect(0 0 0 0); white-space:nowrap; }
.pr-tag { display:inline-block; vertical-align:middle; font:700 10px/1 var(--lm-font); letter-spacing:.08em; background:var(--pr-ink); color:#fff; padding:4px 6px; }

/* ---- buttons ---------------------------------------------------------- */
.pr-btns { display:flex; flex-wrap:wrap; gap:10px; margin:14px 0 0; }
.pr-btn { display:inline-flex; align-items:center; justify-content:center; gap:8px; box-sizing:border-box;
  border:2px solid var(--pr-ink); background:var(--pr-paper); color:var(--pr-ink); text-decoration:none;
  font:700 15px/1.1 var(--lm-font); padding:12px 16px; cursor:pointer; border-radius:0; }
.pr-btn:hover { background:var(--pr-page); }
.pr-btn--lime { background:var(--pr-lime); }
.pr-btn--lime:hover { background:#b6e325; }
.pr-btn--small { font-size:13px; padding:8px 12px; }
.pr-btn:disabled { opacity:.45; cursor:default; }
.pr .pr-btn, .pr a.pr-btn { color:var(--pr-ink); }
.pr-linkbtn { background:none; border:0; padding:0; font:inherit; color:var(--pr-moss); text-decoration:underline; cursor:pointer; }

/* ---- gate ------------------------------------------------------------- */
.pr-gate { border:2px solid var(--pr-ink); background:var(--pr-lime); padding:24px; max-width:620px; box-sizing:border-box; }
.pr-gate h2 { font:900 24px/1.1 var(--lm-font); margin:0 0 8px; }
.pr-gate p { margin:0 0 12px; font:400 15px/1.45 var(--lm-font); }
.pr-gate__row { display:flex; gap:8px; flex-wrap:wrap; }
.pr-gate input[type=email] { flex:1 1 240px; min-width:0; box-sizing:border-box; border:2px solid var(--pr-ink); padding:12px 14px;
  font:400 16px/1.2 var(--lm-font); background:#fff; border-radius:0; }
.pr-gate .pr-btn { background:var(--pr-ink); color:#fff; }
.pr-gate .pr-btn:hover { background:#333; }
.pr-gate__msg { font:600 14px/1.4 var(--lm-font); color:var(--pr-wrong); margin:10px 0 0; }
.pr-gate__fine { font:400 12px/1.45 var(--lm-font); color:#2b3510; margin:12px 0 0; }
.pr-gate__fine a { color:#2b3510; }
.pr-gate .hp { position:absolute; left:-9999px; }
.pr-in { display:none; border:2px solid var(--pr-ink); background:var(--pr-paper); padding:20px 24px; max-width:620px; box-sizing:border-box; }
.pr-in p { margin:0 0 12px; }
html.pr-unlocked .pr-in { display:block; }
html.pr-known #pr-gate { display:none; }
.pr-loading { display:none; font:600 15px/1.4 var(--lm-font); color:var(--pr-muted); padding:24px 0; }
html.pr-known .pr-loading { display:block; }
html.pr-unlocked .pr-loading { display:none; }

/* ---- landing ---------------------------------------------------------- */
.pr-points { list-style:none; padding:0; margin:22px 0 0; display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:12px; }
.pr-points li { border:2px solid var(--pr-ink); background:var(--pr-paper); padding:18px; }
.pr-points b { display:block; font:900 18px/1.15 var(--lm-font); margin:0 0 6px; }
.pr-points span { font:400 14px/1.45 var(--lm-font); color:var(--lm-body,#333); }
@media (max-width:800px) { .pr-points { grid-template-columns:minmax(0,1fr); } }
.pr-counts { display:flex; flex-wrap:wrap; gap:10px; margin:18px 0 0; }
.pr-counts span { border:2px solid var(--pr-ink); background:var(--pr-paper); padding:10px 12px; font:400 13px/1.2 var(--lm-font); }
.pr-counts b { font:900 20px/1 var(--lm-font); margin-right:4px; }
.pr-subjects { display:grid; grid-template-columns:repeat(auto-fit,minmax(240px,1fr)); gap:12px; margin:16px 0 0; }
.pr-subject { border:2px solid var(--pr-ink); background:var(--pr-paper); padding:20px; display:flex; flex-direction:column; gap:8px; }
.pr-subject--soon { background:transparent; border-style:dashed; color:var(--pr-muted); }
.pr-subject b { font:900 22px/1.1 var(--lm-font); }
.pr-disclaimer { font:400 12px/1.5 var(--lm-font); color:var(--pr-muted); max-width:760px; margin:28px 0 0; }

/* ---- stats, filters --------------------------------------------------- */
.pr-stats { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:10px; margin:0 0 18px; }
.pr-stats > div { border:2px solid var(--pr-ink); background:var(--pr-paper); padding:14px 16px; }
.pr-stats__fig { display:block; font:900 28px/1 var(--lm-font); margin:0 0 6px; }
.pr-stats .pr-label { margin:0; }
.pr-filters { display:flex; flex-wrap:wrap; gap:14px 22px; margin:0 0 18px; }
.pr-chips { display:flex; flex-wrap:wrap; gap:6px; }
.pr-chip { border:2px solid var(--pr-ink); background:var(--pr-paper); color:var(--pr-ink); font:700 13px/1 var(--lm-font); padding:8px 11px; cursor:pointer; border-radius:0; }
.pr-chip.is-on { background:var(--pr-ink); color:#fff; }
.pr-quick { margin:0 0 26px; }
.pr-quick .pr-btns { margin:0; }

/* ---- topics ----------------------------------------------------------- */
.pr-theme { margin:0 0 26px; }
.pr-theme__k { display:inline-flex; align-items:center; justify-content:center; width:34px; height:34px; background:var(--pr-lime); border:2px solid var(--pr-ink); font-size:18px; margin-right:6px; vertical-align:2px; }
.pr-topics { list-style:none; margin:0; padding:0; display:grid; grid-template-columns:repeat(auto-fill,minmax(260px,1fr)); gap:10px; }
.pr-topic a { display:grid; grid-template-columns:auto 1fr; grid-template-areas:"code name" "meta meta" "meter meter"; gap:6px 10px;
  border:2px solid var(--pr-ink); background:var(--pr-paper); padding:14px; text-decoration:none; color:var(--pr-ink); height:100%; box-sizing:border-box; }
.pr-topic a:hover { background:var(--pr-page); }
.pr-topic.is-dim a { opacity:.5; }
.pr-topic__code { grid-area:code; font:900 15px/1.25 var(--lm-font); }
.pr-topic__name { grid-area:name; font:700 15px/1.25 var(--lm-font); }
.pr-topic__meta { grid-area:meta; font:400 13px/1.2 var(--lm-font); color:var(--pr-muted); }
.pr-meter { grid-area:meter; display:block; height:6px; background:var(--pr-line); }
.pr-meter span { display:block; height:100%; background:var(--pr-moss); }
.pr-reset { margin-top:30px; }

/* static list before the script runs */
.pr-static .pr-topic a:not([href]) { cursor:default; }
.pr-static .pr-topic__meta b { color:var(--pr-ink); }

/* ---- question list ---------------------------------------------------- */
.pr-crumbs { font:400 14px/1.4 var(--lm-font); color:var(--pr-muted); margin:0 0 14px; }
.pr-crumbs a { color:var(--pr-moss); }
.pr-crumbs span { margin:0 4px; color:var(--pr-grey); }
.pr-qlist { list-style:none; margin:0; padding:0; border-top:2px solid var(--pr-ink); }
.pr-qrow a { display:grid; grid-template-columns:86px 1fr auto auto; gap:8px 16px; align-items:center; padding:14px 6px;
  border-bottom:1px solid var(--pr-line); text-decoration:none; color:var(--pr-ink); }
.pr-qrow a:hover { background:var(--pr-paper); }
.pr-qrow__id { font:700 13px/1 ui-monospace,Menlo,monospace; color:var(--pr-muted); }
.pr-qrow__title { font:700 15px/1.3 var(--lm-font); }
.pr-qrow__meta { display:flex; gap:8px; align-items:center; }
.pr-style { font:700 11px/1 var(--lm-font); letter-spacing:.06em; text-transform:uppercase; border:1.5px solid var(--pr-ink); padding:4px 6px; white-space:nowrap; }
.pr-style--1A { background:var(--pr-paper); }
.pr-style--1B { background:#e8f0ff; }
.pr-style--2A { background:#fff4d6; }
.pr-style--2B { background:#f1e6ff; }
.pr-style--P1 { background:#f1e6ff; }
.pr-style--P2 { background:#e8f0ff; }
.pr-style--P3 { background:#fff4d6; }
/* Band-marked parts (Economics, 12 Oct 2026): the student picks the band, then the mark. */
.pr-lv { list-style:none; margin:0; padding:0; display:grid; gap:8px; }
.pr-lv__band { border:1px solid var(--pr-line); background:#fff; padding:8px 10px; display:grid; grid-template-columns:auto 1fr; gap:12px; align-items:start; }
.pr-lv__band.is-on { background:var(--pr-right-bg); border-color:var(--pr-right); }
.pr-lv__pills { display:flex; gap:4px; align-items:center; flex-wrap:wrap; }
.pr-lv__range { font:700 12px/1 var(--lm-font); color:var(--pr-muted); min-width:34px; }
.pr-lv__m { font:700 13px/1 var(--lm-font); width:30px; height:30px; border:1.5px solid var(--pr-ink); background:#fff; color:var(--pr-ink); cursor:pointer; padding:0; }
.pr-lv__m:hover { background:var(--pr-page); }
.pr-lv__m.is-on { background:var(--pr-ink); color:#fff; }
.pr-lv__t { font:400 14px/1.45 var(--lm-font); }
.pr-may { margin:6px 0 0; padding-left:18px; font:400 14px/1.45 var(--lm-font); }
.pr-may li { margin:0 0 4px; }
@media (max-width:600px) { .pr-lv__band { grid-template-columns:1fr; gap:6px; } }
.pr-score { font:700 13px/1 var(--lm-font); white-space:nowrap; min-width:64px; text-align:right; }
.pr-score.is-full { color:var(--pr-right); }
.pr-score.is-part, .pr-score.is-none { color:var(--pr-muted); font-weight:400; }
.pr-dots { display:inline-flex; gap:3px; }
.pr-dots span { width:7px; height:7px; border:1.5px solid var(--pr-ink); border-radius:50%; box-sizing:border-box; }
.pr-dots span.on { background:var(--pr-ink); }
.pr-empty { font:400 15px/1.5 var(--lm-font); }
@media (max-width:640px) {
  .pr-qrow a { grid-template-columns:1fr auto; }
  .pr-qrow__id { grid-column:1 / -1; }
  .pr-qrow__meta { grid-column:1; }
  .pr-stats { grid-template-columns:minmax(0,1fr) minmax(0,1fr); }
  .pr-stats > div:last-child { display:none; }
}

/* ---- question --------------------------------------------------------- */
.pr-q { background:var(--pr-paper); border:2px solid var(--pr-ink); padding:24px; }
.pr-q__head { display:flex; justify-content:space-between; gap:16px; align-items:flex-start; border-bottom:2px solid var(--pr-ink); padding:0 0 14px; margin:0 0 18px; }
.pr-q__title { margin:0; }
.pr-q__side { display:flex; flex-direction:column; align-items:flex-end; gap:8px; flex:0 0 auto; }
.pr-q__id { font:700 12px/1 ui-monospace,Menlo,monospace; background:var(--pr-page); border:1.5px solid var(--pr-ink); padding:4px 6px; user-select:all; }
.pr-q__total { font:900 18px/1 var(--lm-font); }
.pr-q__grid { display:grid; grid-template-columns:minmax(0,1fr) 300px; gap:28px; align-items:start; }
.pr-q__aside { position:sticky; top:16px; }
@media (max-width:960px) {
  .pr-q__grid { grid-template-columns:minmax(0,1fr); }
  .pr-q__aside { position:static; }
  .pr-q__grid:not(.has-solution) .pr-q__aside { display:none; }
}
.pr-q__intro { font:400 16px/1.6 var(--lm-font); margin:0 0 14px; max-width:72ch; }
.pr-part { border-top:1px solid var(--pr-line); padding:16px 0 18px; }
.pr-part:first-of-type { border-top:0; }
.pr-part__head { display:grid; grid-template-columns:auto 1fr auto; gap:10px; align-items:baseline; margin:0 0 12px; }
.pr-part__label { font:700 16px/1.5 var(--lm-font); }
.pr-part__prompt { font:400 16px/1.55 var(--lm-font); margin:0; }
.pr-part__head > .pr-part__prompt:first-child { grid-column:1 / 3; }
.pr-part__marks { font:700 15px/1.5 var(--lm-font); white-space:nowrap; }

.pr-opts { display:grid; gap:8px; }
.pr-opt { display:grid; grid-template-columns:34px 1fr; gap:12px; align-items:center; text-align:left; border:2px solid var(--pr-ink);
  background:var(--pr-paper); color:var(--pr-ink); padding:10px 12px; font:400 15px/1.45 var(--lm-font); cursor:pointer; border-radius:0; }
.pr-opt:hover:not(:disabled) { background:var(--pr-page); }
.pr-opt__l { display:inline-flex; align-items:center; justify-content:center; width:30px; height:30px; border:2px solid var(--pr-ink); font:900 15px/1 var(--lm-font); }
.pr-opt.is-sel { background:var(--pr-page); box-shadow:inset 0 0 0 2px var(--pr-ink); }
.pr-opt.is-sel .pr-opt__l { background:var(--pr-ink); color:#fff; }
.pr-opt:disabled { cursor:default; color:var(--pr-ink); opacity:1; }
.pr-opt.is-right { background:var(--pr-right-bg); border-color:var(--pr-right); }
.pr-opt.is-right .pr-opt__l { background:var(--pr-right); border-color:var(--pr-right); color:#fff; }
.pr-opt.is-wrong { background:var(--pr-wrong-bg); border-color:var(--pr-wrong); }
.pr-opt.is-wrong .pr-opt__l { background:var(--pr-wrong); border-color:var(--pr-wrong); color:#fff; }

.pr-text { display:block; width:100%; box-sizing:border-box; border:2px solid var(--pr-ink); padding:12px; font:400 15px/1.55 var(--lm-font); resize:vertical; min-height:90px; border-radius:0; background:#fff; }
.pr-text--short { min-height:60px; margin-top:8px; }
.pr-text[readonly] { background:var(--pr-page); }
.pr-num { display:flex; gap:8px; align-items:center; }
.pr input.pr-input { border:2px solid var(--pr-ink); background:#fff; padding:10px 12px; font:700 18px/1.2 var(--lm-font); width:160px; border-radius:0; }
.pr-unit { font:400 16px/1 var(--lm-font); }

.pr-reveal { margin:14px 0 0; }
.pr-verdict { font:700 15px/1.4 var(--lm-font); margin:0 0 8px; }
.pr-verdict.is-right { color:var(--pr-right); }
.pr-verdict.is-wrong { color:var(--pr-wrong); }
.pr-explain { font:400 15px/1.55 var(--lm-font); background:var(--pr-page); border-left:4px solid var(--pr-lime); padding:10px 14px; margin:10px 0 0; }
.pr-ms { border:2px solid var(--pr-ink); padding:16px; background:#fcfdf7; }
.pr-ms__head { display:flex; justify-content:space-between; align-items:center; margin:0 0 8px; }
.pr-ms__head .pr-eyebrow { margin:0; }
.pr-ms__score { font:900 18px/1 var(--lm-font); }
.pr-mps { list-style:none; margin:0; padding:0; display:grid; gap:6px; }
.pr-mp { display:grid; grid-template-columns:22px 1fr; gap:10px; align-items:start; cursor:pointer; font:400 15px/1.45 var(--lm-font); padding:6px 8px; border:1px solid var(--pr-line); background:#fff; }
.pr-mp input { width:18px; height:18px; margin:2px 0 0; accent-color:var(--pr-moss); }
.pr-mp:has(input:checked) { background:var(--pr-right-bg); border-color:var(--pr-right); }
.pr-mp__alt { display:block; font-size:13px; color:var(--pr-muted); margin-top:2px; }
.pr-notes { margin:10px 0 0; padding-left:18px; font:400 13px/1.45 var(--lm-font); color:var(--pr-muted); }
.pr-model { margin:12px 0 0; border:1px solid var(--pr-line); background:#fff; padding:10px 12px; }
.pr-model summary { font:700 14px/1.2 var(--lm-font); cursor:pointer; }
.pr-model p { margin:8px 0 0; font:400 15px/1.55 var(--lm-font); }
.pr-quality { margin:16px 0 0; border:2px solid var(--pr-ink); padding:12px; }

.pr-video { border:2px solid var(--pr-ink); background:var(--pr-ink); color:#fff; padding:16px; }
.pr-video .pr-eyebrow { color:var(--pr-lime); }
.pr-video .pr-note, .pr-video .pr-small { color:#ccc; }
.pr-video--locked { background:var(--pr-paper); color:var(--pr-ink); border-style:dashed; }
.pr-video--locked .pr-eyebrow { color:var(--pr-moss); }
.pr-video--locked .pr-small { color:var(--pr-muted); margin:0; }
.pr-video__play { display:flex; align-items:center; gap:12px; width:100%; aspect-ratio:16/9; justify-content:center; flex-direction:column;
  background:#222; border:2px solid var(--pr-lime); color:#fff; font:700 15px/1.2 var(--lm-font); cursor:pointer; }
.pr-video__tri { width:0; height:0; border-left:22px solid var(--pr-lime); border-top:14px solid transparent; border-bottom:14px solid transparent; }
.pr-video__frame { position:relative; aspect-ratio:16/9; background:#000; }
.pr-video__frame iframe, .pr-video__frame video { position:absolute; inset:0; width:100%; height:100%; border:0; }
.pr-video__soon { font:700 15px/1.35 var(--lm-font); margin:0 0 10px; }
.pr-video--none .pr-btn { background:var(--pr-lime); border-color:var(--pr-lime); }

.pr-q__foot { border-top:2px solid var(--pr-ink); margin:22px 0 0; padding:14px 0 0; }
.pr-q__foot .pr-btns { margin:0 0 8px; }

/* ---- figures ---------------------------------------------------------- */
.pr-fig { margin:6px 0 18px; max-width:640px; }
.pr-fig figcaption { font:400 13px/1.45 var(--lm-font); color:var(--pr-muted); margin:6px 0 0; }
.pr-chart { display:block; width:100%; height:auto; color:var(--pr-ink); font-family:var(--lm-font); background:#fff; }
.pr-grid { stroke:#e6e6e6; stroke-width:1; }
.pr-axis { stroke:var(--pr-ink); stroke-width:1.5; }
.pr-tick { font-size:12px; fill:var(--pr-ink); }
.pr-alabel { font-size:13px; font-weight:700; fill:var(--pr-ink); }
.pr-line { fill:none; stroke:var(--pr-ink); stroke-width:2; }
.pr-line--fit { stroke-width:1.5; stroke-dasharray:6 4; }
.pr-err { fill:none; stroke:var(--pr-ink); stroke-width:1.5; }
.pr-mk { fill:var(--pr-ink); stroke:var(--pr-ink); stroke-width:1.5; }
.pr-mk--open { fill:#fff; }
.pr-mk--line { fill:none; stroke-width:2; }
.pr-bar { stroke:var(--pr-ink); stroke-width:1.5; }
.pr-box { fill:#fff; stroke:var(--pr-ink); stroke-width:1.5; }
.pr-median { stroke:var(--pr-ink); stroke-width:3; }
.pr-legend { list-style:none; display:flex; flex-wrap:wrap; gap:6px 18px; padding:0; margin:6px 0 0; font:400 13px/1.3 var(--lm-font); }
.pr-legend li { display:flex; align-items:center; gap:6px; }
.pr-key { width:34px; height:14px; }
.pr-key[viewBox="0 0 18 14"] { width:18px; }
.pr-table-wrap { overflow-x:auto; }
.pr-table { border-collapse:collapse; font:400 14px/1.4 var(--lm-font); background:#fff; min-width:50%; }
.pr-table th, .pr-table td { border:1.5px solid var(--pr-ink); padding:7px 10px; text-align:center; }
.pr-table th { background:var(--pr-page); font-weight:700; }
.pr .pr-table td:first-child { white-space:normal; }
.pr-fignote { font:400 12px/1.4 var(--lm-font); color:var(--pr-muted); margin:4px 0 0; }
.pr-mono { font:500 15px/1.6 ui-monospace,Menlo,monospace; background:#fff; border:1.5px solid var(--pr-ink); padding:10px 12px; overflow-x:auto; white-space:pre-wrap; word-break:break-all; margin:0; }
.pr-svg { background:#fff; color:var(--pr-ink); }
.pr-svg svg { display:block; max-width:100%; height:auto; font-family:var(--lm-font); }
/* A printed source to analyse (English Paper 1, 28 Oct 2026); image notes in italics. */
.pr-src { font:400 16px/1.6 var(--lm-font); background:#fff; border:1.5px solid var(--pr-ink); padding:16px 18px; }
.pr-src i { color:var(--pr-muted); }
.pr-sample .pr-src { margin:0 0 12px; }
@media (max-width:640px) {
  .pr-q { padding:16px; }
  .pr-q__head { flex-direction:column; }
  .pr-q__side { flex-direction:row; align-items:center; }
}

/* ---- /account/ (10 Oct 2026) ------------------------------------------ */
.acct-wrap { max-width:980px; }
.js #acct.is-checking #acct-signin, .js #acct.is-checking #acct-dash { display:none; }
.acct-checking { display:none; font:600 15px/1.4 var(--lm-font); color:var(--pr-muted); padding:12px 0; }
.js #acct.is-checking .acct-checking { display:block; }
.acct-grid { display:grid; grid-template-columns:minmax(0,1.1fr) minmax(0,1fr); gap:24px; align-items:start; }
@media (max-width:860px) { .acct-grid { grid-template-columns:minmax(0,1fr); } }
.acct-form { border:2px solid var(--pr-ink); background:var(--pr-lime); padding:24px; }
.acct-form h2 { font:900 24px/1.1 var(--lm-font); margin:0 0 8px; }
.acct-form p { margin:0 0 12px; font:400 15px/1.45 var(--lm-font); }
.acct-form label { display:block; font:700 13px/1.2 var(--lm-font); margin:0 0 6px; }
.acct-form input[type=email], .acct-form input[name=code] { width:100%; box-sizing:border-box; border:2px solid var(--pr-ink); padding:12px 14px;
  font:400 16px/1.2 var(--lm-font); background:#fff; border-radius:0; }
.acct-form input[name=code] { font:900 28px/1 ui-monospace,Menlo,monospace; letter-spacing:.35em; text-align:center; max-width:260px; }
.acct-form .pr-btn { background:var(--pr-ink); color:#fff; margin-top:10px; }
.acct-form .pr-btn:hover { background:#333; }
.acct-form .hp { position:absolute; left:-9999px; }
.acct-form .pr-linkbtn { color:#2b3510; }
.acct-fine { font:400 12px/1.45 var(--lm-font); color:#2b3510; margin:12px 0 0; }
.acct-fine a { color:#2b3510; }
.acct-msg { font:600 14px/1.4 var(--lm-font); margin:10px 0 0; color:var(--pr-moss); }
.acct-msg.is-bad { color:var(--pr-wrong); }
.acct-perks { list-style:none; margin:0; padding:0; display:grid; gap:10px; }
.acct-perks li { border:2px solid var(--pr-ink); background:#fff; padding:14px 16px; }
.acct-perks b { display:block; font:900 16px/1.2 var(--lm-font); margin:0 0 4px; }
.acct-perks span { font:400 14px/1.45 var(--lm-font); color:var(--lm-body,#333); }
.acct-hello { margin:0 0 18px; }
.acct-hello .pr-h2 { margin:0 0 4px; }
.acct-card { border:2px solid var(--pr-ink); background:#fff; padding:22px; margin:0 0 18px; }
.acct-card .pr-stats > div { background:var(--pr-page); }
.acct-themes { display:grid; gap:8px; margin:18px 0 0; }
.acct-theme { display:grid; grid-template-columns:30px minmax(0,1fr) 120px 52px; gap:10px; align-items:center; font:400 14px/1.2 var(--lm-font); }
.acct-theme .pr-meter { grid-area:auto; }
.acct-theme__k { display:inline-flex; align-items:center; justify-content:center; width:26px; height:26px; background:var(--pr-lime); border:2px solid var(--pr-ink); font:900 13px/1 var(--lm-font); }
.acct-theme__n { text-align:right; font-weight:700; }
@media (max-width:560px) { .acct-theme { grid-template-columns:30px minmax(0,1fr) 52px; } .acct-theme .pr-meter { display:none; } }
.acct-weak { list-style:none; margin:0; padding:0; display:grid; gap:6px; }
.acct-weak li { font:400 15px/1.4 var(--lm-font); }
.acct-weak span { color:var(--pr-muted); font-size:13px; margin-left:6px; }
.acct-res { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:18px 24px; }
@media (max-width:700px) { .acct-res { grid-template-columns:minmax(0,1fr); } }
.acct-res__group ul { list-style:none; margin:0; padding:0; display:grid; gap:10px; }
.acct-res__group li a { font:700 15px/1.3 var(--lm-font); color:var(--pr-moss); }
.acct-res__group li span { display:block; font:400 13px/1.45 var(--lm-font); color:var(--pr-muted); margin-top:2px; }
.acct-settings p { margin:0 0 10px; font:400 15px/1.5 var(--lm-font); }
.pr-acct { font:400 14px/1.45 var(--lm-font); border:2px dashed var(--pr-ink); background:#fff; padding:10px 14px; margin:0 0 14px; }
.pr-acct.is-on { border-style:solid; background:var(--pr-right-bg); border-color:var(--pr-right); }
.pr-acct a { color:var(--pr-moss); font-weight:700; }
#acct-link-email, #acct-code-to, .acct-hello b, .acct-settings b { overflow-wrap:anywhere; }

/* ---- the wallet, files and referral (Build 1, 26 Oct 2026) --------------- */
.acct-next-why { border:2px solid var(--pr-ink); background:var(--pr-lime); padding:12px 16px; margin:0 0 18px;
  font:600 15px/1.45 var(--lm-font); }
.acct-next-why[hidden] { display:none; }
.acct-next { font:400 15px/1.45 var(--lm-font); margin:0 0 14px; }
.acct-subj { border-top:2px solid var(--pr-ink); padding:14px 0 6px; }
.acct-subj__head { display:flex; flex-wrap:wrap; justify-content:space-between; align-items:baseline; gap:6px 16px; margin:0 0 8px; }
.acct-subj__name { font:900 18px/1.2 var(--lm-font); }
.acct-subj__bal { font:900 22px/1.1 var(--lm-font); background:var(--pr-lime); border:2px solid var(--pr-ink); padding:4px 10px; }
.acct-subj__bal.is-neg { background:var(--pr-wrong-bg); border-color:var(--pr-wrong); color:var(--pr-wrong); }
.acct-hist { margin:0 0 10px; }
.acct-hist summary { cursor:pointer; font:700 14px/1.3 var(--lm-font); color:var(--pr-moss); }
.acct-hist[open] summary { margin-bottom:8px; }
.acct-table { width:100%; border-collapse:collapse; font:400 14px/1.4 var(--lm-font); }
.acct-table th { text-align:left; font:600 11px/1.2 var(--lm-font); letter-spacing:.1em; text-transform:uppercase; color:var(--pr-muted);
  border-bottom:2px solid var(--pr-ink); padding:6px 8px 6px 0; }
.acct-table td { border-bottom:1px solid var(--pr-line); padding:7px 8px 7px 0; vertical-align:top; }
.acct-num { white-space:nowrap; text-align:right; }
.acct-num.is-neg { color:var(--pr-wrong); }
.acct-exp { display:block; font-size:12px; color:var(--pr-muted); }
.acct-files { list-style:none; margin:0; padding:0; display:grid; gap:10px; }
.acct-files a { font:700 15px/1.3 var(--lm-font); color:var(--pr-moss); overflow-wrap:anywhere; }
.acct-files span { display:block; font:400 13px/1.4 var(--lm-font); color:var(--pr-muted); }
.acct-ref p { font:400 15px/1.5 var(--lm-font); margin:0 0 12px; }
.acct-ref-row { display:flex; flex-wrap:wrap; gap:10px; align-items:stretch; margin:0 0 10px; }
.acct-ref-row input { flex:1 1 260px; min-width:0; box-sizing:border-box; border:2px solid var(--pr-ink); padding:10px 12px;
  font:600 15px/1.2 var(--lm-font); background:var(--pr-page); }
.acct-ref-form label { display:block; font:700 13px/1.2 var(--lm-font); margin:0 0 6px; }
.acct-ref-text { border-left:3px solid var(--pr-lime); background:var(--pr-page); padding:10px 14px; overflow-wrap:anywhere; }
@media (max-width:560px) { .acct-table th:nth-child(4), .acct-table td:nth-child(4) { display:none; } }

/* ---- one page per topic (14 Oct 2026) ------------------------------------ */
.pr-crumbs { max-width:1200px; margin:0 auto; padding:20px var(--lm-gutter) 0; box-sizing:border-box; font:600 13px/1.4 var(--lm-font); color:var(--pr-muted); }
.pr-crumbs a { color:var(--pr-ink); }
.pr-crumbs + .pr-hero { padding-top:20px; }
.pr-sample { max-width:760px; border:2px solid var(--pr-ink); background:var(--pr-paper); padding:20px 24px; box-sizing:border-box; }
.pr-sample__title { font:800 20px/1.25 var(--lm-font); margin:0 0 12px; }
.pr-sample p { font:400 16px/1.5 var(--lm-font); margin:0 0 12px; }
.pr-sample__prompt { font-weight:600 !important; }
.pr-sample__marks { font-weight:400; color:var(--pr-muted); white-space:nowrap; }
.pr-sample__opts { margin:0 0 16px; padding-left:28px; font:400 16px/1.5 var(--lm-font); }
.pr-sample__opts li { margin:0 0 6px; padding-left:4px; }
.pr-sample__answer { border-top:2px solid var(--pr-line); padding-top:12px; }
.pr-sample__answer summary { cursor:pointer; font:700 15px/1.3 var(--lm-font); }
.pr-sample__answer[open] summary { margin-bottom:12px; }
.pr-qlist { list-style:none; margin:0; padding:0; max-width:900px; border-top:2px solid var(--pr-ink); }
.pr-qlist li { display:grid; grid-template-columns:auto 1fr; grid-template-areas:"id title" "id meta"; gap:2px 14px;
  padding:12px 0; border-bottom:1px solid var(--pr-line); }
.pr-qlist__id { grid-area:id; font:900 14px/1.4 var(--lm-font); }
.pr-qlist__title { grid-area:title; font:700 15px/1.4 var(--lm-font); }
.pr-qlist__meta { grid-area:meta; font:400 13px/1.3 var(--lm-font); color:var(--pr-muted); }
.pr-related { list-style:none; margin:0 0 16px; padding:0; display:flex; flex-wrap:wrap; gap:8px; }
.pr-related a { display:inline-block; border:2px solid var(--pr-ink); background:var(--pr-paper); padding:8px 12px;
  font:600 14px/1.2 var(--lm-font); color:var(--pr-ink); text-decoration:none; }
.pr-related a:hover { background:var(--pr-lime); }
.pr-faq { margin-top:48px; max-width:900px; }

/* Build 2 (28 Oct 2026): the line at the top of the account after paying on Stripe's page. */
.acct-paid { background: #c5f135; border: 2px solid #111; border-radius: 4px; padding: 12px 16px; margin: 0 0 18px; }
.acct-paid p { margin: 0; }
/* Build 2: the first-run questionnaire. */
.acct-welcome input[type=text], .acct-welcome input:not([type]), .acct-welcome input[type=email] { display:block; width:100%; max-width:420px; margin:6px 0 14px; padding:10px 12px; border:2px solid #111; border-radius:4px; font:inherit; }
.acct-chips { display:flex; flex-wrap:wrap; gap:8px; margin:6px 0 14px; }
.acct-chip { font:inherit; font-size:14px; padding:6px 12px; border:2px solid #111; border-radius:999px; background:#fff; cursor:pointer; }
.acct-chip.is-on { background:#c5f135; font-weight:700; }
.acct-levels { margin:4px 0 14px; }
.acct-level { display:flex; gap:14px; align-items:center; padding:6px 0; border-bottom:1px solid #ddd; }
.acct-level span { flex:1; }
.acct-radio { display:flex; gap:8px; align-items:center; padding:6px 0; }
/* Build 2: booking from the account. */
.acct-upcoming { list-style:none; padding:0; margin:8px 0; }
.acct-upcoming li { padding:4px 0; }
.acct-cal { margin:12px 0; min-height:120px; border:2px solid #111; border-radius:4px; overflow:hidden; background:#fff; }
.acct-free .acct-chips { margin-top:10px; }
/* Build 2: the tutor page. */
.teach-list { list-style:none; padding:0; margin:10px 0 0; }
.teach-list li { display:flex; gap:12px; align-items:center; justify-content:space-between; padding:8px 0; border-bottom:1px solid #ddd; flex-wrap:wrap; }
.teach-list li.is-flagged { background:#f4ffd0; }
#teach form label { display:block; margin:8px 0; }
#teach form input:not([type=checkbox]):not([type=radio]), #teach form select, #teach form textarea { display:block; width:100%; max-width:520px; margin-top:4px; padding:8px 10px; border:2px solid #111; border-radius:4px; font:inherit; }
.teach-hw { border-top:1px solid #ddd; padding:10px 0; }
.acct-hw { border-top:1px solid #ddd; padding:10px 0; }
.acct-hw__state { font-weight:700; }
.acct-handin { display:flex; gap:10px; align-items:center; flex-wrap:wrap; margin:6px 0; }
.acct-notes { padding-left:18px; }
.acct-fb { background:#f4ffd0; padding:8px 10px; border-radius:4px; }

/* ---- /tutors/apply/: the tutor application (Build 2b, 29 Oct 2026) ---- */
.apply-lead { font:400 17px/1.5 var(--lm-font); max-width:640px; margin:0 0 20px; }
.apply-done { border:2px solid var(--pr-ink); background:var(--pr-lime); padding:16px 18px; font:400 16px/1.45 var(--lm-font); }
.apply-form { border:2px solid var(--pr-ink); background:#fff; padding:24px; max-width:720px; }
.apply-form .hp { position:absolute; left:-9999px; }
.apply-row { margin:0 0 16px; }
.apply-row label, .apply-subjects legend { display:block; font:700 14px/1.2 var(--lm-font); margin:0 0 6px; }
.apply-row input[type=text], .apply-row input:not([type]), .apply-row input[type=email], .apply-row input[type=date],
.apply-row textarea { width:100%; box-sizing:border-box; border:2px solid var(--pr-ink); padding:10px 12px; font:400 16px/1.4 var(--lm-font); }
.apply-subjects { border:0; padding:0; margin:0 0 18px; }
.apply-subjects table { border-collapse:collapse; width:100%; font:400 15px/1.3 var(--lm-font); }
.apply-subjects th, .apply-subjects td { text-align:left; padding:8px 6px; border-bottom:1px solid #ddd; }
.apply-subjects thead th { font:700 12px/1.2 var(--lm-font); text-transform:uppercase; letter-spacing:.04em; }
.apply-subjects input[type=checkbox] { width:20px; height:20px; accent-color:var(--pr-ink); }
.apply-subjects select { border:2px solid var(--pr-ink); padding:6px 8px; font:inherit; background:#fff; }
.apply-inline { font:400 15px/1.3 var(--lm-font); display:inline-flex; gap:8px; align-items:center; }

/* ---- "Go through with my tutor" (Build 2b, 29 Oct 2026) ---- */
.pr-flag { display:inline-flex; gap:8px; align-items:center; margin:14px 0 6px; font:700 14px/1.3 var(--lm-font); cursor:pointer; }
.pr-flag input { width:20px; height:20px; accent-color:var(--pr-ink); }
.acct-flags { margin-top:18px; }
.acct-flag-list { list-style:none; padding:0; margin:6px 0 0; }
.acct-flag-list li { padding:6px 0; border-bottom:1px solid #ddd; font:400 15px/1.4 var(--lm-font); }

/* ---- "What do you want to cover?" before a paid lesson (Build 2b, 29 Oct 2026) ---- */
.acct-cover { border:2px solid var(--pr-ink); background:#fff; padding:18px 20px; margin:12px 0; }
.acct-cover__h { font:900 22px/1.15 var(--lm-font); margin:4px 0 6px; }
.acct-cover__label { display:block; font:700 14px/1.2 var(--lm-font); margin:14px 0 6px; }
.acct-cover__label input[type=search], .acct-cover__label textarea { display:block; width:100%; box-sizing:border-box; margin-top:6px;
  border:2px solid var(--pr-ink); padding:10px 12px; font:400 16px/1.4 var(--lm-font); }
.acct-cover__topics { max-height:260px; overflow:auto; border:1px solid #ddd; padding:6px 10px; }
.acct-cover__topic { display:flex; gap:8px; align-items:flex-start; padding:5px 0; font:400 15px/1.35 var(--lm-font); cursor:pointer; }
.acct-cover__topic[hidden] { display:none; }
.acct-cover__topic input { width:18px; height:18px; margin-top:1px; accent-color:var(--pr-ink); flex:none; }
