
:root{--navy:#10245b;--blue:#4657e8;--green:#28a65c;--ink:#19233f;--muted:#69738a;--bg:#f7f8fc;--line:#dde3f0}
*{box-sizing:border-box}body{margin:0;font-family:Arial,sans-serif;color:var(--ink);background:var(--bg)}button,select{font:inherit}.container{width:min(1180px,94%);margin:auto}.top{background:white;border-bottom:1px solid var(--line)}.nav{min-height:68px;display:flex;align-items:center;gap:15px}.brand{font-weight:900;font-size:21px;color:var(--navy)}.navright{margin-left:auto;display:flex;gap:6px}.navbtn{border:0;background:white;padding:9px 12px;font-weight:800;color:var(--muted);cursor:pointer}.navbtn.active{color:var(--blue)}.badge{display:inline-block;background:#eef1ff;color:var(--blue);padding:6px 9px;border-radius:8px;font-size:11px;font-weight:900}.coursebar{background:white;border-bottom:1px solid var(--line)}.controls{min-height:58px;display:flex;align-items:center;gap:35px}.controls>div{display:flex;gap:7px;align-items:center}.controls b{font-size:12px;margin-right:3px}.pill{border:1px solid var(--line);background:white;border-radius:999px;padding:7px 11px;font-size:12px;font-weight:800;cursor:pointer}.pill.active{background:var(--navy);color:white}.workspace{display:grid;grid-template-columns:260px 1fr;gap:0;min-height:650px;background:white;border-left:1px solid var(--line);border-right:1px solid var(--line)}.sidebar{border-right:1px solid var(--line);background:#fbfcff}.sidehead{padding:22px 17px 12px}.sidehead small{font-size:10px;color:var(--muted);font-weight:900}.sidehead h3{margin:5px 0;color:var(--navy)}.topiclink{width:100%;min-height:48px;border:0;border-left:4px solid transparent;background:transparent;padding:10px 14px;display:flex;justify-content:space-between;align-items:center;text-align:left;font-weight:700;color:#4c5670;cursor:pointer}.topiclink.active{background:white;border-left-color:var(--green);color:var(--navy)}.status{color:#a6aec0}.content{padding:34px 38px;min-width:0}h1{font-size:40px;color:var(--navy);margin:9px 0}.lead{font-size:18px;color:var(--muted);max-width:720px}.tabs{display:flex;gap:3px;border-bottom:1px solid var(--line);margin:27px 0 20px}.tab{border:0;background:white;padding:11px 18px;font-weight:800;color:var(--muted);border-bottom:3px solid transparent;cursor:pointer}.tab.active{color:var(--blue);border-bottom-color:var(--blue)}.sectioncard{border:1px solid var(--line);border-radius:13px;padding:20px;margin:14px 0}.sectioncard h2{color:var(--navy);font-size:20px;margin-top:0}.skillgrid{display:grid;grid-template-columns:1fr 1fr;gap:9px}.skill{background:#f8f9fd;padding:11px;border-radius:9px;display:flex;gap:9px;align-items:center}.skill span{width:25px;height:25px;background:var(--navy);color:white;border-radius:50%;display:grid;place-items:center;font-size:11px;font-weight:900}.teachline{display:flex;gap:9px;padding:10px 0;border-bottom:1px solid #eef1f6;color:#3e4964}.teachline:last-child{border:0}.practiceq{padding:16px 0;border-bottom:1px solid var(--line)}.choices{display:grid;grid-template-columns:1fr 1fr;gap:6px;margin-top:10px}.choices span{background:#f8f9fd;padding:8px;border-radius:7px;font-size:14px}details{border-bottom:1px solid var(--line);padding:13px 0}summary{font-weight:800;cursor:pointer;color:var(--navy)}.solution{background:#eef9f2;padding:13px;border-radius:9px;margin-top:10px}.empty{padding:35px;text-align:center;border:1px dashed #cbd3e4;border-radius:12px}.hidden{display:none}.diagHero{padding:50px 0}.diagbox{max-width:600px;background:white;border:1px solid var(--line);border-radius:16px;padding:25px;margin:20px auto}.diagselectors{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin:20px 0}select{padding:12px;border:1px solid var(--line);border-radius:9px}.btn{border:0;border-radius:9px;padding:11px 16px;font-weight:800;cursor:pointer}.green{background:var(--green);color:white}.primary{background:var(--blue);color:white}.back{border:0;background:transparent;color:var(--blue);font-weight:800;cursor:pointer}.quiz{max-width:820px;padding:35px 0}.qcard{background:white;border:1px solid var(--line);border-radius:14px;padding:22px;margin-top:12px}.question{font-size:22px;font-weight:800;color:var(--navy);margin:18px 0}.options{display:grid;gap:9px}.option{padding:13px;background:white;border:1px solid var(--line);border-radius:9px;text-align:left;cursor:pointer}.option.correct{background:#e8f7ee;border-color:var(--green)}.option.wrong{background:#fff0f0;border-color:#c94f4f}.feedback{padding:13px;background:#f2f5ff;border-radius:9px;margin-top:14px}.footer{padding:22px 0;background:white;border-top:1px solid var(--line);font-size:11px;color:var(--muted)}
@media(max-width:760px){.workspace{grid-template-columns:1fr}.sidebar{border-right:0;border-bottom:1px solid var(--line)}.topiclink{min-height:44px}.content{padding:24px 18px}.controls{align-items:flex-start;flex-direction:column;gap:8px;padding:10px}.skillgrid,.choices{grid-template-columns:1fr}.nav .badge{display:none}h1{font-size:34px}}

.levelhead{display:flex;justify-content:space-between;align-items:center;gap:10px;margin-bottom:12px;color:var(--muted);font-size:12px}
.level{font-size:10px;font-weight:900;letter-spacing:.5px;padding:6px 9px;border-radius:999px}
.skillcheck{background:#eef1f7;color:#526079}.exam{background:#e9f7ef;color:#177b43}.challenge{background:#fff0d8;color:#9b5b00}
.examcard{border-left:4px solid var(--green)}.examquestion{font-size:17px;line-height:1.8;white-space:normal;color:#27324d}
.solstep{border-left:3px solid #dce3f3;padding:4px 0 4px 14px;margin:14px 0}.solstep h3{font-size:14px;color:var(--navy);margin:0 0 5px}.solstep p{line-height:1.65;margin:0;color:#3d4863}

.practicelevels{display:flex;flex-wrap:wrap;gap:7px;align-items:center;padding:12px 0 4px}.practicelevels b{font-size:12px;margin-right:4px}
.levelbtn{border:1px solid var(--line);background:white;padding:7px 10px;border-radius:999px;font-size:11px;font-weight:800;cursor:pointer}.levelbtn.active{background:var(--navy);color:white}
.mathdiagram{display:block;width:min(560px,100%);height:auto;margin:18px auto;background:#fff;border:1px solid var(--line);border-radius:10px;padding:8px}
.mathdiagram .axis,.mathdiagram .surface{stroke:#28334d;stroke-width:2;fill:none}.mathdiagram .curve{stroke:#4657e8;stroke-width:3;fill:none}.mathdiagram .body{fill:#eef1ff;stroke:#28334d;stroke-width:2}.mathdiagram .pulley{fill:#fff;stroke:#28334d;stroke-width:2}.mathdiagram .string{stroke:#28334d;stroke-width:2}.mathdiagram text{font-family:Arial,sans-serif;font-size:14px;fill:#19233f}
.examquestion mjx-container{font-size:108%!important}.solstep mjx-container{font-size:105%!important}

/* V6 colour system: mature sixth-form palette with semantic use */
:root{
 --pure:#4b5fe7;--stats:#7a4bd8;--mech:#e1782f;
 --secure:#25a55b;--develop:#e3a51b;--priority:#d9534f;
 --learn:#3f6fd8;--practice:#7a4bd8;--solution:#16866a;
}
body{background:linear-gradient(180deg,#f7f8fc 0%,#f2f5fb 100%)}
.top{box-shadow:0 2px 14px rgba(16,36,91,.06)}
.brand{background:linear-gradient(90deg,var(--navy),var(--blue));-webkit-background-clip:text;background-clip:text;color:transparent}
.coursebar{background:linear-gradient(90deg,#ffffff,#f6f8ff)}
.sidebar{background:linear-gradient(180deg,#fbfcff,#f4f7ff)}
.topiclink{transition:.18s ease}.topiclink:hover{background:#f0f3ff;transform:translateX(2px)}
.topiclink.active{box-shadow:inset 0 0 0 1px #eef1f8}
.content{background:linear-gradient(180deg,#fff 0,#fcfdff 100%)}
#topicHero{border-radius:16px;padding:22px;background:linear-gradient(120deg,#f2f5ff,#fbf7ff);border:1px solid #e5e9f7}
.tabs .tab[data-tab="learn"].active{color:var(--learn);border-bottom-color:var(--learn)}
.tabs .tab[data-tab="practice"].active{color:var(--practice);border-bottom-color:var(--practice)}
.tabs .tab[data-tab="solutions"].active{color:var(--solution);border-bottom-color:var(--solution)}
.sectioncard{box-shadow:0 5px 18px rgba(29,47,92,.045)}
.skill:nth-child(4n+1) span{background:var(--blue)}.skill:nth-child(4n+2) span{background:var(--stats)}
.skill:nth-child(4n+3) span{background:var(--green)}.skill:nth-child(4n) span{background:var(--mech)}
.teachline:nth-child(3n+1){border-left:3px solid #6b7cff;padding-left:10px}
.teachline:nth-child(3n+2){border-left:3px solid #8b5be5;padding-left:10px}
.teachline:nth-child(3n){border-left:3px solid #2aaf70;padding-left:10px}
.level.skillcheck{background:#eaf0ff;color:#3452b8}
.level.exam{background:#e7f7ee;color:#157541}
.level.challenge{background:#fff0d9;color:#9c5b00}
.qlevel.skill{border-left:4px solid #5e75df}.qlevel.exam{border-left:4px solid var(--secure)}
.qlevel.challenge{border-left:4px solid var(--develop)}
.solution{background:linear-gradient(90deg,#eaf9f1,#f6fffa)}
.solstep:nth-child(4n+1){border-left-color:#526be1}.solstep:nth-child(4n+2){border-left-color:#8a59db}
.solstep:nth-child(4n+3){border-left-color:#27a960}.solstep:nth-child(4n){border-left-color:#e49d21}
.mathdiagram{background:linear-gradient(180deg,#fff,#fbfcff);box-shadow:0 5px 16px rgba(25,42,85,.07)}
.mathdiagram .curve{stroke:#5368e8}.mathdiagram .body{fill:#fff0dc;stroke:#d06e25}
.mathdiagram .pulley{fill:#eaf0ff;stroke:#4358c6}.mathdiagram .string{stroke:#7a4bd8}
.feedback{border-left:4px solid var(--blue)}
.option.correct{background:#e7f8ee;border-color:var(--secure);box-shadow:inset 4px 0 0 var(--secure)}
.option.wrong{background:#fff0ef;border-color:var(--priority);box-shadow:inset 4px 0 0 var(--priority)}
.green{background:linear-gradient(90deg,#219653,#2eb96a)}.primary{background:linear-gradient(90deg,#4055d7,#6d57df)}

.colourkey{display:flex;justify-content:flex-end;gap:14px;font-size:10px;font-weight:800;color:var(--muted);margin-bottom:10px}
.colourkey span{display:flex;align-items:center;gap:5px}.colourkey i{width:9px;height:9px;border-radius:50%;display:inline-block}

.showcasebanner{padding:24px;border-radius:15px;background:linear-gradient(120deg,#263d9a,#7650d5);color:white;margin-bottom:16px;box-shadow:0 10px 25px rgba(47,57,130,.16)}
.showcasebanner span{font-size:10px;font-weight:900;letter-spacing:1px;opacity:.85}.showcasebanner h2{font-size:28px;margin:7px 0;color:white}.showcasebanner p{margin:0;max-width:700px;line-height:1.55}
.modulegrid{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin:14px 0}.module{display:flex;gap:11px;align-items:center;background:white;border:1px solid var(--line);border-radius:11px;padding:13px}.moduleNo{width:30px;height:30px;display:grid;place-items:center;border-radius:50%;background:#eef1ff;color:#4357ce;font-weight:900}.module small{display:block;color:var(--muted);margin-top:4px;line-height:1.4}
.masteryflow{display:flex;flex-wrap:wrap;align-items:center;gap:8px;margin:14px 0}.masteryflow span{padding:8px 10px;border-radius:999px;background:#eef1ff;color:#3349af;font-size:11px;font-weight:900}.masteryflow span:nth-of-type(2){background:#f1eaff;color:#7041bd}.masteryflow span:nth-of-type(3){background:#e8f7ee;color:#177743}.masteryflow span:nth-of-type(4){background:#fff0d8;color:#9b5b00}
.level.buildlevel{background:#f0eaff;color:#7041bd}.qlevel.build{border-left:4px solid #7a4bd8}.route{background:#fff8e6;border-left:3px solid #e3a51b;padding:9px 11px;border-radius:5px}
@media(max-width:760px){.modulegrid{grid-template-columns:1fr}}



/* V9 offline-safe mathematical typography */
mjx-container[jax="SVG"]{font-size:1.06em}
mjx-container[display="true"]{margin:1.05em 0;overflow-x:auto;overflow-y:hidden;padding:3px 0}
.examquestion mjx-container[jax="SVG"],.solstep mjx-container[jax="SVG"],.solution mjx-container[jax="SVG"]{font-size:1.06em}
.examquestion{line-height:1.9}
.practiceq b{line-height:1.7}
@media(max-width:760px){
  mjx-container[jax="SVG"]{font-size:.98em}
  mjx-container[display="true"]{font-size:.94em}
}

.adaptiveLaunch{display:flex;justify-content:space-between;align-items:center;gap:22px;border-top:4px solid #7a4bd8}.adaptiveLaunch h2{margin:5px 0}.adaptiveLaunch p{max-width:680px;line-height:1.55}.eyebrow{font-size:10px;font-weight:900;letter-spacing:1px;color:#7041bd}
#adaptivePanel{margin:14px 0}.adaptiveTop{display:flex;justify-content:space-between;padding:12px 15px;background:#263d9a;color:white;border-radius:12px 12px 0 0;font-size:11px;font-weight:900}.adaptiveQ{background:white;border:1px solid var(--line);border-top:0;padding:25px;font-size:18px;line-height:1.7}.adaptiveOpts{display:grid;gap:8px;background:white;border:1px solid var(--line);border-top:0;padding:0 25px 24px}.adaptiveOpts button{padding:13px 15px;text-align:left;border:1px solid #dfe4f1;border-radius:9px;background:#f8f9fd;cursor:pointer;font-size:15px}.adaptiveOpts button:hover{border-color:#6b5cdb;background:#f2efff}.adaptiveProgress{height:5px;background:#e9edf5;border-radius:0 0 8px 8px;overflow:hidden}.adaptiveProgress i{display:block;height:100%;background:#7a4bd8}
.adaptiveFeedback,.adaptiveResult{background:white;border:1px solid var(--line);border-radius:12px;padding:24px;box-shadow:0 7px 20px rgba(35,48,90,.06)}.adaptiveFeedback.good{border-left:5px solid #25a55b}.adaptiveFeedback.needs{border-left:5px solid #e3a51b}.microteach{background:#f7f4ff;border-radius:10px;padding:15px;margin:15px 0}.microteach h3{color:#6840b5;margin-top:0}.scoreRing{width:70px;height:70px;border-radius:50%;display:grid;place-items:center;background:#eaf7ef;color:#187a44;font-size:20px;font-weight:900;margin:15px 0}.routecards{display:grid;gap:8px;margin:15px 0}.routecards div{padding:11px 13px;background:#f7f8fc;border-radius:8px}.routecards small{display:block;color:var(--muted);margin-top:3px}
@media(max-width:760px){.adaptiveLaunch{align-items:flex-start;flex-direction:column}.adaptiveLaunch button{width:100%}}

.masterySkillGrid{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-top:14px}
.masterySkill{border:1px solid var(--line);background:#f9faff;border-radius:10px;padding:13px;text-align:left;cursor:pointer;display:flex;justify-content:space-between;gap:10px;align-items:center}
.masterySkill:hover{border-color:#6f5bd8}.masterySkill .skillStatus{font-size:10px;font-weight:900;color:var(--muted);padding:5px 7px;border-radius:999px;background:white}
.masterySkill.secureStatus{border-left:5px solid #25a55b}.masterySkill.secureStatus .skillStatus{color:#187844;background:#e9f8ef}
.masterySkill.developStatus{border-left:5px solid #e3a51b}.masterySkill.developStatus .skillStatus{color:#925f00;background:#fff4d7}
.masterySkill.priorityStatus{border-left:5px solid #d9534f}.masterySkill.priorityStatus .skillStatus{color:#a13734;background:#fff0ef}
.adaptiveResult.amber{border-left:5px solid #e3a51b}.adaptiveResult.red{border-left:5px solid #d9534f}
@media(max-width:760px){.masterySkillGrid{grid-template-columns:1fr}}

.adaptiveTop b{display:flex;align-items:center;gap:6px}

.progressCard{background:white;border:1px solid var(--line);border-radius:14px;padding:20px;margin-bottom:14px;border-top:4px solid #5368e8}
.progressSummary{display:flex;justify-content:space-between;align-items:center;gap:20px}.progressSummary h2{margin:5px 0}.progressSummary p{margin:0;color:var(--muted)}
.progressDonut{--p:0;width:86px;height:86px;border-radius:50%;display:grid;place-items:center;background:conic-gradient(#25a55b calc(var(--p)*1%),#e9edf5 0);position:relative;flex:0 0 86px}
.progressDonut:after{content:"";position:absolute;inset:9px;background:white;border-radius:50%}.progressDonut span{position:relative;z-index:1;font-weight:900;color:var(--navy)}
.statusStrip{display:flex;gap:8px;flex-wrap:wrap;margin:16px 0}.statusStrip span{font-size:11px;font-weight:900;padding:6px 9px;border-radius:999px}
.secureChip{background:#e8f7ee;color:#177743}.developChip{background:#fff4d7;color:#925f00}.priorityChip{background:#fff0ef;color:#a13734}
.nextTask{display:flex;justify-content:space-between;align-items:center;gap:20px;background:#f7f8ff;border-radius:10px;padding:14px}.nextTask h3{margin:4px 0}.nextTask p{margin:0;color:var(--muted);max-width:650px}
.examGate{background:#fff8e6;border:1px solid #ecd58f;border-left:5px solid #e3a51b;border-radius:10px;padding:13px 15px;margin:12px 0}.examGate p{margin-bottom:0}
.examReady{background:#eaf8ef;border:1px solid #bee2ca;border-left:5px solid #25a55b;border-radius:10px;padding:13px 15px;margin:12px 0}.examReady p{margin-bottom:0}
@media(max-width:760px){.progressSummary,.nextTask{align-items:flex-start;flex-direction:column}.nextTask button{width:100%}.progressDonut{align-self:center}}

.specGrid{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-top:14px}.specItem{padding:11px;border-radius:9px;background:#f7f8fd;border-left:4px solid #5368e8}.specItem.linked{border-left-color:#e3a51b;background:#fffaf0}.specItem small{display:block;color:var(--muted);line-height:1.45;margin-top:4px}.specNote{font-size:11px;color:var(--muted)}.calcGraph{width:100%;max-height:300px;background:#fcfdff;border:1px solid #e5e9f3;border-radius:10px;margin:15px 0}.calcGraph .axis{stroke:#26334f;stroke-width:2}.calcGraph .curveLine{fill:none;stroke:#5269df;stroke-width:4}.calcGraph .curveLine.second{stroke:#8b55cf}.calcGraph .bound{stroke:#77829a;stroke-dasharray:5 4}.calcGraph .areaA{fill:#5368e8;fill-opacity:.25}.calcGraph .areaB{fill:#df6f67;fill-opacity:.25}.calcGraph .trapTop{fill:none;stroke:#e09322;stroke-width:3}.calcGraph .trapLines line{stroke:#e09322;stroke-width:2}.visualQ{border-top:4px solid #5368e8}@media(max-width:760px){.specGrid{grid-template-columns:1fr}}

.completionGroup{border-top:4px solid #6a58d6}.completionQ{padding:14px 0;border-top:1px solid #e8ebf3;line-height:1.7}.completionQ:first-of-type{border-top:0}.completionQ details{margin:9px 0 0 22px}.completionQ summary{cursor:pointer;font-weight:800;color:#4b55a8}.calcGraph .curveLine.third{stroke:#2b9d72}

/* V17 student-facing presentation standard */
.mathsTable{border-collapse:collapse;margin:16px auto;width:min(100%,720px);background:white}.mathsTable th,.mathsTable td{border:1px solid #9da6bb;padding:10px 14px;text-align:center}.mathsTable th{background:#eef1fb;font-weight:900}.teacherSolution{line-height:1.65}.teacherSolution p{margin:9px 0}.mathLine{margin:9px 0;text-align:left}.mathLine mjx-container[display="true"]{text-align:left!important;margin:.5em 0!important}.finalAnswer{font-weight:900}.wideTable{overflow-x:auto}

.verticalSolution{margin-top:16px;padding:14px 18px;background:#fbfcff;border-left:4px solid #5368e8;border-radius:8px}.mathLine{display:block;padding:7px 0;min-height:24px}.pointDot{fill:#d24d57}.specGrid{display:grid;grid-template-columns:1fr 1fr;gap:9px;margin-top:14px}.specItem{padding:12px;border-radius:9px;background:#f7f8fd;border-left:4px solid #5368e8}.specItem small{display:block;color:var(--muted);margin-top:5px;line-height:1.5}@media(max-width:760px){.specGrid{grid-template-columns:1fr}}

.teacherVoice,.commonMistakes{margin-top:14px;padding:13px 15px;border-radius:9px;background:#f6f8ff;border-left:4px solid #5368e8}.commonMistakes{background:#fff8ee;border-left-color:#e3a51b}.unitTeach ul{line-height:1.7}.masteryRow{display:grid;grid-template-columns:34px 1fr;gap:8px;padding:13px 0;border-top:1px solid #e8ebf3}.masteryRow:first-of-type{border-top:0}.qnum{width:26px;height:26px;border-radius:50%;display:grid;place-items:center;background:#eef0ff;color:#4555bd;font-weight:900}.masteryRow details{margin-top:7px}.masteryRow summary{cursor:pointer;font-weight:800;color:#4b55a8}.examPart{padding:10px 0;border-top:1px solid #e8ebf3;line-height:1.65}.examPart:first-of-type{border-top:0}.examFull{border-top:4px solid #5368e8}.masteryFull{border-top:4px solid #7b66e8}

.pairedGraphs{display:grid;grid-template-columns:1fr 1fr;gap:14px;margin:14px 0}.pairedGraphs h4{text-align:center;color:var(--navy);margin:4px 0 8px}.calcGraph .derivative{stroke:#8a55d6}.calcGraph .secondDerivative{stroke:#e17a2c}.tangentLine{stroke:#25a55b;stroke-width:3}.normalLine{stroke:#e1782f;stroke-width:3}.sphereCircle{fill:#eef1ff;stroke:#5368e8;stroke-width:3}.radiusLine{stroke:#26334f;stroke-width:2}.rateArrow{fill:none;stroke:#e1782f;stroke-width:3}.graphLab{border-top:4px solid #5368e8}.graphLab:nth-of-type(even){border-top-color:#8a55d6}@media(max-width:800px){.pairedGraphs{grid-template-columns:1fr}}

.figureBlock{margin:16px auto 20px;max-width:650px}.figureCaption{text-align:center;font-size:11px;color:var(--muted);font-style:italic;margin-top:4px}.examDiagram{width:100%;background:#fff;border:1px solid #dfe4ee}.examDiagram .axis{stroke:#222;stroke-width:1.6}.examDiagram .curveLine{fill:none;stroke:#263b7a;stroke-width:3}.examDiagram text{font:14px Arial,sans-serif;fill:#222}.implicitCurve{fill:none;stroke:#263b7a;stroke-width:3;transform:rotate(-15deg);transform-origin:280px 150px}.coneEdge,.coneEllipse{fill:none;stroke:#263b7a;stroke-width:2.5}.dimensionLine{stroke:#555;stroke-width:1.5;stroke-dasharray:5 4}.capacityLine{stroke:#777;stroke-width:2;stroke-dasharray:7 5}.examFull .figureBlock{background:#fff;padding:8px;border-radius:4px}

.v23Hero{border-top:6px solid #233a78}.v23Columns{display:grid;grid-template-columns:1fr 1fr;gap:22px}.v23Columns section{background:#fff;border:1px solid #dde3ef;border-radius:14px;padding:16px}.v23Topic{display:flex;gap:10px;padding:10px 0;border-bottom:1px solid #edf0f6}.v23Topic>span{min-width:42px;height:27px;border-radius:7px;display:grid;place-items:center;font-weight:800;font-size:11px}.v23Topic.as>span{background:#e6f5eb;color:#17713b}.v23Topic.a2>span{background:#eee9ff;color:#6240aa}.v23Topic p{margin:3px 0 0;font-size:13px;color:var(--muted)}.v23Exam{border-left:5px solid #233a78}.examHeader{display:flex;justify-content:space-between;font-size:12px;font-weight:800}.levelBadge{padding:5px 9px;border-radius:999px}.levelBadge.as{background:#e6f5eb;color:#17713b}.levelBadge.a2{background:#eee9ff;color:#6240aa}.examQuestion{font-size:16px;line-height:1.75}@media(max-width:850px){.v23Columns{grid-template-columns:1fr}}

.trigHero{border-top:6px solid #7b4cc2;background:linear-gradient(135deg,#fbf9ff,#f3efff)}.trigBank{border-top:4px solid #7b4cc2}.trigExam{border-left-color:#7b4cc2}

.adaptiveHero{border-top:6px solid #1d7a55;background:linear-gradient(135deg,#f7fffb,#edf9f3)}.adaptiveCard{border-left:5px solid #1d7a55}.adaptiveQuestion{font-size:18px;margin:14px 0}.mathEntry{display:flex;gap:9px}.mathEntry input{flex:1;min-width:0;padding:13px 14px;border:2px solid #cfd7e6;border-radius:10px;font-size:17px}.mathEntry button,.adaptiveFeedback button,.reviewNote button{border:0;border-radius:9px;padding:10px 14px;font-weight:800;cursor:pointer}.checkBtn{background:#233a78;color:#fff}.symbolStrip{display:flex;gap:6px;flex-wrap:wrap;margin-top:8px}.symbolStrip button{border:1px solid #d7ddea;background:#fff;border-radius:7px;padding:6px 10px;cursor:pointer}.adaptiveFeedback{margin-top:12px;padding:0}.adaptiveFeedback.correct,.adaptiveFeedback.wrong{padding:12px;border-radius:9px}.adaptiveFeedback.correct{background:#eaf8ef;color:#176438}.adaptiveFeedback.wrong{background:#fff4e8;color:#8b4d13}.linkBtn{background:transparent!important;color:#4c4fb3;text-decoration:underline;padding:0!important}.reviewNote{margin-top:12px;padding:14px;background:#f5f6ff;border-left:4px solid #6656c9;border-radius:9px}

.v26card{border-top:3px solid #1d7a55}.v26card .examHeader{align-items:center}.v26card .adaptiveQuestion{min-height:38px}

.masteryDashboard{border-top:6px solid #e0a51b}.dashTop{display:flex;justify-content:space-between;gap:15px;align-items:center}.dashTop button{border:1px solid #d5dae5;background:#fff;border-radius:8px;padding:8px 11px;cursor:pointer}.masterySkill{padding:12px 0;border-top:1px solid #e8ebf2}.masterySkill>div:first-child{display:flex;gap:8px;align-items:center}.miniStage{font-size:10px;font-weight:900;padding:4px 7px;border-radius:999px}.miniStage.as{background:#e6f5eb;color:#17713b}.miniStage.a2{background:#eee9ff;color:#6240aa}.masteryMeta{display:flex;gap:15px;flex-wrap:wrap;font-size:11px;color:var(--muted);margin:6px 0}.progressTrack{height:6px;background:#edf0f5;border-radius:99px;overflow:hidden}.progressTrack i{display:block;height:100%;background:#d8a01d;border-radius:99px}.masterySkill.mastered .progressTrack i{background:#2b9860}.masterySkill.mastered b:after{content:" ✓";color:#2b9860}

/* V28 consolidation layout: prevents merged/overlapping text */
#diffLearnV18,#diffPracticeV18,#diffSolutionsV18{min-width:0}
#diffLearnV18 *,#diffPracticeV18 *,#diffSolutionsV18 *{box-sizing:border-box}
.sectioncard{overflow:visible}
.v28Hero{border-top:6px solid #233a78}
.v28Columns{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:18px}
.v28Columns>div{min-width:0}
.v28Topic{display:grid;grid-template-columns:48px minmax(0,1fr);gap:10px;padding:10px 0;border-bottom:1px solid #e8ebf2}
.v28Code{display:flex;align-items:center;justify-content:center;height:28px;border-radius:7px;background:#eef1ff;font-size:10px;font-weight:900}
.v28TopicBody{min-width:0}
.v28TopicBody b,.v28TopicBody p{overflow-wrap:anywhere}
.v28TopicBody p{margin:4px 0 0;line-height:1.5}
.v28CardHeader{display:flex;justify-content:space-between;align-items:center;gap:12px;flex-wrap:wrap;margin-bottom:12px}
.v28Marks{font-size:12px;font-weight:800}
.v28Adaptive,.v28Trig,.v28Exam{min-width:0;overflow:hidden}
.v28MathEntry{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:stretch}
.v28MathEntry input{width:100%;min-width:0}
.symbolStrip{display:flex;gap:6px;flex-wrap:wrap}
.adaptiveFeedback{line-height:1.55}
.reviewNote{overflow-wrap:anywhere}
.v28QuestionRow{display:grid;grid-template-columns:34px minmax(0,1fr);gap:10px;padding:12px 0;border-top:1px solid #e8ebf2}
.v28QuestionRow:first-of-type{border-top:0}
.v28QuestionBody{min-width:0;line-height:1.65}
.v28QuestionBody details{margin-top:8px}
.v28QuestionBody summary{cursor:pointer}
.v28Exam .figureBlock{max-width:700px;margin:16px auto}
.v28Exam .examQuestion{line-height:1.8;overflow-wrap:anywhere}
.v28Vertical{display:flex;flex-direction:column;gap:0}
.v28Vertical .mathLine{display:block;width:100%;padding:8px 0;line-height:1.55;overflow-wrap:anywhere}
mjx-container{max-width:100%}
mjx-container[display="true"]{overflow-x:auto;overflow-y:hidden;padding-bottom:3px}
.calcGraph,.examDiagram{display:block;width:100%;height:auto;max-width:100%}
@media(max-width:900px){
  .v28Columns{grid-template-columns:1fr}
}
@media(max-width:650px){
  .sectioncard{padding:14px}
  .v28MathEntry{grid-template-columns:1fr}
  .v28MathEntry .checkBtn{width:100%;margin-top:8px}
  .v28CardHeader{align-items:flex-start}
  .mathEntry{display:block}
  .mathEntry input{width:100%}
  .symbolStrip button{min-width:44px}
}

.v29Solution{margin-top:20px;border-top:1px solid #dfe4ee;padding-top:14px}
.v29Solution>summary{cursor:pointer;font-weight:800;padding:10px 0}
.v29SolutionBody{background:#f8f9fc;border-radius:12px;padding:16px}
.v29Part{padding:12px 0;border-top:1px solid #e3e7ef}
.v29Part:first-child{border-top:0;padding-top:0}
.v29Part h4{margin:0 0 8px}
.v29Part .mathLine{display:block;padding:5px 0;line-height:1.65;overflow-wrap:anywhere}

.v31Hero{border-top:6px solid #176f9f;background:linear-gradient(135deg,#f7fcff,#edf7fc)}
.v31TopicGrid{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:12px}
.v31Topic{display:grid;grid-template-columns:48px minmax(0,1fr);gap:10px;padding:12px;border:1px solid #e0e6ef;border-radius:12px;min-width:0}
.v31Topic>span{display:flex;align-items:center;justify-content:center;height:29px;border-radius:7px;font-size:10px;font-weight:900}
.v31Topic.as>span{background:#e6f5eb;color:#17713b}.v31Topic.a2>span{background:#e7f2fb;color:#176f9f}
.v31Topic p{margin:4px 0 0;line-height:1.5;color:var(--muted);overflow-wrap:anywhere}
.v31Graph{max-width:720px;margin:14px auto}
.v31Vertical{display:flex;flex-direction:column;gap:0;margin-top:12px}
.v31Vertical>div{display:block;padding:7px 0;line-height:1.65;overflow-wrap:anywhere}
.v31Q{border-left:5px solid #176f9f}.v31Q summary{cursor:pointer;font-weight:800;margin-top:14px}
.v31TableWrap{overflow-x:auto;margin:14px 0}.v31TableWrap table{min-width:520px}
.v31Exam{overflow:hidden}.v31Sol{padding:12px 0;border-top:1px solid #e4e8ef}.v31Sol>div{line-height:1.7;overflow-wrap:anywhere}
@media(max-width:800px){.v31TopicGrid{grid-template-columns:1fr}}

.nmHero{border-top:6px solid #b35b21;background:linear-gradient(135deg,#fffaf5,#fff2e8)}
.nmGrid{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:12px}
.nmTopic{display:grid;grid-template-columns:48px minmax(0,1fr);gap:10px;padding:12px;border:1px solid #e4e7ee;border-radius:12px}
.nmTopic>span{display:flex;align-items:center;justify-content:center;height:29px;border-radius:7px;background:#fff0e4;color:#9a4b18;font-size:10px;font-weight:900}
.nmTopic p{margin:4px 0 0;line-height:1.5;color:var(--muted)}
.nmGraph{max-width:720px;margin:14px auto}.nmQ{border-left:5px solid #b35b21}.nmQ summary{cursor:pointer;font-weight:800;margin-top:14px}
@media(max-width:800px){.nmGrid{grid-template-columns:1fr}}

.nmGraphQ{border-top:4px solid #6d58b8}.nmGraphQ .examDiagram{display:block;max-width:740px;width:100%;height:auto;margin:14px auto;background:#fff;border:1px solid #e0e5ee}
.examDiagram .curveLine.second{stroke:#c05c2e}.identityLine{fill:none;stroke:#555;stroke-width:2}.iterationPath{fill:none;stroke:#d04d50;stroke-width:2.5}.asymptote{stroke:#888;stroke-width:2;stroke-dasharray:6 5}.guideLine{stroke:#999;stroke-dasharray:5 4}

/* V34 permanent mathematical typography lock */
mjx-container{line-height:1.35!important;max-width:100%}
mjx-container[display="true"]{margin:.8em 0!important;overflow-x:auto;overflow-y:visible!important;padding:.12em 0 .18em}
.examQuestion,.adaptiveQuestion,.mathLine,.v31Vertical>div,.teacherVoice,.v28QuestionBody,.nmTopic p{line-height:1.75}
.examQuestion sup,.adaptiveQuestion sup,.mathLine sup,.teacherVoice sup{line-height:0;vertical-align:super;font-size:.72em}
.examQuestion sub,.adaptiveQuestion sub,.mathLine sub,.teacherVoice sub{line-height:0;vertical-align:sub;font-size:.72em}

/* V36 student power-entry control */
.gmngPowerKeyboard{
  display:flex;align-items:center;gap:7px;flex-wrap:wrap;
  margin:0 0 14px;padding:10px 12px;border:1px solid #dbe1eb;
  border-radius:11px;background:#fbfcff;
}
.gmngPowerKeyboard .powerLabel{font-weight:900;color:#263b7a}
.gmngPowerKeyboard button{
  border:1px solid #ccd5e4;background:#fff;border-radius:8px;
  padding:7px 11px;font-weight:900;cursor:pointer;min-width:42px
}
.gmngPowerKeyboard .applyPower{background:#263b7a;color:#fff;border-color:#263b7a}
.gmngPowerKeyboard input{
  width:64px;padding:7px 8px;border:1px solid #ccd5e4;border-radius:8px;font-size:15px
}
.gmngPowerKeyboard .powerHint{font-size:11px;color:var(--muted)}
.gmngPowerKeyboard input.powerError{outline:2px solid #c64646}
@media(max-width:650px){
 .gmngPowerKeyboard{align-items:stretch}
 .gmngPowerKeyboard .powerHint{width:100%;line-height:1.4}
}

.nmChallenge{border-left:5px solid #8a55d6}.nmChallenge summary{cursor:pointer;font-weight:800;margin-top:12px}

.v28Exam .examPart{padding:7px 0;border-top:0}
.v28Exam .v29SolutionBody{margin-top:10px}

/* V42 Numerical adaptive expansion */
#practiceTab .adaptiveCard{border-left:5px solid #1d7a55}
#practiceTab .adaptiveCard .adaptiveQuestion{margin:12px 0;font-size:17px;line-height:1.7}

/* V55 Functions & Graphs */
.fgSvg{display:block;width:100%;max-width:720px;height:auto;margin:16px auto;background:#fff;border:1px solid #dfe5ef;border-radius:10px}
.fgAxis{stroke:#4d5562;stroke-width:1.4}
.fgMain{fill:none;stroke:#263b7a;stroke-width:3}
.fgSecond{fill:none;stroke:#7a4bd8;stroke-width:3}
.fgOriginal{fill:none;stroke:#8b93a1;stroke-width:2;stroke-dasharray:7 5}
.fgGuide,.fgAsym{fill:none;stroke:#777;stroke-width:1.6;stroke-dasharray:7 5}
.fgPoint{fill:#263b7a}

/* V56 horizontal worked-solution convention */
.fgHorizontalSolution{line-height:1.9;overflow-x:auto;padding:10px 0}
.fgHorizontalSolution .solutionStep{display:inline}
.fgHorizontalSolution .solutionStep:not(:last-child)::after{content:"   →   ";font-weight:700;opacity:.55}

/* V60 master-course additions */
.masterHorizontal{line-height:1.9;overflow-x:auto;padding:8px 0}.masterStep{display:inline}.masterStep:not(:last-child)::after{content:"   →   ";font-weight:700;opacity:.5}.teacherInsight{border-left:5px solid #6a5acd;background:rgba(106,90,205,.06)}

/* V61 detailed teaching layer */
.priorCard,.bigIdeaCard,.formulaCard,.whyCard,.workedCard,.warningCard,.checkCard,.teacherInsight{margin-top:14px}
.formulaCard{border-left:5px solid #3559a8}
.whyCard{border-left:5px solid #2d7b61}
.warningCard{border-left:5px solid #b56a24;background:rgba(181,106,36,.06)}
.workedCard{border-left:5px solid #6a5acd}
.checkCard{border-left:5px solid #3478a5}
.workedLabel{font-weight:800;margin-top:12px}

/* V62 deeper learning architecture */
.methodCard{border-left:5px solid #4c6b91}
.independentCard{border-left:5px solid #29805d}
.examinerBridge{border-left:5px solid #a65b25;background:rgba(166,91,37,.06)}
.methodCard li,.teacherInsight li{margin:.45rem 0}

/* V63 radians visual expansion */
.radSvg{display:block;width:100%;max-width:620px;height:auto;margin:14px auto;background:#fff;border:1px solid #dde3ec;border-radius:12px}
.radLine,.radChord,.radAxis{stroke:#414b59;stroke-width:2;fill:none}
.radArc,.radCircle{stroke:#314f8f;stroke-width:3;fill:none}
.radAngle{stroke:#8a5db5;stroke-width:2;fill:none}
.radShade{fill:rgba(70,100,170,.12);stroke:#314f8f;stroke-width:2}
.radGuide{stroke:#777;stroke-width:2;fill:none;stroke-dasharray:6 5}
.radCurve{stroke:#314f8f;stroke-width:3;fill:none}
.radDot{fill:#314f8f}
.radDiagramCard{text-align:left}
.radDiagramCard svg text{font-size:14px;fill:#252b35}

.substantialIntro{border-left:6px solid #344e78}.substantialQ{border-left:5px solid #526f9f}.synopticQ{border-left:5px solid #7b4b91}
.substantialQ .examPart,.synopticQ .examPart{margin:14px 0;line-height:1.75}

/* V68 solution presentation standard: mathematical working is vertical. */
.masterHorizontal{display:block;line-height:1.75;overflow-x:auto;padding:8px 0}
.masterHorizontal .masterStep{display:block;margin:.38rem 0}
.masterHorizontal .masterStep:not(:last-child)::after{content:""}
.masterHorizontal .masterStep br{display:block}
/* V69: next-grade/A* learning architecture */
.nextGradeLayer{border-top:5px solid var(--blue);background:linear-gradient(180deg,#fff,#f8faff)}
.nextGradeLayer .ngLead{max-width:850px;line-height:1.65;color:#46516b}
.ngSteps{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;margin:18px 0}
.ngStep{display:flex;gap:11px;padding:14px;border:1px solid var(--line);border-radius:11px;background:#fff;min-height:108px}
.ngStep>span{flex:0 0 29px;width:29px;height:29px;border-radius:50%;display:grid;place-items:center;background:var(--navy);color:#fff;font-weight:900}
.ngStep b{color:var(--navy)}.ngStep p{margin:7px 0 0;color:#59647b;line-height:1.45;font-size:14px}
.examIntel{margin-top:14px;border-left:5px solid #7a4bd8;background:#f6f1ff;padding:14px 16px;border-radius:8px;line-height:1.55}
.examIntel b{color:#51348d}.examIntel p{margin:6px 0}.ngSource{font-size:12px;color:#6f7890}
@media(max-width:850px){.ngSteps{grid-template-columns:1fr}}
/* V80 Integration release marker: deliberately conspicuous so stale/legacy rendering is immediately obvious. */
.v80Release{margin-top:16px;padding:14px 16px;border:2px solid currentColor;border-radius:12px;font-weight:700;letter-spacing:.01em}

/* V95 safety lock: preserve V88 renderer; force every renderer step container to stack vertically. */
.masterHorizontal,
.masterVertical{display:flex !important;flex-direction:column !important;align-items:stretch !important;gap:.38rem !important;white-space:normal !important;overflow-x:auto}
.masterHorizontal > div,
.masterVertical > div,
.masterHorizontal .masterStep,
.masterVertical .masterStep{display:block !important;width:100% !important;margin:0 !important}
.masterHorizontal .masterStep:not(:last-child)::after,
.masterVertical .masterStep:not(:last-child)::after{content:"" !important}

/* V104 Graphs & Transformations formatting lock */
.benchmarkUnit .practiceq{padding:16px 0;border-bottom:1px solid var(--line)}
.benchmarkUnit .practiceq:last-child{border-bottom:0}
.benchmarkUnit .practiceq p{margin:8px 0;line-height:1.55}
.benchmarkUnit .practiceq svg{display:block;max-width:560px;width:100%;height:auto;margin:14px auto}
.benchmarkUnit .practiceq .empty{max-width:560px;margin:12px auto}
.benchmarkUnit mjx-container{max-width:100%}
@media (max-width:700px){
  .benchmarkUnit .practiceq svg{max-width:100%}
  .benchmarkUnit .practiceq{padding:14px 0}
}

/* V105 Graphs & Transformations typography + graph accuracy presentation */
.graphsV105{font-size:0.94rem}
.graphsV105 h2{font-size:1.34rem;line-height:1.25;margin:0 0 10px}
.graphsV105 h3{font-size:1.02rem;line-height:1.3;margin-bottom:8px}
.graphsV105 p{font-size:0.94rem;line-height:1.5}
.graphsV105 .practiceq p{font-size:0.94rem;line-height:1.5}
.graphsV105 svg text{font-family:Arial,Helvetica,sans-serif}
.graphsV105 svg{max-width:520px!important;height:auto!important}
.graphsV105 mjx-container{font-size:100%!important}
@media (max-width:700px){
  .graphsV105{font-size:0.92rem}
  .graphsV105 h2{font-size:1.2rem}
  .graphsV105 h3{font-size:1rem}
  .graphsV105 p,.graphsV105 .practiceq p{font-size:0.92rem}
}

/* V106 Graphs & Transformations compact typography — authoritative override */
.graphsV105{font-size:13px!important}
.graphsV105 h2{font-size:18px!important;line-height:1.25!important;margin-bottom:8px!important}
.graphsV105 h3{font-size:15px!important;line-height:1.3!important;margin-bottom:7px!important}
.graphsV105 p,
.graphsV105 .practiceq p,
.graphsV105 li{font-size:13px!important;line-height:1.45!important}
.graphsV105 strong{font-size:inherit!important}
.graphsV105 mjx-container{font-size:88%!important}
.graphsV105 .badge{font-size:11px!important}
.graphsV105 svg text{font-size:10px}
@media (max-width:700px){
  .graphsV105{font-size:12.5px!important}
  .graphsV105 h2{font-size:17px!important}
  .graphsV105 h3{font-size:14px!important}
  .graphsV105 p,.graphsV105 .practiceq p,.graphsV105 li{font-size:12.5px!important}
}

/* V107 — PRACTICE typography hard lock.
   This intentionally overrides the site's large .practiceq defaults. */
.graphsV105 .practiceq,
.graphsV105 .practiceq p,
.graphsV105 .practiceq span,
.graphsV105 .practiceq div,
.graphsV105 .practiceq strong,
.graphsV105 .practiceq em,
.graphsV105 .practiceq li{
  font-size:11.5px!important;
  line-height:1.38!important;
}
.graphsV105 .practiceq{padding:9px 0!important}
.graphsV105 .practiceq p{margin:4px 0!important}
.graphsV105 .practiceq mjx-container{
  font-size:76%!important;
  margin-top:3px!important;
  margin-bottom:3px!important;
}
.graphsV105 .practiceq svg{
  max-width:430px!important;
  margin:8px auto!important;
}
.graphsV105 .practiceq svg text{
  font-size:9px!important;
}
.graphsV105 .learnCard{
  font-size:12px!important;
}
.graphsV105 .learnCard h3{
  font-size:14px!important;
}
@media (max-width:700px){
 .graphsV105 .practiceq,
 .graphsV105 .practiceq p,
 .graphsV105 .practiceq span,
 .graphsV105 .practiceq div,
 .graphsV105 .practiceq strong,
 .graphsV105 .practiceq em,
 .graphsV105 .practiceq li{font-size:11px!important}
 .graphsV105 .practiceq svg{max-width:390px!important}
}

/* V109 PRACTICE TYPOGRAPHY RESET — dedicated root, independent of legacy .practiceq rules */
.graphsPracticeV109{
  font-size:10px!important;
  line-height:1.32!important;
}
.graphsPracticeV109 *:not(svg):not(path):not(line):not(circle):not(rect):not(defs):not(clipPath){
  font-size:1em!important;
  line-height:inherit!important;
}
.graphsPracticeV109 h2{
  font-size:1.45em!important;
  line-height:1.22!important;
  margin:0 0 7px!important;
}
.graphsPracticeV109 h3{
  font-size:1.18em!important;
  line-height:1.25!important;
  margin:0 0 6px!important;
}
.graphsPracticeV109 .learnCard{
  font-size:1em!important;
  padding:10px!important;
  margin:9px 0!important;
}
.graphsPracticeV109 .practiceq{
  font-size:1em!important;
  line-height:1.32!important;
  padding:7px 0!important;
}
.graphsPracticeV109 .practiceq p{
  font-size:1em!important;
  line-height:1.32!important;
  margin:3px 0!important;
}
.graphsPracticeV109 mjx-container,
.graphsPracticeV109 mjx-container *{
  font-size:1em!important;
}
.graphsPracticeV109 svg{
  max-width:390px!important;
  height:auto!important;
  margin:7px auto!important;
}
.graphsPracticeV109 svg text{
  font-size:9px!important;
}
.graphsPracticeV109 .empty{
  font-size:1em!important;
  padding:18px 10px!important;
}
@media (max-width:700px){
  .graphsPracticeV109{font-size:9.5px!important}
  .graphsPracticeV109 svg{max-width:350px!important}
}

/* V110 — balanced Practice typography based on screenshot.
   Normal text restored; displayed maths reduced strongly. */
.graphsPracticeV110{
  font-size:14px!important;
  line-height:1.45!important;
}
.graphsPracticeV110 h2{
  font-size:15px!important;
  line-height:1.3!important;
  margin:0 0 8px!important;
}
.graphsPracticeV110 h3{
  font-size:16px!important;
  line-height:1.3!important;
  margin:0 0 8px!important;
}
.graphsPracticeV110 .learnCard{
  font-size:14px!important;
  padding:12px!important;
  margin:10px 0!important;
}
.graphsPracticeV110 .practiceq,
.graphsPracticeV110 .practiceq p,
.graphsPracticeV110 .practiceq span,
.graphsPracticeV110 .practiceq div,
.graphsPracticeV110 .practiceq strong,
.graphsPracticeV110 .practiceq em,
.graphsPracticeV110 .practiceq li{
  font-size:14px!important;
  line-height:1.45!important;
}
.graphsPracticeV110 .practiceq{
  padding:9px 0!important;
}
.graphsPracticeV110 .practiceq p{
  margin:5px 0!important;
}

/* Inline maths should match question text closely. */
.graphsPracticeV110 mjx-container:not([display="true"]){
  font-size:100%!important;
}

/* Display maths was the real oversized element in V109. */
.graphsPracticeV110 mjx-container[display="true"]{
  font-size:112%!important;
  margin:8px 0!important;
  text-align:left!important;
}
.graphsPracticeV110 mjx-container[display="true"] mjx-math{
  font-size:1em!important;
}

/* Keep graphs compact but fully legible. */
.graphsPracticeV110 svg{
  max-width:430px!important;
  height:auto!important;
  margin:10px auto!important;
}
.graphsPracticeV110 svg text{
  font-size:10px!important;
}

/* Do not let legacy descendant-reset rules from V109 shrink this section. */
.graphsPracticeV110 *:not(svg):not(path):not(line):not(circle):not(rect):not(defs):not(clipPath):not(mjx-container):not(mjx-math){
  line-height:inherit!important;
}

@media (max-width:700px){
  .graphsPracticeV110{font-size:13px!important}
  .graphsPracticeV110 .practiceq,
  .graphsPracticeV110 .practiceq p,
  .graphsPracticeV110 .practiceq span,
  .graphsPracticeV110 .practiceq div,
  .graphsPracticeV110 .practiceq strong,
  .graphsPracticeV110 .practiceq em,
  .graphsPracticeV110 .practiceq li{font-size:13px!important}
  .graphsPracticeV110 h3{font-size:15px!important}
  .graphsPracticeV110 mjx-container[display="true"]{font-size:108%!important}
  .graphsPracticeV110 svg{max-width:390px!important}
}

/* V111 ROOT-CAUSE FIX:
   Previous generic `.practiceq svg` rules also matched MathJax's internal SVG,
   stretching inline equations to graph width. Coordinate graphs are now scoped. */

.graphsPracticeV111{
  font-size:14px!important;
  line-height:1.45!important;
}
.graphsPracticeV111 h2{font-size:18px!important;line-height:1.3!important}
.graphsPracticeV111 h3{font-size:16px!important;line-height:1.3!important}
.graphsPracticeV111 .practiceq,
.graphsPracticeV111 .practiceq p,
.graphsPracticeV111 .practiceq span,
.graphsPracticeV111 .practiceq div,
.graphsPracticeV111 .practiceq strong,
.graphsPracticeV111 .practiceq em,
.graphsPracticeV111 .practiceq li{
  font-size:14px!important;
  line-height:1.45!important;
}
.graphsPracticeV111 .practiceq p{margin:6px 0!important}

/* Only actual coordinate graphs get graph sizing. */
.graphsPracticeV111 svg.coordinateGraphV111,
.graphsPracticeV111 .practiceq svg.coordinateGraphV111{
  display:block!important;
  width:100%!important;
  max-width:430px!important;
  height:auto!important;
  margin:10px auto!important;
}
.graphsPracticeV111 svg.coordinateGraphV111 text{font-size:10px!important}

/* Preserve MathJax's intrinsic inline SVG size. */
.graphsPracticeV111 mjx-container{
  font-size:100%!important;
  max-width:100%!important;
}
.graphsPracticeV111 mjx-container:not([display="true"]){
  display:inline!important;
  margin:0 .05em!important;
}
.graphsPracticeV111 mjx-container[display="true"]{
  font-size:100%!important;
  margin:7px 0!important;
  text-align:left!important;
}
.graphsPracticeV111 mjx-container svg,
.graphsPracticeV111 .practiceq mjx-container svg{
  display:inline!important;
  width:auto!important;
  max-width:none!important;
  height:auto!important;
  margin:0!important;
}

@media (max-width:700px){
  .graphsPracticeV111{font-size:13px!important}
  .graphsPracticeV111 .practiceq,
  .graphsPracticeV111 .practiceq p,
  .graphsPracticeV111 .practiceq span,
  .graphsPracticeV111 .practiceq div,
  .graphsPracticeV111 .practiceq strong,
  .graphsPracticeV111 .practiceq em,
  .graphsPracticeV111 .practiceq li{font-size:13px!important}
  .graphsPracticeV111 h2{font-size:17px!important}
  .graphsPracticeV111 h3{font-size:15px!important}
  .graphsPracticeV111 svg.coordinateGraphV111{max-width:390px!important}
}

/* V112 — readability rebalance after V111 root-cause fix.
   Keep MathJax SVG protection and exact graphs; enlarge only visible text. */
.graphsPracticeV112{
  font-size:15.5px!important;
  line-height:1.5!important;
}
.graphsPracticeV112 h2{
  font-size:20px!important;
  line-height:1.3!important;
  margin-bottom:8px!important;
}
.graphsPracticeV112 h3{
  font-size:17px!important;
  line-height:1.35!important;
}
.graphsPracticeV112 .practiceq,
.graphsPracticeV112 .practiceq p,
.graphsPracticeV112 .practiceq span,
.graphsPracticeV112 .practiceq div,
.graphsPracticeV112 .practiceq strong,
.graphsPracticeV112 .practiceq em,
.graphsPracticeV112 .practiceq li{
  font-size:15.5px!important;
  line-height:1.5!important;
}
.graphsPracticeV112 .practiceq p{
  margin:7px 0!important;
}

/* Actual coordinate graphs only. */
.graphsPracticeV112 svg.coordinateGraphV112,
.graphsPracticeV112 .practiceq svg.coordinateGraphV112{
  display:block!important;
  width:100%!important;
  max-width:430px!important;
  height:auto!important;
  margin:12px auto!important;
}
.graphsPracticeV112 svg.coordinateGraphV112 text{
  font-size:10.5px!important;
}

/* Keep MathJax correctly sized — do not let generic SVG graph rules catch it. */
.graphsPracticeV112 mjx-container{
  font-size:100%!important;
  max-width:100%!important;
}
.graphsPracticeV112 mjx-container:not([display="true"]){
  display:inline!important;
  margin:0 .05em!important;
}
.graphsPracticeV112 mjx-container[display="true"]{
  font-size:100%!important;
  margin:8px 0!important;
  text-align:left!important;
}
.graphsPracticeV112 mjx-container svg,
.graphsPracticeV112 .practiceq mjx-container svg{
  display:inline!important;
  width:auto!important;
  max-width:none!important;
  height:auto!important;
  margin:0!important;
}

@media (max-width:700px){
  .graphsPracticeV112{font-size:14.5px!important}
  .graphsPracticeV112 .practiceq,
  .graphsPracticeV112 .practiceq p,
  .graphsPracticeV112 .practiceq span,
  .graphsPracticeV112 .practiceq div,
  .graphsPracticeV112 .practiceq strong,
  .graphsPracticeV112 .practiceq em,
  .graphsPracticeV112 .practiceq li{font-size:14.5px!important}
  .graphsPracticeV112 h2{font-size:18px!important}
  .graphsPracticeV112 h3{font-size:16px!important}
  .graphsPracticeV112 svg.coordinateGraphV112{max-width:390px!important}
}

/* V113 Straight Line Graphs */
.straightLinesV113{font-size:15.5px;line-height:1.5}
.straightLinesV113 h2{font-size:20px;line-height:1.3}
.straightLinesV113 h3{font-size:17px;line-height:1.35}
.straightLinesV113 .verticalWorkingV113{margin:9px 0 12px 18px}
.straightLinesV113 .verticalWorkingV113>div{display:block;margin:4px 0;min-height:1.4em}
.straightPracticeV113 .practiceq,.straightPracticeV113 .practiceq p{font-size:15.5px!important;line-height:1.5!important}
.straightLinesV113 svg.straightGraphV113{display:block!important;width:100%!important;max-width:470px!important;height:auto!important;margin:12px auto!important}
.straightLinesV113 svg.straightGraphV113 text{font-size:10px!important}
.straightLinesV113 mjx-container{font-size:100%!important;max-width:100%!important}
.straightLinesV113 mjx-container:not([display="true"]){display:inline!important;margin:0 .05em!important}
.straightLinesV113 mjx-container svg,.straightLinesV113 .practiceq mjx-container svg{display:inline!important;width:auto!important;max-width:none!important;height:auto!important;margin:0!important}
@media(max-width:700px){.straightLinesV113,.straightPracticeV113 .practiceq,.straightPracticeV113 .practiceq p{font-size:14.5px!important}.straightLinesV113 h2{font-size:18px}.straightLinesV113 h3{font-size:16px}.straightLinesV113 svg.straightGraphV113{max-width:390px!important}}

/* V114 detailed vertical-solution formatting */
.straightLinesV114{font-size:15.5px;line-height:1.5}
.straightLinesV114 h2{font-size:20px;line-height:1.3}
.straightLinesV114 h3{font-size:17px;line-height:1.35}
.straightLinesV114 .verticalWorkingV114{margin:10px 0 14px 20px}
.straightLinesV114 .verticalWorkingV114>div{
  display:block!important;
  margin:5px 0!important;
  min-height:1.5em;
  font-size:1em!important;
}
.straightLinesV114 .learnCard p{margin:8px 0}
.straightPracticeV114 .practiceq,
.straightPracticeV114 .practiceq p{font-size:15.5px!important;line-height:1.5!important}
.straightLinesV114 svg.straightGraphV114{display:block!important;width:100%!important;max-width:470px!important;height:auto!important;margin:12px auto!important}
.straightLinesV114 svg.straightGraphV114 text{font-size:10px!important}
.straightLinesV114 mjx-container{font-size:100%!important;max-width:100%!important}
.straightLinesV114 mjx-container:not([display="true"]){display:inline!important;margin:0 .05em!important}
.straightLinesV114 mjx-container svg,
.straightLinesV114 .practiceq mjx-container svg{display:inline!important;width:auto!important;max-width:none!important;height:auto!important;margin:0!important}
@media(max-width:700px){
  .straightLinesV114,.straightPracticeV114 .practiceq,.straightPracticeV114 .practiceq p{font-size:14.5px!important}
  .straightLinesV114 h2{font-size:18px}
  .straightLinesV114 h3{font-size:16px}
  .straightLinesV114 svg.straightGraphV114{max-width:390px!important}
}

/* V115 Straight Line benchmark lock */
.straightLinesV115{font-size:15.5px;line-height:1.5}
.straightLinesV115 h2{font-size:20px;line-height:1.3}
.straightLinesV115 h3{font-size:17px;line-height:1.35}
.straightLinesV115 .verticalWorkingV115{margin:10px 0 14px 20px}
.straightLinesV115 .verticalWorkingV115>div{display:block!important;margin:5px 0!important;min-height:1.5em;font-size:1em!important}
.straightPracticeV115 .practiceq,.straightPracticeV115 .practiceq p{font-size:15.5px!important;line-height:1.5!important}
.straightLinesV115 svg.straightGraphV115{display:block!important;width:100%!important;max-width:470px!important;height:auto!important;margin:12px auto!important}
.straightLinesV115 svg.straightGraphV115 text{font-size:10px!important}
.straightLinesV115 mjx-container{font-size:100%!important;max-width:100%!important}
.straightLinesV115 mjx-container:not([display="true"]){display:inline!important;margin:0 .05em!important}
.straightLinesV115 mjx-container svg,.straightLinesV115 .practiceq mjx-container svg{display:inline!important;width:auto!important;max-width:none!important;height:auto!important;margin:0!important}
@media(max-width:700px){.straightLinesV115,.straightPracticeV115 .practiceq,.straightPracticeV115 .practiceq p{font-size:14.5px!important}.straightLinesV115 h2{font-size:18px}.straightLinesV115 h3{font-size:16px}.straightLinesV115 svg.straightGraphV115{max-width:390px!important}}

/* V116 maximum-detail straight-line solution formatting */
.straightLinesV116{font-size:15.5px;line-height:1.55}
.straightLinesV116 h2{font-size:20px;line-height:1.3}
.straightLinesV116 h3{font-size:17px;line-height:1.35}
.straightLinesV116 .verticalWorkingV116{margin:10px 0 16px 22px}
.straightLinesV116 .verticalWorkingV116>div{
  display:block!important;
  margin:6px 0!important;
  min-height:1.55em;
  font-size:1em!important;
}
.straightLinesV116 .learnCard p{margin:9px 0}
.straightPracticeV116 .practiceq,
.straightPracticeV116 .practiceq p{font-size:15.5px!important;line-height:1.5!important}
.straightLinesV116 svg.straightGraphV116{
  display:block!important;width:100%!important;max-width:470px!important;
  height:auto!important;margin:12px auto!important
}
.straightLinesV116 svg.straightGraphV116 text{font-size:10px!important}
.straightLinesV116 mjx-container{font-size:100%!important;max-width:100%!important}
.straightLinesV116 mjx-container:not([display="true"]){display:inline!important;margin:0 .05em!important}
.straightLinesV116 mjx-container svg,
.straightLinesV116 .practiceq mjx-container svg{
  display:inline!important;width:auto!important;max-width:none!important;
  height:auto!important;margin:0!important
}
@media(max-width:700px){
  .straightLinesV116,.straightPracticeV116 .practiceq,.straightPracticeV116 .practiceq p{font-size:14.5px!important}
  .straightLinesV116 h2{font-size:18px}
  .straightLinesV116 h3{font-size:16px}
  .straightLinesV116 svg.straightGraphV116{max-width:390px!important}
}

/* V117 TRUE VERTICAL WORKING — hard lock */
.straightLinesV117 .verticalWorkingV117{
  display:block!important;
  width:100%!important;
  clear:both!important;
  margin:12px 0 18px 18px!important;
  padding:0!important;
}
.straightLinesV117 .verticalWorkingV117 .verticalMathStepV117{
  display:block!important;
  position:relative!important;
  width:100%!important;
  max-width:100%!important;
  float:none!important;
  clear:both!important;
  flex:none!important;
  grid-column:1/-1!important;
  margin:0 0 8px 0!important;
  padding:0!important;
  min-height:1.8em!important;
  text-align:left!important;
}
.straightLinesV117 .verticalWorkingV117 .verticalMathStepV117 mjx-container[display="true"]{
  display:block!important;
  width:100%!important;
  max-width:100%!important;
  margin:0!important;
  padding:0!important;
  text-align:left!important;
}
.straightLinesV117 .verticalWorkingV117 .verticalMathStepV117 mjx-container[display="true"] > svg{
  display:inline-block!important;
  width:auto!important;
  max-width:100%!important;
  height:auto!important;
  margin:0!important;
  vertical-align:middle!important;
}
.straightLinesV117{font-size:15.5px;line-height:1.55}
.straightLinesV117 h2{font-size:20px;line-height:1.3}
.straightLinesV117 h3{font-size:17px;line-height:1.35}
.straightPracticeV117 .practiceq,
.straightPracticeV117 .practiceq p{font-size:15.5px!important;line-height:1.5!important}
.straightLinesV117 svg.straightGraphV117{
  display:block!important;width:100%!important;max-width:470px!important;
  height:auto!important;margin:12px auto!important
}
.straightLinesV117 svg.straightGraphV117 text{font-size:10px!important}
/* MathJax graph-protection remains, but display maths gets its own rule above */
.straightLinesV117 mjx-container:not([display="true"]){
  display:inline!important;
  margin:0 .05em!important;
}
.straightLinesV117 mjx-container:not([display="true"]) svg{
  display:inline!important;
  width:auto!important;
  max-width:none!important;
  height:auto!important;
  margin:0!important;
}
@media(max-width:700px){
  .straightLinesV117,.straightPracticeV117 .practiceq,.straightPracticeV117 .practiceq p{font-size:14.5px!important}
  .straightLinesV117 h2{font-size:18px}
  .straightLinesV117 h3{font-size:16px}
  .straightLinesV117 svg.straightGraphV117{max-width:390px!important}
  .straightLinesV117 .verticalWorkingV117{margin-left:8px!important}
}

/* V118 Circles benchmark */
.circlesV118{font-size:15.5px;line-height:1.55}
.circlesV118 h2{font-size:20px;line-height:1.3}
.circlesV118 h3{font-size:17px;line-height:1.35}
.circlesV118 .verticalWorkingV118{display:block!important;width:100%!important;clear:both!important;margin:12px 0 18px 18px!important}
.circlesV118 .verticalMathStepV118{display:block!important;width:100%!important;float:none!important;clear:both!important;flex:none!important;grid-column:1/-1!important;margin:0 0 8px!important;min-height:1.8em!important;text-align:left!important}
.circlesV118 .verticalMathStepV118 mjx-container[display="true"]{display:block!important;width:100%!important;margin:0!important;text-align:left!important}
.circlesV118 .verticalMathStepV118 mjx-container[display="true"]>svg{display:inline-block!important;width:auto!important;max-width:100%!important;height:auto!important;margin:0!important}
.circlesPracticeV118 .practiceq,.circlesPracticeV118 .practiceq p{font-size:15.5px!important;line-height:1.5!important}
.circlesV118 svg.circleGraphV118{display:block!important;width:100%!important;max-width:500px!important;height:auto!important;margin:14px auto!important}
.circlesV118 svg.circleGraphV118 text{font-size:10px!important}
.circlesV118 mjx-container:not([display="true"]){display:inline!important;margin:0 .05em!important}
.circlesV118 mjx-container:not([display="true"]) svg{display:inline!important;width:auto!important;max-width:none!important;height:auto!important;margin:0!important}
@media(max-width:700px){.circlesV118,.circlesPracticeV118 .practiceq,.circlesPracticeV118 .practiceq p{font-size:14.5px!important}.circlesV118 h2{font-size:18px}.circlesV118 h3{font-size:16px}.circlesV118 svg.circleGraphV118{max-width:390px!important}.circlesV118 .verticalWorkingV118{margin-left:8px!important}}

/* V119 STRICT VERTICAL SOLUTIONS */
.circlesV119 .verticalWorkingV119{
  display:block!important;
  width:100%!important;
  margin:12px 0 18px 16px!important;
  padding:0!important;
}
.circlesV119 .verticalMathRowV119{
  display:block!important;
  width:100%!important;
  clear:both!important;
  float:none!important;
  break-inside:avoid!important;
  margin:0!important;
  padding:0!important;
}
.circlesV119 .verticalMathStepV119{
  display:block!important;
  width:100%!important;
  clear:both!important;
  float:none!important;
  flex:none!important;
  grid-column:1/-1!important;
  margin:0 0 7px 0!important;
  padding:0!important;
  text-align:left!important;
  white-space:normal!important;
}
.circlesV119 .verticalMathStepV119 mjx-container[display="true"]{
  display:block!important;
  width:100%!important;
  clear:both!important;
  float:none!important;
  margin:0!important;
  padding:0!important;
  text-align:left!important;
}
.circlesV119 .verticalMathStepV119 mjx-container[display="true"] svg{
  display:inline-block!important;
  width:auto!important;
  max-width:100%!important;
  height:auto!important;
  margin:0!important;
}

/* V120 true vertical solution lock: one mathematical step per table row */
.circlesV120 table.verticalWorkingV120{
  display:table!important;
  width:auto!important;
  max-width:100%!important;
  border-collapse:separate!important;
  border-spacing:0 8px!important;
  margin:12px 0 18px 18px!important;
  padding:0!important;
  table-layout:auto!important;
}
.circlesV120 table.verticalWorkingV120 tbody{display:table-row-group!important;}
.circlesV120 table.verticalWorkingV120 tr.verticalMathRowV120{
  display:table-row!important;
}
.circlesV120 table.verticalWorkingV120 td.verticalMathStepV120{
  display:table-cell!important;
  width:100%!important;
  padding:0!important;
  margin:0!important;
  text-align:left!important;
  vertical-align:top!important;
  white-space:normal!important;
  float:none!important;
}
.circlesV120 table.verticalWorkingV120 td.verticalMathStepV120 mjx-container{
  display:inline-block!important;
  width:auto!important;
  max-width:100%!important;
  margin:0!important;
  text-align:left!important;
}
.circlesV120 table.verticalWorkingV120 td.verticalMathStepV120 mjx-container svg{
  display:inline-block!important;
  width:auto!important;
  max-width:100%!important;
  height:auto!important;
  margin:0!important;
}
@media(max-width:700px){
  .circlesV120 table.verticalWorkingV120{margin-left:8px!important;}
}

/* V121 circle diagram enrichment */
.circlesV121 .circleDiagramGridV121{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px;margin:16px 0}
.circlesV121 .circleDiagramGridV121>div{border:1px solid #d9d9d9;border-radius:10px;padding:12px;background:#fff}
.circlesV121 .circleDiagramGridV121 h4{margin:0 0 8px;font-size:16px}
.circlesV121 svg.circleGeometryV121{display:block!important;width:100%!important;max-width:360px!important;height:auto!important;margin:8px auto!important}
@media(max-width:700px){.circlesV121 .circleDiagramGridV121{grid-template-columns:1fr}}

/* V122 Circles benchmark: true vertical rows + A-level visual bridge */
.circlesV121 table.verticalWorkingV121{display:table!important;width:auto!important;max-width:100%!important;border-collapse:separate!important;border-spacing:0 8px!important;margin:12px 0 18px 18px!important;table-layout:auto!important}
.circlesV121 table.verticalWorkingV121 tbody{display:table-row-group!important}
.circlesV121 table.verticalWorkingV121 tr.verticalMathRowV121{display:table-row!important}
.circlesV121 table.verticalWorkingV121 td.verticalMathStepV121{display:table-cell!important;width:100%!important;padding:0!important;text-align:left!important;vertical-align:top!important;float:none!important}
.circlesV121 table.verticalWorkingV121 td.verticalMathStepV121 mjx-container{display:inline-block!important;width:auto!important;max-width:100%!important;margin:0!important;text-align:left!important}
.circlesV121 table.verticalWorkingV121 td.verticalMathStepV121 mjx-container svg{display:inline-block!important;width:auto!important;max-width:100%!important;height:auto!important;margin:0!important}
.circlesV121 svg.circleGraphV121{display:block!important;width:100%!important;max-width:500px!important;height:auto!important;margin:14px auto!important}
.circlesV121 svg.circleGraphV121 text{font-size:10px!important}
.circlesV121 .translatedGridV122{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin:14px 0}
.circlesV121 .translatedGridV122 svg{max-width:360px!important}
.circlesV121 .transitionV122{border-left:5px solid currentColor}
.circlesV121 .examTipV122{font-weight:500;margin-top:12px}
@media(max-width:850px){.circlesV121 .translatedGridV122{grid-template-columns:1fr}.circlesV121 table.verticalWorkingV121{margin-left:8px!important}}

/* V123 Circles visual + teaching depth */
.circlesV121 .teachingThreeV123{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin:16px 0}
.circlesV121 .teachingThreeV123>div{border:1px solid #d7dce2;border-radius:10px;padding:14px;background:#fff}
.circlesV121 .teachingThreeV123 p{margin:6px 0 0}
.circlesV121 .commonErrorV123{border-left:4px solid #555;padding:10px 12px;background:#f7f7f7;margin:14px 0}
.circlesV121 .intersectionTriptychV123{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin:16px 0}
.circlesV121 .intersectionTriptychV123>div{border:1px solid #ddd;border-radius:10px;padding:10px;text-align:center;background:#fff}
.circlesV121 .intersectionTriptychV123 svg.circleGraphV121{max-width:300px!important;margin:8px auto!important}
.circlesV121 .solutionTeachingBoxV123{border:1px solid #d9dfe6;border-radius:10px;padding:12px 14px;margin:8px 0 16px;background:#fafbfc}
.circlesV121 .solutionTeachingBoxV123 p{margin:5px 0!important}
.circlesV121 svg.circleGraphV121,.circlesV121 svg.circleGeometryV121{visibility:visible!important;opacity:1!important;min-height:220px!important}
@media(max-width:850px){.circlesV121 .teachingThreeV123,.circlesV121 .intersectionTriptychV123{grid-template-columns:1fr}}

/* V180 Straight Line solution method boxes */
.straightLinesV117 .solutionMethod{background:rgba(88,86,214,.08);border-left:4px solid currentColor;padding:10px 12px;margin:10px 0 14px;border-radius:6px}
.straightLinesV117 .solutionMethod strong{font-weight:800}
/* V184 AS mixed practice papers */
.paperHero{padding:18px 0 8px}.paperGrid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px;margin:20px 0 28px}.paperCard{border:1px solid var(--line);border-radius:15px;background:#fff;padding:22px;box-shadow:0 6px 20px rgba(25,42,85,.06)}.paperCard h2{color:var(--navy);margin:8px 0}.paperNo{font-size:11px;font-weight:900;color:var(--blue);letter-spacing:.08em}.paperMeta{color:var(--muted);font-size:14px}.paperActions{display:flex;gap:8px;flex-wrap:wrap;margin-top:15px}.paperLink{display:inline-block;text-decoration:none;background:#f3f5fb;color:var(--navy);border:1px solid var(--line)}.examPaperQ{background:#fff;border:1px solid var(--line);border-radius:14px;padding:20px;margin:16px 0}.examQHead{display:flex;justify-content:space-between;gap:15px;color:var(--navy);font-weight:900;border-bottom:1px solid #edf0f6;padding-bottom:10px}.examQText{font-size:18px;line-height:1.65;padding:17px 0}.answerLabel{display:block;font-size:12px;font-weight:900;color:var(--muted);margin-bottom:6px}.paperAnswer{width:100%;border:1px solid var(--line);border-radius:9px;padding:12px;font:inherit;resize:vertical}.revealBtn{margin-top:10px;background:#eef1ff;color:var(--blue)}.paperSolution{margin-top:14px;background:#f7fbf8;border:1px solid #d8eadf;border-radius:11px;padding:13px}.paperSolStep{display:grid;grid-template-columns:32px 1fr;gap:10px;align-items:start;padding:9px 0;border-bottom:1px solid #e4efe8}.paperSolStep:last-child{border:0}.paperSolStep>span{width:28px;height:28px;border-radius:50%;display:grid;place-items:center;background:var(--navy);color:#fff;font-weight:900}.paperSolStep>div{font-size:1.08rem;line-height:1.65}.selfMark{margin-top:12px;font-weight:800}.selfMark input{width:62px;padding:7px;border:1px solid var(--line);border-radius:7px}.scoreBar{position:sticky;top:0;z-index:5;background:var(--navy);color:white;padding:12px 16px;border-radius:10px;margin:14px 0}.paperSummary{background:#fff;border:1px solid var(--line);border-radius:14px;padding:20px;margin:24px 0}.topicScoreGrid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.topicScoreGrid>div{display:flex;justify-content:space-between;background:#f7f8fc;padding:10px;border-radius:8px}@media(max-width:760px){.paperGrid,.topicScoreGrid{grid-template-columns:1fr}.examQText{font-size:16px}}

/* V185 AS mixed-paper interactive exam tools */
.paperTools{margin:22px 0 28px;border:1px solid #d8dee9;border-radius:18px;background:#fff;box-shadow:0 10px 28px rgba(16,24,40,.07);overflow:hidden}.paperToolsHead{padding:20px 22px 14px;display:flex;justify-content:space-between;gap:18px;align-items:flex-end;border-bottom:1px solid #eaecf0}.paperToolsHead h2{margin:2px 0 4px}.paperToolsHead p{margin:0;color:#667085}.paperToolsKicker{font-size:.76rem;font-weight:800;letter-spacing:.08em;color:#475467}.paperToolTabs{display:flex;gap:8px;flex-wrap:wrap}.toolTab{border:1px solid #d0d5dd;background:#f9fafb;border-radius:999px;padding:9px 13px;font-weight:700;cursor:pointer}.toolTab.active{background:#101828;color:#fff;border-color:#101828}.paperToolBody{padding:20px 22px}.toolPane{min-height:150px}.timerFace{font-size:3rem;font-variant-numeric:tabular-nums;font-weight:800;letter-spacing:.04em;margin:8px 0 16px}.toolButtons{display:flex;gap:9px;flex-wrap:wrap;margin-top:12px}.toolHint{color:#667085;margin:12px 0 0}.calcShell{max-width:460px}.calcDisplay{min-height:64px;border:1px solid #d0d5dd;border-radius:12px;background:#f8fafc;padding:15px;font-size:1.55rem;text-align:right;overflow-wrap:anywhere}.calcGrid{display:grid;grid-template-columns:repeat(6,1fr);gap:7px;margin-top:9px}.calcGrid button,.mathPadButtons button{border:1px solid #d0d5dd;background:#fff;border-radius:9px;padding:11px 8px;font-weight:700;cursor:pointer}.calcGrid button:hover,.mathPadButtons button:hover{background:#f2f4f7}.mathPadButtons{display:flex;gap:7px;flex-wrap:wrap;margin-bottom:12px}.mathPadPreview{border:1px solid #eaecf0;border-radius:12px;background:#f9fafb;padding:12px 14px;margin-top:10px;min-height:64px}.mathPadPreview strong{display:block;font-size:.82rem;color:#667085;margin-bottom:6px}.graphToolWrap{width:100%;overflow:auto}.graphToolWrap canvas{width:min(100%,760px);height:auto;border:1px solid #d0d5dd;border-radius:12px;background:#fff;touch-action:none;display:block}.paperAnswer:focus{outline:3px solid rgba(17,24,39,.12);border-color:#475467}@media(max-width:760px){.paperToolsHead{display:block}.paperToolTabs{margin-top:14px}.calcGrid{grid-template-columns:repeat(5,1fr)}.timerFace{font-size:2.25rem}}
