.graph-renderer{margin:0 0 1.2rem;padding:.85rem;border:1px solid #bdd2c7;border-radius:8px;background:#fbfdfc}.graph-renderer-header{display:flex;align-items:baseline;justify-content:space-between;gap:1rem;margin-bottom:.5rem}.graph-renderer-header h3{margin:0;font-size:1rem}.graph-renderer-header span{color:#52615b;font-size:.82rem;font-weight:500;letter-spacing:.01em}.graph-renderer svg{display:block;width:100%;max-height:420px}.graph-bg{fill:#fff;stroke:#d6ddd2}.graph-grid-line{stroke:#e4ebe7;stroke-width:1}.graph-axis{stroke:#26352f;stroke-width:2}.graph-axis-tick{stroke:#26352f;stroke-width:1.5}.graph-label{fill:#52615b;font-size:12px}.graph-curve{fill:none;stroke:#2f6f91;stroke-linecap:round;stroke-linejoin:round;stroke-width:3}.graph-point{stroke:#fff;stroke-width:2}.graph-point.vertex{fill:#7c4f19}.graph-point.x-intercept{fill:#245a45}.graph-point.y-intercept{fill:#4f7a6a}.graph-point-label{fill:#17221e;font-size:13px;font-weight:500;paint-order:stroke;stroke:#fff;stroke-width:3px;stroke-linejoin:round}@font-face{font-display:block;font-family:KaTeX_AMS;font-style:normal;font-weight:400;src:url(/assets/KaTeX_AMS-Regular-BQhdFMY1.woff2) format("woff2"),url(/assets/KaTeX_AMS-Regular-DMm9YOAa.woff) format("woff"),url(/assets/KaTeX_AMS-Regular-DRggAlZN.ttf) format("truetype")}@font-face{font-display:block;font-family:KaTeX_Caligraphic;font-style:normal;font-weight:700;src:url(/assets/KaTeX_Caligraphic-Bold-Dq_IR9rO.woff2) format("woff2"),url(/assets/KaTeX_Caligraphic-Bold-BEiXGLvX.woff) format("woff"),url(/assets/KaTeX_Caligraphic-Bold-ATXxdsX0.ttf) format("truetype")}@font-face{font-display:block;font-family:KaTeX_Caligraphic;font-style:normal;font-weight:400;src:url(/assets/KaTeX_Caligraphic-Regular-Di6jR-x-.woff2) format("woff2"),url(/assets/KaTeX_Caligraphic-Regular-CTRA-rTL.woff) format("woff"),url(/assets/KaTeX_Caligraphic-Regular-wX97UBjC.ttf) format("truetype")}@font-face{font-display:block;font-family:KaTeX_Fraktur;font-style:normal;font-weight:700;src:url(/assets/KaTeX_Fraktur-Bold-CL6g_b3V.woff2) format("woff2"),url(/assets/KaTeX_Fraktur-Bold-BsDP51OF.woff) format("woff"),url(/assets/KaTeX_Fraktur-Bold-BdnERNNW.ttf) format("truetype")}@font-face{font-display:block;font-family:KaTeX_Fraktur;font-style:normal;font-weight:400;src:url(/assets/KaTeX_Fraktur-Regular-CTYiF6lA.woff2) format("woff2"),url(/assets/KaTeX_Fraktur-Regular-Dxdc4cR9.woff) format("woff"),url(/assets/KaTeX_Fraktur-Regular-CB_wures.ttf) format("truetype")}@font-face{font-display:block;font-family:KaTeX_Main;font-style:normal;font-weight:700;src:url(/assets/KaTeX_Main-Bold-Cx986IdX.woff2) format("woff2"),url(/assets/KaTeX_Main-Bold-Jm3AIy58.woff) format("woff"),url(/assets/KaTeX_Main-Bold-waoOVXN0.ttf) format("truetype")}@font-face{font-display:block;font-family:KaTeX_Main;font-style:italic;font-weight:700;src:url(/assets/KaTeX_Main-BoldItalic-DxDJ3AOS.woff2) format("woff2"),url(/assets/KaTeX_Main-BoldItalic-SpSLRI95.woff) format("woff"),url(/assets/KaTeX_Main-BoldItalic-DzxPMmG6.ttf) format("truetype")}@font-face{font-display:block;font-family:KaTeX_Main;font-style:italic;font-weight:400;src:url(/assets/KaTeX_Main-Italic-NWA7e6Wa.woff2) format("woff2"),url(/assets/KaTeX_Main-Italic-BMLOBm91.woff) format("woff"),url(/assets/KaTeX_Main-Italic-3WenGoN9.ttf) format("truetype")}@font-face{font-display:block;font-family:KaTeX_Main;font-style:normal;font-weight:400;src:url(/assets/KaTeX_Main-Regular-B22Nviop.woff2) format("woff2"),url(/assets/KaTeX_Main-Regular-Dr94JaBh.woff) format("woff"),url(/assets/KaTeX_Main-Regular-ypZvNtVU.ttf) format("truetype")}@font-face{font-display:block;font-family:KaTeX_Math;font-style:italic;font-weight:700;src:url(/assets/KaTeX_Math-BoldItalic-CZnvNsCZ.woff2) format("woff2"),url(/assets/KaTeX_Math-BoldItalic-iY-2wyZ7.woff) format("woff"),url(/assets/KaTeX_Math-BoldItalic-B3XSjfu4.ttf) format("truetype")}@font-face{font-display:block;font-family:KaTeX_Math;font-style:italic;font-weight:400;src:url(/assets/KaTeX_Math-Italic-t53AETM-.woff2) format("woff2"),url(/assets/KaTeX_Math-Italic-DA0__PXp.woff) format("woff"),url(/assets/KaTeX_Math-Italic-flOr_0UB.ttf) format("truetype")}@font-face{font-display:block;font-family:KaTeX_SansSerif;font-style:normal;font-weight:700;src:url(/assets/KaTeX_SansSerif-Bold-D1sUS0GD.woff2) format("woff2"),url(/assets/KaTeX_SansSerif-Bold-DbIhKOiC.woff) format("woff"),url(/assets/KaTeX_SansSerif-Bold-CFMepnvq.ttf) format("truetype")}@font-face{font-display:block;font-family:KaTeX_SansSerif;font-style:italic;font-weight:400;src:url(/assets/KaTeX_SansSerif-Italic-C3H0VqGB.woff2) format("woff2"),url(/assets/KaTeX_SansSerif-Italic-DN2j7dab.woff) format("woff"),url(/assets/KaTeX_SansSerif-Italic-YYjJ1zSn.ttf) format("truetype")}@font-face{font-display:block;font-family:KaTeX_SansSerif;font-style:normal;font-weight:400;src:url(/assets/KaTeX_SansSerif-Regular-DDBCnlJ7.woff2) format("woff2"),url(/assets/KaTeX_SansSerif-Regular-CS6fqUqJ.woff) format("woff"),url(/assets/KaTeX_SansSerif-Regular-BNo7hRIc.ttf) format("truetype")}@font-face{font-display:block;font-family:KaTeX_Script;font-style:normal;font-weight:400;src:url(/assets/KaTeX_Script-Regular-D3wIWfF6.woff2) format("woff2"),url(/assets/KaTeX_Script-Regular-D5yQViql.woff) format("woff"),url(/assets/KaTeX_Script-Regular-C5JkGWo-.ttf) format("truetype")}@font-face{font-display:block;font-family:KaTeX_Size1;font-style:normal;font-weight:400;src:url(/assets/KaTeX_Size1-Regular-mCD8mA8B.woff2) format("woff2"),url(/assets/KaTeX_Size1-Regular-C195tn64.woff) format("woff"),url(/assets/KaTeX_Size1-Regular-Dbsnue_I.ttf) format("truetype")}@font-face{font-display:block;font-family:KaTeX_Size2;font-style:normal;font-weight:400;src:url(/assets/KaTeX_Size2-Regular-Dy4dx90m.woff2) format("woff2"),url(/assets/KaTeX_Size2-Regular-oD1tc_U0.woff) format("woff"),url(/assets/KaTeX_Size2-Regular-B7gKUWhC.ttf) format("truetype")}@font-face{font-display:block;font-family:KaTeX_Size3;font-style:normal;font-weight:400;src:url(data:font/woff2;base64,d09GMgABAAAAAA4oAA4AAAAAHbQAAA3TAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAABmAAgRQIDgmcDBEICo1oijYBNgIkA14LMgAEIAWJAAeBHAyBHBvbGiMRdnO0IkRRkiYDgr9KsJ1NUAf2kILNxgUmgqIgq1P89vcbIcmsQbRps3vCcXdYOKSWEPEKgZgQkprQQsxIXUgq0DqpGKmIvrgkeVGtEQD9DzAO29fM9jYhxZEsL2FeURH2JN4MIcTdO049NCVdxQ/w9NrSYFEBKTDKpLKfNkCGDc1RwjZLQcm3vqJ2UW9Xfa3tgAHz6ivp6vgC2yD4/6352ndnN0X0TL7seypkjZlMsjmZnf0Mm5Q+JykRWQBKCVCVPbARPXWyQtb5VgLB6Biq7/Uixcj2WGqdI8tGSgkuRG+t910GKP2D7AQH0DB9FMDW/obJZ8giFI3Wg8Cvevz0M+5m0rTh7XDBlvo9Y4vm13EXmfttwI4mBo1EG15fxJhUiCLbiiyCf/ZA6MFAhg3pGIZGdGIVjtPn6UcMk9A/UUr9PhoNsCENw1APAq0gpH73e+M+0ueyHbabc3vkbcdtzcf/fiy+NxQEjf9ud/ELBHAXJ0nk4z+MXH2Ev/kWyV4k7SkvpPc9Qr38F6RPWnM9cN6DJ0AdD1BhtgABtmoRoFCvPsBAumNm6soZG2Gk5GyVTo2sJncSyp0jQTYoR6WDvTwaaEcHsxHfvuWhHA3a6bN7twRKtcGok6NsCi7jYRrM2jExsUFMxMQYuJbMhuWNOumEJy9hi29Dmg5zMp/A5+hhPG19j1vBrq8JTLr8ki5VLPmG/PynJHVul440bxg5xuymHUFPBshC+nA9I1FmwbRBTNHAcik3Oae0cxKoI3MOriM42UrPe51nsaGxJ+WfXubAsP84aabUlQSJ1IiE0iPETLUU4CATgfXSCSpuRFRmCGbO+wSpAnzaeaCYW1VNEysRtuXCEL1kUFUbbtMv3Tilt/1c11jt3Q5bbMa84cpWipp8Elw3MZhOHsOlwwVUQM3lAR35JiFQbaYCRnMF2lxAWoOg2gyoIV4PouX8HytNIfLhqpJtXB4vjiViUI8IJ7bkC4ikkQvKksnOTKICwnqWSZ9YS5f0WCxmpgjbIq7EJcM4aI2nmhLNY2JIUgOjXZFWBHb+x5oh6cwb0Tv1ackHdKi0I9OO2wE9aogIOn540CCCziyhN+IaejtgAONKznHlHyutPrHGwCx9S6B8kfS4Mfi4Eyv7OU730bT1SCBjt834cXsf43zVjPUqqJjgrjeGnBxSG4aYAKFuVbeCfkDIjAqMb6yLNIbCuvXhMH2/+k2vkNpkORhR59N1CkzoOENvneIosjYmuTxlhUzaGEJQ/iWqx4dmwpmKjrwTiTGTCVozNAYqk/zXOndWxuWSmJkQpJw3pK5KX6QrLt5LATMqpmPAQhkhK6PUjzHUn7E0gHE0kPE0iKkolgkUx9SZmVAdDgpffdyJKg3k7VmzYGCwVXGz/tXmkOIp+vcWs+EMuhhvN0h9uhfzWJziBQmCREGSIFmQIkgVpAnSBRmC//6hkLZwaVhwxlrJSOdqlFtOYxlau9F2QN5Y98xmIAsiM1HVp2VFX+DHHGg6Ecjh3vmqtidX3qHI2qycTk/iwxSt5UzTmEP92ZBnEWTk4Mx8Mpl78ZDokxg/KWb+Q0QkvdKVmq3TMW+RXEgrsziSAfNXFMhDc60N5N9jQzjfO0kBKpUZl0ZmwJ41j/B9Hz6wmRaJB84niNmQrzp9eSlQCDDzazGDdVi3P36VZQ+Jy4f9UBNp+3zTjqI4abaFAm+GShVaXlsGdF3FYzZcDI6cori4kMxUECl9IjJZpzkvitAoxKue+90pDMvcKRxLl53TmOKCmV/xRolNKSqqUxc6LStOETmFOiLZZptlZepcKiAzteG8PEdpnQpbOMNcMsR4RR2Bs0cKFEvSmIjAFcnarqwUL4lDhHmnVkwu1IwshbiCcgvOheZuYyOteufZZwlcTlLgnZ3o/WcYdzZHW/WGaqaVfmTZ1aWCceJjkbZqsfbkOtcFlUZM/jy+hXHDbaUobWqqXaeWobbLO99yG5N3U4wxco0rQGGcOLASFMXeJoham8M+/x6O2WywK2l4HGbq1CoUyC/IZikQhdq3SiuNrvAEj0AVu9x2x3lp/xWzahaxidezFVtdcb5uEnzyl0ZmYiuKI0exvCd4Xc9CV1KB0db00z92wDPde0kukbvZIWN6jUWFTmPIC/Y4UPCm8UfDTFZpZNon1qLFTkBhxzB+FjQRA2Q/YRJT8pQigslMaUpFyAG8TMlXigiqmAZX4xgijKjRlGpLE0GdplRfCaJo0JQaSxNBk6ZmMzcya0FmrcisDdn0Q3HI2sWSppYigmlM1XT/kLQZSNpMJG0WkjYbSZuDpM1F0uYhFc1HxU4m1QJjDK6iL0S5uSj5rgXc3RejEigtcRBtqYPQsiTskmO5vosV+q4VGIKbOkDg0jtRrq+Em1YloaTFar3EGr1EUC8R0kus1Uus00usL97ABr2BjXoDm/QGNhuWtMVBKOwg/i78lT7hBsAvDmwHc/ao3vmUbBmhjeYySZNWvGkfZAgISDSaDo1SVpzGDsAEkF8B+gEapViUoZgUWXcRIGFZNm6gWbAKk0bp0k1MHG9fLYtV4iS2SmLEQFARzRcnf9PUS0LVn05/J9MiRRBU3v2IrvW974v4N00L7ZMk0wXP1409CHo/an8zTRHD3eSJ6m8D4YMkZNl3M79sqeuAsr/m3f+8/yl7A50aiAEJgeBeMWzu7ui9UfUBCe2TIqZIoOd/3/udRBOQidQZUERzb2/VwZN1H/Sju82ew2H2Wfr6qvfVf3hqwDvAIpkQVFy4B9Pe9e4/XvPeceu7h3dvO56iJPf0+A6cqA2ip18ER+iFgggiuOkvj24bby0N9j2UHIkgqIt+sVgfodC4YghLSMjSZbH0VR/6dMDrYJeKHilKTemt6v6kvzvn3/RrdWtr0GoN/xL+Sex/cPYLUpepx9cz/D46UPU5KXgAQa+NDps1v6J3xP1i2HtaDB0M9aX2deA7SYff//+gUCovMmIK/qfsFcOk+4Y5ZN97XlG6zebqtMbKgeRFi51vnxTQYBUik2rS/Cn6PC8ADR8FGxsRPB82dzfND90gIcshOcYUkfjherBz53odpm6TP8txlwOZ71xmfHHOvq053qFF/MRlS3jP0ELudrf2OeN8DHvp6ZceLe8qKYvWz/7yp0u4dKPfli3CYq0O13Ih71mylJ80tOi10On8wi+F4+LWgDPeJ30msSQt9/vkmHq9/Lvo2b461mP801v3W4xTcs6CbvF9UDdrSt+A8OUbpSh55qAUFXWznBBfdeJ8a4d7ugT5tvxUza3h9m4H7ptTqiG4z0g5dc0X29OcGlhpGFMpQo9ytTS+NViZpNdvU4kWx+LKxNY10kQ1yqGXrhe4/1nvP7E+nd5A92TtaRplbHSqoIdOqtRWti+fkB5/n1+/VvCmz12pG1kpQWsfi1ftlBobm0bpngs16CHkbIwdLnParxtTV3QYRlfJ0KFskH7pdN/YDn+yRuSd7sNH3aO0DYPggk6uWuXrfOc+fa3VTxFVvKaNxHsiHmsXyCLIE5yuOeN3/Jdf8HBL/5M6shjyhxHx9BjB1O0+4NLOnjLLSxwO7ukN4jMbOIcD879KLSi6Pk61Oqm2377n8079PXEEQ7cy7OKEC9nbpet118fxweTafpt69x/Bt8UqGzNQt7aelpc44dn5cqhwf71+qKp/Zf/+a0zcizOUWpl/iBcSXip0pplkatCchoH5c5aUM8I7/dWxAej8WicPL1URFZ9BDJelUwEwTkGqUhgSlydVes95YdXvhh9Gfz/aeFWvgVb4tuLbcv4+wLdutVZv/cUonwBD/6eDlE0aSiKK/uoH3+J1wDE/jMVqY2ysGufN84oIXB0sPzy8ollX/LegY74DgJXJR57sn+VGza0x3DnuIgABFM15LmajjjsNlYj+JEZGbuRYcAMOWxFkPN2w6Wd46xo4gVWQR/X4lyI/R6K/YK0110GzudPRW7Y+UOBGTfNNzHeYT0fiH0taunBpq9HEW8OKSaBGj21L0MqenEmNRWBAWDWAk4CpNoEZJ2tTaPFgbQYj8HxtFilErs3BTRwT8uO1NXQaWfIotchmPkAF5mMBAliEmZiOGVgCG9LgRzpscMAOOwowlT3JhusdazXGSC/hxR3UlmWVwWHpOIKheqONvjyhSiTHIkVUco5bnji8m//zL7PKaT1Vl5I6UE609f+gkr6MZKVyKc7zJRmCahLsdlyA5fdQkRSan9LgnnLEyGSkaKJCJog0wAgvepWBt80+1yKln1bMVtCljfNWDueKLsWwaEbBSfSPTEmVRsUcYYMnEjcjeyCZzBXK9E9BYBXLKjOSpUDR+nEV3TFSUdQaz+ot98QxgXwx0GQ+EEUAKB2qZPkQQ0GqFD8UPFMqyaCHM24BZmSGic9EYMagKizOw9Hz50DMrDLrqqLkTAhplMictiCAx5S3BIUQdeJeLnBy2CNtMfz6cV4u8XKoFZQesbf9YZiIERiHjaNodDW6LgcirX/mPnJIkBGDUpTBhSa0EIr38D5hCIszhCM8URGBqImoWjpvpt1ebu/v3Gl3qJfMnNM+9V+kiRFyROTPHQWOcs1dNW94/ukKMPZBvDi55i5CttdeJz84DLngLqjcdwEZ87bFFR8CIG35OAkDVN6VRDZ7aq67NteYqZ2lpT8oYB2CytoBd6VuAx4WgiAsnuj3WohG+LugzXiQRDeM3XYXlULv4dp5VFYC) format("woff2"),url(/assets/KaTeX_Size3-Regular-CTq5MqoE.woff) format("woff"),url(/assets/KaTeX_Size3-Regular-DgpXs0kz.ttf) format("truetype")}@font-face{font-display:block;font-family:KaTeX_Size4;font-style:normal;font-weight:400;src:url(/assets/KaTeX_Size4-Regular-Dl5lxZxV.woff2) format("woff2"),url(/assets/KaTeX_Size4-Regular-BF-4gkZK.woff) format("woff"),url(/assets/KaTeX_Size4-Regular-DWFBv043.ttf) format("truetype")}@font-face{font-display:block;font-family:KaTeX_Typewriter;font-style:normal;font-weight:400;src:url(/assets/KaTeX_Typewriter-Regular-CO6r4hn1.woff2) format("woff2"),url(/assets/KaTeX_Typewriter-Regular-C0xS9mPB.woff) format("woff"),url(/assets/KaTeX_Typewriter-Regular-D3Ib7_Hf.ttf) format("truetype")}.katex{font: 1.21em KaTeX_Main,Times New Roman,serif;line-height:1.2;position:relative;text-indent:0;text-rendering:auto}.katex *{-ms-high-contrast-adjust:none!important;border-color:currentColor}.katex .katex-version:after{content:"0.17.0"}.katex .katex-mathml{border:0;-webkit-clip-path:inset(50%);clip-path:inset(50%);height:1px;overflow:hidden;padding:0;position:absolute;width:1px}.katex .katex-html>.newline{display:block}.katex .base{position:relative;white-space:nowrap;width:-webkit-min-content;width:-moz-min-content;width:min-content}.katex .base,.katex .strut{display:inline-block}.katex .textbf{font-weight:700}.katex .textit{font-style:italic}.katex .textrm{font-family:KaTeX_Main}.katex .textsf{font-family:KaTeX_SansSerif}.katex .texttt{font-family:KaTeX_Typewriter}.katex .mathnormal{font-family:KaTeX_Math;font-style:italic}.katex .mathit{font-family:KaTeX_Main;font-style:italic}.katex .mathrm{font-style:normal}.katex .mathbf{font-family:KaTeX_Main;font-weight:700}.katex .boldsymbol{font-family:KaTeX_Math;font-style:italic;font-weight:700}.katex .amsrm,.katex .mathbb,.katex .textbb{font-family:KaTeX_AMS}.katex .mathcal{font-family:KaTeX_Caligraphic}.katex .mathfrak,.katex .textfrak{font-family:KaTeX_Fraktur}.katex .mathboldfrak,.katex .textboldfrak{font-family:KaTeX_Fraktur;font-weight:700}.katex .mathtt{font-family:KaTeX_Typewriter}.katex .mathscr,.katex .textscr{font-family:KaTeX_Script}.katex .mathsf,.katex .textsf{font-family:KaTeX_SansSerif}.katex .mathboldsf,.katex .textboldsf{font-family:KaTeX_SansSerif;font-weight:700}.katex .mathitsf,.katex .mathsfit,.katex .textitsf{font-family:KaTeX_SansSerif;font-style:italic}.katex .mainrm{font-family:KaTeX_Main;font-style:normal}.katex .vlist-t{border-collapse:collapse;display:inline-table;table-layout:fixed}.katex .vlist-r{display:table-row}.katex .vlist{display:table-cell;position:relative;vertical-align:bottom}.katex .vlist>span{display:block;height:0;position:relative}.katex .vlist>span>span{display:inline-block}.katex .vlist>span>.pstrut{overflow:hidden;width:0}.katex .vlist-t2{margin-right:-2px}.katex .vlist-s{display:table-cell;font-size:1px;min-width:2px;vertical-align:bottom;width:2px}.katex .vbox{align-items:baseline;display:inline-flex;flex-direction:column}.katex .hbox{width:100%}.katex .hbox,.katex .thinbox{display:inline-flex;flex-direction:row}.katex .thinbox{max-width:0;width:0}.katex .msupsub{text-align:left}.katex .mfrac>span>span{text-align:center}.katex .mfrac .frac-line{border-bottom-style:solid;display:inline-block;width:100%}.katex .hdashline,.katex .hline,.katex .mfrac .frac-line,.katex .overline .overline-line,.katex .rule,.katex .underline .underline-line{min-height:1px}.katex .mspace{display:inline-block}.katex .smash{display:inline;line-height:0}.katex .clap,.katex .llap,.katex .rlap{position:relative;width:0}.katex .clap>.inner,.katex .llap>.inner,.katex .rlap>.inner{position:absolute}.katex .clap>.fix,.katex .llap>.fix,.katex .rlap>.fix{display:inline-block}.katex .llap>.inner{right:0}.katex .clap>.inner,.katex .rlap>.inner{left:0}.katex .clap>.inner>span{margin-left:-50%;margin-right:50%}.katex .rule{border:0 solid;display:inline-block;position:relative}.katex .hline,.katex .overline .overline-line,.katex .underline .underline-line{border-bottom-style:solid;display:inline-block;width:100%}.katex .hdashline{border-bottom-style:dashed;display:inline-block;width:100%}.katex .sqrt>.root{margin-left:.2777777778em;margin-right:-.5555555556em}.katex .fontsize-ensurer.reset-size1.size1,.katex .sizing.reset-size1.size1{font-size:1em}.katex .fontsize-ensurer.reset-size1.size2,.katex .sizing.reset-size1.size2{font-size:1.2em}.katex .fontsize-ensurer.reset-size1.size3,.katex .sizing.reset-size1.size3{font-size:1.4em}.katex .fontsize-ensurer.reset-size1.size4,.katex .sizing.reset-size1.size4{font-size:1.6em}.katex .fontsize-ensurer.reset-size1.size5,.katex .sizing.reset-size1.size5{font-size:1.8em}.katex .fontsize-ensurer.reset-size1.size6,.katex .sizing.reset-size1.size6{font-size:2em}.katex .fontsize-ensurer.reset-size1.size7,.katex .sizing.reset-size1.size7{font-size:2.4em}.katex .fontsize-ensurer.reset-size1.size8,.katex .sizing.reset-size1.size8{font-size:2.88em}.katex .fontsize-ensurer.reset-size1.size9,.katex .sizing.reset-size1.size9{font-size:3.456em}.katex .fontsize-ensurer.reset-size1.size10,.katex .sizing.reset-size1.size10{font-size:4.148em}.katex .fontsize-ensurer.reset-size1.size11,.katex .sizing.reset-size1.size11{font-size:4.976em}.katex .fontsize-ensurer.reset-size2.size1,.katex .sizing.reset-size2.size1{font-size:.8333333333em}.katex .fontsize-ensurer.reset-size2.size2,.katex .sizing.reset-size2.size2{font-size:1em}.katex .fontsize-ensurer.reset-size2.size3,.katex .sizing.reset-size2.size3{font-size:1.1666666667em}.katex .fontsize-ensurer.reset-size2.size4,.katex .sizing.reset-size2.size4{font-size:1.3333333333em}.katex .fontsize-ensurer.reset-size2.size5,.katex .sizing.reset-size2.size5{font-size:1.5em}.katex .fontsize-ensurer.reset-size2.size6,.katex .sizing.reset-size2.size6{font-size:1.6666666667em}.katex .fontsize-ensurer.reset-size2.size7,.katex .sizing.reset-size2.size7{font-size:2em}.katex .fontsize-ensurer.reset-size2.size8,.katex .sizing.reset-size2.size8{font-size:2.4em}.katex .fontsize-ensurer.reset-size2.size9,.katex .sizing.reset-size2.size9{font-size:2.88em}.katex .fontsize-ensurer.reset-size2.size10,.katex .sizing.reset-size2.size10{font-size:3.4566666667em}.katex .fontsize-ensurer.reset-size2.size11,.katex .sizing.reset-size2.size11{font-size:4.1466666667em}.katex .fontsize-ensurer.reset-size3.size1,.katex .sizing.reset-size3.size1{font-size:.7142857143em}.katex .fontsize-ensurer.reset-size3.size2,.katex .sizing.reset-size3.size2{font-size:.8571428571em}.katex .fontsize-ensurer.reset-size3.size3,.katex .sizing.reset-size3.size3{font-size:1em}.katex .fontsize-ensurer.reset-size3.size4,.katex .sizing.reset-size3.size4{font-size:1.1428571429em}.katex .fontsize-ensurer.reset-size3.size5,.katex .sizing.reset-size3.size5{font-size:1.2857142857em}.katex .fontsize-ensurer.reset-size3.size6,.katex .sizing.reset-size3.size6{font-size:1.4285714286em}.katex .fontsize-ensurer.reset-size3.size7,.katex .sizing.reset-size3.size7{font-size:1.7142857143em}.katex .fontsize-ensurer.reset-size3.size8,.katex .sizing.reset-size3.size8{font-size:2.0571428571em}.katex .fontsize-ensurer.reset-size3.size9,.katex .sizing.reset-size3.size9{font-size:2.4685714286em}.katex .fontsize-ensurer.reset-size3.size10,.katex .sizing.reset-size3.size10{font-size:2.9628571429em}.katex .fontsize-ensurer.reset-size3.size11,.katex .sizing.reset-size3.size11{font-size:3.5542857143em}.katex .fontsize-ensurer.reset-size4.size1,.katex .sizing.reset-size4.size1{font-size:.625em}.katex .fontsize-ensurer.reset-size4.size2,.katex .sizing.reset-size4.size2{font-size:.75em}.katex .fontsize-ensurer.reset-size4.size3,.katex .sizing.reset-size4.size3{font-size:.875em}.katex .fontsize-ensurer.reset-size4.size4,.katex .sizing.reset-size4.size4{font-size:1em}.katex .fontsize-ensurer.reset-size4.size5,.katex .sizing.reset-size4.size5{font-size:1.125em}.katex .fontsize-ensurer.reset-size4.size6,.katex .sizing.reset-size4.size6{font-size:1.25em}.katex .fontsize-ensurer.reset-size4.size7,.katex .sizing.reset-size4.size7{font-size:1.5em}.katex .fontsize-ensurer.reset-size4.size8,.katex .sizing.reset-size4.size8{font-size:1.8em}.katex .fontsize-ensurer.reset-size4.size9,.katex .sizing.reset-size4.size9{font-size:2.16em}.katex .fontsize-ensurer.reset-size4.size10,.katex .sizing.reset-size4.size10{font-size:2.5925em}.katex .fontsize-ensurer.reset-size4.size11,.katex .sizing.reset-size4.size11{font-size:3.11em}.katex .fontsize-ensurer.reset-size5.size1,.katex .sizing.reset-size5.size1{font-size:.5555555556em}.katex .fontsize-ensurer.reset-size5.size2,.katex .sizing.reset-size5.size2{font-size:.6666666667em}.katex .fontsize-ensurer.reset-size5.size3,.katex .sizing.reset-size5.size3{font-size:.7777777778em}.katex .fontsize-ensurer.reset-size5.size4,.katex .sizing.reset-size5.size4{font-size:.8888888889em}.katex .fontsize-ensurer.reset-size5.size5,.katex .sizing.reset-size5.size5{font-size:1em}.katex .fontsize-ensurer.reset-size5.size6,.katex .sizing.reset-size5.size6{font-size:1.1111111111em}.katex .fontsize-ensurer.reset-size5.size7,.katex .sizing.reset-size5.size7{font-size:1.3333333333em}.katex .fontsize-ensurer.reset-size5.size8,.katex .sizing.reset-size5.size8{font-size:1.6em}.katex .fontsize-ensurer.reset-size5.size9,.katex .sizing.reset-size5.size9{font-size:1.92em}.katex .fontsize-ensurer.reset-size5.size10,.katex .sizing.reset-size5.size10{font-size:2.3044444444em}.katex .fontsize-ensurer.reset-size5.size11,.katex .sizing.reset-size5.size11{font-size:2.7644444444em}.katex .fontsize-ensurer.reset-size6.size1,.katex .sizing.reset-size6.size1{font-size:.5em}.katex .fontsize-ensurer.reset-size6.size2,.katex .sizing.reset-size6.size2{font-size:.6em}.katex .fontsize-ensurer.reset-size6.size3,.katex .sizing.reset-size6.size3{font-size:.7em}.katex .fontsize-ensurer.reset-size6.size4,.katex .sizing.reset-size6.size4{font-size:.8em}.katex .fontsize-ensurer.reset-size6.size5,.katex .sizing.reset-size6.size5{font-size:.9em}.katex .fontsize-ensurer.reset-size6.size6,.katex .sizing.reset-size6.size6{font-size:1em}.katex .fontsize-ensurer.reset-size6.size7,.katex .sizing.reset-size6.size7{font-size:1.2em}.katex .fontsize-ensurer.reset-size6.size8,.katex .sizing.reset-size6.size8{font-size:1.44em}.katex .fontsize-ensurer.reset-size6.size9,.katex .sizing.reset-size6.size9{font-size:1.728em}.katex .fontsize-ensurer.reset-size6.size10,.katex .sizing.reset-size6.size10{font-size:2.074em}.katex .fontsize-ensurer.reset-size6.size11,.katex .sizing.reset-size6.size11{font-size:2.488em}.katex .fontsize-ensurer.reset-size7.size1,.katex .sizing.reset-size7.size1{font-size:.4166666667em}.katex .fontsize-ensurer.reset-size7.size2,.katex .sizing.reset-size7.size2{font-size:.5em}.katex .fontsize-ensurer.reset-size7.size3,.katex .sizing.reset-size7.size3{font-size:.5833333333em}.katex .fontsize-ensurer.reset-size7.size4,.katex .sizing.reset-size7.size4{font-size:.6666666667em}.katex .fontsize-ensurer.reset-size7.size5,.katex .sizing.reset-size7.size5{font-size:.75em}.katex .fontsize-ensurer.reset-size7.size6,.katex .sizing.reset-size7.size6{font-size:.8333333333em}.katex .fontsize-ensurer.reset-size7.size7,.katex .sizing.reset-size7.size7{font-size:1em}.katex .fontsize-ensurer.reset-size7.size8,.katex .sizing.reset-size7.size8{font-size:1.2em}.katex .fontsize-ensurer.reset-size7.size9,.katex .sizing.reset-size7.size9{font-size:1.44em}.katex .fontsize-ensurer.reset-size7.size10,.katex .sizing.reset-size7.size10{font-size:1.7283333333em}.katex .fontsize-ensurer.reset-size7.size11,.katex .sizing.reset-size7.size11{font-size:2.0733333333em}.katex .fontsize-ensurer.reset-size8.size1,.katex .sizing.reset-size8.size1{font-size:.3472222222em}.katex .fontsize-ensurer.reset-size8.size2,.katex .sizing.reset-size8.size2{font-size:.4166666667em}.katex .fontsize-ensurer.reset-size8.size3,.katex .sizing.reset-size8.size3{font-size:.4861111111em}.katex .fontsize-ensurer.reset-size8.size4,.katex .sizing.reset-size8.size4{font-size:.5555555556em}.katex .fontsize-ensurer.reset-size8.size5,.katex .sizing.reset-size8.size5{font-size:.625em}.katex .fontsize-ensurer.reset-size8.size6,.katex .sizing.reset-size8.size6{font-size:.6944444444em}.katex .fontsize-ensurer.reset-size8.size7,.katex .sizing.reset-size8.size7{font-size:.8333333333em}.katex .fontsize-ensurer.reset-size8.size8,.katex .sizing.reset-size8.size8{font-size:1em}.katex .fontsize-ensurer.reset-size8.size9,.katex .sizing.reset-size8.size9{font-size:1.2em}.katex .fontsize-ensurer.reset-size8.size10,.katex .sizing.reset-size8.size10{font-size:1.4402777778em}.katex .fontsize-ensurer.reset-size8.size11,.katex .sizing.reset-size8.size11{font-size:1.7277777778em}.katex .fontsize-ensurer.reset-size9.size1,.katex .sizing.reset-size9.size1{font-size:.2893518519em}.katex .fontsize-ensurer.reset-size9.size2,.katex .sizing.reset-size9.size2{font-size:.3472222222em}.katex .fontsize-ensurer.reset-size9.size3,.katex .sizing.reset-size9.size3{font-size:.4050925926em}.katex .fontsize-ensurer.reset-size9.size4,.katex .sizing.reset-size9.size4{font-size:.462962963em}.katex .fontsize-ensurer.reset-size9.size5,.katex .sizing.reset-size9.size5{font-size:.5208333333em}.katex .fontsize-ensurer.reset-size9.size6,.katex .sizing.reset-size9.size6{font-size:.5787037037em}.katex .fontsize-ensurer.reset-size9.size7,.katex .sizing.reset-size9.size7{font-size:.6944444444em}.katex .fontsize-ensurer.reset-size9.size8,.katex .sizing.reset-size9.size8{font-size:.8333333333em}.katex .fontsize-ensurer.reset-size9.size9,.katex .sizing.reset-size9.size9{font-size:1em}.katex .fontsize-ensurer.reset-size9.size10,.katex .sizing.reset-size9.size10{font-size:1.2002314815em}.katex .fontsize-ensurer.reset-size9.size11,.katex .sizing.reset-size9.size11{font-size:1.4398148148em}.katex .fontsize-ensurer.reset-size10.size1,.katex .sizing.reset-size10.size1{font-size:.2410800386em}.katex .fontsize-ensurer.reset-size10.size2,.katex .sizing.reset-size10.size2{font-size:.2892960463em}.katex .fontsize-ensurer.reset-size10.size3,.katex .sizing.reset-size10.size3{font-size:.337512054em}.katex .fontsize-ensurer.reset-size10.size4,.katex .sizing.reset-size10.size4{font-size:.3857280617em}.katex .fontsize-ensurer.reset-size10.size5,.katex .sizing.reset-size10.size5{font-size:.4339440694em}.katex .fontsize-ensurer.reset-size10.size6,.katex .sizing.reset-size10.size6{font-size:.4821600771em}.katex .fontsize-ensurer.reset-size10.size7,.katex .sizing.reset-size10.size7{font-size:.5785920926em}.katex .fontsize-ensurer.reset-size10.size8,.katex .sizing.reset-size10.size8{font-size:.6943105111em}.katex .fontsize-ensurer.reset-size10.size9,.katex .sizing.reset-size10.size9{font-size:.8331726133em}.katex .fontsize-ensurer.reset-size10.size10,.katex .sizing.reset-size10.size10{font-size:1em}.katex .fontsize-ensurer.reset-size10.size11,.katex .sizing.reset-size10.size11{font-size:1.1996142719em}.katex .fontsize-ensurer.reset-size11.size1,.katex .sizing.reset-size11.size1{font-size:.2009646302em}.katex .fontsize-ensurer.reset-size11.size2,.katex .sizing.reset-size11.size2{font-size:.2411575563em}.katex .fontsize-ensurer.reset-size11.size3,.katex .sizing.reset-size11.size3{font-size:.2813504823em}.katex .fontsize-ensurer.reset-size11.size4,.katex .sizing.reset-size11.size4{font-size:.3215434084em}.katex .fontsize-ensurer.reset-size11.size5,.katex .sizing.reset-size11.size5{font-size:.3617363344em}.katex .fontsize-ensurer.reset-size11.size6,.katex .sizing.reset-size11.size6{font-size:.4019292605em}.katex .fontsize-ensurer.reset-size11.size7,.katex .sizing.reset-size11.size7{font-size:.4823151125em}.katex .fontsize-ensurer.reset-size11.size8,.katex .sizing.reset-size11.size8{font-size:.578778135em}.katex .fontsize-ensurer.reset-size11.size9,.katex .sizing.reset-size11.size9{font-size:.6945337621em}.katex .fontsize-ensurer.reset-size11.size10,.katex .sizing.reset-size11.size10{font-size:.8336012862em}.katex .fontsize-ensurer.reset-size11.size11,.katex .sizing.reset-size11.size11{font-size:1em}.katex .delimsizing.size1{font-family:KaTeX_Size1}.katex .delimsizing.size2{font-family:KaTeX_Size2}.katex .delimsizing.size3{font-family:KaTeX_Size3}.katex .delimsizing.size4{font-family:KaTeX_Size4}.katex .delimsizing.mult .delim-size1>span{font-family:KaTeX_Size1}.katex .delimsizing.mult .delim-size4>span{font-family:KaTeX_Size4}.katex .nulldelimiter{display:inline-block;width:.12em}.katex .delimcenter,.katex .op-symbol{position:relative}.katex .op-symbol.small-op{font-family:KaTeX_Size1}.katex .op-symbol.large-op{font-family:KaTeX_Size2}.katex .accent>.vlist-t,.katex .op-limits>.vlist-t{text-align:center}.katex .accent .accent-body{position:relative}.katex .accent .accent-body:not(.accent-full){width:0}.katex .overlay{display:block}.katex .mtable .vertical-separator{display:inline-block;min-width:1px}.katex .mtable .arraycolsep{display:inline-block}.katex .mtable .col-align-c>.vlist-t{text-align:center}.katex .mtable .col-align-l>.vlist-t{text-align:left}.katex .mtable .col-align-r>.vlist-t{text-align:right}.katex .svg-align{text-align:left}.katex svg{fill:currentColor;stroke:currentColor;display:block;height:inherit;position:absolute;width:100%}.katex svg path{stroke:none}.katex svg{fill-rule:nonzero;fill-opacity:1;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1}.katex img{border-style:none;max-height:none;max-width:none;min-height:0;min-width:0}.katex .stretchy{display:block;overflow:hidden;position:relative;width:100%}.katex .stretchy:after,.katex .stretchy:before{content:""}.katex .hide-tail{overflow:hidden;position:relative;width:100%}.katex .halfarrow-left{left:0;overflow:hidden;position:absolute;width:50.2%}.katex .halfarrow-right{overflow:hidden;position:absolute;right:0;width:50.2%}.katex .brace-left{left:0;overflow:hidden;position:absolute;width:25.1%}.katex .brace-center{left:25%;overflow:hidden;position:absolute;width:50%}.katex .brace-right{overflow:hidden;position:absolute;right:0;width:25.1%}.katex .x-arrow-pad{padding:0 .5em}.katex .cd-arrow-pad{padding:0 .55556em 0 .27778em}.katex .mover,.katex .munder,.katex .x-arrow{text-align:center}.katex .boxpad{padding:0 .3em}.katex .fbox,.katex .fcolorbox{border:.04em solid;box-sizing:border-box}.katex .cancel-pad{padding:0 .2em}.katex .cancel-lap{margin-left:-.2em;margin-right:-.2em}.katex .sout{border-bottom-style:solid;border-bottom-width:.08em}.katex .angl{border-right:.049em solid;border-top:.049em solid;box-sizing:border-box;margin-right:.03889em}.katex .anglpad{padding:0 .03889em}.katex .eqn-num:before{content:"(" counter(katexEqnNo) ")";counter-increment:katexEqnNo}.katex .mml-eqn-num:before{content:"(" counter(mmlEqnNo) ")";counter-increment:mmlEqnNo}.katex .mtr-glue{width:50%}.katex .cd-vert-arrow{display:inline-block;position:relative}.katex .cd-label-left{display:inline-block;position:absolute;right:calc(50% + .3em);text-align:left}.katex .cd-label-right{display:inline-block;left:calc(50% + .3em);position:absolute;text-align:right}.katex-display{display:block;margin:1em 0;text-align:center}.katex-display>.katex{display:block;text-align:center;white-space:nowrap}.katex-display>.katex>.katex-html{display:block;position:relative}.katex-display>.katex>.katex-html>.tag{position:absolute;right:0}.katex-display.leqno>.katex>.katex-html>.tag{left:0;right:auto}.katex-display.fleqn>.katex{padding-left:2em;text-align:left}body{counter-reset:katexEqnNo mmlEqnNo}:root{--sw-page: #F6F5EF;--sw-card: #FFFFFF;--sw-choice: #EFEDE5;--sw-border: #E1DFD3;--sw-ink: #292A22;--sw-muted: #6C6E62;--sw-neutral-chip: #E6E3DA;--sw-sage: #4F7A6A;--sw-sage-strong: #3E6354;--sw-correct-tint: #E4EDE8;--sw-terracotta: #A65A3E;--sw-terracotta-soft: #B5674A;--sw-wrong-chip-bg: #EFE0D8;--sw-purple-50: #ECF2EE;--sw-purple-100: #DDE9E2;--sw-purple-200: #C4D8CD;--sw-purple-300: #A9C5B8;--sw-purple-400: #7FA897;--sw-purple-500: #5E8A78;--sw-purple-600: #4F7A6A;--sw-purple-700: #3E6354;--sw-purple-800: #2F4C41;--sw-purple-900: #21372F;--sw-pink-100: #DDE9E2;--sw-pink-200: #C4D8CD;--sw-pink-300: #A9C5B8;--sw-pink-400: #7FA897;--sw-pink-500: #4F7A6A;--sw-pink-600: #3E6354;--sw-lavender-50: #F6F5EF;--sw-lavender-100: #EFEDE5;--color-correct: #4F7A6A;--color-correct-bg: #E4EDE8;--color-incorrect: #A65A3E;--color-incorrect-bg: #EFE0D8;--color-warning: #9C6212;--color-warning-bg: #F4EAD8;--color-info: #3E6354;--text-muted: #5E6054;--text-strong: var(--sw-ink);--color-info-bg: #E4EDE8;--gray-50: #F6F5EF;--gray-100: #EFEDE5;--gray-200: #E1DFD3;--gray-300: #CFCDC0;--gray-400: #A7A899;--gray-500: #6C6E62;--gray-600: #565749;--gray-700: #414339;--gray-800: #2F312A;--gray-900: #292A22;--gray-950: #17180F;--surface-page: #F6F5EF;--surface-card: #FFFFFF;--surface-header: var(--sw-sage);--border-subtle: var(--sw-border);--space-1: 4px;--space-2: 8px;--space-3: 12px;--space-4: 16px;--space-5: 20px;--space-6: 24px;--space-8: 32px;--space-10: 40px;--space-12: 48px;--space-16: 64px;--space-20: 80px;--text-xs: 11px;--leading-xs: 16px;--text-sm: 13px;--leading-sm: 18px;--text-base: 15px;--leading-base: 23px;--text-md: 16px;--leading-md: 24px;--text-lg: 18px;--leading-lg: 27px;--text-xl: 22px;--leading-xl: 30px;--text-2xl: 28px;--leading-2xl: 36px;--text-3xl: 36px;--leading-3xl: 44px;--font-sans: "IBM Plex Sans", ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;--radius-sm: 6px;--radius-md: 10px;--radius-lg: 16px;--radius-xl: 24px;--radius-full: 9999px;--shadow-sm: 0 1px 2px rgba(33, 55, 47, .06), 0 1px 3px rgba(33, 55, 47, .08);--shadow-md: 0 2px 6px rgba(33, 55, 47, .08), 0 4px 12px rgba(33, 55, 47, .08);--shadow-lg: 0 8px 24px rgba(33, 55, 47, .14);--shadow-xl: 0 16px 48px rgba(33, 55, 47, .2);--shadow-brand: 0 4px 20px rgba(79, 122, 106, .28);--shadow-pink: 0 4px 18px rgba(79, 122, 106, .3);--transition-fast: .12s ease;--transition-base: .2s ease;--transition-slow: .35s ease;--transition-spring: .4s cubic-bezier(.34, 1.56, .64, 1);--z-base: 0;--z-sticky: 10;--z-dropdown: 100;--z-overlay: 200;--z-modal: 300;--z-panel: 400;--z-toast: 500}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes slideUp{0%{transform:translateY(100%);opacity:0}to{transform:translateY(0);opacity:1}}@keyframes slideInRight{0%{transform:translate(24px);opacity:0}to{transform:translate(0);opacity:1}}@keyframes scaleIn{0%{transform:scale(.94);opacity:0}to{transform:scale(1);opacity:1}}@keyframes calmFadeIn{0%{opacity:0}to{opacity:1}}@keyframes spinnerRotate{to{transform:rotate(360deg)}}@keyframes shimmer{0%{background-position:-480px 0}to{background-position:480px 0}}.card{background:var(--surface-card);border:1px solid var(--border-subtle);border-radius:var(--radius-lg);padding:var(--space-5)}.card-elevated{background:var(--surface-card);border:1px solid var(--border-subtle);border-radius:var(--radius-lg);padding:var(--space-5);box-shadow:var(--shadow-md)}.card-interactive{background:var(--surface-card);border:1px solid var(--border-subtle);border-radius:var(--radius-lg);padding:var(--space-5);cursor:pointer;transition:border-color var(--transition-base),box-shadow var(--transition-base),transform var(--transition-base)}.card-interactive:hover{border-color:var(--sw-purple-300);box-shadow:var(--shadow-md);transform:translateY(-1px)}.btn-primary,.btn-secondary,.btn-ghost{display:inline-flex;align-items:center;justify-content:center;gap:var(--space-2);font-family:var(--font-sans);font-weight:600;border-radius:var(--radius-md);cursor:pointer;transition:background var(--transition-base),border-color var(--transition-base),box-shadow var(--transition-base),transform var(--transition-fast);border:1px solid transparent;white-space:nowrap}.btn-primary{background:var(--sw-sage);color:#fff;box-shadow:var(--shadow-pink)}.btn-primary:hover{background:var(--sw-sage-strong, #3E6354)}.btn-primary:active{transform:translateY(1px)}.btn-secondary{background:transparent;color:var(--sw-purple-600);border-color:var(--sw-purple-300)}.btn-secondary:hover{background:var(--sw-purple-50);border-color:var(--sw-purple-600)}.btn-ghost{background:transparent;color:var(--gray-600);border-color:transparent}.btn-ghost:hover{background:var(--gray-100);color:var(--gray-900)}.btn-sm{min-height:36px;padding:0 var(--space-3);font-size:var(--text-sm)}.btn-md{min-height:44px;padding:0 var(--space-5);font-size:var(--text-md)}.btn-lg{min-height:52px;padding:0 var(--space-6);font-size:var(--text-lg)}.btn-primary:disabled,.btn-secondary:disabled,.btn-ghost:disabled{opacity:.45;cursor:not-allowed;box-shadow:none}.badge{display:inline-flex;align-items:center;gap:var(--space-1);padding:2px var(--space-2);border-radius:var(--radius-full);font-size:var(--text-xs);line-height:var(--leading-xs);font-weight:600;background:var(--gray-100);color:var(--gray-700)}.badge-purple{background:var(--sw-purple-100);color:var(--sw-purple-700)}.badge-green{background:var(--color-correct-bg);color:var(--color-correct)}.badge-red{background:var(--color-incorrect-bg);color:var(--color-incorrect)}.badge-yellow{background:var(--color-warning-bg);color:var(--color-warning)}.badge-streak{background:var(--color-warning-bg);color:var(--color-incorrect);font-weight:500}.input-field{height:44px;width:100%;padding:0 var(--space-4);border:1px solid var(--gray-300);border-radius:var(--radius-md);background:var(--surface-card);font-family:var(--font-sans);font-size:var(--text-md);color:var(--gray-900);transition:border-color var(--transition-base),box-shadow var(--transition-base)}.input-field::placeholder{color:var(--gray-500)}.input-field:focus{outline:none;border-color:var(--sw-purple-600);box-shadow:0 0 0 3px #6b2d8b2e}.skeleton{background:linear-gradient(90deg,var(--gray-200) 25%,var(--gray-100) 37%,var(--gray-200) 63%);background-size:960px 100%;animation:shimmer 1.4s ease-in-out infinite;border-radius:var(--radius-md)}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.001ms!important;animation-iteration-count:1!important;transition-duration:.001ms!important;scroll-behavior:auto!important}}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}*{box-sizing:border-box}body{margin:0;color:var(--sw-ink, #292A22);background:var(--surface-page, #F6F5EF);font-family:var(--font-sans);font-weight:400;font-variant-numeric:tabular-nums lining-nums;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}button,input,textarea,select{font:inherit}button{display:inline-flex;min-height:38px;align-items:center;justify-content:center;gap:.45rem;border:1px solid #b8c2b5;border-radius:7px;color:#17221e;background:#fff;cursor:pointer}button:hover{border-color:#537567;background:#f1f5ef}button.primary{color:#fff;border-color:#245a45;background:#245a45}button.is-active,button.is-selected{color:#fff;border-color:#7c4f19;background:#7c4f19}button.danger{width:100%;margin-top:1rem;color:#8a1f1f;border-color:#d6adad}.app-shell{width:min(1480px,100%);margin:0 auto;padding:20px}.app-header{display:flex;align-items:flex-end;justify-content:space-between;gap:1rem;padding-bottom:16px;border-bottom:1px solid #dce2d9}.app-header h1{margin:0;font-size:clamp(1.8rem,3vw,2.7rem);line-height:1}.app-header p{margin:.35rem 0 0;color:#52615b}.eyebrow{margin:0 0 .35rem;color:#6d562d;font-size:.78rem;font-weight:500;letter-spacing:0;text-transform:none}.header-actions{display:flex;flex-wrap:wrap;align-items:center;justify-content:flex-end;gap:.75rem}.file-import{display:inline-flex;min-height:38px;align-items:center;gap:.5rem;padding:.45rem .7rem;border:1px solid #b8c2b5;border-radius:7px;background:#fff;cursor:pointer}.bank-select,.navigator-toolbar label{display:grid;gap:.25rem;color:#52615b;font-size:.78rem;font-weight:500;text-transform:none}.bank-select select,.navigator-toolbar select{min-height:38px;max-width:380px;border:1px solid #b8c2b5;border-radius:7px;color:#17221e;background:#fff;text-transform:none}.file-import input{max-width:210px}.load-warning{margin:12px 0 0;padding:.75rem .9rem;border:1px solid #e2c16c;border-radius:7px;color:#71521d;background:#fff8df}.navigator-panel{margin:16px 0;padding:12px;border:1px solid #d6ddd2;border-radius:8px;background:#fff}.navigator-toolbar{display:flex;flex-wrap:wrap;align-items:end;gap:.75rem;margin-bottom:12px}.navigator-stat{display:grid;min-width:88px;min-height:52px;align-content:center;padding:.5rem .65rem;border:1px solid #d6ddd2;border-radius:7px;background:#f7f8f5}.navigator-stat strong{font-size:1.15rem;line-height:1}.navigator-stat span,.range-controls span{color:#52615b;font-size:.78rem}.range-controls{display:flex;min-height:38px;align-items:center;gap:.55rem;margin-left:auto}.jump-control{display:flex;gap:.4rem}.jump-control input{width:88px;min-height:38px;border:1px solid #b8c2b5;border-radius:7px;padding:0 .45rem}.range-controls button:disabled{cursor:not-allowed;opacity:.45}.question-nav{display:grid;grid-template-columns:repeat(auto-fill,minmax(46px,1fr));gap:8px;margin:0}.question-button{position:relative;min-height:42px;padding:0;font-weight:500}.question-button svg{position:absolute;right:4px;bottom:4px}.question-button.is-current{outline:3px solid #2f6f91;outline-offset:1px}.question-button.is-correct{background:#dff1e5;border-color:#7db58b}.question-button.is-incorrect{background:#f7dfdf;border-color:#d29393}.question-button.is-needs_review,.question-button.is-answered{background:#f6edcf;border-color:#d1b057}.workspace{display:grid;grid-template-columns:minmax(0,1fr) 360px;gap:18px;align-items:start}.practice-column{display:grid;gap:14px}.question-card,.tool-panel,.adaptive-panel,.mastery-panel{border:1px solid #d6ddd2;border-radius:8px;background:#fff;box-shadow:0 1px 2px #14201c0a}.question-card{padding:22px}.question-meta{display:flex;flex-wrap:wrap;gap:.45rem;margin-bottom:1rem}.question-meta span{padding:.25rem .5rem;border:1px solid #d6ddd2;border-radius:999px;color:#35453f;background:#f7f8f5;font-size:.82rem}.question-card h2{margin:0 0 1.4rem;font-size:clamp(1.35rem,2vw,2rem);line-height:1.3}.choices{display:grid;gap:.75rem}.choice{justify-content:flex-start;min-height:56px;padding:.75rem .9rem;text-align:left}.choice strong{display:inline-grid;width:28px;height:28px;place-items:center;border-radius:50%;background:#16201d14}.written-answer{width:100%;min-height:140px;padding:.8rem;resize:vertical;border:1px solid #b8c2b5;border-radius:7px}.math-entry-host{max-width:720px}.graph-placeholder{display:grid;grid-template-columns:46px minmax(0,1fr);gap:.8rem;margin:0 0 1.2rem;padding:.85rem;border:1px dashed #ba8b35;border-radius:8px;background:#fff8e8}.graph-placeholder-icon{display:grid;width:42px;height:42px;place-items:center;border-radius:7px;color:#724a12;background:#f5dfb9}.graph-placeholder h3,.graph-placeholder p{margin:0}.graph-placeholder h3{font-size:1rem}.graph-placeholder p{margin-top:.25rem;color:#5f513f}.graph-placeholder dl{display:grid;gap:.35rem;margin:.7rem 0 0}.graph-placeholder dl div{display:grid;grid-template-columns:140px minmax(0,1fr);gap:.5rem}.graph-placeholder dt{color:#71521d;font-weight:500}.graph-placeholder dd{min-width:0;margin:0;overflow-wrap:anywhere}.tool-panel,.adaptive-panel,.mastery-panel{padding:16px}.button-row{display:flex;flex-wrap:wrap;gap:.6rem}.result,.adaptive-message,.weak-message{margin:.8rem 0 0;padding:.7rem .8rem;border-radius:7px}.result-correct{color:#174d28;background:#e3f3e8}.result-incorrect{color:#7f1d1d;background:#f9e4e4}.result-needs_review,.result-unanswered,.adaptive-message{color:#71521d;background:#f8efd4}.weak-message{color:#7f1d1d;background:#f9e7da}.answer-reveal{display:flex;flex-wrap:wrap;align-items:baseline;gap:.75rem;margin-top:.9rem;padding-top:.8rem;border-top:1px solid #e0e5dd}.answer-reveal span{color:#52615b;font-size:.86rem;font-weight:500;text-transform:none}.answer-reveal strong{font-size:1.3rem}.solution{margin-top:1rem;color:#24322d}.solution ol{margin-bottom:0;padding-left:1.4rem}.adaptive-panel h3,.mastery-panel h3{margin:0 0 .8rem;font-size:1rem}.summary-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:.5rem;margin:0 0 1rem}.summary-grid div{padding:.7rem;border:1px solid var(--border-subtle);border-radius:7px;background:var(--surface-page)}.summary-grid dt{color:var(--gray-600);font-size:.78rem}.summary-grid dd{margin:.2rem 0 0;font-size:1.25rem;font-weight:500}.mastery-list{display:grid;gap:.7rem}.mastery-strand-group{display:grid;gap:.45rem}.mastery-strand-group+.mastery-strand-group{margin-top:.55rem}.mastery-strand-label{margin:0;font-size:var(--text-xs, .78rem);font-weight:500;letter-spacing:.01em;color:#64746d}.mastery-row{display:grid;grid-template-columns:minmax(0,1fr) 94px 36px;gap:.55rem;align-items:center}.mastery-row span,.mastery-row small{display:block}.mastery-row span{font-weight:500}.mastery-row small{color:#64746d}.mastery-row meter{width:100%}.qa-status-panel{margin-top:18px;padding:12px;border:1px solid #d6ddd2;border-radius:8px;background:#fff}.qa-status-panel summary{cursor:pointer;font-weight:500}.qa-status-panel dl{display:grid;grid-template-columns:repeat(auto-fit,minmax(230px,1fr));gap:.6rem;margin:.9rem 0 0}.qa-status-panel div{padding:.6rem;border:1px solid #e0e5dd;border-radius:7px;background:#f7f8f5}.qa-status-panel dt{color:#52615b;font-size:.78rem;font-weight:500;text-transform:none}.qa-status-panel dd{margin:.2rem 0 0;overflow-wrap:anywhere}.load-state{padding:3rem;color:#24322d}@media(max-width:980px){.workspace{grid-template-columns:1fr}.app-header{align-items:flex-start;flex-direction:column}.header-actions{justify-content:flex-start}}@media(max-width:620px){.app-shell{padding:12px}.question-card,.tool-panel,.adaptive-panel,.mastery-panel{padding:13px}.button-row button,.file-import,.bank-select,.bank-select select,.navigator-toolbar label,.navigator-toolbar select,.range-controls{width:100%}.range-controls{justify-content:space-between}.jump-control,.jump-control input,.jump-control button{width:100%}.graph-placeholder,.graph-placeholder dl div,.summary-grid{grid-template-columns:1fr}}.app-shell{width:min(1120px,100%);padding:14px 18px}.app-header{padding:10px 14px;border-radius:10px}.app-header h1{font-size:clamp(1.25rem,1.9vw,1.7rem)}.app-header p{margin-top:.2rem;font-size:.88rem}.eyebrow{margin-bottom:.18rem;font-size:.7rem}.header-actions{gap:.65rem}.bank-select{gap:.15rem;font-size:.7rem}.bank-select select{min-height:34px;max-width:330px;font-size:.88rem}.header-progress{min-width:200px;padding:.45rem .6rem}.header-progress strong,.header-progress span{font-size:.82rem}.student-layout{grid-template-columns:minmax(0,1fr) 286px;gap:14px;margin-top:14px}.practice-column{gap:9px}.student-sidebar{gap:10px;top:12px}.question-card{padding:16px 18px;border-radius:10px}.question-card h2{margin-bottom:1rem;font-size:clamp(1.35rem,2.25vw,2rem);line-height:1.18}.question-meta{gap:.32rem;margin-bottom:.75rem}.question-meta span{padding:.18rem .42rem;font-size:.72rem}.choices{gap:.55rem}.choice{min-height:54px;padding:.58rem .72rem;border-radius:8px}.choice strong{width:24px;height:24px;font-size:.84rem}.answer-panel,.solution-panel,.adaptive-panel,.mastery-panel{padding:10px;border-radius:10px}.answer-panel .button-row{display:grid;grid-template-columns:1.15fr .85fr .8fr 1fr .8fr;gap:.4rem}.answer-panel button,.solution-panel button,.adaptive-panel button{min-height:34px;padding:.35rem .48rem;font-size:.84rem}.result,.answer-reveal,.solution,.adaptive-message,.weak-message{margin-top:.55rem}.solution-panel{padding-top:8px;padding-bottom:8px}.solution{font-size:.92rem}.drawer-summary,.mastery-detail summary,.admin-import-panel summary,.qa-status-panel summary{padding:10px 12px;font-size:.9rem}.navigator-panel{padding:0 12px 12px}.navigator-toolbar{gap:.5rem;padding-top:10px}.navigator-stat{min-width:66px;min-height:40px;padding:.38rem .48rem}.navigator-stat strong{font-size:.96rem}.navigator-stat span,.range-controls span,.navigator-toolbar label{font-size:.7rem}.navigator-toolbar select,.jump-control input,.jump-control button{min-height:32px;font-size:.82rem}.question-nav{grid-template-columns:repeat(auto-fill,minmax(38px,1fr));gap:6px;max-height:220px}.question-button{min-height:34px;font-size:.82rem}.mastery-panel h3,.adaptive-panel h3,.adaptive-debug-panel h3{margin-bottom:.55rem;font-size:.95rem}.practice-progress{gap:.22rem;margin-bottom:.65rem}.practice-progress span,.weak-area-list h4{font-size:.82rem}.summary-grid{gap:.35rem}.summary-grid div{padding:.42rem}.summary-grid dt{font-size:.68rem}.summary-grid dd{font-size:.92rem}.weak-area-list{margin-top:.55rem;padding-top:.55rem}.weak-area-list p{margin:.25rem 0;font-size:.82rem}.adaptive-panel .button-row{gap:.38rem}.adaptive-debug-panel{padding:10px;border:1px solid #d6ddd2;border-radius:10px;background:#fff;box-shadow:0 8px 24px #1c2d250e}.adaptive-debug-panel dl{display:grid;gap:.35rem;margin:0}.adaptive-debug-panel div{display:grid;gap:.1rem;padding-bottom:.3rem;border-bottom:1px solid #edf1eb}.adaptive-debug-panel dt{color:#52615b;font-size:.68rem;font-weight:500;text-transform:none}.adaptive-debug-panel dd{margin:0;overflow-wrap:anywhere;font-size:.78rem}@media(max-width:1100px){.student-layout{grid-template-columns:minmax(0,1fr) 260px}.answer-panel .button-row{grid-template-columns:repeat(3,1fr)}}@media(max-width:900px){.student-layout{grid-template-columns:1fr}.student-sidebar{position:static}}body{color:#16201d;background:linear-gradient(180deg,#eef4f0,#f8faf7 260px),#f8faf7}.app-shell{width:min(1180px,100%);padding:24px}.debug-mode-banner{margin-bottom:12px;padding:.55rem .75rem;border:1px solid #caa15b;border-radius:8px;color:#65440f;background:#fff5dc;font-weight:500}.app-header{align-items:center;padding:12px 20px;border:1px solid #dce5dc;border-radius:12px;background:#ffffffeb;box-shadow:0 8px 28px #192a2212}.app-header h1{font-size:clamp(1.55rem,2.4vw,2.25rem)}.header-actions{gap:1rem}.header-progress{display:grid;gap:.2rem;min-width:230px;padding:.65rem .8rem;border:1px solid #dce5dc;border-radius:8px;background:#f8faf7}.header-progress strong{font-size:.98rem;font-weight:500}.header-progress span{color:#52615b;font-size:.86rem}.student-layout{display:grid;grid-template-columns:minmax(0,1fr) 320px;gap:20px;align-items:start;margin-top:20px}.student-sidebar{display:grid;gap:14px;position:sticky;top:18px}.question-card{padding:clamp(22px,3vw,34px);border:1px solid #d9e2d8;border-radius:12px;box-shadow:0 16px 40px #1c2d2517}.question-card h2{margin-bottom:1.8rem;font-size:clamp(1.65rem,2.6vw,2.45rem);line-height:1.22}.question-meta{margin-bottom:1.1rem}.question-meta span{border-radius:6px;color:#415049;font-size:.78rem;background:#f3f6f1}.choices{gap:.9rem}.choice{min-height:68px;padding:.9rem 1rem;border-radius:10px;background:#fff;box-shadow:0 1px #14201c0a}.choice:hover{transform:translateY(-1px)}.answer-panel,.solution-panel,.navigator-shell,.adaptive-panel,.mastery-panel,.admin-import-panel,.qa-status-panel{border:1px solid #d6ddd2;border-radius:12px;background:#fff;box-shadow:0 8px 24px #1c2d250e}.answer-panel,.solution-panel,.adaptive-panel,.mastery-panel,.admin-import-panel,.qa-status-panel{padding:16px}.answer-panel .button-row{gap:.55rem}.answer-panel button{min-height:42px}.solution-panel{display:grid;gap:.8rem}.drawer-summary,.mastery-detail summary,.admin-import-panel summary,.qa-status-panel summary{list-style:none;padding:16px;cursor:pointer;font-weight:500}.drawer-summary::-webkit-details-marker,.mastery-detail summary::-webkit-details-marker,.admin-import-panel summary::-webkit-details-marker,.qa-status-panel summary::-webkit-details-marker{display:none}.drawer-summary:after,.mastery-detail summary:after,.admin-import-panel summary:after,.qa-status-panel summary:after{content:"Open";float:right;color:#52615b;font-size:.82rem}details[open]>.drawer-summary:after,.mastery-detail[open] summary:after,.admin-import-panel[open] summary:after,.qa-status-panel[open] summary:after{content:"Close"}.navigator-panel{margin:0;padding:0 16px 16px;border:0;border-top:1px solid #e5ebe2;border-radius:0 0 12px 12px;box-shadow:none}.navigator-toolbar{align-items:end;padding-top:14px}.navigator-stat{min-width:78px;min-height:46px}.question-nav{grid-template-columns:repeat(auto-fill,minmax(42px,1fr));max-height:280px;overflow:auto;padding-right:4px}.question-button{min-height:38px;border-radius:7px;font-size:.9rem}.mastery-panel h3,.adaptive-panel h3{margin:0 0 .85rem}.practice-progress{display:grid;gap:.35rem;margin-bottom:1rem}.practice-progress span{color:#35453f;font-weight:500}.practice-progress progress{width:100%;height:12px;accent-color:#245a45}.summary-grid{grid-template-columns:repeat(3,1fr)}.summary-grid div{padding:.55rem}.summary-grid dd{font-size:1.05rem}.weak-area-list{margin-top:.8rem;padding-top:.8rem;border-top:1px solid #e5ebe2}.weak-area-list h4{margin:0 0 .55rem;font-size:.9rem}.weak-area-list p{display:flex;justify-content:space-between;gap:.75rem;margin:.35rem 0;color:#52615b;font-size:.9rem}.mastery-detail{margin-top:.8rem;border-top:1px solid #e5ebe2}.mastery-detail summary{padding:.8rem 0 .2rem}.mastery-list{max-height:380px;overflow:auto;padding-right:4px}.adaptive-panel .button-row{display:grid;grid-template-columns:1fr}.weak-message,.adaptive-message,.result{border-radius:8px}.graph-placeholder{border-style:solid;border-color:#d7c39b;background:#fff9ed}.graph-placeholder p{max-width:680px}.admin-import-panel,.qa-status-panel{margin-top:16px}@media(max-width:980px){.student-layout{grid-template-columns:1fr}.student-sidebar{position:static}.app-header{align-items:flex-start;flex-direction:column}.header-actions,.bank-select,.bank-select select,.header-progress{width:100%}}@media(max-width:620px){.app-shell{padding:12px}.answer-panel .button-row{display:grid;grid-template-columns:1fr 1fr}.answer-panel .button-row button:first-child{grid-column:1 / -1}.summary-grid{grid-template-columns:1fr}}.teacher-dashboard{max-width:1100px;margin:0 auto;padding:var(--space-6);display:flex;flex-direction:column;gap:var(--space-6)}.teacher-dashboard .dashboard-header h1{margin:var(--space-1) 0;font-weight:500}.teacher-dashboard section{background:var(--surface-card);border:1px solid var(--border-subtle);border-radius:var(--radius-md);padding:var(--space-4) var(--space-5)}.dashboard-back{display:inline-flex;align-items:center;min-height:36px;padding:6px 14px;border:1px solid var(--border-subtle);border-radius:var(--radius-md, 8px);background:var(--surface-card);color:var(--gray-700);font-weight:500;text-decoration:none}.dashboard-back:hover{border-color:var(--color-correct);color:var(--color-correct);background:var(--surface-card);text-decoration:none}.dashboard-empty{text-align:center}.dashboard-bank-card{margin-top:12px;padding:12px 0;border-top:1px solid var(--border-subtle)}.dashboard-bank-card:first-of-type{border-top:none}.dashboard-bank-head{display:flex;justify-content:space-between;align-items:baseline;gap:12px}.dashboard-outcome-table{width:100%;border-collapse:collapse;font-size:.9rem;margin:8px 0 12px}.dashboard-outcome-table th,.dashboard-outcome-table td{text-align:left;padding:4px 8px;border-bottom:1px solid var(--border-subtle)}.dashboard-muted{opacity:.7;font-size:.9rem}.teacher-dashboard .dashboard-pdf a{color:var(--sw-pink-600);font-weight:600;text-decoration:none}.teacher-dashboard .dashboard-pdf a:hover{text-decoration:underline}.dashboard-struggles ul{margin:8px 0 0;padding-left:18px;display:flex;flex-direction:column;gap:6px}.figure{display:block;margin:0 0 14px}.question-figure{max-width:480px}.figure-svg{width:100%;height:auto;max-height:320px;color:var(--text-primary, #1f2430)}.figure-svg text{paint-order:stroke;stroke:var(--surface-card, #fff);stroke-width:3px;stroke-linejoin:round;font-weight:600}.choice-figure{margin:0}.choice-figure .figure-svg{max-height:120px}.choice-figure .figure-fallback{min-height:64px}.figure-img{max-width:100%;height:auto;border-radius:8px}.figure-fallback{display:flex;align-items:center;gap:8px;padding:14px 16px;border:1px dashed var(--border-subtle, #cdd3e0);border-radius:10px;background:var(--surface-muted, #f6f7fb);color:var(--text-secondary, #555);font-size:13px}.figure-fallback-icon{font-size:18px}.figure{--fig-stroke: var(--text-primary, #1f2430);--fig-accent: var(--sw-sage, #4a7c59);--fig-hidden-color: var(--text-secondary, #6b7280);--fig-construction-color: var(--text-secondary, #6b7280);--fig-fill-soft: color-mix(in srgb, var(--fig-accent) 12%, transparent);--fig-charge-pos: #c0392b;--fig-charge-neg: #2c6fbf}.figure-label{color:var(--fig-stroke);line-height:1;white-space:nowrap}.figure-label .math-rendered{color:var(--fig-stroke)}.figure-table-wrap{overflow-x:auto;margin:0 0 14px;max-width:100%}.figure-table{border-collapse:collapse;width:auto;min-width:min(100%,280px);font-size:14px;color:var(--text-primary, #1f2430)}.figure-table caption{caption-side:top;text-align:left;font-size:12px;color:var(--text-secondary, #6b7280);padding:0 0 6px}.figure-table th,.figure-table td{border:1px solid var(--border-subtle, #cdd3e0);padding:6px 12px;white-space:nowrap}.figure-table thead th{background:var(--fig-fill-soft);font-weight:600}.figure-table tbody tr:nth-child(2n){background:var(--surface-muted, rgba(0, 0, 0, .02))}.figure-table-hot{color:var(--fig-accent)}.figure-gallery{max-width:1100px;margin:0 auto;padding:24px 20px 64px;color:var(--text-primary, #1f2430)}.figure-gallery-head{border-bottom:1px solid var(--border-subtle, #cdd3e0);padding-bottom:14px;margin-bottom:20px}.figure-gallery-head h1{margin:0 0 4px;font-size:22px}.figure-gallery-sub{margin:0 0 10px;color:var(--text-secondary, #6b7280);font-size:13px}.figure-gallery-sub code{background:var(--surface-muted, #f6f7fb);padding:1px 5px;border-radius:4px}.figure-gallery-controls{display:flex;gap:18px;flex-wrap:wrap;font-size:13px}.figure-gallery-controls label{display:inline-flex;gap:6px;align-items:center;cursor:pointer}.figure-gallery-group{margin:0 0 28px}.figure-gallery-group-title{font-size:16px;margin:0 0 12px;display:flex;align-items:baseline;gap:10px}.figure-gallery-group-id{font-size:11px;color:var(--text-secondary, #6b7280);font-weight:400;font-family:monospace}.figure-gallery-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(190px,1fr));gap:14px}.figure-gallery-tile{margin:0;border:1px solid var(--border-subtle, #cdd3e0);border-radius:10px;padding:10px;background:var(--surface-card, #fff)}.figure-gallery-canvas{display:flex;align-items:center;justify-content:center;min-height:140px}.figure-gallery-canvas .figure{margin:0;width:100%}.figure-gallery-caption{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-top:8px;font-size:12px}.figure-gallery-label{font-weight:600}.figure-gallery-gen{color:var(--text-secondary, #6b7280);font-family:monospace;font-size:10px}.figure-gallery-spec{margin:8px 0 0;max-height:160px;overflow:auto;font-size:10px;line-height:1.3;background:var(--surface-muted, #f6f7fb);border-radius:6px;padding:6px}:root{--sw-purple: var(--sw-purple-600, #6B2D8B);--sw-purple-dark: var(--sw-purple-700, #4A1D6B);--sw-pink: var(--sw-pink-500, #E91E8C);--sw-pink-hover: var(--sw-pink-600, #C41870);--sw-lavender: var(--sw-lavender-100, #F0E8F8);--sw-lavender-light: var(--sw-lavender-50, #F8F4FC);--sw-text-dark: var(--sw-ink, #292A22);--sw-text-body: var(--sw-ink, #292A22);--sw-text-light: #FFFFFF;--sw-gray-light: var(--sw-neutral-chip, #E6E3DA);--sw-gray-border: var(--sw-border, #E1DFD3);--sw-success: var(--sw-sage, #4F7A6A);--sw-error: var(--sw-terracotta, #A65A3E);--sw-correct: var(--sw-sage, #4F7A6A);--sw-incorrect: var(--sw-terracotta, #A65A3E);--sw-neutral: var(--sw-sage, #4F7A6A);--sw-radius: 10px;--sw-radius-sm: 7px;--sw-gap: 1rem;--sw-shadow: 0 2px 10px rgba(33, 55, 47, .08);--sw-shadow-lg: 0 8px 28px rgba(33, 55, 47, .16);--sw-font: "IBM Plex Sans", ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;--sw-transition: .2s ease}body{color:var(--sw-text-body);background:var(--sw-lavender-light);font-family:var(--sw-font);font-size:16px;line-height:1.5;font-weight:400;font-variant-numeric:tabular-nums lining-nums}button{border:1px solid var(--sw-gray-border);border-radius:var(--sw-radius-sm);color:var(--sw-text-dark);background:#fff;transition:background var(--sw-transition),border-color var(--sw-transition),color var(--sw-transition),transform var(--sw-transition),box-shadow var(--sw-transition)}button:hover{border-color:var(--sw-purple);background:var(--sw-lavender)}button:active{transform:translateY(1px)}button:focus-visible{outline:3px solid var(--sw-pink);outline-offset:2px}button.primary{color:var(--sw-text-light);border-color:var(--sw-pink);background:var(--sw-pink);font-weight:600;box-shadow:0 2px 8px #e91e8c47}button.primary:hover{border-color:var(--sw-pink-hover);background:var(--sw-pink-hover)}button.secondary{color:var(--sw-purple);border:1.5px solid var(--sw-purple);background:transparent;font-weight:600}button.secondary:hover{background:var(--sw-lavender)}button.is-active,button.is-selected{color:var(--sw-text-light);border-color:var(--sw-purple);background:var(--sw-purple)}button.danger{color:var(--sw-error);border-color:#e0a8a8;background:#fff}button.danger:hover{background:#fbeaea;border-color:var(--sw-error)}.app-header{display:grid;grid-template-columns:auto minmax(0,1fr) auto;grid-template-areas:"brand name actions";align-items:center;gap:1rem;padding:.3rem 1.25rem;position:relative;background:var(--sw-purple);color:var(--sw-text-light);border-radius:0 0 var(--sw-radius) var(--sw-radius);box-shadow:var(--sw-shadow)}.sw-brand{grid-area:brand;display:flex;align-items:center;gap:.7rem;min-width:0}.sw-logo-wrap{display:inline-flex;align-items:center;line-height:0;flex:none}.sw-logo{height:80px;width:auto;flex:none;background:none;object-fit:contain;padding:0;box-shadow:none;border-radius:0}.sw-logo-fallback{width:40px;height:56px;border-radius:10px;flex:none;display:grid;place-items:center;font-weight:500;font-size:1.3rem;color:var(--sw-purple);background:#fff}.sw-brand-text{display:flex;flex-direction:column;line-height:1.18;min-width:0;gap:.05rem}.sw-brand-name{font-size:1.12rem;font-weight:500;letter-spacing:0;color:#fff;text-transform:none;white-space:nowrap;text-shadow:0 1px 2px rgba(0,0,0,.28)}.sw-brand-tagline{font-size:.76rem;font-weight:400;font-style:italic;letter-spacing:.02em;color:#fffffff0;white-space:nowrap;text-transform:none;text-shadow:0 1px 2px rgba(0,0,0,.28)}.app-header .header-bank-name{grid-area:name;justify-self:center;max-width:100%;text-align:center;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;font-size:1.45rem;font-weight:500;letter-spacing:.01em;color:#fff;pointer-events:none}.app-header :is(h1,h2,h3,h4){font-weight:500}.app-header .header-actions{grid-area:actions;display:flex;align-items:center;gap:.6rem}.app-header select,.app-header .bank-select-quiet{background:#ffffff1f;color:#fff;border:1px solid rgba(255,255,255,.22);border-radius:999px;padding:.34rem .7rem;font-size:.78rem;font-weight:600;max-width:14rem}.app-header select option{color:#1a1a1a}.app-header .header-progress,.app-header .sw-subject-chip{background:#ffffff1f;color:#fff;font-weight:600;font-size:.8rem;padding:.3rem .7rem;border-radius:999px}.app-header .sw-subject-chip{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:11rem;flex:none}.app-header .header-progress span{color:#fff}.sw-footer{margin:2rem auto 1rem;text-align:center;font-size:.82rem;color:var(--sw-purple-dark)}.sw-footer strong{color:var(--sw-purple)}.sw-footer a{color:var(--sw-pink-600);text-decoration:none}.sw-footer a:hover{text-decoration:underline}.question-card{background:#fff;border:1px solid var(--sw-gray-border);border-radius:var(--sw-radius);box-shadow:var(--sw-shadow)}.eyebrow{color:var(--sw-pink-600);font-weight:500;letter-spacing:.04em;text-transform:none;font-size:.72rem}.question-meta span{background:var(--sw-lavender);color:var(--sw-purple-dark);border-radius:999px;padding:.15rem .6rem;font-size:.74rem}.question-card h2{color:var(--sw-text-dark);font-size:var(--text-xl);line-height:1.4;font-weight:500}.question-split{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.1fr);gap:1.1rem;align-items:start}.question-context{background:var(--sw-lavender);border:2px solid var(--sw-purple);border-radius:var(--sw-radius);padding:1rem 1.1rem;max-height:70vh;overflow:auto}.question-context-label{font-size:.72rem;font-weight:500;text-transform:none;letter-spacing:.05em;color:var(--sw-purple);margin-bottom:.4rem}.question-stem{min-width:0}@media(max-width:880px){.question-split{grid-template-columns:1fr}.question-context{max-height:none}}.choices{display:flex;flex-direction:column;gap:.6rem}.choice{display:flex;align-items:center;gap:.9rem;width:100%;text-align:left;padding:.85rem 1rem;border:1.5px solid var(--sw-gray-border);border-radius:var(--sw-radius);background:#fff;min-height:52px;font-size:var(--text-md);line-height:1.45;transition:background-color var(--sw-transition),border-color var(--sw-transition),color var(--sw-transition)}.choice:hover{border-color:var(--sw-purple);background:var(--sw-lavender-light)}.choice strong{flex:none;width:30px;height:30px;border-radius:50%;display:grid;place-items:center;background:var(--sw-lavender);color:var(--sw-purple-dark);font-weight:500}.choice.is-selected{border-color:var(--sw-purple);background:var(--sw-lavender);box-shadow:inset 0 0 0 1px var(--sw-purple);color:var(--sw-ink)}.choice.is-selected strong{background:var(--sw-purple);color:#fff}.choice.is-correct{border-color:var(--sw-correct);background:var(--sw-correct-tint)}.choice.is-correct strong{background:var(--sw-correct);color:#fff}.choice.is-incorrect{border-color:var(--sw-border);background:var(--surface-card)}.choice-mark{margin-left:auto;flex:none;display:inline-flex;align-items:center;justify-content:center;width:22px;height:22px;animation:calmFadeIn var(--sw-transition)}.choice-mark-correct{color:var(--sw-correct);font-weight:500;font-size:17px;line-height:1}.choice-mark-correct:before{content:"✓"}.choice.is-incorrect .choice-mark-wrong{color:var(--sw-terracotta-soft);font-weight:500;font-size:17px;line-height:1}.choice-mark-wrong:before{content:"×"}.choice-distractor{display:block;margin-top:.3rem;font-size:.82rem;color:var(--sw-terracotta);font-style:italic}.answer-panel{border-top:1px solid var(--sw-gray-border)}.result{border-radius:var(--sw-radius-sm);padding:.6rem .85rem;font-weight:600}.result-correct{background:#eaf5ea;color:var(--sw-correct)}.result-incorrect{background:#fbeaea;color:var(--sw-incorrect)}.result-needs_review{background:var(--sw-lavender);color:var(--sw-purple-dark)}.answer-reveal{border:1px dashed var(--sw-purple);background:var(--sw-lavender-light);border-radius:var(--sw-radius-sm);color:var(--sw-purple-dark)}.solution-bar{display:flex;align-items:center;justify-content:space-between;background:var(--sw-purple);color:#fff;padding:.55rem .95rem;border-radius:var(--sw-radius-sm) var(--sw-radius-sm) 0 0;font-weight:500;letter-spacing:.08em}.solution-bar .solution-source{font-weight:500;font-size:.8rem;letter-spacing:.02em;opacity:.92}.solution-body{border:1.5px solid var(--sw-purple);border-top:none;border-radius:0 0 var(--sw-radius-sm) var(--sw-radius-sm);padding:1rem 1.1rem;background:var(--sw-card);animation:sw-slide-up .24s ease;font-size:var(--text-md);line-height:1.6}.solution-correct{display:inline-flex;gap:.4rem;align-items:center;font-weight:500;color:var(--sw-correct);background:#eaf5ea;padding:.3rem .7rem;border-radius:999px}.solution-section-title{color:var(--sw-purple);font-weight:500;font-size:var(--text-md);margin:.9rem 0 .35rem}.solution-key-concept{margin-top:1rem;padding:.7rem .9rem;background:var(--sw-lavender);border-left:4px solid var(--sw-pink);border-radius:var(--sw-radius-sm)}.solution-steps{padding-left:1.2rem}.solution-steps li{margin:.3rem 0}.adaptive-panel,.adaptive-message{color:var(--sw-purple-dark)}.adaptive-prompt{display:flex;align-items:center;gap:.6rem;flex-wrap:wrap;background:var(--sw-lavender);border:1px solid var(--sw-purple);border-radius:var(--sw-radius);padding:.7rem .9rem;color:var(--sw-purple-dark);animation:sw-fade .24s ease}.weak-message{color:var(--sw-purple)}.mastery-panel,.navigator-panel,.qa-status-panel,.adaptive-debug-panel,.admin-import-panel{background:#fff;border:1px solid var(--sw-gray-border);border-radius:var(--sw-radius);box-shadow:var(--sw-shadow)}.mastery-row span{color:var(--sw-purple-dark)}.math-keyboard{border:1px solid var(--sw-gray-border);border-radius:var(--sw-radius);background:#fff;box-shadow:var(--sw-shadow-lg);overflow:hidden}.mk-tabs{display:flex;background:var(--sw-lavender)}.mk-tab{flex:1;border:none;border-radius:0;background:transparent;padding:.55rem;font-weight:600;color:var(--sw-purple-dark);min-height:42px}.mk-tab.is-active{background:#fff;color:var(--sw-purple);box-shadow:inset 0 -3px 0 var(--sw-pink)}.mk-keys{display:grid;grid-template-columns:repeat(6,1fr);gap:6px;padding:8px}.mk-key{min-height:44px;border:1px solid var(--sw-gray-border);border-radius:8px;background:#fff;display:grid;place-items:center}.mk-key:hover{background:var(--sw-lavender);border-color:var(--sw-purple)}.mk-key:active{background:var(--sw-lavender);transform:translateY(1px)}@media(max-width:560px){.mk-keys{grid-template-columns:repeat(4,1fr)}}.nr-grid{display:flex;gap:8px;flex-wrap:wrap}.nr-cell{width:46px;height:56px;text-align:center;font-size:1.4rem;font-weight:500;border:2px solid var(--sw-gray-border);border-radius:8px;color:var(--sw-text-dark)}.nr-cell:focus{outline:none;border-color:var(--sw-purple);box-shadow:0 0 0 3px #6b2d8b2e}.math-rendered .katex{font-size:1.04em}.math-rendered{font-weight:inherit;font-variant-numeric:tabular-nums lining-nums}.math-rendered--pre{white-space:pre-wrap}.math-block{display:block;margin:.5rem 0}.math-fallback{font-family:ui-monospace,monospace;color:var(--sw-error)}.math-preview{margin-top:.5rem;padding:.6rem .8rem;background:var(--sw-lavender-light);border:1px dashed var(--sw-purple);border-radius:var(--sw-radius-sm);min-height:2.2rem}.math-preview-label{font-size:.72rem;text-transform:none;letter-spacing:.05em;color:var(--sw-purple)}.sw-skeleton{background:linear-gradient(90deg,var(--sw-gray-light) 25%,#ece4f4 50%,var(--sw-gray-light) 75%);background-size:200% 100%;animation:sw-shimmer 1.3s infinite;border-radius:var(--sw-radius-sm)}.sw-skeleton-line{height:14px;margin:.5rem 0}.sw-error-state{border:1px solid #e0a8a8;background:#fbeaea;color:var(--sw-error);border-radius:var(--sw-radius);padding:1rem}.sw-error-state button{margin-top:.6rem}.sw-progress{height:8px;background:var(--sw-gray-border);border-radius:999px;overflow:hidden}.sw-progress-fill{height:100%;background:linear-gradient(90deg,var(--sw-purple),var(--sw-pink));transition:width var(--sw-transition)}@keyframes sw-fade{0%{opacity:0}to{opacity:1}}@keyframes sw-slide-up{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}@keyframes sw-shimmer{0%{background-position:200% 0}to{background-position:-200% 0}}@media(prefers-reduced-motion:reduce){*{animation:none!important;transition:none!important}}@media(max-width:1024px){.app-shell{width:100%;padding-left:.75rem;padding-right:.75rem}}@media(max-width:560px){body{font-size:16px}.choice{padding:.8rem}}.app-header{flex-direction:row;align-items:center;flex-wrap:nowrap}.app-header{padding-top:.25rem;padding-bottom:.25rem}.app-header .header-actions{width:auto;flex-wrap:nowrap;min-width:0;gap:.6rem;align-items:center}.app-header .sw-subject-chip,.app-header select,.app-header .header-progress{align-self:center}.app-header .bank-select-quiet{min-width:0;max-width:14rem}.app-header .header-progress{min-width:0;padding:.3rem .7rem;line-height:1.15;gap:0}.app-header .header-progress strong{font-size:.76rem;white-space:nowrap}.app-header .header-progress span{font-size:.66rem;white-space:nowrap}@media(max-width:1023px){.app-header .header-bank-name{display:none}}@media(min-width:1024px){.app-header .sw-subject-chip{display:none}}@media(max-width:767px){.app-header{padding:.5rem .7rem;gap:.5rem}.sw-logo{height:40px;width:auto}.sw-logo-fallback{width:30px;height:40px}.sw-brand-name{font-size:.9rem}.sw-brand-tagline{font-size:.6rem;letter-spacing:.005em;white-space:nowrap;text-shadow:0 1px 2px rgba(0,0,0,.28)}.app-header .header-progress{display:none}.app-header .sw-subject-chip{display:inline-block}.app-header .bank-select-quiet{display:none}.app-header .header-actions{gap:.4rem}}:where(a,button,input,select,textarea,[tabindex],summary,math-field):focus-visible{outline:2px solid var(--sw-purple-600);outline-offset:2px;border-radius:var(--radius-sm)}body.font-dyslexic,body.font-dyslexic .sw-brand-name,body.font-dyslexic button,body.font-dyslexic input,body.font-dyslexic select,body.font-dyslexic textarea{font-family:"OpenDyslexic",var(--font-sans)}.app-shell{min-height:100dvh}@media(max-width:767px){html{-webkit-text-size-adjust:100%}body{overflow-x:hidden}input,select,textarea{font-size:16px}.btn-md,.action-bar button,.filter-pill,.multipart-tab{min-height:48px}.subject-grid{grid-template-columns:1fr 1fr}.home-screen{padding-left:var(--space-4);padding-right:var(--space-4);padding-bottom:84px}.solution-sheet{max-height:86vh}.dot-grid{max-height:120px}}@media(min-width:768px)and (max-width:1024px){.subject-grid{grid-template-columns:repeat(2,1fr)}.sw-math-field,.nr-cell{min-height:52px}}.sw-brand-button{background:none;border:none;padding:0;margin:0;cursor:pointer;text-align:left;font:inherit;color:inherit}.header-menu{position:relative}.header-icon-btn{display:inline-flex;align-items:center;justify-content:center;width:44px;height:44px;border-radius:var(--radius-md);background:#ffffff1f;border:1px solid rgba(255,255,255,.22);color:#fff;cursor:pointer;transition:background var(--transition-base)}.header-icon-btn:hover{background:#ffffff3d}.header-dropdown{position:absolute;right:0;top:48px;min-width:220px;background:var(--surface-card);border:1px solid var(--border-subtle);border-radius:var(--radius-md);box-shadow:var(--shadow-lg);padding:var(--space-2);z-index:var(--z-dropdown);display:flex;flex-direction:column;gap:2px;animation:scaleIn var(--transition-fast);transform-origin:top right}.header-dropdown button,.header-dropdown a{display:flex;align-items:center;gap:var(--space-2);width:100%;justify-content:flex-start;min-height:40px;padding:0 var(--space-3);border:none;background:transparent;border-radius:var(--radius-sm);color:var(--gray-700);cursor:pointer;font-size:var(--text-sm);text-decoration:none}.header-dropdown button:hover,.header-dropdown a:hover{background:var(--sw-lavender-50);color:var(--sw-purple-700)}.header-dropdown .menu-section-label{font-size:var(--text-xs);color:var(--gray-400);text-transform:none;letter-spacing:.04em;padding:var(--space-2) var(--space-3) var(--space-1)}.header-dropdown .menu-danger:hover{background:var(--color-incorrect-bg);color:var(--color-incorrect)}.action-bar{display:flex;flex-direction:column;align-items:stretch;gap:var(--space-2);padding:var(--space-2) var(--space-3);margin-top:var(--space-3);background:var(--surface-card);border:1px solid var(--border-subtle);border-radius:var(--radius-lg);box-shadow:var(--shadow-sm)}.blank-answer-prompt{display:flex;align-items:center;gap:var(--space-2);margin:var(--space-2) 0 calc(-1 * var(--space-1));padding:var(--space-2) var(--space-3);background:var(--sw-neutral-chip);border-radius:var(--radius-sm);color:var(--sw-ink);font-size:var(--text-md);font-weight:500}.blank-answer-prompt svg{flex:none;color:var(--sw-muted)}.action-bar-utilities{display:flex;align-items:center;gap:var(--space-2);flex-wrap:wrap}.action-bar-primary{display:flex;justify-content:flex-end}.action-bar .btn-lg{padding:.5rem 1.4rem;font-size:.95rem;min-height:44px;min-width:150px}.btn-soft-sage{background:var(--sw-correct-tint);color:var(--sw-sage-strong);border:1px solid transparent}.btn-soft-sage:hover{background:var(--sw-correct-tint);border-color:var(--sw-sage)}.action-hint{box-shadow:0 1px 3px #4f7a6a2e;transform:translateY(-1px)}.action-bar .btn-ghost.is-active{color:var(--sw-sage-strong);background:var(--sw-correct-tint)}.orientation-row{display:flex;align-items:center;justify-content:space-between;gap:var(--space-2);flex-wrap:wrap;margin-bottom:var(--space-2)}.orientation-back{display:inline-flex;align-items:center;gap:4px;padding:4px 6px;background:transparent;border:none;color:var(--sw-muted);font-size:var(--text-sm);cursor:pointer}.orientation-back:hover:not(:disabled){color:var(--sw-ink)}.orientation-back:disabled{opacity:.4;cursor:default}.orientation-row .navigator-shell{border:none;background:transparent;box-shadow:none;border-radius:var(--radius-full);margin:0}.orientation-row .navigator-shell[open]{flex:1 1 100%;order:2;margin-top:var(--space-2)}.orientation-row .navigator-shell>.drawer-summary{display:inline-flex;align-items:center;min-height:44px;padding:4px 16px;border:1px solid var(--border-subtle);border-radius:var(--radius-full);background:var(--sw-neutral-chip);color:var(--sw-muted);font-size:var(--text-sm)}.orientation-row .navigator-shell>.drawer-summary:after{content:""}.orientation-row .navigator-shell[open]>.drawer-summary{background:var(--surface-card);color:var(--sw-ink)}.hint-window{position:fixed;left:50%;top:50%;transform:translate(-50%,-50%);width:420px;max-width:calc(100vw - 32px);max-height:min(70vh,480px);display:flex;flex-direction:column;background:var(--surface-card);border:1px solid var(--border-subtle);border-radius:var(--radius-lg);box-shadow:var(--shadow-xl);z-index:calc(var(--z-modal) + 1);overflow:hidden;animation:solutionWindowIn .2s ease}.hint-window .solution-window-bar svg{color:var(--sw-purple-600);flex:none}.hint-window-title{color:var(--sw-purple-700)}.hint-window-body{font-size:var(--text-md);line-height:1.55;color:var(--gray-800)}.hint-window-body p{margin:0}.map-trigger{display:inline-flex;align-items:center;gap:.35rem;min-height:32px;padding:4px 12px;border:1px solid var(--border-subtle);border-radius:var(--radius-full);background:var(--sw-neutral-chip);color:var(--sw-muted);font-size:var(--text-sm);font-weight:500;cursor:pointer;white-space:nowrap}.map-trigger:hover{background:var(--surface-card);color:var(--sw-ink)}.map-trigger svg{flex:none}.map-modal{position:fixed;left:50%;top:50%;transform:translate(-50%,-50%);width:720px;max-width:calc(100vw - 32px);max-height:min(80vh,640px);display:flex;flex-direction:column;background:var(--surface-card);border:1px solid var(--border-subtle);border-radius:var(--radius-lg);box-shadow:var(--shadow-xl);z-index:calc(var(--z-modal) + 1);overflow:hidden;animation:solutionWindowIn .2s ease}.map-modal-bar{display:flex;align-items:center;justify-content:space-between;padding:12px 16px;border-bottom:1px solid var(--border-subtle)}.map-modal-title{font-weight:500;color:var(--sw-ink)}.map-modal-close{display:inline-flex;align-items:center;justify-content:center;width:32px;height:32px;border:none;background:transparent;color:var(--sw-muted);cursor:pointer;border-radius:var(--radius-sm)}.map-modal-close:hover{background:var(--sw-neutral-chip);color:var(--sw-ink)}.map-modal .navigator-panel{flex:1;overflow:auto;border-top:0;box-shadow:none;border-radius:0;padding:16px}@media(prefers-reduced-motion:reduce){.map-modal{animation:none}}@media(max-width:767px){.map-modal{width:calc(100vw - 24px)}}.qa-feedback-trigger{display:inline-flex;align-items:center;justify-content:center;gap:6px;min-height:32px;padding:0 12px;border:1px solid var(--border-subtle);border-radius:var(--radius-full);background:var(--sw-neutral-chip);color:var(--sw-muted);cursor:pointer;font-size:13px;font-weight:600;white-space:nowrap}.qa-feedback-trigger:hover{background:var(--sw-amber-100, #fef3c7);color:var(--sw-amber-700, #b45309)}.qa-feedback-trigger svg{flex:none}.qa-feedback-trigger-label{line-height:1}.qa-feedback-backdrop{position:fixed;inset:0;background:#0f0f1966;z-index:var(--z-modal)}.qa-feedback-modal{position:fixed;left:50%;top:50%;transform:translate(-50%,-50%);width:460px;max-width:calc(100vw - 32px);max-height:min(86vh,680px);display:flex;flex-direction:column;background:var(--surface-card);border:1px solid var(--border-subtle);border-radius:var(--radius-lg);box-shadow:var(--shadow-xl);z-index:calc(var(--z-modal) + 1);overflow:hidden;animation:solutionWindowIn .2s ease}.qa-feedback-bar{display:flex;align-items:center;justify-content:space-between;padding:12px 16px;border-bottom:1px solid var(--border-subtle)}.qa-feedback-title{font-weight:600;color:var(--sw-ink);font-size:var(--text-sm)}.qa-feedback-close{display:inline-flex;align-items:center;justify-content:center;width:32px;height:32px;border:none;background:transparent;color:var(--sw-muted);cursor:pointer;border-radius:var(--radius-sm)}.qa-feedback-close:hover{background:var(--sw-neutral-chip);color:var(--sw-ink)}.qa-feedback-body{padding:16px;overflow:auto;display:flex;flex-direction:column;gap:14px}.qa-feedback-issues{border:none;margin:0;padding:0;display:grid;grid-template-columns:1fr;gap:8px}.qa-feedback-issues legend{font-size:var(--text-sm);font-weight:600;color:var(--sw-ink);margin-bottom:4px;padding:0}.qa-feedback-issue{display:flex;align-items:center;gap:8px;font-size:var(--text-sm);color:var(--sw-ink);cursor:pointer}.qa-feedback-issue input{width:16px;height:16px;flex:none;cursor:pointer}.qa-feedback-row{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:12px}.qa-feedback-severity{display:inline-flex;align-items:center;gap:6px}.qa-feedback-label{font-size:var(--text-sm);font-weight:600;color:var(--sw-muted);margin-right:2px}.qa-sev-pill{padding:4px 12px;border-radius:var(--radius-full);cursor:pointer;border:1px solid var(--border-subtle);background:transparent;font-size:12px;font-weight:600;color:var(--sw-muted)}.qa-sev-pill.is-active{border-color:var(--sw-purple-600);background:var(--sw-lavender-100);color:var(--sw-purple-600)}.qa-feedback-blocks{display:inline-flex;align-items:center;gap:6px;font-size:var(--text-sm);color:var(--sw-ink);cursor:pointer}.qa-feedback-blocks input{width:16px;height:16px;cursor:pointer}.qa-feedback-comment{width:100%;padding:10px;border-radius:var(--radius-md);border:1px solid var(--border-default);font:inherit;font-size:var(--text-sm);resize:vertical;box-sizing:border-box}.qa-feedback-submit{width:100%}.qa-feedback-foot{font-size:11px;color:var(--sw-muted);text-align:center;margin:0}.qa-feedback-done{padding:28px 16px;text-align:center;display:flex;flex-direction:column;gap:8px;align-items:center}.qa-feedback-done-icon{font-size:32px}.qa-feedback-warn{color:var(--sw-amber-700, #b45309);font-size:11px}@media(prefers-reduced-motion:reduce){.qa-feedback-modal{animation:none}}@media(prefers-reduced-motion:reduce){.hint-window{animation:none}}.home-screen{max-width:920px;margin:0 auto;padding:var(--space-8) var(--space-5) var(--space-16);animation:fadeIn var(--transition-base)}.home-hero h1{font-size:var(--text-3xl);line-height:var(--leading-3xl);font-weight:500;color:var(--sw-purple-700);margin:0 0 var(--space-2)}.home-hero p{color:var(--gray-500);margin:0 0 var(--space-8);font-size:var(--text-lg)}.home-section{margin-bottom:var(--space-8)}.home-section-title{display:flex;align-items:center;gap:var(--space-2);font-size:var(--text-lg);font-weight:500;color:var(--gray-800);margin:0 0 var(--space-4)}.continue-card{display:flex;align-items:center;justify-content:space-between;width:100%;text-align:left;background:var(--sw-purple-600);color:#fff;border:none}.continue-card strong{display:block;font-size:var(--text-xl);margin:var(--space-2) 0 2px}.continue-card .continue-sub{font-size:var(--text-sm);opacity:.85}.continue-card .badge{background:#fff3;color:#fff}.subject-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:var(--space-4)}.subject-card{display:flex;flex-direction:column;gap:var(--space-1);align-items:flex-start;text-align:left;min-height:96px;justify-content:center}.subject-card-name{font-weight:500;font-size:var(--text-md);color:var(--sw-purple-700)}.subject-card-count{font-size:var(--text-sm);color:var(--gray-500)}.subject-card-unit{font-size:var(--text-sm);color:var(--gray-600)}.subject-card-top{display:flex;align-items:center;justify-content:space-between;gap:var(--space-3);width:100%}.subject-card-meta{display:flex;flex-direction:column;gap:var(--space-1);min-width:0}.subject-card-band{font-size:var(--text-sm);font-weight:500}.subject-card.band-exam_ready .subject-card-band{color:var(--color-correct)}.subject-card.band-on_track .subject-card-band{color:var(--sw-purple-600)}.subject-card.band-building .subject-card-band{color:var(--sw-pink-600)}.subject-card.band-needs_focus .subject-card-band{color:var(--color-warning)}.subject-card-hint{font-size:var(--text-sm);color:var(--gray-500);font-style:italic}.readiness-ring{flex:none}.readiness-ring-track{stroke:var(--gray-200)}.readiness-ring-value{stroke:var(--sw-purple-500);transition:stroke-dashoffset .6s ease}.readiness-ring.band-exam_ready .readiness-ring-value{stroke:var(--color-correct)}.readiness-ring.band-on_track .readiness-ring-value{stroke:var(--sw-purple-600)}.readiness-ring.band-building .readiness-ring-value{stroke:var(--sw-pink-500)}.readiness-ring.band-needs_focus .readiness-ring-value{stroke:var(--color-warning)}.readiness-ring-text{font-size:13px;font-weight:500;fill:var(--sw-purple-700)}.subject-card-wrap{display:flex;flex-direction:column;gap:var(--space-1)}.subject-skillmap-link{align-self:flex-start;display:inline-flex;align-items:center;gap:4px;padding:2px var(--space-2);font-size:var(--text-sm);font-weight:600;color:var(--sw-purple-600);background:none;border:none;cursor:pointer}.subject-skillmap-link:hover{text-decoration:underline}.skilltree-screen{padding:var(--space-5) var(--space-4);max-width:1200px;margin:0 auto}.skilltree-head{display:flex;align-items:center;flex-wrap:wrap;gap:var(--space-3);margin-bottom:var(--space-4)}.skilltree-title{display:flex;align-items:center;gap:var(--space-2);font-size:var(--text-lg);color:var(--sw-purple-700);margin:0}.skilltree-legend{display:flex;gap:var(--space-2);margin-left:auto;flex-wrap:wrap}.kc-legend{font-size:var(--text-xs);font-weight:600;padding:2px var(--space-2);border-radius:var(--radius-pill, 999px);border:1px solid transparent}.skilltree-empty{color:var(--gray-500);font-style:italic}.skilltree-scroll{overflow:auto;padding-bottom:var(--space-4)}.skilltree-fit{position:relative;overflow:hidden;margin:0 auto}.skilltree-canvas{position:relative;transform-origin:top left}.skilltree-edges{position:absolute;inset:0;pointer-events:none}.skilltree-edge{stroke:var(--gray-400);stroke-width:2}.skilltree-zoom{display:inline-flex;gap:4px;align-items:center}.skilltree-zoom button{width:32px;height:32px;display:inline-flex;align-items:center;justify-content:center;border:1px solid var(--sw-border);background:var(--sw-card);color:var(--sw-purple-700);border-radius:var(--radius-md);cursor:pointer;font-size:18px;line-height:1}.skilltree-zoom button:disabled{opacity:.4;cursor:default}.skilltree-scroll{-webkit-overflow-scrolling:touch}.kc-chip{position:absolute;display:flex;flex-direction:column;align-items:flex-start;justify-content:center;gap:2px;padding:var(--space-2) var(--space-3);border-radius:var(--radius-md);border:2px solid var(--gray-200);background:var(--sw-card);cursor:pointer;text-align:left;overflow:hidden;box-shadow:var(--shadow-sm, 0 1px 2px rgba(0,0,0,.06));transition:transform .12s ease,box-shadow .12s ease}.kc-chip:hover{transform:translateY(-2px);box-shadow:var(--shadow-md, 0 4px 10px rgba(0,0,0,.12))}.kc-chip-label{font-size:var(--text-sm);font-weight:500;color:var(--sw-purple-700);line-height:1.15;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.kc-chip-band{font-size:var(--text-xs);font-weight:600;color:var(--gray-500)}.kc-muted{opacity:.7}.kc-chip.is-start-here{border-color:var(--color-correct);box-shadow:0 0 0 4px var(--color-correct-bg),var(--shadow-md, 0 4px 10px rgba(0,0,0,.12));z-index:2}.kc-chip-start-badge{align-self:flex-start;font-size:10px;font-weight:600;line-height:1;padding:2px 7px;margin-bottom:1px;border-radius:999px;background:var(--color-correct);color:#fff;letter-spacing:.01em}.kc-band-strong{border-color:var(--color-correct)}.kc-band-strong .kc-chip-band,.kc-legend.kc-band-strong{color:var(--color-correct)}.kc-band-developing{border-color:var(--sw-pink-500)}.kc-band-developing .kc-chip-band,.kc-legend.kc-band-developing{color:var(--sw-pink-600)}.kc-band-weak{border-color:var(--color-warning)}.kc-band-weak .kc-chip-band,.kc-legend.kc-band-weak{color:var(--color-warning)}.kc-band-unseen{border-style:dashed;border-color:var(--gray-400)}.kc-legend.kc-band-strong{border-color:var(--color-correct)}.kc-legend.kc-band-developing{border-color:var(--sw-pink-500)}.kc-legend.kc-band-weak{border-color:var(--color-warning)}.kc-legend.kc-band-unseen{border-color:var(--gray-400);color:var(--gray-500)}@media(max-width:480px){.skilltree-legend{display:none}}.subject-card-actions{display:flex;gap:var(--space-3);align-items:center;padding-left:var(--space-1)}.subject-path-link{display:inline-flex;align-items:center;gap:4px;padding:2px var(--space-2);font-size:var(--text-sm);font-weight:500;color:var(--sw-purple-700);background:none;border:none;cursor:pointer}.subject-path-link:hover{text-decoration:underline}.path-screen{padding:var(--space-5) var(--space-4);max-width:720px;margin:0 auto}.path-head{display:flex;align-items:center;gap:var(--space-3);margin-bottom:var(--space-4);flex-wrap:wrap}.path-title{display:flex;align-items:center;gap:var(--space-2);font-size:var(--text-lg);color:var(--sw-purple-700);margin:0}.path-readiness{display:flex;align-items:center;gap:var(--space-4);padding:var(--space-4) var(--space-5);border-radius:var(--radius-lg, 16px);background:var(--surface-card);border:1px solid var(--gray-200);margin-bottom:var(--space-4)}.path-readiness-status{font-size:var(--text-xl);font-weight:500;line-height:1.15}.path-readiness.band-exam_ready .path-readiness-status{color:var(--color-correct)}.path-readiness.band-on_track .path-readiness-status,.path-readiness.band-building .path-readiness-status,.path-readiness.band-needs_focus .path-readiness-status{color:var(--sw-purple-700)}.path-readiness-meta{display:flex;flex-direction:column;gap:2px}.path-readiness-meta strong{font-size:var(--text-md);color:var(--sw-purple-700)}.path-readiness-meta span{font-size:var(--text-sm);color:var(--gray-500)}.path-done{display:flex;align-items:center;gap:var(--space-2);padding:var(--space-4);margin-bottom:var(--space-4);border-radius:var(--radius-md);background:var(--color-correct-bg, #e9f7ef);color:var(--color-correct);font-weight:600}.path-start{padding:var(--space-5);border-radius:var(--radius-lg, 16px);border:2px solid var(--sw-purple-300, #c9b8ec);background:var(--sw-lavender-50);margin-bottom:var(--space-5)}.path-start-eyebrow{display:inline-flex;align-items:center;gap:5px;font-size:var(--text-sm);font-weight:500;letter-spacing:.01em;color:var(--sw-purple-600);margin:0 0 var(--space-1)}.path-start-kc{font-size:var(--text-lg);color:var(--sw-purple-700);margin:0 0 var(--space-2)}.path-start-why{font-size:var(--text-md);color:var(--gray-700, #374151);margin:0 0 var(--space-4);line-height:1.5}.path-steps-title{font-size:var(--text-md);color:var(--sw-purple-700);margin:0 0 var(--space-3)}.path-step-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:var(--space-2)}.path-step{display:flex;align-items:center;gap:var(--space-3);padding:var(--space-3) var(--space-4);border-radius:var(--radius-md);border:1px solid var(--gray-200);background:var(--surface-card);border-left:4px solid var(--gray-300, #d1d5db)}.path-step.status-weak{border-left-color:var(--color-warning)}.path-step.status-developing{border-left-color:var(--sw-pink-500)}.path-step.status-unseen{border-left-color:var(--gray-300, #d1d5db)}.path-step-n{flex:none;width:26px;height:26px;border-radius:50%;display:grid;place-items:center;background:var(--sw-purple-100, #ede7fb);color:var(--sw-purple-700);font-size:var(--text-sm);font-weight:500}.path-step-body{display:flex;flex-direction:column;gap:1px;flex:1;min-width:0}.path-step-label{font-weight:600;color:var(--sw-purple-700)}.path-step-status{font-size:var(--text-xs);color:var(--gray-500)}.path-more{font-size:var(--text-sm);color:var(--gray-500);font-style:italic;margin-top:var(--space-3)}.focus-card{display:flex;align-items:center;gap:var(--space-3);background:var(--color-warning-bg);border:1px solid #f3d9a8;border-radius:var(--radius-md);padding:var(--space-4);color:var(--color-warning);font-weight:500}.stats-row{display:grid;grid-template-columns:repeat(3,1fr);gap:var(--space-4)}.stat-card{background:var(--surface-card);border:1px solid var(--border-subtle);border-radius:var(--radius-lg);padding:var(--space-5);text-align:center}.stat-card strong{display:block;font-size:var(--text-2xl);color:var(--sw-purple-600)}.stat-card span{font-size:var(--text-sm);color:var(--gray-500)}.auth-page{min-height:100dvh;display:grid;place-items:center;background:var(--sw-lavender-100);padding:var(--space-5)}.auth-card{width:100%;max-width:400px;text-align:center}.auth-logo{height:48px;margin:0 auto var(--space-4);display:block}.auth-card h1{font-size:var(--text-2xl);color:var(--sw-purple-700);margin:0 0 var(--space-5)}.auth-label{display:block;text-align:left;font-size:var(--text-sm);font-weight:600;color:var(--gray-600);margin-bottom:var(--space-4)}.auth-label .input-field{margin-top:var(--space-1)}.auth-submit{width:100%;margin-top:var(--space-2)}.auth-guest{width:100%;margin-top:var(--space-3)}.auth-switch{display:flex;gap:var(--space-2);justify-content:center;align-items:center;margin-top:var(--space-5);font-size:var(--text-sm);color:var(--gray-500)}.auth-help{color:var(--gray-500);font-size:var(--text-sm);margin:0 0 var(--space-5)}.auth-premium-badge{margin:0 auto var(--space-3);width:fit-content}.link{background:none;border:none;color:var(--sw-pink-500);cursor:pointer;font:inherit;padding:0;text-decoration:underline}.link:hover{color:var(--sw-pink-600)}.premium-overlay{position:fixed;inset:0;z-index:var(--z-modal);display:grid;place-items:center;background:#2c0e3a8c;-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);padding:var(--space-5);animation:fadeIn var(--transition-base)}.premium-card{max-width:420px;text-align:center;animation:scaleIn var(--transition-base)}.premium-lock{width:56px;height:56px;border-radius:var(--radius-full);background:var(--sw-purple-100);color:var(--sw-purple-600);display:grid;place-items:center;margin:0 auto var(--space-4)}.premium-card h2{color:var(--sw-purple-700);margin:0 0 var(--space-2)}.premium-features{list-style:none;padding:0;margin:var(--space-5) 0;text-align:left}.premium-features li{display:flex;gap:var(--space-2);align-items:flex-start;margin-bottom:var(--space-3);color:var(--gray-700);font-size:var(--text-sm)}.premium-features svg{color:var(--color-correct);flex-shrink:0;margin-top:2px}.premium-cta{width:100%}.premium-free{display:block;margin:var(--space-3) auto 0}.graph-display{width:100%;max-width:460px;aspect-ratio:4 / 3;margin-block:var(--space-2);border:1px solid var(--sw-purple-100);border-radius:var(--radius-md);overflow:hidden;background:var(--surface-card)}.graph-display .MafsView{width:100%;height:100%}.graph-display .MafsView text{font-size:12px}.graph-display-skeleton{width:auto;height:clamp(170px,calc(100vh - 560px),300px);max-width:400px;margin-block:var(--space-2)}@media(max-width:1099px){.graph-display{width:auto;height:clamp(150px,calc(100vh - 560px),300px);max-width:100%}}@media(min-width:1100px){.qcard-body.has-graph{display:grid;grid-template-columns:minmax(260px,.8fr) minmax(0,1fr);gap:var(--space-5);align-items:start}.qcard-body.has-graph .graph-display{margin-block:0;max-width:100%;max-height:min(46vh,330px)}.qcard-body.has-graph .qcard-answer{min-width:0}}.app-shell{padding-top:var(--space-4);padding-bottom:var(--space-4)}.student-layout .question-card{padding:var(--space-3) var(--space-4)}.student-layout .question-card h2{margin-bottom:var(--space-2);line-height:1.3;font-size:clamp(1.15rem,1.5vw,1.45rem)}.student-layout .choices{gap:var(--space-2)}.student-layout .choice{min-height:46px;padding-block:.5rem;line-height:1.3}@media(min-width:768px){.student-layout .choice{font-size:.94rem}}.question-cardtop{display:flex;align-items:center;flex-wrap:wrap;gap:.5rem .6rem;min-height:28px}.question-cardtop .eyebrow{margin:0}.question-cardtop.has-orientation .eyebrow{margin-left:.1rem}.question-cardtop .question-meta{margin:0;gap:.4rem}.question-cardtop-map{margin-left:auto}.student-layout [data-testid=question-prompt]{max-width:none}.qcard-figure-float{position:relative;margin:0 0 var(--space-2)}.figure-zoom-btn{position:absolute;bottom:6px;right:6px;display:inline-flex;align-items:center;justify-content:center;width:30px;height:30px;border:1px solid var(--border-subtle);border-radius:var(--radius-sm);background:var(--surface-card);color:var(--sw-muted);cursor:pointer;opacity:.9}.figure-zoom-btn:hover{color:var(--sw-ink);opacity:1}.student-layout .qcard-figure-float{float:left;width:clamp(150px,34%,300px);margin:0 var(--space-4) var(--space-2) 0}.student-layout .qcard-figure-float .figure-svg{width:100%;height:auto;max-height:clamp(130px,calc(100vh - 520px),300px)}.student-layout .qcard-body{clear:both}@media(max-width:640px){.student-layout .qcard-figure-float{float:none;width:100%;margin:0 0 var(--space-2)}}.figure-zoom-modal{position:fixed;left:50%;top:50%;transform:translate(-50%,-50%);width:min(720px,calc(100vw - 32px));max-height:min(85vh,700px);display:flex;flex-direction:column;background:var(--surface-card);border:1px solid var(--border-subtle);border-radius:var(--radius-lg);box-shadow:var(--shadow-xl);z-index:calc(var(--z-modal) + 1);overflow:hidden;animation:solutionWindowIn .2s ease}.figure-zoom-body{padding:20px;overflow:auto}.figure-zoom-body .figure{width:100%;margin:0}.figure-zoom-body .figure-svg{width:100%;height:auto;max-width:100%;max-height:70vh}@media(prefers-reduced-motion:reduce){.figure-zoom-modal{animation:none}}.fit-viewport,.fit-viewport-content{width:100%}.student-layout .choice-figure .figure-svg{max-height:clamp(64px,calc((100vh - 380px)/4),130px)}.answer-panel:empty{display:none}@media(min-width:768px){.action-bar{flex-direction:row;align-items:center}.action-bar-utilities{flex:1 1 auto}.action-bar-primary{flex:none}}@media(max-height:900px){.app-shell{padding-top:var(--space-2);padding-bottom:var(--space-1)}.student-layout{margin-top:var(--space-1)}.practice-column,.choices{gap:var(--space-2)}.choice{min-height:48px;padding-block:.4rem}.action-bar{min-height:56px;padding-block:var(--space-2)}.navigator-shell{margin-top:0}}@media(min-width:768px)and (max-width:1099px)and (min-height:901px){.graph-display,.graph-display-skeleton{height:clamp(150px,calc(100vh - 620px),250px)}}@media(max-width:767px){.graph-display,.graph-display-skeleton{height:clamp(95px,calc(100vh - 715px),210px)}.graph-display .MafsView text{font-size:13px}}@media(min-width:1000px)and (max-width:1099px)and (max-height:820px)and (orientation:landscape){.graph-display,.graph-display-skeleton{height:clamp(86px,calc(100vh - 682px),200px)}.action-bar{gap:var(--space-1);padding-block:var(--space-1)}.orientation-row{margin-bottom:var(--space-1)}}.dashboard-tabs{display:flex;gap:var(--space-1);border-bottom:1px solid var(--border-subtle);margin:var(--space-5) 0 var(--space-6);flex-wrap:wrap}.dashboard-tab{padding:var(--space-3) var(--space-4);border:none;background:none;color:var(--gray-500);font-weight:600;cursor:pointer;border-bottom:2px solid transparent;margin-bottom:-1px}.dashboard-tab.is-active{color:var(--sw-purple-700);border-bottom-color:var(--sw-purple-600)}.flagged-list{list-style:none;padding:0;margin:0}.flagged-item{display:flex;align-items:center;justify-content:space-between;gap:var(--space-4);padding:var(--space-3) var(--space-4);border:1px solid var(--border-subtle);border-radius:var(--radius-md);margin-bottom:var(--space-2)}.flagged-item p{margin:var(--space-1) 0 0;font-size:var(--text-sm)}.dashboard-export{max-width:560px}.toast-stack{position:fixed;top:6.5rem;right:var(--space-4);z-index:var(--z-toast);display:flex;flex-direction:column;gap:var(--space-2);max-width:340px}@media(min-width:981px){.toast-stack{top:auto;bottom:5rem;right:var(--space-4)}}body:has(.solution-window) .toast-stack{display:none}.toast{display:flex;align-items:center;gap:var(--space-2);padding:var(--space-3) var(--space-4);border-radius:var(--radius-md);background:var(--surface-card);box-shadow:var(--shadow-lg);border-left:4px solid var(--sw-purple-500);cursor:pointer;animation:slideInRight var(--transition-base);font-size:var(--text-sm);color:var(--gray-800)}.toast span{flex:1}.toast-success{border-left-color:var(--color-correct)}.toast-success svg{color:var(--color-correct)}.toast-info{border-left-color:var(--sw-purple-500)}.toast-info svg{color:var(--sw-purple-500)}.toast-warning{border-left-color:var(--color-warning)}.toast-warning svg{color:var(--color-warning)}.toast-error{border-left-color:var(--color-incorrect)}.toast-error svg{color:var(--color-incorrect)}.toast-close{background:none;border:none;cursor:pointer;color:var(--gray-400);padding:0;display:inline-flex}.toast-close:hover{color:var(--gray-700)}.beta-fab{position:fixed;bottom:20px;right:16px;width:44px;height:44px;border-radius:50%;background:var(--sw-purple-600);color:#fff;border:none;cursor:pointer;font-size:20px;box-shadow:var(--shadow-lg);z-index:var(--z-sticky);opacity:.85;transition:opacity var(--transition-base);display:flex;align-items:center;justify-content:center}.beta-fab:hover{opacity:1}body:has(.action-bar.is-answering) .beta-fab{opacity:.4}body:has(.solution-window) .beta-fab,body:has(.navigator-shell[open]) .beta-fab{display:none}@media(max-width:767px){body:has(.action-bar) .beta-fab{display:none}}.bank-skeleton{padding:var(--space-6);max-width:900px;margin:0 auto}.skel-header{height:56px;margin-bottom:var(--space-6)}.skel-cards{display:flex;flex-direction:column;gap:var(--space-4)}.skel-card{height:120px}.empty-state{text-align:center;padding:var(--space-12) var(--space-5);color:var(--gray-500)}.empty-illustration{width:80px;height:80px;border-radius:var(--radius-full);background:var(--sw-lavender-100);color:var(--sw-purple-400);display:grid;place-items:center;margin:0 auto var(--space-4)}.empty-state h3{color:var(--gray-700);margin:0 0 var(--space-2)}.empty-state p{margin:0 0 var(--space-5)}.error-card{max-width:440px;margin:var(--space-12) auto;text-align:center}.error-icon{width:56px;height:56px;border-radius:var(--radius-full);background:var(--color-incorrect-bg);color:var(--color-incorrect);display:grid;place-items:center;margin:0 auto var(--space-4)}.error-card h3{color:var(--gray-800);margin:0 0 var(--space-2)}.error-card p{color:var(--gray-500);margin:0 0 var(--space-4)}.error-details{text-align:left;margin-bottom:var(--space-4)}.error-details summary{cursor:pointer;color:var(--gray-500);font-size:var(--text-sm)}.error-details code{display:block;margin-top:var(--space-2);padding:var(--space-2);background:var(--gray-100);border-radius:var(--radius-sm);font-size:var(--text-xs);color:var(--gray-700);word-break:break-word}.dot-navigator{padding:var(--space-4)}.dot-nav-controls{display:flex;flex-direction:column;gap:var(--space-3);margin-bottom:var(--space-4)}.filter-pills{display:flex;gap:var(--space-2);flex-wrap:wrap}.feature-filter-pills{margin-top:var(--space-2);padding-top:var(--space-2);border-top:1px dashed var(--border-subtle)}[data-testid=question-prompt],.solution-worked,.solution-steps,.solution-distractors,.context-block,.context-pane p,.multipart-prompt{max-width:640px}.sidebar-reveal{animation:sidebarFadeIn .3s ease both}@keyframes sidebarFadeIn{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}.sidebar-placeholder{padding:var(--space-7) var(--space-5);text-align:center;color:var(--gray-500);font-size:var(--text-sm);line-height:1.55}.math-field-row{display:flex;align-items:stretch;gap:8px}.math-field-row .sw-math-field{flex:1;min-width:0}.math-kb-toggle{flex:none;width:46px;min-height:44px;display:inline-flex;align-items:center;justify-content:center;border:1px solid var(--border-default);border-radius:var(--radius-md);background:var(--surface-card);color:var(--sw-purple-600);cursor:pointer;transition:background var(--transition-fast),border-color var(--transition-fast)}.math-kb-toggle:hover{background:var(--sw-lavender-100)}.math-kb-toggle[aria-pressed=true]{background:var(--sw-lavender-100);border-color:var(--sw-purple-300)}.mathlive-input .math-preview{min-height:32px}.ML__keyboard{--keyboard-accent-color: var(--sw-sage);--primary: var(--sw-sage);--keycap-height: 44px;--keycap-font-size: 16px;--keyboard-row-padding-top: 2px;--keyboard-row-padding-bottom: 2px;--keyboard-padding-horizontal: 6px}[data-theme=dark] .ML__keyboard{--keyboard-background: #1B1C14;--keyboard-border: var(--border-subtle);--keyboard-horizontal-rule: var(--border-subtle);--keyboard-toolbar-background: transparent;--keyboard-toolbar-background-hover: #2C2D22;--keyboard-toolbar-background-selected: #2C2D22;--keyboard-toolbar-text: #B7B5A6;--keyboard-toolbar-text-active: var(--sw-sage);--keycap-background: #2C2D22;--keycap-background-hover: #34352B;--keycap-background-active: var(--sw-sage);--keycap-background-pressed: #3E3F33;--keycap-border: #3A3B2D;--keycap-border-bottom: #15160F;--keycap-text: var(--sw-ink);--keycap-text-active: var(--sw-page);--keycap-text-hover: var(--sw-ink);--keycap-text-pressed: var(--sw-ink);--keycap-secondary-background: #232419;--keycap-secondary-background-hover: #2C2D22;--keycap-secondary-text: #B7B5A6;--keycap-secondary-border: #3A3B2D;--keycap-secondary-border-bottom: #15160F;--keycap-primary-background: var(--sw-sage);--keycap-primary-background-hover: #93C2AE;--keycap-primary-text: var(--sw-page);--keycap-shift-color: var(--sw-sage);--keycap-shift-text: var(--sw-sage)}.filter-pill{padding:var(--space-1) var(--space-3);border-radius:var(--radius-full);border:1px solid var(--gray-300);background:var(--surface-card);color:var(--gray-600);font-size:var(--text-sm);cursor:pointer;transition:all var(--transition-fast)}.filter-pill.is-active{border-color:var(--sw-purple-600);background:var(--sw-lavender-100);color:var(--sw-purple-700)}.filter-pill-unique{margin-left:auto;border-style:dashed;font-weight:600}.filter-pill-unique.is-active{border-style:solid;border-color:var(--sw-sage);background:var(--sw-correct-tint, var(--sw-lavender-100));color:var(--sw-sage)}.dot-nav-row{display:flex;gap:var(--space-4);flex-wrap:wrap;align-items:flex-end}.dot-nav-row .topic-select,.dot-nav-row .jump-control{display:inline-flex;flex-direction:column;gap:2px;font-size:var(--text-xs);color:var(--gray-500)}.dot-nav-row .jump-control{flex-direction:row;align-items:center;gap:var(--space-2)}.dot-nav-row select,.dot-nav-row input{height:36px;border:1px solid var(--gray-300);border-radius:var(--radius-sm);padding:0 var(--space-2)}.dot-nav-row input[type=number]{width:72px}.dot-nav-row .topic-select select{max-width:220px}.topic-practice-hint{margin:var(--space-2) 0 0;font-size:var(--text-xs);color:var(--gray-500)}.topic-practice-hint.topic-practice-active{color:var(--sw-purple-700)}.topic-filter-clear,.topic-filter-banner-clear{margin-left:var(--space-2);border:1px solid var(--border-subtle);border-radius:var(--radius-full);background:var(--surface-card);color:var(--sw-purple-700);font:inherit;font-size:var(--text-xs);padding:2px 10px;cursor:pointer;display:inline-flex;align-items:center;gap:4px}.topic-filter-clear:hover,.topic-filter-banner-clear:hover{background:var(--sw-lavender-50)}.topic-filter-banner{display:flex;align-items:center;justify-content:space-between;gap:var(--space-3);margin:var(--space-2) 0 0;padding:6px 14px;border:1px solid color-mix(in srgb,var(--sw-purple-600) 28%,transparent);background:var(--sw-lavender-50);border-radius:var(--radius-full);font-size:var(--text-sm);color:var(--sw-purple-700)}.topic-filter-banner strong{font-weight:600}.topic-filter-banner-actions{display:inline-flex;gap:var(--space-2);flex-wrap:wrap}.dot-grid{display:flex;flex-wrap:wrap;gap:8px;max-height:220px;overflow-y:auto;padding:var(--space-1)}.nav-dot{position:relative;width:18px;height:18px;border-radius:var(--radius-full);border:none;background:var(--gray-300);cursor:pointer;padding:0;transition:transform var(--transition-fast),opacity var(--transition-fast)}.nav-dot:hover{transform:scale(1.25)}.nav-dot.dot-correct{background:var(--color-correct)}.nav-dot.dot-incorrect{background:var(--color-incorrect)}.nav-dot.dot-answered{background:var(--sw-purple-400)}.nav-dot.is-current{box-shadow:0 0 0 3px var(--sw-purple-600)}.nav-dot.is-faded{opacity:.2}.nav-dot .dot-flag{position:absolute;top:-6px;right:-5px;color:var(--color-warning)}.dot-pagination{display:flex;align-items:center;justify-content:center;gap:var(--space-3);margin-top:var(--space-3);font-size:var(--text-sm);color:var(--gray-500)}.solution-backdrop{position:fixed;inset:0;background:#2c0e3a66;z-index:var(--z-overlay);pointer-events:none;animation:fadeIn var(--transition-base)}.solution-sheet{position:fixed;left:0;right:0;bottom:0;z-index:var(--z-panel);max-height:78vh;display:flex;flex-direction:column;background:var(--surface-card);border-top-left-radius:var(--radius-xl);border-top-right-radius:var(--radius-xl);box-shadow:var(--shadow-xl);animation:slideUp var(--transition-slow);overflow:hidden}.solution-sheet .solution-bar{display:flex;align-items:center;justify-content:space-between;background:var(--sw-purple-600);color:#fff;padding:var(--space-3) var(--space-6);font-weight:500;letter-spacing:.06em;flex-shrink:0}.solution-sheet .solution-source{font-weight:500;opacity:.85;letter-spacing:0}.solution-sheet .solution-body{padding:var(--space-5) var(--space-6) var(--space-8);overflow-y:auto}.solution-correct{display:flex;align-items:center;flex-wrap:wrap;font-size:var(--text-lg);font-weight:500;color:var(--color-correct);margin:0 0 var(--space-4)}.solution-youranswer{display:flex;align-items:center;flex-wrap:wrap;font-size:var(--text-md);margin:0 0 var(--space-4);color:var(--gray-700)}.solution-result-row{display:flex;align-items:flex-start;justify-content:space-between;gap:var(--space-4);margin:0 0 var(--space-4)}.solution-result-row>.solution-correct,.solution-result-row>.solution-youranswer{margin:0;flex:1;min-width:0}.solution-reveal-inline{flex:none;white-space:nowrap;align-self:center}.solution-banner{margin:var(--space-4) 0 0;padding:var(--space-4) var(--space-5);background:var(--surface-card);border:1px solid var(--border-subtle);border-radius:var(--radius-lg);box-shadow:var(--shadow-sm)}.solution-banner .solution-result-row{margin:0}.solution-backdrop{position:fixed;inset:0;background:#1f211a80;z-index:var(--z-modal);animation:solutionBackdropIn .16s ease}.solution-window{position:fixed;left:50%;top:50%;transform:translate(-50%,-50%);width:560px;max-width:calc(100vw - 32px);max-height:min(82vh,760px);display:flex;flex-direction:column;background:var(--surface-card);border:1px solid var(--border-subtle);border-radius:var(--radius-lg);box-shadow:var(--shadow-xl);z-index:calc(var(--z-modal) + 1);overflow:hidden;animation:solutionWindowIn .2s ease}@keyframes solutionWindowIn{0%{opacity:0}to{opacity:1}}@keyframes solutionBackdropIn{0%{opacity:0}to{opacity:1}}@media(prefers-reduced-motion:reduce){.solution-window,.solution-backdrop{animation:none}}.solution-window-bar{display:flex;align-items:center;gap:8px;padding:12px 16px;background:var(--surface-card);color:var(--gray-800);border-bottom:1px solid var(--border-subtle);font-size:var(--text-sm);font-weight:500;letter-spacing:.01em;-webkit-user-select:none;user-select:none}.solution-window-title{flex:1;color:var(--color-correct)}.solution-window-handle{display:none}.solution-window-close{background:none;border:none;color:var(--gray-500);cursor:pointer;padding:2px;display:inline-flex;border-radius:var(--radius-sm)}.solution-window-close:hover{color:var(--gray-800);background:var(--gray-100, rgba(0,0,0,.05))}.solution-window-body{padding:var(--space-5);overflow-y:auto}@media(max-width:767px){.solution-window{left:0;right:0;top:50%;transform:translateY(-50%);width:100%;max-width:100%;max-height:86vh;border-radius:var(--radius-lg)}}.solution-youranswer .ya-wrong{color:var(--color-incorrect);font-weight:500}.solution-youranswer .ya-right{color:var(--color-correct);font-weight:500}.solution-section-title{font-size:var(--text-sm);text-transform:none;letter-spacing:.04em;color:var(--sw-purple-500);margin:var(--space-5) 0 var(--space-2);padding-top:var(--space-3);border-top:1px solid var(--border-subtle)}.solution-distractors{margin:0;padding-left:var(--space-5);color:var(--gray-600)}.solution-distractors li{margin-bottom:var(--space-3);font-style:normal;line-height:1.6}.solution-why-wrong>summary{cursor:pointer;list-style:revert}.solution-why-wrong[open]>summary{margin-bottom:var(--space-2)}.solution-worked{line-height:1.7;color:var(--gray-800)}.solution-steps{color:var(--gray-700);line-height:1.7}.solution-key-concept{display:flex;flex-direction:column;gap:var(--space-1);margin-top:var(--space-5);padding:var(--space-3) var(--space-4);background:var(--sw-lavender-50);border-left:4px solid var(--sw-purple-500);border-radius:var(--radius-sm)}.solution-key-concept strong{color:var(--sw-purple-700)}.solution-fallback{color:var(--gray-400)}.solution-concepts{display:flex;flex-wrap:wrap;align-items:center;gap:var(--space-2);margin-bottom:var(--space-4)}.concept-chip{display:inline-flex;align-items:center;padding:2px var(--space-3);border-radius:999px;font-size:.8rem;font-weight:600;line-height:1.5}.concept-chip-primary{background:var(--sw-purple-500);color:#fff}.concept-chip-supporting{background:var(--sw-lavender-50);color:var(--sw-purple-700);border:1px solid var(--sw-purple-200, #d9cdf0);font-weight:500}.concept-also-label{font-size:.72rem;text-transform:uppercase;letter-spacing:.04em;color:var(--text-muted, #6b6580)}.solution-next{width:100%;margin-top:var(--space-6)}.adaptive-sidebar{padding:0;overflow:hidden}.sidebar-section{padding:var(--space-3) var(--space-4);border-bottom:1px solid var(--border-subtle)}.sidebar-section:last-child{border-bottom:none}.sidebar-heading{font-size:var(--text-xs);text-transform:none;letter-spacing:.05em;color:var(--sw-purple-500);margin:0 0 var(--space-2)}.sidebar-progress{margin-bottom:var(--space-2)}.progress-track{height:6px;background:var(--sw-purple-100);border-radius:var(--radius-full);overflow:hidden;margin-bottom:var(--space-2)}.progress-fill{height:100%;background:linear-gradient(90deg,var(--sw-purple-600),var(--sw-purple-400));border-radius:var(--radius-full);transition:width var(--transition-slow)}.progress-caption{font-size:var(--text-sm);color:var(--gray-500)}.progress-chips{display:flex;gap:var(--space-2);flex-wrap:wrap}.unit-row{display:flex;align-items:center;justify-content:space-between;gap:var(--space-2);margin-bottom:var(--space-2)}.unit-name{font-size:var(--text-sm);color:var(--gray-700)}.unit-meta{display:inline-flex;align-items:center;gap:var(--space-2)}.unit-meta strong{font-size:var(--text-sm);color:var(--gray-700);min-width:34px;text-align:right}.mastery-dots{display:inline-flex;gap:3px}.mastery-dots .dot{width:9px;height:9px;border-radius:var(--radius-full);background:var(--gray-200)}.mastery-dots.dots-high .dot.filled{background:var(--sw-purple-600)}.mastery-dots.dots-mid .dot.filled{background:var(--sw-pink-500)}.mastery-dots.dots-low .dot.filled{background:var(--gray-400)}.sidebar-link{font-size:var(--text-sm);margin-top:var(--space-1)}.sidebar-empty{font-size:var(--text-sm);color:var(--gray-600);margin:0}.adaptive-row{display:flex;align-items:center;gap:var(--space-2);width:100%;justify-content:flex-start;padding:var(--space-1) var(--space-2);border:1px solid transparent;border-radius:var(--radius-md);background:transparent;color:var(--gray-700);cursor:pointer;font-size:var(--text-sm);transition:background var(--transition-fast)}.adaptive-row:hover{background:var(--sw-lavender-50);color:var(--sw-purple-700)}.adaptive-message{font-size:var(--text-sm);color:var(--gray-600);background:transparent;border:0;border-radius:0;padding:0;margin:var(--space-1) 0 var(--space-2);line-height:1.45}.adaptive-options{display:grid;grid-template-columns:repeat(3,1fr);gap:var(--space-2);margin-top:var(--space-2)}.adaptive-chip{display:inline-flex;align-items:center;justify-content:center;gap:6px;width:100%;padding:7px 9px;border:1px solid var(--border-subtle);border-radius:var(--radius-md);background:transparent;color:var(--gray-700);cursor:pointer;font-size:var(--text-sm);line-height:1.2;text-align:center;white-space:nowrap;transition:background var(--transition-fast),border-color var(--transition-fast)}.adaptive-chip svg{width:14px;height:14px;flex:none}@media(max-width:600px){.adaptive-chip{border-radius:var(--radius-full)}}.adaptive-chip:hover{background:var(--color-correct-bg);border-color:color-mix(in srgb,var(--color-correct) 35%,transparent);color:var(--color-correct)}.adaptive-practice-again{display:inline-flex;align-items:center;justify-content:center;gap:6px;width:100%;margin-top:var(--space-3);padding:6px 9px;border:none;background:transparent;color:var(--gray-500);cursor:pointer;font-size:var(--text-xs);border-radius:var(--radius-md);transition:color var(--transition-fast),background var(--transition-fast)}.adaptive-practice-again svg{width:14px;height:14px;flex:none}.adaptive-practice-again:hover{color:var(--gray-800);background:var(--surface-subtle, rgba(0,0,0,.04))}.sidebar-focus{background:var(--color-warning-bg)}.sidebar-focus .sidebar-heading{color:var(--color-warning)}.focus-line{font-size:var(--text-sm);color:var(--gray-700);margin:0 0 var(--space-1)}.focus-score{color:var(--color-warning);font-weight:600}.sidebar-collapsible>summary{list-style:none;cursor:pointer;display:flex;align-items:center;gap:var(--space-2)}.sidebar-collapsible>summary::-webkit-details-marker{display:none}.sidebar-collapsible>summary .sidebar-heading{margin:0}.sidebar-collapsible>summary .sidebar-heading:after{content:" ▾";color:var(--gray-400);font-size:.7rem}.sidebar-collapsible[open]>summary .sidebar-heading:after{content:" ▴"}.sidebar-collapsible>summary .progress-chips{margin-left:auto}.sidebar-collapsible .sidebar-progress{margin:var(--space-2) 0 0}.adaptive-panel .sidebar-heading{margin-bottom:var(--space-1)}.adaptive-panel .adaptive-row{padding:2px var(--space-2)}.context-pane-wrap{background:var(--sw-lavender-50);border:1px solid var(--sw-purple-100);border-radius:var(--radius-lg)}.context-pane-summary{cursor:pointer;padding:var(--space-3) var(--space-4);font-weight:600;color:var(--sw-purple-700);list-style:none}.context-pane-summary::-webkit-details-marker{display:none}.context-pane{padding:var(--space-4)}.context-pane-title{font-size:var(--text-sm);text-transform:none;letter-spacing:.04em;color:var(--sw-purple-500);margin:0 0 var(--space-3)}.context-block{margin-bottom:var(--space-4)}.context-text{font-size:var(--text-md);line-height:var(--leading-md);color:var(--gray-800)}.context-table{width:100%;border-collapse:collapse;font-size:var(--text-sm)}.context-table th,.context-table td{border:1px solid var(--sw-purple-100);padding:var(--space-2) var(--space-3);text-align:left}.context-table th{background:var(--sw-lavender-100);color:var(--sw-purple-700)}.context-formula{background:var(--surface-card);border:1px solid var(--border-subtle);border-radius:var(--radius-md);padding:var(--space-3) var(--space-4)}.context-formula h4{margin:0 0 var(--space-2);color:var(--sw-purple-700)}.context-formula ul{margin:0;padding-left:var(--space-5)}@media(min-width:1025px){.student-layout.has-context{display:grid;grid-template-columns:38fr 42fr 20fr;gap:var(--space-5);align-items:start}.student-layout.has-context .context-pane-summary{display:none}.student-layout.has-context .context-pane-wrap{position:sticky;top:var(--space-4)}}@media(max-width:1024px){.context-pane-wrap[open] .context-pane-summary{border-bottom:1px solid var(--sw-purple-100)}}.nr-grid{display:flex;gap:var(--space-2);margin:var(--space-4) 0;flex-wrap:wrap}.nr-cell{width:52px;height:64px;text-align:center;font-size:var(--text-2xl);font-weight:600;color:var(--gray-900);border:2px solid var(--gray-300);border-radius:var(--radius-md);background:var(--surface-card);transition:border-color var(--transition-fast),background var(--transition-fast)}.nr-cell:focus{outline:none;border-color:var(--sw-purple-600);box-shadow:0 0 0 3px #4f7a6a40}[data-theme=dark] .nr-cell{border-color:var(--gray-400)}.nr-cell.nr-correct{border-color:var(--color-correct);background:var(--color-correct-bg);color:var(--color-correct)}.nr-cell.nr-incorrect{border-color:var(--color-incorrect);background:var(--color-incorrect-bg);color:var(--color-incorrect)}.nr-scientific{display:flex;align-items:center;gap:var(--space-2);flex-wrap:wrap}.nr-scientific .nr-grid{margin:0}.nr-sci-times{font-size:var(--text-xl);color:var(--gray-800);font-weight:500;align-self:center}.nr-scientific .nr-grid[data-testid=nr-exponent]{align-self:flex-start;margin-top:0;gap:6px}.nr-scientific .nr-grid[data-testid=nr-exponent] .nr-cell{width:34px;height:40px;font-size:var(--text-base)}.slot-template{display:flex;align-items:center;gap:var(--space-2);margin:var(--space-4) 0;flex-wrap:wrap}.slot-template-cell-wrap{display:inline-flex}.slot-cell{width:52px;height:64px;text-align:center;font-size:var(--text-2xl);font-weight:600;color:var(--gray-900);border:2px solid var(--gray-300);border-radius:var(--radius-md);background:var(--surface-card);transition:border-color var(--transition-fast),background var(--transition-fast)}.slot-cell:focus{outline:none;border-color:var(--sw-purple-600);box-shadow:0 0 0 3px #4f7a6a40}[data-theme=dark] .slot-cell{border-color:var(--gray-400)}.slot-cell-exponent{width:40px;height:48px;font-size:var(--text-lg);align-self:flex-start;margin-top:-.65rem}.slot-cell.slot-correct{border-color:var(--color-correct);background:var(--color-correct-bg);color:var(--color-correct)}.slot-cell.slot-incorrect{border-color:var(--color-incorrect);background:var(--color-incorrect-bg);color:var(--color-incorrect)}.tuple-choice{border-collapse:collapse;width:100%;text-align:left}.tuple-choice-row+.tuple-choice-row .tuple-choice-label,.tuple-choice-row+.tuple-choice-row .tuple-choice-value{border-top:1px solid var(--gray-200)}[data-theme=dark] .tuple-choice-row+.tuple-choice-row .tuple-choice-label,[data-theme=dark] .tuple-choice-row+.tuple-choice-row .tuple-choice-value{border-top-color:var(--gray-300)}.tuple-choice-label{font-weight:700;color:var(--gray-700);padding:var(--space-1) var(--space-3) var(--space-1) 0;white-space:nowrap;vertical-align:top}.tuple-choice-value{color:var(--gray-900);padding:var(--space-1) 0;width:100%}.multipart{margin:var(--space-4) 0}.multipart-tabs{display:flex;gap:var(--space-2);flex-wrap:wrap;margin-bottom:var(--space-4)}.multipart-tab{display:inline-flex;align-items:center;gap:var(--space-2);padding:var(--space-2) var(--space-4);border-radius:var(--radius-full);border:1px solid var(--gray-300);background:var(--surface-card);color:var(--gray-700);cursor:pointer;font-weight:600;transition:all var(--transition-fast)}.multipart-tab.is-active{border-color:var(--sw-purple-600);background:var(--sw-lavender-100);color:var(--sw-purple-700)}.multipart-tab.state-correct{border-color:var(--color-correct);color:var(--color-correct)}.multipart-tab.state-incorrect{border-color:var(--color-incorrect);color:var(--color-incorrect)}.multipart-pip{display:inline-flex;align-items:center}.multipart-pip .pip-dot{width:8px;height:8px;border-radius:var(--radius-full);background:var(--sw-purple-400);display:inline-block}.multipart-prompt{font-size:var(--text-lg);margin:0 0 var(--space-3)}.multipart-actions{display:flex;align-items:center;gap:var(--space-3);margin-top:var(--space-3)}.graph-drawing{display:flex;flex-direction:column;gap:var(--space-3);margin:var(--space-4) 0}.desmos-surface{width:100%;height:380px;border:1px solid var(--sw-purple-100);border-radius:var(--radius-md);overflow:hidden}.graph-display .MafsView{--mafs-bg: var(--surface-card);--mafs-fg: var(--gray-700);--mafs-line-color: var(--gray-200);--mafs-origin-color: var(--gray-700);border:1px solid var(--sw-purple-100);border-radius:var(--radius-md)}.desmos-loading{width:100%;height:380px;margin-top:calc(-380px - var(--space-3));border-radius:var(--radius-md)}.graph-draw-actions{display:flex;gap:var(--space-3);justify-content:flex-end;align-items:center;flex-wrap:wrap}.graph-type-prompt{font-weight:600;color:var(--gray-700);margin:0 0 var(--space-3)}.graph-type-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:var(--space-3)}.graph-type-btn{position:relative;display:flex;flex-direction:column;align-items:center;gap:4px;padding:var(--space-3);border:2px solid var(--border-subtle);border-radius:var(--radius-md);background:var(--surface-card);cursor:pointer;color:var(--gray-500);transition:border-color var(--transition-fast),background var(--transition-fast)}.graph-type-btn:hover{border-color:var(--sw-purple-300)}.graph-type-btn.is-selected{border-color:var(--sw-pink-500);background:var(--sw-lavender-100);color:var(--sw-purple-700)}.gt-preview{width:48px;height:36px;color:var(--sw-purple-600)}.gt-label{font-weight:500;font-size:var(--text-sm)}.gt-formula{font-size:11px;opacity:.85}.gt-check{position:absolute;top:4px;right:7px;color:var(--sw-pink-500);font-weight:500}.graph-start-btn{margin-top:var(--space-4)}.graph-change-type{margin-right:auto}.graph-settings-panel{margin-top:var(--space-3);padding:var(--space-3) var(--space-4);border:1px solid var(--border-subtle);border-radius:var(--radius-md);background:var(--sw-lavender-50);display:flex;flex-direction:column;gap:var(--space-2)}.gs-row{display:flex;align-items:center;gap:var(--space-2);font-size:var(--text-sm)}.gs-label{min-width:64px;color:var(--gray-700);font-weight:600}.gs-row input{width:66px;padding:5px 7px;border:1px solid var(--border-default);border-radius:var(--radius-sm)}.gs-toggle{padding:5px 12px;border:1px solid var(--border-default);border-radius:var(--radius-full);background:var(--surface-card);cursor:pointer;font-size:12px}.gs-toggle.is-active{background:var(--sw-purple-600);color:#fff;border-color:var(--sw-purple-600)}.gs-reset{align-self:flex-start;font-size:12px}.graph-expr-input{width:100%;margin-bottom:var(--space-2)}.graph-expr-input.is-error{border-color:var(--color-incorrect)}.graph-expr-error{color:var(--color-incorrect);font-size:var(--text-sm);margin:0 0 var(--space-2)}@media(max-width:560px){.graph-type-grid{grid-template-columns:repeat(2,1fr)}}.graph-draw-hint,.graph-fallback-note{font-size:var(--text-sm);color:var(--sw-purple-600);background:var(--sw-lavender-50);padding:var(--space-2) var(--space-3);border-radius:var(--radius-sm);margin:0}.mathlive-input{display:flex;flex-direction:column;gap:var(--space-2)}.sw-math-field{width:100%;min-height:48px;padding:var(--space-2) var(--space-3);border:1px solid var(--gray-300);border-radius:var(--radius-md);background:var(--surface-card);font-size:var(--text-lg);color:var(--gray-900);--text: var(--gray-900);--primary: var(--sw-purple-600);--caret: var(--sw-purple-600);--selection-background-color: var(--sw-lavender-100)}.sw-math-field:focus-within{border-color:var(--sw-purple-600);box-shadow:0 0 0 3px #4f7a6a38;outline:none}.sw-math-field::part(menu-toggle),.sw-math-field::part(virtual-keyboard-toggle){display:none}.sw-math-field::part(placeholder){font-family:var(--font-sans, system-ui, sans-serif);font-style:normal;color:var(--gray-500);opacity:1}.math-field-skeleton{width:100%;height:48px}.mathlive-input .math-preview{display:flex;align-items:center;gap:var(--space-2);min-height:32px;padding:var(--space-1) var(--space-3);background:var(--sw-lavender-50);border-radius:var(--radius-sm);color:var(--gray-800)}.mathlive-input .math-preview-label{font-size:var(--text-xs);text-transform:none;letter-spacing:.04em;color:var(--sw-purple-400);font-weight:600}@media(max-width:767px){.action-bar .action-label{display:none}.action-bar-utilities .btn-md{padding-inline:0;min-width:44px;justify-content:center}.action-bar-utilities .action-hint{padding-inline:var(--space-3);min-width:44px}.action-bar-primary{justify-content:stretch}.action-bar-primary .btn-lg{flex:1;width:100%}.stats-row{grid-template-columns:1fr}}.auth-screen{min-height:100dvh;display:grid;place-items:center;padding:var(--space-5);background:var(--sw-lavender-100)}.auth-screen .auth-card{width:100%;max-width:380px;text-align:center;padding:var(--space-6)}.auth-brand{display:grid;justify-items:center;gap:var(--space-2);margin-bottom:var(--space-5)}.auth-brand .sw-logo{height:52px;width:auto}.auth-brand h1{margin:0;color:var(--sw-purple-700);font-size:var(--text-2xl)}.auth-brand p{margin:0;color:var(--gray-500);font-size:var(--text-sm)}.auth-screen .auth-google{width:100%}.auth-screen .auth-guest{width:100%;margin-top:var(--space-3)}.auth-note{margin:var(--space-4) 0 0;color:var(--gray-500);font-size:var(--text-xs)}.admin-panel{width:min(760px,100%);margin:0 auto;padding:var(--space-6) var(--space-5) var(--space-8)}.admin-panel h1{color:var(--sw-purple-700);margin:0 0 var(--space-4)}.admin-section-title{font-size:var(--text-base);color:var(--gray-600);margin:var(--space-6) 0 var(--space-3);padding-bottom:var(--space-2);border-bottom:1px solid var(--border-subtle)}.admin-empty{color:var(--gray-500)}.admin-approvals{list-style:none;padding:0;margin:0;display:grid;gap:var(--space-3)}.admin-approval-row{display:grid;grid-template-columns:1fr minmax(0,220px) auto;align-items:center;gap:var(--space-3);padding:var(--space-4)}.admin-who{display:grid;gap:2px;min-width:0}.admin-who strong{color:var(--gray-800)}.admin-email{color:var(--gray-600);font-size:var(--text-sm);overflow-wrap:anywhere}.admin-time{color:var(--gray-500);font-size:var(--text-xs);display:flex;align-items:center;gap:var(--space-1);flex-wrap:wrap}.admin-badge{text-transform:capitalize;font-weight:600;font-size:var(--text-xs);padding:.1rem .45rem;border-radius:999px;background:var(--sw-purple-100);color:var(--sw-purple-700)}.admin-badge-approved{background:color-mix(in srgb,var(--color-correct) 18%,transparent);color:var(--color-correct)}.admin-badge-denied,.admin-badge-suspended{background:color-mix(in srgb,var(--color-incorrect) 16%,transparent);color:var(--color-incorrect)}.admin-badge-role{background:var(--sw-pink-600);color:#fff}.admin-actions{display:flex;gap:var(--space-2);justify-content:flex-end}@media(max-width:640px){.admin-approval-row{grid-template-columns:1fr}.admin-actions{justify-content:flex-start}}:root{--surface-page: #F6F5EF;--surface-card: #FFFFFF}body{background:var(--surface-page)}.question-card{background:var(--surface-card);border:1px solid var(--border-subtle);box-shadow:var(--shadow-md)}.choice{background:var(--surface-card)}:root[data-theme=dark]{--surface-page: #17180F;--surface-card: #212219;--border-subtle: #3A3B2D;--sw-gray-border: #3A3B2D;--sw-page: #17180F;--sw-card: #212219;--sw-choice: #2C2D22;--sw-border: #3A3B2D;--sw-ink: #EDEBE0;--sw-muted: #A7A899;--text-muted: #A7A899;--sw-neutral-chip: #34352B;--sw-sage: #82B6A0;--sw-sage-strong: #9FC8B6;--sw-correct-tint: #233A32;--sw-terracotta: #D08C5E;--sw-terracotta-soft: #D08C5E;--sw-wrong-chip-bg: #3A2B22;--sw-brand-surface: #22302A;--gray-50: #1D1E15;--gray-100: #232419;--gray-200: #2C2D22;--gray-300: #3A3B2D;--gray-400: #7E7F70;--gray-500: #A7A899;--gray-600: #C2C3B5;--gray-700: #D6D6C9;--gray-800: #E4E2D6;--gray-900: #EDEBE0;--sw-lavender-50: #232419;--sw-lavender-100: #2C2D22;--sw-purple-50: #233A32;--sw-purple-100: #2A4137;--sw-purple-300: #5E8A78;--sw-purple-500: #82B6A0;--sw-purple-600: #82B6A0;--sw-purple-700: #9FC8B6;--sw-pink-500: #82B6A0;--sw-pink-600: #9FC8B6;--sw-text-dark: #EDEBE0;--sw-text-body: #D6D6C9;--color-correct: #82B6A0;--color-correct-bg: #233A32;--color-incorrect: #D08C5E;--color-incorrect-bg: #3A2B22;--color-warning: #E0B070;--color-warning-bg: rgba(214, 158, 46, .16)}[data-theme=dark] .question-card{box-shadow:0 10px 30px #00000080;border-color:var(--sw-border)}[data-theme=dark] .question-meta span{background:var(--sw-neutral-chip);color:var(--gray-700)}[data-theme=dark] .choice strong{color:var(--gray-800)}[data-theme=dark] .choice.is-correct{background:var(--sw-correct-tint)}[data-theme=dark] .choice.is-incorrect{background:var(--surface-card)}[data-theme=dark] .result-correct{background:var(--sw-correct-tint);color:#9fc8b6}[data-theme=dark] .result-incorrect{background:var(--sw-wrong-chip-bg);color:#d08c5e}[data-theme=dark] .result-needs_review{background:var(--sw-neutral-chip);color:var(--gray-700)}[data-theme=dark] .answer-panel,[data-theme=dark] .solution-panel,[data-theme=dark] .adaptive-panel,[data-theme=dark] .mastery-panel,[data-theme=dark] .admin-import-panel,[data-theme=dark] .qa-status-panel,[data-theme=dark] .navigator-shell{background:var(--surface-card);border-color:var(--border-subtle)}[data-theme=dark] .app-header{background:var(--sw-brand-surface);border-bottom:1px solid var(--sw-border)}[data-theme=dark] .continue-card{background:var(--sw-brand-surface);border:1px solid var(--sw-border)}[data-theme=dark] .solution-bar,[data-theme=dark] .solution-sheet .solution-bar{background:var(--sw-brand-surface);color:var(--sw-ink)}[data-theme=dark] .solution-window-bar{background:var(--surface-card);color:var(--sw-ink)}[data-theme=dark] .exam-header{background:var(--sw-brand-surface)}[data-theme=dark] .btn-primary{background:#3e6354;box-shadow:none}[data-theme=dark] .btn-primary:hover{background:#35564a}[data-theme=dark] .app-header select option{color:#1a1a1a}[data-theme=dark] .toast{background:var(--surface-card);border-color:var(--border-subtle);color:var(--gray-700)}.tutor-student-pills,.tutor-chip-row{display:flex;flex-wrap:wrap;gap:var(--space-2);margin-top:var(--space-2)}.tutor-mastery{list-style:none;padding:0;margin:var(--space-2) 0 0;display:grid;gap:var(--space-2)}.tutor-mastery li{display:flex;justify-content:space-between;align-items:center;gap:var(--space-3)}.teacher-dashboard h3.sidebar-heading{margin-top:var(--space-4)}.teacher-dashboard textarea.input-field{width:100%;margin:var(--space-2) 0;resize:vertical}.tutor-note-list{list-style:none;padding:0;margin:var(--space-4) 0 0;display:grid;gap:var(--space-3)}.tutor-note-list li{border-top:1px solid var(--border-subtle);padding-top:var(--space-2)}.tutor-note-list p{margin:2px 0 0;color:var(--gray-700)}.parent-readiness-label{display:block;font-size:var(--text-2xl);color:var(--sw-purple-700);margin:var(--space-1) 0;font-weight:500}.parent-readiness.band-exam_ready .parent-readiness-label{color:var(--color-correct)}.parent-readiness.band-on_track .parent-readiness-label{color:var(--sw-purple-600)}.parent-readiness.band-building .parent-readiness-label{color:var(--sw-pink-600)}.parent-readiness.band-needs_focus .parent-readiness-label{color:var(--color-warning)}.admin-link-form{display:flex;flex-wrap:wrap;align-items:flex-end;gap:var(--space-3);padding:var(--space-4)}.admin-link-form label{display:grid;gap:2px;font-size:var(--text-sm);color:var(--gray-600)}.admin-link-msg{font-size:var(--text-sm);color:var(--color-correct)}.sidebar-readiness .readiness-row{display:flex;align-items:center;gap:var(--space-2)}.readiness-track{flex:1;margin:0}.readiness-fill.band-exam_ready{background:var(--color-correct)}.readiness-fill.band-on_track{background:linear-gradient(90deg,var(--sw-purple-600),var(--sw-purple-400))}.readiness-fill.band-building{background:var(--sw-pink-500)}.readiness-fill.band-needs_focus{background:var(--color-warning)}.readiness-pct{font-size:var(--text-sm);font-weight:500;color:var(--gray-700);min-width:34px;text-align:right}.readiness-label{display:block;margin-top:var(--space-1);font-size:var(--text-sm);font-weight:600}.readiness-label.band-exam_ready{color:var(--color-correct)}.readiness-label.band-on_track{color:var(--sw-purple-600)}.readiness-label.band-building{color:var(--sw-pink-600)}.readiness-label.band-needs_focus{color:var(--color-warning)}.test-preset-row{display:flex;flex-wrap:wrap;gap:var(--space-2);margin-bottom:var(--space-2)}.test-challenge-btn{width:100%}.test-runner{width:min(1180px,100%);padding:var(--space-4)}.test-runner-bar{display:flex;align-items:center;gap:var(--space-3);flex-wrap:wrap;padding:var(--space-2) var(--space-3);margin-bottom:var(--space-3);background:var(--surface-card);border:1px solid var(--border-subtle);border-radius:var(--radius-lg)}.test-runner-bar strong{color:var(--sw-purple-700)}.test-timer{margin-left:auto;font-weight:500;color:var(--sw-purple-600)}.test-timer.is-low{color:var(--color-incorrect)}.test-certificate{width:100%;max-width:600px;height:auto;border:1px solid var(--border-subtle);border-radius:var(--radius-md);margin:var(--space-3) 0}.student-layout.is-answering{grid-template-columns:minmax(0,1fr)}.student-layout.is-answering .practice-column{max-width:820px;margin-inline:auto;width:100%}.student-layout.is-checked .student-sidebar{animation:sidebarFadeIn .28s ease both}@media(min-width:981px){.student-layout.is-checked:not(.has-context){grid-template-columns:minmax(0,1fr) 320px;grid-template-areas:"question whatsnext" "action   whatsnext" "answer   whatsnext";column-gap:20px;row-gap:var(--space-3);align-items:start}.student-layout.is-checked:not(.has-context) .practice-column{display:contents}.student-layout.is-checked:not(.has-context) .fit-viewport{grid-area:question}.student-layout.is-checked:not(.has-context) .action-bar{grid-area:action}.student-layout.is-checked:not(.has-context) .answer-panel{grid-area:answer}.student-layout.is-checked:not(.has-context) .student-sidebar{grid-area:whatsnext}.student-layout.is-checked:not(.has-context) .lesson-panel{margin-top:0}}@media(max-width:980px){.student-layout.is-checked:not(.has-context) .orientation-row{order:1}.student-layout.is-checked:not(.has-context) .fit-viewport{order:2}.student-layout.is-checked:not(.has-context) .action-bar{order:3}.student-layout.is-checked:not(.has-context) .answer-panel{order:4}.student-layout.is-checked:not(.has-context) .solution-panel{order:5}}.lesson-panel{margin-top:var(--space-3);padding:var(--space-5);border-radius:var(--radius-lg);border:1px solid var(--border-subtle);background:var(--sw-lavender-50);animation:fadeIn var(--transition-base)}.lesson-panel.is-correct{background:var(--color-correct-bg);border-color:color-mix(in srgb,var(--color-correct) 30%,transparent)}.lesson-eyebrow{display:flex;align-items:center;gap:var(--space-1);margin:0 0 var(--space-2);font-size:var(--text-sm);font-weight:500;color:var(--sw-purple-600)}.lesson-panel.is-correct .lesson-eyebrow{color:var(--color-correct)}.lesson-misconception,.lesson-nudge{margin:0 0 var(--space-3);font-size:var(--text-lg);line-height:1.5;color:var(--gray-800)}.lesson-chose{font-weight:500;color:var(--gray-900)}.hint-misconception{margin:0 0 var(--space-3);padding-bottom:var(--space-3);border-bottom:1px solid var(--border, var(--gray-200));color:var(--gray-800)}.hint-chose{font-weight:500;color:var(--gray-900)}.lesson-correct{margin:0 0 var(--space-3);font-size:var(--text-base);color:var(--gray-700)}.lesson-headline{margin:0 0 var(--space-3);font-size:var(--text-lg);color:var(--gray-800)}.lesson-answer{font-size:var(--text-2xl);font-weight:500;color:var(--sw-purple-700);line-height:1.1}.lesson-answer .katex{font-size:1.04em}.lesson-concept{display:flex;gap:var(--space-2);align-items:flex-start;padding:var(--space-3);margin-bottom:var(--space-3);border-radius:var(--radius-md);background:var(--surface-card);color:var(--gray-700);font-size:var(--text-sm)}.lesson-concept svg{color:var(--sw-purple-500);flex:none;margin-top:2px}.choice.is-incorrect{border-color:var(--border-subtle);background:var(--surface-card)}.choice.is-incorrect strong{background:var(--sw-neutral-chip);color:#5e6054}.choice.is-incorrect>span{color:var(--sw-muted)}.momentum-card{padding:var(--space-5)}.momentum-eyebrow{margin:0;font-size:var(--text-sm);font-weight:500;color:var(--sw-purple-600)}.momentum-label{display:block;font-size:var(--text-2xl);font-weight:500;margin:var(--space-1) 0;color:var(--sw-purple-700)}.momentum-card.band-exam_ready .momentum-label{color:var(--color-correct)}.momentum-card.band-on_track .momentum-label{color:var(--sw-purple-600)}.momentum-card.band-building .momentum-label{color:var(--sw-pink-600)}.momentum-card.band-needs_focus .momentum-label{color:var(--color-warning)}.momentum-line{margin:var(--space-1) 0 0;color:var(--gray-600)}.momentum-streak{margin:var(--space-3) 0 0;display:inline-flex;align-items:center;gap:var(--space-1);font-size:var(--text-sm);color:var(--color-warning)}.momentum-topics{display:grid;gap:var(--space-3);margin-top:var(--space-4)}.momentum-topics-label{margin:0 0 var(--space-1);font-size:var(--text-sm);font-weight:500;color:var(--gray-600)}.momentum-chip-row{display:flex;flex-wrap:wrap;gap:var(--space-2)}.student-layout .question-card h2{font-weight:500}.student-layout .question-card h2 .katex{font-size:1.12em}.choice .katex{font-size:1.08em}.lesson-misconception .katex{font-size:1.06em}sizing,sqrt,large-op/op-symbol) are deliberately NOT touched,so stretchy delimiters,radicals,fraction bars and sub/superscript stacking keep KaTeX's exact layout. Variables stay italic (math
convention) — KaTeX's font-style rule is left intact. */
.katex{font-variant-numeric:tabular-nums lining-nums}.katex,.katex .mord,.katex .mop,.katex .mbin,.katex .mrel,.katex .mopen,.katex .mclose,.katex .mpunct,.katex .minner,.katex .mainrm,.katex .textrm,.katex .mathrm,.katex .mord.text,.katex .text{font-family:var(--font-sans),KaTeX_Main,"Times New Roman",serif}.katex .mathnormal,.katex .mathit,.katex .mathdefault{font-family:var(--font-sans),KaTeX_Math,"Times New Roman",serif}.katex .mathbf,.katex .textbf,.katex .boldsymbol{font-family:var(--font-sans),KaTeX_Main,"Times New Roman",serif;font-weight:600}:root[data-theme=dark]{--surface-page: #17180F;--surface-card: #212219;--border-subtle: #3A3B2D}[data-theme=dark] .choice{background:var(--sw-choice);border-color:var(--sw-border)}[data-theme=dark] .choice:hover{background:#34352b}[data-theme=dark] .choice.is-correct{border-color:var(--sw-sage);background:var(--sw-correct-tint)}[data-theme=dark] .choice.is-correct strong,[data-theme=dark] .choice.is-selected strong{color:var(--sw-page)}[data-theme=dark] .choice.is-incorrect{border-color:var(--sw-border);background:var(--surface-card)}[data-theme=dark] .choice.is-incorrect strong{background:var(--sw-neutral-chip);color:var(--sw-muted)}[data-theme=dark] .lesson-panel.is-learning{background:#233a32;border-color:#3a4b41}[data-theme=dark] .lesson-answer{color:var(--sw-sage)}[data-theme=dark] .link,[data-theme=dark] .sidebar-link,[data-theme=dark] .drawer-summary,[data-theme=dark] .navigator-shell summary{color:var(--sw-sage)}[data-theme=dark] .navigator-shell,[data-theme=dark] .navigator-panel{background:var(--surface-card);border-color:var(--border-subtle)}[data-theme=dark] .navigator-panel{border-top-color:var(--border-subtle)}[data-theme=dark] .filter-pill{background:var(--sw-choice);border-color:var(--sw-border);color:var(--sw-ink)}[data-theme=dark] .filter-pill.is-active{background:var(--sw-correct-tint);border-color:var(--sw-sage);color:var(--sw-sage)}[data-theme=dark] .dot-nav-row select,[data-theme=dark] .dot-nav-row input,[data-theme=dark] .jump-control input{background:var(--sw-choice);border-color:var(--sw-border);color:var(--sw-ink)}[data-theme=dark] .dot-nav-row .topic-select,[data-theme=dark] .dot-nav-row .jump-control{color:var(--sw-muted)}.choices .choice>strong{font-variant-numeric:tabular-nums;letter-spacing:.01em}.context-pane .context-table,.context-pane .context-formula{border:1px solid var(--border-subtle, #d9d4e3);border-radius:var(--radius-md, 8px);padding:.75rem 1rem;background:var(--surface-card, #fff)}.context-pane .context-formula{text-align:center}[data-testid=question-prompt] strong,.context-pane .context-text strong{font-weight:500}.exam-runner{display:flex;flex-direction:column;min-height:100vh}.exam-header{display:flex;align-items:center;gap:12px;padding:10px 16px;border-bottom:1px solid var(--border-subtle, #e3def0);background:var(--surface-card, #fff);position:sticky;top:0;z-index:5}.exam-title{display:flex;flex-direction:column;line-height:1.2;min-width:0}.exam-title strong{font-size:15px;color:var(--sw-purple-700, #5b3a82);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.exam-subtitle{font-size:12px;color:var(--text-muted, #6b6580)}.exam-header-right{margin-left:auto;display:flex;align-items:center;gap:10px}.exam-progress{font-size:12px;color:var(--text-muted, #6b6580);white-space:nowrap}.exam-timer{display:inline-flex;align-items:center;gap:5px;font-variant-numeric:tabular-nums;font-weight:500;font-size:15px;padding:4px 10px;border-radius:var(--radius-full, 999px);background:var(--sw-purple-100, #efe8f8);color:var(--sw-purple-700, #5b3a82)}.exam-timer.is-low{background:#fde8ec;color:#b3204b;animation:exam-pulse 1.4s ease-in-out infinite}@keyframes exam-pulse{50%{opacity:.55}}.exam-locked-banner{display:flex;align-items:center;justify-content:center;gap:6px;font-size:12px;color:var(--text-muted, #6b6580);background:var(--sw-purple-50, #f7f3fc);padding:6px 12px;border-bottom:1px solid var(--border-subtle, #e3def0)}.exam-body{display:grid;grid-template-columns:minmax(0,1fr) 220px;gap:20px;padding:20px;max-width:1100px;width:100%;margin:0 auto;box-sizing:border-box}.exam-question-col{min-width:0}.exam-nav{display:flex;align-items:center;gap:10px;margin-top:18px;flex-wrap:wrap}.exam-nav .btn-primary{margin-left:auto}.exam-flag.is-flagged{color:#b3204b;border-color:#f0b9c7;background:#fdeef2}.reference-panel{border:1px solid var(--border-subtle, #e3def0);border-radius:var(--radius-md, 12px);background:var(--surface-card);margin-bottom:16px;overflow:hidden}.reference-panel-summary{cursor:pointer;padding:10px 14px;font-size:13px;font-weight:600;list-style:none;-webkit-user-select:none;user-select:none}.reference-panel-summary::-webkit-details-marker{display:none}.reference-panel-body{padding:4px 14px 12px}.reference-table{width:100%;border-collapse:collapse;font-size:13px}.reference-table tr{border-top:1px solid var(--border-subtle, #eee)}.reference-table tr:first-child{border-top:none}.reference-table th,.reference-table td{text-align:left;padding:5px 8px 5px 0;vertical-align:baseline}.reference-symbol{font-weight:700;white-space:nowrap;width:1%;font-family:var(--font-mono, monospace)}.reference-label{color:var(--text-secondary, #555)}.reference-value{white-space:nowrap;text-align:right;font-variant-numeric:tabular-nums}.reference-source{margin:8px 0 0;font-size:11px;color:var(--text-tertiary, #888);line-height:1.4}.exam-map{align-self:start;position:sticky;top:64px;border:1px solid var(--border-subtle, #e3def0);border-radius:var(--radius-md, 12px);padding:12px;background:var(--surface-card)}.exam-map-title{font-size:12px;font-weight:500;color:var(--text-muted, #6b6580);margin:0 0 8px;letter-spacing:.01em}.exam-map-grid{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:6px}.exam-map-cell{position:relative;aspect-ratio:1;border:1px solid var(--border-subtle, #d9d4e3);border-radius:7px;background:var(--surface-card);font-size:12px;font-weight:600;color:var(--text-muted, #6b6580);cursor:pointer;display:flex;align-items:center;justify-content:center;transition:transform .08s ease}.exam-map-cell:hover{transform:scale(1.06)}.exam-map-cell.is-answered{background:var(--sw-purple-100, #efe8f8);border-color:var(--sw-purple-300, #c9b3e3);color:var(--sw-purple-700, #5b3a82)}.exam-map-cell.is-flagged{border-color:var(--color-incorrect);box-shadow:inset 0 0 0 1px var(--color-incorrect)}[data-theme=dark] .exam-map-cell{background:var(--sw-choice);border-color:var(--gray-400)}.exam-map-cell.is-current{outline:2px solid var(--sw-pink-500, #c8427a);outline-offset:1px;color:var(--sw-pink-600, #b3204b)}.exam-map-flag{position:absolute;top:2px;right:2px;color:var(--color-incorrect)}.exam-map-legend{list-style:none;margin:10px 0 0;padding:0;display:flex;flex-direction:column;gap:4px;font-size:11px;color:var(--text-muted, #6b6580)}.exam-map-legend .dot{display:inline-block;width:10px;height:10px;border-radius:3px;margin-right:6px;vertical-align:-1px}.dot.dot-answered{background:var(--sw-purple-300, #c9b3e3)}.dot.dot-flagged{background:var(--color-incorrect)}.dot.dot-current{background:var(--sw-pink-500, #c8427a)}.exam-modal-backdrop{position:fixed;inset:0;background:#1e142d73;display:flex;align-items:center;justify-content:center;z-index:50;padding:16px}.exam-modal{background:var(--surface-card);border-radius:var(--radius-lg, 16px);padding:24px;max-width:420px;width:100%;box-shadow:0 20px 50px #28193c40}.exam-modal h2{margin:0 0 10px;font-size:19px}.exam-modal-warn{color:#b3204b;font-size:13px}.exam-modal-actions{display:flex;justify-content:flex-end;gap:10px;margin-top:18px}.exam-results{max-width:720px;margin:0 auto;padding:24px 16px 56px}.exam-results-header .eyebrow{display:inline-flex;align-items:center;gap:6px;color:var(--sw-purple-600, #6b4596);font-size:13px;font-weight:500}.exam-results-header h1{font-size:22px;font-weight:500;margin:6px 0 18px}.exam-predicted{padding:20px;border-radius:var(--radius-lg, 16px);border:1px solid var(--border-subtle, #e3def0);margin-bottom:16px}.exam-predicted.band-level-excellence{background:var(--color-correct-bg)}.exam-predicted.band-level-acceptable{background:var(--color-warning-bg)}.exam-predicted.band-level-below_acceptable{background:var(--color-incorrect-bg)}.exam-predicted.is-locked{background:var(--surface-card, #fff)}.exam-prediction-locked{margin:0 0 4px}.exam-prediction-locked-title{margin:0 0 6px;font-size:16px;font-weight:600;color:var(--text-strong, #2c2540)}.exam-prediction-locked-copy{margin:0;font-size:14px;line-height:1.5;color:var(--text-muted, #5e6054)}.exam-predicted-eyebrow{font-size:20px;font-weight:500;letter-spacing:0;line-height:1.35;color:var(--text-strong, #2c2540);margin:0 0 8px}.exam-predicted-range{display:flex;align-items:baseline;gap:8px;font-size:18px;font-weight:500;color:var(--sw-purple-700, #5b3a82);line-height:1.1;margin:0}.exam-predicted-dash{font-size:15px;color:var(--text-muted, #9990ab)}.exam-predicted-point{margin:0 0 14px;color:var(--text-strong, #2c2540);font-size:14px}.exam-gauge{position:relative;height:12px;border-radius:999px;background:var(--sw-purple-50, #f0eaf8);margin:26px 0 8px}.exam-gauge-band{position:absolute;top:0;height:100%;background:var(--sw-purple-300, #c9b3e3);border-radius:999px;opacity:.7}.exam-gauge-point{position:absolute;top:-3px;width:4px;height:18px;margin-left:-2px;border-radius:2px;background:var(--sw-purple-700, #5b3a82)}.exam-gauge-mark{position:absolute;top:-22px;width:0;border-left:2px dashed #9aa0ad;height:34px;margin-left:-1px}.exam-gauge-mark span{position:absolute;top:-14px;left:50%;transform:translate(-50%);font-size:10px;color:var(--text-muted);white-space:nowrap}.exam-gauge-acceptable{border-color:#d98a2b}.exam-gauge-excellence{border-color:#2e9e63}.exam-standards-legend{display:flex;gap:16px;font-size:12px;color:var(--text-muted, #6b6580);margin-top:10px}.exam-standards-legend i{display:inline-block;width:10px;height:0;border-top:2px dashed;margin-right:5px;vertical-align:middle}.exam-standards-legend .mark-acceptable{border-color:#d98a2b}.exam-standards-legend .mark-excellence{border-color:#2e9e63}.exam-predicted-message{margin:14px 0 0;font-size:14px;color:var(--text-strong, #2c2540)}.exam-predicted-note{margin:10px 0 0;font-size:12px;color:var(--text-muted, #6b6580);border-top:1px solid var(--border-subtle, #ece7f5);padding-top:10px}.exam-raw{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:16px 18px;border-radius:var(--radius-md, 12px);border:1px solid var(--border-subtle, #e3def0);background:var(--surface-card);margin-bottom:20px}.exam-raw-main{display:flex;flex-direction:column}.exam-raw-pct{font-size:20px;font-weight:500;color:var(--sw-purple-700, #5b3a82)}.exam-raw-sub{font-size:13px;color:var(--text-muted, #6b6580)}.exam-raw-label{font-size:12px;color:var(--text-muted, #6b6580);text-align:right;margin:0;max-width:180px}.exam-section-title{display:flex;align-items:center;gap:7px;font-size:15px;font-weight:500;margin:0 0 12px}.exam-strand-row{display:grid;grid-template-columns:1fr auto;gap:4px 12px;align-items:center;margin-bottom:14px}.exam-strand-meta{grid-column:1 / 2;display:flex;justify-content:space-between;gap:10px;font-size:13px}.exam-strand-name{font-weight:600}.exam-strand-score{color:var(--text-muted, #6b6580);font-variant-numeric:tabular-nums}.exam-strand-bar{grid-column:1 / 2;height:10px;border-radius:999px;background:var(--gray-300);overflow:hidden}.exam-strand-fill{height:100%;border-radius:999px}.exam-strand-fill.is-strong{background:var(--color-correct)}.exam-strand-fill.is-ok{background:var(--color-warning)}.exam-strand-fill.is-weak{background:var(--color-incorrect)}.exam-strand-practise{grid-column:2 / 3;grid-row:1 / 3;align-self:center;border:1px solid var(--sw-pink-300, #f0b9c7);background:var(--sw-lavender-50);color:var(--sw-pink-600, #b3204b);border-radius:var(--radius-full, 999px);padding:5px 12px;font-size:12px;font-weight:600;cursor:pointer;white-space:nowrap}.exam-misconceptions{margin-top:26px}.exam-misconception-list{list-style:none;margin:12px 0 0;padding:0;display:flex;flex-direction:column;gap:10px}.exam-misconception{border:1px solid var(--sw-border);border-left:4px solid var(--color-warning);background:var(--sw-card);border-radius:var(--radius-md, 12px);padding:12px 14px}.exam-misconception-reason{margin:0;font-weight:500;line-height:1.35}.exam-misconception-meta{margin:4px 0 0;font-size:12px;color:var(--text-muted, #6b6580)}.exam-results-actions{margin-top:26px;display:flex;justify-content:center}.home-section-sub{margin:-4px 0 14px;color:var(--text-muted, #6b6580);font-size:14px;max-width:60ch}.exam-entry-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:12px}.exam-entry-card{display:flex;align-items:center;justify-content:space-between;gap:12px;border:1px solid var(--sw-border);border-radius:var(--radius-lg, 14px);background:var(--sw-card);padding:14px 16px}.exam-entry-meta{display:flex;flex-direction:column;gap:2px;min-width:0}.exam-entry-name{font-weight:500}.exam-entry-kind{font-size:12px;color:var(--sw-pink-600, #b3204b);font-weight:600}.exam-entry-last{font-size:12px;color:var(--text-muted, #6b6580);margin-top:2px}.exam-entry-start{flex:none;display:inline-flex;align-items:center;gap:6px;white-space:nowrap}.exam-history{margin-top:16px}.exam-history-title{font-size:14px;font-weight:500;margin:0 0 8px}.exam-history-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:6px}.exam-history-row{display:flex;align-items:baseline;gap:10px;flex-wrap:wrap;font-size:13px;padding:8px 12px;border:1px solid var(--sw-border);border-radius:var(--radius-md, 10px);background:var(--sw-card)}.exam-history-course{font-weight:600}.exam-history-date{color:var(--text-muted, #6b6580)}.exam-history-score{margin-left:auto;font-variant-numeric:tabular-nums}@media(max-width:1080px){.exam-body{grid-template-columns:minmax(0,1fr);padding:14px}.exam-map{position:static;padding:10px}.exam-map-grid{grid-template-columns:repeat(10,minmax(0,1fr))}.exam-map-legend{flex-direction:row;flex-wrap:wrap;gap:4px 14px}}@media(max-width:480px){.exam-header{flex-wrap:wrap;gap:8px}.exam-header-right{width:100%}.exam-progress{display:none}.exam-map-grid{grid-template-columns:repeat(8,minmax(0,1fr))}.exam-predicted-range{font-size:18px}.exam-raw{flex-direction:column;align-items:flex-start}.exam-raw-label{text-align:left;max-width:none}.exam-entry-card{flex-direction:column;align-items:stretch}.exam-entry-start{justify-content:center}.exam-history-score{margin-left:0;width:100%}}
