@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.16.45"}.katex .katex-mathml{clip:rect(1px,1px,1px,1px);border:0;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}.create-course{display:flex;flex-direction:column;min-height:100vh;background:var(--color-bg)}.create-course-topbar{display:grid;grid-template-columns:auto 1fr auto;align-items:center;padding:18px 28px;border-bottom:1px solid var(--color-border);background:var(--color-surface);position:sticky;top:0;z-index:20}.create-course-cancel{appearance:none;border:0;background:transparent;color:var(--color-text-muted);font:inherit;cursor:pointer;padding:6px 10px;border-radius:6px}.create-course-cancel:hover{color:var(--color-text);background:var(--color-surface-2)}.create-course-title{margin:0;font-size:15px;font-weight:600;letter-spacing:.5px;text-align:center;color:var(--color-text)}.create-course-spacer{width:60px}.create-course-body{flex:1;display:flex;justify-content:center;padding:60px 24px 120px}.form-step{width:100%;max-width:640px;display:flex;flex-direction:column;gap:32px}.form-step-heading{margin:0;font-size:28px;font-weight:700;letter-spacing:-.4px;line-height:1.25;color:var(--color-text)}.form-step-hint{margin:-16px 0 0;color:var(--color-text-muted);font-size:14px;line-height:1.55}.form-step-hint-quiet{font-size:12.5px;opacity:.85;margin-top:-22px}.step-progress{display:flex;align-items:center;gap:8px;list-style:none;margin:0;padding:18px 28px;background:var(--color-surface);border-bottom:1px solid var(--color-border)}.step-progress-item{flex:1}.step-progress-btn{appearance:none;border:0;background:transparent;width:100%;display:flex;align-items:center;gap:10px;padding:6px 12px;border-radius:8px;cursor:pointer;color:var(--color-text-muted);font:inherit;transition:background .12s ease,color .12s ease}.step-progress-btn:hover:not(:disabled){background:var(--color-surface-2);color:var(--color-text)}.step-progress-btn:disabled{cursor:not-allowed;opacity:.55}.step-progress-dot{display:inline-flex;align-items:center;justify-content:center;width:22px;height:22px;border-radius:50%;background:var(--color-surface-2);color:var(--color-text-muted);font-size:12px;font-weight:600;border:1px solid var(--color-border);flex-shrink:0}.step-progress-label{font-size:13px;font-weight:500;white-space:nowrap}.step-progress-item.is-current .step-progress-btn{color:var(--color-text)}.step-progress-item.is-current .step-progress-dot{background:var(--color-primary);color:#fff;border-color:var(--color-primary)}.step-progress-item.is-completed .step-progress-dot{background:var(--color-success);color:#fff;border-color:var(--color-success)}.field{display:flex;flex-direction:column;gap:8px}.field-label{font-size:13px;font-weight:600;color:var(--color-text);letter-spacing:.2px}.field-input{appearance:none;font:inherit;font-size:15px;color:var(--color-text);background:var(--color-surface);border:1px solid var(--color-border);border-radius:8px;padding:12px 14px;outline:none;transition:border-color .12s ease,box-shadow .12s ease;width:100%}.field-input:focus{border-color:var(--color-primary);box-shadow:0 0 0 3px #1d35571f}.field-input::placeholder{color:var(--color-text-muted)}.field-input-narrow{max-width:160px}.field-input:disabled{background:var(--color-surface-2);color:var(--color-text-muted);cursor:not-allowed}.field-checkbox-row{display:flex;align-items:flex-start;gap:10px;cursor:pointer;margin-top:4px;padding:8px 4px}.field-checkbox-row input{accent-color:var(--color-primary);margin-top:3px}.field-checkbox-label{display:block;font-size:13px;color:var(--color-text)}.field-checkbox-hint{display:block;font-size:12px;color:var(--color-text-muted);margin-top:2px}.date-trio{display:inline-flex;align-items:center}.date-trio.is-disabled{opacity:.55;pointer-events:none}.date-trio-fields{display:inline-flex;align-items:center;gap:14px}.date-trio-field{display:inline-flex;align-items:baseline;gap:4px}.date-trio-input{appearance:none;font:inherit;font-variant-numeric:tabular-nums;font-size:16px;color:var(--color-text);background:var(--color-surface);border:1px solid var(--color-border);border-radius:8px;padding:10px 8px;text-align:center;outline:none;transition:border-color .12s ease,box-shadow .12s ease}.date-trio-input:focus{border-color:var(--color-primary);box-shadow:0 0 0 3px #1d35571f}.date-trio-input:disabled{background:var(--color-surface-2);color:var(--color-text-muted);cursor:not-allowed}.date-trio-year{width:76px}.date-trio-month,.date-trio-day{width:52px}.date-trio-suffix{font-size:13px;color:var(--color-text-muted);font-weight:500}.radio-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:10px;margin:0;padding:0;border:0}.radio-grid-compact{grid-template-columns:repeat(auto-fill,minmax(140px,1fr));gap:8px}.radio-grid-compact .radio-card{padding:10px 12px}.radio-grid-compact .radio-card-label{font-size:13px}.field-input-inset{margin-top:8px}.field-hint{margin:0;font-size:12.5px;color:var(--color-text-muted)}.chip-grid{display:flex;flex-wrap:wrap;gap:8px}.chip{display:inline-flex;align-items:center;gap:8px;padding:8px 14px;border:1px solid var(--color-border);border-radius:999px;cursor:pointer;background:var(--color-surface);color:var(--color-text-muted);transition:border-color .12s ease,background .12s ease,color .12s ease;font-size:13px;font-weight:500}.chip input{display:none}.chip:hover{color:var(--color-text);border-color:var(--color-text-muted)}.chip.is-active{background:var(--color-primary);color:#fff;border-color:var(--color-primary)}.reset-row{display:flex;align-items:center;gap:12px;flex-wrap:wrap;padding:10px 14px;background:var(--color-surface-2);border-radius:10px;border:1px solid var(--color-border)}.reset-row-hint{font-size:12.5px;color:var(--color-text-muted);flex:1;min-width:200px}.btn-secondary-sm{padding:6px 14px;font-size:12.5px;flex-shrink:0}.radio-card{display:flex;align-items:center;gap:12px;padding:14px 16px;border:1px solid var(--color-border);border-radius:10px;background:var(--color-surface);cursor:pointer;transition:border-color .12s ease,box-shadow .12s ease,background .12s ease}.radio-card input{accent-color:var(--color-primary);margin:0}.radio-card-label{font-size:14px;color:var(--color-text)}.radio-card:hover{border-color:var(--color-text-muted)}.radio-card.is-selected{border-color:var(--color-primary);box-shadow:0 0 0 1px var(--color-primary);background:var(--color-surface)}.slot-list{display:flex;flex-direction:column;gap:8px}.slot-row{display:grid;grid-template-columns:1fr 100px;align-items:center;gap:12px;padding:12px 16px;border:1px solid var(--color-border);border-radius:10px;background:var(--color-surface);transition:border-color .12s ease,opacity .12s ease}.slot-row:not(.is-on){opacity:.65}.slot-row.is-on{border-color:var(--color-primary)}.slot-toggle{display:flex;align-items:center;gap:10px;cursor:pointer}.slot-toggle input{accent-color:var(--color-primary);width:16px;height:16px}.slot-label{font-size:14px;color:var(--color-text)}.slot-count{appearance:none;font:inherit;border:1px solid var(--color-border);border-radius:6px;padding:6px 10px;text-align:right;background:var(--color-surface-2)}.slot-count:disabled{opacity:.5;cursor:not-allowed}.slot-count:focus{outline:2px solid var(--color-primary);outline-offset:1px}.template-row{display:flex;align-items:center;gap:12px;flex-wrap:wrap}.template-row-label{font-size:13px;font-weight:600;color:var(--color-text-muted)}.template-chips{display:flex;flex-wrap:wrap;gap:6px}.template-chip{appearance:none;border:1px solid var(--color-border);background:var(--color-surface);color:var(--color-text-muted);font:inherit;font-size:12.5px;font-weight:500;padding:5px 12px;border-radius:999px;cursor:pointer;transition:color .12s ease,border-color .12s ease,background .12s ease}.template-chip:hover{color:var(--color-text);border-color:var(--color-text-muted)}.template-chip.is-active{color:#fff;background:var(--color-primary);border-color:var(--color-primary)}.component-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:10px}.component-card{display:grid;grid-template-columns:auto 1fr auto;align-items:flex-start;gap:14px;padding:14px 16px;border:1px solid var(--color-border);border-radius:12px;background:var(--color-surface);cursor:pointer;transition:border-color .12s ease,box-shadow .12s ease,background .12s ease}.component-card:hover{border-color:var(--color-text-muted)}.component-card.is-checked{border-color:var(--color-primary);box-shadow:0 0 0 1px var(--color-primary),var(--shadow-sm)}.component-card.is-locked{opacity:.78;cursor:default}.component-card-input{appearance:none;position:absolute;pointer-events:none;opacity:0}.component-card-icon{font-size:18px;line-height:1;padding-top:2px;color:var(--color-primary);width:22px;text-align:center}.component-card-body{display:flex;flex-direction:column;gap:4px;min-width:0}.component-card-name{font-size:14px;font-weight:600;color:var(--color-text)}.component-card-desc{font-size:12.5px;color:var(--color-text-muted);line-height:1.45}.component-card-deps{font-size:11.5px;color:var(--color-text-muted);font-style:italic;margin-top:2px}.component-card-check{width:22px;height:22px;display:inline-flex;align-items:center;justify-content:center;border-radius:50%;font-size:13px;font-weight:700;color:#fff;background:transparent;transition:background .12s ease}.component-card.is-checked .component-card-check{background:var(--color-primary)}.component-card.is-locked .component-card-check{background:var(--color-text-muted)}.upload-pdf-zone{display:flex;align-items:center;gap:12px}.upload-pdf-input{display:none}.upload-pdf-label{flex:1;display:flex;align-items:center;justify-content:center;padding:28px 20px;border:2px dashed var(--color-border);border-radius:12px;background:var(--color-surface);cursor:pointer;transition:border-color .12s ease,background .12s ease;min-height:100px}.upload-pdf-label:hover{border-color:var(--color-primary);background:var(--color-surface-2)}.upload-pdf-label.is-filled{border-style:solid;border-color:var(--color-primary)}.upload-pdf-prompt{font-size:16px;font-weight:600;color:var(--color-text-muted);letter-spacing:1px}.upload-pdf-meta{display:flex;flex-direction:column;gap:2px;align-items:center}.upload-pdf-name{font-weight:600;color:var(--color-text)}.upload-pdf-size{font-size:12px;color:var(--color-text-muted)}.upload-pdf-clear{appearance:none;border:1px solid var(--color-border);background:var(--color-surface);color:var(--color-error);padding:8px 14px;border-radius:8px;cursor:pointer;font:inherit;font-size:13px}.upload-pdf-clear:hover{background:var(--color-surface-2)}.review-summary{border:1px solid var(--color-border);border-radius:12px;background:var(--color-surface);padding:18px 22px}.review-heading{margin:0 0 12px;font-size:13px;font-weight:600;letter-spacing:.6px;text-transform:uppercase;color:var(--color-text-muted)}.review-list{margin:0;display:flex;flex-direction:column;gap:8px}.review-row{display:grid;grid-template-columns:110px 1fr;gap:12px}.review-row dt{color:var(--color-text-muted);font-size:13px}.review-row dd{margin:0;color:var(--color-text);font-size:14px}.form-error{color:var(--color-error);font-size:13px;margin:0}.create-course-footer{position:sticky;bottom:0;display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:16px;padding:14px 28px;border-top:1px solid var(--color-border);background:var(--color-surface);z-index:15}.create-course-footer-meta{text-align:center;font-size:12px;color:var(--color-text-muted);letter-spacing:.4px}.btn-primary,.btn-secondary{appearance:none;font:inherit;font-size:14px;font-weight:600;border-radius:8px;padding:10px 22px;cursor:pointer;transition:background .12s ease,color .12s ease,border-color .12s ease}.btn-primary{background:var(--color-action);color:#fff;border:1px solid var(--color-action)}.btn-primary:hover:not(:disabled){background:var(--color-action-hover);border-color:var(--color-action-hover)}.btn-primary:disabled{background:var(--color-surface-2);color:var(--color-text-muted);border-color:var(--color-border);cursor:not-allowed}.btn-secondary{background:var(--color-surface);color:var(--color-text);border:1px solid var(--color-border)}.btn-secondary:hover:not(:disabled){background:var(--color-surface-2)}.btn-secondary:disabled{color:var(--color-text-muted);cursor:not-allowed}.field-help{margin:0 0 10px;font-size:12.5px;line-height:1.55;color:var(--color-text-muted)}.mastery-chip-row{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:10px}.mastery-chip{display:flex;flex-direction:column;gap:4px;padding:12px 14px;background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg);text-align:left;cursor:pointer;transition:background .12s ease,border-color .12s ease,transform .12s ease}.mastery-chip:hover{border-color:var(--color-action);transform:translateY(-1px)}.mastery-chip.is-active{background:var(--color-action-soft);border-color:var(--color-action);box-shadow:0 1px 3px #b4530926}.mastery-chip-label{font-weight:600;font-size:14px;color:var(--color-text)}.mastery-chip-desc{font-size:11.5px;line-height:1.5;color:var(--color-text-muted)}.mastery-chip.is-active .mastery-chip-label{color:var(--color-action-hover)}.mock-fieldset{margin-top:8px;padding:14px 16px;border:1px dashed var(--color-border);border-radius:var(--radius-lg)}.mock-count-row{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:14px}.mock-count-chip{padding:8px 16px;background:var(--color-surface);border:1px solid var(--color-border);border-radius:999px;font-weight:500;cursor:pointer;transition:background .12s ease,border-color .12s ease}.mock-count-chip:hover{border-color:var(--color-action)}.mock-count-chip.is-active{background:var(--color-action);color:#fff;border-color:var(--color-action)}.mock-paper-list{display:flex;flex-direction:column;gap:12px}.mock-paper-row{display:flex;flex-direction:column;gap:8px;padding:12px;background:var(--color-surface);border-radius:var(--radius-md);border-left:3px solid var(--color-action)}.mock-paper-label{font-weight:600;font-size:13px;color:var(--color-text)}.mock-style-row{display:grid;grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:8px}.mock-style-chip{display:flex;flex-direction:column;gap:3px;padding:10px 12px;background:var(--color-surface-2);border:1px solid var(--color-border);border-radius:var(--radius-md);text-align:left;cursor:pointer;transition:background .12s ease,border-color .12s ease}.mock-style-chip:not(:disabled):hover{border-color:var(--color-action)}.mock-style-chip.is-active{background:var(--color-action-soft);border-color:var(--color-action)}.mock-style-chip.is-disabled{opacity:.55;cursor:not-allowed}.mock-style-chip-label{font-weight:600;font-size:12.5px;color:var(--color-text)}.mock-style-chip-desc{font-size:10.5px;line-height:1.5;color:var(--color-text-muted)}.mock-style-chip.is-active .mock-style-chip-label{color:var(--color-action-hover)}.past-papers-section{margin-top:18px;padding:14px 16px;background:var(--color-surface);border:1px dashed var(--color-border);border-radius:var(--radius-lg)}.past-papers-heading{margin:0 0 4px;font-size:14px;font-weight:600;color:var(--color-text);font-family:var(--font-display, serif)}.past-papers-hint{margin:0 0 12px;font-size:12px;line-height:1.55;color:var(--color-text-muted)}.past-papers-list{display:flex;flex-direction:column;gap:8px;margin-bottom:10px}.past-paper-row{display:grid;grid-template-columns:1fr auto auto;align-items:center;gap:10px;padding:8px 12px;background:var(--color-surface-2);border-radius:var(--radius-md)}.past-paper-name{font-size:13px;font-weight:500;color:var(--color-text);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.past-paper-year-label{display:flex;align-items:center;gap:6px;font-size:12px;color:var(--color-text-muted)}.past-paper-year-input{width:76px;padding:4px 8px;border:1px solid var(--color-border);border-radius:6px;font:inherit;font-size:12px}.past-paper-remove{padding:4px 10px;background:transparent;color:var(--color-accent);border:1px solid var(--color-border);border-radius:6px;font-size:12px;cursor:pointer;transition:background .12s ease,color .12s ease}.past-paper-remove:hover{background:var(--color-accent);color:#fff;border-color:var(--color-accent)}.past-paper-add-btn{display:inline-block;padding:8px 14px;background:var(--color-surface-2);color:var(--color-action);border:1px dashed var(--color-action);border-radius:var(--radius-md);font-size:13px;font-weight:500;cursor:pointer;transition:background .12s ease,color .12s ease}.past-paper-add-btn:hover{background:var(--color-action-soft)}.slots-section{display:flex;flex-direction:column;gap:12px;margin-top:16px;padding-top:18px;border-top:1px dashed var(--color-border)}.slots-heading{font-size:14px;font-weight:600;color:var(--color-text-primary);margin:0}.slots-hint{font-size:12px;color:var(--color-text-tertiary);margin:0 0 6px;line-height:1.6}.slots-dropzone{display:flex;flex-direction:column;align-items:center;gap:10px;padding:24px;border:1px dashed var(--color-border);border-radius:var(--radius-md);background:var(--color-surface-2);transition:border-color .12s ease,background .12s ease}.slots-dropzone.is-over{border-color:var(--color-primary);background:var(--color-action-soft)}.slots-dropzone.has-files{padding:14px 18px}.slots-dropzone-actions{display:flex;gap:8px}.slots-dropzone-hint{margin:0;font-size:12px;color:var(--color-text-tertiary)}.slot-cards{display:flex;flex-direction:column;gap:10px;list-style:none;padding:0;margin:0}.slot-card{display:flex;flex-direction:column;gap:8px;padding:12px 14px;border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-surface)}.slot-card[data-kind=past_paper]{border-left:3px solid #b45309}.slot-card[data-kind=textbook]{border-left:3px solid #1e3a5f}.slot-card[data-kind=lecture_notes]{border-left:3px solid #2d6a4f}.slot-card[data-kind=case_study]{border-left:3px solid #6d2e46}.slot-card[data-kind=syllabus]{border-left:3px solid #4b5563}.slot-card[data-kind=reading]{border-left:3px solid #5b21b6}.slot-card[data-kind=custom]{border-left:3px solid #9ca3af}.slot-card-head{display:flex;align-items:center;gap:10px;font-size:13px}.slot-card-format{flex:0 0 auto;padding:2px 8px;background:var(--color-surface-2);color:var(--color-text-secondary);font-size:10px;font-weight:700;letter-spacing:.5px;border-radius:4px}.slot-card-name{flex:1 1 auto;font-weight:500;color:var(--color-text-primary);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.slot-card-size{flex:0 0 auto;font-size:11px;color:var(--color-text-tertiary);font-variant-numeric:tabular-nums}.slot-card-remove{flex:0 0 auto;width:22px;height:22px;border:none;background:transparent;color:var(--color-text-tertiary);font-size:18px;line-height:1;cursor:pointer;border-radius:4px;transition:background .12s ease,color .12s ease}.slot-card-remove:hover{background:var(--color-action-soft);color:var(--color-error, #b00020)}.slot-card-body{display:grid;grid-template-columns:1fr 1fr auto auto;gap:8px 12px}.slot-field{display:flex;flex-direction:column;gap:3px;font-size:12px;min-width:0}.slot-field-narrow{max-width:110px}.slot-field-wide{grid-column:1 / -1}.slot-field-label{font-size:11px;font-weight:600;color:var(--color-text-secondary);text-transform:uppercase;letter-spacing:.4px}.slot-field-input,.slot-field-select{padding:5px 8px;font-size:12px;border:1px solid var(--color-border);border-radius:var(--radius-sm, 4px);background:var(--color-surface);color:var(--color-text-primary);font-family:inherit;min-width:0}.slot-field-input:focus,.slot-field-select:focus{outline:none;border-color:var(--color-primary)}@media(max-width:700px){.slot-card-body{grid-template-columns:1fr 1fr}.slot-field-wide{grid-column:1 / -1}}@font-face{font-family:Fraunces Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/fraunces-vietnamese-wght-normal-CnvboYUG.woff2) format("woff2-variations");unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Fraunces Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/fraunces-latin-ext-wght-normal-Ca2vKHc0.woff2) format("woff2-variations");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Fraunces Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/fraunces-latin-wght-normal-ukD16Tqj.woff2) format("woff2-variations");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}:root{--color-bg: #f7f8fa;--color-surface: #ffffff;--color-surface-2: #f1f3f7;--color-border: #e2e6ec;--color-text: #1a2330;--color-text-muted: #5d6b80;--color-primary: #1e3a5f;--color-primary-hover: #2a5080;--color-action: #b45309;--color-action-hover: #92400e;--color-action-soft: #fdf6e8;--color-success: #15803d;--color-error: #b91c1c;--color-accent: #c1272d;--color-warning: #a16207;--radius: 10px;--radius-lg: 14px;--shadow-sm: 0 1px 2px rgba(20, 30, 50, .05), 0 2px 6px rgba(20, 30, 50, .04);--shadow-md: 0 1px 2px rgba(20, 30, 50, .04), 0 6px 16px rgba(20, 30, 50, .06), 0 16px 32px rgba(20, 30, 50, .04);--shadow-lg: 0 1px 3px rgba(20, 30, 50, .06), 0 12px 28px rgba(20, 30, 50, .08), 0 24px 48px rgba(20, 30, 50, .05);--font-sans: -apple-system, BlinkMacSystemFont, "PingFang SC", "Helvetica Neue", sans-serif;--font-mono: ui-monospace, "SF Mono", Menlo, Consolas, monospace;--font-display: "Fraunces Variable", "Fraunces", "Songti SC", "STSong", "Source Han Serif SC", "Source Han Serif CN", Georgia, serif;--mindmap-node-weight: 400;--mindmap-root-weight: 500;--mindmap-node-letter-spacing: .1px;--mindmap-root-letter-spacing: .25px}*{box-sizing:border-box}html,body,#root{margin:0;padding:0}body{font-family:var(--font-sans);font-size:15px;color:var(--color-text);background:var(--color-bg);line-height:1.55;-webkit-font-smoothing:antialiased}.app{min-height:100vh;display:flex;flex-direction:column}.app-header{display:flex;align-items:center;justify-content:space-between;padding:16px 32px;border-bottom:1px solid var(--color-border);background:var(--color-surface);position:sticky;top:0;z-index:10}.brand{display:flex;align-items:center;gap:10px}.brand-mark{display:inline-flex;align-items:center;justify-content:center;width:28px;height:28px;background:var(--color-primary);color:#fff;border-radius:6px;font-weight:700;font-size:13px}.brand-seal{display:inline-block;width:32px;height:32px;flex-shrink:0;filter:drop-shadow(0 1px 2px rgba(20,30,50,.12))}.brand-text{font-weight:700;font-size:18px;letter-spacing:1px}.brand-text-en{font-weight:500;font-size:11px;letter-spacing:1.3px;color:var(--color-text-muted);text-transform:uppercase;margin-left:-2px}.brand-tag{color:var(--color-text-muted);font-size:13px}.header-tools{display:flex;align-items:center;gap:12px}.lang-toggle{display:inline-flex;align-items:center;background:var(--color-surface-2);border:1px solid var(--color-border);border-radius:999px;padding:2px;font-size:12px;font-weight:600;letter-spacing:.5px}.lang-toggle-btn{appearance:none;border:0;background:transparent;color:var(--color-text-muted);padding:4px 10px;border-radius:999px;cursor:pointer;transition:background .12s ease,color .12s ease;min-width:32px;text-align:center;font:inherit}.lang-toggle-btn:hover{color:var(--color-text)}.lang-toggle-btn.is-active{background:var(--color-surface);color:var(--color-primary);box-shadow:var(--shadow-sm)}.lang-toggle-btn:focus-visible{outline:2px solid var(--color-primary);outline-offset:2px}.brand-link{text-decoration:none;color:inherit;cursor:pointer;transition:opacity .12s ease}.brand-link:hover{opacity:.85}.btn-primary-lg{padding:14px 32px;font-size:15px;display:inline-flex;align-items:center;gap:8px;text-decoration:none}.home-main{flex:1;max-width:1080px;margin:0 auto;padding:48px 32px 64px;width:100%;display:flex;flex-direction:column;gap:40px}.home-hero{display:grid;grid-template-columns:auto 1fr;gap:36px;align-items:center;padding:48px 40px;background:radial-gradient(circle at 95% 8%,rgba(180,83,9,.06),transparent 55%),radial-gradient(circle at 5% 95%,rgba(30,58,95,.05),transparent 55%),var(--color-surface);border:1px solid var(--color-border);border-radius:18px;box-shadow:var(--shadow-sm);position:relative;overflow:hidden}.home-hero:before{content:"";position:absolute;inset:0;pointer-events:none;background-image:repeating-linear-gradient(45deg,transparent 0,transparent 24px,rgba(30,58,95,.012) 24px,rgba(30,58,95,.012) 48px)}.home-hero-art{position:relative;z-index:1}.home-hero-text{position:relative;z-index:1;display:flex;flex-direction:column;gap:8px;min-width:0}.home-hero-eyebrow{margin:0;font-size:12px;font-weight:600;letter-spacing:1.5px;text-transform:uppercase;color:var(--color-action)}.home-title{margin:0;font-size:44px;font-weight:700;letter-spacing:-.8px;line-height:1.1;color:var(--color-primary)}.home-subtitle{margin:4px 0 16px;font-size:15px;line-height:1.55;color:var(--color-text-muted);max-width:520px}.home-actions{display:flex;margin:0;gap:12px}.home-empty{text-align:center;padding:60px 20px;color:var(--color-text-muted);border:1px dashed var(--color-border);border-radius:var(--radius-lg);background:var(--color-surface);display:flex;flex-direction:column;align-items:center;gap:12px}.home-empty h2{margin:4px 0 0;font-size:18px;font-weight:700;color:var(--color-text)}.home-empty p{margin:0;font-size:14px;max-width:380px}.home-draft-list{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:14px}.home-draft-card{display:flex;flex-direction:column;gap:8px;padding:20px 22px;border:1px solid var(--color-border);border-radius:var(--radius-lg);background:var(--color-surface);text-decoration:none;color:inherit;transition:transform .16s cubic-bezier(.4,0,.2,1),border-color .16s ease,box-shadow .16s ease;position:relative}.home-draft-card:before{content:"";position:absolute;left:0;top:16px;bottom:16px;width:3px;background:var(--color-action);border-radius:0 2px 2px 0;opacity:0;transition:opacity .16s ease}.home-draft-card:hover{border-color:var(--color-primary);box-shadow:var(--shadow-md);transform:translateY(-2px)}.home-draft-card:hover:before{opacity:1}.home-draft-card-head{display:flex;justify-content:space-between;align-items:flex-start;gap:10px}.home-draft-title{font-family:var(--font-display);font-size:17px;font-weight:600;letter-spacing:-.2px;color:var(--color-text);line-height:1.3;flex:1;min-width:0}.home-draft-countdown{display:inline-flex;align-items:center;gap:4px;font-size:11px;font-weight:700;letter-spacing:.4px;background:var(--color-surface-2);color:var(--color-text-muted);padding:3px 8px;border-radius:999px;flex-shrink:0}.home-draft-countdown.is-urgent{background:#c1272d1f;color:var(--color-accent)}.home-draft-meta{font-size:12px;color:var(--color-text-muted);letter-spacing:.2px}.home-draft-components{font-size:11.5px;color:var(--color-text-muted);letter-spacing:.3px;line-height:1.5;margin-top:2px;padding-top:8px;border-top:1px dashed var(--color-border)}.home-draft-cta{display:inline-flex;align-items:center;gap:4px;font-size:12px;font-weight:600;color:var(--color-action);margin-top:4px;letter-spacing:.3px}@media(max-width:720px){.home-hero{grid-template-columns:1fr;text-align:center;padding:36px 24px}.home-hero-art{justify-self:center}.home-actions{justify-content:center}.home-title{font-size:32px}}.course-main{flex:1;max-width:1100px;margin:0 auto;padding:32px;width:100%}.course-summary{display:flex;align-items:baseline;justify-content:space-between;margin-bottom:32px;padding-bottom:16px;border-bottom:1px solid var(--color-border)}.course-summary h1{margin:0;font-size:28px;font-weight:700;letter-spacing:-.4px}.course-summary-date{font-size:13px;color:var(--color-text-muted)}.course-cta{text-align:center;padding:60px 24px;border:1px solid var(--color-border);border-radius:12px;background:var(--color-surface)}.course-cta h2{margin:0 0 12px;font-size:22px;font-weight:700}.course-cta p{margin:0 auto 28px;max-width:540px;color:var(--color-text-muted);font-size:14px;line-height:1.6}.course-cta-error h2{color:var(--color-error)}.course-error-text{margin:0 auto 24px;max-width:720px;text-align:left;font-family:var(--font-mono);font-size:12px;background:var(--color-surface-2);padding:12px 16px;border-radius:8px;white-space:pre-wrap;color:var(--color-text)}.course-cta-buttons{display:flex;justify-content:center;gap:12px;flex-wrap:wrap}.course-regenerate-row{display:flex;justify-content:flex-end;align-items:center;gap:8px;margin:32px 0 16px}.course-cta-alt{display:block;margin:14px auto 0;font-size:13px;font-weight:500;color:var(--color-text-muted)}.course-cta-alt:hover{color:var(--color-primary);text-decoration:underline}.paste-json-section{background:var(--color-surface);border:1px solid var(--color-border);border-radius:12px;padding:28px 32px;display:flex;flex-direction:column;gap:12px}.paste-json-section h2{margin:0;font-size:20px;font-weight:700;letter-spacing:-.2px}.paste-json-section-hint{margin:0;color:var(--color-text-muted);font-size:14px;line-height:1.55}.paste-json-section-schema{margin:0;font-size:12.5px;color:var(--color-text-muted);background:var(--color-surface-2);border-radius:6px;padding:8px 12px;font-family:var(--font-mono);line-height:1.55}.paste-json-section-textarea{width:100%;font-family:var(--font-mono);font-size:13px;line-height:1.55;padding:14px;border:1px solid var(--color-border);border-radius:8px;background:var(--color-surface);resize:vertical;min-height:280px;color:var(--color-text)}.paste-json-section-textarea:focus{outline:none;border-color:var(--color-primary);box-shadow:0 0 0 3px #1d35571f}.paste-json-section-error{margin:0;white-space:pre-wrap;font-family:var(--font-mono);font-size:12px;color:var(--color-error);background:#fdf0f0;border:1px solid #f3c8c8;border-radius:6px;padding:10px 14px;max-height:240px;overflow-y:auto}.paste-json-section-buttons{display:flex;justify-content:flex-end;gap:12px;margin-top:4px}.course-center-msg{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;padding:80px 24px;gap:12px}.course-center-msg h1{margin:0;font-size:22px;font-weight:700}.course-center-msg p{margin:0;color:var(--color-text-muted);font-size:14px;max-width:480px}.markdown-body p{margin:0 0 8px}.markdown-body p:last-child{margin-bottom:0}.markdown-preview,.markdown-preview p{margin:0!important;padding:0}.markdown-preview{display:inline}.markdown-preview .katex{font-size:.95em}.markdown-body strong{font-weight:700;color:var(--color-text)}.markdown-body em{font-style:italic}.markdown-body code{font-family:var(--font-mono);font-size:.9em;background:var(--color-surface-2);padding:1px 5px;border-radius:3px}.markdown-body pre{font-family:var(--font-mono);font-size:12px;background:var(--color-surface-2);padding:10px 12px;border-radius:6px;overflow-x:auto;margin:6px 0}.markdown-body ul,.markdown-body ol{margin:6px 0 6px 20px;padding-left:0}.markdown-body li{margin:2px 0}.markdown-body blockquote{margin:6px 0;padding-left:12px;border-left:3px solid var(--color-border);color:var(--color-text-muted)}.markdown-body>table,.markdown-body table{display:block;overflow-x:auto;width:100%;margin:12px 0;border-collapse:collapse;font-size:.92em;line-height:1.45}.markdown-body table thead{background:var(--color-bg-soft, #f5f5f5)}.markdown-body table th,.markdown-body table td{padding:6px 10px;border:1px solid var(--color-border);text-align:left;vertical-align:top;white-space:normal}.markdown-body table th{font-weight:600;color:var(--color-text)}.markdown-body table tbody tr:nth-child(2n){background:#00000005}.markdown-body table code{background:#0000000a;padding:1px 4px;border-radius:3px;font-size:.95em}[data-theme=dark] .markdown-body table thead{background:#ffffff0a}[data-theme=dark] .markdown-body table tbody tr:nth-child(2n){background:#ffffff06}[data-theme=dark] .markdown-body table code{background:#ffffff0f}.app-main{flex:1;max-width:1100px;margin:0 auto;padding:32px;width:100%}.app-footer{padding:16px 32px;border-top:1px solid var(--color-border);color:var(--color-text-muted);font-size:13px;text-align:center}.health-badge{display:inline-flex;align-items:center;gap:6px;padding:4px 10px;border-radius:999px;font-size:12px;font-weight:500}.health-badge-ok{background:#e8f4ee;color:var(--color-success)}.health-badge-error{background:#f9e6e6;color:var(--color-error)}.health-badge-loading,.health-badge-idle{background:var(--color-surface-2);color:var(--color-text-muted)}.health-badge-degraded{background:#fdf6e8;color:var(--color-warning)}.btn-link{background:transparent;border:none;color:var(--color-text-muted);padding:6px 8px;display:inline-flex;align-items:center;gap:8px;font:inherit;font-weight:600;cursor:pointer;border-radius:var(--radius);transition:color .12s ease}.btn-link:hover{color:var(--color-text)}.btn-primary{transition:background .16s ease,transform .16s cubic-bezier(.4,0,.2,1),box-shadow .16s ease}.btn-primary:not(:disabled):hover{transform:translateY(-1px);box-shadow:0 2px 4px #b453092e,0 8px 16px #b4530938}.btn-primary:not(:disabled):active{transform:translateY(0);box-shadow:var(--shadow-sm)}.btn-primary:focus-visible{outline:2px solid var(--color-action);outline-offset:2px}.btn-secondary:focus-visible{outline:2px solid var(--color-primary);outline-offset:2px}.home-title,.form-step-heading,.course-shell-title,.quiz-finished h2,.dashboard h2,.bookmarks-head h2,.wrong-answers-head h2,.essay-list-head h2,.mock-setup h2,.mindmap-title,.flashcards-session-done h2,.empty-state-rich h2,.dashboard-modules-heading,.home-empty h2{font-family:var(--font-display);letter-spacing:-.3px;font-feature-settings:"ss01","ss02"}.brand .brand-text,.brand-text{font-family:var(--font-display);letter-spacing:1px;font-weight:700}.course-sidebar-brand-zh{font-family:var(--font-display);letter-spacing:1.5px}.course-sidebar-title{font-family:var(--font-display)}.card,.dashboard-stat,.dashboard-module-card,.home-draft-card,.course-cta,.review-summary,.paste-json-section,.quiz-resume{border-radius:var(--radius-lg)}.dashboard-module-card,.home-draft-card{box-shadow:var(--shadow-sm);transition:transform .16s cubic-bezier(.4,0,.2,1),border-color .16s ease,box-shadow .16s ease}.dashboard-module-card:hover,.home-draft-card:hover{transform:translateY(-2px);box-shadow:var(--shadow-md)}.spin{animation:spin 1s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.error-banner{margin-top:16px;padding:12px 16px;background:#fdf0f0;color:var(--color-error);border:1px solid #f3c8c8;border-radius:var(--radius);display:flex;gap:12px;align-items:flex-start}.status-hint{margin-top:12px;color:var(--color-text-muted);font-size:13px;display:flex;gap:8px;align-items:center}.result-header{display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:16px;margin-bottom:24px}.result-header h1{margin:0;font-size:22px;grid-column:1 / -1}.result-header>.btn-link{grid-column:1;grid-row:1}.result-header>.btn-secondary{grid-column:3;grid-row:1}.result-meta{grid-column:1 / -1;display:flex;flex-wrap:wrap;gap:8px;color:var(--color-text-muted);font-size:13px}.result-tabs{display:flex;gap:4px;border-bottom:1px solid var(--color-border);margin-bottom:16px}.result-tabs button{background:transparent;border:none;padding:10px 16px;border-bottom:2px solid transparent;color:var(--color-text-muted);font:inherit;font-weight:500;cursor:pointer;display:inline-flex;align-items:center;gap:6px}.result-tabs button:hover{color:var(--color-text)}.result-tabs .tab-active{color:var(--color-primary);border-bottom-color:var(--color-primary)}.card-list{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:12px}.card{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius);padding:16px 20px;box-shadow:var(--shadow-sm)}.card-head{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin-bottom:8px}.card-head h3{margin:0;font-size:16px}.card-id{font-family:var(--font-mono);font-size:12px;color:var(--color-text-muted)}.card-sub-zh{color:var(--color-text-muted);font-size:14px;margin-top:2px}.card-subtitle{margin:4px 0 8px;color:var(--color-text-muted)}.card-tags{display:flex;flex-wrap:wrap;gap:6px;margin-top:8px}.tag{display:inline-block;padding:2px 8px;font-size:12px;background:var(--color-surface-2);color:var(--color-text-muted);border-radius:4px}.pill{display:inline-block;padding:2px 8px;font-size:11px;border-radius:4px;font-weight:600;text-transform:uppercase;letter-spacing:.04em}.pill-easy{background:#e8f4ee;color:#2d7a4f}.pill-medium{background:#fdf3e0;color:#b07e2a}.pill-hard{background:#fde8e8;color:#b03a3a}.pill-fact,.pill-causal,.pill-framework,.pill-strategy,.pill-comparison,.pill-concept,.pill-policy{background:#e9eef7;color:#3a4d6e}.flashcard-front{font-weight:600;margin:6px 0 8px}.flashcard-back{color:var(--color-text);white-space:pre-wrap}.mcq-question{font-weight:600;margin:4px 0 8px}.mcq-options{list-style:none;padding:0;margin:0 0 12px;display:flex;flex-direction:column;gap:6px}.mcq-options li{padding:8px 12px;border:1px solid var(--color-border);border-radius:var(--radius);background:var(--color-surface)}.mcq-option-correct{border-color:var(--color-success);background:#f0f8f3}.mcq-explanation summary{cursor:pointer;color:var(--color-text-muted);font-size:13px}.mcq-explanation p{margin:8px 0 0;color:var(--color-text)}.empty-state{padding:32px;text-align:center;color:var(--color-text-muted);background:var(--color-surface);border:1px dashed var(--color-border);border-radius:var(--radius)}.empty-state-rich{padding:60px 24px;display:flex;flex-direction:column;align-items:center;gap:12px}.empty-state-rich h2{margin:8px 0 0;font-size:18px;font-weight:600;color:var(--color-text)}.empty-state-rich p{margin:0;font-size:14px;max-width:420px}.empty-state-icon{color:var(--color-text-muted);opacity:.6}.empty-state-icon-success{color:var(--color-success);opacity:.85}.bookmarks-head h2,.wrong-answers-head h2,.quiz-setup h2{display:inline-flex;align-items:center;gap:10px}.session-done-icon{color:var(--color-success);margin-bottom:4px}.quiz-finished-icon{color:var(--color-warning);margin-bottom:8px}.btn-primary svg,.btn-secondary svg{display:inline-block}.home-draft-icon{color:var(--color-primary);vertical-align:middle;margin-right:8px}.home-draft-title{display:inline-flex;align-items:center}:root{--course-sidebar-w: 240px;--course-sidebar-bg: #1e3a5f;--course-sidebar-bg-darker: #15294a;--course-sidebar-text: #dce8f5;--course-sidebar-text-dim: rgba(220, 232, 245, .72);--course-sidebar-border: rgba(255, 255, 255, .1);--course-sidebar-active-bg: rgba(255, 255, 255, .14)}[data-theme=dark]{--course-sidebar-bg: #111520;--course-sidebar-bg-darker: #090c14}.course-layout{display:flex;min-height:100vh;background:var(--color-bg)}.course-sidebar{width:var(--course-sidebar-w);flex-shrink:0;background:var(--course-sidebar-bg);color:var(--course-sidebar-text);display:flex;flex-direction:column;position:sticky;top:0;height:100vh;overflow-y:auto}.course-content{flex:1;min-width:0;padding:32px 40px 64px;max-width:calc(100vw - var(--course-sidebar-w))}.course-mobile-toggle{display:none;position:fixed;top:.7rem;left:.7rem;z-index:50;background:var(--course-sidebar-bg);color:var(--course-sidebar-text);border:1px solid var(--course-sidebar-border);border-radius:4px;width:36px;height:36px;align-items:center;justify-content:center;cursor:pointer}.course-mobile-toggle:hover{background:var(--course-sidebar-bg-darker)}.course-mobile-overlay{display:none;position:fixed;inset:0;background:#0006;z-index:30}@media(max-width:720px){.course-layout{flex-direction:column}.course-mobile-toggle{display:inline-flex}.course-sidebar-mobile-host{position:fixed;top:0;left:0;width:80vw;max-width:320px;height:100vh;z-index:40;transform:translate(-100%);transition:transform .2s ease-out;box-shadow:4px 0 16px #0003}.course-sidebar-mobile-host>.course-sidebar{width:100%;height:100%;position:static}.course-sidebar-mobile-host.is-open{transform:translate(0)}.course-sidebar-mobile-host.is-open~.course-mobile-overlay{display:block}.course-content{max-width:100vw;padding:56px 16px 48px}}.course-sidebar-top{padding:18px 18px 14px;border-bottom:1px solid var(--course-sidebar-border)}.course-sidebar-back{display:inline-flex;align-items:center;gap:6px;font-size:11.5px;font-weight:500;color:var(--course-sidebar-text-dim);text-decoration:none;letter-spacing:.3px;margin-bottom:12px;transition:color .12s ease}.course-sidebar-back:hover{color:var(--course-sidebar-text)}.course-sidebar-title{margin:0 0 8px;font-size:16px;font-weight:700;letter-spacing:.2px;color:#fff;line-height:1.3;display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}.course-sidebar-countdown{display:inline-block;font-size:11px;font-weight:600;letter-spacing:.4px;padding:3px 10px;border-radius:999px;background:#ffffff1a;color:var(--course-sidebar-text)}.course-sidebar-countdown.is-urgent{background:#c0392b;color:#fff}.course-sidebar-countdown.is-muted{background:transparent;border:1px dashed var(--course-sidebar-border);color:var(--course-sidebar-text-dim)}.course-sidebar-meta{margin:8px 0 0;font-size:11px;color:var(--course-sidebar-text-dim);letter-spacing:.2px}.course-sidebar-nav{list-style:none;margin:0;padding:12px 0;flex:1}.course-sidebar-link{display:flex;align-items:center;gap:12px;padding:9px 18px;font-size:13.5px;color:var(--course-sidebar-text-dim);text-decoration:none;transition:background .12s ease,color .12s ease}.course-sidebar-link:hover{background:#ffffff0f;color:var(--course-sidebar-text)}.course-sidebar-link.is-active{background:var(--course-sidebar-active-bg);color:#fff;font-weight:600;position:relative}.course-sidebar-link.is-active:before{content:"";position:absolute;left:0;top:6px;bottom:6px;width:3px;border-radius:2px;background:#fff}.course-sidebar-icon{display:inline-flex;align-items:center;justify-content:center;width:16px;flex-shrink:0;opacity:.85}.course-sidebar-label{letter-spacing:.2px}.course-sidebar-actions{display:flex;flex-direction:column;gap:4px;padding:8px 12px 12px;border-top:1px solid var(--course-sidebar-border)}.course-sidebar-action{appearance:none;background:transparent;border:0;display:flex;align-items:center;gap:8px;padding:7px 8px;border-radius:6px;color:var(--course-sidebar-text-dim);font:inherit;font-size:12px;text-align:left;cursor:pointer;transition:background .12s ease,color .12s ease}.course-sidebar-action:hover{background:#ffffff14;color:var(--course-sidebar-text)}.course-sidebar-footer{padding:12px 18px 16px;border-top:1px solid var(--course-sidebar-border);display:flex;flex-direction:column;gap:10px}.course-sidebar-footer-row{display:flex;justify-content:space-between;align-items:center;gap:8px}.course-sidebar-footer .lang-toggle{background:#ffffff14;border-color:#ffffff1f}.course-sidebar-footer .lang-toggle-btn{color:var(--course-sidebar-text-dim)}.course-sidebar-footer .lang-toggle-btn:hover{color:#fff}.course-sidebar-footer .lang-toggle-btn.is-active{background:#ffffff2e;color:#fff;box-shadow:none}.course-sidebar-health{display:inline-flex;align-items:center;justify-content:center;width:26px;height:26px;border-radius:50%;background:#ffffff0f;color:var(--course-sidebar-text-dim)}.course-sidebar-brand{display:flex;flex-direction:column;text-decoration:none;border-top:1px dashed var(--course-sidebar-border);padding-top:10px;line-height:1.15}.course-sidebar-brand-zh{font-size:13px;font-weight:700;letter-spacing:1.2px;color:var(--course-sidebar-text)}.course-sidebar-brand-en{font-size:9.5px;font-weight:500;letter-spacing:1.5px;text-transform:uppercase;color:var(--course-sidebar-text-dim);margin-top:2px}.course-gate{display:flex;flex-direction:column;min-height:100vh;background:var(--color-bg)}.course-gate-header{display:flex;align-items:center;justify-content:space-between;padding:16px 32px;border-bottom:1px solid var(--color-border);background:var(--color-surface);position:sticky;top:0;z-index:10}.course-gate-back{display:inline-flex;align-items:center;gap:6px;font-size:13px;font-weight:500;color:var(--color-text-muted);text-decoration:none;padding:6px 10px;border-radius:6px;transition:background .12s ease,color .12s ease}.course-gate-back:hover{color:var(--color-text);background:var(--color-surface-2)}.bookmark-btn{appearance:none;background:transparent;border:1px solid var(--color-border);width:30px;height:30px;border-radius:6px;cursor:pointer;color:var(--color-text-muted);display:inline-flex;align-items:center;justify-content:center;transition:color .12s ease,border-color .12s ease,background .12s ease}.bookmark-btn:hover{color:var(--color-warning);border-color:var(--color-warning)}.bookmark-btn.is-active{color:var(--color-warning);border-color:var(--color-warning);background:#fdf6e8}.quiz-resume{background:var(--color-surface);border:1px solid var(--color-primary);border-radius:12px;padding:18px 22px;display:flex;flex-direction:column;gap:10px;margin-bottom:24px}.quiz-resume h2{margin:0;font-size:16px;font-weight:700}.quiz-resume p{margin:0;color:var(--color-text-muted);font-size:14px}.quiz-resume-buttons{display:flex;gap:10px;flex-wrap:wrap}.glossary-view{display:flex;flex-direction:column;gap:18px}.glossary-head h2{margin:0 0 6px;font-size:22px;font-weight:700}.glossary-subtitle{margin:0;font-size:13px;color:var(--color-text-muted)}.glossary-toolbar{display:flex;flex-wrap:wrap;align-items:center;gap:12px;padding:10px 12px;background:var(--color-surface-2);border-radius:8px}.glossary-search{display:inline-flex;align-items:center;gap:8px;flex:1 1 240px;min-width:200px;padding:6px 10px;background:var(--color-surface);border:1px solid var(--color-border);border-radius:6px;color:var(--color-text-muted)}.glossary-search input{flex:1;min-width:0;border:0;background:transparent;outline:none;font:inherit;color:var(--color-text)}.glossary-search input::placeholder{color:var(--color-text-muted);opacity:.7}.glossary-case-filter{padding:6px 10px;border-radius:6px;border:1px solid var(--color-border);background:var(--color-surface);color:var(--color-text);font:inherit}.glossary-total{font-size:12px;color:var(--color-text-muted);font-variant-numeric:tabular-nums}.glossary-toggle-all{margin-left:auto;padding:6px 10px;border-radius:6px;border:1px solid var(--color-border);background:var(--color-surface);color:var(--color-text);font:inherit;font-size:12px;cursor:pointer;transition:background .12s ease}.glossary-toggle-all:hover:not(:disabled){background:var(--color-surface-2)}.glossary-toggle-all:disabled{opacity:.5;cursor:not-allowed}.glossary-alpha-index{display:flex;flex-wrap:wrap;gap:4px;padding:8px 4px;border-bottom:1px solid var(--color-border)}.glossary-alpha-link{min-width:26px;padding:4px 8px;border-radius:4px;border:0;background:transparent;font-weight:600;font-size:12px;color:var(--color-action);cursor:pointer;transition:background .12s ease,color .12s ease}.glossary-alpha-link:hover{background:var(--color-action-soft);color:var(--color-action-hover)}.glossary-no-matches{padding:24px;text-align:center;color:var(--color-text-muted);font-style:italic}.glossary-list{display:flex;flex-direction:column;gap:14px}.glossary-letter-section{display:flex;flex-direction:column;gap:6px}.glossary-letter-header{margin:0;padding:4px 0;font-family:var(--font-display, inherit);font-weight:600;font-size:18px;color:var(--color-action);border-bottom:1px solid var(--color-border);letter-spacing:.5px}.glossary-item{background:var(--color-surface);border:1px solid var(--color-border);border-radius:8px;overflow:hidden;transition:border-color .12s ease,box-shadow .12s ease}.glossary-item.is-open{border-color:var(--color-action);box-shadow:0 1px 6px #0000000a}.glossary-item-header{display:flex;align-items:baseline;gap:12px;width:100%;padding:12px 14px;border:0;background:transparent;text-align:left;cursor:pointer;font:inherit;color:var(--color-text)}.glossary-item-header:hover{background:var(--color-surface-2)}.glossary-term{flex:0 0 auto;min-width:140px;font-weight:600;font-size:15px}.glossary-short-def{flex:1 1 auto;font-size:13px;color:var(--color-text-muted);line-height:1.5}.glossary-short-def p{margin:0}.glossary-item-body{padding:0 14px 14px;border-top:1px dashed var(--color-border);display:flex;flex-direction:column;gap:10px}.glossary-long-def{font-size:14px;line-height:1.65;color:var(--color-text)}.glossary-long-def p:first-child{margin-top:10px}.glossary-long-def p:last-child{margin-bottom:0}.glossary-related{display:flex;flex-wrap:wrap;align-items:center;gap:8px;font-size:12px;color:var(--color-text-muted)}.glossary-related-label{font-weight:600}.glossary-case-tags{display:flex;flex-wrap:wrap;gap:6px}.glossary-case-tag{padding:3px 8px;border-radius:999px;border:1px solid currentColor;background:transparent;font:inherit;font-size:11px;font-weight:600;cursor:pointer;transition:background .12s ease}.glossary-case-tag:hover{background:#0000000a}.glossary-tags{display:flex;flex-wrap:wrap;gap:6px;padding-top:6px;border-top:1px dashed var(--color-border)}.glossary-tag{padding:2px 7px;border-radius:4px;background:var(--color-surface-2);font-size:11px;color:var(--color-text-muted)}.glossary-shortcut-hint{margin:8px 0 0;text-align:right;font-size:11px;color:var(--color-text-muted);opacity:.7}@media(max-width:720px){.glossary-item-header{flex-direction:column;gap:4px;align-items:stretch}.glossary-term{min-width:0}}.bookmarks-view{display:flex;flex-direction:column;gap:18px}.bookmarks-head h2{margin:0 0 6px;font-size:22px;font-weight:700}.bookmarks-subtitle{margin:0;font-size:13px;color:var(--color-text-muted)}.bookmarks-toolbar{display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:12px}.bookmarks-table{width:100%;border-collapse:collapse;background:var(--color-surface);border:1px solid var(--color-border);border-radius:10px;overflow:hidden;font-size:13px}.bookmarks-table th,.bookmarks-table td{padding:10px 14px;text-align:left;border-bottom:1px solid var(--color-border)}.bookmarks-table th{background:var(--color-surface-2);font-weight:600;color:var(--color-text-muted);font-size:11.5px;text-transform:uppercase;letter-spacing:.5px}.bookmarks-table tr:last-child td{border-bottom:0}.bookmark-row-link{appearance:none;background:transparent;border:0;padding:0;cursor:pointer;color:var(--color-text);font:inherit;text-align:left;text-decoration:underline;text-decoration-color:var(--color-border);text-underline-offset:3px}.bookmark-row-link:hover{color:var(--color-primary);text-decoration-color:var(--color-primary)}.bookmark-row-remove{appearance:none;background:transparent;border:0;padding:4px 6px;cursor:pointer;color:var(--color-warning);border-radius:4px;display:inline-flex;align-items:center;transition:background .12s ease}.bookmark-row-remove:hover{background:#fdf6e8}.pill-mcq{background:#e9eef7;color:#3a4d6e;padding:2px 8px;font-size:11px;border-radius:4px;font-weight:600}.pill-flashcard{background:#ede8f7;color:#4f3a6e;padding:2px 8px;font-size:11px;border-radius:4px;font-weight:600}.dashboard{display:flex;flex-direction:column;gap:32px}.dashboard-stats{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:14px}.dashboard-stat{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg);padding:18px 20px;display:flex;align-items:center;gap:14px}.dashboard-stat-icon{flex-shrink:0;width:40px;height:40px;border-radius:10px;display:inline-flex;align-items:center;justify-content:center}.dashboard-stat-primary .dashboard-stat-icon{background:#1d35571a;color:var(--color-primary)}.dashboard-stat-warning .dashboard-stat-icon{background:#b07e2a1f;color:var(--color-warning)}.dashboard-stat-accent .dashboard-stat-icon{background:#b07e2a24;color:var(--color-warning)}.dashboard-stat-muted .dashboard-stat-icon{background:var(--color-surface-2);color:var(--color-text-muted)}.dashboard-stat-body{display:flex;flex-direction:column;gap:2px;min-width:0}.dashboard-stat-value{font-size:26px;font-weight:700;letter-spacing:-.4px;color:var(--color-text);line-height:1}.dashboard-stat-label{font-size:12.5px;color:var(--color-text-muted);font-weight:600}.dashboard-stat-sub{font-size:11.5px;color:var(--color-text-muted)}.dashboard-modules-heading{margin:0;font-size:14px;font-weight:600;letter-spacing:.5px;text-transform:uppercase;color:var(--color-text-muted);display:inline-flex;align-items:center;gap:8px}.dashboard-modules{display:grid;grid-template-columns:repeat(auto-fill,minmax(230px,1fr));gap:12px}.dashboard-module-card{display:flex;flex-direction:column;gap:12px;padding:18px 20px;border:1px solid var(--color-border);border-radius:12px;background:var(--color-surface);text-decoration:none;color:inherit;transition:border-color .12s ease,box-shadow .12s ease}.dashboard-module-card:hover{border-color:var(--color-primary);box-shadow:var(--shadow-sm)}.dashboard-module-head{display:flex;align-items:center;gap:10px}.dashboard-module-icon{width:32px;height:32px;border-radius:8px;background:#1d355714;color:var(--color-primary);display:inline-flex;align-items:center;justify-content:center;flex-shrink:0}.dashboard-module-name{font-size:14px;font-weight:600;color:var(--color-text)}.dashboard-module-stat{display:flex;align-items:baseline;gap:6px}.dashboard-module-stat-value{font-size:22px;font-weight:700;color:var(--color-text);line-height:1}.dashboard-module-stat-label{font-size:12px;color:var(--color-text-muted)}.dashboard-module-cta{font-size:12px;color:var(--color-primary);font-weight:600}.dashboard-empty-hint{margin:0;padding:16px 20px;background:var(--color-surface-2);border-radius:var(--radius);color:var(--color-text-muted);font-size:13px;text-align:center;display:inline-flex;align-items:center;gap:8px;align-self:center}.dashboard-analytics{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:14px}.dashboard-analytics-card{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg);padding:16px 18px;display:flex;flex-direction:column;gap:10px}.dashboard-analytics-title{margin:0;font-size:12px;font-weight:600;text-transform:uppercase;letter-spacing:.5px;color:var(--color-text-muted);display:flex;align-items:center;gap:6px}.dashboard-analytics-help{margin:0;font-size:11.5px;line-height:1.55;color:var(--color-text-muted);opacity:.88}.cog-bar{display:flex;flex-direction:column;gap:8px}.cog-bar-track{display:flex;width:100%;height:12px;background:var(--color-surface-2);border-radius:6px;overflow:hidden}.cog-bar-segment{height:100%;transition:width .2s ease}.cog-recall{background:#93c5fd}.cog-understand{background:#6ea8fa}.cog-apply{background:#3b82f6}.cog-analyze{background:#8b5cf6}.cog-evaluate{background:#c084fc}.cog-unlabeled{background:#cbd5e1}.cog-bar-legend{display:flex;flex-wrap:wrap;gap:12px;font-size:11.5px;color:var(--color-text-muted)}.cog-bar-legend-item{display:inline-flex;align-items:center;gap:5px}.cog-bar-dot{display:inline-block;width:9px;height:9px;border-radius:2px}.cog-bar-legend-count{color:var(--color-text);font-weight:600}.weakest-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:6px}.weakest-list li a,.weakest-list li{display:flex;justify-content:space-between;align-items:center;gap:8px;padding:6px 10px;background:var(--color-surface-2);border-radius:6px;font-size:13px;text-decoration:none;color:var(--color-text);transition:background .12s ease}.weakest-list li a:hover{background:var(--color-surface);border:1px solid var(--color-border);padding:5px 9px}.weakest-name{font-weight:500;flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.weakest-mastery,.weakest-count{font-size:12px;font-weight:700;padding:2px 8px;border-radius:4px;flex-shrink:0}.weakest-count{background:#b07e2a1f;color:var(--color-warning)}.mastery-good{background:#2d7a4f1f;color:var(--color-success)}.mastery-ok{background:#b07e2a1f;color:var(--color-warning)}.mastery-low{background:#b03a3a1f;color:var(--color-error)}.mastery-none{background:var(--color-surface-2);color:var(--color-text-muted)}.dashboard-breakdown{display:flex;flex-direction:column;gap:14px}.dashboard-breakdown-head{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:12px}.dashboard-view-switch{display:inline-flex;background:var(--color-surface-2);border:1px solid var(--color-border);border-radius:999px;padding:2px}.dashboard-view-tab{appearance:none;background:transparent;border:0;padding:5px 14px;font:inherit;font-size:12.5px;font-weight:600;color:var(--color-text-muted);border-radius:999px;cursor:pointer;transition:background .12s ease,color .12s ease}.dashboard-view-tab:hover{color:var(--color-text)}.dashboard-view-tab.is-active{background:var(--color-surface);color:var(--color-primary);box-shadow:var(--shadow-sm)}.chapter-grid,.topic-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:12px;align-items:start}.chapter-card,.topic-card{background:var(--color-surface);border:1px solid var(--color-border);border-left:4px solid var(--color-primary);border-radius:var(--radius);padding:14px 16px;display:flex;flex-direction:column;gap:10px;transition:border-color .12s ease,box-shadow .12s ease}.chapter-card:hover,.topic-card:hover{box-shadow:var(--shadow-sm)}.chapter-card-head,.topic-card-head{display:flex;justify-content:space-between;align-items:baseline;gap:10px}.chapter-card-name{font-size:14px;font-weight:700;color:var(--color-text);flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.chapter-card-mastery{font-size:12px;font-weight:700;padding:2px 8px;border-radius:4px;flex-shrink:0}.chapter-card-bar{width:100%;height:5px;background:var(--color-surface-2);border-radius:3px;overflow:hidden}.chapter-card-bar-fill{height:100%;transition:width .25s ease}.chapter-card-bar-fill.mastery-good{background:var(--color-success)}.chapter-card-bar-fill.mastery-ok{background:var(--color-warning)}.chapter-card-bar-fill.mastery-low{background:var(--color-error)}.chapter-card-bar-fill.mastery-none{background:var(--color-text-muted);opacity:.3}.chapter-card-stats,.topic-card-stats{display:flex;flex-wrap:wrap;gap:12px;font-size:11.5px;color:var(--color-text-muted)}.chapter-card-stats span,.topic-card-stats span{display:inline-flex;align-items:center;gap:4px}.chapter-card-stat-warning{color:var(--color-warning)}.chapter-card-actions{display:flex;gap:8px;margin-top:2px}.chapter-card-action{display:inline-flex;align-items:center;gap:4px;font-size:11.5px;font-weight:600;text-decoration:none;color:var(--color-primary);padding:3px 8px;border-radius:5px;background:#1d35570f;transition:background .12s ease}.chapter-card-action:hover{background:#1d35571f}.chapter-card-expand-btn{display:inline-flex;align-items:center;gap:4px;margin:4px 0 0;padding:4px 6px;border:0;background:transparent;font:inherit;font-size:11.5px;font-weight:600;color:var(--color-primary);cursor:pointer;border-radius:4px;transition:background .12s ease}.chapter-card-expand-btn:hover{background:#1d35570f}.chapter-card-expand-count{color:var(--color-text-muted);font-weight:500}.chapter-card-breakdown{list-style:none;margin:4px 0 0;padding:8px 0 0;display:flex;flex-direction:column;gap:2px;border-top:1px dashed var(--color-border)}.chapter-card-breakdown-row{display:flex;align-items:center;gap:8px;padding:5px 8px;border-radius:5px;font-size:12px;color:var(--color-text);text-decoration:none;transition:background .12s ease}.chapter-card-breakdown-row.is-link{cursor:pointer}.chapter-card-breakdown-row.is-link:hover{background:var(--color-action-soft);color:var(--color-action-hover)}.chapter-card-breakdown-icon{display:inline-flex;align-items:center;color:var(--color-text-muted)}.chapter-card-breakdown-row.is-link:hover .chapter-card-breakdown-icon{color:var(--color-action-hover)}.chapter-card-breakdown-label{flex:1}.chapter-card-breakdown-count{font-variant-numeric:tabular-nums;font-weight:600;color:var(--color-text-muted)}.chapter-card-breakdown-groups{display:flex;flex-direction:column;gap:10px;border-top:1px dashed var(--color-border);padding-top:8px;margin-top:4px}.chapter-card-breakdown-groups .chapter-card-breakdown{border-top:0;padding-top:0;margin:0}.chapter-card-family-label{margin:0 0 4px;font-size:11px;font-weight:700;letter-spacing:.6px;text-transform:uppercase;color:var(--color-text-muted);display:flex;align-items:center;gap:6px}.chapter-card-family-label:before{content:"";display:inline-block;width:6px;height:6px;border-radius:50%;flex-shrink:0}.chapter-card-family-generative .chapter-card-family-label:before{background:var(--color-primary)}.chapter-card-family-discrimination .chapter-card-family-label:before{background:var(--color-action)}.chapter-card-family-synthesis .chapter-card-family-label:before{background:var(--color-accent)}.topic-card-parent{font-size:10.5px;font-weight:600;letter-spacing:.4px;text-transform:uppercase;color:var(--color-text-muted)}.topic-card-name{font-size:14px;font-weight:600;color:var(--color-text)}.flashcards-view{display:flex;flex-direction:column;gap:20px;max-width:720px;margin:0 auto}.flashcards-toolbar{display:flex;align-items:center;flex-wrap:wrap;gap:16px;font-size:13px;color:var(--color-text-muted)}.flashcards-counter{font-weight:600}.flashcards-box{background:var(--color-surface-2);padding:3px 10px;border-radius:999px;font-size:12px}.flashcards-filter{display:inline-flex;align-items:center;gap:8px;margin-left:auto}.flashcards-filter span{font-size:12.5px}.flashcard-frame{perspective:1500px;width:100%}.flashcard-inner{display:grid;grid-template-areas:"face";width:100%;min-height:320px;transform-style:preserve-3d;transition:transform .65s cubic-bezier(.45,.15,.2,1);cursor:pointer}.flashcard-inner.is-flipped{transform:rotateY(180deg);cursor:default}.flashcard-inner:focus-visible{outline:2px solid var(--color-primary);outline-offset:4px;border-radius:14px}.flashcard-face{grid-area:face;backface-visibility:hidden;-webkit-backface-visibility:hidden;background:var(--color-surface);border:1px solid var(--color-border);border-radius:14px;padding:36px 40px;display:flex;flex-direction:column;gap:16px;box-shadow:0 1px 2px #141e320a,0 4px 16px #141e320f,0 16px 32px #141e320a;transition:border-color .18s ease,box-shadow .18s ease}.flashcard-frame:hover .flashcard-face{border-color:var(--color-primary)}.flashcard-front-face{font-size:18px;line-height:1.6;font-weight:500;color:var(--color-text)}.flashcard-back-face{transform:rotateY(180deg);font-size:15px;line-height:1.7;color:var(--color-text)}.flashcard-content{flex:1;display:flex;flex-direction:column;justify-content:center}.flashcard-flip-hint{margin:auto 0 0;font-size:11.5px;color:var(--color-text-muted);letter-spacing:.4px;text-transform:uppercase;text-align:center}.flashcards-rate-row{display:grid;grid-template-columns:repeat(4,1fr);gap:10px}.rate-btn{display:flex;align-items:center;justify-content:center;gap:8px;padding:14px 8px;border:1px solid var(--color-border);border-radius:10px;background:var(--color-surface);font-size:13px;font-weight:600;cursor:pointer;transition:background .12s ease,border-color .12s ease}.rate-btn:hover{background:var(--color-surface-2)}.rate-key{display:inline-flex;align-items:center;justify-content:center;width:22px;height:22px;border-radius:50%;background:var(--color-surface-2);font-size:11px;font-weight:700;color:var(--color-text-muted)}.rate-btn.rate-1{color:var(--color-error);border-color:#f3c8c8}.rate-btn.rate-2{color:var(--color-warning);border-color:#f0d9a8}.rate-btn.rate-3{color:var(--color-success);border-color:#b8d8c5}.rate-btn.rate-4{color:var(--color-primary);border-color:#b8c5d8}.flashcards-shortcuts{margin:0;text-align:center;font-size:11.5px;color:var(--color-text-muted);letter-spacing:.3px}.flashcards-session-done{text-align:center;padding:60px 24px;background:var(--color-surface);border:1px solid var(--color-border);border-radius:14px}.flashcards-session-done h2{margin:0 0 8px;font-size:22px;font-weight:700}.flashcards-session-done p{margin:0 0 12px;color:var(--color-text-muted)}.flashcards-session-stat{font-weight:500;color:var(--color-text)}.flashcards-session-buttons{display:flex;justify-content:center;gap:12px;flex-wrap:wrap;margin-top:16px}.quiz-setup,.quiz-running,.quiz-finished{max-width:720px;margin:0 auto;display:flex;flex-direction:column;gap:18px}.quiz-setup h2{margin:0 0 4px;font-size:22px;font-weight:700}.quiz-setup-buttons{display:flex;justify-content:center;margin-top:12px}.quiz-running-head{display:flex;justify-content:space-between;align-items:center;gap:12px}.quiz-counter{font-size:13px;color:var(--color-text-muted);font-weight:600}.quiz-feedback-pill{font-size:12px;font-weight:700;padding:4px 12px;border-radius:999px;letter-spacing:.5px;text-transform:uppercase}.quiz-feedback-pill.is-correct{background:#e8f4ee;color:var(--color-success)}.quiz-feedback-pill.is-wrong{background:#fde8e8;color:var(--color-error)}.quiz-question{font-size:17px;line-height:1.6;font-weight:500;color:var(--color-text);background:var(--color-surface);border:1px solid var(--color-border);border-radius:12px;padding:22px 24px}.quiz-options{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:10px}.quiz-option{width:100%;display:flex;align-items:flex-start;gap:14px;padding:14px 18px;background:var(--color-surface);border:1px solid var(--color-border);border-radius:10px;cursor:pointer;font:inherit;text-align:left;font-size:14px;line-height:1.55;color:var(--color-text);transition:background .12s ease,border-color .12s ease}.quiz-option:hover:not(:disabled){background:var(--color-surface-2);border-color:var(--color-text-muted)}.quiz-option:disabled{cursor:not-allowed}.quiz-option.is-picked{border-color:var(--color-action);border-width:2px;padding:13px 17px;background:var(--color-action-soft);box-shadow:0 0 0 3px #b453091f}.quiz-option.is-picked .quiz-option-key{background:var(--color-action);color:#fff}.quiz-option.is-correct{border-color:var(--color-success);background:#f0f8f3}.quiz-option.is-wrong-picked{border-color:var(--color-error);background:#fdf0f0}.quiz-option-key{display:inline-flex;align-items:center;justify-content:center;flex-shrink:0;width:24px;height:24px;border-radius:50%;background:var(--color-surface-2);font-size:12px;font-weight:700;color:var(--color-text-muted)}.quiz-option.is-correct .quiz-option-key{background:var(--color-success);color:#fff}.quiz-option.is-wrong-picked .quiz-option-key{background:var(--color-error);color:#fff}.quiz-option-text{flex:1}.quiz-option-text>p:first-child{margin-top:0}.quiz-option-text>p:last-child{margin-bottom:0}.quiz-explanation{background:var(--color-surface-2);border-radius:12px;padding:18px 22px;display:flex;flex-direction:column;gap:10px}.quiz-explanation h3{margin:0;font-size:12px;letter-spacing:.6px;text-transform:uppercase;color:var(--color-text-muted);font-weight:600}.quiz-explanation .btn-primary{align-self:flex-start;margin-top:6px}.quiz-shortcuts{margin:0;text-align:center;font-size:11.5px;color:var(--color-text-muted)}.quiz-finished{text-align:center;padding:48px 24px;background:var(--color-surface);border:1px solid var(--color-border);border-radius:14px}.quiz-finished h2{margin:0 0 12px;font-size:22px;font-weight:700}.quiz-finished-score{font-size:16px;color:var(--color-text);margin:0 0 18px}.quiz-finished-buttons{display:flex;justify-content:center;gap:12px;flex-wrap:wrap}.wrong-answers-view{display:flex;flex-direction:column;gap:18px}.wrong-answers-head h2{margin:0 0 6px;font-size:22px;font-weight:700}.wrong-answers-subtitle{margin:0;font-size:13px;color:var(--color-text-muted)}.wrong-answers-toolbar{display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:12px}.wrong-answers-table{width:100%;border-collapse:collapse;background:var(--color-surface);border:1px solid var(--color-border);border-radius:10px;overflow:hidden;font-size:13px}.wrong-answers-table th,.wrong-answers-table td{padding:10px 14px;text-align:left;border-bottom:1px solid var(--color-border)}.wrong-answers-table th{background:var(--color-surface-2);font-weight:600;color:var(--color-text-muted);font-size:11.5px;text-transform:uppercase;letter-spacing:.5px}.wrong-answers-table tr:last-child td{border-bottom:0}.wrong-answers-table tr.is-unresolved td{color:var(--color-text)}.wrong-answers-table tr.is-resolved td{color:var(--color-text-muted)}.pill-warn{background:#fdf3e0;color:var(--color-warning);padding:2px 8px;font-size:11px;border-radius:4px;font-weight:600}.pill-ok{background:#e8f4ee;color:var(--color-success);padding:2px 8px;font-size:11px;border-radius:4px;font-weight:600}.wrong-answer-q-link{appearance:none;background:transparent;border:0;padding:0;cursor:pointer;color:var(--color-text);font:inherit;text-align:left;text-decoration:underline;text-decoration-color:var(--color-border);text-underline-offset:3px}.wrong-answer-q-link:hover{color:var(--color-primary);text-decoration-color:var(--color-primary)}.btn-primary-sm{padding:6px 12px;font-size:12.5px}.mock-setup{max-width:580px;margin:40px auto;padding:40px 32px;background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg);text-align:center;display:flex;flex-direction:column;gap:14px;align-items:center}.mock-setup-icon{width:64px;height:64px;border-radius:50%;background:#1d355714;color:var(--color-primary);display:inline-flex;align-items:center;justify-content:center}.mock-setup h2{margin:0;font-size:22px;font-weight:700}.mock-setup p{margin:0;color:var(--color-text-muted);max-width:460px}.mock-setup-format{list-style:none;margin:8px 0 16px;padding:0;display:flex;flex-direction:column;gap:6px;font-size:13.5px;color:var(--color-text)}.mock-paper-count{margin:8px 0 16px;padding:16px 18px;border:1px solid var(--color-border);border-radius:var(--radius);background:var(--color-surface-2);display:flex;flex-direction:column;gap:10px;align-items:center;width:100%;max-width:420px}.mock-paper-count legend{font-family:var(--font-display);font-size:14px;font-weight:600;color:var(--color-text);letter-spacing:-.1px}.mock-paper-count-chips{display:inline-flex;gap:8px}.mock-paper-chip{display:inline-flex;align-items:center;justify-content:center;width:56px;height:56px;border:2px solid var(--color-border);border-radius:14px;cursor:pointer;background:var(--color-surface);font-family:var(--font-display);font-size:22px;font-weight:700;color:var(--color-text-muted);transition:all .16s ease}.mock-paper-chip input{display:none}.mock-paper-chip:hover{color:var(--color-text);border-color:var(--color-text-muted)}.mock-paper-chip.is-active{background:var(--color-action);border-color:var(--color-action);color:#fff;box-shadow:0 4px 12px #b4530940}.mock-paper-count-hint{margin:0;font-size:11.5px;color:var(--color-text-muted);text-align:center;max-width:360px;line-height:1.5}.mock-picker{max-width:760px;margin:32px auto;display:flex;flex-direction:column;gap:24px}.mock-picker-head{text-align:center}.mock-picker-head h2{margin:0 0 6px;font-family:var(--font-display);font-size:26px;font-weight:700;letter-spacing:-.3px}.mock-picker-head p{margin:0;color:var(--color-text-muted);font-size:14px}.mock-paper-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:14px}.mock-paper-card{appearance:none;background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg);padding:22px 20px;display:flex;flex-direction:column;gap:8px;cursor:pointer;font:inherit;text-align:left;transition:transform .16s cubic-bezier(.4,0,.2,1),border-color .16s ease,box-shadow .16s ease;position:relative}.mock-paper-card:before{content:"";position:absolute;top:18px;left:0;width:3px;height:28px;background:var(--color-action);border-radius:0 2px 2px 0}.mock-paper-card.is-done:before{background:var(--color-success)}.mock-paper-card:hover{transform:translateY(-2px);border-color:var(--color-primary);box-shadow:var(--shadow-md)}.mock-paper-card-icon{color:var(--color-action);margin-bottom:4px}.mock-paper-card.is-done .mock-paper-card-icon{color:var(--color-success)}.mock-paper-card-label{font-family:var(--font-display);font-size:18px;font-weight:700;letter-spacing:-.2px;color:var(--color-text)}.mock-paper-card-meta{font-size:12.5px;color:var(--color-text-muted)}.mock-paper-card-status{display:inline-block;font-size:11.5px;font-weight:700;letter-spacing:.4px;padding:3px 8px;border-radius:999px;align-self:flex-start;margin-top:4px}.mock-paper-card-status.is-pending{background:var(--color-surface-2);color:var(--color-text-muted)}.mock-paper-card-status.is-done{background:#2d7a4f1f;color:var(--color-success)}.mock-paper-card-cta{font-size:12px;font-weight:600;color:var(--color-action);margin-top:8px}.mock-paper-card.is-done .mock-paper-card-cta{color:var(--color-success)}.mock-back-setup{align-self:center;margin-top:8px}.mock-running{display:flex;flex-direction:column;gap:18px}.mock-running-head{display:flex;align-items:center;justify-content:space-between;gap:16px;position:sticky;top:0;background:var(--color-bg);padding:12px 0;z-index:5;border-bottom:1px solid var(--color-border)}.mock-timer{display:inline-flex;align-items:center;gap:6px;font-size:16px;font-weight:700;font-variant-numeric:tabular-nums;letter-spacing:.4px;background:var(--color-surface);border:1px solid var(--color-border);border-radius:8px;padding:8px 14px}.mock-timer.is-critical{background:#fde8e8;color:var(--color-error);border-color:#f3c8c8;animation:mock-pulse 1s ease infinite}@keyframes mock-pulse{50%{opacity:.7}}.mock-stats{display:flex;gap:12px;font-size:12px;color:var(--color-text-muted)}.mock-stats span{white-space:nowrap}.mock-nav{display:grid;grid-template-columns:repeat(auto-fill,minmax(34px,1fr));gap:4px;padding:12px;background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius)}.mock-nav-cell{appearance:none;border:1px solid var(--color-border);background:var(--color-surface);font:inherit;font-size:11.5px;font-weight:600;height:30px;border-radius:5px;cursor:pointer;color:var(--color-text-muted);transition:all .12s ease}.mock-nav-cell:hover{color:var(--color-text);border-color:var(--color-text-muted)}.mock-nav-cell.is-current{background:var(--color-primary);color:#fff;border-color:var(--color-primary)}.mock-nav-cell.is-answered{background:#2d7a4f1f;color:var(--color-success);border-color:#2d7a4f59}.mock-nav-cell.is-marked{background:#b07e2a1a;color:var(--color-warning);border-color:#b07e2a59}.mock-nav-cell.is-answered-marked{background:linear-gradient(135deg,#2d7a4f2e,#b07e2a2e);color:var(--color-text);border-color:#b07e2a59}.mock-question-frame{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg);padding:24px 28px;display:flex;flex-direction:column;gap:16px}.mock-question-num{font-size:11.5px;font-weight:700;color:var(--color-text-muted);letter-spacing:.6px;text-transform:uppercase}.mock-question{font-size:16.5px;line-height:1.6;font-weight:500;color:var(--color-text)}.mock-tf-options{display:grid;grid-template-columns:1fr 1fr;gap:12px}.mock-tf-btn{font-size:16px;font-weight:700;padding:18px 14px;justify-content:center}.mock-question-actions{display:flex;gap:10px;margin-top:4px}.mindmap-view{display:flex;flex-direction:column;gap:12px;height:calc(100vh - 64px)}.mindmap-toolbar{display:flex;align-items:center;gap:16px;flex-wrap:wrap}.mindmap-title{margin:0;font-size:18px;font-weight:700;display:inline-flex;align-items:center;gap:8px}.mindmap-picker{display:inline-flex;align-items:center;gap:8px;font-size:13px;color:var(--color-text-muted)}.mindmap-picker select{max-width:220px}.mindmap-canvas{flex:1;background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg);overflow:hidden;min-height:480px}.mindmap-canvas .rd3t-tree-container{width:100%;height:100%}.mindmap-canvas .rd3t-link{stroke:#1e3a8a59;stroke-width:1.5px;fill:none}.mindmap-hint{display:inline-flex;align-items:center;gap:6px;margin:0;font-size:11.5px;color:var(--color-text-muted)}.mock-finished{display:flex;flex-direction:column;gap:24px;max-width:880px}.mock-finished-head{display:flex;flex-direction:column;align-items:center;gap:10px;padding:24px 20px;background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg);text-align:center}.mock-finished-icon{color:var(--color-action)}.mock-finished-head h2{margin:0;font-size:22px;font-weight:700}.mock-finished-score{margin:0;font-size:14px;color:var(--color-text-muted)}.mock-finished-buttons{display:flex;gap:8px;flex-wrap:wrap;justify-content:center;margin-top:6px}.mock-review-heading{margin:8px 0 0;font-size:16px;font-weight:700;display:inline-flex;align-items:center;gap:8px}.mock-review-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:14px}.mock-review-item{padding:14px 16px;background:var(--color-surface);border:1px solid var(--color-border);border-left-width:4px;border-radius:8px}.mock-review-item.is-correct{border-left-color:var(--color-success)}.mock-review-item.is-wrong{border-left-color:var(--color-error)}.mock-review-item.is-unanswered{border-left-color:var(--color-text-muted)}.mock-review-item-head{display:flex;align-items:center;gap:10px;margin-bottom:8px}.mock-review-item-num{font-family:var(--font-mono);font-weight:700;font-size:13px;color:var(--color-text-muted)}.mock-review-item-status{padding:2px 8px;border-radius:999px;font-size:11px;font-weight:700;letter-spacing:.4px;text-transform:uppercase}.mock-review-item-status.is-correct{background:#dcf3e3;color:var(--color-success)}.mock-review-item-status.is-wrong{background:#fbe1e1;color:var(--color-error)}.mock-review-item-status.is-unanswered{background:var(--color-surface-2);color:var(--color-text-muted)}.mock-review-item-question{font-size:14.5px;line-height:1.55;margin-bottom:10px}.mock-review-options{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:6px}.mock-review-option{display:flex;align-items:flex-start;gap:10px;padding:8px 12px;background:var(--color-surface-2);border:1px solid var(--color-border);border-radius:6px;font-size:13px;line-height:1.5}.mock-review-option.is-correct{background:#f0f8f3;border-color:var(--color-success)}.mock-review-option.is-wrong-picked{background:#fdf0f0;border-color:var(--color-error)}.mock-review-option-key{display:inline-flex;align-items:center;justify-content:center;flex-shrink:0;width:22px;height:22px;border-radius:50%;background:var(--color-surface);border:1px solid var(--color-border);font-size:11px;font-weight:700;color:var(--color-text-muted)}.mock-review-option.is-correct .mock-review-option-key{background:var(--color-success);border-color:var(--color-success);color:#fff}.mock-review-option.is-wrong-picked .mock-review-option-key{background:var(--color-error);border-color:var(--color-error);color:#fff}.mock-review-option-text{flex:1}.mock-review-option-tag{flex-shrink:0;padding:1px 7px;border-radius:4px;font-size:10.5px;font-weight:700;letter-spacing:.3px;text-transform:uppercase}.mock-review-option-tag.is-correct{background:var(--color-success);color:#fff}.mock-review-option-tag.is-wrong{background:var(--color-error);color:#fff}.mock-review-tf{display:flex;align-items:center;gap:10px;font-size:13px}.mock-review-tf-pill{display:inline-flex;align-items:center;justify-content:center;min-width:36px;padding:4px 10px;border-radius:999px;background:var(--color-surface-2);border:1px solid var(--color-border);font-weight:700;font-size:12px;color:var(--color-text-muted)}.mock-review-tf-pill.is-correct{background:var(--color-success);border-color:var(--color-success);color:#fff}.mock-review-tf-pill.is-wrong-picked{background:var(--color-error);border-color:var(--color-error);color:#fff}.mock-review-tf-correct{color:var(--color-text-muted);font-size:12px}.mock-review-explanation{margin-top:10px;padding-top:10px;border-top:1px dashed var(--color-border)}.mock-review-explanation summary{cursor:pointer;font-weight:600;font-size:12.5px;color:var(--color-text-muted);list-style:none}.mock-review-explanation summary::-webkit-details-marker{display:none}.mock-review-explanation summary:before{content:"▸ "}.mock-review-explanation[open] summary:before{content:"▾ "}.mock-review-explanation-body{margin-top:8px;font-size:13.5px;line-height:1.6}.mock-essay-block{display:flex;flex-direction:column;gap:14px;margin-top:8px}.mock-essay-section-title{font-size:12px;font-weight:600;text-transform:uppercase;letter-spacing:.04em;color:var(--color-text-muted);margin:0 0 6px}.mock-essay-scaffold{background:var(--color-surface-2);border-left:3px solid var(--color-primary);border-radius:6px;padding:12px 14px 12px 16px}.mock-essay-scaffold-list{margin:0;padding-left:22px;font-size:13.5px;line-height:1.65;color:var(--color-text)}.mock-essay-scaffold-list li+li{margin-top:4px}.mock-essay-keypoints,.mock-essay-model-answer{border:1px solid var(--color-border);border-radius:6px;padding:10px 14px;background:var(--color-surface)}.mock-essay-keypoints summary,.mock-essay-model-answer summary{cursor:pointer;font-size:13px;font-weight:600;color:var(--color-action);list-style:none}.mock-essay-keypoints summary::-webkit-details-marker,.mock-essay-model-answer summary::-webkit-details-marker{display:none}.mock-essay-keypoints summary:before,.mock-essay-model-answer summary:before{content:"▸ "}.mock-essay-keypoints[open] summary:before,.mock-essay-model-answer[open] summary:before{content:"▾ "}.mock-essay-keypoints ul{margin:8px 0 0;padding-left:20px;font-size:13px;line-height:1.55}.mock-essay-keypoints ul li+li{margin-top:3px}.mock-essay-model-answer-body{margin-top:10px;font-size:13.5px;line-height:1.7;color:var(--color-text)}.mock-review-item.is-essay{border-left-color:var(--color-accent)}.mock-review-item-status.is-essay{background:var(--color-accent-soft, rgba(180, 83, 9, .12));color:var(--color-accent)}.mindmap-node-text{font-weight:var(--mindmap-node-weight);letter-spacing:var(--mindmap-node-letter-spacing)}.mindmap-node-text-root{font-weight:var(--mindmap-root-weight);letter-spacing:var(--mindmap-root-letter-spacing)}.mindmap-zoom-controls{display:inline-flex;align-items:center;gap:6px;margin-left:auto}.mindmap-zoom-btn{display:inline-flex;align-items:center;justify-content:center;width:28px;height:28px;padding:0;border-radius:6px;border:1px solid var(--color-border);background:var(--color-surface);color:var(--color-text);cursor:pointer;transition:background .12s ease,border-color .12s ease}.mindmap-zoom-btn:hover:not(:disabled){background:var(--color-action-soft);border-color:var(--color-action);color:var(--color-action-hover)}.mindmap-zoom-btn:disabled{opacity:.4;cursor:not-allowed}.mindmap-zoom-percent{min-width:40px;text-align:center;font-size:12px;font-variant-numeric:tabular-nums;color:var(--color-text-muted)}.essay-list-view{display:flex;flex-direction:column;gap:16px}.essay-list-head h2{margin:0;font-size:22px;font-weight:700;display:inline-flex;align-items:center;gap:8px}.essay-list-table{width:100%;border-collapse:collapse;background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg);overflow:hidden;font-size:13px}.essay-list-table th,.essay-list-table td{padding:12px 16px;text-align:left;border-bottom:1px solid var(--color-border)}.essay-list-table th{background:var(--color-surface-2);font-weight:600;color:var(--color-text-muted);font-size:11.5px;text-transform:uppercase;letter-spacing:.5px}.essay-list-table tr:last-child td{border-bottom:0}.essay-list-link{appearance:none;background:transparent;border:0;padding:0;cursor:pointer;color:var(--color-text);font:inherit;text-align:left;text-decoration:underline;text-decoration-color:var(--color-border);text-underline-offset:3px}.essay-list-link:hover{color:var(--color-primary);text-decoration-color:var(--color-primary)}.essay-list-foot{margin:0;font-size:11px;color:var(--color-text-muted);text-align:center}.pill-essay-empty{background:var(--color-surface-2);color:var(--color-text-muted);padding:2px 8px;font-size:11px;border-radius:4px;font-weight:600}.pill-essay-draft{background:#e9eef7;color:#3a4d6e;padding:2px 8px;font-size:11px;border-radius:4px;font-weight:600}.pill-essay-graded{background:#2d7a4f1f;color:var(--color-success);padding:2px 8px;font-size:11px;border-radius:4px;font-weight:600}.essay-detail-view{display:flex;flex-direction:column;gap:16px}.essay-detail-head{margin-bottom:-4px}.essay-detail-grid{display:grid;grid-template-columns:minmax(280px,360px) 1fr;gap:24px}.essay-detail-side{display:flex;flex-direction:column;gap:16px;position:sticky;top:16px;align-self:flex-start;max-height:calc(100vh - 32px);overflow-y:auto;padding-right:4px}.essay-detail-section{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg);padding:16px 18px}.essay-detail-section h3{margin:0 0 10px;font-size:11.5px;font-weight:600;color:var(--color-text-muted);text-transform:uppercase;letter-spacing:.5px}.essay-scaffold-list,.essay-keypoints-list{margin:0;padding-left:20px;display:flex;flex-direction:column;gap:6px;font-size:13px;line-height:1.55}.essay-detail-modelanswer{background:var(--color-surface-2);border-radius:var(--radius-lg);padding:12px 16px}.essay-detail-modelanswer summary{cursor:pointer;font-size:12px;font-weight:600;color:var(--color-text-muted);text-transform:uppercase;letter-spacing:.5px}.essay-detail-modelanswer summary:hover{color:var(--color-text)}.essay-detail-modelanswer[open] summary{margin-bottom:10px}.essay-detail-main{display:flex;flex-direction:column;gap:12px;min-width:0}.essay-editor-head{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap}.essay-editor-head h3{margin:0;font-size:16px;font-weight:700}.essay-editor-meta{display:inline-flex;align-items:center;gap:12px;font-size:12px;color:var(--color-text-muted)}.essay-wordcount.is-met{color:var(--color-success);font-weight:600}.essay-wordcount.is-under,.essay-wordtarget{color:var(--color-text-muted)}.essay-savedat{color:var(--color-text-muted);font-style:italic}.essay-actions{display:flex;gap:10px;flex-wrap:wrap;margin-top:4px}.essay-ai-btn:disabled{opacity:.6;cursor:not-allowed;background:var(--color-text-muted);border-color:var(--color-text-muted)}.essay-ai-future-note{margin:0;font-size:11.5px;color:var(--color-text-muted);display:inline-flex;align-items:center;gap:6px;padding:8px 12px;background:var(--color-surface-2);border-radius:8px;align-self:flex-start}.md-editor{display:flex;flex-direction:column;border:1px solid var(--color-border);border-radius:var(--radius-lg);background:var(--color-surface);overflow:hidden}.md-editor-toolbar{display:flex;flex-wrap:wrap;gap:2px;padding:6px 8px;background:var(--color-surface-2);border-bottom:1px solid var(--color-border)}.md-editor-toolbar-btn{appearance:none;border:0;background:transparent;padding:6px 8px;cursor:pointer;color:var(--color-text-muted);border-radius:4px;display:inline-flex;align-items:center;transition:background .12s ease,color .12s ease}.md-editor-toolbar-btn:hover{background:var(--color-surface);color:var(--color-text)}.md-editor-panes{display:grid;grid-template-columns:1fr}.md-editor-with-preview .md-editor-panes{grid-template-columns:1fr 1fr}.md-editor-textarea{appearance:none;border:0;border-right:1px solid var(--color-border);background:var(--color-surface);font-family:var(--font-mono);font-size:13.5px;line-height:1.6;padding:14px 16px;resize:vertical;min-height:320px;outline:none;color:var(--color-text)}.md-editor-with-preview .md-editor-textarea:focus{box-shadow:inset 2px 0 0 var(--color-primary)}.md-editor-preview{padding:14px 16px;background:var(--color-surface);overflow-y:auto;font-size:14px;line-height:1.65;max-height:600px}.md-editor-preview-empty{color:var(--color-text-muted);font-style:italic;margin:0}.mermaid-block{margin:12px 0;padding:16px;background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius);overflow-x:auto;display:flex;justify-content:center}.mermaid-block svg{max-width:100%;height:auto}.mermaid-block-loading{color:var(--color-text-muted);font-style:italic;padding:24px}.mermaid-block-error{flex-direction:column;align-items:stretch;background:#fdf6e8;border-color:#b07e2a59}.mermaid-error-msg{margin:0 0 8px;color:var(--color-warning);font-size:12px;font-weight:600}.mermaid-fallback-source{margin:0;font-family:var(--font-mono);font-size:12px;background:var(--color-surface);padding:8px 10px;border-radius:4px}@media(max-width:720px){.app-main{padding:16px}.app-header{padding:12px 16px}.home-main,.course-main,.course-shell{padding:24px 16px}.flashcards-rate-row{grid-template-columns:repeat(2,1fr)}.wrong-answers-table{font-size:12px}.wrong-answers-table th,.wrong-answers-table td{padding:8px 10px}.mock-running-head{flex-direction:column;align-items:stretch}.mock-tf-options{grid-template-columns:1fr}.mindmap-view{height:calc(100vh - 80px)}.md-editor-with-preview .md-editor-panes{grid-template-columns:1fr}.md-editor-textarea{border-right:0;border-bottom:1px solid var(--color-border)}.essay-detail-grid{grid-template-columns:1fr}.essay-detail-side{position:static;max-height:none}}.ingest-progress{max-width:720px;margin:32px auto;padding:28px 32px;background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg);display:flex;flex-direction:column;gap:18px}.ingest-progress-head{display:flex;flex-direction:column;gap:4px}.ingest-progress-title{margin:0;font-family:var(--font-display, serif);font-size:22px;font-weight:600;letter-spacing:-.3px;color:var(--color-text)}.ingest-progress-hint{margin:0;font-size:13px;color:var(--color-text-muted);line-height:1.5}.ingest-progress-bar-wrap{display:flex;align-items:center;gap:12px}.ingest-progress-bar{flex:1;height:8px;background:var(--color-surface-2);border-radius:999px;overflow:hidden}.ingest-progress-fill{height:100%;background:linear-gradient(90deg,var(--color-action-hover),var(--color-action));transition:width .28s ease}.ingest-progress-percent{min-width:42px;text-align:right;font-variant-numeric:tabular-nums;font-weight:600;font-size:14px;color:var(--color-action)}.ingest-stage-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:6px}.ingest-stage-row{display:grid;grid-template-columns:24px 1fr auto;align-items:center;gap:10px;padding:8px 10px;border-radius:var(--radius-md);font-size:13.5px;transition:background .12s ease}.ingest-stage-row.is-pending{color:var(--color-text-muted);opacity:.65}.ingest-stage-row.is-running{background:var(--color-action-soft);color:var(--color-action-hover);font-weight:600}.ingest-stage-row.is-done{color:var(--color-text)}.ingest-stage-row.is-skipped{color:var(--color-text-muted);opacity:.55}.ingest-stage-row.is-error{background:#c1272d14;color:var(--color-accent)}.ingest-stage-icon{display:inline-flex;align-items:center;justify-content:center}.ingest-stage-row.is-done .ingest-stage-icon{color:var(--color-action)}.ingest-stage-row.is-skipped .ingest-stage-icon{color:var(--color-text-muted)}.ingest-stage-row.is-error .ingest-stage-icon{color:var(--color-accent)}.ingest-stage-row.is-running .ingest-stage-icon{color:var(--color-action)}.ingest-stage-dot{display:inline-block;width:6px;height:6px;border-radius:50%;background:var(--color-border)}.ingest-spin{animation:ingest-spin .9s linear infinite}@keyframes ingest-spin{to{transform:rotate(360deg)}}.ingest-stage-label{line-height:1.3}.ingest-stage-badge{font-size:11px;padding:2px 8px;border-radius:999px;background:var(--color-surface-2);color:var(--color-text-muted);font-weight:500;text-transform:uppercase;letter-spacing:.4px}.ingest-stage-badge-error{background:#c1272d1f;color:var(--color-accent)}.ingest-error-details{font-size:13px;color:var(--color-accent);background:#c1272d0f;border-radius:var(--radius-md);padding:10px 14px}.ingest-error-details summary{cursor:pointer;font-weight:600}.ingest-error-details ul{margin:8px 0 0 16px;padding:0}.ingest-progress-cancel{align-self:flex-start}.mock-paper-card-style{display:inline-block;margin-top:4px;padding:2px 10px;font-size:10.5px;font-weight:500;letter-spacing:.3px;text-transform:uppercase;border-radius:999px;border:1px solid currentColor;align-self:flex-start}.mock-paper-card-style.style-content_based{color:var(--color-text-muted)}.mock-paper-card-style.style-past_paper_strict{color:var(--color-action)}.mock-paper-card-style.style-past_paper_inspired{color:var(--color-action-hover)}.mock-fallback-banner{margin-bottom:14px;padding:10px 14px;background:#b4530914;color:var(--color-action-hover);border:1px solid var(--color-action);border-radius:var(--radius-md);font-size:13px;line-height:1.5}.course-sidebar-group{margin:14px 0 6px;padding:6px 12px 4px;border-top:1px solid rgba(255,255,255,.08)}.course-sidebar-group-label{display:block;font-size:10.5px;font-weight:600;letter-spacing:1.2px;text-transform:uppercase;color:var(--color-action);opacity:.85}.course-sidebar-link.is-emphasis-exam{border-left:3px solid var(--color-action);padding-left:13px;background:#b453090f}.course-sidebar-link.is-emphasis-exam:hover{background:#b4530924}.course-sidebar-link.is-emphasis-exam.is-active{background:#b4530938;border-left-color:var(--color-action-hover)}.course-sidebar-link.is-emphasis-exam .course-sidebar-icon{color:var(--color-action)}.wrong-answers-stats{display:flex;flex-direction:column;gap:18px;margin-bottom:22px;padding:18px 20px;background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg)}.wrong-stat-summary{display:grid;grid-template-columns:repeat(auto-fit,minmax(140px,1fr));gap:12px}.wrong-stat-tile{display:flex;flex-direction:column;gap:4px;padding:14px 16px;background:var(--color-surface-2);border-left:3px solid var(--color-border);border-radius:var(--radius-md)}.wrong-stat-tile.is-warn{border-left-color:var(--color-accent)}.wrong-stat-tile.is-ok{border-left-color:#2f9e44}.wrong-stat-num{font-family:var(--font-display, serif);font-size:26px;font-weight:600;color:var(--color-text);font-variant-numeric:tabular-nums}.wrong-stat-tile.is-warn .wrong-stat-num{color:var(--color-accent)}.wrong-stat-tile.is-ok .wrong-stat-num{color:#2f9e44}.wrong-stat-label{font-size:12px;color:var(--color-text-muted);text-transform:uppercase;letter-spacing:.5px;font-weight:500}.wrong-stat-block{display:flex;flex-direction:column;gap:8px}.wrong-stat-block-title{margin:0;font-size:12px;font-weight:600;text-transform:uppercase;letter-spacing:.5px;color:var(--color-text-muted)}.wrong-bar-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:6px}.wrong-bar-row{display:grid;grid-template-columns:minmax(80px,30%) 1fr auto;align-items:center;gap:10px;font-size:12.5px}.wrong-bar-label{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;color:var(--color-text)}.wrong-bar-track{height:6px;background:var(--color-surface-2);border-radius:999px;overflow:hidden}.wrong-bar-fill{height:100%;background:linear-gradient(90deg,var(--color-accent),#d44950);transition:width .2s ease}.wrong-bar-count{font-variant-numeric:tabular-nums;font-weight:600;color:var(--color-accent);font-size:12px}.wrong-bar-count-total{color:var(--color-text-muted);font-weight:500}.wrong-stat-chip-row{display:flex;flex-wrap:wrap;gap:8px}.wrong-stat-chip{padding:4px 10px;background:var(--color-surface-2);border:1px solid var(--color-border);border-radius:999px;font-size:12px;color:var(--color-text)}.wrong-stat-chip-unresolved{color:var(--color-accent);font-weight:600}.wrong-trend-spark{display:flex;align-items:flex-end;gap:3px;height:56px;padding-top:4px}.wrong-trend-bar{flex:1;background:var(--color-action);border-radius:3px 3px 0 0;min-height:4px;transition:height .2s ease}.wrong-trend-bar.is-empty{background:var(--color-surface-2);border:1px solid var(--color-border)}.wrong-trend-axis{margin:4px 0 0;font-size:11px;color:var(--color-text-muted)}.course-settings{max-width:720px;margin:0 auto;display:flex;flex-direction:column;gap:22px}.course-settings-head h2{display:inline-flex;align-items:center;gap:8px;margin:0;font-family:var(--font-display, serif);font-size:22px;letter-spacing:-.3px;color:var(--color-text)}.course-settings-head p{margin:4px 0 0;font-size:12.5px;color:var(--color-text-muted)}.course-settings-msg{padding:10px 14px;background:var(--color-action-soft);color:var(--color-action-hover);border:1px solid var(--color-action);border-radius:var(--radius-md);font-size:13px}.course-settings-block{border:1px solid var(--color-border);border-radius:var(--radius-lg);padding:18px 20px;background:var(--color-surface);display:flex;flex-direction:column;gap:14px}.course-settings-block legend{font-size:12px;font-weight:600;text-transform:uppercase;letter-spacing:.6px;color:var(--color-text-muted);padding:0 8px;display:inline-flex;align-items:center;gap:6px}.course-settings-actions{display:flex;flex-wrap:wrap;gap:10px}.course-settings-actions .btn-secondary,.course-settings-actions .btn-primary,.course-settings-actions .btn-danger{display:inline-flex;align-items:center;gap:6px}.course-settings-hint{margin:0;font-size:12px;line-height:1.55;color:var(--color-text-muted)}.course-settings-danger{border-color:var(--color-accent);background:#c1272d0a}.course-settings-danger legend{color:var(--color-accent)}.btn-danger{background:var(--color-surface);color:var(--color-accent);border:1px solid var(--color-accent);border-radius:8px;padding:8px 16px;font:inherit;font-weight:500;cursor:pointer;transition:background .12s ease,color .12s ease}.btn-danger:hover:not(:disabled){background:var(--color-accent);color:#fff}.btn-danger:disabled{opacity:.55;cursor:not-allowed}.lecture-notes-view{display:grid;grid-template-columns:minmax(220px,280px) 1fr;gap:24px;padding:16px 24px 32px;max-width:1280px;margin:0 auto;align-items:start}@media(max-width:900px){.lecture-notes-view{grid-template-columns:1fr}}.lecture-notes-sidebar{display:flex;flex-direction:column;gap:16px;padding:14px 12px;background:var(--color-surface, #fff);border:1px solid var(--color-border, #e3e8ee);border-radius:var(--radius-md, 8px);position:sticky;top:12px;max-height:calc(100vh - 24px);overflow-y:auto}.lecture-notes-sidebar-heading{display:flex;align-items:center;gap:8px;margin:0 0 4px;font-size:13px;font-weight:700;color:var(--color-text-secondary);text-transform:uppercase;letter-spacing:.5px}.lecture-notes-group{display:flex;flex-direction:column;gap:4px}.lecture-notes-group-head{display:flex;align-items:baseline;gap:6px;padding:4px 8px 4px 10px;border-left:3px solid;font-size:12px;font-weight:600;color:var(--color-text-primary)}.lecture-notes-group-order{font-variant-numeric:tabular-nums;color:var(--color-text-muted);font-weight:500}.lecture-notes-group-title{flex:1 1 auto;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.lecture-notes-list{list-style:none;margin:0;padding:0 0 0 12px;display:flex;flex-direction:column;gap:2px}.lecture-notes-item{display:flex;flex-direction:column;gap:2px;width:100%;padding:6px 8px;border:none;background:transparent;border-radius:var(--radius-sm, 4px);text-align:left;cursor:pointer;font-family:inherit;font-size:12px;color:var(--color-text-primary);transition:background .1s ease}.lecture-notes-item:hover{background:var(--color-surface-2, #f5f7fa)}.lecture-notes-item.is-active{background:var(--color-action-soft, #eef4ff);font-weight:600}.lecture-notes-item-title{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.lecture-notes-item-meta{display:flex;align-items:center;gap:6px;font-size:10px;color:var(--color-text-muted)}.lecture-likelihood{display:inline-flex;align-items:center;gap:2px}.lecture-likelihood-high{color:#b45309}.lecture-likelihood-mid{color:#2d6a4f}.lecture-likelihood-low{color:var(--color-text-muted)}.lecture-readtime{display:inline-flex;align-items:center;gap:2px}.lecture-notes-main{display:flex;flex-direction:column;gap:18px;padding:20px 28px;background:var(--color-surface, #fff);border:1px solid var(--color-border, #e3e8ee);border-radius:var(--radius-md, 8px)}.lecture-notes-header{display:flex;flex-direction:column;gap:8px;padding-bottom:16px;border-bottom:1px dashed var(--color-border, #e3e8ee)}.lecture-notes-chapter-tag{display:inline-flex;align-self:flex-start;align-items:center;padding:3px 10px;border:1px solid;border-radius:999px;font-size:11px;font-weight:600}.lecture-notes-title{margin:0;font-size:26px;font-weight:700;color:var(--color-text-primary);font-family:Fraunces Variable,Georgia,serif;letter-spacing:-.01em}.lecture-notes-summary{margin:0;font-size:14px;color:var(--color-text-secondary);line-height:1.6}.lecture-notes-meta-row{display:flex;flex-wrap:wrap;gap:6px;margin-top:4px}.lecture-notes-meta-chip{display:inline-flex;align-items:center;gap:4px;padding:3px 9px;background:var(--color-surface-2, #f5f7fa);border-radius:999px;font-size:11px;color:var(--color-text-secondary);font-variant-numeric:tabular-nums}.lecture-notes-body{font-size:15px;line-height:1.7;color:var(--color-text-primary)}.lecture-notes-section-heading{margin:0 0 10px;font-size:14px;font-weight:700;color:var(--color-text-secondary);text-transform:uppercase;letter-spacing:.4px}.lecture-notes-keypoints ul{list-style:"✓ ";padding-left:18px;margin:0;display:flex;flex-direction:column;gap:6px}.lecture-notes-keypoints li{font-size:14px;line-height:1.55;color:var(--color-text-primary)}.lecture-notes-glossary-list{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:4px}.lecture-notes-glossary-chip{padding:6px 10px;background:var(--color-surface-2, #f5f7fa);border-radius:var(--radius-sm, 4px);font-size:13px;color:var(--color-text-primary)}.lecture-notes-glossary-chip strong{color:var(--color-action, #1d3557)}.lecture-notes-source{margin-top:8px;padding-top:12px;border-top:1px dashed var(--color-border, #e3e8ee);font-size:11px;color:var(--color-text-muted)}.lecture-notes-source-label{font-weight:600}.lecture-notes-source code{background:var(--color-surface-2, #f5f7fa);padding:1px 6px;border-radius:3px;font-size:11px}.ingest-progress-meta-row{display:flex;gap:12px;margin:8px 0 0}.ingest-progress-meta{display:inline-flex;align-items:center;gap:4px;font-size:12px;color:var(--color-text-muted);font-variant-numeric:tabular-nums}.ingest-progress-meta strong{color:var(--color-text-primary)}.ingest-progress-banner{display:inline-flex;align-items:center;gap:8px;margin:8px 0;padding:8px 12px;border-radius:var(--radius-sm, 4px);font-size:12px}.ingest-progress-banner-warn{background:#b453091a;color:#b45309;border:1px solid rgba(180,83,9,.25)}.ingest-stage-badge-ai{background:linear-gradient(135deg,#6d2e46,#1d3557);color:#fff;padding:1px 6px;font-size:10px;font-weight:600;letter-spacing:.4px;display:inline-flex;align-items:center;gap:2px}.ingest-stage-elapsed{margin-left:auto;font-size:11px;color:var(--color-text-muted);font-variant-numeric:tabular-nums}.proof-drills-view{display:grid;grid-template-columns:minmax(220px,280px) 1fr;gap:24px;padding:16px 24px 32px;max-width:1280px;margin:0 auto;align-items:start}@media(max-width:900px){.proof-drills-view{grid-template-columns:1fr}}.proof-drills-sidebar{display:flex;flex-direction:column;gap:16px;padding:14px 12px;background:var(--color-surface, #fff);border:1px solid var(--color-border, #e3e8ee);border-radius:var(--radius-md, 8px);position:sticky;top:12px;max-height:calc(100vh - 24px);overflow-y:auto}.proof-drills-sidebar-heading{display:flex;align-items:center;gap:8px;margin:0 0 4px;font-size:13px;font-weight:700;color:var(--color-text-secondary);text-transform:uppercase;letter-spacing:.5px}.proof-drills-group{display:flex;flex-direction:column;gap:4px}.proof-drills-group-head{display:flex;align-items:baseline;gap:6px;padding:4px 8px 4px 10px;border-left:3px solid;font-size:12px;font-weight:600;color:var(--color-text-primary)}.proof-drills-group-order{font-variant-numeric:tabular-nums;color:var(--color-text-muted);font-weight:500}.proof-drills-group-title{flex:1 1 auto;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.proof-drills-list{list-style:none;margin:0;padding:0 0 0 12px;display:flex;flex-direction:column;gap:2px}.proof-drills-item{display:flex;align-items:center;gap:8px;width:100%;padding:6px 8px;border:none;background:transparent;border-radius:var(--radius-sm, 4px);text-align:left;cursor:pointer;font-family:inherit;font-size:12px;color:var(--color-text-primary);transition:background .1s ease}.proof-drills-item:hover{background:var(--color-surface-2, #f5f7fa)}.proof-drills-item.is-active{background:var(--color-action-soft, #eef4ff);font-weight:600}.proof-drills-item-title{flex:1 1 auto;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.proof-drills-difficulty{display:inline-flex;align-items:center;justify-content:center;width:18px;height:18px;border-radius:4px;font-size:10px;font-weight:700;flex-shrink:0}.diff-easy{background:#2d6a4f26;color:#2d6a4f}.diff-medium{background:#b4530926;color:#b45309}.diff-hard{background:#b91c1c26;color:#b91c1c}.proof-drills-main{display:flex;flex-direction:column;gap:18px;padding:20px 28px;background:var(--color-surface, #fff);border:1px solid var(--color-border, #e3e8ee);border-radius:var(--radius-md, 8px)}.proof-drills-header{display:flex;flex-direction:column;gap:8px;padding-bottom:16px;border-bottom:1px dashed var(--color-border, #e3e8ee)}.proof-drills-chapter-tag{display:inline-flex;align-self:flex-start;padding:3px 10px;border:1px solid;border-radius:999px;font-size:11px;font-weight:600}.proof-drills-prompt{margin:0;font-size:18px;line-height:1.5;color:var(--color-text-primary)}.proof-drills-meta-row{display:flex;flex-wrap:wrap;gap:6px;margin-top:4px}.proof-drills-meta-chip{display:inline-flex;align-items:center;gap:4px;padding:3px 9px;background:var(--color-surface-2, #f5f7fa);border-radius:999px;font-size:11px;color:var(--color-text-secondary)}.proof-drills-section-heading{display:flex;align-items:center;gap:6px;margin:0 0 10px;font-size:14px;font-weight:700;color:var(--color-text-secondary);text-transform:uppercase;letter-spacing:.4px}.proof-drills-steps ol{padding-left:24px;margin:0;display:flex;flex-direction:column;gap:8px;font-size:14px;line-height:1.6}.proof-drills-mistakes ul{list-style:"⚠ ";padding-left:18px;margin:0;display:flex;flex-direction:column;gap:6px;font-size:13px;line-height:1.55}.free-response-view{display:grid;grid-template-columns:280px 1fr;gap:1.25rem;padding:1.25rem 1.5rem;min-height:calc(100vh - 70px)}@media(max-width:920px){.free-response-view{grid-template-columns:1fr}}.free-response-sidebar{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius);padding:.75rem .6rem;max-height:calc(100vh - 100px);overflow-y:auto}.free-response-sidebar-heading{font-size:.85rem;font-weight:600;color:var(--color-primary);display:flex;align-items:center;gap:.4rem;padding:.25rem .4rem .5rem;margin:0;border-bottom:1px solid var(--color-border)}.free-response-group{margin-top:.7rem}.free-response-group-head{display:flex;align-items:center;gap:.45rem;border-left:3px solid var(--color-primary);padding:.3rem .5rem;margin-bottom:.35rem}.free-response-group-order{font-size:.75rem;color:var(--color-text-muted)}.free-response-group-title{font-size:.85rem;font-weight:500;color:var(--color-text)}.free-response-list{list-style:none;padding:0;margin:0}.free-response-item{display:flex;align-items:flex-start;gap:.5rem;width:100%;text-align:left;background:transparent;border:none;padding:.45rem .5rem;border-radius:6px;cursor:pointer;font-size:.85rem;color:var(--color-text);transition:background .12s}.free-response-item:hover{background:var(--color-surface-2)}.free-response-item.is-active{background:#1e3a5f14;color:var(--color-primary);font-weight:500}.free-response-kind{display:inline-flex;flex:0 0 auto;padding:2px;border-radius:4px}.free-response-kind.kind-short_answer{color:#4b5563}.free-response-kind.kind-calculation{color:#1e3a5f}.free-response-kind.kind-translation{color:#92400e}.free-response-item-title{flex:1;line-height:1.4}.free-response-main{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius);padding:1.25rem 1.5rem;box-shadow:var(--shadow-sm)}.free-response-header{margin-bottom:1rem}.free-response-chapter-tag{display:inline-block;padding:.15rem .5rem;border:1px solid;border-radius:999px;font-size:.75rem;margin-bottom:.5rem}.free-response-meta-row{display:flex;gap:.4rem;flex-wrap:wrap;margin-bottom:.5rem}.free-response-meta-chip{display:inline-flex;align-items:center;gap:.3rem;padding:.15rem .5rem;border-radius:999px;font-size:.75rem;background:var(--color-surface-2);color:var(--color-text-muted)}.free-response-meta-chip.kind-short_answer{background:#e5e7eb;color:#4b5563}.free-response-meta-chip.kind-calculation{background:#1e3a5f1a;color:#1e3a5f}.free-response-meta-chip.kind-translation{background:#b453091a;color:#92400e}.free-response-meta-chip.diff-easy{background:#d1fae5;color:#065f46}.free-response-meta-chip.diff-medium{background:#fef3c7;color:#92400e}.free-response-meta-chip.diff-hard{background:#fee2e2;color:#991b1b}.free-response-prompt{font-size:1.05rem;line-height:1.6;font-weight:500}.free-response-section{margin-top:1.25rem}.free-response-section h3{font-size:.95rem;font-weight:600;color:var(--color-primary);margin:0 0 .5rem;display:flex;align-items:center;gap:.4rem}.free-response-source-text{background:var(--color-surface-2);padding:.85rem 1rem;border-radius:var(--radius);border-left:3px solid var(--color-action)}.free-response-target-lang{font-size:.8rem;color:var(--color-text-muted);margin-top:.4rem}.free-response-scaffold{padding-left:1.4rem;margin:0;font-size:.9rem;line-height:1.6}.free-response-hints{background:var(--color-action-soft);padding:.85rem 1rem;border-radius:var(--radius)}.free-response-hints-empty{font-size:.85rem;color:var(--color-text-muted);margin:0 0 .5rem}.free-response-textarea{width:100%;min-height:220px;padding:.7rem .85rem;border:1px solid var(--color-border);border-radius:var(--radius);font-family:var(--font-sans);font-size:.95rem;line-height:1.55;resize:vertical;background:var(--color-surface);color:var(--color-text)}.free-response-textarea:focus{outline:2px solid var(--color-primary);outline-offset:1px}.free-response-textarea:disabled{background:var(--color-surface-2);color:var(--color-text-muted);cursor:not-allowed}.free-response-actions{display:flex;gap:.5rem;margin-top:.6rem;flex-wrap:wrap}.free-response-reveal{background:#15803d0a;padding:.85rem 1rem;border-radius:var(--radius);border-left:3px solid var(--color-success)}.free-response-final-value{margin-top:.6rem;padding:.5rem .7rem;background:var(--color-surface-2);border-radius:6px;display:inline-flex;align-items:center;gap:.4rem;font-size:.9rem}.free-response-final-value code{font-family:var(--font-mono);padding:.1rem .35rem;background:var(--color-surface);border-radius:3px}.reading-passage-view{display:grid;grid-template-columns:240px 1fr;gap:1.25rem;padding:1.25rem 1.5rem;min-height:calc(100vh - 70px)}@media(max-width:920px){.reading-passage-view{grid-template-columns:1fr}}.reading-passage-sidebar{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius);padding:.75rem .6rem}.reading-passage-sidebar-heading{font-size:.85rem;font-weight:600;color:var(--color-primary);display:flex;align-items:center;gap:.4rem;padding:.25rem .4rem .5rem;margin:0;border-bottom:1px solid var(--color-border)}.reading-passage-list{list-style:none;padding:0;margin:0}.reading-passage-item{display:flex;align-items:center;gap:.5rem;width:100%;text-align:left;background:transparent;border:none;padding:.5rem;border-radius:6px;cursor:pointer;font-size:.85rem;color:var(--color-text);transition:background .12s}.reading-passage-item:hover{background:var(--color-surface-2)}.reading-passage-item.is-active{background:#1e3a5f14;color:var(--color-primary)}.reading-passage-item-chapter{font-size:.7rem;flex:0 0 auto}.reading-passage-item-title{flex:1}.reading-passage-item-qcount{font-size:.7rem;color:var(--color-text-muted)}.reading-passage-main{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius);padding:1.25rem 1.5rem}.reading-passage-header{margin-bottom:1rem}.reading-passage-chapter-tag{display:inline-block;padding:.15rem .5rem;border:1px solid;border-radius:999px;font-size:.75rem;margin-bottom:.5rem}.reading-passage-title{font-size:1.3rem;font-weight:600;margin:.2rem 0;color:var(--color-text)}.reading-passage-meta-row{display:flex;gap:.4rem}.reading-passage-meta-chip{font-size:.75rem;padding:.15rem .5rem;border-radius:999px;background:var(--color-surface-2);color:var(--color-text-muted)}.reading-passage-meta-credit{font-style:italic}.reading-passage-grid{display:grid;grid-template-columns:1.5fr 1fr;gap:1rem}@media(max-width:1024px){.reading-passage-grid{grid-template-columns:1fr}}.reading-passage-text{background:var(--color-surface-2);padding:1rem 1.2rem;border-radius:var(--radius);max-height:70vh;overflow-y:auto}.reading-passage-questions{padding-top:.5rem}.reading-passage-section-heading{font-size:.9rem;font-weight:600;color:var(--color-primary);margin:0 0 .5rem}.reading-passage-questions ol{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:.4rem}.reading-passage-q-link{display:flex;align-items:flex-start;gap:.4rem;padding:.5rem .6rem;background:var(--color-surface);border:1px solid var(--color-border);border-radius:6px;text-decoration:none;color:var(--color-text);font-size:.85rem}.reading-passage-q-link:hover{background:var(--color-surface-2);border-color:var(--color-primary)}.reading-passage-q-num{flex:0 0 auto;font-weight:600;color:var(--color-primary);font-family:var(--font-mono);font-size:.78rem}.reading-passage-q-missing{color:var(--color-warning);font-size:.8rem}.self-assess-panel{margin-top:1.25rem;background:var(--color-action-soft);padding:1rem 1.2rem;border-radius:var(--radius);border-left:3px solid var(--color-action)}.self-assess-heading{font-size:.95rem;font-weight:600;color:var(--color-action-hover);margin:0 0 .3rem}.self-assess-hint{font-size:.8rem;color:var(--color-text-muted);margin:0 0 .75rem;line-height:1.5}.self-assess-rows{display:flex;flex-direction:column;gap:.7rem}.self-assess-row{display:grid;grid-template-columns:1fr auto;gap:.7rem;padding:.6rem .7rem;background:var(--color-surface);border-radius:6px;border:1px solid var(--color-border)}@media(max-width:720px){.self-assess-row{grid-template-columns:1fr}}.self-assess-dim{display:flex;flex-direction:column;gap:.2rem}.self-assess-dim-label{font-size:.9rem;color:var(--color-text)}.self-assess-dim-criteria{font-size:.8rem;color:var(--color-text-muted);line-height:1.5}.self-assess-scores{display:flex;gap:.3rem;align-items:center}.self-assess-score{display:inline-flex;align-items:center;gap:.2rem;padding:.3rem .55rem;border:1px solid var(--color-border);background:var(--color-surface);border-radius:6px;cursor:pointer;font-size:.78rem;color:var(--color-text-muted);transition:all .12s}.self-assess-score:hover{border-color:var(--color-primary);color:var(--color-text)}.self-assess-score.is-active{background:var(--color-primary);color:#fff;border-color:var(--color-primary)}.self-assess-score.is-active.score-0{background:#6b7280;border-color:#6b7280}.self-assess-score.is-active.score-1{background:#b45309;border-color:#b45309}.self-assess-score.is-active.score-2{background:#047857;border-color:#047857}.self-assess-score.is-active.score-3{background:var(--color-primary)}.self-assess-score-num{font-weight:600}.self-assess-score-label{font-size:.7rem;opacity:.85}.editable-text{position:relative;border-radius:6px;padding:.2rem 0}.editable-text.is-edited{background:#b453090a;border-left:2px solid var(--color-action);padding-left:.6rem}.editable-text-content{padding:.1rem 0}.editable-text-toolbar{display:flex;gap:.4rem;align-items:center;margin-top:.4rem;font-size:.75rem}.editable-text-badge{display:inline-flex;align-items:center;padding:.1rem .4rem;background:var(--color-action);color:#fff;font-size:.7rem;border-radius:999px;font-weight:500}.editable-text-btn{display:inline-flex;align-items:center;gap:.25rem;padding:.25rem .55rem;background:transparent;border:1px solid var(--color-border);border-radius:6px;cursor:pointer;font-size:.75rem;color:var(--color-text-muted);transition:all .12s}.editable-text-btn:hover{border-color:var(--color-primary);color:var(--color-text)}.editable-text-btn-revert:hover{border-color:var(--color-warning);color:var(--color-warning)}.editable-text-textarea{width:100%;min-height:140px;padding:.6rem .75rem;border:1px solid var(--color-primary);border-radius:6px;font-family:var(--font-sans);font-size:.9rem;line-height:1.55;resize:vertical}.editable-text-actions{display:flex;gap:.4rem;margin-top:.4rem}.wrong-answers-tabs{margin-bottom:1rem}.wrong-answers-subjective .wrong-stat-block{margin-top:1rem}.proof-drills-prompt{font-size:1.15rem;font-weight:600;color:var(--color-text);margin:.4rem 0 .6rem;line-height:1.5}.proof-drills-steps-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:.4rem}.proof-drills-toggle-all{display:inline-flex;align-items:center;gap:.3rem;font-size:.78rem;padding:.3rem .6rem}.proof-drills-try-first-hint{font-size:.82rem;color:var(--color-text-muted);font-style:italic;margin:0 0 .7rem}.proof-drills-steps-list{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:.5rem}.proof-drills-step.is-hidden{background:var(--color-surface-2);border-radius:6px;padding:.1rem}.proof-drills-step-reveal-btn{display:flex;align-items:center;gap:.4rem;width:100%;text-align:left;padding:.6rem .8rem;background:transparent;border:1px dashed var(--color-border);border-radius:6px;cursor:pointer;color:var(--color-text-muted);font-size:.85rem;transition:all .12s}.proof-drills-step-reveal-btn:hover{border-color:var(--color-primary);color:var(--color-primary);border-style:solid;background:var(--color-surface)}.proof-drills-step.is-revealed{background:var(--color-surface);border-left:3px solid var(--color-primary);border-radius:6px;padding:.6rem .85rem}.proof-drills-step-content{display:flex;flex-direction:column;gap:.4rem}.proof-drills-step-label{font-size:.72rem;font-weight:600;color:var(--color-primary);letter-spacing:.5px;text-transform:uppercase}.proof-drills-step-intermediate{font-size:.95rem}.proof-drills-step-justification{margin-top:.2rem}.proof-drills-step-justification summary{font-size:.8rem;color:var(--color-text-muted);cursor:pointer;padding:.2rem 0}.proof-drills-step-justification summary:hover{color:var(--color-text)}.proof-drills-step-prereq{display:inline-flex;align-items:center;gap:.25rem;font-size:.72rem;color:var(--color-action-hover);background:var(--color-action-soft);padding:.15rem .45rem;border-radius:999px;margin-top:.2rem;align-self:flex-start}.proof-drills-mistakes{margin-top:1rem;padding:.7rem .9rem;background:#c1272d0a;border-left:3px solid var(--color-accent);border-radius:var(--radius)}.proof-drills-mistakes-summary{cursor:pointer}.quiz-explanation-head{display:flex;align-items:flex-start;justify-content:space-between;gap:.6rem;margin-bottom:.5rem}.quiz-explanation-meta{display:flex;gap:.3rem;flex-wrap:wrap}.quiz-meta-chip{display:inline-flex;align-items:center;padding:.15rem .5rem;border-radius:999px;font-size:.7rem;font-weight:500;background:var(--color-surface-2);color:var(--color-text-muted)}.quiz-meta-chip.cog-recall{background:#dbeafe;color:#1e40af}.quiz-meta-chip.cog-understand{background:#d1fae5;color:#065f46}.quiz-meta-chip.cog-apply{background:#fef3c7;color:#92400e}.quiz-meta-chip.cog-analyze{background:#fed7aa;color:#9a3412}.quiz-meta-chip.cog-evaluate{background:#fecaca;color:#991b1b}.quiz-meta-chip.diff-easy{background:#d1fae5;color:#065f46}.quiz-meta-chip.diff-medium{background:#fef3c7;color:#92400e}.quiz-meta-chip.diff-hard{background:#fee2e2;color:#991b1b}.course-stale-banner{margin:.75rem 1.25rem 0;padding:.75rem 1rem;border-radius:var(--radius);background:#f59e0b1a;color:#92400e;border:1px solid rgba(245,158,11,.35);display:flex;align-items:center;gap:.6rem;font-size:.9rem;box-shadow:var(--shadow-sm)}.home-draft-li{position:relative}.home-draft-actions{position:absolute;top:.55rem;right:.6rem;display:inline-flex;align-items:center;gap:.25rem;z-index:2;opacity:0;transition:opacity .15s}.home-draft-li:hover .home-draft-actions,.home-draft-li:focus-within .home-draft-actions{opacity:1}.home-draft-action-btn{display:inline-flex;align-items:center;justify-content:center;width:26px;height:26px;padding:0;background:var(--color-surface);border:1px solid var(--color-border);border-radius:6px;color:var(--color-text-muted);cursor:pointer;transition:all .12s;box-shadow:var(--shadow-sm)}.home-draft-action-btn:hover{color:var(--color-primary);border-color:var(--color-primary)}.home-draft-action-btn-danger:hover{color:var(--color-accent);border-color:var(--color-accent);background:#c1272d0d}.editable-field-wrap{position:relative}.editable-field-aside{position:absolute;top:.2rem;right:.2rem;display:inline-flex;align-items:center;gap:.3rem;z-index:2}.flag-button-wrap{position:relative;display:inline-block}.flag-button{display:inline-flex;align-items:center;justify-content:center;width:22px;height:22px;padding:0;background:transparent;border:1px solid transparent;border-radius:4px;color:var(--color-text-muted);cursor:pointer;opacity:.35;transition:all .12s}.flag-button:hover{opacity:1;background:var(--color-surface-2);color:var(--color-action);border-color:var(--color-border)}.flag-button.is-active{opacity:1;color:var(--color-action);background:var(--color-action-soft);border-color:var(--color-action)}.flag-popover{position:absolute;top:calc(100% + 4px);right:0;width:280px;background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius);box-shadow:var(--shadow-md);padding:.65rem .8rem;z-index:50;font-size:.85rem}.flag-popover-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:.4rem;border-bottom:1px solid var(--color-border);padding-bottom:.3rem}.flag-popover-title{font-weight:600;color:var(--color-primary);font-size:.85rem}.flag-popover-close{background:transparent;border:none;padding:2px;cursor:pointer;color:var(--color-text-muted);display:inline-flex;align-items:center}.flag-popover-close:hover{color:var(--color-text)}.flag-popover-row{display:flex;align-items:center;justify-content:space-between;padding:.35rem 0;gap:.5rem}.flag-popover-toggle{cursor:pointer;font-size:.82rem;display:flex;align-items:center;gap:.4rem;justify-content:flex-start}.flag-popover-label{font-size:.78rem;color:var(--color-text-muted)}.flag-popover-stars{display:inline-flex;gap:.15rem}.flag-star{background:transparent;border:none;padding:2px;cursor:pointer;color:var(--color-text-muted);display:inline-flex;align-items:center;transition:color .1s}.flag-star:hover,.flag-star.is-filled{color:var(--color-action)}.flag-popover-note{width:100%;padding:.4rem .5rem;border:1px solid var(--color-border);border-radius:4px;font-family:var(--font-sans);font-size:.8rem;resize:vertical;margin-top:.3rem}.flag-popover-actions{display:flex;justify-content:flex-end;margin-top:.5rem}.flag-popover-actions .btn-primary{font-size:.78rem;padding:.25rem .6rem;display:inline-flex;align-items:center;gap:.25rem}.operator-dashboard{max-width:1080px;margin:0 auto;padding:1.6rem 1.2rem 4rem;font-size:.88rem;line-height:1.5}.operator-header{display:flex;justify-content:space-between;align-items:flex-start;border-bottom:1px solid var(--color-border);padding-bottom:.9rem;margin-bottom:1.4rem}.operator-header h1{margin:0 0 .25rem;font-size:1.4rem}.operator-subtitle{margin:0;color:var(--color-muted);font-size:.78rem}.operator-home-link{font-size:.78rem;color:var(--color-muted);text-decoration:none;padding:.3rem .6rem;border:1px solid var(--color-border);border-radius:4px}.operator-home-link:hover{background:var(--color-soft)}.operator-summary{display:grid;grid-template-columns:repeat(4,1fr);gap:.8rem;margin-bottom:1.6rem}.operator-stat{display:flex;flex-direction:column;gap:.15rem;padding:.7rem .9rem;border:1px solid var(--color-border);border-radius:6px;background:var(--color-soft)}.operator-stat-value{font-size:1.5rem;font-weight:600;color:var(--color-primary)}.operator-stat-label{font-size:.72rem;color:var(--color-muted);text-transform:uppercase;letter-spacing:.04em}.operator-by-course{margin-bottom:1.6rem}.operator-by-course h2,.operator-items h2{font-size:.95rem;margin:0 0 .5rem;border-bottom:1px solid var(--color-border);padding-bottom:.3rem}.operator-table{width:100%;border-collapse:collapse;font-size:.82rem}.operator-table th,.operator-table td{padding:.4rem .6rem;text-align:left;border-bottom:1px solid var(--color-border)}.operator-table th{color:var(--color-muted);font-weight:600;font-size:.72rem;text-transform:uppercase}.operator-table code{font-size:.78rem;background:var(--color-soft);padding:.05rem .25rem;border-radius:3px}.operator-empty{color:var(--color-muted);font-size:.82rem;padding:.5rem 0}.operator-expand-btn{font-size:.72rem;padding:.15rem .5rem;border:1px solid var(--color-border);border-radius:3px;background:#fff;cursor:pointer}.operator-expanded-row td{background:var(--color-soft)}.operator-note{margin-bottom:.5rem;font-size:.82rem}.operator-preview{margin:0;padding:.6rem;max-height:14rem;overflow:auto;background:#fff;border:1px solid var(--color-border);border-radius:4px;font-size:.78rem;white-space:pre-wrap;word-break:break-word}.toast-viewport{position:fixed;right:1rem;bottom:1rem;z-index:9999;display:flex;flex-direction:column;gap:.5rem;max-width:min(420px,90vw);pointer-events:none}.toast{pointer-events:auto;display:flex;align-items:center;gap:.5rem;padding:.65rem .85rem;background:#fff;border:1px solid var(--color-border);border-left-width:3px;border-radius:5px;box-shadow:0 4px 12px #00000014;font-size:.86rem;animation:toastIn .18s ease-out}@keyframes toastIn{0%{transform:translate(20px);opacity:0}to{transform:translate(0);opacity:1}}.toast-success{border-left-color:#15803d}.toast-success .toast-icon{color:#15803d}.toast-info{border-left-color:var(--color-primary)}.toast-info .toast-icon{color:var(--color-primary)}.toast-warn{border-left-color:#d97706}.toast-warn .toast-icon{color:#d97706}.toast-error{border-left-color:var(--color-accent)}.toast-error .toast-icon{color:var(--color-accent)}.toast-icon{flex:0 0 auto}.toast-msg{flex:1 1 auto;line-height:1.4;word-break:break-word}.toast-action-btn{flex:0 0 auto;font-size:.78rem;background:transparent;border:1px solid var(--color-border);border-radius:3px;padding:.2rem .5rem;cursor:pointer}.toast-action-btn:hover{background:var(--color-soft)}.toast-close{flex:0 0 auto;background:transparent;border:0;cursor:pointer;color:var(--color-muted);padding:.15rem;border-radius:3px;display:inline-flex;align-items:center;justify-content:center}.toast-close:hover{background:var(--color-soft);color:var(--color-primary)}@media(max-width:600px){.toast-viewport{left:1rem;right:1rem;max-width:none}}.error-boundary-page{min-height:100vh;display:flex;align-items:center;justify-content:center;padding:2rem 1rem;background:var(--color-soft)}.error-boundary-card{max-width:540px;width:100%;padding:2rem 1.6rem;background:#fff;border:1px solid var(--color-border);border-radius:8px;box-shadow:0 8px 24px #0000000f;text-align:center}.error-boundary-icon{color:var(--color-accent);margin-bottom:.6rem}.error-boundary-title{margin:0 0 .4rem;font-size:1.4rem}.error-boundary-summary{margin:0 0 1rem;color:var(--color-muted);font-size:.92rem}.error-boundary-detail{margin:0 0 1rem;padding:.6rem .8rem;background:var(--color-soft);border-radius:4px;font-family:var(--font-mono, monospace);font-size:.82rem;word-break:break-word;text-align:left}.error-boundary-stack{margin-bottom:1rem;text-align:left}.error-boundary-stack summary{cursor:pointer;font-size:.78rem;color:var(--color-muted)}.error-boundary-stack pre{margin:.4rem 0 0;padding:.6rem;background:var(--color-soft);border-radius:4px;font-size:.72rem;max-height:14rem;overflow:auto}.error-boundary-actions{display:flex;flex-wrap:wrap;gap:.5rem;justify-content:center}.error-boundary-section{display:flex;align-items:center;gap:.5rem;padding:.5rem .75rem;margin:.5rem 0;border:1px dashed var(--color-accent);border-radius:4px;background:#c1272d0a;color:var(--color-accent);font-size:.82rem}.error-boundary-section-btn{margin-left:auto;font-size:.78rem;background:#fff;border:1px solid var(--color-accent);color:var(--color-accent);border-radius:3px;padding:.15rem .5rem;cursor:pointer}.error-boundary-section-btn:hover{background:var(--color-accent);color:#fff}.loading-skeleton{position:relative;display:flex;flex-direction:column;align-items:center;justify-content:center;background:var(--color-soft);border-radius:4px;overflow:hidden}.loading-skeleton-page{min-height:60vh;padding:3rem 1rem}.loading-skeleton-section{min-height:8rem;padding:1rem}.loading-skeleton-inline{min-height:1.4rem;padding:.3rem}.loading-skeleton-shimmer{position:absolute;inset:0;background:linear-gradient(90deg,transparent 0%,rgba(255,255,255,.6) 50%,transparent 100%);background-size:200% 100%;animation:shimmer 1.4s infinite}@keyframes shimmer{0%{background-position:200% 0}to{background-position:-200% 0}}.loading-skeleton-text{position:relative;font-size:.86rem;color:var(--color-muted);margin-top:.4rem}.repair-overlay{position:fixed;inset:0;z-index:200;background:#00000073;display:flex;align-items:center;justify-content:center;padding:1rem;animation:repairOverlayIn .15s ease-out}@keyframes repairOverlayIn{0%{opacity:0}to{opacity:1}}.repair-dialog{background:#fff;border-radius:8px;max-width:min(900px,95vw);width:100%;max-height:90vh;display:flex;flex-direction:column;box-shadow:0 16px 48px #00000040;overflow:hidden}.repair-dialog-head{display:flex;align-items:center;gap:.5rem;padding:.8rem 1rem;border-bottom:1px solid var(--color-border);background:var(--color-soft)}.repair-dialog-head h2{margin:0;font-size:1rem;flex:1}.repair-dialog-close{background:transparent;border:0;cursor:pointer;color:var(--color-muted);padding:.2rem;border-radius:3px;display:inline-flex;align-items:center;justify-content:center}.repair-dialog-close:hover{background:var(--color-border);color:var(--color-primary)}.repair-dialog-budget{display:flex;gap:.5rem;flex-wrap:wrap;padding:.5rem 1rem;font-size:.74rem;color:var(--color-muted);border-bottom:1px solid var(--color-border);background:#ffffff80}.repair-dialog-budget code{background:var(--color-soft);padding:.05rem .3rem;border-radius:3px}.repair-dialog-body{padding:1rem;overflow-y:auto;display:flex;flex-direction:column;gap:.8rem}.repair-dialog-help{margin:0;color:var(--color-muted);font-size:.85rem}.repair-dialog-note{width:100%;min-height:6rem;padding:.6rem;border:1px solid var(--color-border);border-radius:4px;font:inherit;resize:vertical;box-sizing:border-box}.repair-dialog-actions{display:flex;gap:.5rem;justify-content:flex-end}.repair-dialog-actions .btn-primary,.repair-dialog-actions .btn-secondary{display:inline-flex;align-items:center;gap:.3rem}.repair-dialog-blocked,.repair-dialog-error,.repair-dialog-running{align-items:center;text-align:center;padding:2rem 1rem}.repair-dialog-spinner{width:32px;height:32px;border:3px solid var(--color-border);border-top-color:var(--color-primary);border-radius:50%;animation:repairSpin .8s linear infinite}@keyframes repairSpin{to{transform:rotate(360deg)}}.repair-dialog-meta{display:flex;gap:.5rem;flex-wrap:wrap;font-size:.72rem;color:var(--color-muted);padding:.4rem .6rem;background:var(--color-soft);border-radius:4px}.repair-dialog-meta code{font-size:.72rem}.repair-dialog-schema-warn{display:flex;align-items:center;gap:.4rem;padding:.5rem .7rem;border:1px solid var(--color-accent);background:#c1272d0f;color:var(--color-accent);border-radius:4px;font-size:.82rem}.repair-dialog-diff{display:grid;grid-template-columns:1fr 1fr;gap:.6rem;min-height:0}.repair-dialog-diff-col{display:flex;flex-direction:column;min-width:0}.repair-dialog-diff-col h3{margin:0 0 .3rem;font-size:.78rem;color:var(--color-muted);text-transform:uppercase;letter-spacing:.04em}.repair-dialog-diff-col pre{margin:0;padding:.7rem;background:var(--color-soft);border:1px solid var(--color-border);border-radius:4px;font-size:.74rem;max-height:24rem;overflow:auto;white-space:pre-wrap;word-break:break-word}@media(max-width:720px){.repair-dialog-diff{grid-template-columns:1fr}}.editable-text-savestatus{display:inline-flex;align-items:center;font-size:.72rem;padding:.15rem .4rem;border-radius:3px;margin-left:auto;transition:opacity .2s}.editable-text-savestatus.is-pending,.editable-text-savestatus.is-saving{color:var(--color-muted)}.editable-text-savestatus.is-saved{color:#15803d}.editable-text-savestatus.is-error{color:var(--color-accent);font-weight:600}.quiz-options-editor{margin-top:.8rem;padding:.5rem .7rem;border:1px dashed var(--color-border);border-radius:4px;font-size:.85rem}.quiz-options-editor>summary{cursor:pointer;font-size:.78rem;color:var(--color-muted);user-select:none}.quiz-options-editor>summary:hover{color:var(--color-primary)}.quiz-options-editor-list{margin:.6rem 0 0;padding:0;list-style:none;display:flex;flex-direction:column;gap:.5rem}.quiz-options-editor-list>li{display:flex;gap:.5rem;align-items:flex-start}.quiz-options-editor-list>li>.quiz-option-key{flex:0 0 auto;padding-top:.2rem;font-weight:600;color:var(--color-muted)}.quiz-options-editor-list>li>.editable-field-wrap{flex:1 1 auto;min-width:0}.quiz-options-editor-question-flag{margin-top:.4rem;padding-top:.4rem;border-top:1px dashed var(--color-border);align-items:center!important}.operator-tabs{display:flex;gap:.4rem;margin-bottom:1.2rem;border-bottom:1px solid var(--color-border)}.operator-tab{background:transparent;border:0;padding:.5rem .9rem;font-size:.86rem;cursor:pointer;color:var(--color-muted);border-bottom:2px solid transparent}.operator-tab.is-active{color:var(--color-primary);font-weight:600;border-bottom-color:var(--color-primary)}.operator-tab:hover{color:var(--color-primary)}.operator-events-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:.8rem}.operator-events-filters label{display:inline-flex;align-items:center;gap:.4rem;font-size:.78rem;color:var(--color-muted)}.operator-events-filters select{font-size:.82rem;padding:.25rem .4rem;border:1px solid var(--color-border);border-radius:3px;background:#fff}.operator-events-actions{display:inline-flex;gap:.4rem}.operator-event-btn{font-size:.78rem;padding:.3rem .7rem;border:1px solid var(--color-border);border-radius:3px;background:#fff;cursor:pointer}.operator-event-btn:hover{background:var(--color-soft)}.operator-event-btn-danger{color:var(--color-accent);border-color:var(--color-accent)}.operator-event-list{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:.4rem}.operator-event{padding:.5rem .7rem;border:1px solid var(--color-border);border-radius:4px;background:#fff;font-size:.82rem}.operator-event.operator-event-runtime-error,.operator-event.operator-event-unhandled-rejection,.operator-event.operator-event-render-error{border-left:3px solid var(--color-accent)}.operator-event.operator-event-flag{border-left:3px solid #d97706}.operator-event-row{display:flex;gap:.5rem;flex-wrap:wrap;align-items:center;margin-bottom:.3rem}.operator-event-type{font-size:.7rem;font-weight:600;padding:.1rem .35rem;border-radius:3px;background:var(--color-soft);color:var(--color-primary);text-transform:uppercase;letter-spacing:.04em}.op-ev-runtime-error,.op-ev-unhandled-rejection,.op-ev-render-error{background:#c1272d1a;color:var(--color-accent)}.op-ev-flag{background:#d977061f;color:#92400e}.op-ev-rating,.op-ev-note{background:#1e3a5f14}.operator-event-time,.operator-event-course,.operator-event-item,.operator-event-path{font-size:.72rem;color:var(--color-muted)}.operator-event-item code{background:var(--color-soft);padding:.05rem .25rem;border-radius:3px}.operator-event-summary{word-break:break-word}.operator-event-payload{margin-top:.4rem}.operator-event-payload summary{cursor:pointer;font-size:.72rem;color:var(--color-muted)}.operator-event-payload pre{margin:.3rem 0 0;padding:.5rem;background:var(--color-soft);border-radius:3px;font-size:.72rem;max-height:16rem;overflow:auto}.home-operator-link{display:inline-block;margin-top:.6rem;font-size:.7rem;color:var(--color-muted);text-decoration:none;opacity:.7;border:1px dashed var(--color-border);padding:.15rem .5rem;border-radius:3px}.home-operator-link:hover{opacity:1;color:var(--color-primary)}.drill-view{max-width:720px;margin:0 auto;padding:2rem 1.5rem;display:flex;flex-direction:column;gap:1.5rem}.drill-header h1{font-size:1.5rem;font-weight:600;margin:0 0 .25rem}.drill-subtitle{color:var(--color-text-muted);margin:0;font-size:.92rem}.drill-section{display:flex;flex-direction:column;gap:.6rem}.drill-section-title{font-size:.78rem;font-weight:600;letter-spacing:.05em;text-transform:uppercase;color:var(--color-text-muted);margin:0}.drill-kind-grid{display:grid;gap:.6rem;grid-template-columns:repeat(auto-fit,minmax(140px,1fr))}.drill-kind-card{display:flex;flex-direction:column;align-items:flex-start;gap:.25rem;padding:.75rem .85rem;border:1px solid var(--color-border);border-radius:8px;background:var(--color-surface);cursor:pointer;text-align:left;transition:border-color .12s,background .12s}.drill-kind-card:hover{border-color:var(--color-primary)}.drill-kind-card.is-selected{border-color:var(--color-primary);background:var(--color-primary-soft, #e7eef7)}.drill-kind-icon{color:var(--color-primary)}.drill-kind-label{font-weight:600;font-size:.95rem}.drill-kind-count{font-size:.78rem;color:var(--color-text-muted)}.drill-scope-select{padding:.5rem .75rem;border-radius:6px;border:1px solid var(--color-border);background:var(--color-surface);font-size:.95rem;max-width:360px}.drill-actions{display:flex;justify-content:flex-end}.drill-start{font-size:1rem;padding:.6rem 1.4rem}
