{"id":15971,"date":"2026-08-24T06:22:42","date_gmt":"2026-08-24T06:22:42","guid":{"rendered":"https:\/\/promotionexams.com\/?page_id=15971"},"modified":"2026-08-25T10:09:44","modified_gmt":"2026-08-25T10:09:44","slug":"mcqs-on-nipun-bharat","status":"publish","type":"page","link":"https:\/\/promotionexams.com\/?page_id=15971","title":{"rendered":"MCQs on NIPUN Bharat"},"content":{"rendered":"\t\t<div data-elementor-type=\"wp-page\" data-elementor-id=\"15971\" class=\"elementor elementor-15971\">\n\t\t\t\t<div class=\"elementor-element elementor-element-4d685b3 e-con-full e-flex e-con e-parent\" data-id=\"4d685b3\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t<div class=\"elementor-element elementor-element-b7d3884 elementor-widget elementor-widget-html\" data-id=\"b7d3884\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"html.default\">\n\t\t\t\t\t<!--\r\n=====================================================================\r\nCSS ADDA \u00b7 PromotionExams.com\r\nCHAPTER-WISE AI TEST SERIES  \u2014  generic template, one subject per page\r\n=====================================================================\r\n\r\nWHAT THIS IS\r\n  A drill page for one chapter-wise MCQ bank, on any subject. Two tabs:\r\n     PRACTICE     filters, search, flagging, per-question AI tutor\r\n     PERFORMANCE  readiness engine, Focused set \/ Mock paper planner\r\n\r\nSETTING UP A NEW SUBJECT \u2014 four edits, all at the top of the script\r\n  1. CFG.quizId   unique per page. Progress is stored under this key, so\r\n                  two subjects on the same site never mix. Change it.\r\n     CFG.topic    the subject name shown in the header.\r\n     CFG.eyebrow  the exam line above it, or blank.\r\n  2. CFG.sourceUrl  the page on your site carrying the full text of the\r\n                  subject. A \"Read the source\" card then appears in the\r\n                  rail. Leave it blank and the card disappears.\r\n  3. chapterImportance   rate each chapter yourself, any relative numbers\r\n                  you like \u2014 they need not total 100. The rating drives\r\n                  the ranking, the study plan and how much of each planned\r\n                  sitting a chapter gets. A chapter you leave out falls\r\n                  back to its share of the bank and is marked \"not rated\r\n                  yet\". Empty the map and importance is never mentioned.\r\n  4. chapterQuestions    your bank, in the usual schema:\r\n                  { id, chapter, question, options[], correct, explanation }\r\n                  Chapter strings must match the importance map exactly.\r\n\r\nSTEM LAYOUT \u2014 nothing to mark up\r\n  A plain stem, a numbered statement stem and a List-I \/ List-II stem are\r\n  each laid out automatically, and all three sit in the same sheet, so\r\n  every question on the page reads the same way.\r\n\r\nRESETS\r\n  \"Reset session\"        clears only this sitting's answers.\r\n  \"Reset my performance\" wipes lifetime mastery, weak areas and flags.\r\n\r\n=====================================================================\r\n-->\r\n\r\n<meta charset=\"utf-8\">\r\n<meta name=\"viewport\" content=\"width=device-width,initial-scale=1,viewport-fit=cover\">\r\n<link rel=\"preconnect\" href=\"https:\/\/fonts.googleapis.com\">\r\n<link rel=\"preconnect\" href=\"https:\/\/fonts.gstatic.com\" crossorigin>\r\n<link href=\"https:\/\/fonts.googleapis.com\/css2?family=Plus+Jakarta+Sans:wght@400;500;600;700;800&family=Newsreader:opsz,wght@6..72,400;6..72,500;6..72,600&display=swap\" rel=\"stylesheet\">\r\n\r\n<style>\r\n.cdrill{\r\n  --blue-900:#12246E; --blue-800:#1B3FCB; --blue-700:#2757E8; --blue-100:#EAF0FF; --blue-50:#F5F8FF;\r\n  --gold:#E8A317; --gold-lt:#F5C55B; --gold-bg:#FFF7E4;\r\n  --ink:#0F172A; --slate:#5B6B85; --line:#DFE6F3; --paper:#FFFFFF; --wash:#F4F7FD;\r\n  --ok:#0B8457; --ok-bg:#E7F7F0; --bad:#D3313E; --bad-bg:#FDEDEE; --warn:#C2620E;\r\n  --r:14px; --shadow:0 1px 2px rgba(16,32,74,.06),0 8px 24px -12px rgba(16,32,74,.18);\r\n  \/* \u2193 paste the same value your other pages use for --serif *\/\r\n  --serif:'Newsreader',Georgia,'Times New Roman',serif;\r\n  font-family:'Plus Jakarta Sans',system-ui,sans-serif; font-size:15px; line-height:1.55;\r\n  color:var(--ink); background:var(--wash); -webkit-font-smoothing:antialiased;\r\n  border-radius:var(--r); overflow:hidden; box-shadow:var(--shadow);\r\n}\r\n.cdrill *{box-sizing:border-box}\r\n.cdrill button{font:inherit;cursor:pointer;border:0;background:none;color:inherit;margin:0;padding:0;\r\n  min-width:0;min-height:0;width:auto;height:auto;line-height:1.4;letter-spacing:normal;text-transform:none;\r\n  box-shadow:none;border-radius:0;text-align:inherit;-webkit-appearance:none;appearance:none}\r\n.cdrill input,.cdrill select{font:inherit}\r\n.cdrill h1,.cdrill h2,.cdrill h3,.cdrill h4,.cdrill h5,.cdrill p,.cdrill ol,.cdrill ul{margin:0}\r\n.cdrill .wrap{max-width:1120px;margin:0 auto;padding:0 20px}\r\n.cdrill .tnum{font-variant-numeric:tabular-nums}\r\n.cdrill .hide{display:none !important}\r\n.cdrill ::selection{background:#CFE0FF;color:var(--ink)}\r\n.cdrill :focus-visible{outline:2.5px solid var(--gold);outline-offset:2px;border-radius:6px}\r\n@media(prefers-reduced-motion:reduce){.cdrill *{animation:none!important;transition:none!important}}\r\n\r\n\/* ---------- hero ---------- *\/\r\n.cdrill .hero{background:linear-gradient(158deg,#3A5BCE 0%,#4468DC 55%,#5077E6 100%);\r\n  color:#fff;padding:26px 0 0;position:relative;overflow:hidden}\r\n.cdrill .hero::after{content:\"\";position:absolute;inset:auto -10% -65% 58%;height:200px;\r\n  background:radial-gradient(closest-side,rgba(245,197,91,.16),transparent 72%);pointer-events:none}\r\n.cdrill .eyebrow{font-size:10.5px;letter-spacing:.18em;text-transform:uppercase;color:#FFE0A3;font-weight:800}\r\n.cdrill .hero h1,\r\n.cdrill header.hero h1{margin:6px 0 2px;font-size:clamp(19px,3.2vw,26px);font-weight:800;letter-spacing:-.02em;\r\n  color:#FFFFFF !important;line-height:1.25;font-family:'Plus Jakarta Sans',system-ui,sans-serif}\r\n.cdrill .hero p{margin:0 0 16px;color:#DCE5FF;font-size:13.5px;max-width:64ch}\r\n.cdrill .hstats{display:flex;gap:9px;flex-wrap:wrap;position:relative;z-index:1}\r\n.cdrill .hstat{background:rgba(255,255,255,.13);border:1px solid rgba(255,255,255,.24);border-radius:12px;\r\n  padding:9px 15px;min-width:92px}\r\n.cdrill .hstat b{display:block;font-size:20px;font-weight:800;color:#FFE0A3;letter-spacing:-.02em;line-height:1.15}\r\n.cdrill .hstat span{font-size:10px;letter-spacing:.09em;text-transform:uppercase;color:#DCE5FF;font-weight:700}\r\n.cdrill .tabs{display:flex;gap:8px;margin-top:22px;position:relative;z-index:1}\r\n.cdrill .tab{position:relative;padding:12px 24px 13px;border-radius:12px 12px 0 0;font-weight:700;font-size:14px;\r\n  color:#E4EBFF;display:flex;gap:8px;align-items:center;background:rgba(12,25,74,.22);\r\n  border:1px solid rgba(255,255,255,.18);border-bottom:0;transition:.16s;top:0}\r\n.cdrill .tab:hover{color:#fff;background:rgba(12,25,74,.34);top:-2px}\r\n.cdrill .tab[aria-selected=true]{background:var(--paper);color:var(--blue-900);border-color:transparent;\r\n  top:0;padding-bottom:15px;margin-bottom:-2px;font-weight:800;\r\n  box-shadow:0 -3px 12px -4px rgba(9,20,66,.35)}\r\n.cdrill .tab[aria-selected=true]::before{content:\"\";position:absolute;left:14px;right:14px;top:0;height:3px;\r\n  border-radius:0 0 3px 3px;background:linear-gradient(90deg,var(--gold),var(--gold-lt))}\r\n.cdrill .tab .pill{background:var(--gold);color:#3A2A02;font-size:10.5px;font-weight:800;padding:2px 7px;border-radius:99px}\r\n.cdrill .goldrule{height:4px;background:linear-gradient(90deg,var(--gold),var(--gold-lt))}\r\n\r\n\/* ---------- filters ---------- *\/\r\n.cdrill .filters{background:var(--paper);border-bottom:1px solid var(--line)}\r\n.cdrill .filters .wrap{display:flex;gap:10px;padding-top:14px;padding-bottom:14px;overflow-x:auto;scrollbar-width:none}\r\n.cdrill .filters .wrap::-webkit-scrollbar{display:none}\r\n.cdrill .pill-f{display:flex;flex:none;align-items:center;gap:8px;padding:9px 16px;border-radius:99px;\r\n  border:1.5px solid var(--line);background:var(--paper);font-weight:600;font-size:13.5px;color:var(--slate);\r\n  white-space:nowrap;transition:.15s}\r\n.cdrill .pill-f:hover{border-color:#B9C8EC;color:var(--ink)}\r\n.cdrill .pill-f .n{font-size:11.5px;font-weight:800;background:var(--blue-100);color:var(--blue-800);padding:2px 8px;border-radius:99px}\r\n.cdrill .pill-f[aria-pressed=true]{background:var(--blue-700);border-color:var(--blue-700);color:#fff}\r\n.cdrill .pill-f[aria-pressed=true] .n{background:rgba(255,255,255,.2);color:#fff}\r\n.cdrill .pill-f.warn{border-color:#F3C2C6;color:var(--bad)}\r\n.cdrill .pill-f.warn .n{background:var(--bad);color:#fff}\r\n.cdrill .pill-f.warn[aria-pressed=true]{background:var(--bad);border-color:var(--bad);color:#fff}\r\n.cdrill .pill-f.gold{border-color:#F2DFAE;color:#8A6206}\r\n.cdrill .pill-f.gold .n{background:var(--gold);color:#3A2A02}\r\n.cdrill .pill-f.gold[aria-pressed=true]{background:linear-gradient(180deg,var(--gold-lt),var(--gold));border-color:var(--gold);color:#3A2A02}\r\n\r\n\/* ---------- layout ---------- *\/\r\n.cdrill .grid{display:grid;grid-template-columns:minmax(0,1fr) 300px;gap:20px;padding:20px 0 60px}\r\n@media(max-width:960px){.cdrill .grid{grid-template-columns:1fr}}\r\n.cdrill .card{background:var(--paper);border:1px solid var(--line);border-radius:var(--r);box-shadow:var(--shadow)}\r\n\r\n\/* ---------- toolbar \/ context ---------- *\/\r\n.cdrill .toolbar{display:flex;gap:10px;align-items:center;flex-wrap:wrap;padding:0 0 16px}\r\n.cdrill .search{flex:1;min-width:190px;position:relative}\r\n.cdrill .search input{width:100%;padding:11px 15px 11px 38px;border:1.5px solid var(--line);border-radius:11px;background:var(--paper)}\r\n.cdrill .search svg{position:absolute;left:13px;top:50%;transform:translateY(-50%);width:16px;height:16px;color:var(--slate)}\r\n.cdrill .tgl{display:flex;align-items:center;gap:8px;padding:10px 15px;border:1.5px solid var(--line);border-radius:11px;\r\n  background:var(--paper);font-weight:600;font-size:13.5px;color:var(--slate);white-space:nowrap}\r\n.cdrill .tgl[aria-pressed=true]{border-color:var(--blue-700);background:var(--blue-50);color:var(--blue-800)}\r\n.cdrill .ctxbar{display:flex;align-items:center;gap:12px;flex-wrap:wrap;background:var(--paper);\r\n  border:1px solid var(--line);border-left:4px solid var(--blue-700);border-radius:0 12px 12px 0;\r\n  padding:13px 18px;margin:0 0 16px;box-shadow:var(--shadow)}\r\n.cdrill .ctxlab{font-size:10.5px;letter-spacing:.14em;text-transform:uppercase;color:var(--slate);font-weight:800}\r\n.cdrill .ctxsel{flex:1;min-width:210px;max-width:560px;padding:9px 12px;border:1.5px solid var(--line);border-radius:10px;\r\n  background:var(--paper);font-weight:700;font-size:14.5px;color:var(--ink);cursor:pointer}\r\n.cdrill .ctxmeta{font-size:12.5px;color:var(--slate);font-weight:600;white-space:nowrap}\r\n\r\n\/* ---------- chapter chips ---------- *\/\r\n.cdrill .chapcard{margin:0 0 16px;overflow:hidden}\r\n.cdrill .chaphead{display:flex;align-items:center;gap:10px;flex-wrap:wrap;padding:11px 18px;\r\n  background:linear-gradient(90deg,var(--blue-50),#EDF3FF);border-bottom:1px solid var(--line)}\r\n.cdrill .chapcard{border-radius:var(--r)}\r\n.cdrill .chaplist{border-radius:0 0 var(--r) var(--r);overflow:hidden}\r\n.cdrill .chaphead b{font-size:13.5px;font-weight:800;color:var(--blue-800);display:flex;align-items:center;gap:8px}\r\n.cdrill .chaphead i{font-style:normal;font-size:12px;color:var(--slate);font-weight:600}\r\n.cdrill .chaphead .meta{margin-left:auto;font-size:12px;color:var(--slate);font-weight:700;white-space:nowrap}\r\n.cdrill .chaplist{display:grid;grid-template-columns:1fr;gap:1px;padding:0;background:var(--line)}\r\n@media(min-width:900px){.cdrill .chaplist{grid-template-columns:1fr 1fr}}\r\n.cdrill .chapchip{display:grid;grid-template-columns:26px minmax(0,1fr) auto auto;align-items:center;gap:10px;\r\n  padding:10px 16px;border:0;background:var(--paper);text-align:left;transition:background .13s;width:100%}\r\n.cdrill .chapchip:hover{background:var(--blue-50)}\r\n.cdrill .chapchip .no{font-size:11px;font-weight:800;color:var(--slate);font-variant-numeric:tabular-nums}\r\n.cdrill .chapchip .cn{font-size:12.6px;font-weight:600;color:var(--ink);letter-spacing:-.005em;\r\n  overflow:hidden;text-overflow:ellipsis;white-space:nowrap;text-transform:none}\r\n.cdrill .chapchip .cw{flex:none;font-size:10.5px;font-weight:800;background:var(--gold-bg);color:#8A6206;\r\n  border:1px solid #F2DFAE;padding:2px 8px;border-radius:99px;white-space:nowrap}\r\n.cdrill .chapchip .cc{flex:none;font-size:11px;font-weight:800;background:var(--blue-100);color:var(--blue-800);\r\n  min-width:30px;padding:3px 8px;border-radius:6px;text-align:center;font-variant-numeric:tabular-nums}\r\n.cdrill .chapchip[aria-pressed=true]{background:var(--blue-50);box-shadow:inset 3px 0 0 var(--blue-700)}\r\n.cdrill .chapchip[aria-pressed=true] .cn{color:var(--blue-800);font-weight:700}\r\n.cdrill .chapchip[aria-pressed=true] .cc{background:var(--blue-700);color:#fff}\r\n.cdrill .chapchip .done{flex:none;font-size:10.5px;font-weight:800;color:var(--ok)}\r\n\r\n\/* ---------- question ---------- *\/\r\n.cdrill .qhead{display:flex;align-items:center;justify-content:space-between;gap:10px;flex-wrap:wrap;\r\n  background:linear-gradient(135deg,#F1F5FB 0%,#E4ECFB 100%);border-bottom:1px solid var(--line);\r\n  border-radius:var(--r) var(--r) 0 0;padding:13px 20px}\r\n.cdrill .qcount{font-family:var(--serif);font-weight:600;color:var(--blue-900);font-size:16.3px;letter-spacing:0}\r\n.cdrill .qmeta{display:flex;gap:8px;align-items:center;flex-wrap:wrap}\r\n.cdrill .badge-ch{display:flex;align-items:center;gap:7px;background:linear-gradient(180deg,var(--gold-lt),var(--gold));\r\n  color:#3A2A02;font-weight:800;font-size:12px;padding:6px 13px;border-radius:99px;max-width:340px}\r\n.cdrill .badge-ch span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}\r\n.cdrill .badge-w{display:flex;align-items:center;gap:6px;border:1.5px solid var(--gold-lt);color:#8A6206;\r\n  background:var(--gold-bg);font-weight:700;font-size:12px;padding:5px 12px;border-radius:99px}\r\n.cdrill .badge-m{font-weight:700;font-size:12px;padding:5px 12px;border-radius:99px;background:var(--blue-100);color:var(--blue-800)}\r\n.cdrill .qtags{display:flex;gap:6px;flex-wrap:wrap}\r\n.cdrill .qtag{font-weight:800;font-size:11.5px;padding:5px 11px;border-radius:99px;white-space:nowrap}\r\n.cdrill .qtag.weak{background:var(--bad-bg);color:var(--bad);border:1px solid #F3C2C6}\r\n.cdrill .qtag.flag{background:var(--gold-bg);color:#8A6206;border:1px solid #F2DFAE}\r\n.cdrill .qtag.done{background:var(--ok-bg);color:var(--ok);border:1px solid #A9DEC6}\r\n.cdrill .badge-m.weak{background:var(--bad-bg);color:var(--bad)}\r\n.cdrill .qbody{padding:22px}\r\n.cdrill .stem{font-family:var(--serif) !important;font-size:18.5px !important;line-height:1.7;\r\n  font-weight:600;margin:0 0 18px;color:#161b26;text-align:justify;hyphens:auto;-webkit-hyphens:auto}\r\n.cdrill .stem b{font-weight:700}\r\n.cdrill .qno{font-family:var(--serif);font-weight:700;color:#8A6206;margin-right:7px;\r\n  hyphens:none;-webkit-hyphens:none}\r\n.cdrill .qsheet{background:#fffef9;border:1px solid #e9e3d2;border-left:4px solid var(--gold);\r\n  border-radius:12px;padding:20px 22px;margin:0 0 18px}\r\n.cdrill .qsheet .lead,\r\n.cdrill .qsheet .intro,\r\n.cdrill .qsheet .close{font-family:var(--serif) !important;font-size:18.5px !important;line-height:1.7;\r\n  font-weight:600;color:#161b26;text-align:justify;hyphens:auto;-webkit-hyphens:auto}\r\n.cdrill .qsheet .intro{margin:16px 0 0}\r\n.cdrill .qsheet .close{margin:16px 0 0;text-align:left;hyphens:none;-webkit-hyphens:none}\r\n.cdrill .stmts{list-style:none;counter-reset:s;margin:4px 0 0;padding:0;display:block}\r\n.cdrill .stmts li{counter-increment:s;display:grid;grid-template-columns:30px 1fr;gap:4px;align-items:baseline;\r\n  font-family:var(--serif) !important;font-size:18.5px !important;font-weight:600;line-height:1.65;color:#161b26;\r\n  margin:12px 0 0 14px;text-align:justify;hyphens:auto;-webkit-hyphens:auto}\r\n.cdrill .stmts li::before{content:counter(s) \".\";font-family:var(--serif);font-weight:600;font-size:18.5px;color:#161b26}\r\n.cdrill .lists{display:grid;grid-template-columns:1fr 1fr;gap:34px;margin:18px 0 0}\r\n@media(max-width:760px){.cdrill .lists{grid-template-columns:1fr;gap:22px}}\r\n.cdrill .lcol h5{margin:0 0 10px;padding:0 0 9px;border-bottom:1px solid #DCD3BE;font-size:12px;font-weight:800;color:var(--ink)}\r\n.cdrill .lcol ul{list-style:none;margin:0;padding:0;display:grid;gap:12px}\r\n.cdrill .lcol li{display:grid;grid-template-columns:28px 1fr;align-items:baseline;\r\n  font-family:var(--serif) !important;font-size:17.5px;font-weight:600;line-height:1.6;color:#161b26}\r\n.cdrill .lcol li b{font-family:var(--serif);font-weight:600;font-size:17.3px;color:#8A6206}\r\n\r\n\/* options as bordered cards, matching the other pages *\/\r\n.cdrill .opts{display:flex;flex-direction:column;gap:9px}\r\n.cdrill .opt{font-family:var(--serif) !important;padding:12px 16px;border:1.5px solid var(--line);\r\n  border-radius:12px;cursor:pointer;display:flex;align-items:flex-start;gap:12px;transition:all .25s;\r\n  background:#fff;text-align:left;width:100%;-webkit-user-select:none;user-select:none}\r\n.cdrill .opt .txt{font-family:var(--serif) !important;font-size:18.5px !important;line-height:1.6;\r\n  color:#161b26;flex:1;min-width:0}\r\n.cdrill .opt:hover:not(:disabled){border-color:#5F86F0;background:#F6F9FF;transform:translateX(4px)}\r\n.cdrill .opt:disabled{cursor:default;opacity:1;transform:none}\r\n.cdrill .key{min-width:34px;font-family:var(--serif) !important;font-weight:600;font-size:17.3px !important;\r\n  color:#161b26;flex-shrink:0;line-height:1.6}\r\n.cdrill .opt.sel{border-color:var(--blue-700);background:#EFF5FF;box-shadow:0 0 0 1px var(--blue-700)}\r\n.cdrill .opt.sel::after{content:\"Selected\";font-family:'Plus Jakarta Sans',sans-serif;font-weight:800;\r\n  font-size:10.5px;letter-spacing:.08em;text-transform:uppercase;color:var(--blue-800);align-self:center;white-space:nowrap}\r\n.cdrill .opt.right{border-color:var(--ok);background:#F0FDF6;box-shadow:0 0 0 1px var(--ok)}\r\n.cdrill .opt.right .key{color:#086945}\r\n.cdrill .opt.wrong{border-color:var(--bad);background:#FEF4F4;box-shadow:0 0 0 1px var(--bad)}\r\n.cdrill .opt.wrong .key{color:#A81F2B}\r\n.cdrill .mark{margin-left:auto;font-family:'Plus Jakarta Sans',sans-serif;font-weight:800;font-size:10.5px;\r\n  letter-spacing:.08em;text-transform:uppercase;white-space:nowrap;align-self:center}\r\n.cdrill .mark.r{color:var(--ok)} .cdrill .mark.w{color:var(--bad)}\r\n@media(prefers-reduced-motion:reduce){.cdrill .opt:hover:not(:disabled){transform:none}}\r\n.cdrill .hint{margin:12px 0 0;font-size:13.5px;font-weight:600;color:#8A6206;background:var(--gold-bg);\r\n  border:1px solid #F2DFAE;border-radius:10px;padding:10px 14px}\r\n.cdrill .actions{display:flex;gap:9px;flex-wrap:wrap;margin-top:18px;align-items:center}\r\n.cdrill .btn{padding:11px 20px;border-radius:11px;font-weight:700;font-size:14px;background:var(--blue-700);color:#fff;transition:.15s}\r\n.cdrill .btn:hover{background:var(--blue-800)}\r\n.cdrill .btn:disabled{opacity:.4;cursor:not-allowed}\r\n.cdrill .btn.ghost{background:var(--paper);border:1.5px solid var(--line);color:var(--ink)}\r\n.cdrill .btn.ghost:hover{border-color:var(--blue-700);color:var(--blue-800);background:var(--blue-50)}\r\n.cdrill .flagbtn{display:flex;align-items:center;gap:7px;padding:11px 18px;border-radius:11px;font-weight:700;font-size:14px;\r\n  border:1.5px solid var(--line);background:var(--paper);color:var(--slate);margin-left:auto;transition:.15s}\r\n.cdrill .flagbtn:hover{border-color:var(--gold);color:#8A6206;background:var(--gold-bg)}\r\n.cdrill .flagbtn[aria-pressed=true]{border-color:var(--gold);background:linear-gradient(180deg,var(--gold-lt),var(--gold));color:#3A2A02}\r\n.cdrill .kbd{display:inline-block;font-family:ui-monospace,Menlo,monospace;font-size:10.5px;padding:3px 6px;background:#fff;\r\n  border:1px solid var(--line);border-bottom-width:2px;border-radius:4px;font-weight:700}\r\n.cdrill .keys{margin-top:14px;padding-top:12px;border-top:1px dashed var(--line);font-size:11.5px;color:var(--slate);\r\n  display:flex;gap:14px;flex-wrap:wrap;font-weight:600}\r\n@media(max-width:700px){.cdrill .keys{display:none}}\r\n\r\n.cdrill .verdict{display:flex;align-items:center;gap:10px;font-weight:800;font-size:14px;margin:20px 0 0}\r\n.cdrill .verdict.r{color:var(--ok)} .cdrill .verdict.w{color:var(--bad)}\r\n.cdrill .expl{margin-top:12px;border:1px solid var(--line);border-left:4px solid var(--gold);border-radius:0 12px 12px 0;\r\n  background:#FCFDFF;padding:16px 18px;font-size:14.2px;line-height:1.68}\r\n.cdrill .expl .body{font-family:'Newsreader',Georgia,serif;font-size:16px;line-height:1.7}\r\n.cdrill .expl b{color:var(--blue-800)}\r\n.cdrill .expl-h{font-size:11px;letter-spacing:.14em;text-transform:uppercase;color:var(--slate);font-weight:800;margin-bottom:8px}\r\n\r\n  font-weight:600;font-size:13px;color:var(--blue-800);transition:.14s}\r\n.cdrill .chip:hover:not(:disabled){background:var(--blue-700);border-color:var(--blue-700);color:#fff}\r\n.cdrill .ai-out{margin-top:12px;background:var(--paper);border:1px solid var(--line);border-radius:10px;padding:14px 16px;\r\n  font-size:14px;line-height:1.65}\r\n.cdrill .ai-out b{color:var(--blue-800)}\r\n.cdrill .offline{margin-top:12px;padding-top:10px;border-top:1px dashed #CBD8F6;font-size:11.5px;color:var(--slate);line-height:1.5}\r\n.cdrill .dots span{display:inline-block;width:6px;height:6px;border-radius:99px;background:var(--blue-700);margin-right:4px;animation:cdb 1.1s infinite}\r\n.cdrill .dots span:nth-child(2){animation-delay:.16s} .cdrill .dots span:nth-child(3){animation-delay:.32s}\r\n@keyframes cdb{0%,80%{opacity:.25;transform:translateY(0)}40%{opacity:1;transform:translateY(-3px)}}\r\n\r\n\/* ---------- rail ---------- *\/\r\n.cdrill .rail{display:grid;gap:16px;align-content:start}\r\n.cdrill .rail .card{padding:16px}\r\n.cdrill .rail h3{margin:0;font-size:11px;letter-spacing:.14em;text-transform:uppercase;color:var(--slate);font-weight:800}\r\n.cdrill .score{display:flex;align-items:baseline;gap:8px;margin:10px 0 4px}\r\n.cdrill .score b{font-size:32px;font-weight:800;letter-spacing:-.03em}\r\n.cdrill .score i{font-style:normal;color:var(--slate);font-size:13px;font-weight:600}\r\n.cdrill .bar{height:7px;border-radius:99px;background:var(--wash);overflow:hidden;margin-top:10px}\r\n.cdrill .bar>i{display:block;height:100%;background:linear-gradient(90deg,var(--ok),#37B37E);border-radius:99px;transition:width .4s}\r\n.cdrill .mini{display:flex;justify-content:space-between;font-size:12.5px;color:var(--slate);margin-top:8px;font-weight:600}\r\n.cdrill .streak{display:flex;gap:4px;margin-top:12px}\r\n.cdrill .streak i{flex:1;height:26px;border-radius:5px;background:var(--wash);border:1px solid var(--line)}\r\n.cdrill .streak i.r{background:var(--ok-bg);border-color:#A9DEC6}\r\n.cdrill .streak i.w{background:var(--bad-bg);border-color:#F3C2C6}\r\n.cdrill .nav-head{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:13px 16px;\r\n  border-bottom:1px solid var(--line);flex-wrap:nowrap}\r\n.cdrill .nav-head b{font-size:11px;letter-spacing:.14em;text-transform:uppercase;color:var(--slate);font-weight:800}\r\n.cdrill .navtoggle{flex:none;white-space:nowrap;min-width:56px;text-align:center;\r\n  font-size:12px;font-weight:800;color:var(--blue-800);padding:5px 12px;border-radius:7px;\r\n  border:1px solid var(--line);background:var(--paper);letter-spacing:.02em;transition:.14s}\r\n.cdrill .nav-head b{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}\r\n.cdrill .navtoggle:hover{border-color:var(--blue-700);background:var(--blue-50)}\r\n.cdrill .navgrid{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:6px;\r\n  padding:14px 16px 12px;max-height:238px;overflow-y:auto;overflow-x:hidden}\r\n.cdrill .navgrid::-webkit-scrollbar{width:6px}\r\n.cdrill .navgrid::-webkit-scrollbar-thumb{background:#CBD5E1;border-radius:99px}\r\n.cdrill .navgrid::-webkit-scrollbar-track{background:transparent}\r\n.cdrill .nq{position:relative;box-sizing:border-box;width:100%;min-width:0;height:34px;padding:0;margin:0;\r\n  border-radius:8px;border:1px solid var(--line);background:var(--paper);\r\n  font-family:'Plus Jakarta Sans',system-ui,sans-serif;font-weight:700;font-size:11.5px;line-height:1;\r\n  color:var(--slate);display:flex;align-items:center;justify-content:center;overflow:visible;\r\n  transition:background .12s,border-color .12s,color .12s;font-variant-numeric:tabular-nums;letter-spacing:-.02em}\r\n.cdrill .nq:hover{border-color:var(--blue-700);color:var(--blue-800);background:var(--blue-50)}\r\n@media(max-width:960px){.cdrill .navgrid{grid-template-columns:repeat(10,minmax(0,1fr))}}\r\n@media(max-width:520px){.cdrill .navgrid{grid-template-columns:repeat(7,minmax(0,1fr))}}\r\n.cdrill .nq.r{background:var(--ok-bg);border-color:#8FD3B6;color:#086945}\r\n.cdrill .nq.w{background:var(--bad-bg);border-color:#F0AEB4;color:#A81F2B}\r\n.cdrill .nq.cur{border-color:var(--blue-700);background:var(--blue-700);color:#fff}\r\n.cdrill .nq .fl{position:absolute;top:-5px;right:-4px;font-size:9.5px;line-height:1;\r\n  filter:drop-shadow(0 0 2px #fff)}\r\n.cdrill .nq.mastered::after{content:\"\";position:absolute;bottom:3px;left:50%;transform:translateX(-50%);\r\n  width:4px;height:4px;border-radius:99px;background:var(--ok)}\r\n.cdrill .legend{display:flex;gap:12px;flex-wrap:wrap;font-size:10.5px;color:var(--slate);font-weight:600;\r\n  padding:10px 16px 14px;border-top:1px solid var(--line);margin-top:4px}\r\n.cdrill .legend i{display:inline-block;width:9px;height:9px;border-radius:3px;margin-right:5px;vertical-align:-1px}\r\n\r\n\/* ---------- performance ---------- *\/\r\n.cdrill .perf{padding:24px 24px 32px;display:grid;gap:34px}\r\n.cdrill .ph{margin:0 0 10px;font-size:11px;letter-spacing:.14em;text-transform:uppercase;color:var(--slate);font-weight:800}\r\n\r\n\/* ---------- performance blocks ---------- *\/\r\n.cdrill .pblock{border:1px solid var(--line);border-radius:16px;background:var(--paper);overflow:hidden}\r\n.cdrill .pbh{display:flex;align-items:flex-start;gap:16px;padding:20px 24px 18px;\r\n  background:linear-gradient(180deg,#FBFCFF,#F6F9FF);border-bottom:1px solid var(--line)}\r\n.cdrill .pbh .txt{flex:1;min-width:0}\r\n.cdrill .pbh h4{font-size:17px;font-weight:800;letter-spacing:-.015em;color:var(--ink);margin:0 0 7px;\r\n  display:flex;align-items:center;gap:9px}\r\n.cdrill .pbh h4 .dot{width:7px;height:7px;border-radius:99px;background:var(--gold);flex:none}\r\n.cdrill .pbh p{font-size:13px;color:var(--slate);line-height:1.6;margin:0}\r\n.cdrill .pbh .pbtag{flex:none;font-size:10.5px;font-weight:800;letter-spacing:.07em;text-transform:uppercase;\r\n  color:var(--blue-800);background:var(--blue-100);border-radius:99px;padding:6px 13px;white-space:nowrap}\r\n.cdrill .bars{padding:8px 24px 18px}\r\n.cdrill .subhead{display:flex;align-items:baseline;gap:10px;flex-wrap:wrap;padding:18px 24px 2px;\r\n  border-top:1px solid #EEF2F9;margin-top:6px}\r\n.cdrill .subhead:first-of-type{border-top:0;margin-top:0}\r\n.cdrill .subhead h5{font-size:12.5px;font-weight:800;color:var(--ink);letter-spacing:.01em;margin:0}\r\n.cdrill .subhead span{font-size:11.8px;color:var(--slate);font-weight:600}\r\n.cdrill .hero2{display:grid;grid-template-columns:260px 1fr;gap:18px}\r\n@media(max-width:860px){.cdrill .hero2{grid-template-columns:1fr}}\r\n.cdrill .ring-card{background:linear-gradient(150deg,var(--blue-900),var(--blue-800) 70%,var(--blue-700));border-radius:var(--r);\r\n  padding:24px 20px;color:#fff;text-align:center;display:flex;flex-direction:column;align-items:center;justify-content:center}\r\n.cdrill .ring{position:relative;width:150px;height:150px}\r\n.cdrill .ring svg{transform:rotate(-90deg)}\r\n.cdrill .ring .bg{fill:none;stroke:rgba(255,255,255,.14);stroke-width:11}\r\n.cdrill .ring .fg{fill:none;stroke:var(--gold-lt);stroke-width:11;stroke-linecap:round;transition:stroke-dashoffset 1s ease}\r\n.cdrill .ring-txt{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center}\r\n.cdrill .ring-txt b{font-size:40px;font-weight:800;color:var(--gold-lt);letter-spacing:-.03em;line-height:1}\r\n.cdrill .ring-txt span{font-size:9.5px;letter-spacing:.12em;text-transform:uppercase;color:#BFDBFE;margin-top:5px;font-weight:700}\r\n.cdrill .verdict2{margin-top:14px;font-size:13.4px;color:#DBEAFE;line-height:1.55}\r\n.cdrill .verdict2 b{color:#fff}\r\n.cdrill .coach{border:1px solid var(--line);border-radius:var(--r);padding:18px 20px;background:var(--paper)}\r\n.cdrill .coach h4{font-size:14.5px;font-weight:800;margin-bottom:12px;display:flex;gap:8px;align-items:center}\r\n.cdrill .reco{display:flex;gap:12px;padding:11px 0;border-bottom:1px dashed var(--line);align-items:flex-start}\r\n.cdrill .reco:last-child{border-bottom:0}\r\n.cdrill .reco .ic{width:30px;height:30px;border-radius:8px;display:grid;place-items:center;font-size:13px;flex:none;margin-top:1px}\r\n.cdrill .reco .ic.hot{background:var(--bad-bg);color:var(--bad)}\r\n.cdrill .reco .ic.warm{background:var(--gold-bg);color:#8A6206}\r\n.cdrill .reco .ic.cool{background:var(--blue-100);color:var(--blue-800)}\r\n.cdrill .reco .ic.good{background:var(--ok-bg);color:var(--ok)}\r\n.cdrill .reco p{font-size:13.8px;line-height:1.55}\r\n.cdrill .reco .go{margin-left:auto;flex:none;background:var(--blue-50);color:var(--blue-800);border:1px solid #D4E2FB;\r\n  border-radius:8px;padding:6px 12px;font-size:11.5px;font-weight:800;white-space:nowrap;transition:.15s}\r\n.cdrill .reco .go:hover{background:var(--blue-700);color:#fff}\r\n.cdrill .planner{background:linear-gradient(135deg,#FFFDF6,#FFF8E8);border:1px solid #EADFC2;border-left:4px solid var(--gold);\r\n  border-radius:0 var(--r) var(--r) 0;padding:18px 20px;display:flex;align-items:center;justify-content:space-between;gap:18px;flex-wrap:wrap}\r\n.cdrill .planner h4{font-size:17px;font-weight:800;margin-bottom:5px;letter-spacing:-.01em}\r\n.cdrill .planner p{font-size:13px;color:var(--slate);line-height:1.55;max-width:62ch}\r\n.cdrill .pbtns{display:flex;gap:10px;flex-wrap:wrap}\r\n.cdrill .pbtn{padding:11px 18px;border:1.5px solid var(--gold);border-radius:11px;background:#fff;color:#8A6206;\r\n  font-weight:800;font-size:13.5px;display:flex;gap:7px;align-items:center;white-space:nowrap;transition:.15s}\r\n.cdrill .pbtn:hover{background:var(--gold-bg)}\r\n.cdrill .pbtn.primary{background:linear-gradient(180deg,var(--gold-lt),var(--gold));color:#3A2A02;border-color:var(--gold)}\r\n.cdrill .kpis{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:12px}\r\n.cdrill .kpi{border:1px solid var(--line);border-radius:12px;padding:15px;background:linear-gradient(180deg,#fff,var(--blue-50))}\r\n.cdrill .kpi b{display:block;font-size:26px;font-weight:800;letter-spacing:-.03em}\r\n.cdrill .kpi span{font-size:11.5px;color:var(--slate);font-weight:700;text-transform:uppercase;letter-spacing:.06em}\r\n.cdrill .tblwrap{overflow-x:auto;border:1px solid var(--line);border-radius:12px;background:#fff}\r\n.cdrill table.perf-t{border-collapse:collapse;width:100%;font-size:13px;min-width:760px}\r\n.cdrill table.perf-t th,.cdrill table.perf-t td{padding:10px;border-bottom:1px solid #EEF2F9;text-align:center;vertical-align:middle}\r\n.cdrill table.perf-t thead th{background:var(--blue-900);color:#fff;font-weight:700;font-size:11px;letter-spacing:.05em;text-transform:uppercase}\r\n.cdrill table.perf-t th:first-child,.cdrill table.perf-t td:first-child{text-align:left;padding-left:14px}\r\n.cdrill table.perf-t td:first-child{font-weight:700;max-width:280px;line-height:1.35;background:#FBFCFE}\r\n.cdrill .sub{display:block;font-size:10.6px;color:var(--slate);font-weight:600;margin-top:3px}\r\n.cdrill .tbar{height:6px;border-radius:99px;background:var(--wash);overflow:hidden;min-width:80px}\r\n.cdrill .tbar>i{display:block;height:100%;border-radius:99px}\r\n.cdrill .tag{display:inline-block;font-size:10.4px;font-weight:800;padding:3px 9px;border-radius:99px;text-transform:uppercase;letter-spacing:.04em}\r\n.cdrill .tag.hot{background:var(--bad-bg);color:var(--bad)}\r\n.cdrill .tag.warm{background:var(--gold-bg);color:#8A6206}\r\n.cdrill .tag.ok{background:var(--blue-100);color:var(--blue-800)}\r\n.cdrill .tag.good{background:var(--ok-bg);color:var(--ok)}\r\n.cdrill .tag.na{background:#F1F5F9;color:var(--slate)}\r\n.cdrill .mini-go{border:1px solid var(--line);border-radius:8px;padding:5px 10px;font-size:11.2px;font-weight:800;color:var(--blue-800);transition:.15s}\r\n.cdrill .mini-go:hover{background:var(--blue-700);color:#fff;border-color:var(--blue-700)}\r\n.cdrill .lrow{display:grid;grid-template-columns:minmax(150px,1.2fr) 2.4fr 96px;gap:18px;align-items:center;\r\n  padding:12px 10px;border-radius:9px;transition:background .13s;margin:0 -10px}\r\n.cdrill .lrow:hover{background:#FAFCFF}\r\n.cdrill .lrow+.lrow{border-top:1px solid #F1F5FB}\r\n@media(max-width:620px){.cdrill .lrow{grid-template-columns:1fr auto;row-gap:6px}.cdrill .lrow .ltrack{grid-column:1\/-1}}\r\n.cdrill .lname{font-size:13.4px;font-weight:700;line-height:1.35}\r\n.cdrill .lsub{display:block;font-size:10.8px;font-weight:600;color:var(--slate);margin-top:4px}\r\n.cdrill .ltrack{background:#EEF2F9;border-radius:99px;height:11px;overflow:hidden;\r\n  box-shadow:inset 0 1px 2px rgba(16,32,74,.05)}\r\n.cdrill .lfill{height:100%;border-radius:99px;transition:width .8s cubic-bezier(.22,.9,.28,1)}\r\n.cdrill .lval{text-align:right;font-size:16px;font-weight:800;letter-spacing:-.02em}\r\n.cdrill .lval small{display:block;font-size:10px;font-weight:700;color:var(--slate);text-transform:uppercase;letter-spacing:.05em;margin-top:2px}\r\n.cdrill .split{display:grid;grid-template-columns:1fr 1fr;gap:16px}\r\n@media(max-width:860px){.cdrill .split{grid-template-columns:1fr}}\r\n.cdrill .panel{border:1px solid var(--line);border-radius:12px;padding:16px 18px}\r\n.cdrill .rev{display:flex;align-items:center;gap:10px;width:100%;text-align:left;background:#FAFBFE;border-left:3px solid var(--gold);\r\n  border-radius:8px;padding:10px 12px;margin-bottom:8px;font-size:12.6px;transition:.15s}\r\n.cdrill .rev:hover{background:var(--gold-bg);transform:translateX(3px)}\r\n.cdrill .rev .n{font-weight:800;color:#8A6206;flex:none}\r\n.cdrill .rev .t{flex:1;color:var(--slate);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}\r\n.cdrill .rev .d{background:var(--gold);color:#3A2A02;padding:2px 8px;border-radius:99px;font-size:10.2px;font-weight:800;white-space:nowrap}\r\n.cdrill .danger{border:1px dashed #F3C2C6;border-radius:12px;background:#FFFAFA;padding:16px 18px;\r\n  display:flex;align-items:center;justify-content:space-between;gap:14px;flex-wrap:wrap}\r\n.cdrill .danger p{font-size:13px;color:var(--slate);flex:1;min-width:220px;line-height:1.6}\r\n.cdrill .danger b{color:var(--bad)}\r\n.cdrill .dbtn{padding:11px 20px;background:#fff;border:1.5px solid #F3C2C6;border-radius:11px;color:var(--bad);\r\n  font-size:13px;font-weight:800;white-space:nowrap;transition:.15s}\r\n.cdrill .dbtn:hover{background:var(--bad);border-color:var(--bad);color:#fff}\r\n.cdrill .empty{text-align:center;padding:40px 20px;color:var(--slate)}\r\n.cdrill .empty b{display:block;color:var(--ink);font-size:16px;margin-bottom:6px}\r\n.cdrill .toast{position:fixed;bottom:26px;left:50%;transform:translateX(-50%);background:var(--blue-900);color:#fff;\r\n  padding:12px 22px;border-radius:11px;font-weight:700;font-size:13.5px;z-index:9999;display:none;box-shadow:var(--shadow)}\r\n.cdrill .toast.show{display:block}\r\n.cdrill .toast.ok{background:var(--ok)}\r\n\r\n\/* ---------- content protection ---------- *\/\r\n.cdrill{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;\r\n  -webkit-touch-callout:none;-webkit-tap-highlight-color:transparent}\r\n\/* inputs must stay usable, or the search box cannot be edited *\/\r\n.cdrill input,.cdrill textarea,.cdrill select{-webkit-user-select:text;user-select:text}\r\n.cdrill.allow-select{-webkit-user-select:text;user-select:text}\r\n.cdrill img,.cdrill svg{-webkit-user-drag:none;user-drag:none;pointer-events:none}\r\n.cdrill .navtoggle,.cdrill .tab,.cdrill button{-webkit-user-drag:none}\r\n\/* screen obscured while the window is not in front *\/\r\n.cdrill.veiled .qbody,.cdrill.veiled .perf,.cdrill.veiled .chaplist,.cdrill.veiled .yearlist{\r\n  filter:blur(9px);transition:filter .12s}\r\n.cdrill .veilmsg{position:absolute;inset:0;display:none;align-items:center;justify-content:center;\r\n  background:rgba(244,247,253,.72);z-index:40;font-weight:800;font-size:13.5px;color:var(--blue-900);\r\n  text-align:center;padding:20px;border-radius:var(--r)}\r\n.cdrill.veiled .veilmsg{display:flex}\r\n.cdrill{position:relative}\r\n\/* what a print or PDF export gets instead of the paper *\/\r\n.cdrill-printblock{display:none}\r\n@media print{\r\n  .cdrill{display:none!important}\r\n  .cdrill-printblock{display:block!important;padding:60px 40px;text-align:center;\r\n    font-family:'Plus Jakarta Sans',system-ui,sans-serif;color:#12246E}\r\n  .cdrill-printblock h2{font-size:20px;font-weight:800;margin:0 0 10px}\r\n  .cdrill-printblock p{font-size:13.5px;color:#5B6B85;line-height:1.7;max-width:60ch;margin:0 auto}\r\n}\r\n\r\n\/* ---------- mobile ---------- *\/\r\n@media(max-width:640px){\r\n  .cdrill .wrap{padding:0 14px}\r\n\r\n  \/* hero: tighter, and the stat tiles share the row evenly *\/\r\n  .cdrill .hero{padding-top:18px}\r\n  .cdrill .hero h1{font-size:19px}\r\n  .cdrill .hero p{font-size:12.6px;margin-bottom:14px}\r\n  .cdrill .hstats{gap:7px}\r\n  .cdrill .hstat{flex:1 1 0;min-width:0;padding:8px 10px;text-align:center}\r\n  .cdrill .hstat b{font-size:17px}\r\n  .cdrill .hstat span{font-size:8.8px;letter-spacing:.06em}\r\n\r\n  \/* tabs scroll sideways instead of wrapping onto two lines *\/\r\n  .cdrill .tabs{margin-top:16px;gap:5px;flex-wrap:nowrap;overflow-x:auto;scrollbar-width:none;\r\n    -webkit-overflow-scrolling:touch}\r\n  .cdrill .tabs::-webkit-scrollbar{display:none}\r\n  .cdrill .tab{flex:none;padding:10px 15px;font-size:12.6px;gap:6px;white-space:nowrap}\r\n  .cdrill .tab[aria-selected=true]{padding-bottom:13px}\r\n\r\n  \/* THE FIX: pills were shrinking to fit instead of scrolling, which cut\r\n     every label in half. flex:none makes the row scroll as intended. *\/\r\n  .cdrill .filters .wrap{padding-top:11px;padding-bottom:11px;gap:8px;\r\n    -webkit-overflow-scrolling:touch}\r\n  .cdrill .pill-f{flex:none;padding:8px 14px;font-size:12.6px;gap:6px}\r\n  .cdrill .pill-f .n{font-size:10.5px;padding:2px 7px}\r\n\r\n  \/* toolbar stacks *\/\r\n  .cdrill .grid{padding:14px 0 40px;gap:14px}\r\n  .cdrill .toolbar{gap:8px;padding-bottom:12px}\r\n  .cdrill .search{flex:1 1 100%;min-width:0}\r\n  .cdrill .tgl{flex:1;justify-content:center;padding:9px 12px;font-size:12.6px}\r\n\r\n  \/* question card *\/\r\n  .cdrill .qhead{padding:11px 14px;gap:8px}\r\n  .cdrill .qcount{font-size:15px;width:100%}\r\n  .cdrill .qmeta{gap:6px}\r\n  .cdrill .badge-ch{max-width:100%;font-size:11px;padding:5px 11px}\r\n  .cdrill .badge-m,.cdrill .badge-src,.cdrill .qtag{font-size:10.6px;padding:4px 10px}\r\n  .cdrill .qbody{padding:16px 14px 18px}\r\n  .cdrill .qsheet{padding:15px 15px 16px;border-radius:0 9px 9px 0}\r\n  .cdrill .stem,.cdrill .qsheet .lead,.cdrill .qsheet .intro,.cdrill .qsheet .close,\r\n  .cdrill .stmts li,.cdrill .opt .txt{font-size:16.6px !important;line-height:1.6}\r\n  .cdrill .lists{grid-template-columns:1fr;gap:18px}\r\n  .cdrill .opt{padding:11px 13px;gap:9px}\r\n  .cdrill .key{min-width:28px;font-size:16px !important}\r\n  .cdrill .opt.sel::after{display:none}\r\n  .cdrill .actions{gap:7px}\r\n  .cdrill .btn{flex:1;padding:11px 14px;font-size:13.4px;text-align:center}\r\n  .cdrill .flagbtn{margin-left:0;flex:1 1 100%;justify-content:center;padding:11px 14px}\r\n  .cdrill .expl{padding:14px 15px}\r\n  .cdrill .expl .body{font-size:15.4px}\r\n\r\n  \/* chapter list and navigator *\/\r\n  .cdrill .chaphead{padding:10px 14px;gap:8px}\r\n  .cdrill .chaphead .meta{margin-left:0;flex:1 1 100%;white-space:normal}\r\n  .cdrill .chapchip{padding:10px 14px;gap:7px}\r\n  .cdrill .chapchip .cn{font-size:12.2px}\r\n  .cdrill .yearlist{padding:14px;gap:8px}\r\n  .cdrill .ychip{flex:1 1 calc(33.333% - 6px);min-width:0;padding:10px 8px}\r\n  .cdrill .navgrid{grid-template-columns:repeat(8,minmax(0,1fr));max-height:none}\r\n  .cdrill .rail .card{padding:14px}\r\n\r\n  \/* performance and analytics *\/\r\n  .cdrill .perf{padding:16px 14px 24px;gap:22px}\r\n  .cdrill .pbh{padding:16px 15px 14px;gap:10px}\r\n  .cdrill .pbh h4{font-size:15.4px}\r\n  .cdrill .pbh p{font-size:12.4px}\r\n  .cdrill .bars{padding:6px 15px 14px}\r\n  .cdrill .hero2{gap:14px}\r\n  .cdrill .ring-card{padding:20px 16px}\r\n  .cdrill .coach{padding:15px}\r\n  .cdrill .reco{gap:10px}\r\n  .cdrill .reco p{font-size:13px}\r\n  .cdrill .reco .go{margin-left:0;flex:1 1 100%;margin-top:6px}\r\n  .cdrill .planner{padding:15px;gap:12px}\r\n  .cdrill .pbtns{width:100%;gap:8px}\r\n  .cdrill .pbtn{flex:1 1 100%;justify-content:center;padding:12px 14px}\r\n  .cdrill .kpis{grid-template-columns:repeat(2,minmax(0,1fr));gap:9px}\r\n  .cdrill .kpi{padding:12px}\r\n  .cdrill .kpi b{font-size:22px}\r\n  .cdrill .kpi span{font-size:10.4px}\r\n  .cdrill .panel{padding:14px}\r\n  .cdrill .danger{padding:14px}\r\n  .cdrill .dbtn{width:100%}\r\n  .cdrill .cyc{padding:20px 14px 14px;gap:8px}\r\n  .cdrill .cycbar{min-width:42px}\r\n  .cdrill .toast{left:14px;right:14px;transform:none;text-align:center;bottom:16px}\r\n}\r\n@media(max-width:380px){\r\n  .cdrill .hstat b{font-size:15.5px}\r\n  .cdrill .navgrid{grid-template-columns:repeat(6,minmax(0,1fr))}\r\n  .cdrill .ychip{flex:1 1 calc(50% - 5px)}\r\n  .cdrill .kpis{grid-template-columns:1fr}\r\n}\r\n<\/style>\r\n\r\n<div class=\"cdrill\" id=\"cdRoot\">\r\n\r\n  <header class=\"hero\">\r\n    <div class=\"wrap\">\r\n      <div class=\"eyebrow\" id=\"cdEyebrow\">CSS ADDA \u00b7 PromotionExams.com<\/div>\r\n      <h1 id=\"cdTopic\">Chapter-wise Test Series<\/h1>\r\n      <p id=\"cdSub\">Chapter drills with a planner that builds your next sitting for you.<\/p>\r\n      <div class=\"hstats\">\r\n        <div class=\"hstat\"><b class=\"tnum\" id=\"hQ\">0<\/b><span>Questions<\/span><\/div>\r\n        <div class=\"hstat\"><b class=\"tnum\" id=\"hCh\">0<\/b><span>Chapters<\/span><\/div>\r\n        <div class=\"hstat\"><b class=\"tnum\" id=\"hMastered\">0%<\/b><span>Mastered<\/span><\/div>\r\n        <div class=\"hstat\"><b class=\"tnum\" id=\"hReady\">\u2014<\/b><span>Readiness<\/span><\/div>\r\n      <\/div>\r\n      <div class=\"tabs\" role=\"tablist\">\r\n        <button class=\"tab\" role=\"tab\" aria-selected=\"true\" data-tab=\"quiz\">\u270f\ufe0f Practice<\/button>\r\n        <button class=\"tab\" role=\"tab\" aria-selected=\"false\" data-tab=\"perf\">\ud83d\udcca My Performance <span class=\"pill hide\" id=\"perfPill\">!<\/span><\/button>\r\n      <\/div>\r\n    <\/div>\r\n  <\/header>\r\n  <div class=\"goldrule\"><\/div>\r\n\r\n  <div class=\"filters\" id=\"cdFilters\">\r\n    <div class=\"wrap\" role=\"group\" aria-label=\"Filter questions\">\r\n      <button class=\"pill-f\" data-f=\"all\" aria-pressed=\"true\">\ud83d\udccb All questions<span class=\"n tnum\" id=\"fAll\">0<\/span><\/button>\r\n      <button class=\"pill-f\" data-f=\"chapter\">\ud83d\udcda By chapter<\/button>\r\n      <button class=\"pill-f gold hide\" data-f=\"session\" id=\"pillSession\">\ud83e\udde9 <span id=\"sessLabel\">My session<\/span><span class=\"n tnum\" id=\"fSess\">0<\/span><\/button>\r\n      <button class=\"pill-f warn\" data-f=\"weak\">\u26a0\ufe0f Weak areas<span class=\"n tnum\" id=\"fWeak\">0<\/span><\/button>\r\n      <button class=\"pill-f\" data-f=\"flagged\">\ud83d\udd16 Flagged<span class=\"n tnum\" id=\"fFlag\">0<\/span><\/button>\r\n    <\/div>\r\n  <\/div>\r\n\r\n  <div class=\"wrap\">\r\n    <!-- ============ PRACTICE ============ -->\r\n    <div class=\"grid\" id=\"viewQuiz\">\r\n      <div>\r\n        <div class=\"toolbar\">\r\n          <div class=\"search\">\r\n            <svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2.2\"><circle cx=\"11\" cy=\"11\" r=\"7\"\/><path d=\"M20 20l-3.5-3.5\"\/><\/svg>\r\n            <input id=\"cdSearch\" placeholder=\"Search a phrase or a rule number\" aria-label=\"Search questions\">\r\n          <\/div>\r\n          <button class=\"tgl\" id=\"tglUn\" aria-pressed=\"false\">\u25fb Unattempted only<\/button>\r\n          <button class=\"tgl\" id=\"tglReset\">\u21ba Reset session<\/button>\r\n        <\/div>\r\n\r\n        <section class=\"card chapcard hide\" id=\"chapPanel\">\r\n          <div class=\"chaphead\">\r\n            <b>\ud83d\udcda Filter by chapter<\/b><i id=\"chapHint\"><\/i>\r\n            <span class=\"meta\" id=\"ctxMeta\"><\/span>\r\n          <\/div>\r\n          <div class=\"chaplist\" id=\"chapList\" role=\"group\" aria-label=\"Choose chapter\"><\/div>\r\n        <\/section>\r\n\r\n        <section class=\"card hide\" id=\"emptyCard\">\r\n          <div class=\"qhead\"><span class=\"qcount\">Nothing to show<\/span><\/div>\r\n          <div class=\"empty\" id=\"emptyBody\"><\/div>\r\n        <\/section>\r\n\r\n        <section class=\"card\" id=\"qCard\">\r\n          <div class=\"qhead\">\r\n            <span class=\"qcount\" id=\"qCount\">Question 1 of 1<\/span>\r\n            <span class=\"qmeta\">\r\n              <span class=\"badge-m\" id=\"qMastery\">Not seen yet<\/span>\r\n              <span class=\"badge-ch\"><span id=\"qChap\">Chapter<\/span><\/span>\r\n              <span id=\"qTags\" class=\"qtags\"><\/span>\r\n            <\/span>\r\n          <\/div>\r\n          <div class=\"qbody\">\r\n            <p class=\"stem\" id=\"qStem\"><\/p>\r\n            <div class=\"opts\" id=\"qOpts\"><\/div>\r\n            <div class=\"actions\">\r\n              <button class=\"btn\" id=\"btnCheck\">Check answer<\/button>\r\n              <button class=\"btn ghost\" id=\"btnPrev\">\u2190 Previous<\/button>\r\n              <button class=\"btn ghost\" id=\"btnNext\">Next \u2192<\/button>\r\n              <button class=\"flagbtn\" id=\"btnFlag\" aria-pressed=\"false\"><span id=\"flagIco\">\ud83c\udff3\ufe0f<\/span><span id=\"flagTxt\">Flag for review<\/span><\/button>\r\n            <\/div>\r\n            <p class=\"hint hide\" id=\"pickHint\">Choose an option above, then check your answer.<\/p>\r\n\r\n            <div id=\"result\" class=\"hide\">\r\n              <div class=\"verdict\" id=\"verdict\"><\/div>\r\n              <div class=\"expl\">\r\n                <div class=\"expl-h\">Source &amp; reasoning<\/div>\r\n                <div id=\"explBody\" class=\"body\"><\/div>\r\n              <\/div>\r\n            <\/div>\r\n          <\/div>\r\n        <\/section>\r\n      <\/div>\r\n\r\n      <aside class=\"rail\">\r\n        <section class=\"card\" id=\"navCard\" style=\"padding:0\">\r\n          <div class=\"nav-head\"><b id=\"navTitle\">Navigator<\/b><button class=\"navtoggle\" id=\"navToggle\">Hide<\/button><\/div>\r\n          <div class=\"navgrid\" id=\"navGrid\"><\/div>\r\n          <div class=\"legend\">\r\n            <span><i style=\"background:var(--ok-bg);border:1.5px solid #8FD3B6\"><\/i>Correct<\/span>\r\n            <span><i style=\"background:var(--bad-bg);border:1.5px solid #F0AEB4\"><\/i>Wrong<\/span>\r\n            <span><i style=\"background:var(--ok)\"><\/i>Mastered<\/span>\r\n          <\/div>\r\n        <\/section>\r\n        <div class=\"card\">\r\n          <h3>This session<\/h3>\r\n          <div class=\"score\"><b id=\"sPct\">\u2014<\/b><i id=\"sFrac\">0 of 0 correct<\/i><\/div>\r\n          <div class=\"bar\"><i id=\"sBar\" style=\"width:0\"><\/i><\/div>\r\n          <div class=\"mini\"><span id=\"sSeen\">0 attempted<\/span><span id=\"sLeft\">0 left here<\/span><\/div>\r\n          <div class=\"streak\" id=\"streak\"><\/div>\r\n        <\/div>\r\n        <div class=\"card\">\r\n          <h3 id=\"wHead\">Share on screen<\/h3>\r\n          <div class=\"score\"><b id=\"wPct\" style=\"color:#8A6206\">\u2014<\/b><i id=\"wUnit\">of this bank<\/i><\/div>\r\n          <p style=\"margin:8px 0 0;font-size:12.8px;color:var(--slate);line-height:1.55\" id=\"wNote\"><\/p>\r\n        <\/div>\r\n        <div class=\"card hide\" id=\"srcCard\">\r\n          <h3>Source text<\/h3>\r\n          <p style=\"margin:9px 0 12px;font-size:12.8px;color:var(--slate);line-height:1.55\">Every explanation here is drawn from the full text of the subject. Open it when a citation needs checking.<\/p>\r\n          <a class=\"btn\" id=\"srcLink\" href=\"#\" target=\"_blank\" rel=\"noopener\" style=\"display:block;text-align:center;text-decoration:none\">\ud83d\udcd6 Read the source<\/a>\r\n        <\/div>\r\n      <\/aside>\r\n    <\/div>\r\n\r\n    <!-- ============ PERFORMANCE ============ -->\r\n    <div class=\"hide\" id=\"viewPerf\">\r\n      <section class=\"card\" style=\"margin:20px 0 60px\">\r\n        <div class=\"qhead\"><span class=\"qcount\">My Performance<\/span><span class=\"badge-w\" id=\"perfCount\">0 attempted<\/span><\/div>\r\n        <div class=\"perf\" id=\"perfBody\"><\/div>\r\n      <\/section>\r\n    <\/div>\r\n  <\/div>\r\n\r\n  <div class=\"veilmsg\" id=\"veilMsg\">Paused \u2014 bring this window back to the front to continue<\/div>\r\n  <div class=\"toast\" id=\"toast\"><\/div>\r\n<\/div>\r\n\r\n<div class=\"cdrill-printblock\">\r\n  <h2>This test series is not available in print<\/h2>\r\n  <p>The questions, explanations and your progress are licensed for use on\r\n     PromotionExams.com and cannot be printed or saved as a PDF. Please\r\n     work through them on screen.<\/p>\r\n<\/div>\r\n\r\n<script>\r\n(function(){\r\n\"use strict\";\r\n\r\n\/* =====================================================================\r\n   1. CONFIGURATION  \u2190 EDIT PER SUBJECT\r\n   ===================================================================== *\/\r\nconst CFG = {\r\n  quizId : 'subject-chapterwise',   \/\/ unique per subject \u2014 this is the progress key,\r\n                                    \/\/ so change it for every new page you publish\r\n  topic  : 'NIPUN Bharat',          \/\/ e.g. 'CCS (Conduct) Rules, 1964'\r\n  eyebrow: '',                      \/\/ e.g. 'UPSC SO \/ Steno LDCE \u00b7 Paper II' \u2014 leave blank to hide\r\n  sub    : 'Chapter drills with a planner that builds your next sitting for you.',\r\n\r\n  \/* --- SOURCE PAGE ---------------------------------------------------\r\n     The page on your site that carries the full text of this subject.\r\n     A \"Read the source\" card then appears in the rail. Leave it blank\r\n     and the card disappears.                                            *\/\r\n  sourceUrl   : '',                 \/\/ e.g. 'https:\/\/promotionexams.com\/your-source-page\/'\r\n  sourceLabel : 'full source text', \/\/ shown on the link\r\n\r\n  \/* --- IMPORTANCE ----------------------------------------------------\r\n     You set the importance of each chapter yourself, in chapterImportance\r\n     below. It drives the ranking, the study plan and the planner \u2014 the\r\n     bigger the number, the more of your next sitting that chapter gets.\r\n     It is never described as exam weightage, so it is safe on a subject\r\n     with no previous year papers.\r\n     Leave the whole map empty and the page falls back silently to each\r\n     chapter's share of the bank, and stops mentioning importance at all. *\/\r\n\r\n  masteryThreshold : 3,     \/\/ clean correct answers before a question counts as mastered\r\n  weakThreshold    : 1,     \/\/ wrong attempts before a question is flagged weak\r\n\r\n  priorAccuracy : 0.30,     \/\/ expected-score model: shrink raw accuracy toward this\r\n  priorStrength : 6,\r\n  retention     : { baseDays:3, growth:2.5, riskBelow:0.70 },\r\n\r\n  sessionSize : 25,         \/\/ Focused set\r\n  mockSize    : 50          \/\/ Mock paper\r\n};\r\n\r\n\/* =====================================================================\r\n   2. CHAPTER IMPORTANCE  \u2190 you set this by hand\r\n   Keys do NOT have to match your chapter names exactly. Anything that\r\n   starts with a chapter or appendix number is matched on that number\r\n   alone, so 'Ch 2' finds 'CH 2: GENERAL OUTLINES OF THE SYSTEM OF\r\n   ACCOUNTS', and 'Apndx 5' finds 'APPENDIX 5: PRINCIPLES AND RULES...'.\r\n   Chapter, Chap, CH, Ch-2, 2. \u2014 all read the same. For appendices:\r\n   Appendix, Apndx, Appx, Annex, Annexure, in digits or roman numerals.\r\n   A key with no number falls back to a loose text match.\r\n   Numbers are relative: they need NOT total 100. A chapter you leave\r\n   out is given its share of the bank instead and is marked \"not rated\r\n   yet\" in the performance table.\r\n   Empty this map altogether to switch importance off everywhere.\r\n   ===================================================================== *\/\r\nconst chapterImportance = {\r\n  'Ch 1' : 30,\r\n  'Ch 2' : 45,\r\n  'Ch 3' : 25\r\n  \/\/ 'Apndx 1' : 25,   \u2190 appendices work the same way\r\n};\r\n\r\n\/* =====================================================================\r\n   3. QUESTION BANK  \u2190 PASTE YOUR BANK HERE\r\n   { id, chapter, question, options[], correct, explanation }\r\n     id          unique within its chapter\r\n     chapter     must match a key in chapterImportance exactly\r\n     correct     0-indexed\r\n     explanation may contain HTML; cite the rule or paragraph in <b> tags\r\n   A stem may carry \"\\n1. ...\" statement lines or a \"List-I \/ List-II\"\r\n   block \u2014 both are laid out automatically, and so is a plain stem.\r\n   The three below are only samples so the page renders on first open.\r\n   Delete them.\r\n   ===================================================================== *\/\r\nconst chapterQuestions = [\r\n  {\r\n    \"id\": 1,\r\n    \"chapter\": \"SEC 1: MISSION CONTEXT AND IMPLEMENTATION STRUCTURE\",\r\n    \"question\": \"NIPUN, in the name of the NIPUN Bharat Mission, is the abbreviation for which of the following?\",\r\n    \"options\": [\r\n      \"National Initiative for Proficiency in Understanding and Numeracy\",\r\n      \"National Improvement Programme for Understanding and Numeracy\",\r\n      \"National Initiative for Proficiency in Reading with Understanding and Numeracy\",\r\n      \"National Initiative for Primary Understanding and Numeracy\"\r\n    ],\r\n    \"correct\": 2,\r\n    \"explanation\": \"<b>Foreword<\/b> and <b>The Context<\/b> \u2014 the mission is described as 'a dedicated mission \\\"National Initiative for Proficiency in Reading with Understanding and Numeracy\\\" (NIPUN Bharat)'. The distractors each drop or alter one element of the expansion, most commonly the words 'Reading with'.\"\r\n  },\r\n  {\r\n    \"id\": 2,\r\n    \"chapter\": \"SEC 1: MISSION CONTEXT AND IMPLEMENTATION STRUCTURE\",\r\n    \"question\": \"On which date was the NIPUN Bharat Mission launched by the Government of India?\",\r\n    \"options\": [\r\n      \"5th July 2020\",\r\n      \"5th July 2021\",\r\n      \"29th July 2020\",\r\n      \"1st April 2021\"\r\n    ],\r\n    \"correct\": 1,\r\n    \"explanation\": \"<b>The Context<\/b> \u2014 'the Government of India launched the National Mission on Foundational Literacy and Numeracy on 5th July, 2021 to attain its objectives by 2026-27'. The <b>Foreword<\/b> repeats the same date. 29 July 2020 is the date associated with NEP 2020, which the document does not adopt for this mission.\"\r\n  },\r\n  {\r\n    \"id\": 3,\r\n    \"chapter\": \"SEC 1: MISSION CONTEXT AND IMPLEMENTATION STRUCTURE\",\r\n    \"question\": \"Under which umbrella scheme was the NIPUN Bharat Mission launched as a dedicated mission?\",\r\n    \"options\": [\r\n      \"Sarva Shiksha Abhiyan\",\r\n      \"Rashtriya Madhyamik Shiksha Abhiyan\",\r\n      \"Samagra Shiksha\",\r\n      \"Padhe Bharat Badhe Bharat\"\r\n    ],\r\n    \"correct\": 2,\r\n    \"explanation\": \"<b>Foreword<\/b> \u2014 'Accordingly, under Samagra Shiksha, a dedicated mission ... (NIPUN Bharat) was launched by the government of India on 5th July 2021.' The linkage matters because the mission's plans are approved and funded 'as part of SS' by the Project Approval Board.\"\r\n  },\r\n  {\r\n    \"id\": 4,\r\n    \"chapter\": \"SEC 1: MISSION CONTEXT AND IMPLEMENTATION STRUCTURE\",\r\n    \"question\": \"By which year is every child in the country to attain foundational literacy and numeracy by Grade 3, as targeted under the NIPUN Bharat Mission?\",\r\n    \"options\": [\r\n      \"2024-25\",\r\n      \"2025-26\",\r\n      \"2026-27\",\r\n      \"2029-30\"\r\n    ],\r\n    \"correct\": 2,\r\n    \"explanation\": \"<b>Foreword<\/b> \u2014 'The aim is to ensure that every child in the country attains foundational literacy and numeracy by Grade 3 by 2026-27.' <b>The Context<\/b> repeats that the mission is to 'attain its objectives by 2026-27'.\"\r\n  },\r\n  {\r\n    \"id\": 5,\r\n    \"chapter\": \"SEC 1: MISSION CONTEXT AND IMPLEMENTATION STRUCTURE\",\r\n    \"question\": \"Which body is identified as the implementing agency of the NIPUN Bharat Mission at the national level?\",\r\n    \"options\": [\r\n      \"The National Council of Educational Research and Training\",\r\n      \"The National Institute of Educational Planning and Administration\",\r\n      \"The Department of School Education and Literacy at the Ministry of Education\",\r\n      \"The Project Approval Board\"\r\n    ],\r\n    \"correct\": 2,\r\n    \"explanation\": \"<b>The Context<\/b> \u2014 'The Department of School Education and Literacy (DoSE&L) at the Ministry of Education (MoE) is the implementing agency of the NIPUN Bharat Mission at the National level.' NCERT and NIEPA provide academic and professional support respectively, but neither implements.\"\r\n  },\r\n  {\r\n    \"id\": 6,\r\n    \"chapter\": \"SEC 1: MISSION CONTEXT AND IMPLEMENTATION STRUCTURE\",\r\n    \"question\": \"The NIPUN Bharat Mission adopts an implementation mechanism of how many tiers?\",\r\n    \"options\": [\r\n      \"Three tiers\",\r\n      \"Four tiers\",\r\n      \"Five tiers\",\r\n      \"Six tiers\"\r\n    ],\r\n    \"correct\": 2,\r\n    \"explanation\": \"<b>The Context<\/b> \u2014 'This is a 5-tier implementation mechanism', running 'from National- State- District- Block\/Cluster- School level ... to ensure cross linkages'. The <b>Foreword<\/b> uses the identical formulation.\"\r\n  },\r\n  {\r\n    \"id\": 7,\r\n    \"chapter\": \"SEC 1: MISSION CONTEXT AND IMPLEMENTATION STRUCTURE\",\r\n    \"question\": \"Which option correctly states the five tiers of the NIPUN Bharat Mission implementation mechanism, in order from the highest to the lowest?\",\r\n    \"options\": [\r\n      \"National, State, District, Block\/Cluster, School and Community\",\r\n      \"National, State, Division, District, School\",\r\n      \"National, State, District, School, Community\",\r\n      \"Central, Regional, State, District, School\"\r\n    ],\r\n    \"correct\": 0,\r\n    \"explanation\": \"<b>The Context<\/b>, Figure 1 \u2014 the tiers descend as National Mission, State Mission, District Mission, Block\/Cluster Level Mission, and School and Community. The document notes that 'The Block\/Cluster level and School and Community level functionaries are clubbed together in the fourth category' for the purpose of listing stakeholders.\"\r\n  },\r\n  {\r\n    \"id\": 8,\r\n    \"chapter\": \"SEC 1: MISSION CONTEXT AND IMPLEMENTATION STRUCTURE\",\r\n    \"question\": \"Which of the following correctly states the Lakshyas to be accomplished under the NIPUN Bharat Mission?\",\r\n    \"options\": [\r\n      \"Listening, speaking, reading and writing with comprehension\",\r\n      \"Reading fluently, writing legibly, and performing the four arithmetical operations\",\r\n      \"Reading with understanding, writing with purpose, and understanding numeracy to solve day-to-day life situations\",\r\n      \"Literacy, numeracy and digital proficiency by Grade 3\"\r\n    ],\r\n    \"correct\": 2,\r\n    \"explanation\": \"<b>Foreword<\/b> \u2014 active participation of all stakeholders is pivotal for 'accomplishing the Lakshyas under the mission i.e., reading with understanding, writing with purpose and understanding numeracy to solve day- to day life situations by all children'.\"\r\n  },\r\n  {\r\n    \"id\": 9,\r\n    \"chapter\": \"SEC 1: MISSION CONTEXT AND IMPLEMENTATION STRUCTURE\",\r\n    \"question\": \"Which policy document is identified in the NIPUN Bharat stakeholder guidelines as laying down the roadmap for school education as a continuum starting with the foundational stage?\",\r\n    \"options\": [\r\n      \"National Curriculum Framework 2005\",\r\n      \"Right to Education Act 2009\",\r\n      \"National Education Policy 2020\",\r\n      \"Samagra Shiksha Framework\"\r\n    ],\r\n    \"correct\": 2,\r\n    \"explanation\": \"<b>Foreword<\/b> \u2014 'National Education Policy (NEP) 2020 lays down the roadmap in school education as a continuum starting with the foundational stage. Realising the criticality of this stage, multiple strategies have been suggested in the policy to be implemented in mission mode.'\"\r\n  },\r\n  {\r\n    \"id\": 10,\r\n    \"chapter\": \"SEC 1: MISSION CONTEXT AND IMPLEMENTATION STRUCTURE\",\r\n    \"question\": \"According to the NIPUN Bharat stakeholder guidelines, what is expected of States and UTs in relation to the National Mission?\",\r\n    \"options\": [\r\n      \"To adopt the national targets without modification\",\r\n      \"To seek prior approval of the National Mission for every district activity\",\r\n      \"To contextualise the National Mission by preparing State-specific yearly targets and action plans\",\r\n      \"To confine themselves to disbursing funds received from the Centre\"\r\n    ],\r\n    \"correct\": 2,\r\n    \"explanation\": \"<b>The Context<\/b> \u2014 States and UTs are also to 'create an enabling environment for the effective implementation of the mission', entailing focus on capacities of teachers and academic resource persons, engaging parents and community, creating quality teaching learning material, devising assessment mechanisms and creating infrastructure.\"\r\n  },\r\n  {\r\n    \"id\": 11,\r\n    \"chapter\": \"SEC 1: MISSION CONTEXT AND IMPLEMENTATION STRUCTURE\",\r\n    \"question\": \"For achieving the goals of the mission at the ground level, the Foreword identifies continuous hand-holding as being required mainly with which stakeholders?\",\r\n    \"options\": [\r\n      \"SCERTs and DIETs\",\r\n      \"State Project Directors and District Education Officers\",\r\n      \"Teachers, parents and community\",\r\n      \"Block and Cluster Resource Coordinators\"\r\n    ],\r\n    \"correct\": 2,\r\n    \"explanation\": \"<b>Foreword<\/b> \u2014 'In this regard, continuous hand-holding is required with the stakeholders mainly; teachers, parents, and community for achieving the goals of the mission at the ground.' The document is itself designed to bring 'role clarity among all the stakeholders particularly those in the States and UTs'.\"\r\n  },\r\n  {\r\n    \"id\": 12,\r\n    \"chapter\": \"SEC 1: MISSION CONTEXT AND IMPLEMENTATION STRUCTURE\",\r\n    \"question\": \"Which of the following is NOT among the tasks the guidelines identify as entailed in creating an enabling environment for the mission in States and UTs?\",\r\n    \"options\": [\r\n      \"Building the capacities of teachers and academic resource persons\",\r\n      \"Contextualising and creating quality teaching learning material for children and teachers\",\r\n      \"Devising mechanisms for assessment and regularly tracking children's learning\",\r\n      \"Framing State legislation for compulsory foundational education\"\r\n    ],\r\n    \"correct\": 3,\r\n    \"explanation\": \"<b>The Context<\/b> \u2014 the tasks also include 'engaging parents and community members' and 'creating infrastructure for universalization of foundational learning'. No legislative step is contemplated anywhere in the document.\"\r\n  },\r\n  {\r\n    \"id\": 13,\r\n    \"chapter\": \"SEC 1: MISSION CONTEXT AND IMPLEMENTATION STRUCTURE\",\r\n    \"question\": \"Consider the following statements regarding the NIPUN Bharat stakeholder guidelines:\\nI. The document illustrates the role of stakeholders under the categories National, State\/UT, District, and Block\/Cluster, School and Community.\\nII. Recognising the efforts of all stakeholders is stated to be important for keeping up their motivation and rigor in the field.\\nIII. The leadership at each level is responsible for ensuring such recognition.\\nWhich of the above statements is\/are correct?\",\r\n    \"options\": [\r\n      \"I and II only\",\r\n      \"II and III only\",\r\n      \"I and III only\",\r\n      \"I, II and III\"\r\n    ],\r\n    \"correct\": 3,\r\n    \"explanation\": \"<b>The Context<\/b> supports all three. The document states that leadership at each level must keep 'the spirits high and obtaining an active participation by each and every stakeholder in a collaborative manner to achieve the targets set under the mission'.\"\r\n  },\r\n  {\r\n    \"id\": 14,\r\n    \"chapter\": \"SEC 1: MISSION CONTEXT AND IMPLEMENTATION STRUCTURE\",\r\n    \"question\": \"A Head Teacher asks why foundational literacy and numeracy has been given such prominence. Which proposition, quoted in the guidelines from the policy, best answers this?\",\r\n    \"options\": [\r\n      \"Foundational skills determine performance in board examinations\",\r\n      \"Foundational skills are the only measurable outcomes at the primary stage\",\r\n      \"The rest of the policy will be largely irrelevant for a large portion of students if this most basic learning is not first achieved\",\r\n      \"Foundational literacy is a statutory entitlement under the Right to Education Act\"\r\n    ],\r\n    \"correct\": 2,\r\n    \"explanation\": \"<b>The Context<\/b> \u2014 the guidelines quote the policy as stating that 'the rest of the policy will be largely irrelevant for such a large portion of our students if this most basic learning (reading, writing, and arithmetic at the foundational level) is not first achieved'.\"\r\n  },\r\n  {\r\n    \"id\": 15,\r\n    \"chapter\": \"SEC 2: NATIONAL LEVEL STAKEHOLDERS\",\r\n    \"question\": \"Who is the Chairperson of the National Steering Committee under the NIPUN Bharat Mission?\",\r\n    \"options\": [\r\n      \"Minister of Education\",\r\n      \"National Mission Director\",\r\n      \"Secretary, Department of School Education and Literacy\",\r\n      \"Director, NCERT\"\r\n    ],\r\n    \"correct\": 2,\r\n    \"explanation\": \"<b>National Mission Management\/Administrative Structure<\/b> \u2014 the NSC is chaired by 'Secretary DoSE&L', whose major role is to 'Provide policy direction and facilitate the implementation of action plans under NIPUN Bharat Mission at the national level'. The same officer chairs the Project Approval Board.\"\r\n  },\r\n  {\r\n    \"id\": 16,\r\n    \"chapter\": \"SEC 2: NATIONAL LEVEL STAKEHOLDERS\",\r\n    \"question\": \"What is the principal role assigned to the National Steering Committee under the NIPUN Bharat Mission?\",\r\n    \"options\": [\r\n      \"To sanction the budget for implementation of the mission\",\r\n      \"To provide technical and academic support to States and UTs\",\r\n      \"To provide policy direction and facilitate the implementation of action plans at the national level\",\r\n      \"To plan, implement and monitor the mission\"\r\n    ],\r\n    \"correct\": 2,\r\n    \"explanation\": \"<b>National Steering Committee (NSC)<\/b> \u2014 the NSC is to 'Provide policy direction and facilitate the implementation of action plans under NIPUN Bharat Mission'. Budget sanction belongs to the Project Approval Board, academic support to NCERT, and planning, implementation and monitoring to the National Mission Director. Distinguishing these four roles is the core attribution test at the national level.\"\r\n  },\r\n  {\r\n    \"id\": 17,\r\n    \"chapter\": \"SEC 2: NATIONAL LEVEL STAKEHOLDERS\",\r\n    \"question\": \"Which of the following is NOT among the functions of the National Steering Committee?\",\r\n    \"options\": [\r\n      \"Designate a dedicated Mission Director with required administrative support\",\r\n      \"Oversee the progress of the mission and provide guidance on policy matters\",\r\n      \"Decide year-wise targets for the state under the mission\",\r\n      \"Provide curriculum and pedagogical framework focusing on FLN\"\r\n    ],\r\n    \"correct\": 3,\r\n    \"explanation\": \"<b>National Steering Committee (NSC)<\/b> \u2014 the NSC is to 'Designate a dedicated Mission Director with required administrative support' and to 'Oversee the progress of the mission at the national level and provide guidance on policy matters'. It also finalizes and approves the 5-year roadmap and reviews programmatic and financial progress. Providing the curriculum and pedagogical framework focusing on FLN is assigned to NCERT under its own section.\"\r\n  },\r\n  {\r\n    \"id\": 18,\r\n    \"chapter\": \"SEC 2: NATIONAL LEVEL STAKEHOLDERS\",\r\n    \"question\": \"Which body is responsible for reviewing and approving annual plans as part of Samagra Shiksha and sanctioning the budget for implementation of the NIPUN Bharat Mission?\",\r\n    \"options\": [\r\n      \"National Steering Committee\",\r\n      \"National Project Management Unit\",\r\n      \"Project Approval Board\",\r\n      \"National Resource Group\"\r\n    ],\r\n    \"correct\": 2,\r\n    \"explanation\": \"<b>Project Approval Board (PAB)<\/b> \u2014 the PAB is to 'Review and approve plans (as part of SS)' and 'Sanction budget for the implementation of the Mission'. It also discusses and approves the AWP&B of the States and UTs.\"\r\n  },\r\n  {\r\n    \"id\": 19,\r\n    \"chapter\": \"SEC 2: NATIONAL LEVEL STAKEHOLDERS\",\r\n    \"question\": \"The Project Approval Board is to review the implementation of the mission through meetings with Education Secretaries and State Project Directors of each State and UT held at what interval?\",\r\n    \"options\": [\r\n      \"Monthly\",\r\n      \"Quarterly\",\r\n      \"Half-yearly\",\r\n      \"Annually\"\r\n    ],\r\n    \"correct\": 2,\r\n    \"explanation\": \"<b>Project Approval Board (PAB)<\/b> \u2014 the review is 'through half-yearly meetings (or through other mechanisms) with Education Secretaries\/SPDs of each State\/UT'. The PAB also formulates and recommends modifications in programmatic norms and implementation.\"\r\n  },\r\n  {\r\n    \"id\": 20,\r\n    \"chapter\": \"SEC 2: NATIONAL LEVEL STAKEHOLDERS\",\r\n    \"question\": \"At what level of the Government is the National Mission Director for the NIPUN Bharat Mission positioned?\",\r\n    \"options\": [\r\n      \"Secretary level\",\r\n      \"Director or Deputy Secretary level\",\r\n      \"Additional Secretary or Joint Secretary level\",\r\n      \"Under Secretary level\"\r\n    ],\r\n    \"correct\": 2,\r\n    \"explanation\": \"<b>National Mission Management\/Administrative Structure<\/b> \u2014 the NMD is shown at 'AS\/JS' level in DoSE&L, while the National Assistant Mission Director is at 'Director\/DS' level. Mixing up the two ranks is the standard trap in this area.\"\r\n  },\r\n  {\r\n    \"id\": 21,\r\n    \"chapter\": \"SEC 2: NATIONAL LEVEL STAKEHOLDERS\",\r\n    \"question\": \"At what level is the National Assistant Mission Director positioned under the NIPUN Bharat Mission?\",\r\n    \"options\": [\r\n      \"Additional Secretary or Joint Secretary level\",\r\n      \"Under Secretary level\",\r\n      \"Director or Deputy Secretary level\",\r\n      \"Section Officer level\"\r\n    ],\r\n    \"correct\": 2,\r\n    \"explanation\": \"<b>National Mission Management\/Administrative Structure<\/b> \u2014 the NAMD, at 'Director\/DS' level in DoSE&L, is to 'Assist NMD in all activities related to planning, Implementing and monitoring of NIPUN Bharat Mission'. Under Secretaries and Section Officers form part of the supporting staff structure.\"\r\n  },\r\n  {\r\n    \"id\": 22,\r\n    \"chapter\": \"SEC 2: NATIONAL LEVEL STAKEHOLDERS\",\r\n    \"question\": \"Which of the following is a function of the National Mission Director rather than of the National Assistant Mission Director?\",\r\n    \"options\": [\r\n      \"Pre-appraisal of the AWP&B of the States and UTs\",\r\n      \"Budget planning and release of funds to the States and UTs\",\r\n      \"Parliamentary work related to the Mission\",\r\n      \"Creating mechanisms for grading the performance of States and UTs\"\r\n    ],\r\n    \"correct\": 3,\r\n    \"explanation\": \"<b>National Mission Director (NMD)<\/b> \u2014 the NMD also organises PAB meetings 'to appraise and approve AWP&B of States and UTs for release of funds as part of SS'. Pre-appraisal of the AWP&B, budget planning and release of funds, and Parliamentary work are all listed under the <b>National Assistant Mission Director (NAMD)<\/b>.\"\r\n  },\r\n  {\r\n    \"id\": 23,\r\n    \"chapter\": \"SEC 2: NATIONAL LEVEL STAKEHOLDERS\",\r\n    \"question\": \"Which of the following is NOT among the functions of the National Mission Director?\",\r\n    \"options\": [\r\n      \"Chalk out a clear-cut yearly roadmap and prepare the mission implementation plan\",\r\n      \"Ensure an independent, transparent and reliable assessment mechanism to monitor quality\",\r\n      \"Develop a common platform for strategic consultation with all stakeholders\",\r\n      \"Design and develop a Holistic Progress Card capturing 360-degree progress\"\r\n    ],\r\n    \"correct\": 3,\r\n    \"explanation\": \"<b>National Mission Director (NMD)<\/b> \u2014 the NMD is also to 'Appraise, evaluate, finance, and supervise national, state and district level planned interventions' and to implement the Vidya Pravesh Programme. Designing the Holistic Progress Card is assigned to NCERT.\"\r\n  },\r\n  {\r\n    \"id\": 24,\r\n    \"chapter\": \"SEC 2: NATIONAL LEVEL STAKEHOLDERS\",\r\n    \"question\": \"The National Assistant Mission Director is required to coordinate with various Ministries, institutions and organizations. Which of the following is NOT among those named?\",\r\n    \"options\": [\r\n      \"MoWCD and MoHFW\",\r\n      \"NCERT and NIEPA\",\r\n      \"NIOS, CBSE and KVS\",\r\n      \"NITI Aayog and the Ministry of Finance\"\r\n    ],\r\n    \"correct\": 3,\r\n    \"explanation\": \"<b>National Assistant Mission Director (NAMD)<\/b> \u2014 the named bodies are 'MoWCD, MoHFW, NCERT, NIEPA, NIOS, CBSE, KVS, etc.' The NAMD is additionally to monitor implementation in States and UTs 'mainly in terms of child-wise tracking, quality, and funding'.\"\r\n  },\r\n  {\r\n    \"id\": 25,\r\n    \"chapter\": \"SEC 2: NATIONAL LEVEL STAKEHOLDERS\",\r\n    \"question\": \"Under whose headship does the National Project Management Unit or Technical Support Unit function?\",\r\n    \"options\": [\r\n      \"Secretary, DoSE&L\",\r\n      \"Chairperson of the Project Approval Board\",\r\n      \"Director, NCERT\",\r\n      \"National Mission Director and National Assistant Mission Director\"\r\n    ],\r\n    \"correct\": 3,\r\n    \"explanation\": \"<b>National Project Management Unit (NPMU)\/ Technical Support Unit (TSU)<\/b> \u2014 its role is to 'Provide support and technical assistance to the Mission'. It is to create the national 5-year roadmap and annual plans, and to set actionable goals for the State PMUs based on national-level goals.\"\r\n  },\r\n  {\r\n    \"id\": 26,\r\n    \"chapter\": \"SEC 2: NATIONAL LEVEL STAKEHOLDERS\",\r\n    \"question\": \"The Technical Support Unit or National Project Management Unit is shown as comprising ten consultants. How are they constituted?\",\r\n    \"options\": [\r\n      \"Five IT and five subject experts\",\r\n      \"Six subject experts and four IT experts\",\r\n      \"Five administrative and five academic consultants\",\r\n      \"Ten subject experts drawn from NCERT\"\r\n    ],\r\n    \"correct\": 0,\r\n    \"explanation\": \"<b>Mission Implementation Structure<\/b>, Figure 3 \u2014 the TSU\/NPMU is shown with '10 Consultants (5 IT & 5 Subject Experts)', supported by '2 US & 2 SO', that is two Under Secretaries and two Section Officers.\"\r\n  },\r\n  {\r\n    \"id\": 27,\r\n    \"chapter\": \"SEC 2: NATIONAL LEVEL STAKEHOLDERS\",\r\n    \"question\": \"Which of the following is a function of the National Project Management Unit or Technical Support Unit?\",\r\n    \"options\": [\r\n      \"Sanctioning the budget for implementation of the mission\",\r\n      \"Deciding year-wise targets for each State\",\r\n      \"Implementing the mission in all CBSE-affiliated schools\",\r\n      \"Providing clear procurement guidelines for TLM resources so that 'best in class' materials are available for States and UTs\"\r\n    ],\r\n    \"correct\": 3,\r\n    \"explanation\": \"<b>National Project Management Unit (NPMU)\/ Technical Support Unit (TSU)<\/b> \u2014 the NPMU is also to work with SPMUs 'to develop robust data collection frameworks, dashboards and standard frameworks for validating and reporting data', and to develop, execute and manage a well-defined IEC plan.\"\r\n  },\r\n  {\r\n    \"id\": 28,\r\n    \"chapter\": \"SEC 2: NATIONAL LEVEL STAKEHOLDERS\",\r\n    \"question\": \"Which body heads NCERT's engagement with the NIPUN Bharat Mission, and what is its stated role?\",\r\n    \"options\": [\r\n      \"Chairperson; to implement the mission in affiliated schools\",\r\n      \"Vice Chancellor; to provide technical and administrative support\",\r\n      \"Director; to provide technical and academic support and handhold with States and UTs\",\r\n      \"Commissioner; to develop model schools for attainment of FLN\"\r\n    ],\r\n    \"correct\": 2,\r\n    \"explanation\": \"<b>National Council for Educational Research and Training (NCERT)<\/b> \u2014 the head is the Director, and the role is 'Provide technical and academic support' and 'Handhold with the States and UTs to provide academic support in the implementation of the Mission'.\"\r\n  },\r\n  {\r\n    \"id\": 29,\r\n    \"chapter\": \"SEC 2: NATIONAL LEVEL STAKEHOLDERS\",\r\n    \"question\": \"Under the NIPUN Bharat Mission, which body is to develop the three-month play-based school preparation module known as the Vidya Pravesh Programme?\",\r\n    \"options\": [\r\n      \"NIEPA\",\r\n      \"SCERT\",\r\n      \"NCERT\",\r\n      \"The National Resource Group\"\r\n    ],\r\n    \"correct\": 2,\r\n    \"explanation\": \"<b>National Council for Educational Research and Training (NCERT)<\/b> \u2014 SCERT's related duty under its own section is narrower, being to 'Develop locally contextualized teaching learning materials\/ textbooks, Vidya Pravesh material in local languages', and to 'Contextualise and prepare Vidya Pravesh guidelines in local language'.\"\r\n  },\r\n  {\r\n    \"id\": 30,\r\n    \"chapter\": \"SEC 2: NATIONAL LEVEL STAKEHOLDERS\",\r\n    \"question\": \"NCERT is required to develop an item bank exemplar for measuring learning outcomes at the foundational stage. What is the specified minimum?\",\r\n    \"options\": [\r\n      \"At least 5 items at a minimum of two proficiency levels\",\r\n      \"At least 10 items at a minimum of two proficiency levels\",\r\n      \"At least 10 items at a minimum of three proficiency levels\",\r\n      \"At least 20 items at a single proficiency level\"\r\n    ],\r\n    \"correct\": 1,\r\n    \"explanation\": \"<b>National Council for Educational Research and Training (NCERT)<\/b> \u2014 'Develop at least 10 items at minimum two proficiency levels for measuring LO (item bank exemplar)'. NCERT is also to 'Determine LOs in progression for foundational stage' and prepare a template for the baseline survey.\"\r\n  },\r\n  {\r\n    \"id\": 31,\r\n    \"chapter\": \"SEC 2: NATIONAL LEVEL STAKEHOLDERS\",\r\n    \"question\": \"NCERT is to develop infographics, posters and presentations explaining hard spots. On the basis of which exercise are these to be developed?\",\r\n    \"options\": [\r\n      \"The State Achievement Survey\",\r\n      \"The Holistic Progress Card data\",\r\n      \"The baseline survey for the foundational stage\",\r\n      \"The National Achievement Survey 2021\"\r\n    ],\r\n    \"correct\": 3,\r\n    \"explanation\": \"<b>National Council for Educational Research and Training (NCERT)<\/b> \u2014 'Based on NAS 2021, develop infographics\/ posters\/ presentations explaining hard spots'. Separately, NCERT is to 'Prepare E-content and upload in DIKSHA for FLN (infographics\/ posters\/ presentations explaining LOs)'.\"\r\n  },\r\n  {\r\n    \"id\": 32,\r\n    \"chapter\": \"SEC 2: NATIONAL LEVEL STAKEHOLDERS\",\r\n    \"question\": \"Which body is required to design the Holistic Progress Card capturing 360-degree and multidimensional progress with the uniqueness of each child in the cognitive, affective and psychomotor domains?\",\r\n    \"options\": [\r\n      \"CBSE\",\r\n      \"SCERT\",\r\n      \"NCERT\",\r\n      \"The Academic Task Force\"\r\n    ],\r\n    \"correct\": 2,\r\n    \"explanation\": \"<b>National Council for Educational Research and Training (NCERT)<\/b> \u2014 SCERT's corresponding duty is to 'Develop\/ Adopt\/ Adapt Holistic Progress Report card', that is, to adapt what NCERT designs. The distinction between designing and adopting or adapting is frequently tested.\"\r\n  },\r\n  {\r\n    \"id\": 33,\r\n    \"chapter\": \"SEC 2: NATIONAL LEVEL STAKEHOLDERS\",\r\n    \"question\": \"Who heads NIEPA's role under the NIPUN Bharat Mission, and at which levels is its support directed?\",\r\n    \"options\": [\r\n      \"Director; at the State and district levels\",\r\n      \"Commissioner; at the block and cluster levels\",\r\n      \"Chairperson; at the national and State levels\",\r\n      \"Vice Chancellor; at the district and institutional levels\"\r\n    ],\r\n    \"correct\": 3,\r\n    \"explanation\": \"<b>National Institute of Educational Planning and Administration (NIEPA)<\/b> \u2014 the role is to 'Provide technical and administrative\/ professional support at district and Institutional level'. NIEPA organises capacity building programmes for strategic planning and activities for leadership development.\"\r\n  },\r\n  {\r\n    \"id\": 34,\r\n    \"chapter\": \"SEC 2: NATIONAL LEVEL STAKEHOLDERS\",\r\n    \"question\": \"Which of the following is a function assigned to NIEPA under the NIPUN Bharat Mission?\",\r\n    \"options\": [\r\n      \"Introducing competency-based education in affiliated schools\",\r\n      \"Determining learning outcomes in progression for the foundational stage\",\r\n      \"Organising activities for leadership development and supporting States and UTs in such initiatives\",\r\n      \"Conducting the State Achievement Survey\"\r\n    ],\r\n    \"correct\": 2,\r\n    \"explanation\": \"<b>National Institute of Educational Planning and Administration (NIEPA)<\/b> \u2014 NIEPA is also to 'Design effective monitoring mechanism and handhold with the states and UTs for its implementation' and to 'Support States and UTs in devising mechanism for evaluation of programme outcomes, including school evaluation'.\"\r\n  },\r\n  {\r\n    \"id\": 35,\r\n    \"chapter\": \"SEC 2: NATIONAL LEVEL STAKEHOLDERS\",\r\n    \"question\": \"What is the stated role of the Central Board of Secondary Education under the NIPUN Bharat Mission?\",\r\n    \"options\": [\r\n      \"To design the national assessment framework\",\r\n      \"To provide academic support to State Councils of Educational Research and Training\",\r\n      \"To develop model schools for the attainment of FLN\",\r\n      \"To implement the NIPUN Bharat Mission in all CBSE schools\"\r\n    ],\r\n    \"correct\": 3,\r\n    \"explanation\": \"<b>Central Board of Secondary Education (CBSE)<\/b> \u2014 headed by its Chairperson, the CBSE is also to 'Introduce competency-based education in CBSE-affiliated schools' and to 'Monitor their affiliated schools and report to DoSEL'. Developing model schools for FLN is a KVS function.\"\r\n  },\r\n  {\r\n    \"id\": 36,\r\n    \"chapter\": \"SEC 2: NATIONAL LEVEL STAKEHOLDERS\",\r\n    \"question\": \"CBSE is required to work with NCERT to develop codification and a matrix for learning outcomes at which level?\",\r\n    \"options\": [\r\n      \"The pre-primary level\",\r\n      \"The secondary level\",\r\n      \"The upper primary level\",\r\n      \"The primary level\"\r\n    ],\r\n    \"correct\": 3,\r\n    \"explanation\": \"<b>Central Board of Secondary Education (CBSE)<\/b> \u2014 CBSE is also to 'Identify a pool of teachers at primary level who could be mentors to teachers and develop e-content to support teachers at foundational stage with NCERT', and to 'Play pivotal role in capacity building of ECCE and primary teachers for FLN'.\"\r\n  },\r\n  {\r\n    \"id\": 37,\r\n    \"chapter\": \"SEC 2: NATIONAL LEVEL STAKEHOLDERS\",\r\n    \"question\": \"Which of the following is a function of the Kendriya Vidyalaya Sangathan under the NIPUN Bharat Mission?\",\r\n    \"options\": [\r\n      \"Providing technical and administrative support at institutional level\",\r\n      \"Monitoring affiliated schools and reporting to DoSE&L\",\r\n      \"Starting Balvatikas and developing model schools for the attainment of FLN\",\r\n      \"Preparing a template for the baseline survey\"\r\n    ],\r\n    \"correct\": 2,\r\n    \"explanation\": \"<b>Kendriya Vidyalaya Sangathan (KVS)<\/b> \u2014 headed by its Commissioner, KVS is to implement the mission in all KVS schools, to 'Introduce competency-based education in KV schools at primary level and adopt learning outcome metrics developed by NCERT and CBSE', and to implement Vidya Pravesh.\"\r\n  },\r\n  {\r\n    \"id\": 38,\r\n    \"chapter\": \"SEC 2: NATIONAL LEVEL STAKEHOLDERS\",\r\n    \"question\": \"Who heads the National Resource Group under the NIPUN Bharat Mission?\",\r\n    \"options\": [\r\n      \"Secretary, DoSE&L\",\r\n      \"National Mission Director\",\r\n      \"Director, NCERT\",\r\n      \"Vice Chancellor, NIEPA\"\r\n    ],\r\n    \"correct\": 2,\r\n    \"explanation\": \"<b>National Resource Group (NRG)<\/b> \u2014 its role is to 'Support MoE and States\/UTs on Academic matters in the Implementation of NIPUN Bharat Mission'. The NRG reports academic progress periodically to the National Steering Committee and the Mission Director.\"\r\n  },\r\n  {\r\n    \"id\": 39,\r\n    \"chapter\": \"SEC 2: NATIONAL LEVEL STAKEHOLDERS\",\r\n    \"question\": \"Which of the following functions is assigned to the National Resource Group?\",\r\n    \"options\": [\r\n      \"Conducting in-service training of teachers on academic approaches of FLN\",\r\n      \"Sanctioning the budget for the mission\",\r\n      \"Guiding and handholding Academic Task Forces along with MoE on administrative matters critical for implementation of the Academic Roadmap\",\r\n      \"Preparing the district annual work plan and budget\"\r\n    ],\r\n    \"correct\": 2,\r\n    \"explanation\": \"<b>National Resource Group (NRG)<\/b> \u2014 such matters include 'mentor identification and their mapping, tracking of learning outcome, etc.' The NRG is also to build the capacity of States and UTs 'to develop their own academic roadmap including administrative challenges in their implementation'.\"\r\n  },\r\n  {\r\n    \"id\": 40,\r\n    \"chapter\": \"SEC 2: NATIONAL LEVEL STAKEHOLDERS\",\r\n    \"question\": \"The National Resource Group is to suggest measures for the qualitative implementation of which central initiatives?\",\r\n    \"options\": [\r\n      \"Samagra Shiksha and PM POSHAN\",\r\n      \"NAS and SAS\",\r\n      \"Vidya Pravesh and Balvatika\",\r\n      \"NISHTHA 3.0 and DIKSHA FLN\"\r\n    ],\r\n    \"correct\": 3,\r\n    \"explanation\": \"<b>National Resource Group (NRG)<\/b> \u2014 the NRG is also to prepare need-based guidelines along with MoE on crucial aspects of FLN such as 'school-based assessment, state achievement survey, school-based onsite support, timely delivery of textbooks & teaching learning material, child tracking at school'.\"\r\n  },\r\n  {\r\n    \"id\": 41,\r\n    \"chapter\": \"SEC 2: NATIONAL LEVEL STAKEHOLDERS\",\r\n    \"question\": \"Match List-I with List-II and select the correct answer using the codes given below:\\nList-I (National level body)\\nA. National Steering Committee\\nB. Project Approval Board\\nC. NCERT\\nD. NIEPA\\nList-II (Administrative head)\\n1. Director\\n2. Vice Chancellor\\n3. Secretary, DoSE&L\\n4. Secretary, DoSE&L (as Chairperson for approval of plans and budget)\",\r\n    \"options\": [\r\n      \"A-3, B-4, C-1, D-2\",\r\n      \"A-4, B-3, C-2, D-1\",\r\n      \"A-3, B-4, C-2, D-1\",\r\n      \"A-1, B-3, C-4, D-2\"\r\n    ],\r\n    \"correct\": 0,\r\n    \"explanation\": \"<b>National Mission Management\/Administrative Structure<\/b> \u2014 the NSC and PAB are both shown with 'Chairperson Secretary DoSE&L'. The same officer, Secretary DoSE&L, chairs both the NSC and the PAB, but with distinct mandates: policy direction in the first case and approval of plans and sanction of budget in the second. NCERT is headed by its Director and NIEPA by its Vice Chancellor.\"\r\n  },\r\n  {\r\n    \"id\": 42,\r\n    \"chapter\": \"SEC 2: NATIONAL LEVEL STAKEHOLDERS\",\r\n    \"question\": \"Consider the following as members of the National Steering Committee:\\nI. National Mission Director\\nII. Representatives from MoWCD, MoTA and MoHFW\\nIII. Representatives of NCERT and NIEPA\\nIV. Nominated experts from fields such as neuroscience, child psychology and pedagogy\\nWhich of the above are correct?\",\r\n    \"options\": [\r\n      \"I, II and III only\",\r\n      \"I, II and IV only\",\r\n      \"II, III and IV only\",\r\n      \"I, II, III and IV\"\r\n    ],\r\n    \"correct\": 3,\r\n    \"explanation\": \"<b>Mission Implementation Structure<\/b>, Figure 3 \u2014 the NSC, headed by Secretary DoSE&L, also includes representatives of Panchayati Raj and 'representatives of states'. All four listed categories are shown as members.\"\r\n  },\r\n  {\r\n    \"id\": 43,\r\n    \"chapter\": \"SEC 3: STATE LEVEL STAKEHOLDERS\",\r\n    \"question\": \"Who chairs the State Steering Committee under the NIPUN Bharat Mission?\",\r\n    \"options\": [\r\n      \"Chief Secretary of the State\",\r\n      \"Director, SCERT\",\r\n      \"State Project Director\",\r\n      \"Secretary, Education\"\r\n    ],\r\n    \"correct\": 3,\r\n    \"explanation\": \"<b>State Mission Management\/Administrative Structure<\/b> \u2014 the SSC is chaired by 'Secretary Education', and its role is to 'Facilitate and review the implementation of NIPUN Bharat Mission in the State\/UT'. The State Mission Director is a distinct functionary headed by the SPD or Director SCERT.\"\r\n  },\r\n  {\r\n    \"id\": 44,\r\n    \"chapter\": \"SEC 3: STATE LEVEL STAKEHOLDERS\",\r\n    \"question\": \"Which of the following is a function of the State Steering Committee that has no counterpart in the National Steering Committee's listed functions?\",\r\n    \"options\": [\r\n      \"Designating a dedicated mission director with required administrative support\",\r\n      \"Overseeing the progress of the mission and providing guidance on policy matters\",\r\n      \"Seeking funds through Grant-in-aid from the Centre and disbursing them to the districts\",\r\n      \"Reviewing programmatic and financial progress from time to time and taking corrective steps\"\r\n    ],\r\n    \"correct\": 2,\r\n    \"explanation\": \"<b>State Steering Committee (SSC)<\/b> \u2014 the fund-flow function is specific to the State tier, since the State is the intermediary between the Centre and the districts. The SSC also 'Decide[s] and supervise[s] year-wise targets for the state under the mission'.\"\r\n  },\r\n  {\r\n    \"id\": 45,\r\n    \"chapter\": \"SEC 3: STATE LEVEL STAKEHOLDERS\",\r\n    \"question\": \"Under the NIPUN Bharat Mission, who heads the State Mission?\",\r\n    \"options\": [\r\n      \"Secretary, Education\",\r\n      \"District Education Officer\",\r\n      \"Chairperson of the State Steering Committee\",\r\n      \"State Project Director or Director, SCERT\"\r\n    ],\r\n    \"correct\": 3,\r\n    \"explanation\": \"<b>State Mission Management\/Administrative Structure<\/b> \u2014 the State Mission Director is shown as 'SPD\/ SCERT Director', with the role to 'Plan, Implement and Monitor NIPUN Bharat Mission in the State\/UT' and to 'Monitor the Lakshyas\/ Learning Outcome'.\"\r\n  },\r\n  {\r\n    \"id\": 46,\r\n    \"chapter\": \"SEC 3: STATE LEVEL STAKEHOLDERS\",\r\n    \"question\": \"Which of the following is expressly listed as a function of the State Mission Director?\",\r\n    \"options\": [\r\n      \"Presenting the AWP&B to the National Mission or PAB for approval and release of funds\",\r\n      \"Sanctioning the budget for the districts\",\r\n      \"Conducting the National Achievement Survey\",\r\n      \"Developing the national five-year roadmap\"\r\n    ],\r\n    \"correct\": 0,\r\n    \"explanation\": \"<b>State Mission Director (SMD)<\/b> \u2014 the SMD is also to 'Ensure preparation of the annual mission implementation plan for each district and consolidate the same into State AWP&B', to seek funds from the Centre and ensure timely disbursement to districts, and to plan research and evaluation studies.\"\r\n  },\r\n  {\r\n    \"id\": 47,\r\n    \"chapter\": \"SEC 3: STATE LEVEL STAKEHOLDERS\",\r\n    \"question\": \"Under whose headship does the State Project Management Unit function, and what is its role?\",\r\n    \"options\": [\r\n      \"Secretary Education; to facilitate and review implementation\",\r\n      \"State Project Director; to sanction budgets\",\r\n      \"Director SCERT; to provide academic support\",\r\n      \"State Mission Director; to assist the SMD in planning, implementation and monitoring in the State or UT\"\r\n    ],\r\n    \"correct\": 3,\r\n    \"explanation\": \"<b>State Project Management Unit (SPMU)<\/b> \u2014 the SPMU is to 'Develop roadmaps and annual plan and provide support to districts in developing their district plans' and to 'Support and handhold with DPMUs in efficiently performing their role in their respective districts'.\"\r\n  },\r\n  {\r\n    \"id\": 48,\r\n    \"chapter\": \"SEC 3: STATE LEVEL STAKEHOLDERS\",\r\n    \"question\": \"Which of the following is a function of the State Project Management Unit?\",\r\n    \"options\": [\r\n      \"Mapping of a database of each child enrolled in foundational grades\",\r\n      \"Conducting the State Achievement Survey\",\r\n      \"Developing item banks for the foundational stage\",\r\n      \"Creating the District Resource Group\"\r\n    ],\r\n    \"correct\": 0,\r\n    \"explanation\": \"<b>State Project Management Unit (SPMU)<\/b> \u2014 the SPMU is also to 'Create plan and strategy to engage parents and the community in the learning of children' and to 'Promote cross-learning among districts through workshops and exchange of best practices'. Conducting the SAS and developing item banks are SCERT functions.\"\r\n  },\r\n  {\r\n    \"id\": 49,\r\n    \"chapter\": \"SEC 3: STATE LEVEL STAKEHOLDERS\",\r\n    \"question\": \"The State Project Management Unit is to carry out research for creating an enabling environment for achieving FLN targets. Which of the following is expressly named as a subject of such research?\",\r\n    \"options\": [\r\n      \"Teacher vacancy and rationalization, procurement and delivery, basic infrastructure and printing\",\r\n      \"Curriculum design and pedagogical approaches\",\r\n      \"Learning outcome progression at the foundational stage\",\r\n      \"Community perceptions of school quality\"\r\n    ],\r\n    \"correct\": 0,\r\n    \"explanation\": \"<b>State Project Management Unit (SPMU)<\/b> \u2014 such research is undertaken 'to support NMD for decision making'. It is distinct from SCERT's research role, which concerns 'academic activities under NIPUN Bharat Mission in the State\/ UT to identify the critical areas for support'.\"\r\n  },\r\n  {\r\n    \"id\": 50,\r\n    \"chapter\": \"SEC 3: STATE LEVEL STAKEHOLDERS\",\r\n    \"question\": \"Which body is required to contextualise and prepare Vidya Pravesh guidelines in the local language?\",\r\n    \"options\": [\r\n      \"NCERT\",\r\n      \"SCERT or State Institute of Education\",\r\n      \"The Academic Task Force\",\r\n      \"The State Project Management Unit\"\r\n    ],\r\n    \"correct\": 1,\r\n    \"explanation\": \"<b>State Mission Management\/Administrative Structure<\/b> \u2014 this is listed among SCERT\/SIE's roles alongside providing technical and academic support and handholding with the districts. NCERT develops the Vidya Pravesh module itself; SCERT contextualises it.\"\r\n  },\r\n  {\r\n    \"id\": 51,\r\n    \"chapter\": \"SEC 3: STATE LEVEL STAKEHOLDERS\",\r\n    \"question\": \"Which of the following is NOT among the functions of the SCERT under the NIPUN Bharat Mission?\",\r\n    \"options\": [\r\n      \"Capacity building of DIET faculty and academic resource persons in the State or UT\",\r\n      \"Conducting the State Achievement Survey and developing an appropriate action plan based on the findings\",\r\n      \"Developing a State-specific digital repository of FLN resources preferably on DIKSHA\",\r\n      \"Sanctioning the budget for district-level implementation\"\r\n    ],\r\n    \"correct\": 3,\r\n    \"explanation\": \"<b>State Council of Educational Research and Training (SCERT)<\/b> \u2014 SCERT is also to 'Design and develop\/ adapt\/ adopt curriculum and instructional design', develop item banks for the foundational stage, and 'Ensure enabling environment for learning creating activity\/ learning areas, setting-up of classroom\/ school libraries, and developing linkages to public libraries'.\"\r\n  },\r\n  {\r\n    \"id\": 52,\r\n    \"chapter\": \"SEC 3: STATE LEVEL STAKEHOLDERS\",\r\n    \"question\": \"Who heads the Academic Task Force at the State level?\",\r\n    \"options\": [\r\n      \"Secretary Education alone\",\r\n      \"Director SCERT or the State Mission Director\",\r\n      \"State Project Director alone\",\r\n      \"Principal of the lead DIET\"\r\n    ],\r\n    \"correct\": 1,\r\n    \"explanation\": \"<b>Academic Task Force (ATF)<\/b> \u2014 its role is to 'Support State\/UT and Districts on Academic Matters in the Implementation of NIPUN Bharat Mission'. The corresponding body at the district level is the District Task Force, headed by the Principal DIET or the District Mission Director.\"\r\n  },\r\n  {\r\n    \"id\": 53,\r\n    \"chapter\": \"SEC 3: STATE LEVEL STAKEHOLDERS\",\r\n    \"question\": \"Which of the following is a function of the Academic Task Force?\",\r\n    \"options\": [\r\n      \"Developing a five-year academic roadmap for the State or UT, taking into account administrative challenges\",\r\n      \"Sanctioning grants-in-aid to districts\",\r\n      \"Conducting in-service training of teachers at the cluster level\",\r\n      \"Monitoring affiliated schools and reporting to DoSE&L\"\r\n    ],\r\n    \"correct\": 0,\r\n    \"explanation\": \"<b>Academic Task Force (ATF)<\/b> \u2014 the ATF is also to 'Evolve clarity on the role of SCERT, DIETs, BRC\/CRC, and SPMU under NIPUN Bharat Mission and suggest measures to bring synergy in their work', and to assist in the identification of mentors and map them to teachers and schools.\"\r\n  },\r\n  {\r\n    \"id\": 54,\r\n    \"chapter\": \"SEC 3: STATE LEVEL STAKEHOLDERS\",\r\n    \"question\": \"The Academic Task Force is to suggest strategies for the qualitative implementation of which central programmes in the State or UT?\",\r\n    \"options\": [\r\n      \"NISHTHA FLN, NISHTHA ECCE and DIKSHA FLN\",\r\n      \"Samagra Shiksha and PM POSHAN\",\r\n      \"Vidya Pravesh and Balvatika\",\r\n      \"NAS and the Holistic Progress Card\"\r\n    ],\r\n    \"correct\": 0,\r\n    \"explanation\": \"<b>Academic Task Force (ATF)<\/b> \u2014 the ATF is also to undertake studies to understand State-specific issues on the implementation and efficacy of 'NIPUN Bharat Mission, Vidya Pravesh Programme, NISHTHA FLN and NISHTHA ECCE, etc.', and to conduct capacity-building programmes for District Task Forces.\"\r\n  },\r\n  {\r\n    \"id\": 55,\r\n    \"chapter\": \"SEC 3: STATE LEVEL STAKEHOLDERS\",\r\n    \"question\": \"Match List-I with List-II and select the correct answer using the codes given below:\\nList-I (State level unit)\\nA. State Steering Committee\\nB. State Mission Director\\nC. State Project Management Unit\\nD. Academic Task Force\\nList-II (Administrative head)\\n1. State Mission Director\\n2. Secretary, Education\\n3. Director SCERT or State Mission Director\\n4. State Project Director or Director SCERT\",\r\n    \"options\": [\r\n      \"A-2, B-4, C-1, D-3\",\r\n      \"A-2, B-1, C-4, D-3\",\r\n      \"A-4, B-2, C-1, D-3\",\r\n      \"A-2, B-4, C-3, D-1\"\r\n    ],\r\n    \"correct\": 0,\r\n    \"explanation\": \"<b>State Mission Management\/Administrative Structure<\/b> \u2014 the SSC head is shown as 'Chairperson Secretary Education', the State Mission as 'SMD SPD\/ SCERT Director', the SPMU as 'SMD', and the ATF as 'Director, SCERT\/ SMD'. The SPMU is thus headed by the SMD, so the SMD appears twice in the structure: once as the head of the State Mission and once as head of the unit assisting it. This mirrors the national arrangement, where the NPMU is headed by the NMD and NAMD.\"\r\n  },\r\n  {\r\n    \"id\": 56,\r\n    \"chapter\": \"SEC 3: STATE LEVEL STAKEHOLDERS\",\r\n    \"question\": \"Consider the following as members of the State Steering Committee:\\nI. State Mission Director\\nII. Departments of Women and Child Development, Tribal Affairs and Health and Family Welfare\\nIII. Panchayati Raj and SCERT\\nIV. Nominated experts from fields such as neuroscience, child psychology and pedagogy\\nWhich of the above are correct?\",\r\n    \"options\": [\r\n      \"I, II and III only\",\r\n      \"I, II and IV only\",\r\n      \"II, III and IV only\",\r\n      \"I, II, III and IV\"\r\n    ],\r\n    \"correct\": 3,\r\n    \"explanation\": \"<b>Mission Implementation Structure<\/b>, Figure 3 \u2014 the SSC is shown as 'Head: Secretary Education' with 'Members: SMD & DoWCD, DoTA, DoHFW, PR, SCERT and nominated experts from various fields such as Neuroscience, child psychology and pedagogy'. All four categories. The composition deliberately parallels the National Steering Committee, substituting State departments for the corresponding Union Ministries.\"\r\n  },\r\n  {\r\n    \"id\": 57,\r\n    \"chapter\": \"SEC 4: DISTRICT LEVEL STAKEHOLDERS\",\r\n    \"question\": \"Who chairs the District Steering Committee under the NIPUN Bharat Mission?\",\r\n    \"options\": [\r\n      \"District Education Officer\",\r\n      \"District Commissioner, District Magistrate or Chief Executive Officer of the Zila Parishad\",\r\n      \"Principal of the District Institute of Education and Training\",\r\n      \"District Project Officer\"\r\n    ],\r\n    \"correct\": 1,\r\n    \"explanation\": \"<b>District, Block\/Cluster and Community Level Mission Management\/Administrative Structure<\/b> \u2014 the DSC is to 'Facilitate and review the implementation of NIPUN Bharat Mission in the District'. The District Mission Director is a separate functionary, being the District Education Officer.\"\r\n  },\r\n  {\r\n    \"id\": 58,\r\n    \"chapter\": \"SEC 4: DISTRICT LEVEL STAKEHOLDERS\",\r\n    \"question\": \"Who is the District Mission Director under the NIPUN Bharat Mission?\",\r\n    \"options\": [\r\n      \"District Magistrate\",\r\n      \"District Education Officer\",\r\n      \"Principal, DIET\",\r\n      \"District Project Officer\"\r\n    ],\r\n    \"correct\": 1,\r\n    \"explanation\": \"<b>District, Block\/Cluster and Community Level Mission Management\/Administrative Structure<\/b> \u2014 the DMD is the DEO, with the role to 'Plan, implement and monitor NIPUN Bharat Mission in the District'. The District Steering Committee, by contrast, is chaired by the DC, DM or CEO Zila Parishad.\"\r\n  },\r\n  {\r\n    \"id\": 59,\r\n    \"chapter\": \"SEC 4: DISTRICT LEVEL STAKEHOLDERS\",\r\n    \"question\": \"Which of the following is NOT among the listed functions of the District Steering Committee?\",\r\n    \"options\": [\r\n      \"Overseeing the progress of the mission in the district and providing guidance for its implementation\",\r\n      \"Finalizing and approving the five-year roadmap and action plan for the district\",\r\n      \"Deciding year-wise targets for the district under the mission\",\r\n      \"Ensuring Vidya Pravesh for all eligible children\"\r\n    ],\r\n    \"correct\": 3,\r\n    \"explanation\": \"<b>District Steering Committee (DSC)<\/b> \u2014 the DSC also reviews programmatic and financial progress from time to time. Ensuring Vidya Pravesh for all eligible children is listed under the <b>District Mission Director (DMD)<\/b>, and the Block Education Officer has a parallel duty to 'Ensure Vidya Pravesh for all'.\"\r\n  },\r\n  {\r\n    \"id\": 60,\r\n    \"chapter\": \"SEC 4: DISTRICT LEVEL STAKEHOLDERS\",\r\n    \"question\": \"The District Mission Director is to ensure the timely distribution of uniforms, textbooks and teaching-learning materials by which point?\",\r\n    \"options\": [\r\n      \"Within the first week of the new academic session\",\r\n      \"At least a fortnight before the new academic session\",\r\n      \"At least a month before the new academic session\",\r\n      \"Before the end of the preceding academic session\"\r\n    ],\r\n    \"correct\": 1,\r\n    \"explanation\": \"<b>District Mission Director (DMD)<\/b> \u2014 the identical requirement appears under the <b>Block Education Officer (BEO)<\/b>, showing that the obligation runs down both tiers. The DMD is also to ensure 'timely disbursement of funds to the Blocks\/CRCs and schools'.\"\r\n  },\r\n  {\r\n    \"id\": 61,\r\n    \"chapter\": \"SEC 4: DISTRICT LEVEL STAKEHOLDERS\",\r\n    \"question\": \"Which of the following is a listed function of the District Mission Director?\",\r\n    \"options\": [\r\n      \"Holding periodic review meetings with BEO, BRC and CRCs and stakeholders to track progress\",\r\n      \"Conducting the State Achievement Survey\",\r\n      \"Creating the District Resource Group\",\r\n      \"Developing the Holistic Progress Report Card\"\r\n    ],\r\n    \"correct\": 0,\r\n    \"explanation\": \"<b>District Mission Director (DMD)<\/b> \u2014 the DMD is also to 'Ensure preparation of the annual mission implementation plan for each block and consolidate the same into District AWP&B', to monitor the Lakshyas and outcomes, and to 'Mentor, supervise, and inspect schools in their jurisdiction'.\"\r\n  },\r\n  {\r\n    \"id\": 62,\r\n    \"chapter\": \"SEC 4: DISTRICT LEVEL STAKEHOLDERS\",\r\n    \"question\": \"Under whose headship does the District Programme Management Unit function?\",\r\n    \"options\": [\r\n      \"District Magistrate\",\r\n      \"District Mission Director\",\r\n      \"Principal, DIET\",\r\n      \"Block Education Officer\"\r\n    ],\r\n    \"correct\": 1,\r\n    \"explanation\": \"<b>District Programme Management Unit (DPMU)<\/b> \u2014 its role is to 'Assist DMD in all activities related to planning, implementation and monitoring of NIPUN Bharat Mission in the District'. This mirrors the SPMU-SMD and NPMU-NMD relationships at the higher tiers.\"\r\n  },\r\n  {\r\n    \"id\": 63,\r\n    \"chapter\": \"SEC 4: DISTRICT LEVEL STAKEHOLDERS\",\r\n    \"question\": \"The District Programme Management Unit is to ensure regular training and capacity building of teachers, school heads, SMC members, mentors, BRCs and CRCs in coordination with which body?\",\r\n    \"options\": [\r\n      \"SCERT\",\r\n      \"DIET\",\r\n      \"The Academic Task Force\",\r\n      \"The Block Education Office\"\r\n    ],\r\n    \"correct\": 1,\r\n    \"explanation\": \"<b>District Programme Management Unit (DPMU)<\/b> \u2014 the DPMU is also to 'Ensure the availability of print and numeracy rich material, class library with appropriate children literature, digital resources to support teachers' and to provide technical support for formative and summative assessment in the district.\"\r\n  },\r\n  {\r\n    \"id\": 64,\r\n    \"chapter\": \"SEC 4: DISTRICT LEVEL STAKEHOLDERS\",\r\n    \"question\": \"Which of the following is NOT among the functions of the District Programme Management Unit?\",\r\n    \"options\": [\r\n      \"Maintaining district-wise dashboards and MIS for reviews and meetings\",\r\n      \"Monitoring of KPIs related to academic and administrative aspects\",\r\n      \"Documentation of best practices from the field\",\r\n      \"Conducting action research to understand academic challenges for quality implementation\"\r\n    ],\r\n    \"correct\": 3,\r\n    \"explanation\": \"<b>District Programme Management Unit (DPMU)<\/b> \u2014 action research is listed under the <b>District Institute of Education and Training (DIET)<\/b>. The DPMU is also to 'Develop 5 year roadmap and action plan for the district' and to 'Plan and implement awareness plan to mobilise community\/parents\/teachers'.\"\r\n  },\r\n  {\r\n    \"id\": 65,\r\n    \"chapter\": \"SEC 4: DISTRICT LEVEL STAKEHOLDERS\",\r\n    \"question\": \"Who heads the District Institute of Education and Training in its role under the NIPUN Bharat Mission, and with whom is it to handhold?\",\r\n    \"options\": [\r\n      \"Principal; with mentors, BRC, CRC and teachers\",\r\n      \"District Education Officer; with block level officials\",\r\n      \"Director; with schools and School Management Committees\",\r\n      \"District Mission Director; with the District Task Force\"\r\n    ],\r\n    \"correct\": 0,\r\n    \"explanation\": \"<b>District Institute of Education and Training (DIET)<\/b> \u2014 the DIET is to 'Provide technical and academic support' and 'Handhold with mentors\/BRC\/CRC\/teachers to provide support in academic implementation of the Mission', mirroring at district level what SCERT does at State level.\"\r\n  },\r\n  {\r\n    \"id\": 66,\r\n    \"chapter\": \"SEC 4: DISTRICT LEVEL STAKEHOLDERS\",\r\n    \"question\": \"Which body is required to create the District Resource Group and conduct its training for quality implementation of teacher professional development?\",\r\n    \"options\": [\r\n      \"District Programme Management Unit\",\r\n      \"District Institute of Education and Training\",\r\n      \"District Task Force\",\r\n      \"Block Resource Centre\"\r\n    ],\r\n    \"correct\": 1,\r\n    \"explanation\": \"<b>District Institute of Education and Training (DIET)<\/b> \u2014 the DIET is also to 'Facilitate the implementation of academic activities in coordination with SCERT and BRC\/CRC', to 'Visit schools and identify challenges in implementation of academic plan', and to regularly meet mentors, BRCs and CRCs.\"\r\n  },\r\n  {\r\n    \"id\": 67,\r\n    \"chapter\": \"SEC 4: DISTRICT LEVEL STAKEHOLDERS\",\r\n    \"question\": \"Who heads the District Task Force under the NIPUN Bharat Mission?\",\r\n    \"options\": [\r\n      \"District Magistrate or Chief Executive Officer, Zila Parishad\",\r\n      \"Principal DIET or District Mission Director\",\r\n      \"District Education Officer alone\",\r\n      \"Block Education Officer\"\r\n    ],\r\n    \"correct\": 1,\r\n    \"explanation\": \"<b>District Task Force (DTF)<\/b> \u2014 its role is to 'Support District on Academic matters in the Implementation of NIPUN Bharat Mission'. Its composition mirrors the Academic Task Force at State level, which is headed by the Director SCERT or the State Mission Director.\"\r\n  },\r\n  {\r\n    \"id\": 68,\r\n    \"chapter\": \"SEC 4: DISTRICT LEVEL STAKEHOLDERS\",\r\n    \"question\": \"Which of the following is a function of the District Task Force?\",\r\n    \"options\": [\r\n      \"Suggesting a mechanism for coordination among DIET, BRC, CRC and mentors to provide onsite support to teachers\",\r\n      \"Disbursing funds to blocks and clusters\",\r\n      \"Conducting in-service training of teachers on FLN pedagogy\",\r\n      \"Preparing the State annual work plan and budget\"\r\n    ],\r\n    \"correct\": 0,\r\n    \"explanation\": \"<b>District Task Force (DTF)<\/b> \u2014 the DTF is also to 'Develop a 5-year academic plan in the district', to suggest strategies for the continuous professional development of mentors and of teachers, and to 'Collect data on key academic aspects at appropriate intervals for analysis and suggestion'.\"\r\n  },\r\n  {\r\n    \"id\": 69,\r\n    \"chapter\": \"SEC 4: DISTRICT LEVEL STAKEHOLDERS\",\r\n    \"question\": \"Match List-I with List-II and select the correct answer using the codes given below:\\nList-I (District level unit)\\nA. District Steering Committee\\nB. District Mission Director\\nC. District Institute of Education and Training\\nD. District Task Force\\nList-II (Administrative head)\\n1. Principal\\n2. District Education Officer\\n3. DC, DM or CEO Zila Parishad\\n4. Principal DIET or District Mission Director\",\r\n    \"options\": [\r\n      \"A-3, B-2, C-1, D-4\",\r\n      \"A-2, B-3, C-1, D-4\",\r\n      \"A-3, B-1, C-2, D-4\",\r\n      \"A-3, B-2, C-4, D-1\"\r\n    ],\r\n    \"correct\": 0,\r\n    \"explanation\": \"<b>District, Block\/Cluster and Community Level Mission Management\/Administrative Structure<\/b> \u2014 the DSC head is 'DC\/DM\/CEO Zila Parishad', the District Mission is headed by the 'DMD DEO', the DIET by its 'Principal', and the DTF by 'Principal DIET\/ DMD'. Note that the DIET Principal appears twice, once as head of the DIET and once as a possible head of the District Task Force, exactly as the SCERT Director does at State level.\"\r\n  },\r\n  {\r\n    \"id\": 70,\r\n    \"chapter\": \"SEC 4: DISTRICT LEVEL STAKEHOLDERS\",\r\n    \"question\": \"Consider the following as members of the District Steering Committee:\\nI. District Education Officer\\nII. District Project Officer\\nIII. Chief District Medical Officer\\nIV. DIET and nominated experts\\nWhich of the above are correct?\",\r\n    \"options\": [\r\n      \"I, II and III only\",\r\n      \"I, II and IV only\",\r\n      \"II, III and IV only\",\r\n      \"I, II, III and IV\"\r\n    ],\r\n    \"correct\": 3,\r\n    \"explanation\": \"<b>Mission Implementation Structure<\/b>, Figure 3 \u2014 the DSC is shown as 'Head: DC\/ DM\/ CEO Zila Parishad' with 'Members: DEO, DPO, CDMO, DIET & Nominated Expert'. With the DEO, DPO, CDMO, DIET and nominated experts as members. The inclusion of the Chief District Medical Officer reflects the health dimension of foundational-stage provision.\"\r\n  },\r\n  {\r\n    \"id\": 71,\r\n    \"chapter\": \"SEC 4: DISTRICT LEVEL STAKEHOLDERS\",\r\n    \"question\": \"A newly posted District Education Officer asks what role he holds under the NIPUN Bharat Mission structure. Which of the following correctly states his position?\",\r\n    \"options\": [\r\n      \"Chairperson of the District Steering Committee\",\r\n      \"The District Mission Director, responsible for planning, implementing and monitoring the mission in the district\",\r\n      \"Head of the District Task Force\",\r\n      \"Head of the District Institute of Education and Training\"\r\n    ],\r\n    \"correct\": 1,\r\n    \"explanation\": \"<b>District, Block\/Cluster and Community Level Mission Management\/Administrative Structure<\/b> \u2014 the District Mission is shown as 'DMD DEO', with the role to 'Plan, implement and monitor NIPUN Bharat Mission in the District'. The DEO is therefore the DMD, and is also a member of the District Steering Committee, which is chaired by the DC, DM or CEO Zila Parishad. The DIET is headed by its Principal.\"\r\n  },\r\n  {\r\n    \"id\": 72,\r\n    \"chapter\": \"SEC 5: BLOCK\/CLUSTER, SCHOOL AND COMMUNITY LEVEL STAKEHOLDERS\",\r\n    \"question\": \"What is the stated role of the Block Education Officer under the NIPUN Bharat Mission?\",\r\n    \"options\": [\r\n      \"To implement and monitor the mission in the blocks, clusters and schools\",\r\n      \"To support teachers and community in the implementation of the mission\",\r\n      \"To provide technical and academic support to teachers\",\r\n      \"To support schools in the implementation of the mission\"\r\n    ],\r\n    \"correct\": 0,\r\n    \"explanation\": \"<b>Block\/Cluster, School and Community Level Mission Management\/Administrative Structure<\/b> \u2014 the BEO's stated role is to 'Implement and Monitor NIPUN Bharat Mission in the Blocks\/ Clusters and schools'. The second option describes the role of BRC, CRC and Mentors and also of School and SMC; the fourth describes the role of Parents and Community. Distinguishing these three formulations is the key attribution point at this tier.\"\r\n  },\r\n  {\r\n    \"id\": 73,\r\n    \"chapter\": \"SEC 5: BLOCK\/CLUSTER, SCHOOL AND COMMUNITY LEVEL STAKEHOLDERS\",\r\n    \"question\": \"Which of the following is a listed function of the Block Education Officer?\",\r\n    \"options\": [\r\n      \"Display of Lakshyas or learning outcomes in schools\",\r\n      \"Conducting in-service training of teachers on academic approaches of FLN\",\r\n      \"Creating the District Resource Group\",\r\n      \"Developing item banks for the foundational stage\"\r\n    ],\r\n    \"correct\": 0,\r\n    \"explanation\": \"<b>Block Education Office<\/b> \u2014 the BEO is also to ensure 'regular and adequate on-site support to teachers by mentors\/ BRC\/ CRC', timely disbursement of funds to BRCs, CRCs and schools, and 'Overall tracking, monitoring, and supervision of the mission in blocks\/ clusters and schools'.\"\r\n  },\r\n  {\r\n    \"id\": 74,\r\n    \"chapter\": \"SEC 5: BLOCK\/CLUSTER, SCHOOL AND COMMUNITY LEVEL STAKEHOLDERS\",\r\n    \"question\": \"Which of the following functions is common to both the District Mission Director and the Block Education Officer?\",\r\n    \"options\": [\r\n      \"Ensuring preparation of the annual mission implementation plan\",\r\n      \"Keeping track of different training programmes on FLN and ensuring capacity building of primary teachers and the mentor cadre\",\r\n      \"Facilitating research and evaluation\",\r\n      \"Monitoring the Lakshyas and outcomes\"\r\n    ],\r\n    \"correct\": 1,\r\n    \"explanation\": \"Both the <b>District Mission Director (DMD)<\/b> and the <b>Block Education Office<\/b> sections list this function in identical terms, as they do 'Mentor, supervise, and inspect schools in their jurisdiction for quality implementation of the mission' and the timely distribution of uniforms, textbooks and teaching-learning materials.\"\r\n  },\r\n  {\r\n    \"id\": 75,\r\n    \"chapter\": \"SEC 5: BLOCK\/CLUSTER, SCHOOL AND COMMUNITY LEVEL STAKEHOLDERS\",\r\n    \"question\": \"Who are shown as the administrative heads of the Block Resource Centre and Cluster Resource Centre under the NIPUN Bharat Mission?\",\r\n    \"options\": [\r\n      \"Block Education Officer\",\r\n      \"Block Resource Coordinator, Cluster Resource Coordinator and Mentors\",\r\n      \"Principal, DIET\",\r\n      \"Head Teachers of lead schools\"\r\n    ],\r\n    \"correct\": 1,\r\n    \"explanation\": \"<b>Block Resource Center (BRC)\/ Cluster Resource Center (CRC)\/Mentors<\/b> \u2014 their role is to 'Support teachers and community in the Implementation of NIPUN Bharat Mission'. Note that the abbreviations BRC and CRC do double duty in the document, denoting both the Centres and their Coordinators.\"\r\n  },\r\n  {\r\n    \"id\": 76,\r\n    \"chapter\": \"SEC 5: BLOCK\/CLUSTER, SCHOOL AND COMMUNITY LEVEL STAKEHOLDERS\",\r\n    \"question\": \"Which of the following is a function of the Block Resource Centre, Cluster Resource Centre and Mentors?\",\r\n    \"options\": [\r\n      \"Providing onsite academic support to Head Teachers and Teachers in adopting new pedagogical practices for foundational learning\",\r\n      \"Timely disbursement of funds to schools\",\r\n      \"Ensuring Vidya Pravesh for all eligible children in the block\",\r\n      \"Preparing the block annual work plan and budget\"\r\n    ],\r\n    \"correct\": 0,\r\n    \"explanation\": \"<b>Block Resource Center (BRC)\/ Cluster Resource Center (CRC)\/Mentors<\/b> \u2014 they are also to conduct in-service training of teachers 'on academic approaches of FLN mission - curriculum, pedagogy, resources, assessment', to monitor and supervise progress at block and cluster level, and to conduct awareness drives for parents and community.\"\r\n  },\r\n  {\r\n    \"id\": 77,\r\n    \"chapter\": \"SEC 5: BLOCK\/CLUSTER, SCHOOL AND COMMUNITY LEVEL STAKEHOLDERS\",\r\n    \"question\": \"Under the NIPUN Bharat Mission, who are shown as the administrative heads in respect of the School and School Management Committee?\",\r\n    \"options\": [\r\n      \"Head Teachers, Teachers and the School Management Committee\",\r\n      \"Cluster Resource Coordinator\",\r\n      \"Block Education Officer\",\r\n      \"Parents and Community\"\r\n    ],\r\n    \"correct\": 0,\r\n    \"explanation\": \"<b>Block\/Cluster, School and Community Level Mission Management\/Administrative Structure<\/b> \u2014 their role is to 'Support teachers and community in the implementation of NIPUN Bharat Mission'. The Parents and Community category is separately headed by the School Management Committee.\"\r\n  },\r\n  {\r\n    \"id\": 78,\r\n    \"chapter\": \"SEC 5: BLOCK\/CLUSTER, SCHOOL AND COMMUNITY LEVEL STAKEHOLDERS\",\r\n    \"question\": \"Which of the following is the first-listed responsibility of the School and School Management Committee under the NIPUN Bharat Mission?\",\r\n    \"options\": [\r\n      \"Implementing Vidya Pravesh\",\r\n      \"Creating an enabling environment in the classroom and school for the implementation of curriculum, pedagogy and assessment as suggested in the mission\",\r\n      \"Displaying the Lakshyas\",\r\n      \"Ensuring the safety and hygiene of the school and of children\"\r\n    ],\r\n    \"correct\": 1,\r\n    \"explanation\": \"<b>School and SMC<\/b> \u2014 the section then requires schools to 'Continuously build understanding on new pedagogical approaches for foundational learning', and lists Head Teacher support in academic innovation, pedagogy and assessment as a distinct responsibility.\"\r\n  },\r\n  {\r\n    \"id\": 79,\r\n    \"chapter\": \"SEC 5: BLOCK\/CLUSTER, SCHOOL AND COMMUNITY LEVEL STAKEHOLDERS\",\r\n    \"question\": \"The responsibility of supporting academic innovation, pedagogy and assessment within the school is specifically assigned to which functionary?\",\r\n    \"options\": [\r\n      \"The Cluster Resource Coordinator\",\r\n      \"The Head Teacher\",\r\n      \"The School Management Committee\",\r\n      \"The Block Education Officer\"\r\n    ],\r\n    \"correct\": 1,\r\n    \"explanation\": \"<b>School and SMC<\/b> \u2014 the entry reads 'Head Teacher Support in academic innovation, pedagogy, and assessment', naming the Head Teacher expressly within a list otherwise addressed to the school collectively. Onsite academic support from outside the school comes from BRC, CRC and Mentors.\"\r\n  },\r\n  {\r\n    \"id\": 80,\r\n    \"chapter\": \"SEC 5: BLOCK\/CLUSTER, SCHOOL AND COMMUNITY LEVEL STAKEHOLDERS\",\r\n    \"question\": \"Which of the following is NOT among the responsibilities of the School and School Management Committee under the NIPUN Bharat Mission?\",\r\n    \"options\": [\r\n      \"Implementing Vidya Pravesh and displaying the Lakshyas\",\r\n      \"Ensuring the safety and hygiene of the school and of children\",\r\n      \"Engaging parents and community in the learning and holistic development of the child\",\r\n      \"Disbursing funds to teachers for teaching-learning material\"\r\n    ],\r\n    \"correct\": 3,\r\n    \"explanation\": \"<b>School and SMC<\/b> \u2014 schools are also to 'Implement and continuously reflect on pedagogy, TLM, assessment for learning and improvement'. Disbursement of funds to schools is a function of the District Mission Director and the Block Education Officer.\"\r\n  },\r\n  {\r\n    \"id\": 81,\r\n    \"chapter\": \"SEC 5: BLOCK\/CLUSTER, SCHOOL AND COMMUNITY LEVEL STAKEHOLDERS\",\r\n    \"question\": \"Under the NIPUN Bharat Mission, which body heads the Parents and Community category of stakeholders?\",\r\n    \"options\": [\r\n      \"The Head Teacher\",\r\n      \"The School Management Committee\",\r\n      \"The Cluster Resource Coordinator\",\r\n      \"The Panchayati Raj institution\"\r\n    ],\r\n    \"correct\": 1,\r\n    \"explanation\": \"<b>Parents and Community<\/b> \u2014 the SMC heads this category, whose role is to 'Support Schools in the Implementation of NIPUN Bharat Mission'. The SMC therefore appears in two categories: with the School, and again as head of Parents and Community.\"\r\n  },\r\n  {\r\n    \"id\": 82,\r\n    \"chapter\": \"SEC 5: BLOCK\/CLUSTER, SCHOOL AND COMMUNITY LEVEL STAKEHOLDERS\",\r\n    \"question\": \"Parents and the community are to ensure that all children of which age group regularly attend the Anganwadi or school?\",\r\n    \"options\": [\r\n      \"3-6 years\",\r\n      \"3-8 years\",\r\n      \"5-8 years\",\r\n      \"6-8 years\"\r\n    ],\r\n    \"correct\": 1,\r\n    \"explanation\": \"<b>Parents and Community<\/b> \u2014 the responsibility is to 'Ensure all children in the foundational age (3-8 years) regularly go to Anganwadi\/ School'. The band corresponds to the foundational stage, and the inclusion of the Anganwadi reflects that the stage begins before formal schooling.\"\r\n  },\r\n  {\r\n    \"id\": 83,\r\n    \"chapter\": \"SEC 5: BLOCK\/CLUSTER, SCHOOL AND COMMUNITY LEVEL STAKEHOLDERS\",\r\n    \"question\": \"Which of the following is a listed responsibility of parents and the community under the NIPUN Bharat Mission?\",\r\n    \"options\": [\r\n      \"Understanding their role in the learning of the child and how they can support the child at home with various kinds of activities, including digital learning, in synchronisation with the school\",\r\n      \"Conducting periodic assessment of children's learning outcomes\",\r\n      \"Maintaining the school's management information system\",\r\n      \"Providing onsite academic support to teachers\"\r\n    ],\r\n    \"correct\": 0,\r\n    \"explanation\": \"<b>Parents and Community<\/b> \u2014 parents are also to 'Periodically interact with school and teachers to understand the progress of their child' and to 'Closely work with school to ensure conducive learning environment for children at home\/community'.\"\r\n  },\r\n  {\r\n    \"id\": 84,\r\n    \"chapter\": \"SEC 5: BLOCK\/CLUSTER, SCHOOL AND COMMUNITY LEVEL STAKEHOLDERS\",\r\n    \"question\": \"A Head Teacher wishes to strengthen parental engagement in line with the NIPUN Bharat Mission. Which of the following is the responsibility that the mission places on the school in this regard?\",\r\n    \"options\": [\r\n      \"To conduct awareness drives and orientation programmes for parents\",\r\n      \"To engage parents and community in the learning and holistic development of the child\",\r\n      \"To ensure that parents attend monthly School Management Committee meetings\",\r\n      \"To collect data from parents on children's home learning environment\"\r\n    ],\r\n    \"correct\": 1,\r\n    \"explanation\": \"<b>School and SMC<\/b> assigns engagement of parents and community to the school. Conducting awareness drives and orientation programmes 'for the involvement of parents and community' is separately assigned to BRC, CRC and Mentors, so the two duties sit at different tiers.\"\r\n  },\r\n  {\r\n    \"id\": 85,\r\n    \"chapter\": \"SEC 5: BLOCK\/CLUSTER, SCHOOL AND COMMUNITY LEVEL STAKEHOLDERS\",\r\n    \"question\": \"Match List-I with List-II and select the correct answer using the codes given below:\\nList-I (Stakeholder)\\nA. Block Education Officer\\nB. BRC, CRC and Mentors\\nC. School and SMC\\nD. Parents and Community\\nList-II (Stated role)\\n1. Support schools in the implementation of the mission\\n2. Implement and monitor the mission in the blocks, clusters and schools\\n3. Support teachers and community in the implementation of the mission\\n4. Support teachers and community in the implementation of the mission\",\r\n    \"options\": [\r\n      \"A-2, B-3, C-4, D-1\",\r\n      \"A-2, B-1, C-3, D-4\",\r\n      \"A-1, B-3, C-4, D-2\",\r\n      \"A-2, B-4, C-1, D-3\"\r\n    ],\r\n    \"correct\": 0,\r\n    \"explanation\": \"<b>Block\/Cluster, School and Community Level Mission Management\/Administrative Structure<\/b> \u2014 both BRC\/CRC\/Mentors and School and SMC are given the role 'Support teachers and community in the implementation of NIPUN Bharat Mission', while Parents and Community 'Support Schools in the Implementation of NIPUN Bharat Mission'. The BRC\/CRC\/Mentors and the School and SMC are given identically worded roles, while the BEO implements and monitors and Parents and Community support the school. The identical wording for two entries is a deliberate feature of the table.\"\r\n  },\r\n  {\r\n    \"id\": 86,\r\n    \"chapter\": \"SEC 5: BLOCK\/CLUSTER, SCHOOL AND COMMUNITY LEVEL STAKEHOLDERS\",\r\n    \"question\": \"A Cluster Resource Coordinator is asked to conduct in-service training of teachers. Which aspects of the FLN mission is such training to cover?\",\r\n    \"options\": [\r\n      \"Curriculum, pedagogy, resources and assessment\",\r\n      \"Administration, finance and record-keeping\",\r\n      \"Enrolment, retention and attendance tracking\",\r\n      \"Infrastructure, safety and hygiene\"\r\n    ],\r\n    \"correct\": 0,\r\n    \"explanation\": \"<b>Block Resource Center (BRC)\/ Cluster Resource Center (CRC)\/Mentors<\/b> \u2014 the training concerns 'academic approaches of FLN mission - curriculum, pedagogy, resources, assessment'. Their other duties are onsite academic support, monitoring at block and cluster level, and community awareness drives.\"\r\n  },\r\n  {\r\n    \"id\": 87,\r\n    \"chapter\": \"SEC 5: BLOCK\/CLUSTER, SCHOOL AND COMMUNITY LEVEL STAKEHOLDERS\",\r\n    \"question\": \"Consider the following statements regarding the School and Community tier of the NIPUN Bharat Mission:\\nI. The Block\/Cluster level and the School and Community level functionaries are clubbed together in the fourth category of stakeholders.\\nII. The School Management Committee appears both with the School and as head of the Parents and Community category.\\nIII. The display of Lakshyas is a responsibility of both the Block Education Officer and the school.\\nWhich of the above statements is\/are correct?\",\r\n    \"options\": [\r\n      \"I and II only\",\r\n      \"II and III only\",\r\n      \"I and III only\",\r\n      \"I, II and III\"\r\n    ],\r\n    \"correct\": 3,\r\n    \"explanation\": \"<b>The Context<\/b>, Figure 2, carries the note that 'The Block\/Cluster level and School and Community level functionaries are clubbed together in the fourth category'; the <b>Block\/Cluster, School and Community Level<\/b> structure shows the SMC in both places; and the display of Lakshyas appears in the lists of both the <b>Block Education Office<\/b> and <b>School and SMC<\/b>.\"\r\n  },\r\n  {\r\n    \"id\": 88,\r\n    \"chapter\": \"SEC 5: BLOCK\/CLUSTER, SCHOOL AND COMMUNITY LEVEL STAKEHOLDERS\",\r\n    \"question\": \"Under the NIPUN Bharat Mission, on-site academic support to teachers is to be ensured regularly and adequately by which functionaries?\",\r\n    \"options\": [\r\n      \"DIET faculty\",\r\n      \"Mentors, BRC and CRC\",\r\n      \"The School Management Committee\",\r\n      \"District Programme Management Unit staff\"\r\n    ],\r\n    \"correct\": 1,\r\n    \"explanation\": \"Both the <b>District Mission Director (DMD)<\/b> and the <b>Block Education Office<\/b> are to 'Ensure regular and adequate on-site support to teachers by mentors\/BRC\/ CRC', while the <b>BRC\/CRC\/Mentors<\/b> section places the duty of actually providing that support on those functionaries.\"\r\n  },\r\n  {\r\n    \"id\": 89,\r\n    \"chapter\": \"SEC 2: NATIONAL LEVEL STAKEHOLDERS\",\r\n    \"question\": \"Which of the following pairs of national-level bodies share the same administrative head under the NIPUN Bharat Mission?\",\r\n    \"options\": [\r\n      \"NCERT and the National Resource Group\",\r\n      \"NIEPA and CBSE\",\r\n      \"KVS and the Project Approval Board\",\r\n      \"NCERT and NIEPA\"\r\n    ],\r\n    \"correct\": 0,\r\n    \"explanation\": \"<b>National Mission Management\/Administrative Structure<\/b> \u2014 NCERT is headed by its Director, and the <b>National Resource Group (NRG)<\/b> is likewise headed by 'Director NCERT'. NIEPA is headed by its Vice Chancellor, CBSE by its Chairperson and KVS by its Commissioner.\"\r\n  },\r\n  {\r\n    \"id\": 90,\r\n    \"chapter\": \"SEC 3: STATE LEVEL STAKEHOLDERS\",\r\n    \"question\": \"Which of the following correctly describes the relationship between the academic support bodies at the national, State and district levels under the NIPUN Bharat Mission?\",\r\n    \"options\": [\r\n      \"NRG at the national level, ATF at the State level and DTF at the district level\",\r\n      \"NCERT at the national level, SCERT at the State level and DPMU at the district level\",\r\n      \"NPMU at the national level, SPMU at the State level and DIET at the district level\",\r\n      \"NIEPA at the national level, SIE at the State level and DRG at the district level\"\r\n    ],\r\n    \"correct\": 0,\r\n    \"explanation\": \"The three bodies share a parallel formulation, each described as providing support 'on Academic matters in the Implementation of NIPUN Bharat Mission': the <b>NRG<\/b> supports MoE and States on academic matters, the <b>ATF<\/b> supports the State and districts on academic matters, and the <b>DTF<\/b> supports the district on academic matters.\"\r\n  },\r\n  {\r\n    \"id\": 91,\r\n    \"chapter\": \"SEC 3: STATE LEVEL STAKEHOLDERS\",\r\n    \"question\": \"Which sequence correctly describes the flow of the Annual Work Plan and Budget under the NIPUN Bharat Mission?\",\r\n    \"options\": [\r\n      \"District plans are consolidated into the State AWP&B, which is presented to the National Mission or PAB for approval and release of funds\",\r\n      \"The National Mission prepares the AWP&B and transmits it to States for execution\",\r\n      \"Block plans are sent directly to the PAB for approval\",\r\n      \"SCERT prepares the AWP&B and forwards it to the State Steering Committee\"\r\n    ],\r\n    \"correct\": 0,\r\n    \"explanation\": \"<b>State Mission Director (SMD)<\/b> \u2014 the SMD is to 'Present AWP&B to the National Mission\/PAB for approval and release of funds'. The SMD ensures preparation of the annual plan for each district and consolidates it into the State AWP&B. Correspondingly, the <b>District Mission Director (DMD)<\/b> consolidates block plans into the District AWP&B, and the <b>Project Approval Board<\/b> discusses and approves the AWP&B of the States and UTs.\"\r\n  },\r\n  {\r\n    \"id\": 92,\r\n    \"chapter\": \"SEC 2: NATIONAL LEVEL STAKEHOLDERS\",\r\n    \"question\": \"Which of the following bodies is charged with implementing the Vidya Pravesh Programme at the national level?\",\r\n    \"options\": [\r\n      \"NCERT alone\",\r\n      \"The National Mission Director and the National Assistant Mission Director\",\r\n      \"The National Steering Committee\",\r\n      \"The Project Approval Board\"\r\n    ],\r\n    \"correct\": 1,\r\n    \"explanation\": \"'Implementation of Vidya Pravesh Programme' appears in the lists of both the <b>National Mission Director (NMD)<\/b> and the <b>National Assistant Mission Director (NAMD)<\/b>. NCERT's role is to develop the module, KVS is to implement it in its schools, and CBSE is to encourage it in CBSE schools.\"\r\n  },\r\n  {\r\n    \"id\": 93,\r\n    \"chapter\": \"SEC 4: DISTRICT LEVEL STAKEHOLDERS\",\r\n    \"question\": \"Which of the following bodies at different tiers share the responsibility of documenting best practices for cross-learning?\",\r\n    \"options\": [\r\n      \"NPMU at the national level, SPMU at the State level and DPMU at the district level\",\r\n      \"NCERT at the national level and SCERT at the State level\",\r\n      \"The NSC, SSC and DSC\",\r\n      \"CBSE and KVS\"\r\n    ],\r\n    \"correct\": 0,\r\n    \"explanation\": \"The <b>NPMU\/TSU<\/b> is to document best practices and promote cross-learning among States through national and regional workshops; the <b>SPMU<\/b> is to promote cross-learning among districts; and the <b>DPMU<\/b> is to undertake 'Documentation of best practices from the field'. The NRG also documents best practices for cross-learning.\"\r\n  },\r\n  {\r\n    \"id\": 94,\r\n    \"chapter\": \"SEC 2: NATIONAL LEVEL STAKEHOLDERS\",\r\n    \"question\": \"Which of the following is required to create mechanisms for grading the performance of States and UTs under the NIPUN Bharat Mission?\",\r\n    \"options\": [\r\n      \"The National Steering Committee\",\r\n      \"The National Mission Director\",\r\n      \"The National Project Management Unit\",\r\n      \"The National Resource Group\"\r\n    ],\r\n    \"correct\": 1,\r\n    \"explanation\": \"<b>National Mission Director (NMD)<\/b> \u2014 the NMD is also to 'Strengthen existing mission implementation monitoring mechanisms' and to 'Create robust IT-based solutions to generate resources, handhold with State and UTs for implementation and monitoring of the mission'. The NPMU separately creates a performance matrix for each component.\"\r\n  },\r\n  {\r\n    \"id\": 95,\r\n    \"chapter\": \"SEC 3: STATE LEVEL STAKEHOLDERS\",\r\n    \"question\": \"Under the NIPUN Bharat Mission, which body is responsible for conducting the State Achievement Survey and developing an appropriate action plan based on its findings?\",\r\n    \"options\": [\r\n      \"The State Project Management Unit\",\r\n      \"SCERT\",\r\n      \"The Academic Task Force\",\r\n      \"The State Steering Committee\"\r\n    ],\r\n    \"correct\": 1,\r\n    \"explanation\": \"<b>State Council of Educational Research and Training (SCERT)<\/b> \u2014 at the national level, NCERT prepares 'a template for the baseline survey for foundational stage', and the NPMU is to 'Guide and coordinate with the States\/ UTs in conducting baseline and\/ or achievement survey'.\"\r\n  },\r\n  {\r\n    \"id\": 96,\r\n    \"chapter\": \"SEC 5: BLOCK\/CLUSTER, SCHOOL AND COMMUNITY LEVEL STAKEHOLDERS\",\r\n    \"question\": \"A Head Teacher finds that the school has received textbooks only after the academic session has begun. Under the NIPUN Bharat Mission structure, which functionaries bear the responsibility for timely distribution?\",\r\n    \"options\": [\r\n      \"The School Management Committee and parents\",\r\n      \"The District Mission Director and the Block Education Officer\",\r\n      \"The Cluster Resource Coordinator and mentors\",\r\n      \"SCERT and DIET\"\r\n    ],\r\n    \"correct\": 1,\r\n    \"explanation\": \"Both the <b>District Mission Director (DMD)<\/b> and the <b>Block Education Office<\/b> are required to 'Ensure timely distribution of uniforms, textbooks, and teaching-learning materials, atleast a fortnight before new academic session'. The obligation is expressly duplicated across the two tiers.\"\r\n  }\r\n];\r\n\r\n\/* =====================================================================\r\n   4. SANITISE + INDEX\r\n   One malformed row used to blank the whole widget. Bad rows are now\r\n   dropped with a console note; everything else still works.\r\n   ===================================================================== *\/\r\nfunction sanitise(list){\r\n  if(!Array.isArray(list)) return [];\r\n  const ok=[], bad=[];\r\n  list.forEach((q,i)=>{\r\n    const good = q && q.id!==undefined && typeof q.question==='string'\r\n      && Array.isArray(q.options) && q.options.length>=2\r\n      && Number.isInteger(q.correct) && q.correct>=0 && q.correct<q.options.length\r\n      && typeof q.chapter==='string' && q.chapter.length;\r\n    good ? ok.push(q) : bad.push({row:i, id:q&&q.id});\r\n  });\r\n  if(bad.length) console.warn('[chapter bank] skipped '+bad.length+' malformed question(s):', bad);\r\n  return ok;\r\n}\r\nconst QS = sanitise(chapterQuestions);\r\nconst CHAPTERS = [...new Set(QS.map(q=>q.chapter))];\r\nconst uid = q => q.chapter+'##'+q.id;\r\nconst BY_UID = new Map(QS.map(q=>[uid(q), q]));\r\nconst BY_CH  = (()=>{ const m=new Map(); QS.forEach(q=>{ if(!m.has(q.chapter)) m.set(q.chapter,[]); m.get(q.chapter).push(q); }); return m; })();\r\nconst inCh = c => BY_CH.get(c) || [];\r\nconst L = ['A','B','C','D','E','F'];\r\n\r\n\/* ---- chapter label helpers ---- *\/\r\nconst chShort = c => { const m=c.match(\/^CH\\s*(\\d+)\\s*:\/i); return m ? 'Ch '+m[1] : (c.length>26 ? c.slice(0,24).trim()+'\u2026' : c); };\r\n\/* chapters list in their own order \u2014 Ch 1..n, then Appendix 1..n, then anything\r\n   else alphabetically \u2014 never by score, so the list never shuffles under you *\/\r\nconst ROMAN = {i:1,ii:2,iii:3,iv:4,v:5,vi:6,vii:7,viii:8,ix:9,x:10,xi:11,xii:12};\r\nfunction chOrder(c){\r\n  const t=c.trim();\r\n  let m=t.match(\/^(?:CH|CHAPTER)\\s*[-\u2013]?\\s*(\\d+)\/i);\r\n  if(m) return [0, +m[1], t];\r\n  m=t.match(\/^APPENDIX\\s*[-\u2013]?\\s*([0-9]+|[ivxIVX]+)\\b\/i);\r\n  if(m){ const v=m[1]; return [1, \/^\\d+$\/.test(v) ? +v : (ROMAN[v.toLowerCase()]||99), t]; }\r\n  m=t.match(\/^(\\d+)\/);\r\n  if(m) return [0, +m[1], t];\r\n  return [2, 0, t];\r\n}\r\nfunction byChapterOrder(a,b){\r\n  const x=chOrder(a.chapter||a), y=chOrder(b.chapter||b);\r\n  return x[0]-y[0] || x[1]-y[1] || x[2].localeCompare(y[2]);\r\n}\r\n\/* a bank that stores chapter names in block capitals is softened for display *\/\r\nfunction titleCase(str){\r\n  const t=String(str);\r\n  const letters=t.replace(\/[^A-Za-z]\/g,'');\r\n  if(!letters || letters !== letters.toUpperCase()) return t;   \/\/ already mixed case, leave it\r\n  const small=new Set(['of','the','and','for','in','to','a','an','on','by','or','with','from','as','at','under']);\r\n  return t.toLowerCase().replace(\/[A-Za-z][A-Za-z'\u2019]*\/g,(w,i)=>\r\n    (i>0 && small.has(w)) ? w : w.charAt(0).toUpperCase()+w.slice(1))\r\n    .replace(\/\\bCh\\b\/g,'Ch').replace(\/\\bC&ag\\b\/gi,'C&AG').replace(\/\\bDpc\\b\/g,'DPC');\r\n}\r\nconst chBrief = c => { const m=c.match(\/^CH\\s*(\\d+)\\s*:\\s*(.+)$\/i);\r\n  const cap=t=>t.length>36?t.slice(0,34).trim()+'\u2026':t;\r\n  return m ? 'Ch '+m[1]+': '+cap(titleCase(m[2])) : cap(titleCase(c)); };\r\n\r\n\/* =====================================================================\r\n   5. RANKING ENGINE\r\n   Importance where you have rated a chapter; share of the bank where you\r\n   have not. Either way the result is a share of 1, and every label on the\r\n   page is drawn from the T table below so nothing over-claims.\r\n   ===================================================================== *\/\r\n\/* ---------------------------------------------------------------------\r\n   Matching your importance keys to the chapter strings in the bank.\r\n   Exact spelling is not required. Anything starting with a chapter or an\r\n   appendix number is reduced to a token \u2014 'CH 2', 'Ch-2', 'Chapter 2:\r\n   General Outlines...' all become CH2 \u2014 so a short key in the map finds\r\n   a long chapter name in the bank. Keys with no number fall back to a\r\n   loose text match (case, punctuation and spacing ignored).\r\n   --------------------------------------------------------------------- *\/\r\nfunction impKey(str){\r\n  const t = String(str).toUpperCase().replace(\/[\\u2010-\\u2015]\/g,'-').trim();\r\n  let m = t.match(\/^(?:CH|CHAP|CHAPTER)\\s*[-.:]?\\s*(\\d+)\/);\r\n  if(m) return 'CH'+(+m[1]);\r\n  \/\/ longest spellings first, or 'APPX 5' reads its own X as a roman numeral\r\n  m = t.match(\/^(?:APPENDICES|APPENDIX|ANNEXURES?|ANNEXES?|APNDX|APPX|APDX|APP)\\s*[-.:]?\\s*(\\d+|[IVX]+)\\b\/);\r\n  if(m){ const v=m[1]; return 'APP'+(\/^\\d+$\/.test(v) ? +v : (ROMAN[v.toLowerCase()]||v)); }\r\n  m = t.match(\/^(\\d+)\\s*[-.:)]\/);\r\n  if(m) return 'CH'+(+m[1]);\r\n  return 'T:'+t.replace(\/[^A-Z0-9]+\/g,' ').trim();\r\n}\r\nconst IMP_INDEX = (function(){\r\n  const idx={}, used={};\r\n  Object.keys(chapterImportance).forEach(k=>{\r\n    const v = chapterImportance[k];\r\n    if(typeof v!=='number' || !isFinite(v) || v<0) return;\r\n    const key = impKey(k);\r\n    if(idx[key]!==undefined) console.warn('[importance] two keys collapse to the same chapter: '+k);\r\n    idx[key] = v; used[key] = k;\r\n  });\r\n  return {idx, used};\r\n})();\r\nfunction importanceOf(chapter){\r\n  const k = impKey(chapter);\r\n  if(IMP_INDEX.idx[k]!==undefined) return {value:IMP_INDEX.idx[k], key:k};\r\n  \/\/ last resort for un-numbered names: one contains the other\r\n  if(k.startsWith('T:')){\r\n    const target = k.slice(2);\r\n    const hit = Object.keys(IMP_INDEX.idx).filter(x=>x.startsWith('T:')).find(x=>{\r\n      const a=x.slice(2);\r\n      return a.length>3 && target.length>3 && (target.startsWith(a) || a.startsWith(target));\r\n    });\r\n    if(hit) return {value:IMP_INDEX.idx[hit], key:hit};\r\n  }\r\n  return null;\r\n}\r\n\r\nconst W = (function(){\r\n  const counts={}, total=QS.length;\r\n  QS.forEach(q=>counts[q.chapter]=(counts[q.chapter]||0)+1);\r\n  const raw={}, source={}, derived=[];\r\n  let knownSum=0, knownShare=0;\r\n\r\n  const matched = new Set();\r\n  CHAPTERS.forEach(c=>{\r\n    const hit = importanceOf(c);\r\n    if(hit){\r\n      raw[c]=hit.value; source[c]='rated'; matched.add(hit.key);\r\n      knownSum+=hit.value; knownShare += total?counts[c]\/total:0;\r\n    } else { source[c]='derived'; derived.push(c); }\r\n  });\r\n  const scale = (knownSum>0 && knownShare>0) ? knownSum\/knownShare : 1;\r\n  derived.forEach(c => raw[c] = (total?counts[c]\/total:0)*scale);\r\n  let sum=0; CHAPTERS.forEach(c=>sum+=raw[c]);\r\n  if(!(sum>0)){ CHAPTERS.forEach(c=>{ raw[c]= total?counts[c]\/total:0; source[c]='derived'; }); sum=CHAPTERS.reduce((a,c)=>a+raw[c],0)||1; }\r\n  const weights={}; CHAPTERS.forEach(c=>weights[c]=raw[c]\/sum);\r\n  \/\/ keys you rated that never found a chapter in the bank\r\n  const unmatched = Object.keys(IMP_INDEX.idx).filter(k=>!matched.has(k)).map(k=>IMP_INDEX.used[k]);\r\n  return {weights, raw, source, counts, total, derived, unstocked:unmatched,\r\n          rated: CHAPTERS.some(c=>source[c]==='rated')};\r\n})();\r\nconst weightOf = c => W.weights[c] || 0;\r\nconst pctLabel = x => { const v=(x||0)*100; if(!(v>0)) return '0%';\r\n  return (v<10 ? Math.round(v*10)\/10 : Math.round(v)) + '%'; };\r\n\r\n\/* every phrase that could over-claim lives here, in one place *\/\r\nconst WT = W.rated;                       \/\/ is any chapter rated by hand?\r\nconst T = {\r\n  chipUnit  : ' importance',\r\n  onScreen  : WT ? 'Importance on screen' : 'Share on screen',\r\n  colWeight : 'Importance',\r\n  covered   : WT ? 'Weighted coverage'    : 'Bank covered',\r\n  projected : 'Projected score',\r\n  leakHead  : 'Where you are losing the most',\r\n  leakUnit  : 'points \/100',\r\n  leakWord  : 'points',\r\n  readyDef  : WT ? 'Readiness = \u03a3 (importance \u00d7 mastery)' : 'Readiness = \u03a3 (share of the bank \u00d7 mastery)',\r\n  paperOut  : 'you would score around'\r\n};\r\n\/\/ \"rated 15% importance\" where you have rated it; nothing where you have not\r\nconst impPhrase = r => W.source[r.chapter]==='rated'\r\n  ? 'rated <b>'+pctLabel(r.weight)+'<\/b> importance' : '';\r\n\r\n\/* =====================================================================\r\n   6. PROGRESS (localStorage, one record per quizId)\r\n   ===================================================================== *\/\r\nconst SCHEMA = 1;\r\nconst KEY = 'pe_chapterdrill_' + CFG.quizId;\r\nfunction blank(){ return { schema:SCHEMA, stats:{}, weak:[], flags:[], log:[], queue:[], queueLabel:'', queueKind:'', lastUid:null }; }\r\nlet P = (function(){\r\n  const p = blank();\r\n  try{\r\n    const s = localStorage.getItem(KEY);\r\n    if(s){ const j=JSON.parse(s);\r\n      if(j && j.schema===SCHEMA) Object.assign(p, j);\r\n      else if(j) console.warn('[storage] older schema found; starting fresh.');\r\n    }\r\n  }catch(e){ console.warn('progress load failed', e); }\r\n  ['weak','flags','log','queue'].forEach(k=>{ if(!Array.isArray(p[k])) p[k]=[]; });\r\n  if(!p.stats) p.stats={};\r\n  return p;\r\n})();\r\nlet storageWarned=false;\r\nfunction save(){\r\n  try{\r\n    if(P.log.length>400) P.log = P.log.slice(-400);\r\n    localStorage.setItem(KEY, JSON.stringify(P));\r\n  }catch(e){\r\n    try{ P.log = P.log.slice(-80); localStorage.setItem(KEY, JSON.stringify(P)); }\r\n    catch(e2){ if(!storageWarned){ storageWarned=true; toast('Your browser is blocking saved progress \u2014 this sitting will not be remembered'); } }\r\n  }\r\n}\r\nfunction stat(u){ if(!P.stats[u]) P.stats[u]={correct:0,incorrect:0,last:null,lastOk:null}; return P.stats[u]; }\r\nconst flags = new Set(P.flags);\r\nconst weak  = new Set(P.weak);\r\n\r\n\/* =====================================================================\r\n   7. SESSION STATE\r\n   ===================================================================== *\/\r\nconst S = { tab:'quiz', filter:'all', chapter:null, i:0, pick:null, nudge:false,\r\n            query:'', unattempted:false, ans:{}, order:[] };\r\n\r\n\/* =====================================================================\r\n   8. FORMAT + TRAIT MODEL\r\n   SHAPE  = how the question is built (one per question)\r\n   TRAIT  = what it turns on (a question may carry several)\r\n   A shape gap is a reading habit; a trait gap is recall. Same number,\r\n   opposite remedy \u2014 so they are reported separately.\r\n   ===================================================================== *\/\r\nconst SHAPES = [\r\n  { key:'match',  label:'Match the following (List-I \/ List-II)',\r\n    test:q => \/list\\s*-?\\s*i\\b\/i.test(q.question) },\r\n  { key:'multi',  label:'Multi-statement \/ how many are correct',\r\n    test:q => q.question.split(\/<br\\s*\\\/?>|\\n\/).filter(x=>\/^\\s*\\d+[.)]\/.test(x)).length>=2 },\r\n  { key:'direct', label:'Explanation', test:()=>true }  \/\/ catch-all\r\n];\r\nconst TRAITS = [\r\n  { key:'cite',      label:'Para, rule, article or article-number recall',\r\n    test:q => \/\\b(para|paragraph|rule|article|section|appendix|schedule|clause)\\s*[-\u2013]?\\s*\\d\/i.test(q.question+' '+q.options.join(' ')) },\r\n  { key:'period',    label:'Time limits and periods',\r\n    test:q => \/\\b\\d+\\s*(day|week|month|year|hour)s?\\b|\\b(one|two|three|four|five|six|seven|ten|fourteen|fifteen|twenty|twenty-five|thirty|forty-five|sixty|ninety)[\\s-](day|week|month|year)s?\\b\/i.test(q.options.join(' ')) },\r\n  { key:'money',     label:'Numbers, monetary limits and percentages',\r\n    test:q => \/\u20b9|\\bRs\\.?\\s*\\d|\\blakhs?\\b|\\bcrores?\\b|per\\s*cent|%|\\bone-(third|fourth|half|tenth)\\b\/i.test(q.options.join(' ')) },\r\n  { key:'authority', label:'Competent authority \/ level \/ who does what',\r\n    test:q => \/\\bwho\\b|\\bby whom\\b|\\bauthority\\b|\\brank of\\b|\\blevel of\\b|\\bnot below\\b|addressed to|shall be (signed|issued|approved|maintained|prepared|submitted)\/i.test(q.question+' '+q.options.join(' ')) },\r\n  { key:'negative',  label:'Negatively phrased (\u201cNOT correct\u201d, \u201cexcept\u201d)',\r\n    test:q => \/\\bnot correct\\b|\\bis incorrect\\b|\\bare not correct\\b|\\bexcept\\b|\\bdoes not\\b|\\bcannot\\b|\\bnot required\\b|\\bneed not\\b|\\bis\\\/are not\\b\/i.test(q.question) }\r\n];\r\nconst _shape = {};\r\nfunction shapeOf(q){ const u=uid(q); return _shape[u] || (_shape[u] = SHAPES.find(s=>s.test(q)) || SHAPES[SHAPES.length-1]); }\r\n\r\n\/* =====================================================================\r\n   9. MODELS\r\n   ===================================================================== *\/\r\nfunction smoothed(c,i){ const k=CFG.priorStrength, p0=CFG.priorAccuracy; return (c + k*p0)\/(c + i + k); }\r\nfunction expectedRate(c,i,coverage){ return smoothed(c,i)*coverage + CFG.priorAccuracy*(1-coverage); }\r\nfunction recall(st){\r\n  if(!st || !st.last || st.correct<2) return null;\r\n  const R=CFG.retention, reps=Math.max(1, st.correct - st.incorrect);\r\n  const stability = R.baseDays * Math.pow(R.growth, reps-1);\r\n  return Math.exp(-((Date.now()-st.last)\/86400000)\/stability);\r\n}\r\nfunction retentionIndex(){\r\n  let s=0,n=0; QS.forEach(q=>{ const r=recall(P.stats[uid(q)]); if(r!==null){s+=r;n++;} });\r\n  return n ? Math.round(s\/n*100) : null;\r\n}\r\nfunction chapterRows(){\r\n  return CHAPTERS.map(c=>{\r\n    const qs=inCh(c), n=qs.length;\r\n    let att=0, ok=0, bad=0, mastSum=0;\r\n    qs.forEach(q=>{ const s=P.stats[uid(q)];\r\n      if(s && (s.correct+s.incorrect)>0){ att++; ok+=s.correct; bad+=s.incorrect; }\r\n      mastSum += s ? Math.min(s.correct\/CFG.masteryThreshold,1) : 0; });\r\n    const acc = (ok+bad) ? ok\/(ok+bad) : null;\r\n    const weight = weightOf(c), coverage = n?att\/n:0, mastery = n?mastSum\/n:0;\r\n    const expected = expectedRate(ok,bad,coverage);\r\n    const leak = weight*(1-expected);\r\n    const difficulty = acc===null ? 1 : (1.4 - 0.6*acc);\r\n    return { chapter:c, count:n, weight, source:W.source[c], att, ok, bad,\r\n             coverage, acc, mastery, expected, leak,\r\n             priority: weight*(1-mastery)*difficulty };\r\n  }).sort((a,b)=>b.weight-a.weight);\r\n}\r\nfunction readiness(){\r\n  const rows=chapterRows();\r\n  return {\r\n    score     : Math.round(rows.reduce((a,r)=>a+r.weight*r.mastery,0)*100),\r\n    projected : Math.round(rows.reduce((a,r)=>a+r.weight*r.expected,0)*100),\r\n    covered   : Math.round(rows.reduce((a,r)=>a+r.weight*r.coverage,0)*100),\r\n    touched   : Object.values(P.stats).some(s=>(s.correct+s.incorrect)>0),\r\n    rows\r\n  };\r\n}\r\nfunction masteredCount(){ return QS.filter(q=>{ const s=P.stats[uid(q)]; return s && s.correct>=CFG.masteryThreshold; }).length; }\r\nfunction formatRows(){\r\n  const acc={};\r\n  const ensure=(k,l,kind)=> acc[k] || (acc[k]={key:k,label:l,kind:kind,ok:0,bad:0,total:0,seen:0});\r\n  SHAPES.forEach(s=>ensure(s.key,s.label,'shape'));\r\n  TRAITS.forEach(t=>ensure(t.key,t.label,'trait'));\r\n  QS.forEach(q=>{\r\n    const s=P.stats[uid(q)], buckets=[acc[shapeOf(q).key]];\r\n    TRAITS.forEach(t=>{ if(t.test(q)) buckets.push(acc[t.key]); });\r\n    buckets.forEach(r=>{ r.total++; if(s && (s.correct+s.incorrect)>0){ r.seen++; r.ok+=s.correct; r.bad+=s.incorrect; } });\r\n  });\r\n  return Object.values(acc).map(r=>{ const n=r.ok+r.bad; r.attempts=n; r.acc = n? r.ok\/n : null; return r; })\r\n    .filter(r=>r.total>0);\r\n}\r\nfunction dueForRevision(){\r\n  const risk=CFG.retention.riskBelow;\r\n  return QS.map(q=>{\r\n    const st=P.stats[uid(q)], r=recall(st);\r\n    if(r===null || r>=risk) return null;\r\n    return { q, recall:r, days:Math.floor((Date.now()-st.last)\/86400000), urgency: weightOf(q.chapter)*(1-r) };\r\n  }).filter(Boolean).sort((a,b)=>b.urgency-a.urgency);\r\n}\r\n\r\n\/* =====================================================================\r\n   10. SESSION PLANNER\r\n   Focused set \u2014 chapter time in proportion to the marks leaking out.\r\n   Mock paper  \u2014 ignores your history, mirrors the shape of the bank.\r\n   ===================================================================== *\/\r\nfunction gain(q){\r\n  const u=uid(q), st=P.stats[u], c=st?st.correct:0, i=st?st.incorrect:0;\r\n  const deficit = 1 - Math.min(c\/CFG.masteryThreshold, 1);\r\n  let urgency = 1 + 0.15*deficit;\r\n  if(weak.has(u)) urgency += 0.60;\r\n  const r = recall(st);\r\n  if(r!==null && r<CFG.retention.riskBelow) urgency += (1-r);\r\n  if(c+i===0) urgency += 0.15;\r\n  return weightOf(q.chapter)*(deficit+0.12)*urgency;\r\n}\r\nfunction allocate(rows,n,shareOf){\r\n  const total = rows.reduce((a,r)=>a+Math.max(0,shareOf(r)),0);\r\n  if(!(total>0)) return rows.map(r=>({r,slots:0}));\r\n  const out = rows.map(r=>{ const exact=n*Math.max(0,shareOf(r))\/total;\r\n    return {r, exact, slots:Math.min(Math.floor(exact), r.count)}; });\r\n  let left = n - out.reduce((a,x)=>a+x.slots,0);\r\n  out.slice().sort((a,b)=>(b.exact-b.slots)-(a.exact-a.slots))\r\n     .forEach(x=>{ if(left>0 && x.slots<x.r.count){ x.slots++; left--; } });\r\n  if(left>0) out.slice().sort((a,b)=>shareOf(b.r)-shareOf(a.r))\r\n     .forEach(x=>{ while(left>0 && x.slots<x.r.count){ x.slots++; left--; } });\r\n  return out;\r\n}\r\n\/* Fisher\u2013Yates, so the order of a sitting is never the order of the bank *\/\r\nfunction shuffle(a){\r\n  for(let i=a.length-1;i>0;i--){ const j=Math.floor(Math.random()*(i+1)); [a[i],a[j]]=[a[j],a[i]]; }\r\n  return a;\r\n}\r\n\/* Weighted sampling without replacement: a high score makes a question\r\n   likely, never certain. Two sittings built back to back therefore share\r\n   only part of their content instead of being identical. *\/\r\nfunction sampleWeighted(pool, n, scoreFn){\r\n  const items = pool.map(q=>({q, w:Math.max(scoreFn(q), 1e-9)}));\r\n  const out=[];\r\n  n = Math.min(n, items.length);\r\n  for(let k=0;k<n;k++){\r\n    let total=0; items.forEach(x=>total+=x.w);\r\n    let r=Math.random()*total, hit=items.length-1;\r\n    for(let i=0;i<items.length;i++){ r-=items[i].w; if(r<=0){ hit=i; break; } }\r\n    out.push(items[hit].q);\r\n    items.splice(hit,1);\r\n  }\r\n  return out;\r\n}\r\nfunction buildSession(kind){\r\n  const rows = chapterRows().filter(r=>r.count>0);\r\n  if(!rows.length) return 0;\r\n  const n = Math.min(kind==='mock'?CFG.mockSize:CFG.sessionSize, QS.length);\r\n  const alloc = allocate(rows, n, kind==='mock' ? (r=>r.weight) : (r=>r.leak));\r\n\r\n  \/\/ whatever you were given last time is pushed down, not banned\r\n  const last = new Set(P.queue||[]);\r\n  const fresh = u => last.has(u) ? 0.3 : 1;\r\n\r\n  const picked=[];\r\n  alloc.forEach(({r,slots})=>{\r\n    if(!slots) return;\r\n    const pool = inCh(r.chapter).slice();\r\n    if(kind==='mock'){\r\n      \/\/ the mock ignores how well you know a question and simply spreads\r\n      \/\/ itself over the bank, favouring what you have seen least\r\n      picked.push(...sampleWeighted(pool, slots, q=>{\r\n        const st=P.stats[uid(q)], seen=st?(st.correct+st.incorrect):0;\r\n        const stale=(st&&st.last) ? Math.min((Date.now()-st.last)\/(86400000*30),1) : 1;\r\n        return (1\/(1+seen*1.6) + 0.35*stale) * fresh(uid(q));\r\n      }));\r\n    } else {\r\n      picked.push(...sampleWeighted(pool, slots, q=>gain(q)*fresh(uid(q))));\r\n    }\r\n  });\r\n  shuffle(picked);\r\n  P.queue = picked.map(uid);\r\n  P.queueLabel = kind==='mock' ? 'Mock paper' : 'Focused set';\r\n  P.queueKind = kind;\r\n  save();\r\n  return picked.length;\r\n}\r\nfunction startSession(kind){\r\n  const had = (P.queue||[]).length;\r\n  const n = buildSession(kind);\r\n  if(!n){ toast('Nothing to build a session from yet'); return; }\r\n  setTab('quiz'); setFilter('session');\r\n  S.ans = {};                                   \/\/ a new sitting starts clean\r\n  toast(P.queueLabel+' ready \u2014 '+n+' fresh questions'+(had?' (previous set replaced)':''), true);\r\n}\r\n\r\n\/* =====================================================================\r\n   11. POOL \/ FILTERS\r\n   ===================================================================== *\/\r\nfunction pool(){\r\n  let p = QS.slice();\r\n  if(S.filter==='chapter' && S.chapter) p = inCh(S.chapter).slice();\r\n  if(S.filter==='weak')    p = p.filter(q=>weak.has(uid(q)));\r\n  if(S.filter==='flagged') p = p.filter(q=>flags.has(uid(q)));\r\n  if(S.filter==='session') p = (P.queue||[]).map(u=>BY_UID.get(u)).filter(Boolean);\r\n  if(S.query){ const t=S.query.toLowerCase();\r\n    p = p.filter(q=>(q.question+' '+q.options.join(' ')+' '+q.explanation).toLowerCase().includes(t)); }\r\n  if(S.unattempted) p = p.filter(q=>S.ans[uid(q)]==null);\r\n  return p;\r\n}\r\nfunction refreshWeak(){\r\n  weak.clear();\r\n  QS.forEach(q=>{ const s=P.stats[uid(q)];\r\n    if(s && s.incorrect>=CFG.weakThreshold && s.correct<CFG.masteryThreshold) weak.add(uid(q)); });\r\n  P.weak=[...weak];\r\n}\r\nrefreshWeak();\r\n\r\n\/* =====================================================================\r\n   12. STEM RENDERING (statements + List-I \/ List-II)\r\n   ===================================================================== *\/\r\nconst cleanStem = t => String(t).replace(\/^\\s*(?:Q|Question)\\s*\\.?\\s*\\d+\\s*[.):\\-]\\s*\/i,'').trim();\r\nconst QN = '<span class=\"qno\">Q.<\/span>';   \/\/ the marker printed before every stem\r\nfunction buildStem(raw){\r\n  const lines = raw.split(\/<br\\s*\\\/?>|\\n\/).map(s=>s.trim()).filter(Boolean);\r\n  const plain = s => s.replace(\/<\\\/?b>\/g,'').trim();\r\n  const isMatch = lines.some(l=>\/^List\\s*[-\u2013\u2014]?\\s*I\\b\/i.test(plain(l)));\r\n  const numbered = lines.filter(l=>\/^\\d+[.)]\\s\/.test(plain(l)));\r\n  if(isMatch) return matchCard(lines, plain);\r\n  if(numbered.length>=2) return stmtCard(lines, plain);\r\n  return plainCard(lines);\r\n}\r\n\/* a single-statement question gets the same sheet as the other two, so\r\n   every question on the page reads the same way *\/\r\nfunction plainCard(lines){\r\n  return '<div class=\"stem\" id=\"qStem\"><div class=\"qsheet\">'\r\n    + lines.map((l,i)=>'<p class=\"'+(i===0?'lead':'close')+'\">'+(i===0?QN:'')+l+'<\/p>').join('')\r\n    + '<\/div><\/div>';\r\n}\r\nfunction stmtCard(lines, plain){\r\n  const isN = l => \/^\\d+[.)]\\s\/.test(plain(l));\r\n  const first = lines.findIndex(isN);\r\n  let last=-1; lines.forEach((l,i)=>{ if(isN(l)) last=i; });\r\n  const head = lines.slice(0,first), tail = lines.slice(last+1);\r\n  const items = lines.slice(first,last+1).filter(isN).map(l=>plain(l).replace(\/^\\d+[.)]\\s*\/,''));\r\n  return '<div class=\"stem\" id=\"qStem\"><div class=\"qsheet\">'\r\n    + head.map((l,i)=>'<p class=\"'+(i===0?'lead':'intro')+'\">'+(i===0?QN:'')+l+'<\/p>').join('')\r\n    + '<ol class=\"stmts\">'+items.map(t=>'<li><span>'+t+'<\/span><\/li>').join('')+'<\/ol>'\r\n    + tail.map(l=>'<p class=\"close\">'+l+'<\/p>').join('')\r\n    + '<\/div><\/div>';\r\n}\r\n\/* Match-the-following comes in every shape: one item per line, or the\r\n   whole list run together on a single line separated by semicolons or\r\n   commas, or nothing at all between items. All three are split here so\r\n   the two columns always come out as proper rows. *\/\r\nfunction splitItems(body, kind){\r\n  const lab = kind==='alpha' ? '[A-Fa-f]' : '\\\\d{1,2}';\r\n  const mk  = re => new RegExp(re.replace('LAB', lab), 'g');\r\n  let parts = body.split(mk('\\\\s*[;\\\\n]\\\\s*(?=LAB\\\\s*[.):]\\\\s)'));\r\n  if(parts.length < 2) parts = body.split(mk('\\\\s*,\\\\s*(?=LAB\\\\s*[.):]\\\\s)'));\r\n  if(parts.length < 2) parts = body.split(mk('(?<=\\\\S)\\\\s+(?=LAB\\\\s*[.)]\\\\s)'));\r\n  const re = new RegExp('^\\\\s*('+lab+')\\\\s*[.):]\\\\s*(.+?)\\\\s*[;,.]?\\\\s*$');\r\n  return parts.map(p=>{ const m=String(p).match(re);\r\n    return m ? {k:m[1].toUpperCase(), v:m[2]} : null; }).filter(Boolean);\r\n}\r\nfunction matchCard(lines, plain){\r\n  \/\/ keep line breaks, normalise only runs of spaces\r\n  const text = lines.map(plain).join('\\n').replace(\/[ \\t]+\/g,' ').trim();\r\n\r\n  \/* The opening line almost always names both lists \u2014 \"Match List-I with\r\n     List-II and select\u2026\" \u2014 so the first occurrence of each is the wrong\r\n     one. Take the last List-I that actually has items after it, and the\r\n     first List-II following that. *\/\r\n  const at = re => [...text.matchAll(re)].map(m=>m.index);\r\n  const posI  = at(\/List\\s*[-\u2013\u2014]?\\s*I\\b\/gi);\r\n  const posII = at(\/List\\s*[-\u2013\u2014]?\\s*II\\b\/gi);\r\n  const hasItems = (str,kind) =>\r\n    (kind==='alpha' ? \/[A-F]\\s*[.):]\\s\/ : \/\\d{1,2}\\s*[.):]\\s\/).test(str);\r\n  let iI=-1, iII=-1;\r\n  for(let k=posI.length-1;k>=0 && iI<0;k--){\r\n    const ii = posII.find(x=>x>posI[k]);\r\n    if(ii===undefined) continue;\r\n    if(hasItems(text.slice(posI[k],ii),'alpha') && hasItems(text.slice(ii),'num')){ iI=posI[k]; iII=ii; }\r\n  }\r\n  if(iI<0 || iII<0) return plainCard(lines);\r\n\r\n  const head  = text.slice(0, iI).trim();\r\n  let segI    = text.slice(iI, iII).trim();\r\n  let segII   = text.slice(iII).trim();\r\n\r\n  \/\/ anything after the lists \u2014 \"Code :\", \"Select the correct answer\u2026\"\r\n  let tail = '';\r\n  const t = segII.match(\/(?:\\n|\\s)(Code\\s*[:.]?\\s*$|(?:Select|Choose)\\b[\\s\\S]*$)\/i);\r\n  if(t){ tail = t[1].trim(); segII = segII.slice(0, t.index).trim(); }\r\n\r\n  \/\/ column captions: \"List-I (Purpose of Leave) :\"\r\n  const capRe = \/^List\\s*[-\u2013\u2014]?\\s*I{1,2}\\b\\s*(\\([^)]*\\))?\\s*[:.]?\\s*\/i;\r\n  const hI  = segI.match(capRe),  hII = segII.match(capRe);\r\n  const capI  = hI  ? hI[0].replace(\/[\\s:.]+$\/,'')  : 'List-I';\r\n  const capII = hII ? hII[0].replace(\/[\\s:.]+$\/,'') : 'List-II';\r\n  const rowsI  = splitItems(hI  ? segI.slice(hI[0].length)  : segI,  'alpha');\r\n  const rowsII = splitItems(hII ? segII.slice(hII[0].length): segII, 'num');\r\n  if(!rowsI.length || !rowsII.length) return plainCard(lines);\r\n\r\n  const cell = x => '<li><b>'+x.k+'.<\/b><span>'+x.v+'<\/span><\/li>';\r\n  const headLines = head ? head.split('\\n').filter(Boolean) : [];\r\n  return '<div class=\"stem\" id=\"qStem\"><div class=\"qsheet\">'\r\n    + (headLines.length\r\n        ? headLines.map((l,i)=>'<p class=\"'+(i===0?'lead':'intro')+'\">'+(i===0?QN:'')+l+'<\/p>').join('')\r\n        : '<p class=\"lead\">'+QN+'Match List-I with List-II and select the correct answer using the code given below the Lists:<\/p>')\r\n    + '<div class=\"lists\">'\r\n      + '<div class=\"lcol\"><h5>'+capI+'<\/h5><ul>'+rowsI.map(cell).join('')+'<\/ul><\/div>'\r\n      + '<div class=\"lcol\"><h5>'+capII+'<\/h5><ul>'+rowsII.map(cell).join('')+'<\/ul><\/div>'\r\n    + '<\/div>'\r\n    + '<p class=\"close\">'+(tail || 'Select the correct answer using the code given below:')+'<\/p>'\r\n    + '<\/div><\/div>';\r\n}\r\n\r\n\/* =====================================================================\r\n   13. UI HELPERS\r\n   ===================================================================== *\/\r\nconst $ = id => document.getElementById(id);\r\nlet toastTimer=null;\r\nfunction toast(msg, ok){\r\n  const t=$('toast'); t.innerHTML=msg; t.className='toast show'+(ok?' ok':'');\r\n  clearTimeout(toastTimer); toastTimer=setTimeout(()=>t.className='toast',3000);\r\n}\r\nconst SRC_ON = !!(CFG.sourceUrl && CFG.sourceUrl.trim());\r\nconst stripHtml = s => String(s).replace(\/<[^>]+>\/g,'').replace(\/\\s+\/g,' ').trim();\r\nconst preview = (q,n) => { const t=stripHtml(q.question); return t.length>n ? t.slice(0,n)+'\u2026' : t; };\r\nfunction stars(u){\r\n  const s=P.stats[u]; if(!s || (s.correct+s.incorrect)===0) return null;\r\n  return { filled: Math.min(s.correct, CFG.masteryThreshold), c:s.correct, i:s.incorrect };\r\n}\r\n\r\n\/* =====================================================================\r\n   14. RENDER \u2014 PRACTICE\r\n   ===================================================================== *\/\r\nfunction renderCtx(){\r\n  const panel=$('chapPanel');\r\n  const on = S.filter==='chapter';\r\n  panel.classList.toggle('hide', !on);\r\n  if(!on) return;\r\n  const rows = chapterRows().filter(r=>r.count>0).sort(byChapterOrder);\r\n  if(!S.chapter || !rows.some(r=>r.chapter===S.chapter)) S.chapter = rows[0] ? rows[0].chapter : null;\r\n  $('chapList').innerHTML = rows.map((r,n)=>{\r\n    const sel = r.chapter===S.chapter;\r\n    const mastered = inCh(r.chapter).filter(q=>{ const s=P.stats[uid(q)]; return s && s.correct>=CFG.masteryThreshold; }).length;\r\n    const title = r.chapter+' \u00b7 '+r.count+' question'+(r.count===1?'':'s')+' \u00b7 '\r\n                + Math.round(r.coverage*100)+'% seen'+(mastered?' \u00b7 '+mastered+' mastered':'');\r\n    return '<button class=\"chapchip\" aria-pressed=\"'+sel+'\" data-ch=\"'+encodeURIComponent(r.chapter)+'\" title=\"'+title+'\">'\r\n      + '<span class=\"no\">'+(n+1)+'<\/span>'\r\n      + '<span class=\"cn\">'+titleCase(r.chapter)+'<\/span>'\r\n\r\n      + (mastered===r.count ? '<span class=\"done\">\u2713<\/span>' : '')\r\n      + '<span class=\"cc\">'+r.count+'<\/span><\/button>';\r\n  }).join('');\r\n  const r = rows.find(x=>x.chapter===S.chapter);\r\n  $('ctxMeta').textContent = r\r\n    ? Math.round(r.coverage*100)+'% seen \u00b7 '+(r.acc===null?'not attempted':Math.round(r.acc*100)+'% accurate')\r\n    : '';\r\n}\r\nfunction render(){\r\n  renderCtx();\r\n  const p = pool();\r\n  const ec = $('emptyCard');\r\n  if(!p.length){\r\n    $('qCard').classList.add('hide'); ec.classList.remove('hide');\r\n    $('emptyBody').innerHTML =\r\n      S.query    ? '<b>No match for \u201c'+S.query+'\u201d<\/b>Try a rule or paragraph number, or a phrase like \u201cpart file\u201d.' :\r\n      S.filter==='weak'    ? '<b>No weak areas yet<\/b>Anything you answer wrong lands here until you have it right '+CFG.masteryThreshold+' times.' :\r\n      S.filter==='flagged' ? '<b>Nothing flagged yet<\/b>Press <b style=\"display:inline\">Flag for review<\/b> under any question and it collects here.' :\r\n      S.filter==='session' ? '<b>No session built yet<\/b>Open My Performance and build a Focused set or a Mock paper.' :\r\n      S.unattempted        ? '<b>You have attempted everything here<\/b>Turn off \u201cUnattempted only\u201d to revise what you have done.' :\r\n                             '<b>No questions in this selection<\/b>Clear the search or pick another chapter.';\r\n    renderNav(p); rail(p); return;\r\n  }\r\n  ec.classList.add('hide'); $('qCard').classList.remove('hide');\r\n  if(S.i>=p.length) S.i=0; if(S.i<0) S.i=p.length-1;\r\n\r\n  const q=p[S.i], u=uid(q), given=S.ans[u];\r\n  $('qCount').textContent = 'Question '+(S.i+1)+' of '+p.length;\r\n  $('qChap').textContent  = chBrief(q.chapter);\r\n  const tags=[];\r\n  if(weak.has(u))  tags.push('<span class=\"qtag weak\">\u26a0\ufe0f Weak<\/span>');\r\n  if(flags.has(u)) tags.push('<span class=\"qtag flag\">\ud83d\udd16 Flagged<\/span>');\r\n  const sMast=P.stats[u];\r\n  if(sMast && sMast.correct>=CFG.masteryThreshold) tags.push('<span class=\"qtag done\">\u2713 Mastered<\/span>');\r\n  $('qTags').innerHTML = tags.join('');\r\n  const st = stars(u), badge=$('qMastery');\r\n  if(!st){ badge.textContent='Not seen yet'; badge.className='badge-m'; }\r\n  else {\r\n    const done = st.c>=CFG.masteryThreshold;\r\n    badge.textContent = '\u2605'.repeat(st.filled)+'\u2606'.repeat(Math.max(0,CFG.masteryThreshold-st.filled))+'  '+st.c+'\u2713 '+st.i+'\u2717';\r\n    badge.className = 'badge-m'+(weak.has(u)&&!done?' weak':'');\r\n  }\r\n  $('qStem').outerHTML = buildStem(cleanStem(q.question));\r\n\r\n  const box=$('qOpts'); box.innerHTML='';\r\n  q.options.forEach((o,k)=>{\r\n    const b=document.createElement('button');\r\n    b.className='opt';\r\n    b.innerHTML='<span class=\"key\">('+L[k].toLowerCase()+')<\/span><span class=\"txt\">'+o+'<\/span>';\r\n    if(given!=null){\r\n      b.disabled=true;\r\n      if(k===q.correct){ b.classList.add('right'); b.insertAdjacentHTML('beforeend','<span class=\"mark r\">Correct<\/span>'); }\r\n      else if(k===given){ b.classList.add('wrong'); b.insertAdjacentHTML('beforeend','<span class=\"mark w\">Your answer<\/span>'); }\r\n    } else if(S.pick===k) b.classList.add('sel');\r\n    b.onclick=()=>{ if(given!=null) return; S.pick=k; S.nudge=false; render(); };\r\n    box.appendChild(b);\r\n  });\r\n\r\n  const bc=$('btnCheck');\r\n  bc.disabled = given!=null;\r\n  bc.textContent = given!=null ? 'Answered \u2713' : 'Check answer';\r\n  $('pickHint').classList.toggle('hide', !(given==null && S.pick==null && S.nudge));\r\n  const on = flags.has(u);\r\n  $('btnFlag').setAttribute('aria-pressed', on);\r\n  $('flagIco').textContent = on ? '\ud83d\udd16' : '\ud83c\udff3\ufe0f';\r\n  $('flagTxt').textContent = on ? 'Flagged' : 'Flag for review';\r\n\r\n  const res=$('result');\r\n  res.classList.toggle('hide', given==null);\r\n  if(given!=null){\r\n    const ok = given===q.correct, v=$('verdict');\r\n    v.className='verdict '+(ok?'r':'w');\r\n    v.innerHTML = ok ? '\u2713 Correct \u2014 '+L[q.correct]+' is right'\r\n                     : '\u2715 Not quite \u2014 the answer is '+L[q.correct];\r\n    $('explBody').innerHTML = q.explanation;\r\n  }\r\n  renderNav(p); rail(p);\r\n}\r\nlet navOpen=true;\r\nfunction renderNav(p){\r\n  const card=$('navCard');\r\n  if(!p.length){ card.classList.add('hide'); return; }\r\n  card.classList.remove('hide');\r\n  const done=p.filter(q=>S.ans[uid(q)]!=null).length;\r\n  $('navTitle').textContent = 'Navigator \u2014 '+done+' of '+p.length+' attempted';\r\n  const g=$('navGrid');\r\n  g.classList.toggle('hide', !navOpen);\r\n  $('navToggle').textContent = navOpen ? 'Hide' : 'Show';\r\n  if(!navOpen) return;\r\n  g.innerHTML='';\r\n  p.forEach((q,k)=>{\r\n    const u=uid(q), a=S.ans[u], s=P.stats[u];\r\n    const b=document.createElement('button');\r\n    b.className='nq'+(k===S.i?' cur':(a!=null?(a===q.correct?' r':' w'):''))\r\n              + (s && s.correct>=CFG.masteryThreshold ? ' mastered':'');\r\n    b.innerHTML=(k+1)+(flags.has(u)?'<span class=\"fl\">\ud83d\udd16<\/span>':'');\r\n    b.title = 'Q'+(k+1)+' \u00b7 '+chBrief(q.chapter)+(a!=null?(a===q.correct?' \u00b7 correct':' \u00b7 wrong'):'');\r\n    b.setAttribute('aria-label','Go to question '+(k+1));\r\n    b.onclick=()=>{ S.i=k; S.pick=null; render(); };\r\n    g.appendChild(b);\r\n  });\r\n}\r\nfunction rail(p){\r\n  const seen=Object.keys(S.ans).length;\r\n  const right=Object.entries(S.ans).filter(([u,a])=>BY_UID.get(u) && BY_UID.get(u).correct===a).length;\r\n  $('sPct').textContent = seen ? Math.round(right\/seen*100)+'%' : '\u2014';\r\n  $('sFrac').textContent = right+' of '+seen+' correct';\r\n  $('sBar').style.width = (seen?right\/seen*100:0)+'%';\r\n  $('sSeen').textContent = seen+' attempted';\r\n  $('sLeft').textContent = Math.max(0,p.length-S.i-1)+' left here';\r\n  const st=$('streak'); st.innerHTML='';\r\n  Object.entries(S.ans).slice(-10).forEach(([u,a])=>{\r\n    const q=BY_UID.get(u); if(!q) return;\r\n    const el=document.createElement('i'); el.className = q.correct===a?'r':'w'; st.appendChild(el);\r\n  });\r\n  const chs=[...new Set(p.map(q=>q.chapter))];\r\n  const w=chs.reduce((s,c)=>s+weightOf(c),0)*100;\r\n  $('wPct').textContent = w.toFixed(1)+'%';\r\n  $('wNote').textContent = p.length+' questions on screen, from '+chs.length+' '+(chs.length===1?'chapter':'chapters')+'. '\r\n    + (w>=35 ? 'That is a big slice in one sitting \u2014 worth clearing properly.' : 'Useful for topping up once the bigger chapters are secure.');\r\n  hdr();\r\n}\r\nfunction hdr(){\r\n  $('hQ').textContent = QS.length;\r\n  $('hCh').textContent = CHAPTERS.length;\r\n  $('hMastered').textContent = (QS.length ? Math.round(masteredCount()\/QS.length*100) : 0)+'%';\r\n  const r=readiness();\r\n  $('hReady').textContent = r.touched ? r.score+'%' : '\u2014';\r\n  $('fAll').textContent  = QS.length;\r\n  $('fWeak').textContent = weak.size;\r\n  $('fFlag').textContent = flags.size;\r\n  $('fSess').textContent = (P.queue||[]).length;\r\n  $('pillSession').classList.toggle('hide', !(P.queue||[]).length);\r\n  $('sessLabel').textContent = P.queueLabel || 'My session';\r\n  $('perfPill').classList.toggle('hide', weak.size<5);\r\n}\r\n\r\n\/* =====================================================================\r\n   15. RENDER \u2014 PERFORMANCE\r\n   ===================================================================== *\/\r\nfunction renderPerf(){\r\n  const body=$('perfBody');\r\n  const seen=Object.values(P.stats).filter(s=>(s.correct+s.incorrect)>0).length;\r\n  $('perfCount').textContent = seen+' questions attempted';\r\n\r\n  if(!QS.length){ body.innerHTML='<div class=\"empty\"><b>No questions loaded<\/b>Paste your bank into <code>chapterQuestions<\/code> and reload.<\/div>'; return; }\r\n  const R = readiness();\r\n  if(!R.touched){\r\n    body.innerHTML = '<div class=\"empty\"><b>Your coach is waiting for data<\/b>Answer a few questions in Practice. '\r\n      + 'The coach then scores your readiness against the weightage of each chapter, works out where marks are leaking, and builds the next sitting for you.<\/div>'\r\n      + plannerHTML(true);\r\n    bindPerf(); return;\r\n  }\r\n  const rows=R.rows, byPriority=[...rows].sort((a,b)=>b.priority-a.priority);\r\n  const allC=Object.values(P.stats).reduce((a,s)=>a+s.correct,0);\r\n  const allI=Object.values(P.stats).reduce((a,s)=>a+s.incorrect,0);\r\n  const accAll = (allC+allI) ? Math.round(allC\/(allC+allI)*100) : 0;\r\n  const recent = P.log.slice(-20);\r\n  const accRec = recent.length ? Math.round(recent.filter(x=>x.ok).length\/recent.length*100) : 0;\r\n  const trend = recent.length>=5 ? (accRec>accAll?' \u2197':(accRec<accAll?' \u2198':'')) : '';\r\n  const ret = retentionIndex();\r\n  const due = dueForRevision();\r\n  const band=(v,hi,mid)=> v>=hi?'var(--ok)': v>=mid?'#8A6206':'var(--bad)';\r\n\r\n  const verdict = R.score>=80 ? '<b>In good shape.<\/b> Hold it there with the revision queue and weak-area drills.'\r\n    : R.score>=60 ? '<b>Strong base.<\/b> Close the gaps in the biggest chapters below to cross 80.'\r\n    : R.score>=35 ? '<b>Building up.<\/b> Work the plan top-down \u2014 it is ordered by what will move this number fastest.'\r\n    : '<b>Early stage.<\/b> Start at the top of the plan; the biggest chapters move this number fastest.';\r\n\r\n  body.innerHTML =\r\n  '<div class=\"hero2\">'\r\n  + '<div class=\"ring-card\"><div class=\"ring\" role=\"img\" aria-label=\"Readiness '+R.score+' out of 100\">'\r\n    + '<svg width=\"150\" height=\"150\" aria-hidden=\"true\"><circle class=\"bg\" cx=\"75\" cy=\"75\" r=\"64\"><\/circle>'\r\n    + '<circle class=\"fg\" cx=\"75\" cy=\"75\" r=\"64\" stroke-dasharray=\"402\" stroke-dashoffset=\"'+(402-402*R.score\/100)+'\"><\/circle><\/svg>'\r\n    + '<div class=\"ring-txt\"><b>'+R.score+'<\/b><span>Readiness \/ 100<\/span><\/div><\/div>'\r\n    + '<div class=\"verdict2\">'+verdict+'<br><span style=\"font-size:11.6px;opacity:.85\">'+T.readyDef+' across '+CHAPTERS.length\r\n    + ' chapters. On today\\u2019s form '+T.paperOut+' <b>'+R.projected+'%<\/b>.<\/span><\/div><\/div>'\r\n  + '<div class=\"coach\"><h4>\ud83e\udded What to do next<\/h4><div id=\"recoList\"><\/div><\/div>'\r\n  + '<\/div>'\r\n\r\n  + plannerHTML(false)\r\n\r\n  + '<div class=\"kpis\">'\r\n    + kpi(R.projected+'%',T.projected, band(R.projected,65,45))\r\n    + kpi(R.covered+'%',T.covered, band(R.covered,70,40))\r\n    + kpi(ret===null?'\u2014':ret+'%','Retention now', ret===null?'var(--slate)':band(ret,75,55))\r\n    + kpi(accAll+'%','Lifetime accuracy', band(accAll,70,45))\r\n    + kpi(accRec+'%'+trend,'Last 20 attempts', band(accRec,70,45))\r\n    + kpi(masteredCount(),'Mastered ('+CFG.masteryThreshold+'\u2713)','var(--ok)')\r\n    + kpi(weak.size,'Weak questions','var(--bad)')\r\n    + kpi(flags.size,'Flagged','#8A6206')\r\n  + '<\/div>'\r\n\r\n  + '<section class=\"pblock\"><div class=\"pbh\"><div class=\"txt\">'\r\n    + '<h4><span class=\"dot\"><\/span>Chapter performance \u2014 priority first<\/h4>'\r\n    + '<p>Ordered by what will move your readiness fastest, not by chapter number.<\/p><\/div>'\r\n    + '<span class=\"pbtag\">'+rows.length+' chapters<\/span><\/div>'\r\n    + '<div class=\"tblwrap\" style=\"border:0;border-radius:0\"><table class=\"perf-t\"><thead><tr>'\r\n    + '<th>Chapter<\/th>'+(WT?'<th>'+T.colWeight+'<\/th>':'')+'<th>Coverage<\/th><th>Accuracy<\/th><th>Expected<\/th><th>Status<\/th><th><\/th>'\r\n    + '<\/tr><\/thead><tbody>'\r\n    + byPriority.map(r=>{\r\n        const a = r.acc===null?null:Math.round(r.acc*100);\r\n        const tag = r.count===0 ? '<span class=\"tag na\">No questions<\/span>'\r\n          : r.acc===null ? '<span class=\"tag na\">Not started<\/span>'\r\n          : a<45 ? '<span class=\"tag hot\">Critical<\/span>'\r\n          : a<65 ? '<span class=\"tag warm\">Needs work<\/span>'\r\n          : a<85 ? '<span class=\"tag ok\">On track<\/span>'\r\n                 : '<span class=\"tag good\">Strong<\/span>';\r\n        const bar = a===null ? '\u2014'\r\n          : '<div class=\"tbar\"><i style=\"width:'+a+'%;background:'+(a<45?'var(--bad)':a<65?'var(--gold)':'var(--ok)')+'\"><\/i><\/div><span style=\"font-size:11.5px;font-weight:700\">'+a+'%<\/span>';\r\n        const wcell = WT\r\n          ? '<td><b style=\"color:#8A6206;font-size:15px\">'+pctLabel(r.weight)+'<\/b>'\r\n            + '<span class=\"sub\">'+(r.source==='rated'?'you rated this':'not rated yet')+'<\/span><\/td>'\r\n          : '';\r\n        return '<tr><td title=\"'+r.chapter+'\">'+chBrief(r.chapter)\r\n          + '<span class=\"sub\">'+r.count+' question'+(r.count===1?'':'s')+'<\/span><\/td>'\r\n          + wcell\r\n          + '<td>'+r.att+'\/'+r.count+'<span class=\"sub\">'+Math.round(r.coverage*100)+'% seen<\/span><\/td>'\r\n          + '<td>'+bar+'<\/td>'\r\n          + '<td><b>'+Math.round(r.expected*100)+'%<\/b><span class=\"sub\">\u2248 '+(r.leak*100).toFixed(1)+' '+T.leakWord+' lost<\/span><\/td>'\r\n          + '<td>'+tag+'<\/td>'\r\n          + '<td><button class=\"mini-go\" data-goch=\"'+encodeURIComponent(r.chapter)+'\">Drill<\/button><\/td><\/tr>';\r\n      }).join('')\r\n    + '<\/tbody><\/table><\/div><\/section>'\r\n\r\n  + '<section class=\"pblock\"><div class=\"pbh\"><div class=\"txt\">'\r\n    + '<h4><span class=\"dot\"><\/span>'+T.leakHead+'<\/h4>'\r\n    + '<p id=\"leakNote\"><\/p><\/div>'\r\n    + '<span class=\"pbtag\">'+rows.filter(r=>r.count>0).length+' chapters<\/span><\/div>'\r\n    + '<div class=\"bars\" id=\"leakBars\"><\/div><\/section>'\r\n\r\n  + '<section class=\"pblock\"><div class=\"pbh\"><div class=\"txt\">'\r\n    + '<h4><span class=\"dot\"><\/span>How you handle each kind of question<\/h4>'\r\n    + '<p id=\"fmtNote\"><\/p><\/div>'\r\n    + '<span class=\"pbtag\">Format analysis<\/span><\/div>'\r\n    + '<div class=\"subhead\"><h5>How the question is built<\/h5><span>one shape per question<\/span><\/div>'\r\n    + '<div class=\"bars\" id=\"shapeBars\"><\/div>'\r\n    + '<div class=\"subhead\"><h5>What the question turns on<\/h5><span>a question can sit in more than one \u2014 a time limit asked as a multi-statement code counts on both<\/span><\/div>'\r\n    + '<div class=\"bars\" id=\"traitBars\"><\/div><\/section>'\r\n\r\n  + '<div class=\"split\">'\r\n    + '<div class=\"panel\"><h4 class=\"ph\">Revision queue \u2014 what is fading fastest<\/h4><div id=\"revQ\"><\/div><\/div>'\r\n    + '<div class=\"panel\"><h4 class=\"ph\">Mastery distribution<\/h4><div id=\"mastDist\"><\/div><\/div>'\r\n  + '<\/div>'\r\n\r\n  + '<div class=\"danger\"><p><b>Danger zone.<\/b> This permanently erases your lifetime performance for this subject \u2014 mastery, weak areas, flags, accuracy history and the readiness score. Reset session on the Practice tab does <b>not<\/b> touch this.<\/p>'\r\n    + '<button class=\"dbtn\" id=\"btnWipe\">\ud83d\uddd1\ufe0f Reset my performance<\/button><\/div>';\r\n\r\n  renderRecos(byPriority, rows, due);\r\n  renderLeaks(rows);\r\n  renderFormats();\r\n  renderRevision(due);\r\n  renderMastery();\r\n  bindPerf();\r\n}\r\nfunction kpi(v,l,color){ return '<div class=\"kpi\"><b style=\"color:'+color+'\">'+v+'<\/b><span>'+l+'<\/span><\/div>'; }\r\nfunction plannerHTML(empty){\r\n  const rows=chapterRows().filter(r=>r.count>0).sort((a,b)=>b.leak-a.leak).slice(0,2).map(r=>chShort(r.chapter));\r\n  return '<div class=\"planner\"><div><h4>Plan the next sitting<\/h4><p id=\"plannerNote\">'\r\n    + (empty\r\n        ? 'The focused set gives each chapter time in proportion to what you are losing in it. The mock paper ignores your history and mirrors the shape of the whole bank. Neither is fixed \\u2014 build again and you get a fresh set of questions.'\r\n        : 'The focused set gives each chapter time in proportion to what is leaking out of it \\u2014 right now mostly <b>'+rows.join('<\/b> and <b>')+'<\/b>. The mock paper ignores your history and mirrors the shape of the whole bank. Neither is fixed: press again for a fresh set, and last time\\u2019s questions are pushed to the back of the queue.')\r\n    + '<\/p><\/div><div class=\"pbtns\">'\r\n    + '<button class=\"pbtn primary\" id=\"btnFocus\">\ud83e\udde9 Focused set \u2014 '+Math.min(CFG.sessionSize,QS.length)+' Q<\/button>'\r\n    + '<button class=\"pbtn\" id=\"btnMock\">\ud83d\udcc4 Mock paper \u2014 '+Math.min(CFG.mockSize,QS.length)+' Q<\/button>'\r\n    + '<\/div><\/div>';\r\n}\r\nfunction renderRecos(byPriority, rows, due){\r\n  const out=[], named=new Set();\r\n  byPriority.slice(0,3).forEach(r=>{\r\n    if(!r.count) return;\r\n    named.add(r.chapter);\r\n    const imp = impPhrase(r);\r\n    if(r.acc===null)\r\n      out.push({ic:'warm',icon:'\ud83e\udded',txt:'<b>'+chBrief(r.chapter)+'<\/b>'+(imp?' is '+imp+' and':'')+' you have not touched it yet \u2014 start here.',ch:r.chapter});\r\n    else if(r.acc<0.6)\r\n      out.push({ic:'hot',icon:'\ud83d\udd25',txt:'<b>'+chBrief(r.chapter)+'<\/b>'+(imp?', '+imp+',':'')+' is running at only <b>'+Math.round(r.acc*100)+'%<\/b> \u2014 about <b>'+(r.leak*100).toFixed(1)+' '+T.leakWord+' per 100<\/b> are going here.',ch:r.chapter});\r\n    else if(r.coverage<0.6)\r\n      out.push({ic:'cool',icon:'\ud83d\udd0d',txt:'<b>'+chBrief(r.chapter)+'<\/b>: accuracy is fine at '+Math.round(r.acc*100)+'%, but you have seen only <b>'+Math.round(r.coverage*100)+'%<\/b> of a chapter'+(imp?' '+imp:'')+' \u2014 finish the set.',ch:r.chapter});\r\n    else\r\n      out.push({ic:'good',icon:'\u2705',txt:'<b>'+chBrief(r.chapter)+'<\/b>'+(imp?' ('+stripHtml(imp)+')':'')+' is in good shape at '+Math.round(r.acc*100)+'% \u2014 keep it warm through the revision queue.',ch:r.chapter});\r\n  });\r\n\r\n  \/\/ a format gap costs you in every chapter at once\r\n  const f = formatRows().filter(r=>r.acc!==null && r.attempts>=8).sort((a,b)=>a.acc-b.acc);\r\n  if(f.length>=2){\r\n    const worst=f[0], best=f[f.length-1];\r\n    if(best.acc-worst.acc >= 0.12){\r\n      const tail = worst.kind==='shape'\r\n        ? 'That is a reading habit, not a gap in the rules \u2014 and it costs you in every chapter at once.'\r\n        : 'That is recall, not comprehension \u2014 these have to be committed to memory, and they turn up everywhere.';\r\n      out.push({ic:'hot',icon:'\ud83e\udde9',txt:'<b>'+worst.label+'<\/b> questions are running at <b>'+Math.round(worst.acc*100)+'%<\/b> while you sit at '+Math.round(best.acc*100)+'% on '+best.label.toLowerCase()+'. '+tail});\r\n    }\r\n  }\r\n  \/\/ big chapter you have exhausted\r\n  const done = rows.filter(r=>!named.has(r.chapter) && r.weight>=0.08 && r.coverage>=0.9 && r.count>0).sort((a,b)=>b.weight-a.weight)[0];\r\n  if(done) out.push({ic:'warm',icon:'\ud83d\udcd8',txt:'You have worked nearly every question in <b>'+chBrief(done.chapter)+'<\/b>'+(impPhrase(done)?', '+impPhrase(done):'')+'. Practice has given what it can \u2014 go back to the source text for the rest.',ch:done.chapter});\r\n  if(WT && W.unstocked.length)\r\n    out.push({ic:'hot',icon:'\ud83d\udd73\ufe0f',txt:'<b>'+W.unstocked.length+' rated '+(W.unstocked.length===1?'chapter has':'chapters have')+' no questions in this bank<\/b> \u2014 '+W.unstocked.slice(0,3).map(chBrief).join(', ')+(W.unstocked.length>3?' and others':'')+'. Nothing here prepares you for them.'});\r\n  if(weak.size>=3) out.push({ic:'hot',icon:'\u26a0\ufe0f',txt:'You have <b>'+weak.size+' weak questions<\/b> flagged, biggest chapter first. One Weak-areas sitting clears the backlog.',weak:true});\r\n  if(due.length) out.push({ic:'warm',icon:'\ud83d\udd01',txt:'<b>'+due.length+' questions<\/b> you had mastered have decayed below <b>'+Math.round(CFG.retention.riskBelow*100)+'% recall<\/b>. Re-answering one costs seconds; re-learning it later costs an evening.'});\r\n  if(flags.size) out.push({ic:'cool',icon:'\ud83d\udd16',txt:'<b>'+flags.size+'<\/b> question'+(flags.size>1?'s are':' is')+' flagged for review. Clear the flags before the next mock.',flag:true});\r\n\r\n  $('recoList').innerHTML = out.map(r=>{\r\n    let btn='';\r\n    if(r.ch)        btn='<button class=\"go\" data-goch=\"'+encodeURIComponent(r.ch)+'\">Practice \u2192<\/button>';\r\n    else if(r.weak) btn='<button class=\"go\" data-goweak=\"1\">Start \u2192<\/button>';\r\n    else if(r.flag) btn='<button class=\"go\" data-goflag=\"1\">Open \u2192<\/button>';\r\n    return '<div class=\"reco\"><span class=\"ic '+r.ic+'\">'+r.icon+'<\/span><p>'+r.txt+'<\/p>'+btn+'<\/div>';\r\n  }).join('');\r\n}\r\nfunction renderLeaks(rows){\r\n  const list = rows.filter(r=>r.count>0).sort((a,b)=>b.leak-a.leak);\r\n  if(!list.length) return;\r\n  const max = Math.max(0.0001, ...list.map(r=>r.leak));\r\n  const total = list.reduce((a,r)=>a+r.leak,0)*100;\r\n  const top3 = list.slice(0,3);\r\n  $('leakNote').innerHTML = 'On today\\u2019s form you would expect to drop about <b>'+Math.round(total)+' '+T.leakWord+' in every 100<\/b>. <b>'\r\n    + top3.map(r=>chShort(r.chapter)).join(', ')+'<\/b> alone account for <b>'+Math.round(top3.reduce((a,r)=>a+r.leak,0)*100)\r\n    + '<\/b> of them \u2014 the shortest route to a better score.';\r\n  $('leakBars').innerHTML = list.map(r=>{\r\n    const m=r.leak*100;\r\n    const col = m>=8?'linear-gradient(90deg,#F08A92,var(--bad))' : m>=4?'linear-gradient(90deg,var(--gold-lt),var(--gold))' : 'linear-gradient(90deg,#9DB6EE,var(--blue-700))';\r\n    return '<div class=\"lrow\"><div><span class=\"lname\" title=\"'+r.chapter+'\">'+chBrief(r.chapter)+'<\/span>'\r\n      + '<span class=\"lsub\">'+(impPhrase(r)?stripHtml(impPhrase(r))+' \u00b7 ':'')+'you would clear about '+Math.round(r.expected*100)+'% today<\/span><\/div>'\r\n      + '<div class=\"ltrack\"><div class=\"lfill\" style=\"width:'+(r.leak\/max*100)+'%;background:'+col+'\"><\/div><\/div>'\r\n      + '<div class=\"lval\">'+m.toFixed(1)+'<small>'+T.leakUnit+'<\/small><\/div><\/div>';\r\n  }).join('');\r\n}\r\nfunction renderFormats(){\r\n  const rows=formatRows();\r\n  const bar = r => {\r\n    const p = r.acc===null?null:Math.round(r.acc*100);\r\n    const col = p===null?'#CBD5E1' : p<50?'linear-gradient(90deg,#F08A92,var(--bad))' : p<70?'linear-gradient(90deg,var(--gold-lt),var(--gold))' : 'linear-gradient(90deg,#6EE7B7,var(--ok))';\r\n    return '<div class=\"lrow\"><div><span class=\"lname\">'+r.label+'<\/span>'\r\n      + '<span class=\"lsub\">'+r.total+' in this bank \u00b7 '+r.seen+' attempted<\/span><\/div>'\r\n      + '<div class=\"ltrack\"><div class=\"lfill\" style=\"width:'+(p===null?0:p)+'%;background:'+col+'\"><\/div><\/div>'\r\n      + '<div class=\"lval\">'+(p===null?'\u2014':p+'%')+'<small>accuracy<\/small><\/div><\/div>';\r\n  };\r\n  const sorter=(a,b)=>(a.acc===null)-(b.acc===null)||(a.acc-b.acc);\r\n  $('shapeBars').innerHTML = rows.filter(r=>r.kind==='shape').sort(sorter).map(bar).join('');\r\n  $('traitBars').innerHTML = rows.filter(r=>r.kind==='trait').sort(sorter).map(bar).join('');\r\n  const rated = rows.filter(r=>r.acc!==null && r.attempts>=8).sort(sorter);\r\n  $('fmtNote').innerHTML = rated.length>=2\r\n    ? (()=>{ const w=rated[0], b=rated[rated.length-1], gap=Math.round((b.acc-w.acc)*100);\r\n        return gap>=12\r\n          ? 'Your weakest kind of question is <b>'+w.label+'<\/b> at <b>'+Math.round(w.acc*100)+'%<\/b>, against <b>'+Math.round(b.acc*100)+'%<\/b> on '+b.label.toLowerCase()+' \u2014 a <b>'+gap+'-point<\/b> gap. That is worth more than any single chapter, because these turn up in all of them.'\r\n          : 'You handle the different kinds of question evenly, within <b>'+gap+' points<\/b> of each other. Nothing to fix here \u2014 keep working the chapter list.'; })()\r\n    : 'Attempt a few more and this will show whether the format is costing you more than the topic.';\r\n}\r\nfunction renderRevision(due){\r\n  $('revQ').innerHTML = due.length\r\n    ? due.slice(0,8).map(d=>'<button class=\"rev\" data-gouid=\"'+encodeURIComponent(uid(d.q))+'\">'\r\n        + '<span class=\"n\">Q'+d.q.id+'<\/span><span class=\"t\">'+preview(d.q,58)+'<\/span>'\r\n        + '<span class=\"d\">'+Math.round(d.recall*100)+'% recall<\/span><\/button>').join('')\r\n    : '<p style=\"font-size:13px;color:var(--slate);line-height:1.6\">Nothing decaying right now. Mastered questions return here as their estimated recall drops below '+Math.round(CFG.retention.riskBelow*100)+'%.<\/p>';\r\n}\r\nfunction renderMastery(){\r\n  const b=[0,0,0,0];\r\n  QS.forEach(q=>{ const s=P.stats[uid(q)];\r\n    if(!s || (s.correct+s.incorrect)===0) b[0]++;\r\n    else if(s.correct>=CFG.masteryThreshold) b[3]++;\r\n    else if(s.correct>=2) b[2]++;\r\n    else b[1]++; });\r\n  const labels=['Untouched','Learning (0\u20131 \u2713)','Almost there (2 \u2713)','Mastered ('+CFG.masteryThreshold+' \u2713+)'];\r\n  const cols=['#CBD5E1','var(--gold)','var(--blue-700)','var(--ok)'];\r\n  $('mastDist').innerHTML = b.map((n,i)=>\r\n    '<div class=\"lrow\" style=\"grid-template-columns:minmax(120px,1fr) 2fr 54px\"><span class=\"lname\">'+labels[i]+'<\/span>'\r\n    + '<div class=\"ltrack\"><div class=\"lfill\" style=\"width:'+(QS.length?n\/QS.length*100:0)+'%;background:'+cols[i]+'\"><\/div><\/div>'\r\n    + '<div class=\"lval\" style=\"font-size:15px\">'+n+'<\/div><\/div>').join('');\r\n}\r\nfunction bindPerf(){\r\n  const f=$('btnFocus'), m=$('btnMock'), w=$('btnWipe');\r\n  if(f) f.onclick=()=>startSession('focus');\r\n  if(m) m.onclick=()=>startSession('mock');\r\n  if(w) w.onclick=wipe;\r\n}\r\n\r\n\/* =====================================================================\r\n   16. ANSWERING\r\n   ===================================================================== *\/\r\nfunction check(){\r\n  const p=pool(), q=p[S.i]; if(!q) return;\r\n  if(S.pick==null){ S.nudge=true; render(); return; }\r\n  const u=uid(q), ok = S.pick===q.correct;\r\n  S.ans[u]=S.pick; S.pick=null; S.nudge=false;\r\n  const s=stat(u);\r\n  ok ? s.correct++ : s.incorrect++;\r\n  s.last=Date.now(); s.lastOk=ok;\r\n  P.log.push({u, ok, ts:Date.now()});\r\n  P.lastUid=u;\r\n  refreshWeak(); save(); render();\r\n  const res=$('result'); if(res && res.scrollIntoView) try{ res.scrollIntoView({block:'nearest',behavior:'smooth'}); }catch(e){}\r\n}\r\nfunction wipe(){\r\n  if(!confirm('Permanently erase ALL lifetime performance for this subject?\\n\\nMastery, weak areas, flags, accuracy history, the built session and the readiness score all go. This cannot be undone.')) return;\r\n  P = blank(); flags.clear(); weak.clear(); S.ans={};\r\n  save(); setFilter('all'); renderPerf(); hdr();\r\n  toast('Lifetime performance erased', true);\r\n}\r\n\r\n\/* =====================================================================\r\n   18. EVENTS\r\n   ===================================================================== *\/\r\nfunction setTab(t){\r\n  S.tab=t;\r\n  document.querySelectorAll('#cdRoot .tab').forEach(b=>b.setAttribute('aria-selected', b.dataset.tab===t));\r\n  $('viewQuiz').classList.toggle('hide', t!=='quiz');\r\n  $('viewPerf').classList.toggle('hide', t!=='perf');\r\n  $('cdFilters').classList.toggle('hide', t!=='quiz');\r\n  if(t==='perf') renderPerf();\r\n}\r\nfunction setFilter(f, ch){\r\n  S.filter=f; S.i=0; S.pick=null;\r\n  if(ch) S.chapter=ch;\r\n  document.querySelectorAll('#cdRoot .pill-f').forEach(b=>b.setAttribute('aria-pressed', b.dataset.f===f));\r\n  render();\r\n}\r\ndocument.querySelectorAll('#cdRoot .tab').forEach(b=>b.onclick=()=>setTab(b.dataset.tab));\r\ndocument.querySelectorAll('#cdRoot .pill-f').forEach(b=>b.onclick=()=>setFilter(b.dataset.f));\r\n$('chapList').addEventListener('click', e=>{\r\n  const chip=e.target.closest('.chapchip'); if(!chip) return;\r\n  S.chapter = decodeURIComponent(chip.dataset.ch);\r\n  S.i=0; S.pick=null; render();\r\n});\r\n$('btnCheck').onclick = check;\r\n$('btnNext').onclick  = ()=>{ S.i++; S.pick=null; render(); };\r\n$('btnPrev').onclick  = ()=>{ S.i--; S.pick=null; render(); };\r\n$('btnFlag').onclick  = ()=>{\r\n  const p=pool(), q=p[S.i]; if(!q) return;\r\n  const u=uid(q);\r\n  flags.has(u) ? flags.delete(u) : flags.add(u);\r\n  P.flags=[...flags]; save(); render();\r\n};\r\n$('navToggle').onclick = ()=>{ navOpen=!navOpen; renderNav(pool()); };\r\nlet tmr;\r\n$('cdSearch').addEventListener('input', e=>{\r\n  clearTimeout(tmr);\r\n  tmr=setTimeout(()=>{ S.query=e.target.value.trim(); S.i=0; S.pick=null; render(); },220);\r\n});\r\n$('tglUn').onclick = e=>{\r\n  S.unattempted=!S.unattempted;\r\n  e.currentTarget.setAttribute('aria-pressed',S.unattempted);\r\n  e.currentTarget.firstChild.textContent = S.unattempted?'\u2611 ':'\u25fb ';\r\n  S.i=0; S.pick=null; render();\r\n};\r\n$('tglReset').onclick = ()=>{\r\n  if(!Object.keys(S.ans).length) return;\r\n  if(!confirm('Reset this sitting? Only the answers on screen are cleared \u2014 your lifetime performance and mastery are kept.')) return;\r\n  S.ans={}; S.i=0; S.pick=null; render();\r\n  toast('Session reset \u2014 performance data kept', true);\r\n};\r\n\r\n\/* performance-tab jumps + AI chips, delegated *\/\r\ndocument.addEventListener('click', e=>{\r\n  if(!e.target.closest('#cdRoot')) return;\r\n  const goch=e.target.closest('[data-goch]');\r\n  if(goch){ setTab('quiz'); setFilter('chapter', decodeURIComponent(goch.dataset.goch));\r\n    toast('Filtered to '+chShort(S.chapter), true); return; }\r\n  if(e.target.closest('[data-goweak]')){ setTab('quiz'); setFilter('weak'); return; }\r\n  if(e.target.closest('[data-goflag]')){ setTab('quiz'); setFilter('flagged'); return; }\r\n  const gu=e.target.closest('[data-gouid]');\r\n  if(gu){\r\n    const u=decodeURIComponent(gu.dataset.gouid);\r\n    setTab('quiz'); setFilter('all');\r\n    const idx=pool().findIndex(q=>uid(q)===u);\r\n    if(idx>=0){ S.i=idx; render(); }\r\n    return;\r\n  }\r\n});\r\n\/* keyboard, scoped to the widget *\/\r\ndocument.addEventListener('keydown', e=>{\r\n  if(S.tab!=='quiz') return;\r\n  const t=e.target;\r\n  if(t && (\/^(INPUT|TEXTAREA|SELECT)$\/.test(t.tagName) || t.isContentEditable)) return;\r\n  if(e.ctrlKey||e.metaKey||e.altKey) return;\r\n  const p=pool(); if(!p.length) return;\r\n  const q=p[S.i];\r\n  if(\/^[1-9]$\/.test(e.key)){\r\n    const k=+e.key-1;\r\n    if(q && S.ans[uid(q)]==null && k<q.options.length){ e.preventDefault(); S.pick=k; S.nudge=false; render(); }\r\n    return;\r\n  }\r\n  const low=e.key.toLowerCase();\r\n  if(\/^[a-f]$\/.test(low)){\r\n    const k=low.charCodeAt(0)-97;\r\n    if(q && S.ans[uid(q)]==null && k<q.options.length){ e.preventDefault(); S.pick=k; S.nudge=false; render(); }\r\n    return;\r\n  }\r\n  if(e.key==='Enter'){ e.preventDefault();\r\n    if(q && S.ans[uid(q)]==null) check();\r\n    else if(S.i<p.length-1){ S.i++; S.pick=null; render(); }\r\n    return; }\r\n  if(e.key==='ArrowRight'){ e.preventDefault(); S.i++; S.pick=null; render(); return; }\r\n  if(e.key==='ArrowLeft'){ e.preventDefault(); S.i--; S.pick=null; render(); return; }\r\n  if(low==='f'){ e.preventDefault(); $('btnFlag').click(); }\r\n});\r\nwindow.addEventListener('beforeunload', save);\r\n\r\n\/* =====================================================================\r\n   19. BOOT\r\n   ===================================================================== *\/\r\n$('cdEyebrow').textContent = 'CSS ADDA \u00b7 PromotionExams.com' + (CFG.eyebrow ? '  \u00b7  '+CFG.eyebrow : '');\r\n$('cdTopic').textContent   = CFG.topic;\r\n$('cdSub').textContent     = CFG.sub;\r\n$('wHead').textContent     = T.onScreen;\r\n$('wUnit').textContent     = WT ? 'importance' : 'of this bank';\r\n$('chapHint').textContent  = '';\r\nif(SRC_ON){\r\n  $('srcCard').classList.remove('hide');\r\n  $('srcLink').href = CFG.sourceUrl;\r\n}\r\nif(WT && W.derived.length) console.warn('[importance] not rated yet: '+W.derived.join(' | ')+' \u2014 using share of the bank for these.');\r\nif(WT && W.unstocked.length) console.warn('[importance] these keys matched no chapter in the bank: '+W.unstocked.join(' | '));\r\nif(WT) console.info('[importance] '+CHAPTERS.filter(c=>W.source[c]==='rated').length+' of '+CHAPTERS.length+' chapters matched a rating.');\r\nif(!WT) console.info('[ranking] chapterImportance is empty \u2014 chapters are ranked by their share of this bank and importance is not mentioned anywhere.');\r\nsetTab('quiz');\r\ntry{ render(); }catch(err){ console.error('render failed', err); }\r\n\r\n\/* =====================================================================\r\n   20. CONTENT PROTECTION\r\n   Honest about what this can and cannot do.\r\n\r\n   REALLY BLOCKED\r\n     copy, cut, right-click, drag-out, text selection, Ctrl\/Cmd+C, X, S,\r\n     P, U, and printing or \"Save as PDF\" from the browser.\r\n\r\n   DETERRED, NOT BLOCKED\r\n     screenshots. No web page can stop the operating system taking one \u2014\r\n     Print Screen, Snipping Tool, macOS Shift-Cmd-4 and every phone all\r\n     work below the browser. What is done instead: the questions blur the\r\n     moment this window stops being the front window, which defeats the\r\n     common \"screenshot with another app\" and casual screen-share cases,\r\n     and Print Screen is caught where the browser reports it and the\r\n     clipboard is overwritten.\r\n\r\n   NOT BLOCKED AT ALL\r\n     View Source, Save Page, DevTools, or Reader Mode. Every question is\r\n     in the page HTML because that is how the widget runs. Anyone willing\r\n     to open the source can read the bank. Serving questions from a\r\n     licence-checked endpoint is the only real fix for that; this layer\r\n     stops casual copying, which is what it is for.\r\n   ===================================================================== *\/\r\nconst PROTECT = {\r\n  selection : true,   \/\/ block selecting, copying, cutting, dragging\r\n  context   : true,   \/\/ block right-click inside the widget\r\n  keys      : true,   \/\/ block Ctrl\/Cmd + C X S P U\r\n  print     : true,   \/\/ swap the paper for a notice when printing\r\n  veil      : true    \/\/ blur the questions when the window loses focus\r\n};\r\n\r\n(function protectContent(){\r\n  const root = $('cdRoot');\r\n  const stop = (e, msg) => { e.preventDefault(); e.stopPropagation(); if(msg) toast(msg); return false; };\r\n\r\n  if(PROTECT.selection){\r\n    ['copy','cut'].forEach(ev => root.addEventListener(ev, e=>{\r\n      if(e.target && \/^(INPUT|TEXTAREA)$\/.test(e.target.tagName)) return;   \/\/ let the search box work\r\n      stop(e,'This content cannot be copied');\r\n    }));\r\n    root.addEventListener('dragstart', e=>stop(e));\r\n    root.addEventListener('selectstart', e=>{\r\n      if(e.target && \/^(INPUT|TEXTAREA)$\/.test(e.target.tagName)) return;\r\n      e.preventDefault();\r\n    });\r\n  }\r\n\r\n  if(PROTECT.context)\r\n    root.addEventListener('contextmenu', e=>stop(e,'Right-click is disabled here'));\r\n\r\n  if(PROTECT.keys){\r\n    document.addEventListener('keydown', e=>{\r\n      const t=e.target;\r\n      const inField = t && (\/^(INPUT|TEXTAREA)$\/.test(t.tagName) || t.isContentEditable);\r\n      const k=(e.key||'').toLowerCase();\r\n      if((e.ctrlKey||e.metaKey) && ['c','x','s','p','u'].includes(k)){\r\n        if(inField && (k==='c'||k==='x')) return;    \/\/ copying inside the search box is harmless\r\n        return stop(e, k==='p' ? 'Printing is disabled' : k==='s' ? 'Saving is disabled' : 'This content cannot be copied');\r\n      }\r\n      if((e.ctrlKey||e.metaKey) && e.shiftKey && ['i','j','c'].includes(k)) return stop(e);\r\n      if(e.key==='F12') return stop(e);\r\n    }, true);\r\n\r\n    \/\/ Print Screen only reaches the page on some platforms; overwrite what it left\r\n    document.addEventListener('keyup', e=>{\r\n      if(e.key==='PrintScreen' || e.code==='PrintScreen'){\r\n        try{ navigator.clipboard && navigator.clipboard.writeText(' '); }catch(err){}\r\n        toast('Screenshots are not permitted');\r\n      }\r\n    });\r\n  }\r\n\r\n  if(PROTECT.print){\r\n    \/\/ the CSS swap covers rendering; this catches the shortcut and the menu\r\n    if(window.matchMedia){\r\n      const mq = window.matchMedia('print');\r\n      const onPrint = m => { if(m.matches) toast('Printing is disabled'); };\r\n      mq.addEventListener ? mq.addEventListener('change', onPrint) : mq.addListener(onPrint);\r\n    }\r\n    window.addEventListener('beforeprint', ()=>toast('Printing is disabled'));\r\n  }\r\n\r\n  if(PROTECT.veil){\r\n    const veil = on => root.classList.toggle('veiled', !!on);\r\n    window.addEventListener('blur',  ()=>veil(true));\r\n    window.addEventListener('focus', ()=>veil(false));\r\n    document.addEventListener('visibilitychange', ()=>veil(document.hidden));\r\n  }\r\n})();\r\n\r\n\r\n})();\r\n<\/script>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t","protected":false},"excerpt":{"rendered":"<p>CSS ADDA \u00b7 PromotionExams.com Chapter-wise Test Series Chapter drills with a planner that builds your next sitting for you. 0Questions [&hellip;]<\/p>\n","protected":false},"author":2,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"site-sidebar-layout":"no-sidebar","site-content-layout":"","ast-site-content-layout":"full-width-container","site-content-style":"default","site-sidebar-style":"default","ast-global-header-display":"disabled","ast-banner-title-visibility":"disabled","ast-main-header-display":"","ast-hfb-above-header-display":"","ast-hfb-below-header-display":"","ast-hfb-mobile-header-display":"","site-post-title":"","ast-breadcrumbs-content":"","ast-featured-img":"disabled","footer-sml-layout":"disabled","ast-disable-related-posts":"","theme-transparent-header-meta":"","adv-header-id-meta":"","stick-header-meta":"","header-above-stick-meta":"","header-main-stick-meta":"","header-below-stick-meta":"","astra-migrate-meta-layouts":"default","ast-page-background-enabled":"default","ast-page-background-meta":{"desktop":{"background-color":"var(--ast-global-color-5)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"tablet":{"background-color":"","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"mobile":{"background-color":"","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""}},"ast-content-background-meta":{"desktop":{"background-color":"var(--ast-global-color-4)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"tablet":{"background-color":"var(--ast-global-color-4)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"mobile":{"background-color":"var(--ast-global-color-4)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""}},"footnotes":""},"categories":[52],"tags":[],"class_list":["post-15971","page","type-page","status-publish","hentry","category-test-series"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v28.2 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>MCQs on NIPUN Bharat - PromotionExams<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/promotionexams.com\/?page_id=15971\" \/>\n<meta property=\"og:locale\" content=\"en_GB\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"MCQs on NIPUN Bharat - PromotionExams\" \/>\n<meta property=\"og:description\" content=\"CSS ADDA \u00b7 PromotionExams.com Chapter-wise Test Series Chapter drills with a planner that builds your next sitting for you. 0Questions [&hellip;]\" \/>\n<meta property=\"og:url\" content=\"https:\/\/promotionexams.com\/?page_id=15971\" \/>\n<meta property=\"og:site_name\" content=\"PromotionExams\" \/>\n<meta property=\"article:modified_time\" content=\"2026-08-25T10:09:44+00:00\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Estimated reading time\" \/>\n\t<meta name=\"twitter:data1\" content=\"1 minute\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/promotionexams.com\\\/?page_id=15971\",\"url\":\"https:\\\/\\\/promotionexams.com\\\/?page_id=15971\",\"name\":\"MCQs on NIPUN Bharat - PromotionExams\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/promotionexams.com\\\/#website\"},\"datePublished\":\"2026-08-24T06:22:42+00:00\",\"dateModified\":\"2026-08-25T10:09:44+00:00\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/promotionexams.com\\\/?page_id=15971#breadcrumb\"},\"inLanguage\":\"en-GB\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/promotionexams.com\\\/?page_id=15971\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/promotionexams.com\\\/?page_id=15971#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/promotionexams.com\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"MCQs on NIPUN Bharat\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/promotionexams.com\\\/#website\",\"url\":\"https:\\\/\\\/promotionexams.com\\\/\",\"name\":\"CSSADDA.IN\",\"description\":\"Best platform for Govt. Departmental Promotion Exams\",\"publisher\":{\"@id\":\"https:\\\/\\\/promotionexams.com\\\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/promotionexams.com\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-GB\"},{\"@type\":\"Organization\",\"@id\":\"https:\\\/\\\/promotionexams.com\\\/#organization\",\"name\":\"CSSADDA\",\"url\":\"https:\\\/\\\/promotionexams.com\\\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-GB\",\"@id\":\"https:\\\/\\\/promotionexams.com\\\/#\\\/schema\\\/logo\\\/image\\\/\",\"url\":\"https:\\\/\\\/promotionexams.com\\\/wp-content\\\/uploads\\\/2025\\\/07\\\/CSS-ADDA-Logo.png\",\"contentUrl\":\"https:\\\/\\\/promotionexams.com\\\/wp-content\\\/uploads\\\/2025\\\/07\\\/CSS-ADDA-Logo.png\",\"width\":1077,\"height\":227,\"caption\":\"CSSADDA\"},\"image\":{\"@id\":\"https:\\\/\\\/promotionexams.com\\\/#\\\/schema\\\/logo\\\/image\\\/\"}}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"MCQs on NIPUN Bharat - PromotionExams","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/promotionexams.com\/?page_id=15971","og_locale":"en_GB","og_type":"article","og_title":"MCQs on NIPUN Bharat - PromotionExams","og_description":"CSS ADDA \u00b7 PromotionExams.com Chapter-wise Test Series Chapter drills with a planner that builds your next sitting for you. 0Questions [&hellip;]","og_url":"https:\/\/promotionexams.com\/?page_id=15971","og_site_name":"PromotionExams","article_modified_time":"2026-08-25T10:09:44+00:00","twitter_card":"summary_large_image","twitter_misc":{"Estimated reading time":"1 minute"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"WebPage","@id":"https:\/\/promotionexams.com\/?page_id=15971","url":"https:\/\/promotionexams.com\/?page_id=15971","name":"MCQs on NIPUN Bharat - PromotionExams","isPartOf":{"@id":"https:\/\/promotionexams.com\/#website"},"datePublished":"2026-08-24T06:22:42+00:00","dateModified":"2026-08-25T10:09:44+00:00","breadcrumb":{"@id":"https:\/\/promotionexams.com\/?page_id=15971#breadcrumb"},"inLanguage":"en-GB","potentialAction":[{"@type":"ReadAction","target":["https:\/\/promotionexams.com\/?page_id=15971"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/promotionexams.com\/?page_id=15971#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/promotionexams.com\/"},{"@type":"ListItem","position":2,"name":"MCQs on NIPUN Bharat"}]},{"@type":"WebSite","@id":"https:\/\/promotionexams.com\/#website","url":"https:\/\/promotionexams.com\/","name":"CSSADDA.IN","description":"Best platform for Govt. Departmental Promotion Exams","publisher":{"@id":"https:\/\/promotionexams.com\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/promotionexams.com\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-GB"},{"@type":"Organization","@id":"https:\/\/promotionexams.com\/#organization","name":"CSSADDA","url":"https:\/\/promotionexams.com\/","logo":{"@type":"ImageObject","inLanguage":"en-GB","@id":"https:\/\/promotionexams.com\/#\/schema\/logo\/image\/","url":"https:\/\/promotionexams.com\/wp-content\/uploads\/2025\/07\/CSS-ADDA-Logo.png","contentUrl":"https:\/\/promotionexams.com\/wp-content\/uploads\/2025\/07\/CSS-ADDA-Logo.png","width":1077,"height":227,"caption":"CSSADDA"},"image":{"@id":"https:\/\/promotionexams.com\/#\/schema\/logo\/image\/"}}]}},"_links":{"self":[{"href":"https:\/\/promotionexams.com\/index.php?rest_route=\/wp\/v2\/pages\/15971","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/promotionexams.com\/index.php?rest_route=\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/promotionexams.com\/index.php?rest_route=\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/promotionexams.com\/index.php?rest_route=\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/promotionexams.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=15971"}],"version-history":[{"count":4,"href":"https:\/\/promotionexams.com\/index.php?rest_route=\/wp\/v2\/pages\/15971\/revisions"}],"predecessor-version":[{"id":15979,"href":"https:\/\/promotionexams.com\/index.php?rest_route=\/wp\/v2\/pages\/15971\/revisions\/15979"}],"wp:attachment":[{"href":"https:\/\/promotionexams.com\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=15971"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/promotionexams.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=15971"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/promotionexams.com\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=15971"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}