/* English question text: Century Schoolbook (the phone's own if installed, otherwise the free identical TeX Gyre Schola) */
@font-face { font-family: "Schola"; src: url(/static/fonts/schola-regular.woff2) format("woff2"); font-weight: 400; font-style: normal; font-display: swap; }
@font-face { font-family: "Schola"; src: url(/static/fonts/schola-bold.woff2) format("woff2"); font-weight: 700; font-style: normal; font-display: swap; }
@font-face { font-family: "Schola"; src: url(/static/fonts/schola-italic.woff2) format("woff2"); font-weight: 400; font-style: italic; font-display: swap; }
body.pub .qbody, body.pub .pq-body { font-family: "Century Schoolbook", "Century Schoolbook L", "TeX Gyre Schola", "Schola", "Liberation Serif", serif; }
/* Free public PYQ site — same family as the student pages (student.css), a page that scrolls normally */
html, body.pub { height: auto; overflow: visible; }
body.pub { margin: 0; background: var(--paper); color: var(--ink); font-family: var(--ui); font-size: 15px; display: block; }
.pub-top { display: flex; align-items: center; gap: 14px; padding: 0 20px; height: 58px; background: var(--brand); color: #fff;
  position: sticky; top: 0; z-index: 10; }
.pub-top .brand { color: #fff; text-decoration: none; font-weight: 600; font-size: 18px; }
.pub-top .brand span { color: var(--saffron); font-weight: 500; margin-left: 6px; font-size: 14px; }
.pub-top .grow { flex: 1; }
.pub-link { color: #dfe6f7; text-decoration: none; }
.pub-btn { background: var(--saffron); color: #14214a; text-decoration: none; padding: 7px 12px; border-radius: 8px; font-weight: 600; white-space: nowrap; }
.pub-main { max-width: 1000px; margin: 0 auto; padding: 18px 20px 60px; }
.crumbs { font-size: 13px; color: var(--muted); margin-bottom: 8px; overflow-wrap: anywhere; }
.crumbs a { color: var(--ink-2); }
.pub-main h1 { font-size: 26px; margin: 6px 0 6px; line-height: 1.25; }
.pub-main h1.qh { font-size: 19px; }
.pub-main h2 { font-size: 17px; margin: 22px 0 10px; }
.lead { color: var(--muted); margin: 0 0 16px; }
.pgrid-cards { display: grid; grid-template-columns: repeat(auto-fill, minmax(200px, 1fr)); gap: 12px; }
.pcard { display: flex; flex-direction: column; gap: 4px; background: #fff; border: 1px solid var(--line); border-radius: 12px;
  padding: 16px; text-decoration: none; color: var(--ink); transition: border-color .15s, transform .15s; }
.pcard:hover { border-color: var(--brand-2); transform: translateY(-1px); }
.pcard b { font-size: 16px; } .pcard span { color: var(--muted); font-size: 13px; }
.pcard.alt { background: var(--saffron-soft); }
.pcard.sm { padding: 10px 12px; } .pcard.sm b { font-size: 14px; }
.chlist { background: #fff; border: 1px solid var(--line); border-radius: 12px; overflow: hidden; }
.chrow { display: flex; gap: 12px; align-items: center; padding: 11px 16px; border-bottom: 1px solid var(--line); text-decoration: none; color: var(--ink); }
.chrow:last-child { border-bottom: 0; } .chrow:hover { background: #f6f8fd; }
.chrow .grow { flex: 1; } .chrow .n { color: var(--muted); font-size: 13px; white-space: nowrap; }
.chrow .w { min-width: 54px; text-align: right; font-variant-numeric: tabular-nums; color: var(--ink-2); font-weight: 600; font-size: 13px; }
.pq-tools, .pq-filters { display: flex; gap: 10px; align-items: end; flex-wrap: wrap; margin: 10px 0 14px; }
.pq-filters .grow { flex: 1; }
.pq-filters label.f { display: flex; flex-direction: column; gap: 4px; font-size: 12.5px; color: var(--muted); font-weight: 600; }
.pq-filters select, .rq select { font-size: 16px; padding: 7px 8px; border: 1px solid var(--line); border-radius: 8px; background: #fff; color: var(--ink); max-width: 260px; }
.b { display: inline-flex; align-items: center; gap: 6px; border: 1.5px solid var(--line); background: #fff; color: var(--ink); border-radius: 9px;
  padding: 8px 14px; font: 500 14px var(--ui); cursor: pointer; text-decoration: none; }
.b.primary { background: var(--brand); border-color: var(--brand); color: #fff; }
.b[disabled] { opacity: .5; cursor: default; }
.rq.pubq .rqh, .rq .rqh { display: flex; gap: 10px; align-items: center; flex-wrap: wrap; }
.rq .rqh b a { color: var(--ink); text-decoration: none; }
.ptag { margin-left: auto; color: #b46a00; font-size: 12.5px; background: var(--saffron-soft); border-radius: 6px; padding: 2px 8px; }
.pq-act { display: flex; gap: 8px; align-items: center; flex-wrap: wrap; margin-top: 12px; }
.pq-act .grow { flex: 1; }
.pq-num, #t-num { width: 160px; font-size: 18px; margin: 0; }
.ok { color: var(--s-ans); } .bad { color: var(--s-not); }
.qbody .opts > div.pick { cursor: pointer; border-radius: 8px; padding: 4px 8px; border: 1px solid transparent; }
.qbody .opts > div.pick:hover { border-color: var(--line); background: #f6f8fd; }
.qbody .opts > div.right { background: #e3f6ea; border-color: #9bd8b2; }
.qbody .opts > div.wrong { background: #fde7e7; border-color: #f0a9a9; }
.qbody .opts > div.chosen { background: #e8edfb; border-color: var(--brand-2); }
.pager { display: flex; gap: 6px; flex-wrap: wrap; margin-top: 16px; }
.pager .pg { border: 1px solid var(--line); background: #fff; padding: 6px 11px; border-radius: 8px; text-decoration: none; color: var(--ink); }
.pager .pg.on { background: var(--brand); color: #fff; border-color: var(--brand); }
.chpick { display: grid; grid-template-columns: repeat(auto-fill, minmax(260px, 1fr)); gap: 4px 14px; margin: 10px 0; }
.chpick label { display: flex; gap: 8px; align-items: baseline; }
.tpal { display: flex; flex-wrap: wrap; gap: 6px; margin-top: 14px; }
.tpal button { width: 38px; height: 34px; border-radius: 8px; border: 1px solid var(--line); background: #fff; cursor: pointer; color: var(--ink); }
.tpal button.done { background: #e3f6ea; border-color: #9bd8b2; } .tpal button.cur { outline: 2px solid var(--brand); }
.rq .clock { margin-left: auto; font-variant-numeric: tabular-nums; font-weight: 600; }
.rq.res h2 { margin-top: 0; }
.chip.correct { background: #e3f6ea; color: #136c3a; } .chip.wrong { background: #fde7e7; color: #a32727; } .chip.blank { background: #eef1f6; color: #5d6680; }
.more ul { padding-left: 18px; } .more li { margin: 6px 0; }
.pub-foot { text-align: center; color: var(--muted); font-size: 13px; padding: 24px 16px 34px; }
@media (max-width: 600px) {
  .pub-top { padding: 0 12px; gap: 10px; } .pub-link { display: none; }
  .pub-top .brand span { display: none; }
  .pub-main { padding: 12px 12px 50px; } .pub-main h1 { font-size: 21px; }
  .ptag { margin-left: 0; }
  .chrow { padding: 10px 12px; }
}
html[data-theme=dark] .pcard, html[data-theme=dark] .chlist, html[data-theme=dark] .b, html[data-theme=dark] .pager .pg,
html[data-theme=dark] .tpal button, html[data-theme=dark] .pq-filters select { background: var(--card); color: var(--ink); border-color: var(--line); }
html[data-theme=dark] .chrow:hover, html[data-theme=dark] .qbody .opts > div.pick:hover { background: #18213a; }
html[data-theme=dark] .ptag { background: #3a2d12; color: #f3c27a; }
@media (max-width: 600px) { body.pub .qbody { text-align: left; } }

/* ---------- ExamSide-style chapter pages ---------- */
.pub-main:has(.ch-wrap) { max-width: 1240px; }
.ch-head { display: flex; gap: 16px; align-items: flex-end; justify-content: space-between; flex-wrap: wrap; }
.chlist-head { display: flex; gap: 12px; padding: 14px 16px 6px; color: var(--muted); font-size: 12px; font-weight: 600; text-transform: uppercase; letter-spacing: .04em; }
.chlist-head .grow { flex: 1; } .chlist-head .n { min-width: 70px; text-align: right; } .chlist-head .w { min-width: 120px; text-align: right; }
.chrow .n { min-width: 70px; text-align: right; }
.chrow .w { min-width: 120px; text-align: right; }
h2.br { font-size: 13px; text-transform: uppercase; letter-spacing: .06em; color: var(--muted); margin: 20px 0 8px; }
.tr { font-size: 12px; font-weight: 600; margin-left: 4px; } .tr.up { color: #1f9d55; } .tr.down { color: #d64545; }
.ch-wrap { display: grid; grid-template-columns: 270px minmax(0, 1fr); gap: 22px; align-items: start; }
.ch-side { position: sticky; top: 74px; max-height: calc(100vh - 90px); overflow: auto; background: #fff; border: 1px solid var(--line); border-radius: 12px; padding: 10px; }
.ch-side summary { font-weight: 600; font-size: 14px; padding: 4px 6px 8px; cursor: pointer; }
.sb-g { margin-top: 8px; } .sb-g b { display: block; font-size: 11px; text-transform: uppercase; letter-spacing: .06em; color: var(--muted); padding: 6px 8px 4px; }
.sb-g a { display: block; padding: 7px 8px; border-radius: 8px; color: var(--ink); text-decoration: none; font-size: 14px; }
.sb-g a:hover { background: #f2f5fb; } .sb-g a.on { background: var(--brand); color: #fff; font-weight: 600; }
.ch-card { background: #fff; border: 1px solid var(--line); border-radius: 14px; padding: 18px 20px; }
.ch-top { display: flex; gap: 12px; justify-content: space-between; align-items: flex-start; flex-wrap: wrap; }
.ch-top h1 { margin: 0 0 4px; }
.ch-stats { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 10px; margin-top: 14px; }
.ch-stats div { background: var(--paper); border-radius: 10px; padding: 10px 12px; }
.ch-stats b { display: block; font-size: 22px; line-height: 1.2; font-variant-numeric: tabular-nums; }
.ch-stats span { color: var(--muted); font-size: 12px; text-transform: uppercase; letter-spacing: .04em; }
.ychart { display: flex; align-items: flex-end; gap: 6px; height: 86px; margin-top: 14px; padding-top: 4px; border-bottom: 1px solid var(--line); }
.yb { flex: 1; max-width: 34px; height: 100%; display: flex; flex-direction: column; justify-content: flex-end; align-items: center; gap: 3px; }
.yb i { display: block; width: 100%; background: var(--brand-2); border-radius: 4px 4px 0 0; opacity: .85; }
.yb span { font-size: 10px; color: var(--muted); transform: translateY(14px); }
.tabs { display: flex; gap: 6px; margin: 26px 0 8px; flex-wrap: wrap; }
.tab { border: 1px solid var(--line); background: #fff; border-radius: 999px; padding: 6px 14px; text-decoration: none; color: var(--ink); font-size: 14px; }
.tab b { color: var(--muted); font-weight: 600; margin-left: 4px; } .tab.on { background: var(--brand); border-color: var(--brand); color: #fff; } .tab.on b { color: #dfe6f7; }
.pq-row { display: flex; gap: 12px; align-items: flex-start; }
.pq-n { flex: none; width: 30px; height: 30px; border-radius: 8px; background: var(--paper); color: var(--ink); display: grid; place-items: center;
  font-weight: 600; font-size: 14px; text-decoration: none; }
.pq-main { flex: 1; min-width: 0; }
.pq-tagline { margin-top: 10px; font-size: 13px; color: #b46a00; }
@media (max-width: 900px) {
  .ch-wrap { grid-template-columns: 1fr; }
  .ch-side { position: static; max-height: none; }
  .ch-stats { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .ch-stats b { font-size: 18px; }
  .chlist-head .w, .chrow .w { min-width: 90px; }
}
@media (max-width: 480px) { .pq-n { width: 26px; height: 26px; font-size: 13px; } .pq-row { gap: 8px; } .ch-card { padding: 14px; } }
html[data-theme=dark] .ch-side, html[data-theme=dark] .ch-card, html[data-theme=dark] .tab { background: var(--card); }
html[data-theme=dark] .ch-stats div, html[data-theme=dark] .pq-n { background: #121926; }
html[data-theme=dark] .sb-g a:hover { background: #18213a; }
html[data-theme=dark] .pq-tagline { color: #f3c27a; }
.tr.flat { color: var(--muted); }
@media (max-width: 600px) { .ychart { height: 56px; } .yb { max-width: 22px; } .ch-stats span { font-size: 10.5px; } .ch-top .b { width: 100%; justify-content: center; } }

/* ---------- Selected PYQs (premium sets) ---------- */
.badge { display: inline-block; font-size: 11.5px; font-weight: 600; letter-spacing: .03em; color: #8a5300; background: #ffe7b8;
  border-radius: 20px; padding: 2px 9px; width: fit-content; }
.badge.free { color: #0f6b3a; background: #d7f3e2; }
.pcard.prem { background: linear-gradient(135deg, #fffaf0, #fff 60%); border-color: #f1d49a; }
.prem-banner { display: flex; flex-wrap: wrap; gap: 4px 12px; align-items: center; margin: 0 0 16px; padding: 13px 16px; border-radius: 12px;
  background: linear-gradient(90deg, var(--brand), #2b3f86); color: #fff; text-decoration: none; }
.prem-banner b { color: var(--saffron); } .prem-banner span { color: #e4e9f8; font-size: 14px; }
.prem-head h1 { margin-top: 8px; }
.rq.locked { background: repeating-linear-gradient(135deg, #fafbfe, #fafbfe 10px, #f3f5fb 10px, #f3f5fb 20px); border-style: dashed; }
.rq.locked p { margin: 2px 0 6px; }
.prem-cta { display: flex; flex-direction: column; gap: 6px; align-items: flex-start; margin: 12px 0; padding: 16px; border-radius: 12px;
  background: var(--saffron-soft); border: 1px solid #f1d49a; }
.prem-cta span { color: var(--ink-2); font-size: 14px; }
.prem-cta.in-res { margin-top: 12px; }
.sample-card { display: flex; flex-wrap: wrap; gap: 12px; align-items: center; justify-content: space-between; margin: 14px 0; padding: 16px;
  border-radius: 12px; background: #f1fbf5; border: 1px solid #b9e6cb; }
.sample-card > div { display: flex; flex-direction: column; gap: 4px; min-width: 0; flex: 1 1 260px; }
.sample-card b { font-size: 16px; } .sample-card span:not(.badge) { color: var(--muted); font-size: 13.5px; }
#sample-run:empty { display: none; }
.set-maker { margin-top: 24px; }
.set-maker::before { content: "Make your own test from this set"; display: block; font-weight: 600; font-size: 17px; margin-bottom: 10px; }
html[data-theme=dark] .pcard.prem, html[data-theme=dark] .rq.locked { background: var(--card); }
html[data-theme=dark] .sample-card { background: #12301f; border-color: #285a3c; }
html[data-theme=dark] .prem-cta { background: #3a2d10; border-color: #6a5220; }
html[data-theme=dark] .prem-cta span { color: var(--ink); }

/* ---------- phone fit (teacher, Oct 2026) ---------- */
.ch-wrap > * { min-width: 0; }
@media (max-width: 900px) { .ch-wrap { grid-template-columns: minmax(0, 1fr); } }
.ch-side a, .ch-side b { overflow-wrap: anywhere; }
body.pub .qbody img, body.pub .rq img { max-width: 100%; height: auto; }
body.pub .qbody .katex { font-size: 1.06em; }
body.pub .qbody .opts.one { grid-template-columns: 1fr !important; }
.kscroll { display: block; max-width: 100%; overflow-x: auto; overflow-y: hidden; padding: 2px 0; scrollbar-width: thin; }

/* ---------- one question per page (ExamSIDE style) ---------- */
.qnav { display: flex; align-items: center; justify-content: space-between; gap: 10px; margin: 10px 0 12px; }
.qnav .b.dis { opacity: .4; pointer-events: none; }
.qmeta { display: flex; align-items: center; flex-wrap: wrap; gap: 6px 6px; margin-bottom: 10px; font-size: 14px; }
.qmeta .chip { background: #eef1f6; color: #4a5470; border-radius: 999px; padding: 2px 10px; font-size: 12.5px; }
.qmeta .mk { border-radius: 6px; padding: 1px 7px; font-size: 12.5px; font-weight: 700; }
.qmeta .mk.ok { background: #e3f6ea; color: #136c3a; } .qmeta .mk.bad { background: #fde7e7; color: #a32727; }
.qmeta .grow { flex: 1; }
.qmeta .ib { border: 1px solid var(--line); background: #fff; border-radius: 8px; width: 30px; height: 30px; padding: 0; font-size: 16px; cursor: pointer; color: var(--ink); }
.qmeta .ib.on { color: #d48a00; border-color: #e7c27a; }
.rep { border: 1px solid var(--line); border-radius: 10px; padding: 10px; margin-bottom: 10px; display: grid; gap: 8px; }
.rep textarea { width: 100%; box-sizing: border-box; font: inherit; padding: 8px; border-radius: 8px; border: 1px solid var(--line); }
body.single-q .qbody .opts { grid-template-columns: 1fr !important; gap: 8px; }
body.single-q .qbody .opts > div { border: 1px solid var(--line); border-radius: 10px; padding: 10px 12px; }
body.single-q .qbody .opts > div.pick:hover { border-color: var(--brand-2); }
html[data-theme=dark] .qmeta .chip { background: #222b45; color: #c4cbe0; }
html[data-theme=dark] .qmeta .ib, html[data-theme=dark] .rep textarea { background: var(--card); color: var(--ink); border-color: var(--line); }
html[data-theme=dark] .qmeta .mk.ok { background: #143a25; color: #8fe0b0; } html[data-theme=dark] .qmeta .mk.bad { background: #3d1a1a; color: #f0a9a9; }

/* ---------- PYQSide (pyqside.com): own brand, header tools ---------- */
body.ps { --brand: #312e81; --brand-2: #4f46e5; }
.pub-top { padding-top: env(safe-area-inset-top); }
.pub-top .brand.ps { display: flex; align-items: center; gap: 8px; }
.pub-top .brand.ps img { border-radius: 7px; display: block; }
.pub-top .brand .wm { font-size: 20px; letter-spacing: .2px; color: #fff; margin: 0; font-weight: 700; }
.pub-top .brand .wm b { color: #fbbf24; font-weight: 700; }
.pub-ib { background: transparent; border: 0; color: #e0e7ff; font-size: 20px; width: 36px; height: 36px; border-radius: 8px; cursor: pointer; line-height: 1; }
.pub-ib:hover { background: rgba(255,255,255,.12); }
button.pub-btn { border: 0; cursor: pointer; font: inherit; font-weight: 600; }
.sbox { display: flex; gap: 8px; margin: 8px 0 16px; }
.sbox input { flex: 1; min-width: 0; font: inherit; padding: 10px 12px; border: 1px solid var(--line); border-radius: 10px; background: var(--card, #fff); color: var(--ink); }
.sbox.top { max-width: 1000px; margin: 0 auto; padding: 10px 20px; box-sizing: border-box; background: var(--paper); position: sticky; top: 58px; z-index: 9; border-bottom: 1px solid var(--line); }

/* out of syllabus */
.oos { display: inline-block; background: #fee2e2; color: #b91c1c; font-size: 11.5px; font-weight: 600; border-radius: 6px; padding: 1px 7px; margin-right: 8px; }
.chrow.oosc .grow { text-decoration: line-through; text-decoration-color: #ef4444; color: var(--muted); }
.oos-note { background: #fff7ed; border: 1px solid #fed7aa; color: #9a3412; border-radius: 10px; padding: 8px 12px; font-size: 13.5px; }

/* progress */
.chrow .grow { position: relative; }
.chrow .prog { display: block; height: 3px; border-radius: 3px; margin-top: 5px; background: linear-gradient(90deg, #22c55e var(--w, 0%), var(--line) var(--w, 0%)); max-width: 260px; }
.chrow .prog[hidden] { display: none; }
.subj-prog { background: #ecfdf5; border: 1px solid #a7f3d0; color: #065f46; border-radius: 10px; padding: 9px 14px; margin: 0 0 14px; font-size: 14px; }
.subj-prog a { color: #047857; font-weight: 600; }
.pq-tagline .st { font-weight: 600; font-size: 12px; margin-right: 10px; }
.pq-tagline .st.ok { color: #15803d; } .pq-tagline .st.bad { color: #dc2626; }
.pq-tagline .cbm { float: right; background: none; border: 0; cursor: pointer; font-size: 17px; color: var(--muted); padding: 0 2px; line-height: 1; }
.pq-tagline .cbm.on { color: #f59e0b; }
.list-bar { display: flex; align-items: center; gap: 10px; } .list-bar .grow { flex: 1; }
.hide-solved { display: flex; align-items: center; gap: 6px; white-space: nowrap; color: var(--ink-2); cursor: pointer; }
.hintbox { background: #fffbeb; border: 1px dashed #f59e0b; border-radius: 10px; padding: 8px 12px; margin: 8px 0; }

/* my practice */
.me-stats { display: grid; grid-template-columns: repeat(5, 1fr); gap: 10px; margin: 6px 0 18px; }
.me-stats > div { background: var(--card, #fff); border: 1px solid var(--line); border-radius: 12px; padding: 12px 8px; text-align: center; }
.me-stats b { display: block; font-size: 22px; } .me-stats span { color: var(--muted); font-size: 12.5px; }
.me-tabs .tab { cursor: pointer; }
.me-list { padding-left: 20px; line-height: 1.55; } .me-list li { margin: 6px 0; }
.linkish { background: none; border: 0; color: var(--brand-2); text-decoration: underline; cursor: pointer; font: inherit; padding: 0; }
.about { line-height: 1.8; }
@media (max-width: 640px) {
  .me-stats { grid-template-columns: repeat(3, 1fr); }
  .pub-top .brand .wm { font-size: 18px; }
  .pub-ib { width: 32px; font-size: 18px; }
  .sbox.top { top: 58px; padding: 8px 12px; }
}
html[data-theme=dark] .oos { background: #4c1d1d; color: #fca5a5; }
html[data-theme=dark] .oos-note { background: #3b2412; border-color: #7c3a12; color: #fdba74; }
html[data-theme=dark] .subj-prog { background: #0f2e25; border-color: #14532d; color: #86efac; }
html[data-theme=dark] .subj-prog a { color: #6ee7b7; }
html[data-theme=dark] .hintbox { background: #2f2610; }
html[data-theme=dark] .me-stats > div { background: var(--card); }
/* phones: app-style bottom bar */
.bnav { display: none; }
@media (max-width: 640px) {
  .bnav { display: flex; position: fixed; left: 0; right: 0; bottom: 0; z-index: 20; background: var(--card, #fff); border-top: 1px solid var(--line);
    padding-bottom: env(safe-area-inset-bottom); }
  .bnav a { flex: 1; text-align: center; padding: 6px 0 7px; font-size: 11.5px; color: var(--ink-2); text-decoration: none; }
  .bnav a i { display: block; font-style: normal; font-size: 19px; line-height: 1.2; }
  body.pub { padding-bottom: 58px; }
  #pub-search-btn { display: none; }
}
.pub-top .brand.ps .wm { display: inline; }
.adu { margin: 18px 0; min-height: 280px; text-align: center; } .adu .adl { display: block; font-size: 11px; color: var(--muted); margin-bottom: 4px; }
@media (max-width: 640px) { .me-stats { grid-template-columns: repeat(5, 1fr); gap: 6px; } .me-stats b { font-size: 17px; } .me-stats span { font-size: 10.5px; } .me-stats > div { padding: 9px 2px; } }
.pub-lang { background: rgba(255,255,255,.12); color: #fff; border: 1px solid rgba(255,255,255,.25); border-radius: 8px; padding: 5px 6px; font: inherit; font-size: 13.5px; max-width: 96px; }
.pub-lang option { color: #111; }
.langmiss { font-size: 12px; color: #92400e; background: #fffbeb; border-radius: 6px; padding: 3px 8px; margin-bottom: 6px; display: inline-block; }
html[data-theme=dark] .langmiss { background: #2f2610; color: #fcd34d; }
html[lang=hi] .qbody, html[lang=bn] .qbody, html[lang=gu] .qbody, html[lang=ta] .qbody { line-height: 1.75; }
.ch-btns { display: flex; gap: 8px; flex-wrap: wrap; }
.b.pdfb { color: #c2410c; border-color: #fdba74; } .b.pdfb.busy { opacity: .7; pointer-events: none; }
html[data-theme=dark] .b.pdfb { color: #fdba74; border-color: #7c3a12; }
/* phones: each chapter as a card — full name on top, numbers below (no squeezed table) */
@media (max-width: 640px) {
  .chlist-head { display: none; }
  .chlist { background: transparent; border: 0; display: grid; gap: 8px; }
  .chrow { display: grid; grid-template-columns: 1fr auto; grid-template-areas: "name name" "n w"; row-gap: 6px; border: 1px solid var(--line);
    border-radius: 12px; background: var(--card, #fff); padding: 12px 14px; }
  .chrow:last-child { border-bottom: 1px solid var(--line); }
  .chrow .grow { grid-area: name; font-weight: 600; }
  .chrow .n { grid-area: n; } .chrow .n::after { content: " questions"; }
  .chrow .w { grid-area: w; } .chrow .w::after { content: " weightage"; font-weight: 400; color: var(--muted); font-size: 12px; }
  .chrow.oosc .grow::after { content: "Out of syllabus"; text-decoration: none; display: inline-block; margin-left: 8px; background: #fee2e2; color: #b91c1c;
    font-size: 11px; font-weight: 600; border-radius: 6px; padding: 1px 7px; }
  .ch-top { flex-direction: column; align-items: stretch; } .ch-btns > * { flex: 1; text-align: center; justify-content: center; }
}
html[data-theme=dark] .chrow.oosc .grow::after { background: #4c1d1d; color: #fca5a5; }
@media (max-width: 640px) { .chrow { grid-template-columns: auto 1fr; column-gap: 14px; } .chrow .n, .chrow .w { justify-self: start; text-align: left; min-width: 0; } }
/* free PDF section */
.pdfrow { display: flex; align-items: center; gap: 12px; padding: 11px 14px; border: 1px solid var(--line); border-radius: 12px; background: var(--card, #fff);
  text-decoration: none; color: var(--ink); margin: 8px 0; }
.pdfrow:hover { border-color: #fb923c; }
.pdfrow .pi { background: #fff7ed; color: #c2410c; font-weight: 700; font-size: 11px; border-radius: 6px; padding: 6px 6px; border: 1px solid #fed7aa; }
.pdfrow .grow { flex: 1; min-width: 0; } .pdfrow small { display: block; color: var(--muted); font-size: 12px; margin-top: 2px; }
.pdfrow .dl { font-size: 18px; color: #c2410c; }
.pdfch details { margin: -4px 0 10px 14px; } .pdfch summary { cursor: pointer; color: var(--brand-2); font-size: 13.5px; }
.toplinks { display: flex; flex-wrap: wrap; gap: 6px; margin-top: 8px; }
.toplinks a { border: 1px solid var(--line); border-radius: 999px; padding: 4px 10px; font-size: 13px; text-decoration: none; color: var(--ink); background: var(--card, #fff); }
.toplinks a small { color: var(--muted); }
.pcard.pdfc { background: #fff7ed; border-color: #fed7aa; }
html[data-theme=dark] .pcard.pdfc, html[data-theme=dark] .pdfrow .pi { background: #3b2412; border-color: #7c3a12; color: #fdba74; }
html[data-theme=dark] .pdfrow, html[data-theme=dark] .toplinks a { background: var(--card); }
/* Indian languages: one font family that carries both the script and Latin letters, designed to match in size */
html[lang=hi] .qbody, html[lang=mr] .qbody { font-family: "Noto Serif Devanagari", "Times New Roman", serif; }
html[lang=gu] .qbody { font-family: "Noto Serif Gujarati", "Times New Roman", serif; }
html[lang=ta] .qbody { font-family: "Noto Serif Tamil", "Times New Roman", serif; }
html[lang=bn] .qbody { font-family: "Noto Serif Bengali", "Times New Roman", serif; }
html[lang=hi] .qbody, html[lang=mr] .qbody, html[lang=gu] .qbody, html[lang=ta] .qbody, html[lang=bn] .qbody { font-size: 16px; }
.ystats { margin-top: 12px; border-top: 1px solid var(--line); padding-top: 10px; }
.ystats summary { cursor: pointer; font-weight: 600; } .ystats summary small { font-weight: 400; color: var(--muted); margin-left: 6px; }
.ystats table { width: 100%; border-collapse: collapse; margin-top: 8px; font-size: 13.5px; font-variant-numeric: tabular-nums; }
.ystats th, .ystats td { text-align: left; padding: 6px 6px; border-bottom: 1px solid var(--line); }
.ystats th { color: var(--muted); font-weight: 600; font-size: 12px; text-transform: uppercase; letter-spacing: .3px; }
.b.sm { padding: 4px 10px; font-size: 13px; }
.chrow .redu { font-style: normal; display: inline-block; margin-left: 8px; background: #fef3c7; color: #92400e; font-size: 11px; font-weight: 600; border-radius: 6px; padding: 1px 7px; }
.chrow .ly { display: block; font-size: 11px; color: var(--muted); }
.subj-tabs { margin-top: 18px; position: sticky; top: 58px; background: var(--paper); z-index: 5; padding: 6px 0; }
.subj-all h2 .small { font-weight: 500; margin-left: 8px; }
html[data-theme=dark] .chrow .redu { background: #3a2d12; color: #fcd34d; }
@media (max-width: 640px) { .chrow .ly { display: inline; margin-left: 6px; } .chrow .ly::before { content: "· "; } .chrow .n::after { content: ""; } .chrow .n { white-space: nowrap; } }
.chrow .qw { display: none; }
@media (max-width: 640px) { .chrow .qw { display: inline; } }
/* OMR-style option bubbles */
.qbody .opts > div.has-bub { display: flex; align-items: flex-start; gap: .5em; }
.qbody .opts .bub { flex: none; display: inline-grid; place-items: center; width: 1.6em; height: 1.6em; margin-top: .05em; border: 1.6px solid #64748b;
  border-radius: 50%; font: 600 .82em/1 var(--ui); color: var(--ink-2); background: transparent; transition: background .15s, border-color .15s, color .15s; }
.qbody .opts > div.pick:hover .bub { border-color: var(--brand-2); color: var(--brand-2); }
.qbody .opts > div.chosen .bub { background: var(--brand-2); border-color: var(--brand-2); color: #fff; }
.qbody .opts > div.right .bub, .qbody .opts > div.correct .bub { background: #16a34a; border-color: #16a34a; color: #fff; }
.qbody .opts > div.wrong .bub { background: #dc2626; border-color: #dc2626; color: #fff; }
html[data-theme=dark] .qbody .opts .bub { border-color: #94a3b8; color: #cbd5e1; }
.qbody .opts > div.chosen .bub, .qbody .opts > div.right .bub, .qbody .opts > div.correct .bub, .qbody .opts > div.wrong .bub { color: #fff !important; }
.qbody .opts > div.wrong .bub { background: #dc2626 !important; border-color: #dc2626 !important; }
.qbody .opts > div.right .bub, .qbody .opts > div.correct .bub { background: #16a34a !important; border-color: #16a34a !important; }
html[data-theme=dark] .qbody .opts > div.wrong, html[data-theme=dark] .qbody .opts > div.wrong:hover { background: #3b1a1a !important; border-color: #7f1d1d !important; }
html[data-theme=dark] .qbody .opts > div.right { background: #0f2e1d; border-color: #14532d; }
/* answer feedback (better than ExamSIDE): thick coloured border, tag on the right, untouched options faded, shake / pop */
.qbody .opts > div.done { cursor: default; }
.qbody .opts > div.right { border: 2px solid #16a34a !important; background: #f0fdf4 !important; }
.qbody .opts > div.wrong { border: 2px solid #dc2626 !important; background: #fef2f2 !important; }
.qbody .opts > div.done:not(.right):not(.wrong) { opacity: .55; }
.qbody .opts > div[data-pill]::after { content: attr(data-pill); margin-left: auto; flex: none; align-self: center; font: 600 12px/1 var(--ui);
  color: #fff; background: #16a34a; border-radius: 999px; padding: 6px 10px; white-space: nowrap; }
.qbody .opts > div.wrong[data-pill]::after { background: #dc2626; }
.qbody .opts > div.shake { animation: pq-shake .38s ease; }
.qbody .opts > div.pop { animation: pq-pop .3s ease; }
@keyframes pq-shake { 0%, 100% { transform: translateX(0); } 20% { transform: translateX(-6px); } 40% { transform: translateX(6px); } 60% { transform: translateX(-4px); } 80% { transform: translateX(3px); } }
@keyframes pq-pop { 0% { transform: scale(1); } 50% { transform: scale(1.025); } 100% { transform: scale(1); } }
@media (prefers-reduced-motion: reduce) { .qbody .opts > div.shake, .qbody .opts > div.pop { animation: none; } }
html[data-theme=dark] .qbody .opts > div.right { background: #0f2e1d !important; }
html[data-theme=dark] .qbody .opts > div.wrong { background: #3b1a1a !important; }
.qbody .sol-h { font: 700 12px/1 var(--ui); letter-spacing: .6px; text-transform: uppercase; color: var(--muted); margin: 14px 0 6px; }
/* question text, options and solutions: justified like the printed material, with hyphenation so phones get no big gaps */
body.pub .qbody { text-align: left; hyphens: manual; overflow-wrap: break-word; }                   /* phones: left (no word gaps) */
@media (min-width: 600px) {                                                                             /* tablets / computers: justified */
  body.pub .qbody, body.pub .qbody .opts > div { text-align: justify; text-justify: inter-word; hyphens: auto; -webkit-hyphens: auto; }
}
body.pub .qbody table, body.pub .qbody .katex-display { text-align: initial; hyphens: manual; }
/* question number on a top line with the exam tag — the question text gets the full width (all screens) */
.pq-row { display: grid; grid-template-columns: auto 1fr; grid-template-areas: "n tag" "body body"; column-gap: 10px; row-gap: 8px; align-items: center; }
.pq-main { display: contents; }
.pq-n { grid-area: n; width: auto !important; min-width: 28px; height: 26px !important; padding: 0 8px; font-size: 13px; }
.pq-tagline { grid-area: tag; margin-top: 0; min-width: 0; }
.pq-body { grid-area: body; min-width: 0; }
body.single-q #q1 .pq-row { grid-template-columns: 1fr; grid-template-areas: "tag" "body"; }
body.single-q #q1 .pq-n { display: none; }
body.single-q #q1 .pq-row { grid-template-areas: "body"; } body.single-q #q1 .pq-tagline { display: none; }
.pq-tagline { padding-left: 0 !important; }
/* every question on PYQSide: one option per row as a full-width tap card; picture options (structures / graphs) 2 per row */
body.pub .qbody .opts { grid-template-columns: 1fr !important; gap: 8px; margin-top: 10px; }
body.pub .qbody .opts > div { border: 1px solid var(--line); border-radius: 10px; padding: 10px 12px; background: var(--card, #fff); }
body.pub .qbody .opts > div.pick:hover { border-color: var(--brand-2); }
body.pub .qbody .opts.pics { grid-template-columns: 1fr 1fr !important; }
body.pub .qbody .opts.pics > div { flex-wrap: nowrap; justify-content: flex-start; align-items: flex-start; text-align: left; }
body.pub .qbody .opts.pics > div img, body.pub .qbody .opts.pics > div svg { max-width: 100%; height: auto; }
html[data-theme=dark] body.pub .qbody .opts > div { background: #121926; }
/* colour themes (chosen with ◐) */
html[data-skin=nta] body.pub { --brand: #0b4f8a; --brand-2: #1565c0; }
html[data-skin=green] body.pub { --brand: #0E634E; --brand-2: #138a6c; }
html[data-skin=charcoal] body.pub { --brand: #1f2937; --brand-2: #374151; }
html[data-skin=nta] .pub-top .brand .wm b { color: #ffd54f; }
.look { position: fixed; top: 62px; right: 10px; z-index: 30; width: 260px; background: var(--card, #fff); color: var(--ink); border: 1px solid var(--line);
  border-radius: 14px; box-shadow: 0 10px 30px rgba(0,0,0,.18); padding: 12px 14px; font-size: 14px; }
.look b { display: block; margin: 4px 0 6px; font-size: 12px; text-transform: uppercase; letter-spacing: .4px; color: var(--muted); }
.look .seg { display: flex; gap: 6px; margin-bottom: 10px; }
.look .seg button, .look .sw button { flex: 1; border: 1px solid var(--line); background: transparent; color: var(--ink); border-radius: 8px; padding: 7px 6px; cursor: pointer; font: inherit; font-size: 13px; }
.look .sw { display: grid; grid-template-columns: 1fr 1fr; gap: 6px; }
.look .sw button { display: flex; align-items: center; gap: 8px; text-align: left; }
.look .sw i { width: 18px; height: 18px; border-radius: 50%; flex: none; }
.look button.on { border-color: var(--brand-2); box-shadow: 0 0 0 1px var(--brand-2) inset; font-weight: 600; }
html[data-theme=dark] .look { background: #121926; }
/* NTA computer-based-test screen (timed tests) */
.cbt-top { display: flex; align-items: center; gap: 8px; background: var(--brand); color: #fff; border-radius: 10px 10px 0 0; padding: 10px 14px; position: sticky; top: 58px; z-index: 6; }
.cbt-top .grow, .cbt-nav .grow { flex: 1; }
.cbt-time b { font-variant-numeric: tabular-nums; background: rgba(255,255,255,.15); padding: 3px 8px; border-radius: 6px; margin-left: 4px; }
.cbt-q { border-top-left-radius: 0; border-top-right-radius: 0; margin-top: 0; }
.cbt-q .ptag { display: inline-block; margin-bottom: 8px; }
.cbt-btns { display: grid; grid-template-columns: 1fr 1fr; gap: 8px; margin: 12px 0 8px; }
.cbt-nav { display: flex; gap: 8px; margin-bottom: 14px; }
.nb { border: 1px solid #c8ccd6; border-radius: 6px; padding: 10px 8px; font: 600 13px/1.2 var(--ui); cursor: pointer; text-transform: uppercase; letter-spacing: .2px; }
.nb:disabled { opacity: .45; cursor: default; }
.nb.g { background: #2e9e47; border-color: #2e9e47; color: #fff; } .nb.o { background: #f39c12; border-color: #f39c12; color: #fff; }
.nb.b2 { background: #2f6fb5; border-color: #2f6fb5; color: #fff; } .nb.w { background: #fff; color: #222; }
.cbt-legend { display: grid; grid-template-columns: 1fr 1fr; gap: 8px 12px; font-size: 12.5px; margin: 6px 0 12px; }
.cbt-legend span { display: flex; align-items: center; gap: 8px; } .cbt-legend .wide { grid-column: 1 / -1; }
.cbt-pal { display: grid; grid-template-columns: repeat(auto-fill, minmax(42px, 1fr)); gap: 8px; }
/* NTA palette shapes and colours */
.pst { display: inline-grid; place-items: center; min-width: 34px; height: 30px; font: 700 13px var(--ui); font-style: normal; border: 1px solid #b9bec9; background: #f1f2f6; color: #333; border-radius: 4px; position: relative; cursor: pointer; }
.cbt-pal .pst { width: 100%; height: 36px; }
.pst.na { background: #e74c3c; border-color: #d0392b; color: #fff; border-radius: 4px 4px 14px 14px; }
.pst.ans { background: #2e9e47; border-color: #25863b; color: #fff; border-radius: 14px 14px 4px 4px; }
.pst.mr { background: #6c3fa8; border-color: #5b3290; color: #fff; border-radius: 50%; }
.pst.am { background: #6c3fa8; border-color: #5b3290; color: #fff; border-radius: 50%; }
.pst.am::after { content: "✓"; position: absolute; right: -2px; bottom: -3px; width: 14px; height: 14px; border-radius: 50%; background: #2e9e47; color: #fff; font-size: 9px; display: grid; place-items: center; }
.cbt-legend .pst.mr, .cbt-legend .pst.am { width: 30px; min-width: 30px; }
.cbt-pal .pst.cur { outline: 2px solid var(--brand-2); outline-offset: 2px; }
html[data-theme=dark] .nb.w { background: #1b2333; color: #e5e7eb; border-color: #334155; } html[data-theme=dark] .pst.nv { background: #1b2333; color: #cbd5e1; border-color: #334155; }
@media (max-width: 400px) { .nb { font-size: 11.5px; padding: 9px 6px; } }
body.pub .pub-main { overflow: visible; overflow-x: clip; }      /* lets the test's timer bar stay on screen while scrolling */
.cbt-pd { border: 1px solid var(--line); border-radius: 10px; padding: 10px 12px; background: var(--card, #fff); }
.cbt-pd summary { cursor: pointer; font-weight: 700; } .cbt-pd summary small { font-weight: 400; color: var(--muted); margin-left: 6px; }
.cbt-pd[open] summary { margin-bottom: 10px; }
html[data-theme=dark] .cbt-pd { background: #121926; }
/* bubble vertically centred with the option text (one-line and multi-line options) */
.qbody .opts > div.has-bub { align-items: center; min-height: 46px; }
.qbody .opts .bub { margin-top: 0; align-self: center; }
.qbody .opts > div.has-bub > .katex, .qbody .opts > div.has-bub > img.mimg { vertical-align: middle; }
/* paper-wise list and paper page (ExamSIDE parity + more) */
.ychips { display: flex; gap: 8px; overflow-x: auto; padding: 4px 0 10px; margin-bottom: 6px; scrollbar-width: none; position: sticky; top: 58px; background: var(--paper); z-index: 5; }
.ychips::-webkit-scrollbar { display: none; }
.ychips a { flex: none; border: 1px solid var(--line); border-radius: 999px; padding: 6px 12px; text-decoration: none; color: var(--ink); background: var(--card, #fff); font-size: 13.5px; }
.ychips a b { color: var(--brand-2); margin-left: 4px; }
.yr h2 small, h2.br small { font-weight: 400; color: var(--muted); font-size: 13px; margin-left: 6px; text-transform: none; letter-spacing: 0; }
.papcards { display: grid; grid-template-columns: repeat(auto-fill, minmax(260px, 1fr)); gap: 10px; }
.papcard { border: 1px solid var(--line); border-radius: 12px; background: var(--card, #fff); padding: 12px 14px; }
.papcard .pt { display: flex; flex-direction: column; gap: 2px; text-decoration: none; color: var(--ink); }
.papcard .pt span { color: var(--muted); font-size: 13px; }
.papcard .pb { display: flex; gap: 6px; margin-top: 10px; } .papcard .pb .b { flex: 1; justify-content: center; text-align: center; }
.allch { margin-top: 14px; border: 1px solid var(--line); border-radius: 12px; padding: 10px 14px; background: var(--card, #fff); }
.allch summary { cursor: pointer; font-weight: 600; }
.allch .sb-g { margin-top: 10px; } .allch .sb-g b { display: block; font-size: 12px; text-transform: uppercase; letter-spacing: .4px; color: var(--muted); margin-bottom: 4px; }
.allch .sb-g a { display: block; padding: 5px 0; color: var(--ink); text-decoration: none; border-bottom: 1px solid var(--line); }
.allch .sb-g a.on { color: var(--brand-2); font-weight: 600; }
html[data-theme=dark] .papcard, html[data-theme=dark] .allch, html[data-theme=dark] .ychips a { background: #121926; }
.feed h2 { margin-top: 26px; } .feed .more-btn { width: 100%; justify-content: center; margin-top: 4px; }
/* jumps (chips, anchors, scrollIntoView) stop just below the sticky top bar; the bar casts a soft shadow */
html { scroll-padding-top: 72px; }
body.pub .pub-top { box-shadow: 0 2px 10px rgba(0,0,0,.18); }
.pubq, .ch-card, section[id], .cbt { scroll-margin-top: 72px; }

/* question list drawer (☰) */
.qmeta .ib.qlb { font-size: 15px; }
.qdr { position: fixed; inset: 0; z-index: 80; }
.qdr-bg { position: absolute; inset: 0; background: rgba(10, 16, 30, .45); opacity: 0; transition: opacity .2s; }
.qdr-p { position: absolute; top: 0; right: 0; bottom: 0; width: min(420px, 90vw); background: var(--card, #fff); color: var(--ink);
  display: flex; flex-direction: column; box-shadow: -8px 0 30px rgba(0,0,0,.25); transform: translateX(100%); transition: transform .2s ease-out; }
.qdr.in .qdr-bg { opacity: 1; } .qdr.in .qdr-p { transform: none; }
html.qdr-open, html.qdr-open body { overflow: hidden; }
.qdr-h { display: flex; align-items: center; gap: 8px; padding: 10px 12px; border-bottom: 1px solid var(--line); }
.qdr-tabs { display: flex; gap: 4px; flex: 1; }
.qdr-tabs button, .qdr-f button { border: 1px solid var(--line); background: transparent; color: var(--ink); border-radius: 999px; padding: 5px 12px; font: 600 13px var(--ui, sans-serif); cursor: pointer; }
.qdr-tabs button.on, .qdr-f button.on { background: var(--brand); border-color: var(--brand); color: #fff; }
.qdr-x { border: 0; background: transparent; color: var(--ink); font-size: 20px; width: 36px; height: 36px; cursor: pointer; }
.qdr-sum { padding: 8px 14px 4px; display: flex; flex-direction: column; gap: 2px; font: 13px var(--ui, sans-serif); color: var(--muted); }
.qdr-sum b { color: var(--ink); font-size: 14px; }
.qdr-sum i { font-style: normal; font-weight: 700; } .qdr-sum i.ok { color: #1a8a4a; } .qdr-sum i.bad { color: #c03030; }
.qdr-f { display: flex; flex-wrap: wrap; gap: 6px; padding: 8px 12px 10px; border-bottom: 1px solid var(--line); }
.qdr-f button { padding: 4px 10px; font-size: 12.5px; }
.qdr-f input { flex: 1; min-width: 90px; border: 1px solid var(--line); border-radius: 8px; padding: 5px 9px; background: transparent; color: var(--ink); font: 13px var(--ui, sans-serif); }
.qdr-l { overflow-y: auto; flex: 1; overscroll-behavior: contain; padding-bottom: 20px; }
.qdr-g { position: sticky; top: 0; background: var(--card, #fff); padding: 8px 14px 4px; font: 700 12px var(--ui, sans-serif); letter-spacing: .6px; text-transform: uppercase; color: var(--muted); }
.qdr-r { display: flex; gap: 12px; align-items: flex-start; padding: 11px 14px; border-bottom: 1px solid var(--line); border-left: 4px solid transparent; color: var(--ink); text-decoration: none; }
.qdr-r:hover { background: rgba(21, 101, 192, .06); }
.qdr-n { flex: none; min-width: 28px; height: 28px; border-radius: 7px; display: grid; place-items: center; font: 700 13px var(--ui, sans-serif); background: rgba(120,130,150,.15); color: var(--ink); }
.qdr-t { flex: 1; font: 14px/1.4 var(--ui, sans-serif); display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; }
.qdr-t small { display: block; color: var(--muted); font-size: 11.5px; margin-top: 2px; }
.qdr-b { color: #d48a00; }
.qdr-r.ok .qdr-n { background: #1a8a4a; color: #fff; } .qdr-r.bad .qdr-n { background: #c03030; color: #fff; }
.qdr-r.seen .qdr-n { background: #2f6fd0; color: #fff; }
.qdr-r.cur { border-left-color: var(--brand); background: rgba(21, 101, 192, .10); }
.qdr-r.cur .qdr-t { font-weight: 600; }

/* +4 / −1 marks badge on each question */
.pq-tagline .mk { display: inline-flex; gap: 4px; margin-left: 10px; vertical-align: middle; }
.pq-tagline .mk b { font-size: 11.5px; font-weight: 600; padding: 1px 6px; border-radius: 5px; line-height: 1.5; }
.pq-tagline .mk .mpos { color: #15803d; background: #dcfce7; } .pq-tagline .mk .mneg { color: #b91c1c; background: #fee2e2; }
html[data-theme=dark] .pq-tagline .mk .mpos { color: #86efac; background: rgba(34,197,94,.15); }
html[data-theme=dark] .pq-tagline .mk .mneg { color: #fca5a5; background: rgba(239,68,68,.15); }
.qh .qh-tag{font-size:.6em;font-weight:500;color:var(--muted,#667);white-space:nowrap}

/* difficulty tag (Easy / Medium / Hard) */
.lv { display: inline-block; font-size: 11.5px; font-weight: 600; padding: 1px 7px; border-radius: 5px; line-height: 1.5; margin-left: 8px; vertical-align: middle; }
.qmeta .lv { font-size: 12.5px; margin-left: 0; }
.lv-e { color: #0f766e; background: #ccfbf1; } .lv-m { color: #a16207; background: #fef3c7; } .lv-h { color: #9f1239; background: #ffe4e6; }
html[data-theme=dark] .lv-e { color: #5eead4; background: rgba(20,184,166,.15); }
html[data-theme=dark] .lv-m { color: #fcd34d; background: rgba(245,158,11,.15); }
html[data-theme=dark] .lv-h { color: #fda4af; background: rgba(244,63,94,.15); }

/* share of students per option (after the first tap) */
.opts > div.has-stat { position: relative; background-image: linear-gradient(90deg, rgba(11,79,138,.07) var(--pc), transparent var(--pc)); }
.opts > div .ostat { float: right; margin-left: 10px; font: 600 12.5px/1.6 system-ui, sans-serif; color: #475569; background: #eef2f7; border-radius: 999px; padding: 0 8px; }
.opts > div.right .ostat { color: #136c3a; background: #dcfce7; } .opts > div.wrong .ostat { color: #a32727; background: #fee2e2; }
.ostat-n { display: block; margin-top: 4px; font-size: 12.5px; color: #64748b; font-weight: 400; }
html[data-theme=dark] .opts > div.has-stat { background-image: linear-gradient(90deg, rgba(120,170,230,.12) var(--pc), transparent var(--pc)); }
html[data-theme=dark] .opts > div .ostat { color: #cbd5e1; background: rgba(148,163,184,.18); }

.qbody .opts .bub.bub-pc { width: auto; min-width: 2.7em; height: 1.75em; padding: 0 .35em; border-radius: 999px; font: 700 .72em/1 var(--ui, system-ui), sans-serif; letter-spacing: -.01em; }

.qbody .opts .ostat-v { flex: none; align-self: center; writing-mode: vertical-rl; transform: rotate(180deg); margin: 0 -2px 0 -6px;
  font: 700 10.5px/1 var(--ui, system-ui), sans-serif; letter-spacing: .02em; color: #64748b; white-space: nowrap; }
.qbody .opts > div.right .ostat-v { color: #15803d; } .qbody .opts > div.wrong .ostat-v { color: #b91c1c; }
html[data-theme=dark] .qbody .opts .ostat-v { color: #94a3b8; }

/* how often the topic comes in the exam's papers */
.odds { display: inline-block; font-size: 11.5px; font-weight: 600; padding: 1px 7px; border-radius: 5px; line-height: 1.5; margin-left: 8px;
  vertical-align: middle; color: #1d4ed8; background: #dbeafe; cursor: help; white-space: nowrap; }
.qmeta .odds { font-size: 12.5px; margin-left: 0; }
html[data-theme=dark] .odds { color: #93c5fd; background: rgba(59,130,246,.18); }

/* a little air between statements A. B. C. / Statement-I, II / Assertion, Reason (teacher, Oct 2026) */
.q-st { margin-top: .4em; }
.q-st + .q-closing, .q-st + .opts { margin-top: .5em; }
.sol { line-height: 1.7; }
/* free PDFs switched off until the data is verified: no PDF buttons anywhere */
.nopdf .pdfb, .nopdf .pdfrow, .nopdf .pdfc, .nopdf .bnav a[href="/pyq/pdfs"], .nopdf #t-pdf, .nopdf [data-setpdf], .nopdf [data-pdf] { display: none !important; }
/* ---------- front page (Oct 2026): hero + search + stats, exam cards, latest papers, features, FAQ ---------- */
.hx-hero { background: linear-gradient(135deg, #4035c2 0%, #2a2391 100%); color: #fff; border-radius: 16px; padding: 28px 24px 22px; margin: 4px 0 18px; }
.hx-hero h1 { color: #fff; font-size: clamp(22px, 4.2vw, 32px); line-height: 1.2; margin: 0 0 10px; }
.hx-hero .lead { color: #dfe3ff; max-width: 760px; margin: 0 0 16px; }
.hx-search { display: flex; gap: 8px; max-width: 640px; }
.hx-search input { flex: 1; min-width: 0; font: inherit; font-size: 16px; padding: 12px 14px; border-radius: 10px; border: 0; color: #111; }
.hx-search .b.primary { background: #f59e0b; border-color: #f59e0b; color: #1b1450; font-weight: 700; padding: 0 18px; }
.hx-stats { display: flex; flex-wrap: wrap; gap: 10px 28px; margin-top: 18px; }
.hx-stats div { display: flex; flex-direction: column; }
.hx-stats b { font-size: 22px; line-height: 1.1; color: #fff; } .hx-stats span { font-size: 13px; color: #c9cdf7; }
.hx-cont { display: flex; justify-content: space-between; align-items: center; gap: 12px; flex-wrap: wrap; text-decoration: none; color: inherit;
  border: 1.5px solid #f59e0b; background: #fff8eb; border-radius: 12px; padding: 12px 16px; margin: 0 0 18px; }
.hx-cont-l { display: flex; flex-direction: column; } .hx-cont-l span { color: var(--muted); font-size: 13.5px; }
.hx-cont-r { font-size: 13.5px; color: #8a5300; display: flex; align-items: center; gap: 8px; } .hx-cont-r i { font-style: normal; font-size: 18px; }
.hx-h { font-size: 19px; margin: 22px 0 10px; }
.hx-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(260px, 1fr)); gap: 12px; }
.hx-card { background: var(--card, #fff); border: 1px solid var(--line); border-radius: 14px; padding: 14px 16px; display: flex; flex-direction: column; gap: 10px; }
.hx-card:hover { border-color: var(--brand-2); }
.hx-top { text-decoration: none; color: inherit; display: flex; flex-direction: column; gap: 2px; }
.hx-top b { font-size: 18px; color: var(--brand); } .hx-top span { color: var(--muted); font-size: 13px; }
.hx-chips { display: flex; flex-wrap: wrap; gap: 6px; }
.hx-chip { text-decoration: none; font-size: 13px; padding: 4px 10px; border-radius: 999px; background: #eef0fd; color: #2a2391; }
.hx-chip:hover { background: #4035c2; color: #fff; }
.hx-links { display: flex; gap: 16px; font-size: 14px; } .hx-links a { text-decoration: none; font-weight: 600; color: var(--brand-2); }
.hx-papers { display: grid; grid-template-columns: repeat(auto-fill, minmax(210px, 1fr)); gap: 8px; }
.hx-paper { text-decoration: none; color: inherit; border: 1px solid var(--line); border-radius: 10px; padding: 9px 12px; background: var(--card, #fff);
  display: flex; flex-direction: column; } .hx-paper span { color: var(--muted); font-size: 13px; } .hx-paper:hover { border-color: var(--brand-2); }
.hx-feats { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 10px; }
.hx-feat { border: 1px solid var(--line); border-radius: 12px; padding: 12px 14px; background: var(--card, #fff); display: flex; flex-direction: column; gap: 3px; }
.hx-feat i { font-style: normal; width: 30px; height: 30px; border-radius: 8px; background: #fff3dc; color: #b45309; display: grid; place-items: center; font-weight: 700; margin-bottom: 4px; }
.hx-feat span { color: var(--muted); font-size: 13.5px; }
.hx-faq details { border: 1px solid var(--line); border-radius: 10px; padding: 10px 14px; margin-bottom: 8px; background: var(--card, #fff); }
.hx-faq summary { cursor: pointer; font-weight: 600; } .hx-faq p { margin: 8px 0 2px; color: var(--muted); }
html[data-theme=dark] .hx-chip { background: #252a52; color: #c9cdf7; }
html[data-theme=dark] .hx-cont { background: #2a2210; } html[data-theme=dark] .hx-cont-r { color: #f5c46b; }
html[data-theme=dark] .hx-feat i { background: #3a2c10; color: #f5c46b; }
@media (prefers-color-scheme: dark) { html:not([data-theme=light]) .hx-chip { background: #252a52; color: #c9cdf7; }
  html:not([data-theme=light]) .hx-cont { background: #2a2210; } html:not([data-theme=light]) .hx-feat i { background: #3a2c10; color: #f5c46b; } }
@media (max-width: 560px) { .hx-hero { padding: 20px 16px 18px; border-radius: 12px; } .hx-stats b { font-size: 19px; } .hx-papers { grid-template-columns: 1fr 1fr; } .hx-paper { padding: 8px 10px; } .hx-paper b { font-size: 14px; } .hx-paper span { font-size: 12.5px; } .hx-feats { grid-template-columns: 1fr 1fr; gap: 8px; } .hx-feat { padding: 10px 11px; } .hx-feat b { font-size: 14px; } .hx-feat span { font-size: 12.5px; } }
.hx-sub { margin: -2px 0 10px; font-weight: 700; color: #ffd27a; font-size: clamp(15px, 2.4vw, 19px); } .hx-sub span { color: #c9cdf7; font-weight: 500; }
.hx-years { display: flex; flex-wrap: wrap; gap: 6px 8px; margin-top: 14px; align-items: center; font-size: 13px; }
.hx-years span { color: #c9cdf7; } .hx-years a { color: #fff; text-decoration: none; border: 1px solid rgba(255,255,255,.35); border-radius: 999px; padding: 3px 10px; }
.hx-years a:hover { background: rgba(255,255,255,.15); }
.hx-demo { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: 14px; align-items: start; }
.hx-demo-q { border: 1px solid var(--line); border-radius: 14px; background: var(--card, #fff); padding: 14px 16px; }
.hx-demo-q p { margin: 8px 0; font-size: 14px; } .hx-demo-tags { display: flex; flex-wrap: wrap; gap: 6px; }
.hx-tg { font-size: 12px; border-radius: 6px; padding: 2px 8px; background: #e8f6ee; color: #166534; font-weight: 600; }
.hx-bars { display: flex; flex-direction: column; gap: 6px; }
.hx-bar { position: relative; display: flex; align-items: center; gap: 10px; border: 1px solid var(--line); border-radius: 8px; padding: 6px 10px; overflow: hidden; font-size: 14px; }
.hx-bar i { position: absolute; left: 0; top: 0; bottom: 0; background: rgba(64,53,194,.12); z-index: 0; }
.hx-bar b, .hx-bar span { position: relative; z-index: 1; } .hx-bar span { margin-left: auto; font-weight: 600; }
.hx-bar.ok { border-color: #16a34a; } .hx-bar.ok i { background: rgba(22,163,74,.18); }
.hx-demo-note { color: var(--muted); font-size: 12px !important; margin-bottom: 0 !important; }
.hx-demo-l { margin: 0; padding-left: 18px; display: flex; flex-direction: column; gap: 8px; font-size: 14.5px; }
@media (max-width: 720px) { .hx-demo { grid-template-columns: 1fr; } }
.hx-tagline { display: inline-block; margin: 0 0 10px; font-size: 13.5px; font-weight: 600; color: #1b1450; background: #ffd27a; border-radius: 999px; padding: 4px 12px; }
.hx-pdfl { display: flex; flex-wrap: wrap; gap: 8px; margin: 8px 0 2px !important; }
.hx-pdfl a { text-decoration: none; font-weight: 600; font-size: 14px; color: #1b1450; background: #ffd27a; border-radius: 8px; padding: 5px 12px; }
.hx-years a.hx-ypdf { background: #ffd27a; color: #1b1450; border-color: #ffd27a; font-weight: 600; }
/* soothing hero (teacher, 18 Oct 2026): light, calm tint instead of a dark block under the dark top bar */
.hx-hero { background: linear-gradient(160deg, #f1f3ff 0%, #f8f9ff 60%, #fdf8ee 100%); color: #1e1b4b; border: 1px solid #e3e6fb; }
.hx-hero h1 { color: #1e1b4b; }
.hx-hero .lead { color: #4b5275; }
.hx-sub { color: #4035c2; } .hx-sub span { color: #6b7194; }
.hx-tagline { background: #fff1d6; color: #7a4a00; }
.hx-search input { border: 1px solid #d7dbf5; box-shadow: 0 1px 2px rgba(30,27,75,.05); }
.hx-stats b { color: #1e1b4b; } .hx-stats span { color: #6b7194; }
.hx-years span { color: #6b7194; }
.hx-years a { color: #2f2a8f; border-color: #cfd3f5; background: #fff; }
.hx-years a:hover { background: #eef0fd; }
.hx-years a.hx-ypdf { background: #fff1d6; color: #7a4a00; border-color: #f3dcae; }
html[data-theme=dark] .hx-hero { background: linear-gradient(160deg, #1c2040 0%, #191c33 100%); color: #e6e8ff; border-color: #2c3160; }
html[data-theme=dark] .hx-hero h1, html[data-theme=dark] .hx-stats b { color: #eef0ff; }
html[data-theme=dark] .hx-hero .lead, html[data-theme=dark] .hx-stats span, html[data-theme=dark] .hx-years span { color: #aab0d6; }
html[data-theme=dark] .hx-sub { color: #b3adff; }
html[data-theme=dark] .hx-years a { background: transparent; color: #d6d9ff; border-color: #3a4078; }
@media (prefers-color-scheme: dark) { html:not([data-theme=light]) .hx-hero { background: linear-gradient(160deg, #1c2040 0%, #191c33 100%); color: #e6e8ff; border-color: #2c3160; }
  html:not([data-theme=light]) .hx-hero h1, html:not([data-theme=light]) .hx-stats b { color: #eef0ff; }
  html:not([data-theme=light]) .hx-hero .lead, html:not([data-theme=light]) .hx-stats span { color: #aab0d6; }
  html:not([data-theme=light]) .hx-sub { color: #b3adff; } html:not([data-theme=light]) .hx-years a { background: transparent; color: #d6d9ff; border-color: #3a4078; } }
/* hero follows the site colour (top bar) so the page reads as one calm theme */
.hx-hero { background: linear-gradient(160deg, #eef4fb 0%, #f7fafd 65%, #fdf8ee 100%); border-color: #dde7f3; }
.hx-hero h1 { color: var(--brand); } .hx-sub { color: var(--brand-2); }
.hx-years a { color: var(--brand); border-color: #cfdcec; } .hx-years a:hover { background: #eaf1f9; }
.hx-chip { background: #eaf1f9; color: var(--brand); } .hx-chip:hover { background: var(--brand-2); color: #fff; }
.hx-bar i { background: rgba(21,101,192,.12); }
