@font-face{font-display:block;font-family:KaTeX_AMS;font-style:normal;font-weight:400;src:url(/assets/KaTeX_AMS-Regular-BQhdFMY1.woff2) format("woff2"),url(/assets/KaTeX_AMS-Regular-DMm9YOAa.woff) format("woff"),url(/assets/KaTeX_AMS-Regular-DRggAlZN.ttf) format("truetype")}@font-face{font-display:block;font-family:KaTeX_Caligraphic;font-style:normal;font-weight:700;src:url(/assets/KaTeX_Caligraphic-Bold-Dq_IR9rO.woff2) format("woff2"),url(/assets/KaTeX_Caligraphic-Bold-BEiXGLvX.woff) format("woff"),url(/assets/KaTeX_Caligraphic-Bold-ATXxdsX0.ttf) format("truetype")}@font-face{font-display:block;font-family:KaTeX_Caligraphic;font-style:normal;font-weight:400;src:url(/assets/KaTeX_Caligraphic-Regular-Di6jR-x-.woff2) format("woff2"),url(/assets/KaTeX_Caligraphic-Regular-CTRA-rTL.woff) format("woff"),url(/assets/KaTeX_Caligraphic-Regular-wX97UBjC.ttf) format("truetype")}@font-face{font-display:block;font-family:KaTeX_Fraktur;font-style:normal;font-weight:700;src:url(/assets/KaTeX_Fraktur-Bold-CL6g_b3V.woff2) format("woff2"),url(/assets/KaTeX_Fraktur-Bold-BsDP51OF.woff) format("woff"),url(/assets/KaTeX_Fraktur-Bold-BdnERNNW.ttf) format("truetype")}@font-face{font-display:block;font-family:KaTeX_Fraktur;font-style:normal;font-weight:400;src:url(/assets/KaTeX_Fraktur-Regular-CTYiF6lA.woff2) format("woff2"),url(/assets/KaTeX_Fraktur-Regular-Dxdc4cR9.woff) format("woff"),url(/assets/KaTeX_Fraktur-Regular-CB_wures.ttf) format("truetype")}@font-face{font-display:block;font-family:KaTeX_Main;font-style:normal;font-weight:700;src:url(/assets/KaTeX_Main-Bold-Cx986IdX.woff2) format("woff2"),url(/assets/KaTeX_Main-Bold-Jm3AIy58.woff) format("woff"),url(/assets/KaTeX_Main-Bold-waoOVXN0.ttf) format("truetype")}@font-face{font-display:block;font-family:KaTeX_Main;font-style:italic;font-weight:700;src:url(/assets/KaTeX_Main-BoldItalic-DxDJ3AOS.woff2) format("woff2"),url(/assets/KaTeX_Main-BoldItalic-SpSLRI95.woff) format("woff"),url(/assets/KaTeX_Main-BoldItalic-DzxPMmG6.ttf) format("truetype")}@font-face{font-display:block;font-family:KaTeX_Main;font-style:italic;font-weight:400;src:url(/assets/KaTeX_Main-Italic-NWA7e6Wa.woff2) format("woff2"),url(/assets/KaTeX_Main-Italic-BMLOBm91.woff) format("woff"),url(/assets/KaTeX_Main-Italic-3WenGoN9.ttf) format("truetype")}@font-face{font-display:block;font-family:KaTeX_Main;font-style:normal;font-weight:400;src:url(/assets/KaTeX_Main-Regular-B22Nviop.woff2) format("woff2"),url(/assets/KaTeX_Main-Regular-Dr94JaBh.woff) format("woff"),url(/assets/KaTeX_Main-Regular-ypZvNtVU.ttf) format("truetype")}@font-face{font-display:block;font-family:KaTeX_Math;font-style:italic;font-weight:700;src:url(/assets/KaTeX_Math-BoldItalic-CZnvNsCZ.woff2) format("woff2"),url(/assets/KaTeX_Math-BoldItalic-iY-2wyZ7.woff) format("woff"),url(/assets/KaTeX_Math-BoldItalic-B3XSjfu4.ttf) format("truetype")}@font-face{font-display:block;font-family:KaTeX_Math;font-style:italic;font-weight:400;src:url(/assets/KaTeX_Math-Italic-t53AETM-.woff2) format("woff2"),url(/assets/KaTeX_Math-Italic-DA0__PXp.woff) format("woff"),url(/assets/KaTeX_Math-Italic-flOr_0UB.ttf) format("truetype")}@font-face{font-display:block;font-family:KaTeX_SansSerif;font-style:normal;font-weight:700;src:url(/assets/KaTeX_SansSerif-Bold-D1sUS0GD.woff2) format("woff2"),url(/assets/KaTeX_SansSerif-Bold-DbIhKOiC.woff) format("woff"),url(/assets/KaTeX_SansSerif-Bold-CFMepnvq.ttf) format("truetype")}@font-face{font-display:block;font-family:KaTeX_SansSerif;font-style:italic;font-weight:400;src:url(/assets/KaTeX_SansSerif-Italic-C3H0VqGB.woff2) format("woff2"),url(/assets/KaTeX_SansSerif-Italic-DN2j7dab.woff) format("woff"),url(/assets/KaTeX_SansSerif-Italic-YYjJ1zSn.ttf) format("truetype")}@font-face{font-display:block;font-family:KaTeX_SansSerif;font-style:normal;font-weight:400;src:url(/assets/KaTeX_SansSerif-Regular-DDBCnlJ7.woff2) format("woff2"),url(/assets/KaTeX_SansSerif-Regular-CS6fqUqJ.woff) format("woff"),url(/assets/KaTeX_SansSerif-Regular-BNo7hRIc.ttf) format("truetype")}@font-face{font-display:block;font-family:KaTeX_Script;font-style:normal;font-weight:400;src:url(/assets/KaTeX_Script-Regular-D3wIWfF6.woff2) format("woff2"),url(/assets/KaTeX_Script-Regular-D5yQViql.woff) format("woff"),url(/assets/KaTeX_Script-Regular-C5JkGWo-.ttf) format("truetype")}@font-face{font-display:block;font-family:KaTeX_Size1;font-style:normal;font-weight:400;src:url(/assets/KaTeX_Size1-Regular-mCD8mA8B.woff2) format("woff2"),url(/assets/KaTeX_Size1-Regular-C195tn64.woff) format("woff"),url(/assets/KaTeX_Size1-Regular-Dbsnue_I.ttf) format("truetype")}@font-face{font-display:block;font-family:KaTeX_Size2;font-style:normal;font-weight:400;src:url(/assets/KaTeX_Size2-Regular-Dy4dx90m.woff2) format("woff2"),url(/assets/KaTeX_Size2-Regular-oD1tc_U0.woff) format("woff"),url(/assets/KaTeX_Size2-Regular-B7gKUWhC.ttf) format("truetype")}@font-face{font-display:block;font-family:KaTeX_Size3;font-style:normal;font-weight:400;src:url(data:font/woff2;base64,d09GMgABAAAAAA4oAA4AAAAAHbQAAA3TAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAABmAAgRQIDgmcDBEICo1oijYBNgIkA14LMgAEIAWJAAeBHAyBHBvbGiMRdnO0IkRRkiYDgr9KsJ1NUAf2kILNxgUmgqIgq1P89vcbIcmsQbRps3vCcXdYOKSWEPEKgZgQkprQQsxIXUgq0DqpGKmIvrgkeVGtEQD9DzAO29fM9jYhxZEsL2FeURH2JN4MIcTdO049NCVdxQ/w9NrSYFEBKTDKpLKfNkCGDc1RwjZLQcm3vqJ2UW9Xfa3tgAHz6ivp6vgC2yD4/6352ndnN0X0TL7seypkjZlMsjmZnf0Mm5Q+JykRWQBKCVCVPbARPXWyQtb5VgLB6Biq7/Uixcj2WGqdI8tGSgkuRG+t910GKP2D7AQH0DB9FMDW/obJZ8giFI3Wg8Cvevz0M+5m0rTh7XDBlvo9Y4vm13EXmfttwI4mBo1EG15fxJhUiCLbiiyCf/ZA6MFAhg3pGIZGdGIVjtPn6UcMk9A/UUr9PhoNsCENw1APAq0gpH73e+M+0ueyHbabc3vkbcdtzcf/fiy+NxQEjf9ud/ELBHAXJ0nk4z+MXH2Ev/kWyV4k7SkvpPc9Qr38F6RPWnM9cN6DJ0AdD1BhtgABtmoRoFCvPsBAumNm6soZG2Gk5GyVTo2sJncSyp0jQTYoR6WDvTwaaEcHsxHfvuWhHA3a6bN7twRKtcGok6NsCi7jYRrM2jExsUFMxMQYuJbMhuWNOumEJy9hi29Dmg5zMp/A5+hhPG19j1vBrq8JTLr8ki5VLPmG/PynJHVul440bxg5xuymHUFPBshC+nA9I1FmwbRBTNHAcik3Oae0cxKoI3MOriM42UrPe51nsaGxJ+WfXubAsP84aabUlQSJ1IiE0iPETLUU4CATgfXSCSpuRFRmCGbO+wSpAnzaeaCYW1VNEysRtuXCEL1kUFUbbtMv3Tilt/1c11jt3Q5bbMa84cpWipp8Elw3MZhOHsOlwwVUQM3lAR35JiFQbaYCRnMF2lxAWoOg2gyoIV4PouX8HytNIfLhqpJtXB4vjiViUI8IJ7bkC4ikkQvKksnOTKICwnqWSZ9YS5f0WCxmpgjbIq7EJcM4aI2nmhLNY2JIUgOjXZFWBHb+x5oh6cwb0Tv1ackHdKi0I9OO2wE9aogIOn540CCCziyhN+IaejtgAONKznHlHyutPrHGwCx9S6B8kfS4Mfi4Eyv7OU730bT1SCBjt834cXsf43zVjPUqqJjgrjeGnBxSG4aYAKFuVbeCfkDIjAqMb6yLNIbCuvXhMH2/+k2vkNpkORhR59N1CkzoOENvneIosjYmuTxlhUzaGEJQ/iWqx4dmwpmKjrwTiTGTCVozNAYqk/zXOndWxuWSmJkQpJw3pK5KX6QrLt5LATMqpmPAQhkhK6PUjzHUn7E0gHE0kPE0iKkolgkUx9SZmVAdDgpffdyJKg3k7VmzYGCwVXGz/tXmkOIp+vcWs+EMuhhvN0h9uhfzWJziBQmCREGSIFmQIkgVpAnSBRmC//6hkLZwaVhwxlrJSOdqlFtOYxlau9F2QN5Y98xmIAsiM1HVp2VFX+DHHGg6Ecjh3vmqtidX3qHI2qycTk/iwxSt5UzTmEP92ZBnEWTk4Mx8Mpl78ZDokxg/KWb+Q0QkvdKVmq3TMW+RXEgrsziSAfNXFMhDc60N5N9jQzjfO0kBKpUZl0ZmwJ41j/B9Hz6wmRaJB84niNmQrzp9eSlQCDDzazGDdVi3P36VZQ+Jy4f9UBNp+3zTjqI4abaFAm+GShVaXlsGdF3FYzZcDI6cori4kMxUECl9IjJZpzkvitAoxKue+90pDMvcKRxLl53TmOKCmV/xRolNKSqqUxc6LStOETmFOiLZZptlZepcKiAzteG8PEdpnQpbOMNcMsR4RR2Bs0cKFEvSmIjAFcnarqwUL4lDhHmnVkwu1IwshbiCcgvOheZuYyOteufZZwlcTlLgnZ3o/WcYdzZHW/WGaqaVfmTZ1aWCceJjkbZqsfbkOtcFlUZM/jy+hXHDbaUobWqqXaeWobbLO99yG5N3U4wxco0rQGGcOLASFMXeJoham8M+/x6O2WywK2l4HGbq1CoUyC/IZikQhdq3SiuNrvAEj0AVu9x2x3lp/xWzahaxidezFVtdcb5uEnzyl0ZmYiuKI0exvCd4Xc9CV1KB0db00z92wDPde0kukbvZIWN6jUWFTmPIC/Y4UPCm8UfDTFZpZNon1qLFTkBhxzB+FjQRA2Q/YRJT8pQigslMaUpFyAG8TMlXigiqmAZX4xgijKjRlGpLE0GdplRfCaJo0JQaSxNBk6ZmMzcya0FmrcisDdn0Q3HI2sWSppYigmlM1XT/kLQZSNpMJG0WkjYbSZuDpM1F0uYhFc1HxU4m1QJjDK6iL0S5uSj5rgXc3RejEigtcRBtqYPQsiTskmO5vosV+q4VGIKbOkDg0jtRrq+Em1YloaTFar3EGr1EUC8R0kus1Uus00usL97ABr2BjXoDm/QGNhuWtMVBKOwg/i78lT7hBsAvDmwHc/ao3vmUbBmhjeYySZNWvGkfZAgISDSaDo1SVpzGDsAEkF8B+gEapViUoZgUWXcRIGFZNm6gWbAKk0bp0k1MHG9fLYtV4iS2SmLEQFARzRcnf9PUS0LVn05/J9MiRRBU3v2IrvW974v4N00L7ZMk0wXP1409CHo/an8zTRHD3eSJ6m8D4YMkZNl3M79sqeuAsr/m3f+8/yl7A50aiAEJgeBeMWzu7ui9UfUBCe2TIqZIoOd/3/udRBOQidQZUERzb2/VwZN1H/Sju82ew2H2Wfr6qvfVf3hqwDvAIpkQVFy4B9Pe9e4/XvPeceu7h3dvO56iJPf0+A6cqA2ip18ER+iFgggiuOkvj24bby0N9j2UHIkgqIt+sVgfodC4YghLSMjSZbH0VR/6dMDrYJeKHilKTemt6v6kvzvn3/RrdWtr0GoN/xL+Sex/cPYLUpepx9cz/D46UPU5KXgAQa+NDps1v6J3xP1i2HtaDB0M9aX2deA7SYff//+gUCovMmIK/qfsFcOk+4Y5ZN97XlG6zebqtMbKgeRFi51vnxTQYBUik2rS/Cn6PC8ADR8FGxsRPB82dzfND90gIcshOcYUkfjherBz53odpm6TP8txlwOZ71xmfHHOvq053qFF/MRlS3jP0ELudrf2OeN8DHvp6ZceLe8qKYvWz/7yp0u4dKPfli3CYq0O13Ih71mylJ80tOi10On8wi+F4+LWgDPeJ30msSQt9/vkmHq9/Lvo2b461mP801v3W4xTcs6CbvF9UDdrSt+A8OUbpSh55qAUFXWznBBfdeJ8a4d7ugT5tvxUza3h9m4H7ptTqiG4z0g5dc0X29OcGlhpGFMpQo9ytTS+NViZpNdvU4kWx+LKxNY10kQ1yqGXrhe4/1nvP7E+nd5A92TtaRplbHSqoIdOqtRWti+fkB5/n1+/VvCmz12pG1kpQWsfi1ftlBobm0bpngs16CHkbIwdLnParxtTV3QYRlfJ0KFskH7pdN/YDn+yRuSd7sNH3aO0DYPggk6uWuXrfOc+fa3VTxFVvKaNxHsiHmsXyCLIE5yuOeN3/Jdf8HBL/5M6shjyhxHx9BjB1O0+4NLOnjLLSxwO7ukN4jMbOIcD879KLSi6Pk61Oqm2377n8079PXEEQ7cy7OKEC9nbpet118fxweTafpt69x/Bt8UqGzNQt7aelpc44dn5cqhwf71+qKp/Zf/+a0zcizOUWpl/iBcSXip0pplkatCchoH5c5aUM8I7/dWxAej8WicPL1URFZ9BDJelUwEwTkGqUhgSlydVes95YdXvhh9Gfz/aeFWvgVb4tuLbcv4+wLdutVZv/cUonwBD/6eDlE0aSiKK/uoH3+J1wDE/jMVqY2ysGufN84oIXB0sPzy8ollX/LegY74DgJXJR57sn+VGza0x3DnuIgABFM15LmajjjsNlYj+JEZGbuRYcAMOWxFkPN2w6Wd46xo4gVWQR/X4lyI/R6K/YK0110GzudPRW7Y+UOBGTfNNzHeYT0fiH0taunBpq9HEW8OKSaBGj21L0MqenEmNRWBAWDWAk4CpNoEZJ2tTaPFgbQYj8HxtFilErs3BTRwT8uO1NXQaWfIotchmPkAF5mMBAliEmZiOGVgCG9LgRzpscMAOOwowlT3JhusdazXGSC/hxR3UlmWVwWHpOIKheqONvjyhSiTHIkVUco5bnji8m//zL7PKaT1Vl5I6UE609f+gkr6MZKVyKc7zJRmCahLsdlyA5fdQkRSan9LgnnLEyGSkaKJCJog0wAgvepWBt80+1yKln1bMVtCljfNWDueKLsWwaEbBSfSPTEmVRsUcYYMnEjcjeyCZzBXK9E9BYBXLKjOSpUDR+nEV3TFSUdQaz+ot98QxgXwx0GQ+EEUAKB2qZPkQQ0GqFD8UPFMqyaCHM24BZmSGic9EYMagKizOw9Hz50DMrDLrqqLkTAhplMictiCAx5S3BIUQdeJeLnBy2CNtMfz6cV4u8XKoFZQesbf9YZiIERiHjaNodDW6LgcirX/mPnJIkBGDUpTBhSa0EIr38D5hCIszhCM8URGBqImoWjpvpt1ebu/v3Gl3qJfMnNM+9V+kiRFyROTPHQWOcs1dNW94/ukKMPZBvDi55i5CttdeJz84DLngLqjcdwEZ87bFFR8CIG35OAkDVN6VRDZ7aq67NteYqZ2lpT8oYB2CytoBd6VuAx4WgiAsnuj3WohG+LugzXiQRDeM3XYXlULv4dp5VFYC) format("woff2"),url(/assets/KaTeX_Size3-Regular-CTq5MqoE.woff) format("woff"),url(/assets/KaTeX_Size3-Regular-DgpXs0kz.ttf) format("truetype")}@font-face{font-display:block;font-family:KaTeX_Size4;font-style:normal;font-weight:400;src:url(/assets/KaTeX_Size4-Regular-Dl5lxZxV.woff2) format("woff2"),url(/assets/KaTeX_Size4-Regular-BF-4gkZK.woff) format("woff"),url(/assets/KaTeX_Size4-Regular-DWFBv043.ttf) format("truetype")}@font-face{font-display:block;font-family:KaTeX_Typewriter;font-style:normal;font-weight:400;src:url(/assets/KaTeX_Typewriter-Regular-CO6r4hn1.woff2) format("woff2"),url(/assets/KaTeX_Typewriter-Regular-C0xS9mPB.woff) format("woff"),url(/assets/KaTeX_Typewriter-Regular-D3Ib7_Hf.ttf) format("truetype")}.katex{font: 1.21em KaTeX_Main,Times New Roman,serif;line-height:1.2;position:relative;text-indent:0;text-rendering:auto}.katex *{-ms-high-contrast-adjust:none!important;border-color:currentColor}.katex .katex-version:after{content:"0.17.0"}.katex .katex-mathml{border:0;-webkit-clip-path:inset(50%);clip-path:inset(50%);height:1px;overflow:hidden;padding:0;position:absolute;width:1px}.katex .katex-html>.newline{display:block}.katex .base{position:relative;white-space:nowrap;width:-webkit-min-content;width:-moz-min-content;width:min-content}.katex .base,.katex .strut{display:inline-block}.katex .textbf{font-weight:700}.katex .textit{font-style:italic}.katex .textrm{font-family:KaTeX_Main}.katex .textsf{font-family:KaTeX_SansSerif}.katex .texttt{font-family:KaTeX_Typewriter}.katex .mathnormal{font-family:KaTeX_Math;font-style:italic}.katex .mathit{font-family:KaTeX_Main;font-style:italic}.katex .mathrm{font-style:normal}.katex .mathbf{font-family:KaTeX_Main;font-weight:700}.katex .boldsymbol{font-family:KaTeX_Math;font-style:italic;font-weight:700}.katex .amsrm,.katex .mathbb,.katex .textbb{font-family:KaTeX_AMS}.katex .mathcal{font-family:KaTeX_Caligraphic}.katex .mathfrak,.katex .textfrak{font-family:KaTeX_Fraktur}.katex .mathboldfrak,.katex .textboldfrak{font-family:KaTeX_Fraktur;font-weight:700}.katex .mathtt{font-family:KaTeX_Typewriter}.katex .mathscr,.katex .textscr{font-family:KaTeX_Script}.katex .mathsf,.katex .textsf{font-family:KaTeX_SansSerif}.katex .mathboldsf,.katex .textboldsf{font-family:KaTeX_SansSerif;font-weight:700}.katex .mathitsf,.katex .mathsfit,.katex .textitsf{font-family:KaTeX_SansSerif;font-style:italic}.katex .mainrm{font-family:KaTeX_Main;font-style:normal}.katex .vlist-t{border-collapse:collapse;display:inline-table;table-layout:fixed}.katex .vlist-r{display:table-row}.katex .vlist{display:table-cell;position:relative;vertical-align:bottom}.katex .vlist>span{display:block;height:0;position:relative}.katex .vlist>span>span{display:inline-block}.katex .vlist>span>.pstrut{overflow:hidden;width:0}.katex .vlist-t2{margin-right:-2px}.katex .vlist-s{display:table-cell;font-size:1px;min-width:2px;vertical-align:bottom;width:2px}.katex .vbox{align-items:baseline;display:inline-flex;flex-direction:column}.katex .hbox{width:100%}.katex .hbox,.katex .thinbox{display:inline-flex;flex-direction:row}.katex .thinbox{max-width:0;width:0}.katex .msupsub{text-align:left}.katex .mfrac>span>span{text-align:center}.katex .mfrac .frac-line{border-bottom-style:solid;display:inline-block;width:100%}.katex .hdashline,.katex .hline,.katex .mfrac .frac-line,.katex .overline .overline-line,.katex .rule,.katex .underline .underline-line{min-height:1px}.katex .mspace{display:inline-block}.katex .smash{display:inline;line-height:0}.katex .clap,.katex .llap,.katex .rlap{position:relative;width:0}.katex .clap>.inner,.katex .llap>.inner,.katex .rlap>.inner{position:absolute}.katex .clap>.fix,.katex .llap>.fix,.katex .rlap>.fix{display:inline-block}.katex .llap>.inner{right:0}.katex .clap>.inner,.katex .rlap>.inner{left:0}.katex .clap>.inner>span{margin-left:-50%;margin-right:50%}.katex .rule{border:0 solid;display:inline-block;position:relative}.katex .hline,.katex .overline .overline-line,.katex .underline .underline-line{border-bottom-style:solid;display:inline-block;width:100%}.katex .hdashline{border-bottom-style:dashed;display:inline-block;width:100%}.katex .sqrt>.root{margin-left:.2777777778em;margin-right:-.5555555556em}.katex .fontsize-ensurer.reset-size1.size1,.katex .sizing.reset-size1.size1{font-size:1em}.katex .fontsize-ensurer.reset-size1.size2,.katex .sizing.reset-size1.size2{font-size:1.2em}.katex .fontsize-ensurer.reset-size1.size3,.katex .sizing.reset-size1.size3{font-size:1.4em}.katex .fontsize-ensurer.reset-size1.size4,.katex .sizing.reset-size1.size4{font-size:1.6em}.katex .fontsize-ensurer.reset-size1.size5,.katex .sizing.reset-size1.size5{font-size:1.8em}.katex .fontsize-ensurer.reset-size1.size6,.katex .sizing.reset-size1.size6{font-size:2em}.katex .fontsize-ensurer.reset-size1.size7,.katex .sizing.reset-size1.size7{font-size:2.4em}.katex .fontsize-ensurer.reset-size1.size8,.katex .sizing.reset-size1.size8{font-size:2.88em}.katex .fontsize-ensurer.reset-size1.size9,.katex .sizing.reset-size1.size9{font-size:3.456em}.katex .fontsize-ensurer.reset-size1.size10,.katex .sizing.reset-size1.size10{font-size:4.148em}.katex .fontsize-ensurer.reset-size1.size11,.katex .sizing.reset-size1.size11{font-size:4.976em}.katex .fontsize-ensurer.reset-size2.size1,.katex .sizing.reset-size2.size1{font-size:.8333333333em}.katex .fontsize-ensurer.reset-size2.size2,.katex .sizing.reset-size2.size2{font-size:1em}.katex .fontsize-ensurer.reset-size2.size3,.katex .sizing.reset-size2.size3{font-size:1.1666666667em}.katex .fontsize-ensurer.reset-size2.size4,.katex .sizing.reset-size2.size4{font-size:1.3333333333em}.katex .fontsize-ensurer.reset-size2.size5,.katex .sizing.reset-size2.size5{font-size:1.5em}.katex .fontsize-ensurer.reset-size2.size6,.katex .sizing.reset-size2.size6{font-size:1.6666666667em}.katex .fontsize-ensurer.reset-size2.size7,.katex .sizing.reset-size2.size7{font-size:2em}.katex .fontsize-ensurer.reset-size2.size8,.katex .sizing.reset-size2.size8{font-size:2.4em}.katex .fontsize-ensurer.reset-size2.size9,.katex .sizing.reset-size2.size9{font-size:2.88em}.katex .fontsize-ensurer.reset-size2.size10,.katex .sizing.reset-size2.size10{font-size:3.4566666667em}.katex .fontsize-ensurer.reset-size2.size11,.katex .sizing.reset-size2.size11{font-size:4.1466666667em}.katex .fontsize-ensurer.reset-size3.size1,.katex .sizing.reset-size3.size1{font-size:.7142857143em}.katex .fontsize-ensurer.reset-size3.size2,.katex .sizing.reset-size3.size2{font-size:.8571428571em}.katex .fontsize-ensurer.reset-size3.size3,.katex .sizing.reset-size3.size3{font-size:1em}.katex .fontsize-ensurer.reset-size3.size4,.katex .sizing.reset-size3.size4{font-size:1.1428571429em}.katex .fontsize-ensurer.reset-size3.size5,.katex .sizing.reset-size3.size5{font-size:1.2857142857em}.katex .fontsize-ensurer.reset-size3.size6,.katex .sizing.reset-size3.size6{font-size:1.4285714286em}.katex .fontsize-ensurer.reset-size3.size7,.katex .sizing.reset-size3.size7{font-size:1.7142857143em}.katex .fontsize-ensurer.reset-size3.size8,.katex .sizing.reset-size3.size8{font-size:2.0571428571em}.katex .fontsize-ensurer.reset-size3.size9,.katex .sizing.reset-size3.size9{font-size:2.4685714286em}.katex .fontsize-ensurer.reset-size3.size10,.katex .sizing.reset-size3.size10{font-size:2.9628571429em}.katex .fontsize-ensurer.reset-size3.size11,.katex .sizing.reset-size3.size11{font-size:3.5542857143em}.katex .fontsize-ensurer.reset-size4.size1,.katex .sizing.reset-size4.size1{font-size:.625em}.katex .fontsize-ensurer.reset-size4.size2,.katex .sizing.reset-size4.size2{font-size:.75em}.katex .fontsize-ensurer.reset-size4.size3,.katex .sizing.reset-size4.size3{font-size:.875em}.katex .fontsize-ensurer.reset-size4.size4,.katex .sizing.reset-size4.size4{font-size:1em}.katex .fontsize-ensurer.reset-size4.size5,.katex .sizing.reset-size4.size5{font-size:1.125em}.katex .fontsize-ensurer.reset-size4.size6,.katex .sizing.reset-size4.size6{font-size:1.25em}.katex .fontsize-ensurer.reset-size4.size7,.katex .sizing.reset-size4.size7{font-size:1.5em}.katex .fontsize-ensurer.reset-size4.size8,.katex .sizing.reset-size4.size8{font-size:1.8em}.katex .fontsize-ensurer.reset-size4.size9,.katex .sizing.reset-size4.size9{font-size:2.16em}.katex .fontsize-ensurer.reset-size4.size10,.katex .sizing.reset-size4.size10{font-size:2.5925em}.katex .fontsize-ensurer.reset-size4.size11,.katex .sizing.reset-size4.size11{font-size:3.11em}.katex .fontsize-ensurer.reset-size5.size1,.katex .sizing.reset-size5.size1{font-size:.5555555556em}.katex .fontsize-ensurer.reset-size5.size2,.katex .sizing.reset-size5.size2{font-size:.6666666667em}.katex .fontsize-ensurer.reset-size5.size3,.katex .sizing.reset-size5.size3{font-size:.7777777778em}.katex .fontsize-ensurer.reset-size5.size4,.katex .sizing.reset-size5.size4{font-size:.8888888889em}.katex .fontsize-ensurer.reset-size5.size5,.katex .sizing.reset-size5.size5{font-size:1em}.katex .fontsize-ensurer.reset-size5.size6,.katex .sizing.reset-size5.size6{font-size:1.1111111111em}.katex .fontsize-ensurer.reset-size5.size7,.katex .sizing.reset-size5.size7{font-size:1.3333333333em}.katex .fontsize-ensurer.reset-size5.size8,.katex .sizing.reset-size5.size8{font-size:1.6em}.katex .fontsize-ensurer.reset-size5.size9,.katex .sizing.reset-size5.size9{font-size:1.92em}.katex .fontsize-ensurer.reset-size5.size10,.katex .sizing.reset-size5.size10{font-size:2.3044444444em}.katex .fontsize-ensurer.reset-size5.size11,.katex .sizing.reset-size5.size11{font-size:2.7644444444em}.katex .fontsize-ensurer.reset-size6.size1,.katex .sizing.reset-size6.size1{font-size:.5em}.katex .fontsize-ensurer.reset-size6.size2,.katex .sizing.reset-size6.size2{font-size:.6em}.katex .fontsize-ensurer.reset-size6.size3,.katex .sizing.reset-size6.size3{font-size:.7em}.katex .fontsize-ensurer.reset-size6.size4,.katex .sizing.reset-size6.size4{font-size:.8em}.katex .fontsize-ensurer.reset-size6.size5,.katex .sizing.reset-size6.size5{font-size:.9em}.katex .fontsize-ensurer.reset-size6.size6,.katex .sizing.reset-size6.size6{font-size:1em}.katex .fontsize-ensurer.reset-size6.size7,.katex .sizing.reset-size6.size7{font-size:1.2em}.katex .fontsize-ensurer.reset-size6.size8,.katex .sizing.reset-size6.size8{font-size:1.44em}.katex .fontsize-ensurer.reset-size6.size9,.katex .sizing.reset-size6.size9{font-size:1.728em}.katex .fontsize-ensurer.reset-size6.size10,.katex .sizing.reset-size6.size10{font-size:2.074em}.katex .fontsize-ensurer.reset-size6.size11,.katex .sizing.reset-size6.size11{font-size:2.488em}.katex .fontsize-ensurer.reset-size7.size1,.katex .sizing.reset-size7.size1{font-size:.4166666667em}.katex .fontsize-ensurer.reset-size7.size2,.katex .sizing.reset-size7.size2{font-size:.5em}.katex .fontsize-ensurer.reset-size7.size3,.katex .sizing.reset-size7.size3{font-size:.5833333333em}.katex .fontsize-ensurer.reset-size7.size4,.katex .sizing.reset-size7.size4{font-size:.6666666667em}.katex .fontsize-ensurer.reset-size7.size5,.katex .sizing.reset-size7.size5{font-size:.75em}.katex .fontsize-ensurer.reset-size7.size6,.katex .sizing.reset-size7.size6{font-size:.8333333333em}.katex .fontsize-ensurer.reset-size7.size7,.katex .sizing.reset-size7.size7{font-size:1em}.katex .fontsize-ensurer.reset-size7.size8,.katex .sizing.reset-size7.size8{font-size:1.2em}.katex .fontsize-ensurer.reset-size7.size9,.katex .sizing.reset-size7.size9{font-size:1.44em}.katex .fontsize-ensurer.reset-size7.size10,.katex .sizing.reset-size7.size10{font-size:1.7283333333em}.katex .fontsize-ensurer.reset-size7.size11,.katex .sizing.reset-size7.size11{font-size:2.0733333333em}.katex .fontsize-ensurer.reset-size8.size1,.katex .sizing.reset-size8.size1{font-size:.3472222222em}.katex .fontsize-ensurer.reset-size8.size2,.katex .sizing.reset-size8.size2{font-size:.4166666667em}.katex .fontsize-ensurer.reset-size8.size3,.katex .sizing.reset-size8.size3{font-size:.4861111111em}.katex .fontsize-ensurer.reset-size8.size4,.katex .sizing.reset-size8.size4{font-size:.5555555556em}.katex .fontsize-ensurer.reset-size8.size5,.katex .sizing.reset-size8.size5{font-size:.625em}.katex .fontsize-ensurer.reset-size8.size6,.katex .sizing.reset-size8.size6{font-size:.6944444444em}.katex .fontsize-ensurer.reset-size8.size7,.katex .sizing.reset-size8.size7{font-size:.8333333333em}.katex .fontsize-ensurer.reset-size8.size8,.katex .sizing.reset-size8.size8{font-size:1em}.katex .fontsize-ensurer.reset-size8.size9,.katex .sizing.reset-size8.size9{font-size:1.2em}.katex .fontsize-ensurer.reset-size8.size10,.katex .sizing.reset-size8.size10{font-size:1.4402777778em}.katex .fontsize-ensurer.reset-size8.size11,.katex .sizing.reset-size8.size11{font-size:1.7277777778em}.katex .fontsize-ensurer.reset-size9.size1,.katex .sizing.reset-size9.size1{font-size:.2893518519em}.katex .fontsize-ensurer.reset-size9.size2,.katex .sizing.reset-size9.size2{font-size:.3472222222em}.katex .fontsize-ensurer.reset-size9.size3,.katex .sizing.reset-size9.size3{font-size:.4050925926em}.katex .fontsize-ensurer.reset-size9.size4,.katex .sizing.reset-size9.size4{font-size:.462962963em}.katex .fontsize-ensurer.reset-size9.size5,.katex .sizing.reset-size9.size5{font-size:.5208333333em}.katex .fontsize-ensurer.reset-size9.size6,.katex .sizing.reset-size9.size6{font-size:.5787037037em}.katex .fontsize-ensurer.reset-size9.size7,.katex .sizing.reset-size9.size7{font-size:.6944444444em}.katex .fontsize-ensurer.reset-size9.size8,.katex .sizing.reset-size9.size8{font-size:.8333333333em}.katex .fontsize-ensurer.reset-size9.size9,.katex .sizing.reset-size9.size9{font-size:1em}.katex .fontsize-ensurer.reset-size9.size10,.katex .sizing.reset-size9.size10{font-size:1.2002314815em}.katex .fontsize-ensurer.reset-size9.size11,.katex .sizing.reset-size9.size11{font-size:1.4398148148em}.katex .fontsize-ensurer.reset-size10.size1,.katex .sizing.reset-size10.size1{font-size:.2410800386em}.katex .fontsize-ensurer.reset-size10.size2,.katex .sizing.reset-size10.size2{font-size:.2892960463em}.katex .fontsize-ensurer.reset-size10.size3,.katex .sizing.reset-size10.size3{font-size:.337512054em}.katex .fontsize-ensurer.reset-size10.size4,.katex .sizing.reset-size10.size4{font-size:.3857280617em}.katex .fontsize-ensurer.reset-size10.size5,.katex .sizing.reset-size10.size5{font-size:.4339440694em}.katex .fontsize-ensurer.reset-size10.size6,.katex .sizing.reset-size10.size6{font-size:.4821600771em}.katex .fontsize-ensurer.reset-size10.size7,.katex .sizing.reset-size10.size7{font-size:.5785920926em}.katex .fontsize-ensurer.reset-size10.size8,.katex .sizing.reset-size10.size8{font-size:.6943105111em}.katex .fontsize-ensurer.reset-size10.size9,.katex .sizing.reset-size10.size9{font-size:.8331726133em}.katex .fontsize-ensurer.reset-size10.size10,.katex .sizing.reset-size10.size10{font-size:1em}.katex .fontsize-ensurer.reset-size10.size11,.katex .sizing.reset-size10.size11{font-size:1.1996142719em}.katex .fontsize-ensurer.reset-size11.size1,.katex .sizing.reset-size11.size1{font-size:.2009646302em}.katex .fontsize-ensurer.reset-size11.size2,.katex .sizing.reset-size11.size2{font-size:.2411575563em}.katex .fontsize-ensurer.reset-size11.size3,.katex .sizing.reset-size11.size3{font-size:.2813504823em}.katex .fontsize-ensurer.reset-size11.size4,.katex .sizing.reset-size11.size4{font-size:.3215434084em}.katex .fontsize-ensurer.reset-size11.size5,.katex .sizing.reset-size11.size5{font-size:.3617363344em}.katex .fontsize-ensurer.reset-size11.size6,.katex .sizing.reset-size11.size6{font-size:.4019292605em}.katex .fontsize-ensurer.reset-size11.size7,.katex .sizing.reset-size11.size7{font-size:.4823151125em}.katex .fontsize-ensurer.reset-size11.size8,.katex .sizing.reset-size11.size8{font-size:.578778135em}.katex .fontsize-ensurer.reset-size11.size9,.katex .sizing.reset-size11.size9{font-size:.6945337621em}.katex .fontsize-ensurer.reset-size11.size10,.katex .sizing.reset-size11.size10{font-size:.8336012862em}.katex .fontsize-ensurer.reset-size11.size11,.katex .sizing.reset-size11.size11{font-size:1em}.katex .delimsizing.size1{font-family:KaTeX_Size1}.katex .delimsizing.size2{font-family:KaTeX_Size2}.katex .delimsizing.size3{font-family:KaTeX_Size3}.katex .delimsizing.size4{font-family:KaTeX_Size4}.katex .delimsizing.mult .delim-size1>span{font-family:KaTeX_Size1}.katex .delimsizing.mult .delim-size4>span{font-family:KaTeX_Size4}.katex .nulldelimiter{display:inline-block;width:.12em}.katex .delimcenter,.katex .op-symbol{position:relative}.katex .op-symbol.small-op{font-family:KaTeX_Size1}.katex .op-symbol.large-op{font-family:KaTeX_Size2}.katex .accent>.vlist-t,.katex .op-limits>.vlist-t{text-align:center}.katex .accent .accent-body{position:relative}.katex .accent .accent-body:not(.accent-full){width:0}.katex .overlay{display:block}.katex .mtable .vertical-separator{display:inline-block;min-width:1px}.katex .mtable .arraycolsep{display:inline-block}.katex .mtable .col-align-c>.vlist-t{text-align:center}.katex .mtable .col-align-l>.vlist-t{text-align:left}.katex .mtable .col-align-r>.vlist-t{text-align:right}.katex .svg-align{text-align:left}.katex svg{fill:currentColor;stroke:currentColor;display:block;height:inherit;position:absolute;width:100%}.katex svg path{stroke:none}.katex svg{fill-rule:nonzero;fill-opacity:1;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1}.katex img{border-style:none;max-height:none;max-width:none;min-height:0;min-width:0}.katex .stretchy{display:block;overflow:hidden;position:relative;width:100%}.katex .stretchy:after,.katex .stretchy:before{content:""}.katex .hide-tail{overflow:hidden;position:relative;width:100%}.katex .halfarrow-left{left:0;overflow:hidden;position:absolute;width:50.2%}.katex .halfarrow-right{overflow:hidden;position:absolute;right:0;width:50.2%}.katex .brace-left{left:0;overflow:hidden;position:absolute;width:25.1%}.katex .brace-center{left:25%;overflow:hidden;position:absolute;width:50%}.katex .brace-right{overflow:hidden;position:absolute;right:0;width:25.1%}.katex .x-arrow-pad{padding:0 .5em}.katex .cd-arrow-pad{padding:0 .55556em 0 .27778em}.katex .mover,.katex .munder,.katex .x-arrow{text-align:center}.katex .boxpad{padding:0 .3em}.katex .fbox,.katex .fcolorbox{border:.04em solid;box-sizing:border-box}.katex .cancel-pad{padding:0 .2em}.katex .cancel-lap{margin-left:-.2em;margin-right:-.2em}.katex .sout{border-bottom-style:solid;border-bottom-width:.08em}.katex .angl{border-right:.049em solid;border-top:.049em solid;box-sizing:border-box;margin-right:.03889em}.katex .anglpad{padding:0 .03889em}.katex .eqn-num:before{content:"(" counter(katexEqnNo) ")";counter-increment:katexEqnNo}.katex .mml-eqn-num:before{content:"(" counter(mmlEqnNo) ")";counter-increment:mmlEqnNo}.katex .mtr-glue{width:50%}.katex .cd-vert-arrow{display:inline-block;position:relative}.katex .cd-label-left{display:inline-block;position:absolute;right:calc(50% + .3em);text-align:left}.katex .cd-label-right{display:inline-block;left:calc(50% + .3em);position:absolute;text-align:right}.katex-display{display:block;margin:1em 0;text-align:center}.katex-display>.katex{display:block;text-align:center;white-space:nowrap}.katex-display>.katex>.katex-html{display:block;position:relative}.katex-display>.katex>.katex-html>.tag{position:absolute;right:0}.katex-display.leqno>.katex>.katex-html>.tag{left:0;right:auto}.katex-display.fleqn>.katex{padding-left:2em;text-align:left}body{counter-reset:katexEqnNo mmlEqnNo}:root{--paper: #fbf8ee;--panel: #fffdf6;--panel-strong: #f5efe2;--ink: #281715;--muted: #75675f;--line: #ded4c4;--blue: #78c9f2;--blue-deep: #2c86b5;--mint: #c8ead8;--peach: #ffbf91;--lavender: #d8dcff;--rose: #efb2a7;--green: #67b982;--shadow: 0 18px 60px rgba(52, 34, 27, .12);--radius: 22px;--coin-border: rgba(40, 23, 21, .78);--coin-highlight: radial-gradient(circle at 34% 28%, rgba(255, 253, 246, .95) 0 11%, transparent 12%);--coin-blue: var(--coin-highlight), linear-gradient(145deg, #bdeaff, #78c9f2 58%, #5bb4de);--coin-peach: var(--coin-highlight), linear-gradient(145deg, #ffd3b4, #ffb987 58%, #f7a56f);--coin-mint: var(--coin-highlight), linear-gradient(145deg, #d8f5e5, #a6e1bd 58%, #7bcfa0);--coin-lavender: var(--coin-highlight), linear-gradient(145deg, #edf0ff, #c8cff8 58%, #aeb8ef);--coin-rose: var(--coin-highlight), linear-gradient(145deg, #ffd7d0, #efb2a7 58%, #dc9285);--coin-shadow: inset 0 1px 0 rgba(255, 255, 255, .78), 0 2px 0 rgba(40, 23, 21, .84), 0 7px 12px rgba(52, 34, 27, .09);--ease-out-quart: cubic-bezier(.25, 1, .5, 1);--ease-out-quint: cubic-bezier(.22, 1, .36, 1);--ease-snap: cubic-bezier(.2, .9, .2, 1);--ease-overshoot: cubic-bezier(.34, 1.56, .64, 1);--dur-fast: .16s;--dur-normal: .3s;--dur-slow: .6s;--dur-cascade: .9s;--app-padding: clamp(10px, 1.25vw, 18px);--app-gap: clamp(8px, 1vw, 14px);--overlay-padding: clamp(8px, 2vw, 24px);--content-panel-height: min(780px, calc(100dvh - clamp(7rem, 18dvh, 12.5rem)) );--overlay-panel-height: calc(100dvh - (var(--overlay-padding) * 2))}*{box-sizing:border-box}::-webkit-scrollbar{width:6px;height:6px}::-webkit-scrollbar-track{background:transparent}::-webkit-scrollbar-thumb{background:#2817151f;border-radius:3px}::-webkit-scrollbar-thumb:hover{background:#28171538}::-webkit-scrollbar-corner{background:transparent}*{scrollbar-width:thin;scrollbar-color:rgba(40,23,21,.12) transparent}html{height:100%;min-height:100%;-webkit-text-size-adjust:100%;-webkit-tap-highlight-color:transparent;overflow:hidden}body,#app{height:100dvh;min-height:100dvh}body{margin:0;overflow-x:hidden;overflow-y:hidden;background:linear-gradient(#fbf8eee6,#fbf8eef7),url(/assets/learning-atlas.png) center / cover no-repeat,var(--paper);color:var(--ink);font-family:Manrope,-apple-system,BlinkMacSystemFont,PingFang SC,Microsoft YaHei,sans-serif}*,*:before,*:after{font-family:Manrope,-apple-system,BlinkMacSystemFont,PingFang SC,Microsoft YaHei,sans-serif!important}button,input,select,textarea{font:inherit}button{cursor:pointer;color:inherit}button:disabled{cursor:not-allowed;opacity:.58}svg{width:18px;height:18px;stroke-width:2.35;flex:0 0 auto}h1,h2,h3,p{margin-top:0}html.is-render-update .animate-cascade,html.is-render-update .animate-bounce-slow,html.is-render-update .course-leftbar,html.is-render-update .course-card,html.is-render-update .lesson-hero,html.is-render-update .lm-overlay-shell,html.is-render-update .mindmap-node,html.is-render-update .lesson-node{animation:none!important}.app-shell{height:100dvh;min-height:100dvh;display:grid;grid-template-rows:auto minmax(0,1fr) auto;padding:var(--app-padding);gap:var(--app-gap)}.app-shell--home{grid-template-rows:minmax(0,1fr);padding:0;gap:0}.app-shell--home .topbar,.app-shell--home .site-footer{display:none}.site-footer{text-align:center;font-size:.72rem;color:var(--muted);opacity:.6;padding:8px 0 0}.topbar{width:min(1440px,100%);margin:0 auto;display:flex;align-items:center;justify-content:space-between;gap:16px;flex-wrap:wrap}.brand{border:0;background:transparent;display:inline-flex;align-items:center;gap:10px;font-weight:850;font-size:1rem}.brand-mark{width:24px;height:24px;border-radius:47% 53% 42% 58%/55% 39% 61% 45%;background:var(--ink);box-shadow:7px 1px 0 var(--peach),-5px 8px 0 var(--blue)}.nav-actions,.action-row,.sheet-actions{display:flex;align-items:center;gap:9px;flex-wrap:wrap}.icon-text-button,.primary-button,.icon-button,.wide-soft-button{border:1.5px solid var(--ink);border-radius:13px;min-height:40px;display:inline-flex;align-items:center;justify-content:center;gap:8px;font-weight:850;background:#fffdf6b8;padding:0 14px;box-shadow:0 3px #28171533;transform:translateY(0) rotate(0);transition:transform .14s var(--ease-snap),box-shadow .14s var(--ease-snap),background-color .18s var(--ease-out-quart)}.icon-text-button:hover,.primary-button:hover,.icon-button:hover,.wide-soft-button:hover,.chip-row button:hover,.lesson-node:hover,.bite-sequence-grid button:hover{transform:translateY(-2px) rotate(-.35deg)}.icon-text-button:active,.primary-button:active,.icon-button:active,.wide-soft-button:active,.chip-row button:active,.lesson-node:active,.bite-sequence-grid button:active{transform:translateY(2px) scale(.985) rotate(.25deg);box-shadow:0 1px #28171538}.primary-button{background:var(--blue);box-shadow:0 5px #4e91b2;white-space:nowrap}.primary-button.is-loading{opacity:1;background:linear-gradient(90deg,rgba(255,255,255,.18),transparent 38%),var(--coin-blue);cursor:progress}.primary-button.is-disabled,.primary-button:disabled{opacity:.5;cursor:not-allowed;pointer-events:none}.primary-button.is-loading svg{animation:spin .9s linear infinite}.lucide-loader-2,.animate-spin{animation:spin .9s linear infinite}.primary-button.is-loading:hover,.primary-button.is-loading:active{transform:translateY(0) rotate(0);box-shadow:0 5px #4e91b2}.primary-button.is-opening{opacity:1;background:linear-gradient(90deg,rgba(255,255,255,.18),transparent 38%),var(--coin-blue);cursor:wait;pointer-events:none}.primary-button.is-opening svg{animation:spin .8s linear infinite}.wide-soft-button{width:100%;border-color:#28171547;box-shadow:none;background:#fff9}.icon-button{width:42px;padding:0}.icon-button.mini{min-height:28px;width:28px;border-radius:9px}main{min-height:0;width:min(1440px,100%);margin:0 auto}.app-shell--home main{width:100%;height:100%}.experience-main,.home-main{height:100%;min-height:0;overflow-y:auto;overflow-x:hidden;overscroll-behavior:contain}.app-shell--home .home-main{overflow:hidden}.home-main.is-generating{align-items:start}.home-layout{height:100%;min-height:0;display:block;padding:clamp(8px,1.5vh,18px) 0 clamp(18px,4vh,42px)}.app-shell--home .home-layout{padding:0}.lm-sidebar{background:#fffdf6e0;border:1px solid rgba(40,23,21,.1);border-radius:var(--radius);box-shadow:var(--shadow);padding:0;overflow-x:hidden;overflow-y:auto;overscroll-behavior:contain;min-height:0;animation:block-reveal .46s var(--ease-out-quint) 70ms both;height:var(--content-panel-height);max-height:var(--content-panel-height);min-height:min(400px,var(--content-panel-height));display:flex;flex-direction:column}.lm-sidebar-content{display:flex;flex-direction:column;height:100%;min-width:0;overflow-x:hidden}.lm-sidebar-nav{display:flex;flex-direction:column;gap:2px;padding:10px 8px;border-bottom:1px solid rgba(40,23,21,.06);flex-shrink:0}.lm-nav-btn{display:flex;align-items:center;gap:8px;width:100%;padding:8px 10px;border:none;background:none;border-radius:10px;font-size:.78rem;font-weight:700;color:#4f423abf;cursor:pointer;transition:background .12s,color .12s;-webkit-tap-highlight-color:transparent;position:relative}.lm-nav-btn:hover{background:#78c9f214}.lm-nav-btn.active{background:#f5cb4926;color:#281715e6}.lm-nav-icon{font-size:1rem;width:22px;text-align:center;flex-shrink:0}.lm-nav-badge{margin-left:auto;background:#78c9f240;color:#281715b3;font-size:.65rem;font-weight:800;padding:2px 7px;border-radius:10px;min-width:18px;text-align:center}.lm-nav-badge--warn{background:#ef53502e;color:#c62828}.lm-sidebar-panel{flex:1;min-width:0;overflow-x:hidden;overflow-y:auto;overscroll-behavior:contain;padding:10px;display:flex;flex-direction:column;gap:6px}.lm-panel-header{font-size:.74rem;font-weight:850;color:#4f423acc;padding:4px 4px 6px;margin-bottom:2px}.lm-sidebar-empty{font-size:.72rem;color:#75675f80;text-align:center;padding:20px 0}.lm-sidebar-grade{display:flex;flex-direction:column;align-items:flex-start;gap:3px;width:100%;padding:10px 12px;border:1.5px solid rgba(120,201,242,.2);border-radius:14px;background:linear-gradient(135deg,#78c9f20f,#c8ead80f);cursor:pointer;transition:background .12s,box-shadow .12s;-webkit-tap-highlight-color:transparent;text-align:left;font-family:inherit}.lm-sidebar-grade:hover{background:linear-gradient(135deg,#78c9f21f,#c8ead81a);box-shadow:0 2px 8px #34221b0f}.lm-sidebar-diagnosis{border:1.5px solid rgba(255,190,144,.25);background:linear-gradient(135deg,#ffbe901a,#78c9f20f)}.lm-sidebar-diagnosis:hover{background:linear-gradient(135deg,#ffbe902e,#78c9f21a)}.lm-sidebar-grade strong{font-size:.82rem;font-weight:850;color:#281715e6}.lm-sidebar-grade-stats{font-size:.66rem;font-weight:700;color:#75675fa6}.lm-sidebar-progress{height:4px;border-radius:2px;background:#2817150f;margin:2px 2px 8px;overflow:hidden}.lm-sidebar-progress-bar{height:100%;border-radius:2px;background:linear-gradient(90deg,#66bb6a,#43a047);transition:width .4s ease}.lm-sidebar-units{display:flex;flex-direction:column;gap:3px}.lm-sidebar-unit{display:flex;align-items:center;gap:8px;width:100%;padding:7px 8px;border:none;background:none;border-radius:8px;font-family:inherit;font-size:.72rem;font-weight:700;color:#4f423acc;cursor:pointer;transition:background .1s;-webkit-tap-highlight-color:transparent;text-align:left}.lm-sidebar-unit:hover{background:#78c9f20f}.lm-sidebar-unit-icon{font-size:.9rem;width:20px;text-align:center;flex-shrink:0}.lm-sidebar-unit-name{flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.lm-sidebar-unit-progress{font-size:.64rem;font-weight:750;color:#75675f8c;flex-shrink:0}.lm-unit-weak-dot{color:#c62828;font-size:.6rem}.lm-plan-card{display:grid;gap:10px;padding:12px;border:1px solid rgba(40,23,21,.09);border-radius:14px;background:linear-gradient(145deg,#ffffffdb,#c8ead82e),#fffdf6b8;box-shadow:0 8px 22px #34221b0f}.lm-plan-summary{display:grid;gap:4px}.lm-plan-summary>div,.lm-plan-foot{display:flex;align-items:center;justify-content:space-between;gap:8px}.lm-plan-summary span,.lm-plan-summary small,.lm-plan-foot{color:#75675fb3;font-size:.64rem;font-weight:750}.lm-plan-summary strong{color:#2f6f46;font-size:1.1rem;font-weight:900}.lm-plan-progress{height:6px;overflow:hidden;border-radius:999px;background:#28171512}.lm-plan-progress span{display:block;height:100%;border-radius:inherit;background:linear-gradient(90deg,#78c9f2,#67b982)}.lm-plan-next{display:grid;grid-template-columns:auto minmax(0,1fr);gap:9px;align-items:center;padding:10px;border-radius:11px;background:#ffffffb3}.lm-plan-next>span{font-size:1.35rem}.lm-plan-next small,.lm-plan-next strong,.lm-plan-next p{display:block;min-width:0}.lm-plan-next small{color:#75675fa8;font-size:.58rem;font-weight:750}.lm-plan-next strong{margin-top:2px;overflow:hidden;color:#281715e6;font-size:.74rem;font-weight:850;text-overflow:ellipsis;white-space:nowrap}.lm-plan-next p{margin:3px 0 0;color:#2f6f46;font-size:.61rem;font-weight:800}.lm-plan-continue{width:100%;min-height:36px;border-radius:10px;font-size:.72rem}.lm-plan-actions{display:grid;gap:7px}.lm-plan-actions>button{width:100%;min-height:36px;border-radius:10px;font-size:.72rem}.lm-plan-finished{display:flex;align-items:center;gap:8px;padding:12px;border-radius:11px;background:#c8ead86b;color:#2f6f46;font-size:.76rem}.lm-plan-finished>span{display:grid;width:24px;height:24px;place-items:center;border-radius:50%;background:#67b982;color:#fff;font-weight:900}.lm-wrong-card{background:#fffdf6b3;border:1px solid rgba(40,23,21,.08);border-radius:10px;padding:10px;display:flex;flex-direction:column;gap:4px}.lm-wrong-card-top{display:flex;align-items:center;gap:6px}.lm-wrong-emoji{font-size:.9rem}.lm-wrong-unit-label{font-size:.68rem;font-weight:750;color:#4f423acc;flex:1}.lm-wrong-count{font-size:.6rem;font-weight:800;color:#c62828;background:#ef53501a;padding:1px 6px;border-radius:6px}.lm-wrong-question{font-size:.68rem;color:#4f423ad9;margin:0;line-height:1.3}.lm-wrong-answers{display:flex;gap:10px;font-size:.62rem}.lm-wrong-my{color:#c62828}.lm-wrong-correct{color:#2e7d32}.lm-wrong-date{font-size:.58rem;color:#75675f73}.home-content{position:relative;width:min(1180px,100%);margin:0 auto;display:grid;gap:14px;justify-items:stretch;align-items:start;min-height:0;overflow:visible}.home-dashboard{position:relative;z-index:1;display:grid;gap:12px;width:100%}.home-dashboard-head{display:flex;align-items:end;justify-content:space-between;gap:16px;padding:0 2px}.home-dashboard-head h1{margin:2px 0 0;font-size:clamp(1.95rem,3.7vw,3.1rem);line-height:1.06;letter-spacing:0}.home-dashboard-stats{display:flex;gap:8px;flex-wrap:wrap;justify-content:flex-end}.home-dashboard-stats span{min-width:92px;min-height:46px;display:grid;align-content:center;gap:1px;padding:7px 12px;border:1px solid rgba(40,23,21,.1);border-radius:12px;background:#fffdf6bd;color:#75675fd1;font-size:.7rem;font-weight:800;box-shadow:0 10px 24px #34221b0f}.home-dashboard-stats strong{display:block;color:var(--ink);font-size:1.05rem;line-height:1}.home-primary-grid{display:grid;grid-template-columns:minmax(0,1.35fr) minmax(320px,.85fr);gap:14px;align-items:stretch}.home-entry-card,.instant-topic-card{background:#fffdf6e6;border:1px solid rgba(40,23,21,.1);border-radius:20px;box-shadow:var(--shadow)}.home-entry-card{min-height:300px;display:grid;gap:14px;align-content:start;padding:clamp(18px,2.1vw,24px);overflow:hidden}.home-side-stack{display:grid;grid-template-rows:minmax(0,1fr) auto;gap:14px;min-width:0}.home-side-stack .home-entry-card{min-height:0;padding:clamp(16px,2vw,22px)}.home-entry-card--map{background:linear-gradient(135deg,#78c9f229,#c8ead821 42%,#fffdf6eb),#fffdf6eb}.home-entry-card--tasks{background:linear-gradient(135deg,#ffbf912e,#d8dcff1c 42%,#fffdf6eb),#fffdf6eb}.home-entry-top{display:flex;align-items:center;gap:12px;min-width:0}.home-entry-icon{width:52px;height:52px;display:grid;place-items:center;flex:0 0 auto;border:1.5px solid rgba(40,23,21,.18);border-radius:16px;background:#ffffff9e;box-shadow:0 4px #28171517;font-size:1.55rem}.home-entry-card h2,.instant-topic-card h2{margin:2px 0 0;font-size:clamp(1.2rem,2vw,1.8rem);line-height:1.15;letter-spacing:0}.home-map-progress{display:flex;align-items:baseline;justify-content:space-between;gap:12px;font-weight:850}.home-map-progress span{color:#75675fd1;font-size:.86rem}.home-map-progress strong{font-size:1.65rem}.home-progress-track{height:9px;overflow:hidden;border:1px solid rgba(40,23,21,.08);border-radius:999px;background:#ffffffad}.home-progress-track span{display:block;height:100%;border-radius:inherit;background:linear-gradient(90deg,#67b982,#78c9f2);transition:width .35s var(--ease-out-quart)}.home-map-units{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.home-map-unit{min-height:56px;display:grid;grid-template-columns:auto minmax(0,1fr);grid-template-areas:"icon title" "icon meta";align-items:center;column-gap:9px;row-gap:2px;padding:10px 11px;border:1px solid rgba(40,23,21,.1);border-radius:12px;background:#ffffff94;text-align:left;transition:transform .14s var(--ease-snap),background-color .16s var(--ease-out-quart)}.home-map-unit:hover{transform:translateY(-2px);background:#ffffffd1}.home-map-unit span{grid-area:icon;font-size:1.2rem}.home-map-unit strong{grid-area:title;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:.84rem;font-weight:850}.home-map-unit small{grid-area:meta;color:#75675fb8;font-size:.68rem;font-weight:750}.home-quick-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px}.home-quick-card{min-height:96px;display:grid;grid-template-columns:auto minmax(0,1fr) auto;gap:10px;align-items:center;padding:14px;border:1px solid rgba(40,23,21,.1);border-radius:16px;background:#fffdf6d6;box-shadow:0 14px 36px #34221b14;text-align:left;transition:transform .15s var(--ease-snap),box-shadow .15s var(--ease-snap),background-color .18s var(--ease-out-quart)}.home-quick-card:hover{transform:translateY(-3px);box-shadow:0 18px 42px #34221b1f}.home-quick-card:active{transform:translateY(1px)}.home-quick-icon{width:42px;height:42px;display:grid;place-items:center;border-radius:13px;border:1.5px solid rgba(40,23,21,.16);background:#ffffff9e}.home-quick-card--rescue .home-quick-icon{background:#efb2a761;color:#9b382d}.home-quick-card--wrong .home-quick-icon{background:#d8dcff8c;color:#3f4d91}.home-quick-card--diagnosis .home-quick-icon{background:#ffbf9173;color:#85501f}.home-quick-card--exam .home-quick-icon{background:#78c9f261;color:#2c6f93}.home-quick-copy{min-width:0;display:grid;gap:3px}.home-quick-copy small,.home-quick-copy strong,.home-quick-copy em{display:block;min-width:0}.home-quick-copy small{color:#75675fbf;font-size:.68rem;font-style:normal;font-weight:900}.home-quick-copy strong{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:.98rem;font-weight:900}.home-quick-copy em{color:#75675fb8;font-size:.72rem;font-style:normal;font-weight:750;line-height:1.35}.home-quick-arrow{opacity:.54}.instant-topic-card{display:grid;grid-template-columns:minmax(190px,.48fr) minmax(0,1fr);gap:12px;align-items:center;padding:16px}.home-side-stack .instant-topic-card{grid-template-columns:1fr;gap:10px;padding:14px}.home-side-stack .instant-topic-card h2{font-size:1.05rem}.home-side-stack .instant-topic-card .chip-row{gap:6px}.home-side-stack .instant-topic-card .chip-row button{min-height:30px;padding:5px 10px;font-size:.72rem}.instant-topic-copy{min-width:0}.instant-topic-card .topic-input-wrap{margin:0;min-height:58px;border-radius:18px;background:#ffffffa3}.instant-topic-card .chip-row,.instant-topic-card .generating-strip,.instant-topic-card .planning-state,.instant-topic-card .error-line{grid-column:1 / -1}.home-layout.home-layout--with-sidebar{--home-float-pad: clamp(14px, 1.6vw, 22px);display:grid;grid-template-columns:264px minmax(0,1fr);gap:var(--home-float-pad);align-items:start;height:100%;min-height:0;padding:var(--home-float-pad)}.home-layout.home-layout--with-sidebar .home-content{width:100%;min-width:0;height:100%;min-height:0;margin:0;padding:0;overflow-y:auto;overscroll-behavior:contain;-webkit-overflow-scrolling:touch}.home-sidebar{position:sticky;top:var(--home-float-pad, 18px);display:grid;grid-template-rows:auto 1fr auto;gap:14px;min-height:0;height:calc(100dvh - 2 * var(--home-float-pad, clamp(14px, 1.6vw, 22px)));padding:16px;border:1px solid rgba(40,23,21,.1);border-radius:24px;background:#fffdf6db;box-shadow:var(--shadow);overflow:hidden}.home-side-grade-card{display:grid;grid-template-columns:auto minmax(0,1fr);align-items:center;gap:10px;padding:10px;border:1px solid rgba(40,23,21,.08);border-radius:14px;background:#ffffff8a}.home-side-grade-mark{width:32px;height:32px;display:grid;place-items:center;border:1.5px solid rgba(40,23,21,.15);border-radius:9px;background:#78c9f238;font-size:1rem}.home-side-grade-copy strong,.home-side-grade-copy small{display:block;min-width:0}.home-side-grade-copy strong{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:.9rem;font-weight:900}.home-side-grade-copy small{margin-top:2px;color:#75675fb8;font-size:.7rem;font-weight:750}.home-side-nav{display:grid;align-content:start;gap:7px;overflow-y:auto;overflow-x:hidden;min-width:0}.home-side-nav-btn,.home-sidebar-profile{min-width:0;max-width:100%;min-height:48px;display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:10px;width:100%;padding:10px 12px;border:1px solid transparent;border-radius:14px;background:transparent;color:#4f423acc;text-align:left;font-weight:850;transition:transform .14s var(--ease-snap),border-color .16s var(--ease-out-quart),background-color .16s var(--ease-out-quart),box-shadow .16s var(--ease-out-quart)}.home-side-nav-btn:hover,.home-sidebar-profile:hover{transform:translateY(-1px);background:#ffffff8c;border-color:#28171514}.home-side-nav-btn:active{transform:translateY(0) scale(.97);transition-duration:60ms}.home-side-nav-btn.active{color:var(--ink);background:linear-gradient(135deg,#ffcb4929,#78c9f224),#ffffffb3;border-color:#2817151f;box-shadow:0 8px 22px #34221b14;animation:navActivate .35s var(--ease-out-quart)}@keyframes navActivate{0%{transform:scale(1)}30%{transform:scale(1.04)}to{transform:scale(1)}}.home-side-nav-btn span,.home-sidebar-profile span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.home-side-nav-btn em{min-width:24px;padding:2px 7px;border-radius:999px;background:#78c9f238;color:#281715b8;font-size:.65rem;font-style:normal;font-weight:900;text-align:center}.home-sidebar-profile{border-color:#28171514;background:#ffffff7a}.home-panel-shell{position:relative;display:grid;align-content:start;gap:10px;min-width:0;min-height:calc(100dvh - clamp(28px,3.2vw,44px));padding:clamp(18px,2.2vw,28px);border:1px solid rgba(40,23,21,.1);border-radius:24px;background:#fffdf6db;box-shadow:var(--shadow);overflow:hidden;animation:panelFadeIn .22s var(--ease-out-quart)}.home-panel-shell:has(.home-kt-shell){display:flex;flex-direction:column;padding-bottom:0;overflow:hidden}.home-kt-shell{flex:1;display:flex;flex-direction:column;min-height:0;position:relative;overflow:hidden;border:1px solid rgba(40,23,21,.08);border-radius:16px;background:radial-gradient(circle at 18% 20%,rgba(120,201,242,.13),transparent 28%),radial-gradient(circle at 82% 78%,rgba(255,203,73,.11),transparent 30%),#fffdf6cc}.home-kt-shell .kt-toolbar{flex-shrink:0;border-bottom:1px solid rgba(40,23,21,.06)}.home-kt-shell .kt-container{flex:1;min-height:300px}@keyframes panelFadeIn{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:translateY(0)}}.home-panel-head{display:flex;align-items:flex-start;justify-content:space-between;gap:18px}.home-panel-head--compact{flex-direction:column;gap:4px}.home-panel-head h1{margin:2px 0 0;font-size:clamp(1.9rem,3.3vw,3rem);line-height:1.08;letter-spacing:0}.home-panel-head--compact h1{margin:0;font-size:clamp(1.45rem,2.2vw,2.05rem);line-height:1.12}.home-panel-head--compact p{margin:0;color:#75675fc7;font-size:.86rem;font-weight:750;line-height:1.4}.home-panel-head:not(.home-panel-head--compact) p:not(.kicker){max-width:660px;margin:8px 0 0;color:#75675fd1;font-size:.92rem;font-weight:720;line-height:1.55}.home-weak-list,.home-wrong-list{display:grid;gap:10px}.home-wrong-book-layout{display:grid;gap:14px;margin-top:4px}.home-wrong-book-stats{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}.home-stat-item{padding:12px 10px;border:1px solid rgba(40,23,21,.08);border-radius:14px;background:linear-gradient(145deg,#ffffffd1,#78c9f212);text-align:center}.home-stat-item strong{display:block;font-size:1.3rem;line-height:1.05;color:var(--ink)}.home-stat-item span{display:block;margin-top:3px;font-size:.7rem;font-weight:750;color:#75675fbd}.home-wrong-book-actions{display:grid;gap:10px}.home-map-panel,.home-exam-panel,.home-weak-section,.home-empty-state{border:1px solid rgba(40,23,21,.1);border-radius:18px;background:#ffffff94;box-shadow:0 14px 34px #34221b12}.home-wrong-source{display:inline-flex;align-items:center;justify-content:center;width:fit-content;padding:4px 8px;border-radius:999px;background:#efb2a757;color:#9b382d;font-size:.68rem;font-weight:900}.home-section-head h2{margin:0;font-size:1.05rem;line-height:1.25}.home-empty-state p{margin:4px 0 0;color:#75675fc2;font-size:.82rem;font-weight:720;line-height:1.45}.learning-plan{display:grid;gap:14px}.learning-plan-hero,.learning-plan-current,.learning-plan-roadmap,.learning-plan-finished{border:1px solid rgba(40,23,21,.09);border-radius:20px;box-shadow:0 14px 34px #34221b12}.learning-plan-hero{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:18px 28px;padding:20px;background:radial-gradient(circle at 92% 4%,rgba(120,201,242,.22),transparent 36%),linear-gradient(145deg,#ffffffe6,#c8ead833)}.learning-plan-hero-copy{min-width:0}.learning-plan-kicker{display:block;color:#2f6f46;font-size:.72rem;font-weight:900;letter-spacing:.04em}.learning-plan-hero-copy>strong{display:block;margin-top:5px;font-size:clamp(2.2rem,5vw,3.7rem);line-height:1;letter-spacing:-.04em}.learning-plan-hero-copy p,.learning-plan-finished p,.learning-plan-current-point p{margin:7px 0 0;color:#75675fc7;font-size:.79rem;font-weight:720;line-height:1.5}.learning-plan-stats{display:grid;grid-template-columns:repeat(3,minmax(72px,1fr));gap:8px;align-self:center}.learning-plan-stats>div{padding:10px 12px;border:1px solid rgba(40,23,21,.07);border-radius:13px;background:#fffdf6b3;text-align:center}.learning-plan-stats strong,.learning-plan-stats span{display:block}.learning-plan-stats strong{font-size:1.15rem;font-weight:900}.learning-plan-stats span{margin-top:2px;color:#75675fb3;font-size:.65rem;font-weight:800}.learning-plan-progress{grid-column:1 / -1;height:9px;overflow:hidden;border-radius:999px;background:#28171514}.learning-plan-progress>span{display:block;height:100%;border-radius:inherit;background:linear-gradient(90deg,#78c9f2,#67b982);transition:width .35s ease}.learning-plan-current{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:14px 18px;padding:18px;background:#fffdf6d1}.learning-plan-current-head{grid-column:1 / -1;display:flex;align-items:flex-start;justify-content:space-between;gap:12px}.learning-plan-current-head span,.learning-plan-current-head small{display:block}.learning-plan-current-head span{color:#8a4b16;font-size:.69rem;font-weight:900}.learning-plan-current-head small{margin-top:3px;color:#75675fb8;font-size:.72rem;font-weight:750}.learning-plan-current-head em{padding:5px 9px;border-radius:999px;background:#ffbf914d;color:#8a4b16;font-size:.65rem;font-style:normal;font-weight:900}.learning-plan-current-point{display:grid;grid-template-columns:auto minmax(0,1fr);gap:12px;align-items:center;min-width:0}.learning-plan-current-point>span{display:grid;width:50px;height:50px;place-items:center;border-radius:16px;background:#78c9f22b;font-size:1.55rem}.learning-plan-current-point strong{display:block;font-size:1.08rem;font-weight:900}.learning-plan-today{grid-column:1 / -1;display:flex;align-items:center;gap:10px;padding-top:2px;color:#75675fb8;font-size:.68rem;font-weight:800}.learning-plan-today>div{display:flex;flex-wrap:wrap;gap:5px}.learning-plan-today small{padding:4px 8px;border-radius:999px;background:#78c9f21a;font-size:.63rem}.learning-plan-continue{align-self:center;min-width:154px}.learning-plan-current-actions{display:flex;grid-column:2;grid-row:2;align-self:center;justify-content:flex-end;gap:8px}.learning-plan-current-actions .wide-soft-button{min-width:126px}.learning-plan-roadmap{padding:15px 18px;background:linear-gradient(135deg,#78c9f21a,#ffbf9114),#ffffff9e}.learning-plan-section-head{display:flex;align-items:center;justify-content:space-between;gap:12px}.learning-plan-section-head>span{color:#75675fb3;font-size:.72rem;font-weight:780}.learning-plan-route-link{min-height:38px;display:inline-flex;align-items:center;justify-content:center;gap:7px;padding:0 13px;border:1px solid rgba(40,23,21,.12);border-radius:12px;background:#fffdf6d6;color:var(--ink);font-size:.72rem;font-weight:900;box-shadow:0 3px #28171517;transition:transform .16s var(--ease-snap),background-color .16s ease,box-shadow .16s ease}.learning-plan-route-link:hover{transform:translateY(-2px);background:#fff;box-shadow:0 5px #28171517}.learning-plan-route-link:active{transform:translateY(1px);box-shadow:0 1px #28171517}.learning-plan-route-link svg{width:15px;height:15px}.learning-route-overlay{padding:clamp(14px,3vw,34px)}.learning-route-sheet{width:min(760px,100%);height:min(850px,var(--overlay-panel-height));max-height:var(--overlay-panel-height);display:grid;grid-template-rows:auto auto minmax(0,1fr);overflow:hidden;padding-bottom:0;background:radial-gradient(circle at 94% 4%,rgba(120,201,242,.17),transparent 28%),var(--panel-strong)}.learning-route-head{align-items:center}.learning-route-head h2{margin:3px 0 0}.learning-route-head p:last-child{margin:6px 0 0;color:#75675fbd;font-size:.75rem;font-weight:730}.learning-route-summary{position:relative;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;padding:14px 18px 18px;border-bottom:1px solid rgba(40,23,21,.08)}.learning-route-summary>div:not(.learning-route-summary-progress){padding:9px 10px;border:1px solid rgba(40,23,21,.07);border-radius:12px;background:#ffffff94;text-align:center}.learning-route-summary strong,.learning-route-summary span{display:block}.learning-route-summary strong{font-size:1rem;font-weight:900}.learning-route-summary>div>span{margin-top:2px;color:#75675fb3;font-size:.61rem;font-weight:780}.learning-route-summary-progress{position:absolute;right:18px;bottom:8px;left:18px;height:4px;overflow:hidden;border-radius:999px;background:#28171514}.learning-route-summary-progress span{height:100%;border-radius:inherit;background:linear-gradient(90deg,#78c9f2,#67b982)}.learning-route-scroll{min-height:0;overflow-y:auto;padding:18px;scroll-behavior:smooth;scrollbar-color:rgba(117,103,95,.28) transparent}.learning-route-chapter{margin-bottom:18px;animation:learningRouteChapterIn .32s var(--ease-out-quart) both;animation-delay:calc(var(--route-chapter-index) * 45ms)}.learning-route-chapter:last-child{margin-bottom:0}@keyframes learningRouteChapterIn{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}.learning-route-chapter-head{position:sticky;top:-18px;z-index:2;display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:11px;padding:12px 10px;border:1px solid rgba(40,23,21,.08);border-radius:14px;background:#fffdf6f5;box-shadow:0 8px 18px #34221b0f;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px)}.learning-route-chapter-head>span{display:grid;width:30px;height:30px;place-items:center;border-radius:10px;background:#28171512;font-size:.7rem;font-weight:900}.learning-route-chapter.complete .learning-route-chapter-head>span{background:#67b982;color:#fff}.learning-route-chapter.current .learning-route-chapter-head{border-color:#ffbf918c;background:#fff8eff7}.learning-route-chapter.current .learning-route-chapter-head>span{background:var(--coin-peach);color:#754015}.learning-route-chapter-head strong,.learning-route-chapter-head small{display:block}.learning-route-chapter-head strong{font-size:.86rem;font-weight:900}.learning-route-chapter-head small{margin-top:3px;color:#75675fad;font-size:.64rem;font-weight:740}.learning-route-chapter-head em{color:#75675fb3;font-size:.64rem;font-style:normal;font-weight:880}.learning-route-chapter.current .learning-route-chapter-head em{color:#8a4b16}.learning-route-items{padding:4px 6px 0}.learning-route-item{display:grid;grid-template-columns:34px 18px minmax(0,1fr) auto;align-items:center;gap:8px;min-height:55px;padding:7px 10px 7px 4px;border-radius:12px}.learning-route-item.current{border:1px solid rgba(255,191,145,.52);background:#ffbf9121;box-shadow:0 7px 18px #8a4b1612}.learning-route-sequence{color:#4f423a94;font-size:.65rem;font-weight:850;text-align:right}.learning-route-line{position:relative;align-self:stretch;display:grid;place-items:center}.learning-route-line:before,.learning-route-line:after{content:"";position:absolute;left:50%;width:1px;height:50%;background:#2817151a}.learning-route-line:before{top:0}.learning-route-line:after{bottom:0}.learning-route-item:first-child .learning-route-line:before{display:none}.learning-route-item:last-child .learning-route-line:after{display:none}.learning-route-line>i{position:relative;z-index:1;width:10px;height:10px;border:2px solid;border-radius:50%;box-shadow:0 0 0 4px var(--panel-strong)}.learning-route-item.current .learning-route-line>i{box-shadow:0 0 0 4px #fff4e8}.learning-route-line>i.gray{background:#e5e7eb;border-color:#9ca3af}.learning-route-line>i.red{background:#fecaca;border-color:#ef4444}.learning-route-line>i.yellow{background:#fef08a;border-color:#eab308}.learning-route-line>i.green{background:#bbf7d0;border-color:#22c55e}.learning-route-copy{min-width:0}.learning-route-copy strong,.learning-route-copy small{display:block}.learning-route-copy strong{font-size:.77rem;font-weight:850;line-height:1.35}.learning-route-copy small{margin-top:3px;color:#75675fab;font-size:.62rem;font-weight:720}.learning-route-item>em{color:#75675fb3;font-size:.62rem;font-style:normal;font-weight:850;white-space:nowrap}.learning-route-item.current>em{color:#8a4b16}.learning-plan-finished{display:flex;align-items:center;gap:12px;padding:18px;background:#c8ead84d}.learning-plan-finished>span{display:grid;width:42px;height:42px;flex:0 0 auto;place-items:center;border-radius:50%;background:#67b982;color:#fff;font-size:1.15rem;font-weight:900}.learning-plan-finished strong{font-size:.95rem;font-weight:900}.learning-plan-empty{padding:22px}.home-map-panel,.home-exam-panel{display:grid;gap:14px;min-width:0;padding:18px}.home-exam-panel{width:min(520px,100%);justify-self:center}.home-map-embed{min-width:0;min-height:clamp(360px,50dvh,520px);border:1px solid rgba(40,23,21,.08);border-radius:16px;background:#fffdf69e;overflow:visible}.home-weak-layout{display:grid;grid-template-columns:minmax(0,.95fr) minmax(0,1.05fr);gap:12px;align-items:start;margin-top:0}.home-weak-section{display:grid;gap:10px;padding:10px}.home-section-head{display:flex;align-items:baseline;justify-content:space-between;gap:12px}.home-section-head span{color:#75675fb8;font-size:.76rem;font-weight:850}.home-weak-card,.home-wrong-item{display:grid;align-items:center;gap:10px;padding:11px;border:1px solid rgba(40,23,21,.08);border-radius:13px;background:#fffdf6ad}.home-weak-card{grid-template-columns:auto minmax(0,1fr) auto}.home-weak-emoji{width:38px;height:38px;display:grid;place-items:center;border-radius:12px;background:#efb2a747;font-size:1.1rem}.home-weak-card strong,.home-weak-card small,.home-wrong-item strong,.home-wrong-item p{display:block;min-width:0}.home-weak-card strong,.home-wrong-item strong{font-size:.86rem;font-weight:900}.home-weak-card small{margin-top:3px;color:#75675fbd;font-size:.72rem;font-weight:750}.home-wrong-item{grid-template-columns:minmax(0,1fr) auto}.home-wrong-item p{margin:5px 0 0;color:#4f423ad6;font-size:.74rem;font-weight:700;line-height:1.45;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.home-empty-state{display:grid;gap:10px;place-items:start;padding:18px}.home-empty-state strong{font-size:1rem}.home-exam-upload{min-height:144px;display:grid;place-items:center;align-content:center;gap:8px;padding:18px;border:1.5px dashed rgba(40,23,21,.18);border-radius:18px;background:#78c9f214;text-align:center}.home-exam-upload>svg{width:36px;height:36px;padding:8px;border-radius:12px;background:#78c9f233;color:#2c6f93}.home-exam-upload strong{font-size:1.2rem}.home-exam-upload p{max-width:420px;margin:0;color:#75675fc2;font-weight:750;line-height:1.5}.instant-topic-card--full{grid-template-columns:1fr;padding:clamp(18px,3vw,28px)}.profile-diagnosis-card{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:12px;align-items:center;margin-top:16px;padding:14px;border:1px solid rgba(40,23,21,.1);border-radius:14px;background:linear-gradient(135deg,#78c9f21f,#ffbf911f),#ffffff94}.profile-section-divider{height:1px;margin:18px 0;background:linear-gradient(90deg,transparent,rgba(40,23,21,.1) 20%,rgba(40,23,21,.1) 80%,transparent)}.profile-diagnosis-card strong,.profile-diagnosis-card span{display:block}.profile-diagnosis-card strong{font-size:.92rem;font-weight:900}.profile-diagnosis-card span{margin-top:4px;color:#75675fc2;font-size:.74rem;font-weight:750}.auth-card{display:grid;gap:12px;padding:14px;border:1px solid rgba(40,23,21,.1);border-radius:16px;background:#ffffff94;box-shadow:0 12px 30px #34221b12}.auth-step-head{display:grid;grid-template-columns:auto minmax(0,1fr);gap:10px;align-items:start}.auth-step-head>span{width:34px;height:34px;display:grid;place-items:center;border-radius:11px;background:#78c9f238;border:1px solid rgba(40,23,21,.1);font-weight:900}.auth-step-head h3{margin:0;font-size:.98rem;line-height:1.25}.auth-step-head p{margin:4px 0 0;color:#75675fc2;font-size:.76rem;font-weight:720;line-height:1.45}.auth-form{display:grid;gap:10px}.auth-actions{display:grid;grid-template-columns:1fr auto;gap:8px}.auth-actions .wide-soft-button{grid-column:1 / -1}.auth-upload-area{display:grid;place-items:center;gap:8px;min-height:150px;padding:18px;border:1.5px dashed rgba(40,23,21,.18);border-radius:14px;background:#78c9f214;text-align:center;cursor:pointer}.auth-upload-area svg{width:42px;height:42px;color:#2c6f93}.auth-upload-area strong{font-size:.98rem}.auth-upload-area p{margin:0;color:#75675fc2;font-size:.76rem;font-weight:740;line-height:1.45}.auth-grade-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:9px}.auth-grade-choice{position:relative;min-height:72px;display:grid;align-content:center;justify-items:start;gap:3px;padding:12px;border:1.5px solid rgba(40,23,21,.1);border-radius:14px;background:#ffffff9e;color:var(--ink);text-align:left;transition:transform .16s var(--ease-snap),border-color .16s ease,background-color .16s ease,box-shadow .16s ease}.auth-grade-choice:hover{transform:translateY(-2px);border-color:#78c9f28c;background:#78c9f21a}.auth-grade-choice.selected{border-color:#281715b8;background:linear-gradient(145deg,#78c9f233,#c8ead838),#fff;box-shadow:var(--coin-shadow)}.auth-grade-choice span{font-size:.84rem;font-weight:900}.auth-grade-choice small{color:#75675fad;font-size:.62rem;font-weight:740}.auth-grade-choice svg{position:absolute;top:9px;right:9px;width:15px;height:15px;padding:2px;border-radius:50%;background:var(--green);color:#fff;opacity:0;transform:scale(.6);transition:opacity .16s ease,transform .16s var(--ease-snap)}.auth-grade-choice.selected svg{opacity:1;transform:scale(1)}.auth-skip-row{display:flex;align-items:center;justify-content:space-between;gap:10px;padding-top:2px}.auth-skip-row>span{color:#75675fb8;font-size:.7rem;font-weight:740}.auth-skip-row .icon-text-button{min-height:38px}.auth-account-stats{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin:12px 0}.auth-account-stat{background:#22c55e14;border-radius:10px;padding:10px;text-align:center}.auth-account-stat strong{display:block;font-size:1.15rem;color:#16a34a}.auth-account-stat span{font-size:.7rem;color:var(--muted)}.auth-mastery-lights{display:flex;gap:10px;align-items:center;font-size:.75rem;color:var(--muted);margin:4px 0;flex-wrap:wrap}.mastery-dot{display:inline-block;width:8px;height:8px;border-radius:50%;margin-right:2px;vertical-align:middle}.mastery-dot--green{background:#22c55e}.mastery-dot--yellow{background:#eab308}.mastery-dot--red{background:#ef4444}.mastery-dot--gray{background:#9ca3af}.auth-grade-row{display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:12px;padding:12px 14px;margin:12px 0;border:1px solid rgba(40,23,21,.1);border-radius:14px;background:linear-gradient(135deg,#78c9f214,#c8ead814)}.auth-grade-label{display:inline-flex;align-items:center;gap:6px;font-size:.82rem;font-weight:850;color:var(--ink)}.auth-grade-label svg{width:18px;height:18px}.auth-grade-value strong{display:block;font-size:1rem;font-weight:900;color:var(--ink)}.auth-grade-value small{display:block;margin-top:2px;font-size:.7rem;font-weight:750;color:#75675fbd}.profile-grade-sheet{max-width:460px}.profile-grade-options{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;margin-top:6px}.profile-grade-option{display:flex;flex-direction:column;align-items:flex-start;gap:2px;padding:10px;border:1px solid rgba(40,23,21,.1);border-radius:11px;background:#fff9;cursor:pointer;text-align:left;transition:background .14s,border-color .14s}.profile-grade-option:hover{background:#78c9f21f;border-color:#78c9f266}.profile-grade-option.selected{border-color:var(--primary, #FF6B35);background:#78c9f233}.profile-grade-option.active{border-color:#22c55e99}.profile-grade-option.active:after{content:"当前";font-size:.6rem;font-weight:800;color:#16a34a}.profile-grade-option strong{font-size:.82rem;font-weight:900;color:var(--ink)}.profile-grade-option small{font-size:.64rem;color:#75675fb8}.auth-account-hint{font-size:.78rem;color:var(--muted);padding:12px 0}.auth-account-ocr{font-size:.78rem;padding:8px 0;color:var(--muted)}.auth-next-action p{margin:5px 0 0;color:#75675fc7;font-size:.78rem;font-weight:750;line-height:1.45}.prompt-home{position:relative;width:min(820px,100%);display:grid;gap:18px;margin:auto 0}.home-main.is-generating .prompt-home{margin:0}.home-section{padding:0 4px}.home-section-title{font-size:1rem;font-weight:650;margin-bottom:10px;color:var(--muted)}.recent-cards{display:flex;flex-wrap:wrap;gap:8px}.recent-card{display:flex;flex-direction:column;gap:2px;padding:10px 28px 10px 14px;border:1px solid rgba(40,23,21,.1);border-radius:10px;background:#ffffffa3;cursor:pointer;transition:background .15s;position:relative}.recent-card:hover{background:#ffffffe6}.recent-card strong{font-size:.88rem;font-weight:650;line-height:1.3}.recent-card span{font-size:.72rem;color:var(--muted)}.recent-card-del{position:absolute;top:6px;right:6px;display:inline-flex;align-items:center;justify-content:center;width:18px;height:18px;border:none;border-radius:50%;background:transparent;color:var(--muted);cursor:pointer;opacity:0;transition:opacity .15s,background .15s;flex-shrink:0}.recent-card:hover .recent-card-del{opacity:.5}.recent-card-del:hover{opacity:1!important;background:#ffd8cf;color:var(--rose)}.recent-card-del svg{width:11px;height:11px}.prompt-box{background:#fffdf6e0;border:1px solid rgba(40,23,21,.1);border-radius:28px;box-shadow:var(--shadow);padding:clamp(20px,4vw,42px);display:grid;gap:14px}.prompt-box h1{margin-bottom:2px;font-size:clamp(1.8rem,4vw,3.2rem);line-height:1.15;letter-spacing:-.01em}.prompt-box .topic-input-wrap{margin-top:6px;min-height:68px;border-radius:22px}.prompt-box input{font-size:1.05rem}.generating-strip{display:grid;grid-template-columns:34px 1fr;gap:12px;align-items:start;border:1px solid rgba(40,23,21,.12);border-radius:20px;padding:13px;background:linear-gradient(135deg,#78c9f229,#c8ead81f),#fffdf6b3;box-shadow:0 12px 28px #34221b14;animation:generation-rise .32s var(--ease-out-quint) both}.spinner-dot{width:30px;height:30px;border-radius:50%;display:grid;place-items:center;background:var(--coin-blue);border:1.5px solid var(--coin-border);box-shadow:var(--coin-shadow)}.spinner-dot svg{animation:spin 1s linear infinite}.generating-strip strong,.generating-strip span{display:block}.generating-strip span{margin-top:3px;color:var(--muted);font-size:.86rem;line-height:1.4}.generating-chunks{margin-top:10px;padding:10px 12px;border:1px solid rgba(40,23,21,.08);border-radius:12px;background:#fff6}.generating-chunks-label{font-size:.78rem;color:var(--muted);margin:0 0 6px}.generating-chunk{display:inline-block;padding:3px 10px;margin:2px 4px 2px 0;border:1px solid var(--brand-soft, rgba(163, 94, 40, .15));border-radius:8px;background:#a35e280d;font-size:.8rem;color:var(--brand, #a35e28)}.progress-steps{list-style:none;padding:0;margin:12px 0 0;display:flex;flex-direction:column;gap:6px}.progress-steps li{position:relative;overflow:hidden;border:1px solid rgba(40,23,21,.12);border-radius:15px;background:#ffffff8c;padding:9px 10px;opacity:.68;display:grid;grid-template-columns:28px minmax(0,1fr) auto;gap:10px;align-items:center;animation:progress-line-in .36s var(--ease-out-quint) both;animation-delay:calc(var(--step) * 55ms)}.progress-steps li.running,.progress-steps li.done{opacity:1}.progress-steps li.done{background:#c8ead87a}.progress-steps li.running{border-color:#2c86b56b;background:linear-gradient(90deg,#78c9f22e,#fffdf69e),#78c9f224;animation:progress-line-in .36s var(--ease-out-quint) both,pulseWiggle 4s ease-in-out 1s infinite;box-shadow:inset 0 0 0 1px #78c9f21f}.progress-steps li:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;background:linear-gradient(90deg,transparent,rgba(255,255,255,.58),transparent);transform:translate(-100%);animation:sweep 2.8s ease-in-out infinite;animation-delay:calc(var(--step) * .22s);pointer-events:none}.progress-steps li.waiting:after,.progress-steps li.done:after{display:none}.progress-steps .step-marker{width:24px;height:24px;display:grid;place-items:center;border-radius:50%;background:#fffdf6cc;border:1px solid rgba(40,23,21,.2);color:var(--muted);box-shadow:inset 0 1px #ffffffdb}.progress-steps li.done .step-marker{background:var(--coin-mint);border:1.5px solid var(--coin-border);color:var(--ink);box-shadow:var(--coin-shadow)}.progress-steps li.running .step-marker{background:var(--coin-blue);border:1.5px solid var(--coin-border);color:var(--ink);box-shadow:var(--coin-shadow)}.progress-steps li.running .step-marker svg{animation:spin 1s linear infinite}.progress-steps b,.progress-steps small,.progress-steps em{position:relative;display:block}.progress-steps b{font-size:.8rem}.progress-steps small{margin-top:3px;color:var(--muted);font-size:.72rem;line-height:1.28}.progress-steps em{justify-self:end;color:var(--muted);font-size:.62rem;font-style:normal;font-weight:850;letter-spacing:.06em;text-transform:uppercase}.progress-steps li.running em{color:#245f79}.progress-steps li.done em{color:#376847}.analysis-checkpoint{margin-top:10px;border:1px solid rgba(40,23,21,.12);border-radius:13px;padding:10px;background:#ffffff9e}.analysis-checkpoint p{margin:5px 0 8px;color:var(--muted);font-size:.82rem;line-height:1.38}.generation-list{background:#fffdf6ad;border:1px solid rgba(40,23,21,.08);border-radius:22px;padding:14px;box-shadow:0 12px 34px #34221b14}.outline-draft{border:1px solid rgba(40,23,21,.12);border-radius:18px;background:#ffffff9e;padding:20px;display:grid;gap:16px;animation:generation-rise .26s var(--ease-out-quint) both}.outline-draft-head{display:flex;align-items:start;justify-content:space-between;gap:12px}.outline-draft-head>:not(button){flex:1}.outline-draft h2{margin:0 0 6px;font-size:1.08rem;line-height:1.3}.outline-draft-head p{margin:0;color:var(--muted);font-size:.86rem;line-height:1.42}.outline-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.outline-card{display:flex;gap:12px;padding:14px;border-radius:12px;background:#ffffff8c;border:1px solid rgba(40,23,21,.08);cursor:default;transition:box-shadow .16s,transform .16s}.outline-card:hover{box-shadow:0 2px 8px #28171512;transform:translateY(-1px)}.outline-card-num{flex-shrink:0;width:24px;height:24px;border-radius:8px;background:var(--brand-soft, rgba(163, 94, 40, .1));color:var(--brand, #a35e28);font-size:.72rem;font-weight:750;display:flex;align-items:center;justify-content:center}.outline-card-body{display:grid;gap:4px;min-width:0}.outline-card-title{font-weight:650;font-size:.88rem;line-height:1.35;outline:none;border-radius:4px;padding:2px 4px;margin:-2px -4px}.outline-card-title:focus{background:#fffc;box-shadow:0 0 0 2px var(--brand-soft, rgba(163, 94, 40, .2))}.outline-card-desc{color:var(--muted);font-size:.78rem;line-height:1.4;outline:none;border-radius:4px;padding:2px 4px;margin:-2px -4px}.outline-card-desc:focus{background:#fffc;box-shadow:0 0 0 2px var(--brand-soft, rgba(163, 94, 40, .2))}.planning-state{text-align:center;padding:32px 20px}.planning-state .outline-draft-head{justify-content:center}.planning-state h2{text-align:center}.loading-mascot{display:flex;flex-direction:column;align-items:center;gap:8px;padding:12px 0}.mascot-body{font-size:2.8rem;animation:mascotBounce 1.2s ease-in-out infinite;line-height:1}.mascot-dots{display:flex;gap:5px}.mascot-dots span{width:7px;height:7px;border-radius:50%;background:var(--brand, #a35e28);animation:dotBounce 1.4s ease-in-out infinite}.mascot-dots span:nth-child(2){animation-delay:.16s}.mascot-dots span:nth-child(3){animation-delay:.32s}.mascot-hint{color:var(--muted);font-size:.84rem;text-align:center;animation:fadeSwitch 2s ease-in-out infinite}@keyframes mascotBounce{0%,to{transform:translateY(0) scale(1)}30%{transform:translateY(-8px) scale(1.08)}60%{transform:translateY(2px) scale(.96)}}@keyframes dotBounce{0%,to{transform:translateY(0);opacity:.4}50%{transform:translateY(-6px);opacity:1}}@keyframes fadeSwitch{0%,to{opacity:1}50%{opacity:.5}}.generating-strip .mascot-body{font-size:2.2rem}.generating-hint{color:var(--muted);font-size:.84rem;animation:fadeSwitch 2s ease-in-out infinite}.outline-actions{padding:0}.generation-list.empty{text-align:center;color:var(--muted)}.generation-list.empty p{margin:0}.list-heading{display:flex;justify-content:space-between;gap:12px;margin-bottom:10px;color:var(--muted);font-size:.78rem;font-weight:850;text-transform:uppercase;letter-spacing:.07em}.generation-cards{display:grid;gap:8px;max-height:260px;overflow:auto}.generation-card{width:100%;position:relative;border:1px solid rgba(40,23,21,.12);border-radius:16px;background:#ffffff94;display:grid;grid-template-columns:1fr;align-items:center;gap:5px}.generation-card:hover{border-color:#28171557;background:#fffc}.generation-open{border:0;background:transparent;text-align:left;padding:12px;display:grid;gap:5px;color:inherit;text-decoration:none;cursor:pointer}.generation-open>span{width:fit-content;border-radius:999px;padding:4px 8px;background:var(--mint);color:#315642;font-size:.68rem;font-weight:850;text-transform:uppercase;letter-spacing:.06em}.generation-card.generating .generation-open>span{background:var(--lavender);color:#44405f}.generation-card.resume .generation-open>span{background:var(--peach);color:#6f3d21}.generation-card.failed .generation-open>span{background:#ffd8cf;color:#7d342c}.generation-card.new .generation-open>span{background:var(--mint);color:#315642}.generation-card.continue .generation-open>span{background:var(--blue);color:#18485f}.generation-card.finished .generation-open>span{background:#e6e0d6;color:#5b5149}.generation-card strong{font-size:.98rem}.generation-card small{color:var(--muted);line-height:1.35}.generation-card-del{position:absolute;top:8px;right:8px;width:24px;height:24px;border:none;border-radius:50%;background:#2817150f;color:var(--muted);cursor:pointer;display:flex;align-items:center;justify-content:center;opacity:.4;transition:opacity .15s,background .15s}.generation-card-del:hover{opacity:1;background:#ffd8cf;color:var(--rose)}.generation-card-del svg{width:12px;height:12px}.course-header{min-height:0;background:#fffdf6d1;border:1px solid rgba(40,23,21,.1);border-radius:18px;box-shadow:0 10px 34px #34221b14;padding:10px;display:grid;grid-template-columns:auto minmax(0,1fr) auto;gap:12px;align-items:center;animation:block-reveal .42s var(--ease-out-quint) both}.course-header h1{margin-bottom:2px;font-size:clamp(1rem,1.25vw,1.22rem);line-height:1.15;font-weight:850}.course-header p{margin:0;color:var(--muted);font-size:.78rem;line-height:1.25}.course-title-copy{min-width:0}.course-title-actions{display:flex;align-items:center;gap:8px}.dive-deeper-badge{display:inline-block;padding:2px 10px;border-radius:999px;font-size:.68rem;font-weight:700;letter-spacing:.04em;text-transform:uppercase;background:linear-gradient(135deg,#73c8f4,#5db7e8);color:#fff;margin-top:3px;vertical-align:middle}.composer{min-height:0;background:#fffdf6d4;border:1px solid rgba(40,23,21,.1);border-radius:var(--radius);box-shadow:var(--shadow);display:grid;grid-template-columns:minmax(280px,.74fr) minmax(420px,1fr);gap:24px;align-items:end;padding:28px}.composer.compact{padding:16px;grid-template-columns:minmax(280px,.75fr) minmax(420px,1fr);box-shadow:0 10px 34px #34221b14}.kicker{margin:0 0 8px;color:var(--muted);text-transform:uppercase;letter-spacing:.08em;font-size:.68rem;font-weight:850}.composer h1{margin-bottom:8px;font-size:clamp(1.5rem,2.2vw,2.6rem);line-height:1.15;letter-spacing:-.01em}.composer.compact h1{font-family:Manrope,sans-serif;font-size:clamp(1.05rem,1.5vw,1.42rem);line-height:1.15;font-weight:850}.composer p{margin-bottom:0;color:var(--muted);line-height:1.48;font-size:.92rem;max-width:680px}.error-line{margin-top:8px;color:#9b382d!important;font-weight:750}.topic-form{display:grid;gap:10px}.topic-input-wrap{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:8px;padding:7px;border:1px solid var(--line);border-radius:18px;background:#ffffff9e}input,textarea,select{width:100%;border:1px solid var(--line);border-radius:12px;background:#ffffffb8;color:var(--ink);padding:11px 12px;outline:none;font-size:1rem}.topic-input-wrap input{border:0;background:transparent;min-width:0}input:focus,textarea:focus,select:focus{border-color:var(--blue-deep);box-shadow:0 0 0 4px #78c9f238}.chip-row{display:flex;gap:8px;flex-wrap:wrap}.chip-row button{border:0;border-radius:999px;padding:7px 10px;font-size:.78rem;font-weight:850;background:var(--lavender)}.chip-row button:nth-child(2){background:var(--mint)}.chip-row button:nth-child(3){background:var(--peach)}.chip-row button:nth-child(4){background:var(--rose)}.experience{height:100%;min-height:0;overflow:visible;display:grid;grid-template-columns:minmax(250px,300px) minmax(0,1fr);gap:12px}.course-leftbar,.path-panel,.lesson-lobby,.memory-panel,.sheet,.map-shell,.practice-shell,.player-shell,.assistant-drawer{background:#fffdf6e0;border:1px solid rgba(40,23,21,.1);border-radius:var(--radius);box-shadow:var(--shadow)}.course-leftbar,.course-card{height:var(--content-panel-height);max-height:var(--content-panel-height);min-height:min(400px,var(--content-panel-height))}.course-leftbar,.path-panel,.memory-panel{min-height:0;overflow:auto;padding:16px}.course-leftbar{animation:block-reveal .46s var(--ease-out-quint) 70ms both}.panel-heading{display:flex;align-items:center;gap:8px;margin-bottom:13px;font-weight:850}.leftbar-tabs{display:flex;gap:4px;margin-bottom:13px;border-bottom:1.5px solid rgba(40,23,21,.08);padding-bottom:8px}.leftbar-tab{flex:1;display:flex;align-items:center;justify-content:center;gap:6px;padding:6px 8px;border-radius:10px;font-size:.75rem;font-weight:800;color:#28171573;background:transparent;border:none;cursor:pointer;transition:background .15s,color .15s}.leftbar-tab:hover{background:#2817150a}.leftbar-tab.active{color:#281715d9;background:#ffffffb3;box-shadow:0 1px 3px #2817150f}.leftbar-tab svg{width:14px;height:14px}.path-section+.path-section{margin-top:18px}.path-section h3{margin-bottom:10px;color:var(--muted);text-transform:uppercase;letter-spacing:.07em;font-size:.72rem}.lesson-node{width:100%;border:1px solid rgba(40,23,21,.13);background:#ffffff85;border-radius:16px;padding:10px;display:grid;grid-template-columns:34px 1fr;gap:10px;text-align:left;margin-bottom:8px;transform-origin:18px 50%;transition:transform .15s var(--ease-snap),background-color .18s var(--ease-out-quart),outline-color .18s var(--ease-out-quart),box-shadow .15s var(--ease-snap)}.lesson-node>span{width:34px;height:34px;display:grid;place-items:center;border-radius:50%;background:var(--coin-blue);border:1.5px solid var(--coin-border);box-shadow:var(--coin-shadow);font-size:.78rem;font-weight:850}.lesson-node:nth-of-type(2n)>span{background:var(--coin-lavender)}.lesson-node:nth-of-type(3n)>span{background:var(--coin-mint)}.lesson-node.active>span{background:var(--coin-peach)}.lesson-node.active{outline:3px solid rgba(120,201,242,.62);background:#ffffffd1;animation:select-tick .36s var(--ease-out-quint) both}.lesson-node.completed>span{background:#34d399;color:#fff}.lesson-node.completed{opacity:.85}.lesson-node strong{display:block;font-size:.9rem;line-height:1.22}.lesson-node small{color:var(--muted);font-weight:700}.lesson-node--sub{margin-left:20px;margin-bottom:4px;padding:8px 10px;border-color:#28171514;background:#ffffff61;border-radius:12px;grid-template-columns:auto 1fr;gap:8px;position:relative}.lesson-node--sub:before{content:"";position:absolute;left:-18px;top:50%;width:14px;height:1px;background:#28171526}.lesson-node--sub>span{width:auto;height:auto;background:none;border:none;box-shadow:none;font-size:.82rem;color:var(--muted)}.lesson-node--sub strong{font-size:.84rem;font-weight:600}.lesson-node--sub small{font-size:.68rem;color:var(--green);font-weight:700}.lesson-node--sub.active{outline-color:#67b98280;background:#c8ead840}.lesson-lobby{min-height:0;display:flex;flex-direction:column;overflow:hidden}.course-card{position:relative;background:linear-gradient(135deg,#fffdf6f0,#f5efe2bd),var(--panel);animation:block-reveal .5s var(--ease-out-quint) .12s both}.course-card-scroll{flex:1 1 0;min-height:0;overflow:auto;padding:14px 14px 120px;display:grid;gap:12px}.lesson-hero{padding:clamp(18px,2.4vw,26px);border:1px solid rgba(40,23,21,.1);border-radius:22px;background:linear-gradient(135deg,#d8dcff6b,#c8ead84d);animation:card-pop .38s var(--ease-out-quint) .19s both}.prereq-banner{padding:10px 14px;border:1px solid rgba(120,201,242,.25);border-radius:14px;background:#78c9f214;display:flex;flex-direction:column;gap:6px;animation:card-pop .38s var(--ease-out-quint) .1s both}.prereq-label{display:inline-flex;align-items:center;gap:4px;font-size:.74rem;font-weight:850;color:var(--muted);text-transform:uppercase;letter-spacing:.06em}.prereq-label svg{width:14px;height:14px}.prereq-tags{display:flex;flex-wrap:wrap;gap:6px}.prereq-tag{border:1px solid rgba(40,23,21,.1);border-radius:999px;padding:4px 12px;font-size:.78rem;font-weight:700;background:#fff9;color:var(--ink);cursor:pointer;transition:background .2s,border-color .2s}.prereq-tag:hover{background:#d8dcff66;border-color:#28171533}.lesson-gate{display:grid;align-content:start}.lesson-label{color:var(--muted);font-size:.78rem;font-weight:850;text-transform:uppercase;letter-spacing:.08em}.lesson-hero h2{margin:8px 0 10px;font-size:clamp(1.25rem,1.55vw,1.8rem);line-height:1.12;letter-spacing:-.01em;max-width:780px}.lesson-hero p{color:#5b4d45;font-size:.96rem;line-height:1.48;max-width:720px}.bite-sequence{min-height:0;padding:2px 4px 12px;animation:block-reveal .38s var(--ease-out-quint) .25s both}.bite-sequence-grid{margin-top:10px;display:grid;grid-template-columns:repeat(4,minmax(130px,1fr));gap:10px}.bite-sequence-grid button{min-height:118px;border:1px solid rgba(40,23,21,.12);border-radius:18px;background:#ffffff94;padding:12px;text-align:left;display:grid;align-content:start;gap:8px;transform-origin:18px 18px;transition:transform .15s var(--ease-snap),box-shadow .16s var(--ease-snap),border-color .18s var(--ease-out-quart),filter .18s var(--ease-out-quart);animation:bite-card-reveal .42s var(--ease-out-quint) both}.bite-sequence-grid button:nth-child(1){animation-delay:.32s}.bite-sequence-grid button:nth-child(2){animation-delay:.38s}.bite-sequence-grid button:nth-child(3){animation-delay:.44s}.bite-sequence-grid button:nth-child(4){animation-delay:.5s}.bite-sequence-grid button:hover{border-color:#28171547;box-shadow:0 10px 22px #34221b1a;filter:saturate(1.05)}.bite-sequence-grid button:nth-child(1){background:#d8dcff6b}.bite-sequence-grid button:nth-child(2){background:#c8ead86b}.bite-sequence-grid button:nth-child(3){background:#78c9f22e}.bite-sequence-grid button:nth-child(4){background:#ffbf9152}.bite-sequence-grid button>span{width:28px;height:28px;display:grid;place-items:center;border-radius:50%;background:var(--coin-blue);border:1.5px solid var(--coin-border);box-shadow:var(--coin-shadow);font-weight:850;font-size:.76rem}.bite-sequence-grid button:nth-child(1)>span{background:var(--coin-lavender)}.bite-sequence-grid button:nth-child(2)>span{background:var(--coin-mint)}.bite-sequence-grid button:nth-child(4)>span{background:var(--coin-peach)}.bite-sequence-grid i{color:#4d5d64}.bite-sequence-grid strong{font-size:.92rem}.bite-sequence-grid small{color:var(--muted);font-size:.8rem;line-height:1.35}.course-card-cta{position:sticky;bottom:0;z-index:2;flex:0 0 auto;border-top:1px solid rgba(40,23,21,.1);background:#fffdf6f0;box-shadow:0 -18px 32px #34221b14;padding:12px 14px;display:flex;align-items:center;justify-content:space-between;gap:12px;animation:dock-rise .42s var(--ease-out-quint) .56s both}.course-card-cta>span{color:var(--muted);font-size:.78rem;font-weight:850;letter-spacing:.06em;text-transform:uppercase}.course-card-cta .action-row{margin:0;flex-wrap:wrap}.page-visual{min-width:0;overflow:visible}.visual-composition{display:grid;gap:12px}.structured-visual{display:flex;flex-direction:column;align-items:stretch;min-height:360px;border:1px solid rgba(40,23,21,.1);border-radius:20px;background:#fdfcf8;box-shadow:0 2px 10px #34221b0d;overflow:hidden}.v-title{text-align:center;font-size:1.35rem;font-weight:800;color:#20100f;padding:18px 20px 6px;letter-spacing:.01em;line-height:1.2;flex-shrink:0}.v-canvas{position:relative;flex:1;min-height:300px;margin:12px;border-radius:22px;overflow:hidden;background:linear-gradient(135deg,#ffffff70,#ffffff14),#fffdf670}.v-canvas--process{background:linear-gradient(90deg,#78c9f21a,#e8b42514 50%,#62cbbd1a),#fffdf66b}.v-canvas--concept_map{background:radial-gradient(circle at 50% 50%,rgba(255,230,123,.22),transparent 26%),radial-gradient(circle at 20% 24%,rgba(120,201,242,.18),transparent 22%),radial-gradient(circle at 82% 76%,rgba(200,234,216,.2),transparent 24%),#fffdf666}.v-canvas--comparison{background:linear-gradient(90deg,rgba(120,201,242,.12),rgba(120,201,242,.04) 40%,transparent 40%,transparent 60%,rgba(255,191,145,.04) 60%,rgba(255,191,145,.12)),#fffdf66b}.v-canvas--cause_effect{background:linear-gradient(90deg,#d8dcff1f,#ffe67b14 50%,#c8ead81f),#fffdf66b}.v-canvas--timeline{background:linear-gradient(180deg,transparent 48%,rgba(40,23,21,.06) 49%,rgba(40,23,21,.06) 51%,transparent 52%),#fffdf66b}.v-canvas--hierarchy{background:linear-gradient(180deg,rgba(255,230,123,.1),transparent 30%),#fffdf66b}.v-canvas--classification{background:#fffdf680}.v-canvas--experiment{background:linear-gradient(180deg,#d8dcff1a,#c8ead81a),#fffdf66b}.v-canvas--mechanism{background:radial-gradient(circle at 50% 45%,rgba(232,180,37,.12),transparent 30%),linear-gradient(90deg,rgba(120,201,242,.08),transparent 30%,transparent 70%,rgba(98,203,189,.08)),#fffdf66b}.v-canvas--cycle{background:radial-gradient(circle at 50% 50%,rgba(216,220,255,.18),transparent 30%),radial-gradient(circle at 20% 30%,rgba(255,230,123,.12),transparent 22%),radial-gradient(circle at 80% 70%,rgba(200,234,216,.14),transparent 24%),#fffdf666}.v-canvas--input_output{background:linear-gradient(90deg,rgba(120,201,242,.08),transparent 30%,transparent 70%,rgba(98,203,189,.08)),#fffdf66b}.v-canvas--formula_explanation{background:#fffdf680}.mastery-red{background:linear-gradient(180deg,#ffebee,#ffcdd2 70%,#ef9a9a);border-color:#c6282880}.mastery-yellow{background:linear-gradient(180deg,#fffde7,#fff9c4 70%,#fff176);border-color:#f5b40080}.mastery-green{background:linear-gradient(180deg,#e8f5e9,#c8e6c9 70%,#a5d6a7);border-color:#2e7d3280}.mastery-unlearned{background:linear-gradient(180deg,#f5f5f5,#e0e0e0 70%,#bdbdbd);border-color:#75757559;opacity:.55}.mastery-unlearned strong,.mastery-unlearned small{color:#757575b3}.kg-container{position:relative;border-radius:22px;min-height:0;max-height:100%;display:flex;flex-direction:column;overflow:hidden}.kg-viewport{position:relative;overflow:auto;border-radius:22px;touch-action:pan-x pan-y;-webkit-user-select:none;user-select:none;flex:1;min-height:0}.kg-world{transform-origin:center top;transition:transform .18s ease-out;will-change:transform;width:100%}.kg-controls{position:absolute;bottom:14px;right:14px;display:flex;gap:6px;z-index:10}.kg-zoom-btn{width:36px;height:36px;border-radius:12px;border:1.5px solid rgba(40,23,21,.18);background:#fffdf6f0;box-shadow:0 2px 8px #34221b14;font-size:1.1rem;font-weight:700;color:#281715b3;cursor:pointer;display:grid;place-items:center;line-height:1;-webkit-tap-highlight-color:transparent}.kg-zoom-btn:active{background:#f5cb492e;transform:scale(.94)}.kg-detail-panel{position:absolute;top:12px;right:12px;width:240px;max-height:80%;background:#fffdf6f7;border:1.5px solid rgba(40,23,21,.16);border-radius:18px;box-shadow:0 12px 32px #34221b1f;z-index:20;overflow-y:auto;overscroll-behavior:contain}.kg-detail-header{display:flex;align-items:center;justify-content:space-between;padding:12px 14px 8px;border-bottom:1px solid rgba(40,23,21,.06)}.kg-detail-title{font-size:.88rem;font-weight:850;line-height:1.2;overflow-wrap:anywhere}.kg-detail-close{width:26px;height:26px;border:none;background:none;font-size:1.2rem;color:#75675f99;cursor:pointer;border-radius:8px;display:grid;place-items:center}.kg-detail-close:hover{background:#2817150f}.kg-detail-body{padding:10px 14px 14px;display:grid;gap:10px}.kg-detail-mastery{display:flex;align-items:center;gap:7px}.kg-detail-mastery-dot{width:12px;height:12px;border-radius:50%;border:1.5px solid rgba(40,23,21,.12);flex-shrink:0}.kg-detail-mastery-dot.mastery-dot-red{background:#ef5350}.kg-detail-mastery-dot.mastery-dot-yellow{background:#fdd835}.kg-detail-mastery-dot.mastery-dot-green{background:#66bb6a}.kg-detail-mastery-dot.mastery-dot-gray{background:#bdbdbd}.kg-detail-mastery-text{font-size:.74rem;font-weight:750;color:#4f423ae6}.kg-detail-desc{font-size:.78rem;line-height:1.4;color:#4f423ad9;margin:0;overflow-wrap:anywhere}.kg-detail-prereqs{font-size:.68rem;color:#75675fcc;line-height:1.3}.kg-detail-prereqs strong{font-weight:800;color:#4f423ad9;display:block;margin-bottom:2px}.kg-detail-learn-btn{width:100%;padding:10px;border:none;border-radius:12px;background:linear-gradient(135deg,#f5cb49,#dea21c);color:#281715eb;font-size:.82rem;font-weight:850;cursor:pointer;-webkit-tap-highlight-color:transparent;box-shadow:0 3px #2817151a,0 6px 14px #34221b14}.kg-detail-learn-btn:active{transform:translateY(1px);box-shadow:0 1px #2817151a,0 3px 8px #34221b0f}.kg-layer-bg,.kg-layer-label{pointer-events:none}.kg-node{transition:transform .12s ease,box-shadow .12s ease}.kg-node:hover{box-shadow:0 0 0 3px #a35e281f,0 8px 18px #34221b1a}.kg-node--dim{opacity:.25;pointer-events:none}.kg-sidebar-content{display:flex;flex-direction:column;gap:10px}.kg-sidebar-grade{display:flex;flex-direction:column;align-items:flex-start;gap:2px;padding:10px 12px;border-radius:14px;background:linear-gradient(135deg,#78c9f21a,#c8ead814);border:1px solid rgba(40,23,21,.06);cursor:pointer;transition:background .15s;text-align:left;width:100%}.kg-sidebar-grade:hover{background:linear-gradient(135deg,#78c9f229,#c8ead81f)}.kg-sidebar-grade strong{font-size:.88rem;font-weight:850}.kg-sidebar-grade-stats{font-size:.68rem;font-weight:750;color:#4f423aa6}.kg-sidebar-chapters{display:flex;flex-direction:column;gap:2px}.kg-sidebar-chapter{display:flex;align-items:center;justify-content:space-between;padding:9px 10px;border-radius:12px;border:none;background:#ffffff73;cursor:pointer;text-align:left;width:100%;transition:background .12s}.kg-sidebar-chapter:hover{background:#ffffffbf}.kg-sidebar-chapter-name{font-size:.78rem;font-weight:750;color:#281715cc}.kg-sidebar-chapter-progress{font-size:.65rem;font-weight:700;color:#4f423a80;white-space:nowrap}.v-canvas--knowledge_graph{background:linear-gradient(180deg,rgba(120,201,242,.06) 0%,transparent 15%,transparent 85%,rgba(200,234,216,.06) 100%),#fffdf670;min-height:600px;overflow:visible}@media (max-width: 640px){.kg-detail-panel{position:fixed;top:auto;bottom:0;left:0;right:0;width:100%;max-height:55dvh;border-radius:22px 22px 0 0}.kg-viewport,.kg-container{border-radius:0}}.lm-overlay-shell{width:100%;max-width:940px;height:min(740px,var(--overlay-panel-height));max-height:var(--overlay-panel-height);background:linear-gradient(180deg,#fffdf6fa,#fcfaf2fa);backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px);border-radius:26px;box-shadow:0 12px 48px #34221b29;display:flex;flex-direction:column;overflow-y:auto;overflow-x:hidden;animation:block-reveal .32s var(--ease-out-quint) 50ms both}.lm-content-host{flex:1;position:relative;min-height:0;display:flex;flex-direction:column;overflow:visible}.lm-content-host.is-full-map{overflow:hidden}@media (max-width: 640px){.lm-overlay-shell{border-radius:0}}.v-aspect-label{position:absolute;transform:translate(-50%,-50%);text-align:center;font-size:.72rem;font-weight:700;color:var(--muted);background:#fffdf6d9;padding:2px 8px;border-radius:6px;z-index:2}.v-dim-cell{position:absolute;transform:translate(-50%,-50%);text-align:center;font-size:.78rem;padding:6px 10px;border-radius:8px;z-index:2;background:#fffdf6e6;border:1.5px solid rgba(40,23,21,.08)}.v-phase-bg{position:absolute;top:8%;height:84%;border-radius:10px;z-index:0;font-size:.68rem;font-weight:700;text-align:center;padding-top:6px;color:#2817152e;letter-spacing:.05em}.v-phase-input{background:#78c9f20f}.v-phase-transform{background:#e8b4250f}.v-phase-output{background:#62cbbd0f}.v-group-box{position:absolute;border:1.5px solid rgba(40,23,21,.1);border-radius:12px;background:#fffdf699;padding:8px;z-index:1;overflow:hidden}.v-group-header{font-size:.82rem;font-weight:700;margin-bottom:4px;color:#281715b3;border-bottom:1px solid rgba(40,23,21,.06);padding-bottom:4px}.v-group-item{font-size:.78rem;padding:3px 0}.v-group-item small{display:block;color:var(--muted);font-size:.7rem}.v-criterion-label{position:absolute;bottom:6%;left:50%;transform:translate(-50%);font-size:.72rem;color:var(--muted);font-weight:600;z-index:2}.v-system-box{position:absolute;border:2px solid rgba(40,23,21,.15);border-radius:12px;background:#fffdf6d9;display:flex;flex-direction:column;align-items:center;justify-content:center;z-index:1;padding:10px}.v-system-box strong{font-size:.88rem}.v-system-box small{font-size:.72rem;color:var(--muted);text-align:center}.v-formula-bar{position:absolute;left:10%;width:80%;top:8%;text-align:center;font-size:1.3rem;font-weight:800;letter-spacing:.03em;color:#281715cc;background:#fffdf6e6;border:1.5px solid rgba(40,23,21,.08);border-radius:10px;padding:10px 16px;z-index:2}.v-lines{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;z-index:1;pointer-events:none}.v-caption{text-align:center;color:#5a4d45;font-size:.84rem;line-height:1.38;padding:6px 20px 16px;flex-shrink:0}.v-header{padding:14px 16px 0}.v-title-wrap{max-width:88%}.v-kind{color:var(--muted);font-size:.62rem;font-weight:850;letter-spacing:.08em;text-transform:uppercase}.v-node{position:absolute;transform:translate(-50%,-50%);min-width:112px;max-width:172px;min-height:58px;padding:10px 12px;border-radius:18px;border:1.5px solid rgba(40,23,21,.68);background:#fffdf6eb;box-shadow:0 4px #2817151a,0 14px 26px #34221b12;display:grid;justify-items:start;align-content:center;gap:4px;text-align:left;font:inherit;z-index:3;cursor:pointer;-webkit-tap-highlight-color:transparent}.mindmap-node{-webkit-tap-highlight-color:transparent}.visual-link-layer path.highlighted{stroke:var(--brand, #a35e28);stroke-width:2.5;opacity:1}.visual-note[data-action=select-node]{cursor:pointer}.visual-note.selected{background:#a35e2814;border-left:3px solid var(--brand, #a35e28);padding-left:9px}.visual-note-rail{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;padding:0 2px}.visual-note{display:grid;grid-template-columns:24px 1fr;align-items:start;gap:5px 10px;border-top:1px solid rgba(40,23,21,.13);padding:9px 2px 0}.visual-note span{width:24px;height:24px;display:grid;place-items:center;border-radius:50%;border:1.5px solid var(--coin-border);background:var(--coin-blue);box-shadow:var(--coin-shadow);color:#20100f;font-size:.68rem;font-weight:850;align-self:center}.visual-note:nth-child(2n) span{background:var(--coin-lavender)}.visual-note:nth-child(3n) span{background:var(--coin-mint)}.visual-note strong{align-self:center;font-size:.7rem;line-height:1.1}.content-page .visual-note p,.visual-note p{grid-column:2;margin:0;color:var(--muted);line-height:1.34;font-size:.72rem}.visual-expand-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:8px}.visual-expand-header strong{font-size:.82rem;color:var(--ink)}.visual-expand-close{background:none;border:none;font-size:1.1rem;color:var(--muted);cursor:pointer;padding:0 4px;line-height:1;border-radius:4px}.visual-expand-close:hover{background:#2817150f;color:var(--ink)}.visual-expand-card{background:#6c90ef0f;border-radius:10px;padding:10px 12px;margin-bottom:8px}.visual-expand-section{margin-bottom:6px}.visual-expand-section:last-child{margin-bottom:0}.visual-expand-label{display:inline-block;font-size:.62rem;font-weight:700;color:var(--coin-blue-text, #4a5fa8);background:#6c90ef1f;padding:1px 6px;border-radius:4px;margin-bottom:3px;text-transform:uppercase;letter-spacing:.3px}.visual-expand-section p{margin:0;font-size:.74rem;color:var(--ink);line-height:1.4}@keyframes slideUp{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:translateY(0)}}.memory-panel{display:flex;flex-direction:column;gap:10px}.knowledge-card{position:relative;border:1px solid rgba(40,23,21,.1);border-radius:16px;background:#ffffff8a;padding:0;perspective:600px;cursor:pointer}.knowledge-card .card-inner{position:relative;width:100%;transition:transform .5s cubic-bezier(.4,0,.2,1);transform-style:preserve-3d}.knowledge-card.flipped .card-inner{transform:rotateY(180deg)}.knowledge-card .card-front,.knowledge-card .card-back{padding:13px;backface-visibility:hidden;-webkit-backface-visibility:hidden}.knowledge-card .card-front{position:relative}.knowledge-card .card-back{position:absolute;top:0;left:0;width:100%;min-height:100%;box-sizing:border-box;transform:rotateY(180deg);display:flex;flex-direction:column;justify-content:space-between;background:#ffffff8a;border-radius:16px;pointer-events:none;overflow:hidden}.knowledge-card.flipped .card-back{pointer-events:auto}.knowledge-card.flipped .card-front{pointer-events:none;visibility:hidden}.knowledge-card .card-flip-btn{margin-top:8px;padding:4px 12px;border:1px solid rgba(40,23,21,.15);border-radius:8px;background:#ffffff80;font-size:.78rem;color:var(--muted);cursor:pointer;transition:background .2s}.knowledge-card .card-flip-btn:hover{background:#ffffffe6}.knowledge-card .card-recall{display:flex;gap:8px;margin-top:10px}.knowledge-card .card-recall button{flex:1;padding:6px 0;border:1px solid rgba(40,23,21,.12);border-radius:8px;background:#fff9;font-size:.8rem;cursor:pointer;transition:background .2s,border-color .2s}.knowledge-card .card-recall button:hover{background:#ffffffe6}.knowledge-card .card-recall-hint{color:var(--muted);font-size:.8rem;opacity:.7;margin-bottom:4px}.missed-review{margin-top:16px;padding-top:16px;border-top:1px dashed rgba(40,23,21,.15)}.missed-review-label{font-size:.82rem;font-weight:600;color:#f87171;margin-bottom:8px}.knowledge-card.recall-got .card-front{border-color:#34d399}.knowledge-card.recall-miss .card-front{border-color:#f87171}.knowledge-card.recall-got:after,.knowledge-card.recall-miss:after{position:absolute;top:8px;right:10px;font-size:.85rem}.knowledge-card.recall-got:after{content:"✓";color:#34d399}.knowledge-card.recall-miss:after{content:"✗";color:#f87171}.knowledge-card h3{margin-bottom:7px;font-size:.95rem}.knowledge-card p,.knowledge-card small{color:var(--muted);line-height:1.42;font-size:.84rem}.knowledge-card p{margin-bottom:8px}.provider-note{margin-top:auto;padding-top:10px;color:var(--muted);border-top:1px solid rgba(40,23,21,.1);font-size:.84rem;line-height:1.45}.learn-more-link{display:inline-flex;align-items:center;gap:4px;margin-top:8px;font-size:.78rem;font-weight:700;font-family:inherit;color:var(--blue-deep);border:1px solid rgba(40,23,21,.12);border-radius:8px;padding:4px 10px;background:#ffffff80;cursor:pointer;transition:background .2s,border-color .2s}.learn-more-link:hover{background:#ffffffe6;border-color:#28171540}.learn-more-link svg{width:12px;height:12px}.learn-more-section{margin-top:16px;padding-top:14px;border-top:1px dashed rgba(40,23,21,.12)}.learn-more-heading{font-size:.78rem;font-weight:850;color:var(--muted);text-transform:uppercase;letter-spacing:.08em;margin-bottom:8px}.learn-more-chips{display:flex;flex-wrap:wrap;gap:8px}.learn-more-chip{display:flex;flex-direction:column;gap:2px;padding:8px 12px;border:1px solid rgba(40,23,21,.1);border-radius:12px;background:#d8dcff3d;font-family:inherit;color:inherit;cursor:pointer;text-align:left;transition:background .2s,border-color .2s,box-shadow .2s}.learn-more-chip:hover{background:#d8dcff6b;border-color:#28171533;box-shadow:0 4px 12px #34221b0f}.learn-more-chip-term{font-size:.82rem;font-weight:800;color:var(--ink)}.learn-more-chip-def{font-size:.72rem;color:var(--muted);line-height:1.35}.provider-note strong,.provider-note span{display:block}.tool-plan{border:1px solid rgba(40,23,21,.1);border-radius:16px;background:#78c9f21a;padding:13px}.tool-plan .panel-heading{margin-bottom:8px}.tool-plan p,.tool-plan li{color:var(--muted);font-size:.82rem;line-height:1.38}.tool-plan p{margin-bottom:9px}.tool-plan ul{margin:9px 0 0;padding-left:18px}.tool-tags{display:flex;flex-wrap:wrap;gap:6px}.tool-tags span{border-radius:999px;padding:5px 7px;background:#ffffffb3;color:#4d5d64;font-size:.7rem;font-weight:850}.overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:20;display:grid;place-items:center;min-height:100dvh;padding:var(--overlay-padding);overflow:auto;background:#2c26207a;-webkit-backdrop-filter:blur(5px);backdrop-filter:blur(5px);animation:overlayFadeIn .25s var(--ease-out-quart)}@keyframes overlayFadeIn{0%{opacity:0}to{opacity:1}}.overlay>*{animation:overlayPanelIn .3s var(--ease-out-quart)}@keyframes overlayPanelIn{0%{opacity:0;transform:translateY(12px) scale(.98)}to{opacity:1;transform:translateY(0) scale(1)}}.player-shell,.map-shell,.practice-shell{width:min(1160px,100%);height:min(820px,var(--overlay-panel-height));max-height:var(--overlay-panel-height);display:grid;grid-template-rows:auto 1fr auto;overflow:hidden}.player-top,.player-bottom{padding:14px 18px;display:flex;align-items:center;justify-content:space-between;gap:14px;border-bottom:1px solid rgba(40,23,21,.1)}.player-bottom{border-top:1px solid rgba(40,23,21,.1);border-bottom:0}.progress-dots{display:flex;gap:8px;align-items:center}.progress-dots span{width:12px;height:12px;border-radius:50%;border:1px solid rgba(40,23,21,.22);background:#fffdf6cc;box-shadow:inset 0 1px #ffffffe6}.progress-dots span.filled{background:var(--coin-blue);border-color:var(--coin-border);box-shadow:inset 0 1px #ffffffc7,0 1px #281715c7,0 4px 8px #34221b14}.player-page{min-height:0;overflow:auto;padding:clamp(18px,3vw,42px)}.hook-page{min-height:100%;display:flex;align-items:center;justify-content:center;padding:clamp(20px,4vh,48px) clamp(16px,3vw,40px)}.hook-content{max-width:600px;text-align:center}.hook-content .lesson-label{margin-bottom:12px}.hook-page h2{font-size:clamp(1.5rem,2.6vw,2.2rem);line-height:1.25;letter-spacing:-.01em;margin-bottom:16px}.hook-body{font-size:.95rem;line-height:1.6;color:#281715b8;margin-bottom:20px}.hook-hints{display:flex;flex-wrap:wrap;gap:8px;justify-content:center;margin-top:8px;align-items:center}.hook-hints-label{color:var(--muted);font-size:.78rem;font-weight:600}.hook-hint-tag{border:1px solid rgba(40,23,21,.1);border-radius:999px;background:#ffffff8c;padding:4px 12px;color:#281715b8;font-size:.78rem;font-weight:500}.hook-hint-btn{border:1px solid rgba(40,23,21,.12);border-radius:999px;background:#ffffff8c;padding:6px 14px;color:var(--ink);font-size:.8rem;font-weight:550;cursor:pointer;transition:all .14s}.hook-hint-btn:hover{background:var(--mint);border-color:#28171533}.content-page{min-height:100%;display:grid;grid-template-columns:minmax(280px,.68fr) minmax(420px,1.12fr);align-items:start;align-content:start;gap:clamp(22px,4vw,56px);padding-right:clamp(10px,2vw,28px);padding-top:clamp(6px,1.5vh,18px)}.content-page.no-visual{grid-template-columns:1fr minmax(120px,.35fr);max-width:920px}.content-page h2,.cards-page h2,.sheet h2,.map-shell h2{margin-bottom:12px;font-size:clamp(1.5rem,2.6vw,2.4rem);line-height:1.2;letter-spacing:-.01em}.content-page h2{margin-bottom:10px;font-size:clamp(1.45rem,2.15vw,2.55rem);line-height:1.06}.content-page p{color:#51443e;font-size:.96rem;line-height:1.56}.explanation-steps{display:grid;gap:10px}.step-block{padding:16px 18px;border:1px solid rgba(40,23,21,.07);border-radius:14px;background:#ffffff80;animation:stepFadeIn .35s ease-out}@keyframes stepFadeIn{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}.step-block .step-content p{margin:0}.step-block .step-point{margin:0 0 6px;font-size:1rem;font-weight:700;color:var(--ink, #281614);line-height:1.35}.step-body{display:flex;flex-direction:column;gap:5px}.step-block .step-why{font-size:.9rem;line-height:1.55;color:var(--ink, #281614);opacity:.88}.step-block .step-how{margin-top:6px;padding:6px 10px;border-left:3px solid var(--brand-soft, rgba(163, 94, 40, .2));background:linear-gradient(135deg,#a35e280d,#a35e2805);border-radius:0 10px 10px 0;font-size:.88rem;line-height:1.5}.step-how-label{font-weight:650;color:var(--brand, #a35e28);opacity:.7}.step-label{font-weight:650;color:var(--brand, #a35e28);opacity:.7;margin-right:4px}.step-def{font-size:.92rem;line-height:1.5;padding:6px 10px;background:#a35e280f;border-radius:8px;border-left:3px solid var(--brand, #a35e28)}.step-analogy{font-size:.86rem;line-height:1.45;color:var(--muted);font-style:italic}.step-time{font-size:.88rem;color:var(--brand, #a35e28);font-weight:650}.step-side{font-size:.88rem;line-height:1.45;padding:4px 10px;border-radius:8px;background:#73c8f414}.step-label-a{display:inline-block;width:20px;height:20px;line-height:20px;text-align:center;border-radius:50%;background:var(--brand, #a35e28);color:#fff;font-size:.7rem;font-weight:700;margin-right:6px}.step-label-b{display:inline-block;width:20px;height:20px;line-height:20px;text-align:center;border-radius:50%;background:var(--mint);color:#20100f;font-size:.7rem;font-weight:700;margin-right:6px}.step-block.pending{opacity:.2;animation:none}.step-block.pending .step-num{display:none}.step-reveal-btn{border:1.5px solid var(--brand, #a35e28);border-radius:10px;background:#fdfcf8f0;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);padding:10px 22px;color:var(--brand, #a35e28);font-size:.84rem;font-weight:650;cursor:pointer;transition:all .14s;box-shadow:0 4px 16px #34221b1a}.page-nav-side{position:sticky;top:40%;align-self:start;display:flex;justify-content:center}.step-reveal-btn:hover{background:#a35e2824}.inline-term{border:0;border-bottom:2px solid var(--blue-deep);background:transparent;padding:0 2px;font-weight:850}.term-row{display:flex;gap:8px;flex-wrap:wrap}.term-row button{border:1px solid rgba(40,23,21,.18);border-radius:999px;padding:7px 10px;background:var(--lavender);font-weight:850;font-size:.82rem}.term-popover{position:relative;margin-top:14px;border:1.5px solid var(--ink);border-radius:16px;background:var(--panel);padding:14px;box-shadow:0 14px 28px #34221b24}.term-popover .mini{position:absolute;right:8px;top:8px}.term-popover p{margin:8px 0 12px;font-size:.9rem}.term-popover button:last-child{border:0;background:transparent;color:var(--blue-deep);font-weight:850;padding:0}.cards-page{max-width:1040px;margin:0 auto}.card-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}.sheet-top{display:flex;align-items:flex-start;justify-content:space-between;gap:18px;padding:18px;border-bottom:1px solid rgba(40,23,21,.1)}.sheet-top h2{margin-bottom:0}.map-shell{grid-template-rows:auto 1fr}.map-layout{min-height:0;display:grid;grid-template-columns:minmax(0,1fr) 320px}.mindmap-canvas{position:relative;min-height:0;overflow:hidden;background:linear-gradient(90deg,rgba(120,201,242,.1),transparent 38%),radial-gradient(circle at 18% 50%,rgba(120,201,242,.16),transparent 24%),radial-gradient(circle at 68% 28%,rgba(200,234,216,.22),transparent 28%),#fffdf673}.mindmap-lines{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;pointer-events:none}.mindmap-lines path{fill:none;stroke:#28171542;stroke-width:.5;stroke-linecap:round;stroke-dasharray:4 2;animation:flowDash 1.8s linear infinite}.mindmap-lines path.highlighted{stroke:var(--brand, #a35e28);stroke-width:1;stroke-dasharray:none;animation:none;filter:drop-shadow(0 0 2px rgba(163,94,40,.25))}.mindmap-node{position:absolute;width:min(240px,30%);min-height:72px;transform:translate(-50%,-50%);border:1.5px solid rgba(40,23,21,.72);border-radius:18px;background:var(--mint);padding:11px 12px;text-align:left;box-shadow:0 5px #2817151f;display:grid;gap:5px;animation:cascadeDropIn var(--dur-cascade, .9s) var(--ease-overshoot, cubic-bezier(.34,1.56,.64,1)) both}.mindmap-node .node-emoji{font-size:1.4rem;line-height:1;display:block}.mindmap-node.root{width:min(280px,34%);min-height:88px;border-width:2px;box-shadow:0 6px #28171526,0 12px 28px #34221b1f;z-index:2}.mindmap-node.root .node-emoji{font-size:1.8rem}.mindmap-node.root strong{font-size:1rem}.mindmap-node:nth-of-type(2n){background:var(--lavender)}.mindmap-node:nth-of-type(3n){background:var(--peach)}.mindmap-node.selected{outline:4px solid rgba(120,201,242,.68)}.mindmap-node.locked{opacity:.68}.mindmap-node.completed{border-color:#34d399}.mindmap-node.completed:after{content:"✓";position:absolute;top:-6px;right:-6px;width:20px;height:20px;border-radius:50%;background:#34d399;color:#fff;font-size:.7rem;display:flex;align-items:center;justify-content:center;font-weight:700}.mindmap-node .node-check{display:none}.concept-done-badge{display:inline-block;padding:3px 10px;border-radius:8px;background:#d1fae5;color:#065f46;font-size:.78rem;font-weight:600;margin-bottom:6px}.mindmap-node span{color:var(--muted);text-transform:uppercase;letter-spacing:.07em;font-size:.62rem;font-weight:850}.mindmap-node strong{line-height:1.18;font-size:.9rem}.concept-emoji{font-size:2.4rem;line-height:1;margin-bottom:4px}.mindmap-canvas:before{content:"学习地图";position:absolute;left:18px;top:16px;color:var(--muted);text-transform:uppercase;letter-spacing:.07em;font-size:.66rem;font-weight:850}.concept-detail{border-left:1px solid rgba(40,23,21,.1);padding:22px;display:flex;flex-direction:column;gap:12px;background:#f5efe294}.concept-detail h3{margin-bottom:0;font-size:1.28rem}.concept-detail p{color:var(--muted);line-height:1.5}.concept-lesson-hook{margin-top:-4px;font-size:.88rem;color:var(--ink, #281614);opacity:.72;line-height:1.45}.concept-no-detail{font-size:.85rem;color:var(--muted);opacity:.6;font-style:italic}.visual-expand-hint{font-size:.82rem;color:var(--muted);opacity:.6;font-style:italic}.practice-shell{background:#fffcf3}.practice-title{font-weight:850;color:var(--muted)}.practice-body{min-height:0;overflow:auto;padding:26px}.practice-stage{min-height:100%;display:grid;grid-template-columns:minmax(260px,.82fr) minmax(360px,1.18fr);gap:clamp(18px,4vw,46px);align-items:center}.practice-visual{border:1.5px solid rgba(40,23,21,.86);border-radius:24px;background:linear-gradient(180deg,#c8ead89e,#fffdf6e6),var(--panel);padding:18px;box-shadow:0 18px 42px #34221b1f}.practice-visual-head{display:flex;align-items:center;gap:8px;margin-bottom:18px;color:var(--muted);font-size:.75rem;font-weight:850;letter-spacing:.07em;text-transform:uppercase}.practice-model{display:grid;gap:14px}.practice-anchor{position:relative;border:1.5px solid var(--ink);border-radius:18px;background:#ffffffb8;padding:14px}.practice-anchor:after{content:"";position:absolute;left:24px;top:calc(100% + 1px);width:2px;height:14px;background:#28171538}.practice-anchor strong,.practice-model-node strong{display:block;line-height:1.2}.practice-anchor small,.practice-model-node small{display:block;margin-top:4px;color:var(--muted);font-size:.78rem;line-height:1.32}.practice-node-stack{display:grid;gap:9px}.practice-model-node{display:grid;grid-template-columns:30px 1fr;gap:10px;align-items:start;border:1px solid rgba(40,23,21,.12);border-radius:16px;background:#ffffff9e;padding:10px}.practice-model-node.primary{background:#d8dcff8a}.practice-model-node>span{width:30px;height:30px;display:grid;place-items:center;border-radius:50%;background:var(--coin-blue);border:1.5px solid var(--coin-border);box-shadow:var(--coin-shadow);font-weight:850;font-size:.78rem}.practice-model-node:nth-child(2n)>span{background:var(--coin-lavender)}.practice-model-node:nth-child(3n)>span{background:var(--coin-mint)}.practice-model-node.primary>span{background:var(--coin-peach)}.practice-question h2{max-width:820px;font-size:clamp(1.05rem,2.2vw,1.35rem);line-height:1.5;letter-spacing:0;font-weight:700}.blank{display:inline-block;min-width:clamp(130px,15vw,230px);height:.88em;margin:0 .08em;padding:0 .16em;border-bottom:5px solid var(--blue);color:var(--blue-deep);vertical-align:baseline}.blank.filled{width:auto;height:auto;min-width:0;border-bottom:0;border-radius:999px;background:var(--mint);box-shadow:inset 0 0 0 1.5px #2817152e;padding:.02em .32em .08em}.feedback-box{margin-top:22px;max-width:600px;border-radius:18px;padding:14px 16px;background:var(--mint);border:1px solid rgba(40,23,21,.16)}.feedback-box.wrong{background:#ffd8cf}.feedback-box p{margin:6px 0 0;color:var(--muted);line-height:1.55;word-break:break-word}.knowledge-feedback{margin-top:10px;border-top:1px solid rgba(40,23,21,.12);padding-top:10px;display:grid;gap:4px}.knowledge-feedback span{font-weight:850}.knowledge-feedback small{color:var(--muted);line-height:1.35}.review-btn{margin-top:4px;padding:6px 14px;border:1.5px solid var(--brand, #a35e28);border-radius:999px;background:#a35e280f;color:var(--brand, #a35e28);font-size:.8rem;font-weight:650;cursor:pointer;transition:background .15s}.review-btn:hover{background:#a35e2826}.practice-options{border-top:1px solid rgba(40,23,21,.1);padding:16px;display:grid;grid-template-columns:repeat(4,minmax(0,1fr)) auto;gap:10px}.practice-options button:not(.primary-button){border:1.5px solid rgba(40,23,21,.25);border-radius:16px;background:#ffffffa8;min-height:50px;padding:10px;font-weight:850}.practice-options button.selected{outline:3px solid rgba(120,201,242,.58)}.practice-options button.correct{background:var(--mint)}.drawer-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:24;background:#2c262052}.assistant-drawer{position:fixed;z-index:25;left:50%;bottom:18px;transform:translate(-50%);width:min(760px,calc(100% - 24px));overflow:hidden}.assistant-thread{padding:18px;display:grid;gap:10px}.assistant-thread p{margin-bottom:2px;color:var(--muted);line-height:1.45}.assistant-starters{display:grid;gap:10px}.assistant-starters button{text-align:left;border:1px solid rgba(40,23,21,.14);border-radius:14px;background:#ffffff9e;padding:11px 12px;font-weight:800}.assistant-messages{max-height:min(360px,48vh);overflow:auto;display:grid;gap:9px;padding-right:2px}.assistant-message{width:min(88%,580px);border:1px solid rgba(40,23,21,.12);border-radius:16px;padding:10px 12px;background:#ffffffad}.assistant-message.user{justify-self:end;background:#d8dcff94}.assistant-message.assistant{justify-self:start;background:#c8ead873}.assistant-message.loading{animation:generation-rise .26s var(--ease-out-quint) both}.assistant-message strong{display:block;margin-bottom:4px;font-size:.72rem;color:var(--muted)}.assistant-message p{margin:0;color:#51443e}.assistant-error{margin:0;color:#9b382d!important;font-size:.82rem;font-weight:750}.assistant-input{border-top:1px solid rgba(40,23,21,.1);padding:12px;display:grid;grid-template-columns:1fr auto;gap:8px}.sheet{width:min(720px,100%);max-height:var(--overlay-panel-height);overflow:auto;padding-bottom:18px}.compact-sheet textarea{width:calc(100% - 36px);margin:18px;resize:vertical}.settings-grid{padding:18px;display:grid;grid-template-columns:1fr 1fr;gap:12px}.settings-grid label{display:grid;gap:7px}.settings-grid label span{color:var(--muted);font-size:.76rem;font-weight:850;text-transform:uppercase;letter-spacing:.07em}.settings-grid .wide{grid-column:1 / -1}.sheet-actions{justify-content:space-between;padding:0 18px}.danger-button{border:1.5px solid #672a24;border-radius:13px;min-height:40px;display:inline-flex;align-items:center;justify-content:center;gap:8px;font-weight:850;background:#ffd8cf;color:#672a24;padding:0 14px}.confirm-body{padding:18px}.reset-account-btn{color:#ef4444!important;border-color:#fecaca!important}.reset-account-btn:hover{background:#fef2f2!important}.profile-account-actions{display:grid;gap:10px;margin-top:12px}.profile-account-actions--danger{margin-top:8px;padding-top:16px;border-top:1px dashed rgba(40,23,21,.14)}.confirm-body p{color:var(--muted);line-height:1.48;margin:0}.knowledge-tree-action-sheet{width:min(480px,calc(100vw - 28px))}.knowledge-tree-action-context{display:grid;grid-template-columns:auto minmax(0,1fr);gap:3px 10px;margin:14px 0 12px;padding:12px;border:1px solid rgba(120,201,242,.18);border-radius:12px;background:#78c9f212}.knowledge-tree-action-context span{grid-row:1 / 3;align-self:center;padding:4px 7px;border-radius:999px;background:#78c9f22e;color:#285b75;font-size:.65rem;font-weight:850}.knowledge-tree-action-context strong{overflow:hidden;font-size:.82rem;text-overflow:ellipsis;white-space:nowrap}.knowledge-tree-action-context small{color:#75675fb8;font-size:.68rem;font-weight:720}.knowledge-tree-action-note{font-size:.74rem}@keyframes sweep{0%,35%{transform:translate(-100%)}70%,to{transform:translate(100%)}}@keyframes generation-rise{0%{opacity:0;transform:translateY(8px) scale(.99)}to{opacity:1;transform:translateY(0) scale(1)}}@keyframes progress-line-in{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}@keyframes block-reveal{0%{opacity:0;transform:translateY(12px) scale(.985)}to{opacity:1;transform:translateY(0) scale(1)}}@keyframes card-pop{0%{opacity:0;transform:translateY(10px) scale(.98) rotate(-.18deg)}72%{opacity:1;transform:translateY(-1px) scale(1.006) rotate(.08deg)}to{opacity:1;transform:translateY(0) scale(1) rotate(0)}}@keyframes bite-card-reveal{0%{opacity:0;transform:translateY(14px) scale(.97) rotate(-.45deg)}72%{opacity:1;transform:translateY(-1px) scale(1.01) rotate(.12deg)}to{opacity:1;transform:translateY(0) scale(1) rotate(0)}}@keyframes dock-rise{0%{opacity:0;transform:translateY(18px)}to{opacity:1;transform:translateY(0)}}@keyframes select-tick{0%{transform:translate(0) rotate(0)}28%{transform:translate(3px) rotate(.55deg)}55%{transform:translate(-2px) rotate(-.35deg)}to{transform:translate(0) rotate(0)}}@media (max-width: 900px){.topbar{width:calc(100% - 48px)}.topic-input-wrap{grid-template-columns:1fr}.prompt-box .primary-button{width:100%}.prompt-box h1{font-size:clamp(1.8rem,7vw,3rem)}}@media (max-width: 1160px){body{overflow-x:hidden;overflow-y:auto}.nav-actions .icon-text-button{width:42px;padding:0}.nav-actions .icon-text-button span{display:none}.app-shell{min-height:0;min-height:100dvh;height:auto}.composer,.composer.compact{grid-template-columns:1fr}.course-header{grid-template-columns:auto minmax(0,1fr) auto}.lesson-lobby{min-height:0}.bite-sequence-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.home-primary-grid{grid-template-columns:1fr}.home-quick-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.instant-topic-card{grid-template-columns:1fr}.home-layout.home-layout--with-sidebar{grid-template-columns:220px minmax(0,1fr)}.home-panel-head,.home-weak-layout{grid-template-columns:1fr}.home-panel-head{flex-direction:column}.learning-plan-hero,.learning-plan-current{grid-template-columns:1fr}.learning-plan-current-actions{grid-column:1;grid-row:auto;width:100%}.learning-plan-continue{width:100%}.practice-stage{grid-template-columns:1fr;align-items:start}}@media (max-width: 760px){body{overflow:hidden}.chip-row button{min-height:36px;padding:8px 14px;font-size:.82rem}.app-shell{padding:10px;padding-bottom:calc(10px + env(safe-area-inset-bottom,0px));min-height:100dvh;height:auto}.app-shell--home{height:100dvh;padding:0}.topbar{align-items:flex-start}.composer,.composer.compact{padding:14px;border-radius:18px}.topic-input-wrap{grid-template-columns:1fr}.course-header{grid-template-columns:auto minmax(0,1fr)}.course-title-actions{grid-column:1 / -1;justify-content:flex-start}.primary-button{width:100%}.course-card-cta{position:relative;bottom:auto;align-items:stretch;flex-direction:column;gap:8px}.course-card-cta .primary-button{width:auto}.experience{height:auto;overflow:visible;grid-template-columns:1fr}.course-leftbar,.course-card{height:auto;max-height:none;min-height:0}.lesson-lobby{min-height:0}.course-card-scroll{padding-bottom:14px;overflow:visible}.course-leftbar,.path-panel,.memory-panel{overflow:visible}.content-page,.map-layout{grid-template-columns:1fr}.structured-visual{min-height:280px}.visual-node{width:min(132px,42vw)}.visual-note-rail{grid-template-columns:1fr}.visual-note{grid-template-columns:24px 1fr}.visual-expand-panel{position:static;margin-top:12px}.flow-visual,.flow-visual.compare,.card-grid,.practice-options,.settings-grid,.bite-sequence-grid,.outline-grid{grid-template-columns:1fr}.player-shell,.map-shell,.practice-shell{width:100%;height:100dvh;max-height:100dvh;border-radius:0}.player-top,.player-bottom{padding:10px 12px;flex-wrap:wrap}.player-bottom{padding-bottom:calc(10px + env(safe-area-inset-bottom,0px))}.player-page{padding:16px 14px}.overlay{padding:0;align-items:flex-end}.overlay .sheet,.overlay .compact-sheet,.overlay .discuss-shell{width:100%;max-height:90dvh;border-radius:22px 22px 0 0;overflow-y:auto;padding-bottom:calc(16px + env(safe-area-inset-bottom,0px));-webkit-overflow-scrolling:touch}.practice-body{padding:16px}.practice-question h2{font-size:clamp(1rem,5vw,1.25rem)}.blank{min-width:130px}.course-leftbar{display:none}.home-layout{padding-top:4px}.home-layout.home-layout--with-sidebar{grid-template-columns:1fr}.home-sidebar{position:static;display:grid;grid-template-columns:minmax(0,1fr) auto;min-height:0;max-height:none;padding:10px;border-radius:18px;overflow:hidden}.home-side-grade-card{display:none}.home-sidebar-profile{min-width:48px;width:48px;grid-template-columns:1fr;justify-items:center;flex-shrink:0}.home-sidebar-profile span{display:none}.home-side-nav{display:flex;gap:7px;overflow-x:auto;overflow-y:hidden;padding-bottom:2px;min-width:0;scrollbar-width:none}.home-side-nav::-webkit-scrollbar{display:none}.home-side-nav-btn{width:auto;min-width:116px;white-space:nowrap;flex-shrink:0}.home-panel-shell{min-height:0;padding:14px;border-radius:18px}.home-panel-head h1{font-size:clamp(1.7rem,8vw,2.35rem)}.home-dashboard-stats{width:100%}.home-weak-card,.home-wrong-item,.profile-diagnosis-card{grid-template-columns:1fr}.home-weak-card .primary-button,.profile-diagnosis-card .primary-button,.profile-diagnosis-card .icon-text-button{width:100%}.learning-plan-hero,.learning-plan-current,.learning-plan-roadmap{padding:14px;border-radius:17px}.learning-plan-section-head{align-items:stretch;flex-direction:column}.learning-plan-route-link{width:100%}.learning-plan-current-actions{align-items:stretch;flex-direction:column}.learning-plan-current-actions .wide-soft-button{width:100%}.overlay .learning-route-sheet{width:100%;height:100dvh;max-height:100dvh;overflow:hidden;padding-bottom:0;border-radius:0}.learning-route-head{padding:15px}.learning-route-summary{padding:12px 14px 17px}.learning-route-summary-progress{right:14px;left:14px}.learning-route-scroll{padding:14px 12px calc(24px + env(safe-area-inset-bottom,0px))}.learning-route-chapter-head{top:-14px}.learning-route-item{grid-template-columns:28px 16px minmax(0,1fr)}.learning-route-item>em{grid-column:3;justify-self:start;margin-top:-3px}.home-dashboard{gap:12px}.home-dashboard-head{align-items:flex-start;flex-direction:column;gap:10px}.home-dashboard-stats{width:100%;display:grid;grid-template-columns:repeat(3,minmax(0,1fr))}.home-dashboard-stats span{min-width:0;padding:7px 8px}.home-entry-card{min-height:0;padding:16px;border-radius:18px}.home-map-units,.home-quick-grid{grid-template-columns:1fr}.home-quick-card{min-height:96px}.instant-topic-card{padding:14px;border-radius:18px}.instant-topic-card .topic-input-wrap{grid-template-columns:1fr}.home-content{width:100%}.lp-path-scroll{padding-bottom:12px}.lp-node{width:76px;min-height:68px}.lp-node--current{width:88px;min-height:80px}.lp-node--done{width:64px;min-height:56px}.lp-banner-text{font-size:.72rem}.recent-cards{gap:6px}.knowledge-card .card-inner{min-height:100px}.mindmap-canvas{height:400px}.mindmap-node{width:min(180px,50%);min-height:56px;padding:8px 10px}.mindmap-node strong{font-size:.82rem}.bite-sequence-grid button{min-height:90px}.hook-page{padding:20px 14px}.term-popover{position:fixed;left:10px!important;right:10px!important;top:auto!important;bottom:calc(60px + env(safe-area-inset-bottom,0px))!important;max-width:none;z-index:30}.mindmap-node.root{width:min(200px,55%);min-height:64px}.mindmap-node .node-emoji{font-size:1.1rem}.concept-emoji{font-size:1.8rem}.structured-visual{min-height:330px;border-radius:20px}.v-header{padding:14px 14px 0}.v-title-wrap{max-width:100%}.v-title{font-size:1.02rem}.v-caption{font-size:.76rem}.v-canvas{min-height:230px;margin:10px;border-radius:18px}.v-node{min-width:88px;max-width:128px;min-height:46px;padding:8px 9px;border-radius:14px}.v-node strong{font-size:.76rem}.v-node small,.v-edge-label,.visual-relation-chip small{font-size:.58rem}.visual-relation-chip{grid-template-columns:1fr;justify-items:start}.create-dialog{margin:0 10px;border-radius:22px 22px 0 0;max-height:min(88dvh,var(--overlay-panel-height));overflow-y:auto;padding-bottom:calc(16px + env(safe-area-inset-bottom,0px));-webkit-overflow-scrolling:touch}}@media (max-height: 720px){:root{--content-panel-height: calc(100dvh - 7rem) }.site-footer{display:none}.course-leftbar,.course-card,.lm-sidebar{min-height:0}.prompt-home{margin:0}}@media (prefers-reduced-motion: reduce){*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;scroll-behavior:auto!important;transition-duration:.01ms!important}}.discuss-fab{position:absolute;bottom:16px;right:16px;width:44px;height:44px;border-radius:50%;border:1.5px solid var(--line);background:var(--panel);box-shadow:0 4px 16px #34221b1a;display:flex;align-items:center;justify-content:center;transition:transform .2s var(--ease-out-quart),box-shadow .2s var(--ease-out-quart);z-index:5}.discuss-fab:hover{transform:scale(1.08);box-shadow:0 6px 24px #34221b26}.discuss-fab svg{width:20px;height:20px;stroke:var(--blue-deep)}.hook-page,.cards-page,.content-page>div:first-child{position:relative}.flag-btn{position:absolute;top:8px;right:8px;width:28px;height:28px;border-radius:50%;border:none;background:transparent;display:flex;align-items:center;justify-content:center;opacity:0;transition:opacity .2s}.knowledge-card:hover .flag-btn{opacity:1}.flag-btn svg{width:14px;height:14px;stroke:var(--muted)}.flag-btn:hover svg{stroke:var(--rose)}.dashboard-stats{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;margin-bottom:16px}.stat-card{background:var(--panel);border:1px solid var(--line);border-radius:16px;padding:16px 12px;text-align:center;display:flex;flex-direction:column;align-items:center;gap:4px}.stat-card svg{width:22px;height:22px;stroke:var(--blue-deep);margin-bottom:4px}.stat-card strong{font-size:1.5rem;font-weight:800;color:var(--ink)}.stat-card span{font-size:.8rem;color:var(--muted)}.regenerate-btn{border:1px solid rgba(40,23,21,.1);border-radius:999px;background:#ffffff80;padding:5px 12px;color:var(--muted);font-size:.74rem;font-weight:600;cursor:pointer;margin-top:12px;transition:all .14s}.regenerate-btn:hover{background:var(--mint);color:var(--ink);border-color:#2817152e}.floating-tutor{position:fixed;bottom:80px;right:24px;width:48px;height:48px;border-radius:50%;background:var(--blue);color:#fff;border:none;box-shadow:0 4px 16px #2c86b54d;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all .2s;z-index:100}.floating-tutor:hover{transform:scale(1.1);box-shadow:0 6px 24px #2c86b566}.floating-tutor svg{width:22px;height:22px}.discuss-shell{position:relative;max-width:540px;margin:48px auto;background:var(--panel);border-radius:var(--radius);box-shadow:var(--shadow);display:flex;flex-direction:column;max-height:min(80dvh,var(--overlay-panel-height));overflow:hidden}.discuss-thread{flex:1;overflow-y:auto;padding:16px 20px;display:flex;flex-direction:column;gap:10px}.discuss-msg{padding:10px 14px;border-radius:14px;max-width:85%;animation:fadeIn .2s ease-out}.discuss-msg strong{font-size:.78rem;display:block;margin-bottom:2px}.discuss-msg p{margin:0;font-size:.9rem;line-height:1.5}.discuss-msg.role-teacher{background:var(--blue);color:#fff;align-self:flex-start;border-bottom-left-radius:4px}.discuss-msg.role-teacher strong{color:#fffc}.discuss-msg.role-student-a{background:var(--mint);align-self:flex-end;border-bottom-right-radius:4px}.discuss-msg.role-student-b{background:var(--lavender);align-self:flex-end;border-bottom-right-radius:4px}.discuss-msg[role=user]{background:var(--peach);align-self:center}.discuss-loading{text-align:center;padding:24px;color:var(--muted);display:flex;flex-direction:column;align-items:center;gap:8px}.discuss-loading svg{width:28px;height:28px;animation:spin 1s linear infinite}.discuss-chips{display:flex;gap:8px;padding:0 20px 8px;flex-wrap:wrap}.discuss-chips button{border:1px solid var(--line);border-radius:999px;background:#fff9;padding:5px 12px;font-size:.78rem;cursor:pointer;transition:all .14s}.discuss-chips button:hover{background:var(--mint);border-color:#2817152e}.quiz-type-tabs{display:flex;gap:4px;padding:8px 16px;border-bottom:1px solid var(--line);background:var(--panel)}.quiz-type-tab{border:none;background:transparent;padding:6px 14px;border-radius:999px;font-size:.8rem;font-weight:600;cursor:pointer;color:var(--muted);transition:all .14s}.quiz-type-tab:hover{background:#fff9}.quiz-type-tab.active{background:var(--blue);color:#fff}.order-items{display:flex;flex-direction:column;gap:8px;margin-top:12px}.order-item{display:flex;align-items:center;gap:10px;padding:10px 14px;background:var(--panel);border:1px solid var(--line);border-radius:12px;transition:all .14s}.order-item:hover{border-color:var(--blue)}.order-text{flex:1;font-size:.9rem}.order-num{width:24px;height:24px;border-radius:50%;background:var(--blue);color:#fff;display:flex;align-items:center;justify-content:center;font-size:.75rem;font-weight:700;flex-shrink:0}.order-arrows{display:flex;flex-direction:column;gap:2px}.order-arrows button{border:none;background:transparent;cursor:pointer;font-size:.7rem;padding:2px 6px;border-radius:4px;color:var(--muted);transition:all .1s}.order-arrows button:hover{background:var(--blue);color:#fff}.order-arrows button:disabled{opacity:.3;cursor:default}.order-arrows button:disabled:hover{background:transparent;color:var(--muted)}.short-answer-input{width:100%;min-height:80px;padding:12px;border:1px solid var(--line);border-radius:12px;font-family:inherit;font-size:.9rem;resize:vertical;margin-top:12px;background:var(--panel)}.short-answer-input:focus{outline:none;border-color:var(--blue)}.practice-deep-explanation{margin-top:8px;padding:10px 14px;background:#ffffff80;border-radius:10px;border-left:3px solid var(--blue-deep)}.practice-deep-explanation p{margin:0;font-size:.85rem;line-height:1.6}.dive-deeper-body{padding:16px 20px}.dive-deeper-options{display:flex;gap:12px;margin-top:16px}.dive-deeper-btn{flex:1;padding:16px;border:2px solid var(--line);border-radius:16px;background:#fff9;cursor:pointer;text-align:left;transition:all .2s}.dive-deeper-btn:hover{border-color:var(--blue);background:#78c9f214}.dive-deeper-btn strong{display:block;font-size:.95rem;margin-bottom:4px}.dive-deeper-btn small{color:var(--muted);font-size:.8rem}.sandbox-shell{position:relative;max-width:540px;margin:48px auto;background:var(--panel);border-radius:var(--radius);box-shadow:var(--shadow);max-height:min(80dvh,var(--overlay-panel-height));overflow-y:auto}.sandbox-body{padding:16px 20px}.sandbox-scenario{font-size:.95rem;line-height:1.6;margin-bottom:16px}.sandbox-controls{margin-bottom:16px}.sandbox-param-label{font-weight:600;font-size:.85rem;margin-bottom:8px}.sandbox-options{display:flex;gap:8px;flex-wrap:wrap}.sandbox-opt{border:1px solid var(--line);border-radius:999px;background:#fff9;padding:6px 16px;font-size:.85rem;cursor:pointer;transition:all .14s}.sandbox-opt:hover{border-color:var(--blue)}.sandbox-opt.selected{background:var(--blue);color:#fff;border-color:var(--blue)}.sandbox-result{padding:14px 16px;background:#c8ead84d;border-radius:12px;border-left:3px solid var(--green)}.sandbox-result p{margin:0;font-size:.9rem;line-height:1.6}.error-report-btn{position:absolute;top:8px;right:8px;width:28px;height:28px;border-radius:50%;border:none;background:transparent;color:var(--muted);cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all .14s;opacity:0}.content-page:hover .error-report-btn{opacity:1}.error-report-btn:hover{background:#efb2a733;color:var(--rose)}.error-report-btn svg{width:14px;height:14px}.profile-shell{width:min(420px,100%);max-height:var(--overlay-panel-height);background:var(--panel);border:1.5px solid var(--line);border-radius:26px;box-shadow:var(--shadow);overflow:auto}.profile-body{padding:20px}.profile-level{display:flex;align-items:center;gap:14px;margin-bottom:20px}.profile-level-badge{width:56px;height:56px;border-radius:50%;background:linear-gradient(135deg,var(--blue),var(--mint));color:#fff;display:grid;place-items:center;font-weight:850;font-size:.92rem;flex-shrink:0}.profile-level-info strong{display:block;font-size:1.1rem}.profile-level-info span{color:var(--muted);font-size:.82rem}.profile-stats{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;margin-bottom:20px}.profile-stat{text-align:center;padding:12px 8px;background:#fff9;border:1px solid var(--line);border-radius:16px}.profile-stat strong{display:block;font-size:1.5rem;font-weight:850;color:var(--blue-deep)}.profile-stat span{display:block;font-size:.78rem;color:var(--ink);font-weight:600}.profile-stat small{display:block;font-size:.7rem;color:var(--muted);margin-top:2px}.diagnostic-body{padding:16px 20px}.diagnostic-body label{display:block;margin-bottom:16px}.diagnostic-body label>span{display:block;font-weight:600;margin-bottom:8px;font-size:.9rem}.diagnostic-options{display:flex;gap:8px;flex-wrap:wrap}.diagnostic-opt{border:1px solid var(--line);border-radius:999px;background:#fff9;padding:8px 18px;font-size:.85rem;cursor:pointer;transition:all .14s}.diagnostic-opt:hover{border-color:var(--blue)}.diagnostic-opt.selected{background:var(--blue);color:#fff;border-color:var(--blue)}.diagnostic-body input{width:100%;padding:10px 14px;border:1px solid var(--line);border-radius:12px;font-family:inherit;font-size:.9rem}.diagnostic-body input:focus{outline:none;border-color:var(--blue)}.create-dialog{width:min(480px,100%);max-height:var(--overlay-panel-height);background:var(--panel);border:1.5px solid var(--line);border-radius:26px;box-shadow:var(--shadow);overflow:auto}.create-dialog-header{display:flex;align-items:center;justify-content:space-between;padding:18px 20px 12px}.create-dialog-steps{display:flex;align-items:center;gap:0}.create-dialog-step{width:28px;height:28px;border-radius:50%;border:2px solid var(--line);background:transparent;display:flex;align-items:center;justify-content:center;font-size:.78rem;font-weight:800;color:var(--muted);transition:all var(--dur-normal) var(--ease-out-quart)}.create-dialog-step.active{border-color:var(--blue);background:var(--blue);color:#fff}.create-dialog-step.done{border-color:var(--green);background:var(--green);color:#fff}.create-dialog-step-line{width:32px;height:2px;background:var(--line);transition:background var(--dur-normal) var(--ease-out-quart)}.create-dialog-step-line.done{background:var(--green)}.create-dialog-body{padding:8px 24px 24px;display:flex;flex-direction:column;gap:16px}.create-dialog-question{font-size:1.3rem;font-weight:700;margin:0;line-height:1.25}.create-dialog-chips{display:flex;flex-direction:column;gap:10px}.create-dialog-chip{border:1.5px solid var(--line);border-radius:16px;background:#fff9;padding:14px 18px;display:flex;align-items:center;gap:12px;font-size:.92rem;font-weight:700;cursor:pointer;transition:all .14s;text-align:left;width:100%}.create-dialog-chip svg{width:20px;height:20px;flex-shrink:0}.create-dialog-chip:hover{border-color:var(--blue);background:#78c9f214;transform:translateY(-2px)}.create-dialog-chip:active{transform:translateY(1px)}.create-dialog-chip.selected{border-color:var(--blue);background:var(--blue);color:#fff;box-shadow:0 4px #4e91b2}.create-dialog-ai-response{display:flex;align-items:flex-start;gap:12px;padding:16px 18px;border-radius:18px;background:linear-gradient(135deg,#78c9f21a,#c8ead814),#fffdf6cc;border:1px solid rgba(120,201,242,.2)}.create-dialog-ai-icon{width:32px;height:32px;border-radius:10px;background:var(--blue);display:flex;align-items:center;justify-content:center;flex-shrink:0;color:#fff}.create-dialog-ai-icon svg{width:18px;height:18px}.create-dialog-ai-text{margin:0;font-size:.92rem;line-height:1.5;color:var(--ink)}.typewriter{overflow:hidden;animation:typewriterReveal 1.2s steps(40,end) var(--dur-normal) both;white-space:normal}@keyframes typewriterReveal{0%{max-height:0;opacity:0}30%{opacity:0}to{max-height:200px;opacity:1}}.create-dialog-confirm{width:100%;margin-top:4px}.home-dashboard{padding:12px 0}.dashboard-row{display:flex;gap:12px}.dash-stat{flex:1;text-align:center;padding:12px 8px;border-radius:14px;background:var(--panel);border:1px solid var(--line)}.dash-stat-val{display:block;font-size:1.4rem;font-weight:800;color:var(--ink)}.dash-stat-label{display:block;font-size:.78rem;font-weight:600;color:var(--muted);margin-top:2px}.dash-stat-sub{display:block;font-size:.72rem;color:var(--green);margin-top:1px}.streak-calendar{display:flex;gap:6px;margin-top:10px;justify-content:center}.streak-day{width:28px;height:28px;border-radius:8px;background:#fff6;border:1px solid var(--line);display:flex;align-items:center;justify-content:center;font-size:.7rem;font-weight:600;color:var(--muted)}.streak-day.active{background:var(--green);color:#fff;border-color:var(--green)}.featured-section{margin-bottom:18px}.featured-heading{font-size:.78rem;font-weight:850;color:var(--muted);text-transform:uppercase;letter-spacing:.08em;margin-bottom:10px}.featured-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:10px}.featured-card{position:relative;border:1px solid rgba(40,23,21,.1);border-radius:18px;padding:14px 16px;background:#ffffff8a;cursor:pointer;transition:background .2s,border-color .2s,box-shadow .2s;display:flex;flex-direction:column;gap:6px;text-align:left;overflow:hidden}.featured-card-header{display:flex;align-items:center;gap:10px}.featured-card-icon{font-size:1.5rem;line-height:1;flex-shrink:0}.featured-card:hover{background:#ffffffe6;border-color:#28171533;box-shadow:0 8px 20px #34221b14}.featured-card-title{font-weight:800;font-size:.92rem;color:var(--ink)}.featured-card-desc{font-size:.74rem;color:var(--muted);line-height:1.35}.featured-card-ready{display:inline-block;font-size:.64rem;font-weight:700;color:var(--green);background:#67b9821f;padding:2px 8px;border-radius:4px;margin-top:2px;align-self:flex-start}.home-bubbles{position:absolute;top:0;right:0;bottom:0;left:0;pointer-events:none;overflow:hidden}.home-bubble{position:absolute;bottom:-20px;width:18px;height:18px;border-radius:50%;background:#78c9f22e}.diagnostic-link{display:inline-flex;align-items:center;gap:4px;margin-top:10px;font-size:.78rem;color:var(--muted);cursor:pointer;border:0;background:none;padding:0}.diagnostic-link:hover{color:var(--blue-deep)}@media (max-width: 760px){.featured-grid{grid-template-columns:1fr}.recent-card-del{width:24px;height:24px}.generation-card-del{width:32px;height:32px}}.celebration-overlay{z-index:1000}.celebration-card{position:relative;max-width:400px;margin:80px auto;background:var(--panel);border-radius:var(--radius);box-shadow:var(--shadow);padding:32px 24px;text-align:center;animation:celebrationPop .5s cubic-bezier(.2,.8,.3,1.2) both}.celebration-icon{font-size:3rem;margin-bottom:12px;animation:celebrationBounce .6s ease-out both}.celebration-card h2{margin:0 0 16px}.celebration-stats{display:flex;gap:16px;justify-content:center;margin-bottom:24px}.stat-item strong{display:block;font-size:1.6rem;font-weight:800;color:var(--blue-deep)}.stat-item span{font-size:.8rem;color:var(--muted)}.celebration-card-fan{display:flex;flex-wrap:wrap;gap:8px;justify-content:center;margin-bottom:16px}.celebration-card-item{padding:10px 14px;background:var(--mint);border-radius:14px;text-align:left;max-width:140px}.celebration-card-item strong{display:block;font-size:.82rem;margin-bottom:4px}.celebration-card-item p{font-size:.72rem;color:var(--muted);line-height:1.3;margin:0}.celebration-level{color:var(--blue-deep);font-weight:700;font-size:.9rem;margin-bottom:20px}.celebration-phase{text-align:center}.celebration-loading{font-size:1.1rem;color:var(--muted);display:flex;align-items:center;justify-content:center;gap:8px}.celebration-loading i{animation:spin 1s linear infinite}.celebration-score-grid{display:flex;justify-content:center;gap:24px;margin:20px 0}.celebration-score-item{display:flex;flex-direction:column;align-items:center;gap:4px}.celebration-score-value{font-size:2rem;font-weight:800;color:var(--blue-deep);animation:counterUp .4s var(--ease-overshoot) both}.celebration-score-label{font-size:.78rem;color:var(--muted)}.celebration-streak-row{display:flex;justify-content:center;gap:8px;margin:16px 0}.celebration-streak-day{width:32px;height:32px;border-radius:50%;border:2px solid var(--line);display:grid;place-items:center;font-size:.68rem;font-weight:700;color:var(--muted)}.celebration-streak-day.active{background:var(--peach);border-color:#28171533;color:var(--ink);animation:pulseScale .4s var(--ease-overshoot)}.celebration-pack{width:80px;height:80px;margin:20px auto;border-radius:20px;background:linear-gradient(135deg,var(--lavender),var(--mint));border:2px solid rgba(40,23,21,.15);display:grid;place-items:center;font-size:2rem;position:relative}.celebration-pack.charging{animation:packChargeGlow .8s ease infinite}.celebration-pack.shaking{animation:packShake .3s ease-in-out infinite}.celebration-pack.burst{animation:packLightBurst .6s ease forwards}@keyframes packSequence{0%,30%{box-shadow:0 0 #7bcaff00;transform:scale(1)}35%{box-shadow:0 0 24px 8px #7bcaff80;transform:scale(1.05)}40%{box-shadow:0 0 40px 16px #7bcaffcc;transform:scale(1.08)}45%,55%{box-shadow:0 0 40px 16px #7bcaff99;transform:translate(-3px) rotate(-1deg) scale(1.08)}50%{transform:translate(3px) rotate(1deg) scale(1.08)}60%{transform:translate(-2px) rotate(-.5deg) scale(1.1)}65%{transform:translate(2px) rotate(.5deg) scale(1.1)}70%{transform:scale(.3);opacity:0}to{transform:scale(2.5);opacity:0}}.celebration-pack.animate-sequence{animation:packSequence 2s ease forwards}.celebration-unlock-text{font-size:1.1rem;font-weight:800;color:var(--ink);margin:12px 0 4px}.celebration-unlock-feature{font-size:.88rem;color:var(--blue-deep);font-weight:700}.celebration-dive-options{display:flex;gap:10px;justify-content:center;margin:16px 0}.celebration-dive-btn{flex:1;max-width:180px;padding:12px;border:1px solid rgba(40,23,21,.12);border-radius:16px;background:#ffffff8a;cursor:pointer;text-align:left;transition:background .2s,border-color .2s}.celebration-dive-btn:hover{background:#ffffffe6;border-color:#28171533}.celebration-dive-btn strong{display:block;font-size:.85rem;margin-bottom:4px}.celebration-dive-btn small{font-size:.74rem;color:var(--muted)}@keyframes wiggle{0%,to{transform:translate(0)}20%{transform:translate(-3px)}40%{transform:translate(3px)}60%{transform:translate(-2px)}80%{transform:translate(2px)}}.animate-celebration-wiggle{animation:wiggle 1.2s ease-in-out infinite}@keyframes cardFlyIn{0%{opacity:0;transform:translateY(12px) scale(.8)}to{opacity:1;transform:translateY(0) scale(1)}}@keyframes celebrationPop{0%{opacity:0;transform:scale(.7) translateY(30px)}to{opacity:1;transform:scale(1) translateY(0)}}@keyframes celebrationBounce{0%{transform:scale(0)}60%{transform:scale(1.3)}to{transform:scale(1)}}@keyframes fadeIn{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:translateY(0)}}@keyframes spin{to{transform:rotate(360deg)}}@media (max-width: 640px){.icon-button.mini{min-height:36px;width:36px}.dive-deeper-options{flex-direction:column}.dashboard-row{gap:6px}.dash-stat{padding:8px 4px}.dash-stat-val{font-size:1.1rem}.discuss-chips{padding:0 12px 8px}.quiz-type-tabs{padding:6px 10px;overflow-x:auto}.quiz-type-tab{padding:4px 10px;font-size:.74rem;white-space:nowrap}.floating-tutor{bottom:calc(72px + env(safe-area-inset-bottom,0px));right:16px;width:42px;height:42px}.floating-tutor svg{width:18px;height:18px}.celebration-card{margin:40px 16px;padding:24px 16px}.celebration-dive-options{flex-direction:column;align-items:center}.celebration-dive-btn{max-width:100%}.celebration-score-grid{gap:16px}.celebration-score-value{font-size:1.5rem}.lesson-hero{padding:14px}.lesson-hero h2{font-size:1.15rem}.lesson-hero p{font-size:.88rem}.lesson-hero.animate-cascade{animation-delay:.1s}.bite-sequence-grid button{min-height:72px;padding:10px;gap:4px}.bite-sequence-grid strong{font-size:.78rem}.bite-sequence-grid small{font-size:.72rem}.knowledge-card .card-front,.knowledge-card .card-back{padding:10px;min-height:80px}.concept-detail{padding:14px}.discuss-shell{border-radius:22px 22px 0 0}.action-row{flex-wrap:wrap;gap:6px}.action-row .icon-text-button{flex:1;min-width:0;justify-content:center}.action-row .icon-text-button span{display:inline;font-size:.72rem}.content-page.no-visual{grid-template-columns:1fr}.page-nav-side{position:static;justify-content:flex-start;margin-top:8px}}@keyframes cascadeDropIn{0%{opacity:0;transform:translateY(-20px) scale(.85)}60%{opacity:1;transform:translateY(4px) scale(1.02)}to{opacity:1;transform:translateY(0) scale(1)}}.animate-cascade{animation:cascadeDropIn var(--dur-cascade) var(--ease-overshoot) both}@keyframes heroReveal{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}.animate-hero{animation:heroReveal var(--dur-slow) var(--ease-out-quint) both}@keyframes slideInUp{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}.animate-slide-up{animation:slideInUp var(--dur-normal) var(--ease-out-quint)}@keyframes shimmer{0%{background-position:-200% 0}to{background-position:200% 0}}.animate-shimmer{background:linear-gradient(90deg,transparent 30%,rgba(255,255,255,.5) 50%,transparent 70%);background-size:200% 100%;animation:shimmer 1.5s linear infinite}@keyframes bounce-slow{0%,to{transform:translateY(0)}50%{transform:translateY(-8px)}}.animate-bounce-slow{animation:bounce-slow 3s ease-in-out infinite}@keyframes float{0%,to{transform:translateY(0) rotate(0)}50%{transform:translateY(-14px) rotate(3deg)}}.animate-float{animation:float 6s ease-in-out infinite}@keyframes talking{0%,to{transform:scaleY(1)}15%{transform:scaleY(.92)}30%{transform:scaleY(1.02)}45%{transform:scaleY(.95)}60%{transform:scaleY(1)}75%{transform:scaleY(.93)}90%{transform:scaleY(1.01)}}.animate-talking{animation:talking .8s ease-in-out infinite}@keyframes wiggle{0%,45%{transform:translate(0) rotate(0)}50%{transform:translate(-5px) translateY(-2px) rotate(-4deg)}55%{transform:translate(5px) translateY(-3px) rotate(4deg)}60%{transform:translate(-3px) translateY(-1px) rotate(-2deg)}65%{transform:translate(2px) rotate(2deg)}70%,to{transform:translate(0) rotate(0)}}.animate-wiggle{animation:wiggle 4s ease-in-out infinite}@keyframes pulseWiggle{0%,70%{opacity:1}73%{opacity:.5}76%{opacity:1}79%{opacity:.6}82%,to{opacity:1}72%,to{opacity:.2}}.animate-pulse-wiggle{animation:pulseWiggle 4s ease-in-out infinite}@keyframes cardFanIn{0%{transform:scale(.4) translateY(40px) rotate(0);opacity:0}60%{opacity:1;transform:scale(1.05) translateY(-4px) rotate(var(--fan-angle, 0deg))}to{opacity:1;transform:scale(1) translateY(var(--fan-y, 0px)) rotate(var(--fan-angle, 0deg))}}.animate-card-fan{animation:cardFanIn .7s var(--ease-overshoot) both}@keyframes packChargeGlow{0%{box-shadow:0 0 #7bcaff00}50%{box-shadow:0 0 24px 8px #7bcaff80}to{box-shadow:0 0 40px 16px #7bcaffcc}}.pack-charging{animation:packChargeGlow .8s ease infinite}@keyframes packShake{0%,to{transform:translate(0) rotate(0)}15%{transform:translate(-3px) rotate(-1deg)}30%{transform:translate(3px) rotate(1deg)}45%{transform:translate(-2px) rotate(-.5deg)}60%{transform:translate(2px) rotate(.5deg)}75%{transform:translate(-1px) rotate(-.3deg)}90%{transform:translate(1px) rotate(.3deg)}}.pack-shaking{animation:packShake .3s ease-in-out infinite}@keyframes packTearLeft{0%{transform:translate(0) rotate(0);opacity:1}to{transform:translate(-120%) rotate(-15deg);opacity:0}}@keyframes packTearRight{0%{transform:translate(0) rotate(0);opacity:1}to{transform:translate(120%) rotate(15deg);opacity:0}}.pack-tear-left{animation:packTearLeft .7s var(--ease-overshoot) forwards}.pack-tear-right{animation:packTearRight .7s var(--ease-overshoot) forwards}@keyframes packLightBurst{0%{transform:scale(.3);opacity:0}40%{opacity:1}to{transform:scale(2.5);opacity:0}}.pack-burst{animation:packLightBurst .6s ease forwards}@keyframes bubbleRise{0%{transform:translateY(0) scale(1);opacity:0}10%{opacity:.5}50%{opacity:.3}to{transform:translateY(-600px) scale(.5);opacity:0}}.animate-bubble{animation:bubbleRise 6s ease-out infinite}@keyframes holdPulse{0%,to{opacity:.6}50%{opacity:1}}.animate-hold-pulse{animation:holdPulse 2s ease-in-out infinite}@keyframes counterUp{0%{opacity:0;transform:translateY(8px)}60%{opacity:1;transform:translateY(-2px)}to{opacity:1;transform:translateY(0)}}.animate-counter{animation:counterUp var(--dur-normal) var(--ease-overshoot) both}@keyframes pulseScale{0%,to{transform:scale(1)}50%{transform:scale(1.15)}}.animate-pulse-scale{animation:pulseScale .4s var(--ease-overshoot)}@keyframes flowDash{to{stroke-dashoffset:-9}}.term-clickable{position:relative;overflow:hidden}.term-clickable:after{content:"";position:absolute;bottom:0;left:0;right:0;height:2px;background:linear-gradient(90deg,transparent,var(--blue),transparent);background-size:200% 100%;animation:shimmer 2s linear infinite}.term-search-link{display:inline-block;margin-top:4px;font-size:.78rem;font-weight:700;font-family:inherit;color:var(--blue-deep);border:1px solid rgba(40,23,21,.1);border-radius:8px;padding:3px 10px;background:#ffffff4d;cursor:pointer;transition:background .2s}.term-search-link:hover{background:#d8dcff66}.error-extension{margin-top:14px;padding:12px 14px;border:1px solid rgba(44,134,181,.25);border-radius:14px;background:#78c9f214;display:flex;align-items:center;gap:10px;flex-wrap:wrap}.error-extension-icon{width:28px;height:28px;border-radius:8px;background:#78c9f233;display:grid;place-items:center;flex-shrink:0}.error-extension-icon svg{width:14px;height:14px}.error-extension-text{font-size:.82rem;color:var(--ink);line-height:1.4}.error-extension-text strong{color:var(--blue-deep)}.error-extension-btn{border:1px solid rgba(40,23,21,.1);border-radius:8px;padding:4px 12px;font-size:.78rem;font-weight:700;background:#fff9;color:var(--blue-deep);cursor:pointer;transition:background .2s;animation:pulseWiggle 4s ease-in-out 3}.error-extension-btn:hover{background:#d8dcff66}.lesson-node.generating{background:#78c9f21a;border-color:#78c9f24d}.lesson-node.generating strong{background:linear-gradient(90deg,transparent 30%,rgba(255,255,255,.5) 50%,transparent 70%);background-size:200% 100%;animation:shimmer 1.5s linear infinite;-webkit-background-clip:text;background-clip:text}.lesson-node.generating small{color:var(--blue-deep);font-size:.68rem}.feature-locked{opacity:.45;pointer-events:none;position:relative}.feature-locked:after{content:"🔒";position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);font-size:.7rem}.intense-mode-banner{margin-top:16px;padding:14px;border:2px solid rgba(255,191,145,.4);border-radius:18px;background:linear-gradient(135deg,#ffbf911f,#d8dcff1f);text-align:center;animation:cascadeDropIn .9s var(--ease-overshoot) both}.intense-mode-banner h3{font-size:1rem;margin-bottom:4px}.intense-mode-banner p{font-size:.82rem;color:var(--muted);margin-bottom:12px}.intense-mode-actions{display:flex;gap:8px;justify-content:center}.intense-mode-accept{padding:8px 20px;border-radius:12px;border:0;font-weight:800;font-size:.85rem;background:var(--peach);color:var(--ink);cursor:pointer;transition:transform .15s}.intense-mode-accept:hover{transform:scale(1.04)}.intense-mode-decline{padding:8px 16px;border-radius:12px;border:1px solid var(--line);font-size:.82rem;background:transparent;color:var(--muted);cursor:pointer}.toast{position:fixed;bottom:48px;left:50%;transform:translate(-50%);padding:10px 24px;border-radius:14px;background:var(--ink);color:#fff;font-size:.84rem;font-weight:600;z-index:9999;box-shadow:0 4px 20px #0000002e;pointer-events:none;white-space:nowrap}.visual-composition{gap:14px}.structured-visual{position:relative;min-height:390px;border:1.5px solid rgba(40,23,21,.12);border-radius:26px;background:linear-gradient(180deg,#ffffffdb,#fbf8eefa),var(--panel);box-shadow:0 22px 44px #34221b14,inset 0 1px #ffffff8c;overflow:hidden}.structured-visual:before,.structured-visual:after{content:"";position:absolute;border-radius:999px;pointer-events:none;opacity:.75}.structured-visual:before{width:220px;height:220px;right:-80px;top:-90px;background:radial-gradient(circle,rgba(120,201,242,.18),transparent 68%)}.structured-visual:after{width:180px;height:180px;left:-60px;bottom:-70px;background:radial-gradient(circle,rgba(255,191,145,.18),transparent 68%)}.v-header{position:relative;z-index:2;padding:18px 20px 0}.v-title-wrap{display:grid;gap:6px;max-width:82%}.v-kind{display:inline-flex;align-items:center;justify-content:center;width:fit-content;padding:4px 10px;border:1px solid rgba(40,23,21,.12);border-radius:999px;background:#fffdf6e6;color:var(--muted);font-size:.68rem;font-weight:850;letter-spacing:.08em;text-transform:uppercase}.v-title{text-align:left;font-size:1.18rem;font-weight:850;color:#20100f;padding:0;line-height:1.2}.v-caption{text-align:left;color:#6b5d55;font-size:.83rem;line-height:1.42;padding:0}.v-canvas{position:relative;min-height:270px;margin:12px;border-radius:22px;overflow:hidden;background:linear-gradient(135deg,#ffffff70,#ffffff14),#fffdf670}.v-canvas--radial{background:radial-gradient(circle at 50% 50%,rgba(255,230,123,.22),transparent 26%),radial-gradient(circle at 20% 24%,rgba(120,201,242,.18),transparent 22%),radial-gradient(circle at 82% 76%,rgba(200,234,216,.2),transparent 24%),#fffdf666}.v-canvas--tree{background:linear-gradient(90deg,rgba(120,201,242,.08),transparent 36%,rgba(255,191,145,.08)),#fffdf666}.v-canvas--compare{background:linear-gradient(90deg,rgba(120,201,242,.12),rgba(120,201,242,.04) 40%,transparent 40%,transparent 60%,rgba(255,191,145,.04) 60%,rgba(255,191,145,.12)),#fffdf66b}.v-canvas--cascade{background:linear-gradient(180deg,#ffffff4d,#fffdf614),radial-gradient(circle at 14% 74%,rgba(216,220,255,.22),transparent 20%),radial-gradient(circle at 84% 26%,rgba(200,234,216,.18),transparent 22%),#fffdf66b}.v-canvas:before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;background-image:linear-gradient(rgba(40,23,21,.03) 1px,transparent 1px),linear-gradient(90deg,rgba(40,23,21,.03) 1px,transparent 1px);background-size:28px 28px;-webkit-mask-image:linear-gradient(180deg,rgba(0,0,0,.26),transparent 84%);mask-image:linear-gradient(180deg,rgba(0,0,0,.26),transparent 84%);pointer-events:none}.v-lines{z-index:1}.v-lines path{stroke:#28171557;stroke-width:.7;stroke-linecap:round;stroke-dasharray:5 3}.v-lines path.relation-compare{stroke-dasharray:2.5 4}.v-lines path.relation-part-of{stroke-dasharray:none}.v-lines path.hl{stroke:#a35e28;stroke-width:1.05;stroke-dasharray:none;filter:drop-shadow(0 0 3px rgba(163,94,40,.22))}.v-edge-label{position:absolute;z-index:2;transform:translate(-50%,-50%);padding:4px 9px;border:1px solid rgba(40,23,21,.12);border-radius:999px;background:#fffdf6e6;color:var(--muted);font-size:.66rem;font-weight:800;letter-spacing:.02em;white-space:nowrap;box-shadow:0 6px 14px #34221b14}.v-edge-label.selected{color:#8a4d21;background:#ffeddff5;border-color:#a35e282e}.v-node{min-width:112px;max-width:172px;min-height:58px;padding:10px 12px;border-radius:18px;border:1.5px solid rgba(40,23,21,.68);background:#fffdf6eb;box-shadow:0 4px #2817151a,0 14px 26px #34221b12;display:grid;justify-items:start;align-content:center;gap:4px;text-align:left;font:inherit;z-index:3}.v-node strong{font-size:.86rem;line-height:1.18}.v-node small{color:var(--muted);font-size:.62rem;font-weight:850;letter-spacing:.08em;text-transform:uppercase}.v-node.selected{border-color:#a35e28;box-shadow:0 0 0 4px #a35e281f,0 16px 30px #34221b1a;transform:translate(-50%,-50%) scale(1.03)}.v-node.v-focus{min-width:124px;box-shadow:0 5px #2817151f,0 18px 34px #34221b1f}.visual-mode-radial .v-node.v-focus,.visual-mode-tree .v-node.v-focus{border-radius:22px}.v-node-emoji{font-size:1.12rem;line-height:1}.tone-blue{background:linear-gradient(180deg,#ecf8ff,#d9f1fe 70%,#d0ebfb)}.tone-mint{background:linear-gradient(180deg,#eefcf4,#daf2e4 70%,#d0ebdc)}.tone-lavender{background:linear-gradient(180deg,#f4f5ff,#e6e9ff 70%,#dde2ff)}.tone-peach{background:linear-gradient(180deg,#fff4ea,#ffe0ca 70%,#ffd6bb)}.tone-gold{background:radial-gradient(circle at 36% 28%,#fff2a9,#f5cb49 58%,#dea21c)}.visual-expand-panel{background:#fffdf6e0;border:1px solid rgba(40,23,21,.12);border-radius:18px;padding:15px 16px;box-shadow:0 14px 28px #34221b14}.visual-expand-detail{font-size:.8rem;line-height:1.5}.visual-expand-relations{display:grid;gap:8px;margin:10px 0 12px}.visual-relation-chip{display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:8px;padding:8px 10px;border-radius:12px;background:#78c9f214;border:1px solid rgba(40,23,21,.08)}.visual-relation-chip small{color:var(--muted);font-size:.62rem;font-weight:850;letter-spacing:.08em;text-transform:uppercase}.visual-relation-chip strong,.visual-relation-chip em{font-style:normal;font-size:.74rem}.visual-relation-chip em{color:#8a4d21;font-weight:700}@media (max-width: 760px){.structured-visual{min-height:330px;border-radius:20px}.v-header{padding:14px 14px 0}.v-title-wrap{max-width:100%}.v-title{font-size:1.02rem}.v-caption{font-size:.76rem}.v-canvas{min-height:230px;margin:10px;border-radius:18px}.v-node{min-width:88px;max-width:128px;min-height:46px;padding:8px 9px;border-radius:14px}.v-node strong{font-size:.76rem}.v-node small,.v-edge-label,.visual-relation-chip small{font-size:.58rem}.visual-relation-chip{grid-template-columns:1fr;justify-items:start}}.diagnosis-shell{width:min(680px,100%);max-height:var(--overlay-panel-height);overflow-y:auto;background:var(--panel);border:1.5px solid var(--line);border-radius:20px;display:flex;flex-direction:column}.diagnosis-top{padding:20px 24px 12px;border-bottom:1px solid var(--line)}.diagnosis-top-header{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;margin-bottom:14px}.diagnosis-progress{display:flex;align-items:center;gap:10px}.diagnosis-progress-bar-wrap{flex:1;height:8px;border-radius:999px;background:#28171514;overflow:hidden}.diagnosis-progress-bar-fill{height:100%;border-radius:999px;background:linear-gradient(90deg,#22c55e,#16a34a);transition:width .35s ease}.diagnosis-progress-text{font-size:.78rem;font-weight:750;color:var(--muted);white-space:nowrap}.diagnosis-body{padding:20px 24px;flex:1;display:flex;flex-direction:column;gap:16px}.diagnosis-question-text{font-size:1.05rem;font-weight:650;line-height:1.6;color:var(--dark)}.diagnosis-question-meta{display:flex;gap:8px;flex-wrap:wrap;margin-top:4px}.diagnosis-question-meta-tag{font-size:.68rem;padding:3px 10px;border-radius:999px;background:#2817150a;color:var(--muted);font-weight:650}.diagnosis-answer-options{display:flex;flex-direction:column;gap:10px;margin-top:6px}.diagnosis-loading-state{min-height:360px;align-items:center;justify-content:center;text-align:center;gap:18px}.diagnosis-loading-spinner{width:58px;height:58px;border-radius:50%;display:grid;place-items:center;background:#78beff24;color:var(--blue)}.diagnosis-loading-spinner .lucide{width:30px;height:30px;animation:spin 1s linear infinite}.diagnosis-loading-copy h3{margin:0 0 8px;font-size:1.08rem;color:var(--dark)}.diagnosis-loading-copy p{margin:0;max-width:320px;color:var(--muted);font-size:.86rem;line-height:1.55}.diagnosis-inline-loading{display:flex;align-items:center;justify-content:center;gap:8px;color:var(--muted);font-size:.82rem;font-weight:650;min-height:28px}.diagnosis-inline-loading .lucide{width:18px;height:18px;animation:spin 1s linear infinite;color:var(--blue)}.diagnosis-option-btn{width:100%;text-align:left;padding:14px 18px;border:1.5px solid var(--line);border-radius:14px;background:#ffffff80;font-family:inherit;font-size:.92rem;line-height:1.5;cursor:pointer;transition:all .16s;display:flex;align-items:center;gap:12px}.diagnosis-option-btn:hover:not(.disabled){border-color:var(--blue);background:#78beff14}.diagnosis-option-btn:active:not(.disabled){transform:scale(.985)}.diagnosis-option-btn.disabled{cursor:default}.diagnosis-option-letter{width:32px;height:32px;flex-shrink:0;border-radius:50%;background:#2817150f;display:flex;align-items:center;justify-content:center;font-weight:750;font-size:.82rem;color:var(--muted)}.diagnosis-option-btn.selected{border-color:var(--blue);background:#78beff1f}.diagnosis-option-btn.selected .diagnosis-option-letter{background:var(--blue);color:#fff}.diagnosis-option-btn.correct{border-color:#4caf50;background:#4caf501a}.diagnosis-option-btn.correct .diagnosis-option-letter{background:#4caf50;color:#fff}.diagnosis-option-btn.wrong{border-color:#ef5350;background:#ef535014}.diagnosis-option-btn.wrong .diagnosis-option-letter{background:#ef5350;color:#fff}.diagnosis-feedback{padding:12px 16px;border-radius:12px;font-size:.85rem;font-weight:650;line-height:1.5;animation:diagnosisFadeIn .25s ease}.diagnosis-feedback.correct{background:#4caf501a;color:#2e7d32}.diagnosis-feedback.wrong{background:#ef535014;color:#c62828}@keyframes diagnosisFadeIn{0%{opacity:0;transform:translateY(-6px)}to{opacity:1;transform:translateY(0)}}.diagnosis-actions{display:flex;justify-content:space-between;align-items:center;gap:10px;margin-top:4px;padding-top:6px}.diagnosis-result-header{text-align:center;padding:12px 0 4px}.diagnosis-result-header .kicker{margin-bottom:4px}.diagnosis-result-header h2{margin-bottom:6px}.diagnosis-mastery-lights{display:flex;justify-content:center;gap:20px;padding:16px 0;flex-wrap:wrap}.mastery-light-card{display:flex;flex-direction:column;align-items:center;gap:6px;min-width:70px}.mastery-light-dot{width:44px;height:44px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:1.1rem}.mastery-light-dot.green{background:#4caf5026;box-shadow:0 0 12px #4caf5040}.mastery-light-dot.yellow{background:#fdd83533;box-shadow:0 0 12px #fdd83540}.mastery-light-dot.red{background:#ef53501f;box-shadow:0 0 12px #ef535033}.mastery-light-count{font-size:1.25rem;font-weight:750;color:var(--dark)}.mastery-light-label{font-size:.72rem;font-weight:650;color:var(--muted)}.diagnosis-progress-location{text-align:center;padding:8px 0 12px}.diagnosis-progress-location .location-text{font-size:.88rem;font-weight:650;color:var(--dark);background:#2817150a;display:inline-block;padding:6px 16px;border-radius:999px}.diagnosis-section-title{font-size:.85rem;font-weight:750;color:var(--dark);margin-bottom:10px;display:flex;align-items:center;gap:8px}.diagnosis-weak-points{display:flex;flex-direction:column;gap:8px}.weak-point-item{display:flex;align-items:center;gap:12px;padding:12px 16px;border-radius:12px;background:#28171508;border:1px solid var(--line)}.weak-point-item .level-indicator{width:10px;height:10px;border-radius:50%;flex-shrink:0}.weak-point-item .level-indicator.red{background:#ef5350}.weak-point-item .level-indicator.yellow{background:#fdd835}.weak-point-item .point-name{flex:1;font-size:.85rem;font-weight:650;color:var(--dark)}.weak-point-item .point-status{font-size:.72rem;font-weight:650;padding:3px 10px;border-radius:999px}.weak-point-item .point-status.red{background:#ef53501a;color:#c62828}.weak-point-item .point-status.yellow{background:#fdd83526;color:#b8860b}.diagnosis-root-cause{margin-top:8px;padding:14px 18px;border-radius:12px;background:#78beff0f;border:1px solid rgba(120,190,255,.15);font-size:.82rem;line-height:1.6;color:var(--dark)}.diagnosis-root-cause strong{color:var(--blue)}.diagnosis-result-actions{display:flex;gap:12px;padding:4px 0 0;flex-wrap:wrap}.diagnosis-start-section{text-align:center;padding:20px 0}.diagnosis-start-section h3{font-size:1.1rem;font-weight:750;margin-bottom:6px}.diagnosis-start-section p{font-size:.82rem;color:var(--muted);margin-bottom:16px;line-height:1.5}.diagnosis-scope-badge{width:fit-content;margin:0 auto 14px;display:inline-flex;align-items:center;gap:7px;padding:7px 11px;border:1px solid rgba(40,23,21,.1);border-radius:999px;background:#78c9f221;color:#2c566ff2;font-size:.72rem;font-weight:850}.diagnosis-scope-badge svg{width:15px;height:15px}@media (max-width: 600px){.diagnosis-page{padding:0;align-items:stretch}.diagnosis-shell{width:100%;min-height:100dvh;max-height:100dvh;border-radius:0;border:none}.diagnosis-mastery-lights{gap:12px}.mastery-light-dot{width:36px;height:36px;font-size:.95rem}.mastery-light-count{font-size:1.05rem}}.ocr-shell{background:var(--panel);border:1.5px solid var(--line);border-radius:26px;box-shadow:var(--shadow);max-width:520px;width:100%;max-height:var(--overlay-panel-height);display:flex;flex-direction:column;overflow:hidden}.ocr-shell--exam{max-width:960px}.ocr-body{flex:1;overflow-y:auto;padding:16px 20px 24px;display:flex;flex-direction:column}.ocr-mode-tabs{display:flex;gap:0;margin-bottom:16px;border-radius:10px;overflow:hidden;border:1px solid var(--line)}.ocr-mode-tab{flex:1;padding:10px 0;border:none;background:#ffffff80;font-size:.82rem;font-weight:700;font-family:inherit;cursor:pointer;transition:all .14s}.ocr-mode-tab.active{background:var(--blue);color:#fff}.ocr-upload-area{border:2px dashed var(--line);border-radius:14px;padding:20px 16px;text-align:center;cursor:pointer;transition:border-color .14s;max-width:360px;margin:0 auto}.ocr-shell--exam .ocr-upload-area{padding:18px 14px}.ocr-upload-area:hover{border-color:var(--blue)}.ocr-upload-area i{width:32px!important;height:32px!important;opacity:.5}.ocr-upload-area p{margin:6px 0 2px;font-weight:700;font-size:.85rem;color:var(--dark)}.ocr-upload-area small{color:var(--muted);font-size:.72rem}.ocr-loading{display:flex;align-items:center;gap:10px;padding:20px;justify-content:center;color:var(--muted);font-size:.85rem}.ocr-error{padding:12px 16px;border-radius:10px;background:#ef535014;border:1px solid rgba(239,83,80,.2);color:#c62828;font-size:.82rem;margin-top:12px}.ocr-result{margin-top:16px}.ocr-result h3{font-size:.85rem;font-weight:750;margin:12px 0 8px;color:var(--dark)}.ocr-question-box{padding:14px 16px;border-radius:12px;background:#00000008;border:1px solid var(--line)}.ocr-question-type{display:inline-block;padding:2px 8px;border-radius:6px;background:var(--blue);color:#fff;font-size:.7rem;font-weight:700;margin-bottom:6px}.ocr-question-content{font-size:.85rem;line-height:1.6;color:var(--dark)}.ocr-options{display:flex;flex-wrap:wrap;gap:6px;margin-top:8px}.ocr-options span{padding:3px 10px;border-radius:6px;background:#0000000a;font-size:.78rem}.ocr-match-list{display:flex;flex-direction:column;gap:6px}.ocr-match-item{display:flex;align-items:center;gap:8px;padding:10px 14px;border-radius:10px;border:1px solid var(--line);cursor:pointer;transition:all .14s;font-size:.82rem}.ocr-match-item:hover{border-color:var(--blue)}.ocr-match-item.selected{border-color:var(--blue);background:#1976d20f}.ocr-match-name{flex:1;font-weight:650;color:var(--dark)}.ocr-match-confidence{font-size:.72rem;color:var(--muted);font-weight:700}.ocr-no-match{font-size:.8rem;color:var(--muted)}.ocr-actions{display:flex;gap:8px;margin-top:16px}.ocr-solve-result{margin-top:12px;padding:14px 16px;border-radius:12px;background:#66bb6a0f;border:1px solid rgba(102,187,106,.2);font-size:.82rem;line-height:1.6}.ocr-solve-result h3{font-size:.82rem;font-weight:750;color:#2e7d32;margin:0 0 6px}.ocr-exam-previews{display:flex;gap:8px;flex-wrap:wrap;margin-top:12px}.ocr-exam-thumb{position:relative;width:72px;height:72px;border-radius:10px;overflow:hidden;border:1px solid var(--line)}.ocr-exam-thumb img{width:100%;height:100%;object-fit:cover}.ocr-exam-thumb-remove{position:absolute;top:2px;right:2px;width:20px;height:20px;border-radius:50%;border:none;background:#0000008c;color:#fff;font-size:.7rem;cursor:pointer;display:flex;align-items:center;justify-content:center;line-height:1}.ocr-exam-add{width:72px;height:72px;border-radius:10px;border:2px dashed var(--line);background:none;cursor:pointer;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;color:var(--muted);font-size:.68rem;font-family:inherit}.ocr-exam-add:hover{border-color:var(--blue);color:var(--blue)}.ocr-exam-results-wrap{display:flex;gap:0;margin-top:12px;min-height:0;flex:1;overflow:hidden}.ocr-exam-originals-side{width:38%;min-width:200px;max-width:420px;border-right:1px solid var(--line);display:flex;flex-direction:column;background:#00000004;flex-shrink:0}.ocr-exam-originals-side-header{display:flex;align-items:center;justify-content:space-between;padding:8px 12px;font-size:.82rem;font-weight:600;color:var(--dark);border-bottom:1px solid var(--line);background:#00000005;flex-shrink:0}.ocr-originals-collapse-btn{display:flex;align-items:center;justify-content:center;padding:4px;border:none;background:none;cursor:pointer;border-radius:6px;color:var(--dark)}.ocr-originals-collapse-btn:hover{background:#0000000f}.ocr-exam-originals-scroll{flex:1;overflow-y:auto;padding:10px;display:flex;flex-direction:column;gap:10px}.ocr-exam-original-item{position:relative;border-radius:8px;overflow:hidden;border:1px solid var(--line);cursor:zoom-in}.ocr-exam-original-item img{display:block;width:100%;max-height:none;object-fit:contain;background:#fff}.ocr-exam-original-label{position:absolute;bottom:0;left:0;right:0;padding:3px 8px;background:#00000080;color:#fff;font-size:.68rem;text-align:center}.ocr-exam-results-wrap .ocr-exam-results{flex:1;min-width:0;margin-top:0;overflow-y:auto;padding:0 16px 24px}.ocr-exam-results-wrap.no-originals .ocr-exam-results{width:100%}@media (max-width: 768px){.ocr-exam-results-wrap.has-originals{flex-direction:column}.ocr-exam-originals-side{width:100%;max-width:none;max-height:30vh;border-right:none;border-bottom:1px solid var(--line)}.ocr-exam-originals-scroll{flex-direction:row;overflow-x:auto;overflow-y:hidden}.ocr-exam-original-item img{max-width:180px;max-height:25vh}}.ocr-exam-results{margin-top:12px}.ocr-exam-summary{display:flex;gap:12px;margin-bottom:12px;padding:10px 14px;border-radius:10px;background:#00000008}.ocr-analysis-report{margin:12px 0 14px;padding:14px 0;border-top:1px solid var(--line);border-bottom:1px solid var(--line)}.ocr-analysis-report.compact{margin:12px 0;padding:12px 0}.ocr-analysis-head{display:grid;grid-template-columns:28px 1fr;gap:10px;align-items:start}.ocr-analysis-head>span{width:28px;height:28px;border-radius:8px;display:grid;place-items:center;color:#7b4b00;background:#ffc1072e}.ocr-analysis-head svg{width:16px;height:16px}.ocr-analysis-head h3{margin:0 0 4px;font-size:.92rem;line-height:1.25;color:var(--dark)}.ocr-analysis-head p{margin:0;font-size:.8rem;line-height:1.55;color:var(--muted)}.ocr-analysis-signal{display:inline-flex;margin-top:10px;padding:3px 9px;border-radius:999px;background:#1976d214;color:var(--blue);font-size:.72rem;font-weight:750}.ocr-analysis-section{margin-top:12px}.ocr-analysis-section>strong{display:block;margin-bottom:7px;font-size:.78rem;color:var(--dark)}.ocr-analysis-point-list{display:grid;gap:8px}.ocr-analysis-point{padding:10px 11px;border:1px solid var(--line);border-left:4px solid #ffb74d;border-radius:8px;background:#ffffff94}.ocr-analysis-point.severity-high{border-left-color:#e53935}.ocr-analysis-point.severity-medium{border-left-color:#fb8c00}.ocr-analysis-point.severity-low{border-left-color:#43a047}.ocr-analysis-point span{display:block;font-size:.8rem;font-weight:750;color:var(--dark)}.ocr-analysis-point small{display:block;margin-top:2px;font-size:.7rem;color:var(--muted)}.ocr-analysis-point p{margin:6px 0 0;font-size:.76rem;line-height:1.5;color:var(--dark)}.ocr-analysis-chip-list{display:flex;flex-wrap:wrap;gap:6px}.ocr-analysis-chip-list span{padding:4px 8px;border-radius:7px;background:#2e7d3217;color:#2e7d32;font-size:.72rem;font-weight:700}.ocr-analysis-insights{display:grid;gap:6px}.ocr-analysis-insights div{display:grid;gap:2px;padding:8px 0;border-top:1px dashed var(--line)}.ocr-analysis-insights b{font-size:.72rem;color:var(--dark)}.ocr-analysis-insights span,.ocr-analysis-section li{font-size:.76rem;line-height:1.5;color:var(--muted)}.ocr-analysis-section ul{margin:0;padding-left:18px}.ocr-exam-stat{font-size:.78rem;font-weight:750}.ocr-stat-correct{color:#2e7d32}.ocr-stat-wrong{color:#c62828}.ocr-stat-unknown{color:#e65100}.ocr-exam-card{padding:14px 16px;border-radius:12px;border:1px solid var(--line);margin-bottom:10px}.ocr-exam-card-group{padding:8px 12px 4px}.ocr-exam-card-group .ocr-exam-card-header{padding:4px 0 8px;border-bottom:1px dashed var(--line);margin-bottom:6px}.ocr-exam-card-group .ocr-exam-card-num{font-size:.9rem;font-weight:750;color:var(--dark)}.ocr-sub-row{padding:8px 10px;border-radius:8px;margin-bottom:6px;border-left:4px solid var(--line)}.ocr-sub-row.ocr-card-correct{background:#e8f5e966;border-left-color:#66bb6a}.ocr-sub-row.ocr-card-wrong{background:#ffebee66;border-left-color:#ef5350}.ocr-sub-row.ocr-card-unknown{background:#fff8e166;border-left-color:#ffb74d}.ocr-sub-row.ocr-card-focused{outline:2px solid var(--primary, #2563eb)}.ocr-sub-label{font-weight:700;color:var(--primary, #2563eb);margin-right:4px}.ocr-sub-content{font-size:.82rem;line-height:1.55;color:var(--dark);margin-bottom:6px}.ocr-sub-point{display:flex;align-items:center;gap:6px;margin-top:4px}.ocr-exam-correctness-btns{display:flex;gap:4px;margin:4px 0}.ocr-card-correct{border-left:4px solid #66bb6a;background:#e8f5e966}.ocr-card-wrong{border-left:4px solid #ef5350;background:#ffebee66}.ocr-card-unknown{border-left:4px solid #ffb74d;background:#fff8e166}.ocr-exam-card-header{display:flex;align-items:center;gap:8px;margin-bottom:8px;flex-wrap:wrap}.ocr-exam-card-num{font-size:.78rem;font-weight:750;color:var(--dark)}.ocr-exam-card-type{padding:2px 8px;border-radius:6px;background:#0000000f;font-size:.68rem;font-weight:700}.ocr-exam-correctness-btns{display:flex;gap:4px;margin-left:auto}.ocr-cc-btn{padding:3px 10px;border-radius:6px;border:1px solid var(--line);background:#fff9;font-size:.7rem;font-weight:700;font-family:inherit;cursor:pointer;transition:all .14s}.ocr-cc-btn:hover{border-color:var(--blue)}.ocr-cc-btn.active{background:var(--blue);color:#fff;border-color:var(--blue)}.ocr-exam-card-content{font-size:.82rem;line-height:1.6;color:var(--dark)}.ocr-exam-card-answer{font-size:.78rem;color:var(--muted);margin-top:4px}.ocr-exam-card-evidence{font-size:.72rem;color:var(--muted);margin-top:2px;opacity:.8}.ocr-exam-card-model{font-size:.76rem;color:var(--muted);margin-top:4px;display:flex;align-items:center;gap:6px;flex-wrap:wrap}.ocr-exam-card-model .ocr-model-label{color:var(--muted);opacity:.85}.ocr-exam-card-model .ocr-model-value{color:var(--dark);font-weight:700}.ocr-model-hint{font-size:.68rem;padding:1px 6px;border-radius:999px;font-weight:700}.ocr-model-hint--match{background:#2ea04326;color:#2ea043}.ocr-model-hint--mismatch{background:#dc354526;color:#dc3545}.ocr-exam-card.ocr-card-focused{outline:2px solid #3b82f6;outline-offset:-2px}.ocr-kbd-hint{font-size:.7rem;color:var(--muted);margin:8px 0 12px;opacity:.9}.ocr-kbd-hint kbd{display:inline-block;padding:1px 5px;font-size:.72rem;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;background:var(--card);border:1px solid var(--border, #ddd);border-radius:4px;color:var(--dark);margin:0 1px}.ocr-exam-banner{border-radius:6px;padding:6px 10px;margin:6px 0;font-size:.73rem;line-height:1.45}.ocr-exam-banner--danger{background:#fdecea;border:1px solid #f5c6cb;color:#a83227}.ocr-exam-banner--warn{background:#fff8e1;border:1px solid #ffe082;color:#7a5d00}.ocr-exam-banner strong{font-weight:700}.ocr-exam-card-mark-tag{padding:1px 6px;border-radius:4px;background:#6610f214;color:#6610f2;font-size:.64rem;font-weight:700;text-transform:uppercase}.ocr-exam-card-mastery{padding:1px 6px;border-radius:4px;font-size:.66rem;font-weight:600}.ocr-mastery--ok{background:#28a7451f;color:#1e7e34}.ocr-mastery--bad{background:#dc35451f;color:#c82333}.ocr-mastery--partial{background:#ffc10726;color:#b8860b}.ocr-mastery--unknown{background:#6c757d1f;color:#6c757d}.ocr-card-needs-confirm{box-shadow:0 0 0 1px #f5c6cb inset}.ocr-card-needs-content{box-shadow:0 0 0 1px #ffe082 inset}.ocr-exam-import-hint{font-size:.73rem;color:#7a5d00;background:#fff8e1;border:1px solid #ffe082;border-radius:8px;padding:8px 12px;margin-top:8px;line-height:1.5}.ocr-inference-banner{position:relative;padding:10px 14px;border-radius:10px;background:#1976d20f;border:1px solid rgba(25,118,210,.2);margin-bottom:10px;font-size:.78rem;color:var(--dark)}.ocr-inference-title{display:flex;align-items:center;gap:6px;font-weight:700;margin-bottom:4px}.ocr-inference-list{padding-left:22px;line-height:1.6}.ocr-inference-item{color:var(--muted)}.ocr-inference-hint{margin-top:4px;font-size:.7rem;color:var(--muted);opacity:.7}.ocr-inference-close{position:absolute;top:8px;right:10px;background:none;border:none;font-size:1.1rem;cursor:pointer;color:var(--muted);padding:0 4px}.ocr-inference-close:hover{color:var(--dark)}.ocr-group-mark-notice{margin-top:6px;padding:5px 8px;border-radius:6px;background:#7c4dff0f;border:1px solid rgba(124,77,255,.15);font-size:.72rem;color:#7c4dff;display:flex;align-items:center;gap:8px;flex-wrap:wrap}.ocr-group-apply-btn{padding:2px 8px;border-radius:4px;border:1px solid #7c4dff;background:#fff;color:#7c4dff;font-size:.68rem;font-weight:700;cursor:pointer;white-space:nowrap}.ocr-group-apply-btn:hover{background:#7c4dff14}.ocr-exam-card-point{display:flex;align-items:center;gap:8px;margin-top:8px;font-size:.78rem}.ocr-exam-point-tag{padding:2px 8px;border-radius:6px;background:#1976d214;color:var(--blue);font-size:.72rem;font-weight:700}.ocr-exam-point-select{flex:1;padding:5px 8px;border-radius:6px;border:1px solid var(--line);font-size:.75rem;font-family:inherit;background:#fff}.ocr-exam-actions{display:flex;gap:8px;margin-top:16px}.ocr-exam-filter-bar{display:flex;flex-wrap:wrap;gap:6px;margin:10px 0}.ocr-filter-chip{padding:4px 10px;border-radius:14px;border:1px solid var(--line);background:#fff;font-size:.72rem;font-weight:650;color:var(--muted);cursor:pointer;transition:all .15s}.ocr-filter-chip:hover{border-color:var(--blue);color:var(--blue)}.ocr-filter-chip.active{background:var(--blue);color:#fff;border-color:var(--blue)}.ocr-exam-toolbar{display:flex;align-items:center;gap:8px;padding:8px 0;border-top:1px solid var(--line);border-bottom:1px solid var(--line);flex-wrap:wrap}.ocr-select-all-label{display:flex;align-items:center;gap:6px;font-size:.78rem;font-weight:650;color:var(--dark);cursor:pointer;white-space:nowrap}.ocr-select-all-cb{width:16px;height:16px;accent-color:var(--blue);cursor:pointer}.ocr-toolbar-actions{display:flex;flex-wrap:wrap;gap:4px;margin-left:auto}.ocr-batch-btn{padding:3px 10px;border-radius:6px;border:1px solid var(--line);background:#fff;font-size:.72rem;font-weight:650;color:var(--dark);cursor:pointer;transition:all .15s}.ocr-batch-btn:hover{border-color:var(--blue);color:var(--blue);background:#1976d20a}.ocr-batch-point-btn{border-color:#7c4dff;color:#7c4dff}.ocr-batch-point-btn:hover{background:#7c4dff14}.ocr-card-checkbox{display:flex;align-items:center;margin-right:4px;cursor:pointer}.ocr-card-checkbox input[type=checkbox]{width:16px;height:16px;accent-color:var(--blue);cursor:pointer}.ocr-exam-card.ocr-card-selected{box-shadow:0 0 0 2px #1976d24d}.ocr-batch-point-panel{margin:8px 0;padding:10px 12px;border-radius:10px;border:1px solid #7c4dff;background:#7c4dff0a}.ocr-batch-point-input{width:100%;padding:6px 10px;border-radius:8px;border:1px solid var(--line);font-size:.78rem;font-family:inherit;outline:none;box-sizing:border-box}.ocr-batch-point-input:focus{border-color:#7c4dff}.ocr-batch-point-results{margin-top:6px;display:flex;flex-wrap:wrap;gap:4px;max-height:120px;overflow-y:auto}.ocr-batch-point-hint{display:block;margin-top:6px;font-size:.7rem;color:var(--muted)}.ocr-alt-empty{font-size:.72rem;color:var(--muted);padding:4px 8px}.ocr-point-edit-btn{padding:2px 8px;border-radius:6px;border:1px solid var(--line);background:#fff;font-size:.7rem;color:var(--blue);cursor:pointer;transition:all .15s}.ocr-point-edit-btn:hover{border-color:var(--blue);background:#1976d20f}.ocr-stat-unmatched{color:#7c4dff}.ocr-point-unmatched{background:#7c4dff1a!important;color:#7c4dff!important}.ocr-editable-field{cursor:text;border-radius:4px;transition:background .15s;min-height:1.4em}.ocr-editable-field:hover{background:#1976d20a}.ocr-editable-field .ocr-answer-placeholder{color:var(--muted);font-style:italic;font-size:.75rem}.ocr-inline-edit{width:100%;padding:4px 8px;border:1px solid var(--blue);border-radius:6px;font-size:.82rem;font-family:inherit;line-height:1.5;resize:vertical;outline:none;box-sizing:border-box;background:#fff}.ocr-import-confirm{flex:1;padding:12px;border-radius:10px;border:1px solid var(--blue);background:#1976d20a}.ocr-import-confirm-title{font-size:.85rem;font-weight:750;margin-bottom:8px;color:var(--dark)}.ocr-import-confirm-summary{margin-bottom:10px}.ocr-confirm-row{font-size:.78rem;margin:4px 0}.ocr-confirm-import{color:#2e7d32}.ocr-confirm-skip{color:#e65100}.ocr-confirm-detail{margin-top:8px;padding:8px;border-radius:6px;background:#fff;border:1px solid var(--line)}.ocr-confirm-item{display:flex;align-items:baseline;gap:8px;padding:3px 0;font-size:.75rem;border-bottom:1px solid rgba(0,0,0,.04)}.ocr-confirm-item:last-child{border-bottom:none}.ocr-confirm-item-point{flex-shrink:0;padding:1px 6px;border-radius:4px;background:#1976d214;color:var(--blue);font-weight:700;font-size:.7rem}.ocr-confirm-item-preview{color:var(--muted);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.ocr-confirm-more{font-size:.72rem;color:var(--muted);padding-top:4px;text-align:center}.ocr-import-confirm-btns{display:flex;gap:8px}.plan-sessions{display:flex;flex-direction:column;gap:10px;margin-top:12px}.plan-session{border-radius:12px;border:1px solid var(--line);overflow:hidden;transition:border-color .2s}.plan-session:hover{border-color:var(--blue)}.plan-session-current{border-color:var(--blue);box-shadow:0 0 0 1px #1976d226}.plan-session-completed{opacity:.7}.plan-session-header{display:flex;align-items:center;gap:8px;padding:10px 14px;background:#00000005;border-bottom:1px solid var(--line)}.plan-session-icon{font-size:1rem}.plan-session-num{font-size:.82rem;font-weight:750;color:var(--dark);flex:1}.plan-session-duration{font-size:.72rem;color:var(--muted)}.plan-session-badge{padding:1px 8px;border-radius:10px;background:var(--blue);color:#fff;font-size:.68rem;font-weight:700}.plan-session-points{padding:8px 14px;display:flex;flex-direction:column;gap:4px}.plan-point{display:flex;align-items:center;gap:8px;padding:6px 8px;border-radius:8px;cursor:pointer;transition:background .15s}.plan-point:hover{background:#1976d20f}.plan-point-active{background:#1976d21a;border:1px solid rgba(25,118,210,.2)}.plan-point-done{opacity:.6}.plan-point-light{width:10px;height:10px;border-radius:50%;flex-shrink:0}.plan-point-name{flex:1;font-size:.8rem;color:var(--dark);font-weight:600}.plan-point-time{font-size:.7rem;color:var(--muted)}.plan-point-check{font-size:.8rem;color:#66bb6a;font-weight:700}.plan-config-btn{width:24px;height:24px;border-radius:6px;border:1px solid var(--line);background:#fff;font-size:.8rem;font-weight:700;color:var(--dark);cursor:pointer;display:inline-flex;align-items:center;justify-content:center;transition:all .15s}.plan-config-btn:hover{border-color:var(--blue);color:var(--blue)}.plan-config-btn:disabled{opacity:.3;cursor:default}.wb-shell{background:var(--panel);border:1.5px solid var(--line);border-radius:26px;box-shadow:var(--shadow);max-width:1120px;width:100%;max-height:var(--overlay-panel-height);display:flex;flex-direction:column;overflow:hidden}.wb-body{flex:1;overflow-y:auto;padding:18px 22px 26px}.wb-top>div:first-child>span{display:block;margin-top:3px;font-size:.74rem;color:var(--muted);font-weight:720}.wb-weak-points{margin-bottom:16px}.wb-weak-list{display:flex;flex-wrap:wrap;gap:6px;margin-top:6px}.wb-weak-tag{padding:4px 10px;border-radius:8px;border:1px solid var(--line);font-size:.72rem;font-weight:650;cursor:pointer;transition:all .14s;background:#ffffff80}.wb-weak-tag:hover{border-color:var(--blue)}.wb-group{margin-bottom:14px}.wb-group-header{display:flex;align-items:center;gap:8px;padding:8px 12px;border-radius:10px 10px 0 0;background:#00000008;border:1px solid var(--line);border-bottom:none}.wb-group-info{flex:1;font-size:.82rem;font-weight:700;color:var(--dark)}.wb-light{display:inline-flex;align-items:center;justify-content:center;width:14px}.wb-light .mastery-dot{width:10px;height:10px;margin:0}.wb-group-items{border:1px solid var(--line);border-radius:0 0 10px 10px;padding:8px}.wb-item{padding:14px;border:1px solid rgba(40,23,21,.08);border-radius:14px;background:#ffffffad;margin-bottom:8px;box-shadow:0 8px 22px #34221b0a}.wb-item:last-child{margin-bottom:0}.wb-item-content{font-size:.82rem;line-height:1.5;color:var(--dark)}.wb-item-type,.wb-item-source{display:inline-block;padding:1px 6px;border-radius:4px;font-size:.66rem;font-weight:700;margin-right:4px}.wb-item-type{background:#1976d214;color:var(--blue)}.wb-item-source.source-ocr{background:#ff980014;color:#e65100}.wb-item-source.source-quiz{background:#9c27b014;color:#7b1fa2}.wb-item-options{display:flex;flex-wrap:wrap;gap:4px;margin-top:4px}.wb-item-options span{padding:2px 6px;border-radius:4px;background:#0000000a;font-size:.72rem}.wb-item-answer{font-size:.76rem;color:#2e7d32;margin-top:4px}.wb-item-actions{display:flex;flex-wrap:wrap;gap:6px;margin-top:11px}.wb-variant-btn{display:inline-flex;align-items:center;gap:4px;padding:4px 11px;border-radius:7px;border:1px solid rgba(25,118,210,.22);background:#1976d214;color:#1565c0;font-size:.7rem;font-weight:800;cursor:pointer;transition:background .14s,border-color .14s}.wb-variant-btn:hover{background:#1976d22e;border-color:#1976d266}.wb-header-stats{display:inline-flex;align-items:center;gap:10px;margin-left:auto;margin-right:8px;font-size:.74rem;font-weight:780;color:#281715b8;flex-wrap:wrap}.wb-header-stats span{white-space:nowrap}.wb-due-badge{padding:2px 8px;border-radius:999px;background:#ef53501f;color:#c62828}.wb-empty{text-align:center;padding:40px 0;color:var(--muted);font-size:.85rem}.wb-item-tags{display:flex;flex-wrap:wrap;gap:4px;margin-bottom:4px;align-items:center}.wb-error-tag{display:inline-block;padding:1px 7px;border-radius:4px;font-size:.64rem;font-weight:750;cursor:pointer;transition:opacity .14s;border:1px solid transparent}.wb-error-tag:hover{opacity:.75}.wb-error-concept{background:#9c27b01a;color:#7b1fa2;border-color:#9c27b033}.wb-error-calculation{background:#ff98001a;color:#e65100;border-color:#ff980033}.wb-error-misread{background:#ef53501a;color:#c62828;border-color:#ef535033}.wb-error-method{background:#1976d21a;color:#1565c0;border-color:#1976d233}.wb-error-blank{background:#75675f1a;color:#5d4037;border-color:#75675f33}.wb-error-unknown{background:#75675f0f;color:var(--muted);border-color:#75675f1f}.wb-review-tag{display:inline-block;padding:1px 6px;border-radius:4px;font-size:.62rem;font-weight:700;background:#75675f14;color:var(--muted)}.wb-review-due{background:#ef53501f;color:#c62828;animation:pulseWiggle 3s ease-in-out infinite}.wb-variant-count{font-size:.6rem;font-weight:700;color:#2e7d32;background:#c8ead84d;padding:1px 5px;border-radius:4px}.wb-insight-card{background:linear-gradient(135deg,#78c9f214,#c8ead814);border:1px solid rgba(40,23,21,.08);border-radius:12px;padding:12px;margin-bottom:14px}.wb-insight-row{font-size:.76rem;line-height:1.5;margin-bottom:3px;color:#281715d1}.wb-insight-row strong{font-size:.74rem;font-weight:800}.wb-due-review{background:linear-gradient(135deg,#ef53500f,#ff98000f);border:1px solid rgba(239,83,80,.12);border-radius:12px;padding:12px;margin-bottom:14px}.wb-due-list{display:flex;flex-direction:column;gap:6px;margin-top:6px}.wb-due-item{display:flex;align-items:center;gap:8px;padding:6px 8px;border-radius:8px;background:#fff9;border:1px solid rgba(40,23,21,.06)}.wb-due-name{font-size:.72rem;font-weight:800;color:#281715d9;white-space:nowrap}.wb-due-content{flex:1;font-size:.68rem;color:var(--muted);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.wb-due-btn{padding:3px 10px;border-radius:6px;border:1px solid rgba(25,118,210,.2);background:#1976d214;font-size:.66rem;font-weight:750;color:#1565c0;cursor:pointer;transition:background .14s;white-space:nowrap}.wb-due-btn:hover{background:#1976d22e}.wb-due-more{font-size:.64rem;color:var(--muted);margin:0;text-align:center}.wb-progress-section{margin-top:16px;padding:12px;border-radius:12px;background:#ffffff80;border:1px solid rgba(40,23,21,.06)}.wb-progress-bar-wrap{height:8px;border-radius:4px;background:#2817150f;overflow:hidden;margin-top:6px}.wb-progress-bar{height:100%;border-radius:4px;background:linear-gradient(90deg,#67b982,#78c9f2);transition:width .4s ease}.wb-progress-label{font-size:.68rem;font-weight:750;color:var(--muted);margin-top:4px}.wb-progress-lights{display:flex;flex-wrap:wrap;gap:6px;margin-top:8px}.wb-light-item{font-size:.64rem;font-weight:700;padding:2px 5px;border-radius:4px;background:#fff9}.wb-variant-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#28171559;display:grid;place-items:center;z-index:100;animation:block-reveal .2s var(--ease-out-quint) both}.wb-variant-modal{background:var(--panel);border:1.5px solid var(--line);border-radius:22px;box-shadow:var(--shadow);width:min(440px,92vw);max-height:80dvh;overflow-y:auto;padding:18px}.wb-variant-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:14px}.wb-variant-header strong{font-size:.96rem}.wb-variant-question{font-size:.88rem;font-weight:750;line-height:1.5;color:var(--dark);margin-bottom:12px}.wb-variant-options{display:flex;flex-direction:column;gap:6px}.wb-variant-option{width:100%;text-align:left;padding:10px 14px;border:1.5px solid var(--line);border-radius:10px;background:#fff9;font-size:.84rem;font-weight:700;cursor:pointer;transition:background .14s,border-color .14s}.wb-variant-option:hover:not(:disabled){background:#78c9f21a;border-color:var(--blue)}.wb-variant-option.correct{background:#c8ead880;border-color:#66bb6a}.wb-variant-option.wrong{background:#ef53501f;border-color:#ef5350}.wb-variant-fill{display:flex;gap:8px}.wb-variant-fill input{flex:1}.wb-variant-feedback{padding:10px 14px;border-radius:10px;font-size:.82rem;font-weight:750;margin-top:12px;margin-bottom:10px}.wb-variant-feedback.correct{background:#c8ead866;color:#2e7d32}.wb-variant-feedback.wrong{background:#ef53501a;color:#c62828}.wb-summary-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;margin-bottom:16px}.wb-summary-grid article{min-width:0;padding:13px 14px;border:1px solid rgba(40,23,21,.08);border-radius:15px;background:linear-gradient(145deg,#ffffffd1,#78c9f212)}.wb-summary-grid span,.wb-summary-grid small{display:block;color:var(--muted);font-size:.68rem;font-weight:750}.wb-summary-grid strong{display:block;margin:3px 0;font-size:1.45rem;line-height:1}.wb-content-grid{display:grid;grid-template-columns:minmax(0,1.7fr) minmax(260px,.8fr);gap:16px;align-items:start}.wb-list-column,.wb-insight-column{min-width:0}.wb-section-heading{display:flex;align-items:end;justify-content:space-between;gap:12px;margin-bottom:10px}.wb-section-heading h3{margin:2px 0 0;font-size:1rem}.wb-section-heading>span{color:var(--muted);font-size:.7rem;font-weight:800}.wb-insight-column{position:sticky;top:0;display:grid;gap:10px}.wb-insight-column>*{margin:0}.wb-action-btn{min-height:31px;display:inline-flex;align-items:center;gap:5px;padding:5px 9px;border:1px solid rgba(40,23,21,.1);border-radius:8px;background:#ffffffb8;color:var(--dark);font:inherit;font-size:.68rem;font-weight:820;cursor:pointer}.wb-action-btn svg{width:13px;height:13px}.wb-action-btn.primary{background:#78c9f226;color:#245e7d}.wb-action-btn.success{background:#c8ead859;color:#27653d}.wb-action-btn.danger{color:#b83f37}.wb-footer{justify-content:space-between;gap:12px}.wb-footer>span{color:var(--muted);font-size:.7rem;font-weight:720}.wb-footer>div{display:flex;gap:8px}@media (max-width: 820px){.wb-shell{max-height:100dvh;border-radius:0}.wb-summary-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.wb-content-grid{grid-template-columns:1fr}.wb-insight-column{position:static}.wb-footer>span{display:none}}.lm-wrong-due-banner{padding:6px 10px;border-radius:8px;background:#ef535014;border:1px solid rgba(239,83,80,.15);font-size:.7rem;font-weight:800;color:#c62828;margin-bottom:8px;text-align:center}.home-wrong-due-banner{padding:6px 10px;border-radius:8px;background:linear-gradient(135deg,#ef535014,#ff98000f);border:1px solid rgba(239,83,80,.15);font-size:.74rem;font-weight:800;color:#c62828;margin-bottom:8px;text-align:center}.diagnosis-fill-input-wrap{display:flex;flex-direction:column;gap:8px;margin-top:8px}.diagnosis-fill-input{width:100%;padding:12px 16px;border-radius:10px;border:2px solid var(--line);font-size:.9rem;font-family:inherit;background:#fff;color:var(--dark);transition:border-color .14s}.diagnosis-fill-input:focus{outline:none;border-color:var(--blue)}.adaptive-quiz-shell{width:min(520px,calc(100vw - 32px));height:auto;max-height:min(640px,var(--overlay-panel-height));background:#fffcf3;border-radius:var(--radius);box-shadow:var(--shadow)}.adaptive-quiz-shell .practice-body{padding:12px 20px;min-height:unset}.adaptive-quiz-shell .practice-stage{min-height:unset;grid-template-columns:1fr;gap:0;align-items:start}.adaptive-quiz-shell .practice-question h2{max-width:none;font-size:clamp(1rem,2vw,1.18rem);line-height:1.36}.adaptive-completion-body{min-height:360px;display:grid;place-items:center}.adaptive-completion-body .practice-stage{width:100%;min-height:100%;place-items:center}.adaptive-difficulty-badge{display:inline-block;padding:2px 10px;border-radius:10px;font-size:.68rem;font-weight:800;letter-spacing:.03em}.adaptive-difficulty-badge.easy{background:#e8f5e9;color:#2e7d32}.adaptive-difficulty-badge.medium{background:#fff8e1;color:#f57f17}.adaptive-difficulty-badge.hard{background:#ffebee;color:#c62828}.adaptive-progress-bar-wrap{padding:6px 20px 4px;border-top:1px solid var(--line);background:#fffcf399}.adaptive-progress-stats{display:flex;align-items:center;gap:8px;font-size:.72rem;font-weight:650;color:var(--muted);margin-bottom:4px}.adaptive-progress-count,.adaptive-progress-accuracy{font-variant-numeric:tabular-nums}.adaptive-progress-source{margin-left:auto;padding:1px 7px;border-radius:6px;font-size:.62rem;font-weight:800}.adaptive-progress-source.bank{background:#e3f2fd;color:#1565c0}.adaptive-progress-source.ai{background:#f3e5f5;color:#7b1fa2}.adaptive-progress-track{height:5px;background:#e8e0d0;border-radius:3px;overflow:hidden;position:relative}.adaptive-progress-fill{height:100%;background:linear-gradient(90deg,var(--green),#a6e1bd);border-radius:3px;transition:width .4s ease}.adaptive-progress-threshold{position:absolute;top:0;width:2px;height:100%;background:#0003}.adaptive-progress-label{font-size:.6rem;color:#9e8e7e;margin-top:2px}.adaptive-quiz-options{padding:8px 20px 16px;display:grid;grid-template-columns:1fr 1fr;gap:8px}.adaptive-quiz-options button:not(.primary-button){padding:8px 12px;border:2px solid var(--line);border-radius:10px;background:#fff;font-size:.8rem;line-height:1.3;cursor:pointer;text-align:center;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;transition:all .12s}.adaptive-quiz-options .primary-button{grid-column:1 / -1}.adaptive-quiz-options button:not(.primary-button):hover{border-color:var(--blue)}.adaptive-quiz-options button:not(.primary-button).selected{border-color:var(--blue-deep);background:#e3f2fd}.adaptive-quiz-options button:not(.primary-button).correct{border-color:var(--green);background:#e8f5e9}.adaptive-quiz-options button:not(.primary-button).wrong{border-color:#ef5350;background:#ffebee}.adaptive-fill-wrap{padding:0}.adaptive-fill-input{width:100%;padding:10px 14px;border:2px solid var(--line);border-radius:10px;font-size:.85rem;background:#fff}.adaptive-fill-input:focus{outline:none;border-color:var(--blue)}.adaptive-mastered-notice{text-align:center;padding:20px 16px;width:min(360px,100%);margin:0 auto}.adaptive-mastered-icon{font-size:40px;margin-bottom:8px}.adaptive-mastered-notice h2{font-size:1.1rem;color:var(--ink)}.adaptive-mastered-notice p{font-size:.82rem;color:var(--muted);margin:6px 0 12px}.adaptive-quiz-loading{text-align:center;padding:32px;color:var(--muted);font-size:.85rem}.lm-detail-actions{display:flex;gap:8px}.lm-detail-learn-btn{flex:1}.lm-detail-quiz-btn{flex:1;padding:10px;border:2px solid #dea21c;border-radius:12px;background:#fffcf3;color:#281715e6;font-size:.82rem;font-weight:850;cursor:pointer;-webkit-tap-highlight-color:transparent;transition:transform .1s,background .15s}.lm-detail-quiz-btn:hover{background:#fff4d6}.lm-detail-quiz-btn:active{transform:translateY(1px)}.lp-node{position:relative;min-height:68px;padding-top:16px}.lp-node-label{position:absolute;top:-2px;left:50%;transform:translate(-50%);font-size:.58rem;font-weight:800;color:#e65100;background:#ff980026;padding:2px 8px;white-space:nowrap;z-index:2}.decay-warning-banner{display:flex;align-items:center;gap:8px;padding:8px 16px;background:#fff8e1;border-bottom:1px solid #ffe082;font-size:13px;color:#f57f17;animation:slideDown .3s ease}.decay-warning-icon{font-size:16px}.decay-warning-text{flex:1}.decay-warning-btn{background:#ffca28;border:none;border-radius:4px;padding:4px 10px;font-size:12px;cursor:pointer;color:#5d4037}.decay-warning-btn:hover{background:#ffd54f}.mastery-tooltip{display:flex;flex-wrap:wrap;gap:8px;font-size:12px;color:#666;padding:4px 0}.mastery-tooltip-source,.mastery-tooltip-time{color:#888}.mastery-tooltip-decay{color:#e65100;font-weight:600}.learning-plan-shell{position:relative;width:min(580px,calc(100vw - 32px));max-height:min(720px,var(--overlay-panel-height));background:#fffcf3;border-radius:var(--radius);box-shadow:var(--shadow);display:flex;flex-direction:column;overflow:hidden}.learning-plan-inline{padding:16px 24px;width:100%;max-width:100%;justify-self:stretch;align-self:start}.learning-plan-inline-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:16px}.learning-plan-inline-header h2{font-size:1.1rem;font-weight:850;color:var(--ink)}.learning-plan-body{flex:1;overflow-y:auto;padding:16px}.learning-plan-progress{margin-bottom:20px}.learning-plan-progress-bar{height:8px;background:#e0e0e0;border-radius:4px;overflow:hidden;margin-bottom:6px}.learning-plan-progress-fill{height:100%;background:linear-gradient(90deg,#4caf50,#66bb6a);border-radius:4px;transition:width .5s ease}.learning-plan-progress-text{font-size:13px;color:#666;text-align:center}.learning-plan-sessions{display:flex;flex-direction:column;gap:12px;margin-bottom:20px}.learning-plan-session-card{border:1px solid #e0e0e0;border-radius:10px;padding:14px;background:#fff;transition:all .2s ease}.learning-plan-session-card.current{border-color:var(--blue);box-shadow:0 0 0 2px #1976d226;background:#e3f2fd}.learning-plan-session-card.done{opacity:.6;background:#f5f5f5}.learning-plan-session-card.upcoming{border-style:dashed}.session-card-header{display:flex;align-items:center;gap:8px;margin-bottom:8px;font-weight:600}.session-card-index{width:24px;height:24px;border-radius:50%;background:var(--blue);color:#fff;display:flex;align-items:center;justify-content:center;font-size:12px}.learning-plan-session-card.done .session-card-index{background:#4caf50}.session-card-label{flex:1}.session-card-duration{font-size:12px;color:#888}.session-card-points{display:flex;flex-wrap:wrap;gap:6px}.session-card-point{font-size:12px;padding:3px 10px;border-radius:12px;background:#e8eaf6;color:#283593;cursor:pointer;transition:all .15s}.session-card-point:hover{background:#c5cae9}.learning-plan-config{border-top:1px solid #e0e0e0;padding-top:16px;margin-top:8px}.plan-config-row{display:flex;align-items:center;gap:10px;margin-bottom:10px;font-size:13px}.plan-config-row label{min-width:100px;color:#555}.plan-config-row input[type=range]{flex:1;accent-color:var(--blue)}.plan-config-row span{min-width:50px;text-align:right;color:#333;font-weight:500}.lesson-runner-page{width:100%;min-height:100dvh;overflow:hidden;background:radial-gradient(circle at 8% 12%,rgba(120,201,242,.28),transparent 28%),radial-gradient(circle at 92% 88%,rgba(255,191,145,.3),transparent 30%),linear-gradient(#fbf8eef0,#fbf8eefa),url(/assets/learning-atlas.png) center / cover no-repeat,var(--paper)}.lesson-runner-shell{width:100%;height:100dvh;display:grid;grid-template-rows:auto auto minmax(0,1fr) auto;overflow:hidden;background:#fffdf6ad;backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px)}.lesson-runner-shell>.player-top{width:min(1180px,calc(100% - 40px));min-height:72px;margin:0 auto;padding:16px 0 10px;display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:14px;border:0;background:transparent}.lesson-runner-shell>.player-top .practice-title{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;text-align:center;font-size:clamp(1rem,2vw,1.25rem);font-weight:900;color:var(--ink)}.lesson-runner-shell>.player-top:after{width:40px;height:40px;content:""}.lesson-runner-progress-bar{width:min(1040px,calc(100% - 40px));margin:0 auto;padding:10px 16px;display:flex;align-items:center;gap:12px;border:1px solid rgba(40,23,21,.1);border-radius:16px;background:#ffffffa8;box-shadow:0 10px 30px #34221b0f}.lesson-progress-track{flex:1;height:8px;background:#28171514;border-radius:999px;overflow:hidden}.lesson-progress-fill{height:100%;background:linear-gradient(90deg,var(--blue),var(--green));border-radius:999px;transition:width .4s ease}.lesson-progress-text{font-size:.72rem;color:var(--muted);font-weight:800;white-space:nowrap}.lesson-runner-body{min-height:0;overflow-y:auto;padding:clamp(22px,4vh,44px) max(20px,calc((100vw - 1040px)/2));overscroll-behavior:contain}.lesson-step-content{width:100%;max-width:920px;min-height:min(54dvh,560px);margin:0 auto;padding:clamp(24px,4vw,52px);border:1px solid rgba(40,23,21,.1);border-radius:28px;background:#fffdf6f0;box-shadow:0 24px 70px #34221b1f}.lesson-step-title{max-width:760px;margin:0 auto 20px;font-size:clamp(1.45rem,3vw,2.25rem);line-height:1.15;color:var(--ink);text-align:center}.lesson-step-body{max-width:760px;margin:0 auto;font-size:clamp(.98rem,1.5vw,1.1rem);line-height:1.85;color:#4f423aeb}.lesson-step-body p{margin-bottom:14px}.lesson-quiz-section{max-width:760px;margin:28px auto 0;padding:clamp(18px,3vw,28px);border:1px solid rgba(40,23,21,.1);border-radius:22px;background:linear-gradient(135deg,#78c9f21f,#ffcb4914),#ffffffc7}.lesson-quiz-question{margin-bottom:18px;color:var(--ink);font-size:clamp(1rem,1.8vw,1.2rem);font-weight:850;line-height:1.55}.lesson-quiz-options{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.lesson-quiz-option{min-height:52px;padding:12px 16px;border:1.5px solid rgba(40,23,21,.13);border-radius:14px;background:#ffffffdb;cursor:pointer;text-align:left;color:var(--ink);font-size:.9rem;font-weight:700;line-height:1.45;transition:transform .14s var(--ease-snap),border-color .14s,background .14s}.lesson-quiz-option:hover:not(:disabled){transform:translateY(-1px);border-color:var(--blue)}.lesson-quiz-option.selected{border-color:var(--blue-deep);background:#78c9f233}.lesson-quiz-option.correct{border-color:var(--green);background:#c8ead88c}.lesson-quiz-option.wrong{border-color:#ef5350;background:#ffcdc98c}.lesson-quiz-option:disabled{cursor:default;opacity:1}.lesson-quiz-fill-input{width:100%;padding:13px 16px;border:1.5px solid rgba(40,23,21,.14);border-radius:14px;background:#ffffffe6;font-size:.95rem}.lesson-quiz-fill-input:focus{outline:none;border-color:var(--blue)}.lesson-quiz-feedback{margin-top:16px;padding:13px 16px;border-radius:14px;font-size:.9rem;font-weight:800}.lesson-quiz-feedback.correct{background:#c8ead89e;color:#27653d}.lesson-quiz-feedback.wrong{background:#ffcdc99e;color:#a52f2a}.lesson-quiz-actions{display:flex;flex-wrap:wrap;align-items:center;justify-content:flex-end;gap:10px;margin-top:16px}.lesson-prereq-suggestion{width:min(920px,100%);margin:14px auto 0;padding:14px 16px;background:#ffe0b2b3;border-radius:16px;color:#e65100;font-size:.82rem}.lesson-retry-exhausted{color:#e65100;font-size:.8rem;margin:4px 0}.lesson-runner-actions{width:100%;min-height:76px;padding:12px max(20px,calc((100vw - 1040px)/2));border-top:1px solid rgba(40,23,21,.1);background:#fffdf6e6;backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);display:flex;flex-wrap:wrap;align-items:center;justify-content:flex-end;gap:10px}.lesson-runner-loading{grid-row:1 / -1;min-height:100dvh;display:grid;place-items:center;color:var(--muted);font-size:.95rem;font-weight:800}.lesson-runner-mode-body{grid-row:3 / -1;display:grid;align-items:center}.lesson-runner-complete-body{grid-row:2 / -1;display:grid;align-items:center}.lesson-complete-summary{width:min(820px,100%);margin:auto;padding:clamp(28px,5vw,54px);border:1px solid rgba(40,23,21,.1);border-radius:28px;background:#fffdf6f0;box-shadow:0 24px 70px #34221b1f;text-align:center}.lesson-complete-summary h3{font-size:clamp(1.5rem,3vw,2.2rem);margin-bottom:24px}.lesson-complete-stats{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin-bottom:24px}.lesson-stat{min-height:82px;display:grid;place-items:center;padding:12px;border:1px solid rgba(40,23,21,.08);border-radius:16px;background:#ffffffa3;color:#4f423ad9;font-size:.82rem;font-weight:800}.teaching-mode-selector{width:min(960px,100%);margin:auto;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px;padding:0}.teaching-mode-btn{min-height:168px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:8px;width:100%;padding:22px 18px;border:1.5px solid rgba(40,23,21,.1);border-radius:22px;background:#fffdf6e6;cursor:pointer;box-shadow:0 14px 36px #34221b12;transition:transform .18s var(--ease-snap),border-color .18s,box-shadow .18s;text-align:center}.teaching-mode-btn:hover{border-color:var(--blue);background:#fffffff2;transform:translateY(-4px);box-shadow:0 20px 44px #34221b1f}.teaching-mode-btn .mode-icon{font-size:32px;line-height:1}.teaching-mode-btn .mode-label{font-size:1rem;font-weight:900;color:var(--ink)}.teaching-mode-btn .mode-desc{max-width:220px;font-size:.76rem;color:var(--muted);line-height:1.55}.teaching-mode-btn.active{border-color:var(--blue);background:#e3f2fd;box-shadow:0 2px 8px #0000001a}.lesson-mode-title{text-align:center;font-size:clamp(1.25rem,2.5vw,1.8rem);font-weight:900;color:var(--ink);padding:12px 20px 0}@media (max-width: 760px){.lesson-runner-shell>.player-top,.lesson-runner-progress-bar{width:calc(100% - 24px)}.lesson-runner-shell>.player-top{min-height:62px;padding-top:10px}.lesson-runner-progress-bar{align-items:stretch;flex-direction:column;gap:7px}.lesson-progress-text{white-space:normal;text-align:center}.lesson-runner-body{padding:16px 12px}.lesson-step-content,.lesson-complete-summary{min-height:0;padding:22px 16px;border-radius:20px}.lesson-step-title{font-size:1.4rem}.lesson-quiz-options,.lesson-complete-stats{grid-template-columns:1fr}.lesson-stat{min-height:56px}.lesson-runner-actions{min-height:0;padding:10px 12px calc(10px + env(safe-area-inset-bottom,0px));justify-content:stretch}.lesson-runner-actions>button{flex:1 1 120px;justify-content:center}.lesson-runner-actions>.lesson-tts-btn{flex:1 1 130px;margin-right:0}.teaching-mode-selector{grid-template-columns:repeat(2,minmax(0,1fr))}.teaching-mode-btn{min-height:138px;padding:16px 10px}.lesson-mode-title{padding-top:4px}}@media (max-width: 430px){.teaching-mode-selector{grid-template-columns:1fr}.teaching-mode-btn{min-height:118px}}.lesson-decompose-btn{display:inline-flex;align-items:center;gap:4px;padding:6px 14px;border:2px solid #ff9800;border-radius:20px;background:#fff3e0;color:#e65100;font-size:13px;font-weight:500;cursor:pointer;transition:all .15s}.lesson-decompose-btn:hover{background:#ffe0b2;transform:scale(1.03)}.lesson-tts-btn{display:inline-flex;align-items:center;justify-content:center;gap:7px;min-width:112px;height:42px;padding:0 16px;border:1.5px solid rgba(40,23,21,.18);border-radius:14px;background:var(--coin-blue);color:var(--ink);font-size:.78rem;font-weight:850;white-space:nowrap;cursor:pointer;transition:transform .15s,background .15s,border-color .15s;margin-right:auto;box-shadow:0 3px #2817151f}.lesson-tts-btn svg{width:19px;height:19px}.lesson-tts-btn:hover{background:#78c9f28c;border-color:#2817154d;transform:translateY(-1px)}.lesson-tts-btn.loading{cursor:progress;background:#78c9f259}.lesson-tts-btn.speaking{background:var(--coin-peach);border-color:#28171559;animation:tts-pulse 1.5s ease-in-out infinite}@keyframes tts-pulse{0%,to{box-shadow:0 3px #2817151f,0 0 #ffbf9173}50%{box-shadow:0 3px #2817151f,0 0 0 7px #ffbf9100}}.geometry-player-wrapper{margin:12px 0;border-radius:14px;overflow:hidden;background:#fffcf3;border:1px solid #e0e0e0}.geometry-player-canvas{display:block;width:100%;height:280px;background:#fffcf3}.geometry-player-controls{display:flex;align-items:center;gap:8px;padding:8px 12px;background:#fafafa;border-top:1px solid #e0e0e0}.geo-ctrl-btn{padding:5px 12px;border:1px solid #ccc;border-radius:6px;background:#fff;font-size:12px;cursor:pointer;transition:all .15s;white-space:nowrap}.geo-ctrl-btn:hover{background:#f0f0f0}.geo-ctrl-btn:active{background:#e0e0e0}.geo-progress-track{flex:1;height:6px;background:#e0e0e0;border-radius:3px;overflow:hidden;cursor:pointer}.geo-progress-fill{height:100%;background:linear-gradient(90deg,#78c9f2,#67b982);border-radius:3px;transition:width .1s;width:0%}.geometry-player-desc{padding:8px 12px;font-size:12px;color:#888;text-align:center;border-top:1px solid #f0f0f0}.lesson-annotation-list{margin-top:8px;display:flex;flex-direction:column;gap:4px}.lesson-annotation-item{border:1px solid #e0e0e0;border-radius:8px;overflow:hidden;font-size:13px}.lesson-annotation-header{padding:6px 10px;background:#f5f5f5;cursor:pointer;display:flex;align-items:center;gap:4px;color:#555;font-weight:500;transition:background .15s}.lesson-annotation-header:hover{background:#eee}.lesson-annotation-header .ann-icon{font-size:12px;transition:transform .2s}.lesson-annotation-item.open .ann-icon{transform:rotate(90deg)}.lesson-annotation-body{padding:8px 10px;color:#666;line-height:1.5;display:none;border-top:1px solid #e0e0e0;background:#fff}.lesson-annotation-item.open .lesson-annotation-body{display:block}.lesson-step-decompose{background:#fff3e0;border-radius:12px;padding:12px;margin-bottom:8px;border-left:4px solid #ff9800}.lesson-step-decompose .decompose-label{display:inline-block;font-size:11px;font-weight:600;color:#e65100;background:#ffe0b2;padding:2px 8px;border-radius:10px;margin-bottom:6px}.lesson-step-decompose .prereq-ref{font-size:12px;color:#e65100;margin-top:4px}.lesson-quiz-explanation{margin-top:8px;padding:10px;background:#e3f2fd;border-radius:8px;font-size:13px;line-height:1.5;color:#1565c0;border-left:3px solid #42a5f5}.lesson-quiz-explanation .expl-label{font-weight:600;display:block;margin-bottom:4px}.lesson-correct-answer{margin-top:6px;padding:4px 10px;background:#e8f5e9;border-radius:6px;font-size:13px;color:#2e7d32;display:inline-block}.lesson-mode-switch{display:flex;align-items:center;gap:6px;padding:4px 0}.lesson-mode-switch-btn{padding:4px 10px;border:1px solid #e0e0e0;border-radius:14px;background:#fff;font-size:12px;cursor:pointer;transition:all .15s}.lesson-mode-switch-btn:hover{background:#f5f5f5;border-color:var(--blue)}.resume-prompt-shell{position:fixed;top:0;right:0;bottom:0;left:0;z-index:200;background:#fffcf3;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:32px;text-align:center;width:min(480px,100%);max-height:100dvh;overflow-y:auto;max-width:480px;margin:0 auto}.resume-prompt-icon{font-size:48px;margin-bottom:16px}.resume-prompt-shell h2{font-size:22px;margin-bottom:8px}.resume-prompt-shell p{color:#666;margin-bottom:24px}.resume-prompt-warning{color:#e65100;font-weight:500;margin-top:-12px;margin-bottom:20px}.resume-prompt-actions{display:flex;gap:12px}.completion-shell{position:fixed;top:0;right:0;bottom:0;left:0;z-index:200;background:#fffcf3;display:flex;flex-direction:column;align-items:center;padding:24px 16px;overflow-y:auto;width:min(520px,100%);max-height:100dvh;max-width:520px;margin:0 auto}.completion-header{text-align:center;margin-bottom:24px}.completion-trophy{font-size:64px;margin-bottom:8px}.completion-header h2{font-size:24px;color:#333}.completion-stats{display:grid;grid-template-columns:1fr 1fr;gap:12px;width:100%;margin-bottom:24px}.completion-stat-card{background:#f5f5f5;border-radius:12px;padding:16px;text-align:center}.completion-stat-value{font-size:24px;font-weight:700;color:var(--blue)}.completion-stat-label{font-size:12px;color:#888;margin-top:4px}.completion-lights{text-align:center;margin-bottom:24px}.completion-lights-row{display:flex;justify-content:center;gap:16px;font-size:18px;margin-bottom:8px}.completion-lights-change{font-size:13px;color:#888}.completion-actions{display:flex;flex-direction:column;gap:10px;width:100%;max-width:300px}.global-progress-bar{height:4px;background:#e0e0e0;position:relative;transition:all .3s}.global-progress-bar.low .global-progress-fill{background:#ef5350}.global-progress-bar.mid .global-progress-fill{background:#ffca28}.global-progress-bar.high .global-progress-fill{background:#66bb6a}.global-progress-fill{height:100%;transition:width .5s ease;border-radius:0 2px 2px 0}.global-progress-text{position:absolute;right:8px;top:6px;font-size:11px;color:#888;display:none}.global-progress-bar:hover .global-progress-text{display:block}.global-progress-bar:hover{height:20px}@keyframes slideDown{0%{transform:translateY(-100%);opacity:0}to{transform:translateY(0);opacity:1}}.exploration-overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:100;background:var(--panel);display:flex;flex-direction:column}.exploration-canvas-wrap{position:relative;flex:1;overflow:hidden;background:#fffdf673}.exploration-header{position:absolute;top:0;left:0;right:0;z-index:10;display:flex;align-items:center;justify-content:space-between;padding:12px 16px;background:linear-gradient(to bottom,var(--panel),rgba(255,253,246,0));pointer-events:none}.exploration-header>*{pointer-events:auto}.eheader-left{display:flex;align-items:baseline;gap:8px}.eheader-kicker{font-size:.7rem;text-transform:uppercase;letter-spacing:.06em;color:var(--muted);font-weight:600}.eheader-title{font-size:1rem;font-weight:700;margin:0;color:var(--ink)}.eheader-right{display:flex;align-items:center;gap:12px}.eheader-progress{display:flex;align-items:center;gap:8px;font-size:.75rem;color:var(--muted)}.eheader-progress-bar{width:60px;height:4px;border-radius:2px;background:#000;overflow:hidden}.eheader-progress-bar:after{content:"";display:block;height:100%;width:var(--progress, 0%);background:var(--green);border-radius:2px;transition:width .3s}.exploration-canvas{position:absolute;top:0;right:0;bottom:0;left:0;transform-origin:center center;transition:transform .15s ease-out}.exploration-terrain{position:absolute;top:0;right:0;bottom:0;left:0;pointer-events:none;z-index:0}.exploration-lines{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;pointer-events:none;z-index:1}.etrail-default{stroke:#2817152e;stroke-width:.45;fill:none}.etrail-depends{stroke:#28171547;stroke-width:.55;stroke-dasharray:1.2 .6;fill:none}.etrail-sub{stroke:#28171538;stroke-width:.4;stroke-dasharray:1 .8;fill:none}.etrail-locked{stroke:#2817150a;stroke-width:.3;fill:none}.etrail-faint{stroke:#28171514;stroke-width:.35;fill:none}.etrail-highlighted{stroke:var(--blue-deep);stroke-width:.65;fill:none}.etrail-recommended{stroke:var(--blue);stroke-width:.7;stroke-dasharray:1.6 .8;fill:none;animation:eflow 1.2s linear infinite}@keyframes eflow{to{stroke-dashoffset:-2.4}}.exploration-node{position:absolute;transform:translate(-50%,-50%);display:flex;flex-direction:column;align-items:center;padding:8px 10px 6px;border:1.5px solid transparent;border-radius:16px;background:#ffffffbf;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);cursor:pointer;z-index:3;transition:transform .15s,box-shadow .15s,border-color .15s;text-align:center;min-width:76px;max-width:120px;font-family:inherit;line-height:1.2}.exploration-node:hover:not(:disabled){transform:translate(-50%,-50%) scale(1.06);box-shadow:0 2px 12px #0000001a}.exploration-node:active:not(:disabled){transform:translate(-50%,-50%) scale(.97)}.exploration-node.selected{border-color:var(--blue-deep);box-shadow:0 0 0 3px #4466ff2e;z-index:5}.exploration-node.is-main{min-width:86px;max-width:140px;padding:10px 14px 8px}.exploration-node.is-sub{min-width:64px;max-width:100px;padding:6px 8px 5px;border-radius:12px;font-size:.9em}.enode-emoji{font-size:1.1rem;line-height:1;margin-bottom:2px}.is-sub .enode-emoji{font-size:.9rem}.enode-label{font-size:.74rem;font-weight:700;color:var(--ink);display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;word-break:break-all}.is-sub .enode-label{font-size:.68rem;-webkit-line-clamp:1}.enode-meta{display:flex;align-items:center;gap:4px;margin-top:2px}.enode-type-badge{font-size:.55rem;text-transform:uppercase;letter-spacing:.04em;padding:1px 4px;border-radius:4px;background:#0000000d;color:var(--muted)}.enode-mastery{font-size:.6rem;font-weight:700;color:var(--green)}.enode-lock{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;align-items:center;justify-content:center;font-size:1.2rem;border-radius:16px}.enode-lock:before{content:"🔒";filter:grayscale(.8)}.enode-arrow{position:absolute;top:-18px;left:50%;transform:translate(-50%);font-size:.55rem;font-weight:700;color:var(--blue);background:#ffffffe6;padding:1px 6px;border-radius:6px;white-space:nowrap}.status-locked{opacity:.45;filter:grayscale(.6) blur(.3px);border-style:dashed;border-color:#0000001a;cursor:default;pointer-events:none}.status-available{border-color:var(--blue-deep);border-width:2px}.status-available .enode-label{color:var(--blue-deep)}.status-explored{border-color:var(--green)}.status-explored:after{content:"✓";position:absolute;top:-6px;right:-6px;font-size:.6rem;width:16px;height:16px;line-height:16px;text-align:center;border-radius:50%;background:var(--green);color:#fff;font-weight:700}.status-mastered{border-color:#daa520;background:radial-gradient(ellipse at 40% 30%,#ffe67b59,#ffffffbf)}.status-mastered:after{content:"★";position:absolute;top:-6px;right:-6px;font-size:.6rem;width:16px;height:16px;line-height:16px;text-align:center;border-radius:50%;background:linear-gradient(135deg,gold,#e8a800);color:#fff}.recommended-next{animation:epulse 2s ease-in-out infinite}.recommended-next:before{content:"下一站";position:absolute;top:-18px;left:50%;transform:translate(-50%);font-size:.55rem;font-weight:700;color:var(--blue);background:#ffffffe6;padding:1px 6px;border-radius:6px;white-space:nowrap}@keyframes epulse{0%,to{box-shadow:0 0 0 2px #4466ff26}50%{box-shadow:0 0 0 5px #4466ff14}}.tone-blue{background:linear-gradient(135deg,#b8daff99,#ffffffbf)}.tone-mint{background:linear-gradient(135deg,#b8edca99,#ffffffbf)}.tone-lavender{background:linear-gradient(135deg,#d8bfff99,#ffffffbf)}.tone-peach{background:linear-gradient(135deg,#ffd6b399,#ffffffbf)}.tone-gold{background:radial-gradient(ellipse at 40% 30%,#ffe67b80,#ffffffbf)}.status-locked.tone-blue,.status-locked.tone-mint,.status-locked.tone-lavender,.status-locked.tone-peach,.status-locked.tone-gold{background:#dcd7cd99}.status-mastered.tone-blue,.status-mastered.tone-mint,.status-mastered.tone-lavender,.status-mastered.tone-peach,.status-mastered.tone-gold{background:radial-gradient(ellipse at 40% 30%,#ffe67b59,#ffffffbf)}.type-challenge{clip-path:polygon(50% 0%,100% 25%,100% 75%,50% 100%,0% 75%,0% 25%);padding:12px 10px 10px;text-align:center}.type-process{min-width:96px}.type-formula .enode-label{font-style:italic;font-family:monospace;font-size:.68rem}.edetail-panel{position:absolute;top:52px;right:12px;bottom:12px;width:320px;background:var(--panel);border:1.5px solid var(--line);border-radius:20px;box-shadow:var(--shadow);z-index:20;overflow-y:auto;padding:16px;animation:eslide-in .2s ease-out}@keyframes eslide-in{0%{transform:translate(20px);opacity:0}to{transform:translate(0);opacity:1}}.edetail-close{position:absolute;top:10px;right:10px;width:28px;height:28px;border:none;border-radius:50%;background:#0000000d;cursor:pointer;font-size:.8rem;display:flex;align-items:center;justify-content:center;color:var(--muted);transition:background .15s}.edetail-close:hover{background:#0000001a}.edetail-header{margin-bottom:12px;padding-right:24px}.edetail-emoji{font-size:1.5rem}.edetail-title{font-size:.95rem;font-weight:700;margin:4px 0;color:var(--ink)}.edetail-badges{display:flex;gap:6px;flex-wrap:wrap}.edetail-type-badge{font-size:.6rem;padding:2px 6px;border-radius:6px;font-weight:600;text-transform:uppercase;letter-spacing:.03em}.tone-blue{--badge-bg: rgba(68,102,255,.12);--badge-fg: var(--blue-deep)}.tone-mint{--badge-bg: rgba(46,170,100,.12);--badge-fg: #1a8a50}.tone-lavender{--badge-bg: rgba(140,80,220,.12);--badge-fg: #7c3aed}.tone-peach{--badge-bg: rgba(220,120,50,.12);--badge-fg: #b85c20}.tone-gold{--badge-bg: rgba(200,160,20,.12);--badge-fg: #8a6d00}.edetail-type-badge{background:var(--badge-bg);color:var(--badge-fg)}.edetail-status-badge{font-size:.6rem;padding:2px 6px;border-radius:6px;font-weight:600}.status-locked{background:#0000000f;color:var(--muted)}.status-available{background:#4466ff1a;color:var(--blue-deep)}.status-explored{background:#2eaa641a;color:#1a8a50}.status-mastered{background:#c8a0141f;color:#8a6d00}.edetail-mastery{margin-bottom:12px}.edetail-mastery-head{display:flex;justify-content:space-between;font-size:.8rem;margin-bottom:4px;color:var(--muted)}.edetail-mastery-head strong{color:var(--green)}.edetail-overall-track{height:5px;border-radius:3px;background:#0000000f;overflow:hidden;margin-bottom:6px}.edetail-overall-track div{height:100%;background:var(--green);border-radius:3px;transition:width .3s}.edetail-dimensions{display:grid;grid-template-columns:1fr 1fr;gap:2px;font-size:.65rem;color:var(--muted)}.edetail-context-cards{display:flex;flex-direction:column;gap:4px;margin-bottom:12px}.edetail-context-card{display:block;border:none;background:#00000008;border-radius:10px;padding:0;cursor:pointer;width:100%;text-align:left;font-family:inherit;transition:background .15s}.edetail-context-card:hover{background:#0000000f}.ecc-header{display:grid;grid-template-columns:24px 1fr 20px;align-items:center;gap:4px;padding:8px 10px;font-size:.78rem}.ecc-icon{font-size:.9rem}.ecc-label{font-weight:600;color:var(--ink)}.ecc-toggle{text-align:right;color:var(--muted);font-size:.7rem}.ecc-body{padding:0 10px 10px;font-size:.76rem;color:var(--ink);line-height:1.5}.ecc-body p{margin:0}.edetail-tasks-section{margin-bottom:12px}.edetail-subtitle{font-size:.75rem;font-weight:700;text-transform:uppercase;letter-spacing:.04em;color:var(--muted);margin:0 0 6px}.edetail-task-cards{display:flex;flex-direction:column;gap:4px}.edetail-task-card{display:flex;align-items:center;justify-content:space-between;padding:8px 10px;border-radius:8px;background:#00000005;border-left:3px solid transparent;gap:8px}.stage-explore{border-left-color:var(--blue)}.stage-understand{border-left-color:var(--green)}.stage-practice{border-left-color:#e08040}.stage-apply{border-left-color:#8c50dc}.edetail-task-card.done{opacity:.5}.edetail-task-card.locked{opacity:.35}.etcard-info{display:flex;align-items:center;gap:6px;min-width:0}.etcard-icon{font-size:.8rem;flex-shrink:0}.etcard-text{display:flex;flex-direction:column;min-width:0}.etcard-stage{font-size:.55rem;text-transform:uppercase;letter-spacing:.04em;color:var(--muted)}.etcard-title{font-size:.74rem;font-weight:600;color:var(--ink);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.etcard-action{flex-shrink:0;font-size:.68rem;font-weight:600;padding:4px 10px;border:none;border-radius:8px;background:var(--blue);color:#fff;cursor:pointer;font-family:inherit;transition:background .15s}.etcard-action:hover{background:var(--blue-deep)}.edetail-reading-btn{display:block;width:100%;padding:8px;border:1px solid var(--line);border-radius:10px;background:#00000005;cursor:pointer;font-size:.78rem;font-weight:600;color:var(--ink);text-align:center;margin-bottom:12px;font-family:inherit;transition:background .15s}.edetail-reading-btn:hover{background:#0000000f}.edetail-tutor{border-top:1px solid var(--line);padding-top:10px}.etutor-messages{max-height:140px;overflow-y:auto;margin-bottom:8px}.etutor-message{margin-bottom:6px;font-size:.76rem;line-height:1.45}.etutor-message strong{font-size:.65rem;display:block;margin-bottom:2px}.etutor-message.user{background:#d8bfff26;padding:6px 8px;border-radius:8px}.etutor-message.user strong{color:#7c3aed}.etutor-message.assistant{background:#b8edca26;padding:6px 8px;border-radius:8px}.etutor-message.assistant strong{color:#1a8a50}.etutor-message.assistant.loading{opacity:.6}.etutor-message p{margin:0}.etutor-starters{display:grid;grid-template-columns:1fr 1fr;gap:4px;margin-bottom:8px}.etutor-starters button{font-size:.68rem;padding:6px 8px;border:1px solid var(--line);border-radius:8px;background:#00000005;cursor:pointer;text-align:left;color:var(--ink);font-family:inherit;transition:background .15s}.etutor-starters button:hover{background:#0000000f}.etutor-error{color:#b91c1c;font-size:.76rem;margin:4px 0}.etutor-input{display:flex;gap:6px}.etutor-input input{flex:1;padding:6px 10px;border:1px solid var(--line);border-radius:10px;font-size:.78rem;font-family:inherit;background:#fff9}.etutor-input input:focus{outline:none;border-color:var(--blue)}.etutor-input button{width:32px;height:32px;border:none;border-radius:10px;background:var(--blue);color:#fff;cursor:pointer;font-size:.9rem;font-family:inherit}.exploration-zoom-controls{position:absolute;bottom:16px;right:16px;display:grid;grid-template-columns:34px 34px;gap:4px;z-index:10}.ezoom-btn{width:34px;height:34px;border-radius:10px;border:1px solid var(--line);background:var(--panel);cursor:pointer;font-size:.9rem;display:flex;align-items:center;justify-content:center;color:var(--ink);transition:background .15s}.ezoom-btn:hover{background:#0000000a}.ezoom-level{grid-column:1 / -1;text-align:center;font-size:.6rem;color:var(--muted)}.ezoom-fit{grid-column:1 / -1;font-size:.68rem}@media (max-width: 760px){.edetail-panel{position:absolute;top:auto;right:0;bottom:0;left:0;width:100%;max-height:50dvh;border-radius:20px 20px 0 0;animation:eslide-up .2s ease-out}@keyframes eslide-up{0%{transform:translateY(20px);opacity:0}to{transform:translateY(0);opacity:1}}.eheader-title{font-size:.85rem}}.kt-container{position:relative;width:100%;height:100%;min-height:400px}.kt-toolbar{display:flex;gap:8px;padding:8px 16px;align-items:center;flex-wrap:wrap;border-bottom:1px solid var(--line, #e3e3e8);background:#fffdf6e0;backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);font-size:.72rem;flex-shrink:0}.kt-search-input{width:180px;padding:5px 12px;border:1px solid var(--line, #e3e3e8);border-radius:7px;font-size:12px;outline:none;transition:border-color .15s;background:#fff}.kt-search-input:focus{border-color:var(--primary, #FF6B35)}.kt-search-input::placeholder{color:#28171559}.kt-tool-btn{display:inline-flex;align-items:center;justify-content:center;gap:6px;padding:4px 12px;border:1px solid rgba(40,23,21,.1);border-radius:6px;background:#ffffffb8;font-size:.72rem;cursor:pointer;color:#281715b3;transition:background .15s,border-color .15s;white-space:nowrap}.kt-reset-btn{min-height:34px;padding:6px 14px;border-color:#28171533;background:#78c9f229;color:var(--ink);font-size:.76rem;font-weight:850}.kt-reset-btn svg{width:18px;height:18px;stroke-width:2.4}.kt-tool-btn:hover{background:#78c9f229;border-color:#2817152e}.kt-view-switcher{display:inline-flex;align-items:center;gap:6px;flex-wrap:wrap}.kt-seg-btn{display:inline-flex;align-items:center;gap:5px;padding:6px 11px;border:1px solid rgba(40,23,21,.18);border-radius:8px;background:#fff9;color:var(--ink);font-size:.78rem;font-weight:800;cursor:pointer;white-space:nowrap;transition:background .15s,border-color .15s}.kt-seg-btn svg{width:15px;height:15px;stroke-width:2.3}.kt-seg-btn:hover{background:#78c9f224}.kt-seg-btn.active{background:#78c9f242;border-color:#3884c48c}.kt-status-legend{display:flex;align-items:center;gap:10px;margin-left:auto;flex-wrap:wrap}.kt-status-legend span{display:inline-flex;align-items:center;gap:4px;color:#2817159e;font-weight:750}.kt-status-legend i{width:11px;height:11px;border-radius:50%;display:inline-block;border:1.5px solid}.kt-status-legend i.gray{background:#e5e7eb;border-color:#9ca3af}.kt-status-legend i.red{background:#fecaca;border-color:#ef4444}.kt-status-legend i.yellow{background:#fef08a;border-color:#eab308}.kt-status-legend i.green{background:#bbf7d0;border-color:#22c55e}.kt-detail-panel{position:absolute;top:0;right:0;width:280px;height:100%;background:#fffffff7;backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);border-left:1px solid rgba(40,23,21,.08);border-radius:0 16px 16px 0;padding:40px 16px 16px;overflow-y:auto;z-index:10;display:none;animation:kt-slide-in .2s ease-out;box-shadow:-4px 0 16px #34221b0f}@keyframes kt-slide-in{0%{transform:translate(20px);opacity:0}to{transform:translate(0);opacity:1}}.kt-detail-close{position:absolute;top:10px;right:12px;width:28px;height:28px;border:none;background:#2817150f;border-radius:50%;cursor:pointer;font-size:14px;color:#28171580;display:flex;align-items:center;justify-content:center;transition:background .15s}.kt-detail-close:hover{background:#2817151a}.kt-detail-dot{width:10px;height:10px;border-radius:50%;margin-bottom:8px}.kt-detail-name{font-size:.95rem;font-weight:700;color:var(--ink, #281715);margin-bottom:4px;line-height:1.3}.kt-detail-path{font-size:.7rem;color:#28171573;margin-bottom:8px}.kt-detail-status{font-size:.78rem;font-weight:600;margin-bottom:12px}.kt-detail-meta{display:flex;flex-direction:column;gap:4px;font-size:.72rem;color:#2817158c;margin-bottom:16px;padding:8px;background:#28171506;border-radius:8px}.kt-detail-actions{display:grid;gap:8px}.kt-btn{min-height:38px;padding:8px 12px;border:1px solid rgba(40,23,21,.12);border-radius:10px;font-family:inherit;font-size:.76rem;font-weight:800;cursor:pointer;transition:transform .1s,background .15s,box-shadow .15s}.kt-btn:active{transform:scale(.98)}.kt-btn-primary{border-color:#281715cc;background:#78c9f2;color:var(--ink, #281715);box-shadow:0 3px #281715bf}.kt-btn-primary:hover{background:#8fd2f4}.kt-btn-secondary{background:#fffdf6e6;color:var(--ink, #281715)}.kt-btn-secondary:hover{background:#78c9f217}@media (max-width: 640px){.kt-detail-panel{position:fixed;top:auto;bottom:0;left:0;right:0;width:100%;max-height:55dvh;border-radius:20px 20px 0 0;border-left:none;border-top:1px solid rgba(40,23,21,.08);box-shadow:0 -4px 16px #34221b1a}.kt-toolbar{padding:6px 10px;gap:6px}.kt-search-input{width:120px}}.onboarding-page{min-height:100dvh;overflow-y:auto;display:grid;place-items:center;padding:clamp(18px,4vw,54px);background:radial-gradient(circle at 12% 18%,rgba(120,201,242,.3),transparent 28%),radial-gradient(circle at 88% 84%,rgba(255,191,145,.34),transparent 30%),linear-gradient(#fbf8eee6,#fbf8eef5),url(/assets/learning-atlas.png) center / cover no-repeat,var(--paper)}.onboarding-shell{width:min(940px,100%);display:grid;grid-template-columns:minmax(250px,.78fr) minmax(360px,1.22fr);overflow:hidden;border:1.5px solid rgba(40,23,21,.14);border-radius:30px;background:#fffdf6eb;box-shadow:0 28px 90px #34221b29;-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px)}.onboarding-hero{position:relative;isolation:isolate;overflow:hidden;min-height:540px;padding:clamp(28px,5vw,48px);display:flex;flex-direction:column;justify-content:flex-end;background:linear-gradient(155deg,#78c9f25c,#c8ead885 55%,#ffbf9159);border-right:1px solid rgba(40,23,21,.1)}.onboarding-hero:before,.onboarding-hero:after{content:"";position:absolute;border:1.5px solid rgba(40,23,21,.12);border-radius:50%;z-index:0}.onboarding-hero:before{width:190px;height:190px;top:84px;right:-60px;background:#fffdf652}.onboarding-hero:after{width:78px;height:78px;top:190px;left:44px;background:#d8dcff8c;box-shadow:58px -62px #ffbf917a}.onboarding-brand,.onboarding-save-note{position:absolute;top:30px;z-index:1;display:inline-flex;align-items:center;gap:10px}.onboarding-brand{left:34px;font-size:.88rem;font-weight:900}.onboarding-save-note{top:72px;left:34px;padding:6px 10px;border:1px solid rgba(40,23,21,.1);border-radius:999px;background:#fffdf694;color:var(--muted);font-size:.68rem;font-weight:800}.onboarding-save-note svg{width:13px;height:13px;color:var(--green)}.onboarding-hero>.kicker,.onboarding-hero>h1,.onboarding-hero>p{position:relative;z-index:1}.onboarding-hero h1{max-width:360px;margin:8px 0 14px;font-size:clamp(1.75rem,3.2vw,2.65rem);line-height:1.08;letter-spacing:-.045em}.onboarding-hero>p:last-child{max-width:390px;margin:0;color:#4f423ad1;font-size:.88rem;font-weight:720;line-height:1.7}.onboarding-workspace{position:relative;z-index:2;min-width:0;padding:clamp(24px,4vw,42px);display:flex;flex-direction:column;justify-content:center;background:#fffdf6eb}.onboarding-progress{display:flex;align-items:flex-start;margin:0 0 30px}.onboarding-step{position:relative;flex:1;display:grid;justify-items:center;gap:8px;text-align:center}.onboarding-step:not(:last-child):after{content:"";position:absolute;z-index:0;top:16px;left:calc(50% + 18px);width:calc(100% - 36px);height:2px;background:#2817151f}.onboarding-step.done:not(:last-child):after{background:var(--green)}.onboarding-step-num{position:relative;z-index:1;width:34px;height:34px;display:grid;place-items:center;border:1.5px solid rgba(40,23,21,.13);border-radius:12px;background:var(--panel-strong);color:var(--muted);font-size:.75rem;font-weight:900;box-shadow:0 3px #28171514}.onboarding-step-num svg{width:15px;height:15px}.onboarding-step.active .onboarding-step-num{border-color:var(--ink);background:var(--coin-peach);color:var(--ink);box-shadow:var(--coin-shadow);transform:translateY(-2px)}.onboarding-step.done .onboarding-step-num{border-color:#28171561;background:var(--coin-mint);color:var(--ink)}.onboarding-step-label{color:var(--muted);font-size:.7rem;font-weight:760;white-space:nowrap}.onboarding-step.active .onboarding-step-label{color:var(--ink);font-weight:900}.onboarding-body .auth-card{padding:clamp(18px,3vw,26px);border-radius:22px;background:#ffffffa3}.onboarding-body .auth-step-head>span{background:var(--coin-blue);border-color:var(--coin-border);box-shadow:var(--coin-shadow)}.onboarding-body .primary-button{min-height:46px}.diagnosis-page{min-height:100dvh;padding:clamp(18px,4vw,48px);align-items:center;background:radial-gradient(circle at 12% 18%,rgba(120,201,242,.28),transparent 28%),radial-gradient(circle at 88% 84%,rgba(255,191,145,.3),transparent 30%),linear-gradient(#fbf8eeeb,#fbf8eef7),url(/assets/learning-atlas.png) center / cover no-repeat,var(--paper)}.diagnosis-page .diagnosis-shell{box-shadow:0 28px 90px #34221b29}@media (max-width: 760px){.onboarding-page{display:block;padding:0}.onboarding-shell{min-height:100dvh;grid-template-columns:1fr;border:0;border-radius:0}.onboarding-hero{min-height:280px;padding:118px 24px 28px;border-right:0;border-bottom:1px solid rgba(40,23,21,.1)}.onboarding-brand,.onboarding-save-note{left:24px}.onboarding-hero:before{width:140px;height:140px}.onboarding-hero:after{top:150px;left:auto;right:82px}.onboarding-workspace{padding:26px 18px 36px}.auth-grade-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.auth-skip-row{align-items:stretch;flex-direction:column}.auth-skip-row .icon-text-button{width:100%}}@media (max-width: 420px){.onboarding-step-label{max-width:64px;font-size:.58rem;line-height:1.2;white-space:normal}.onboarding-step-num{width:30px;height:30px;border-radius:10px}.onboarding-step:not(:last-child):after{top:14px;left:calc(50% + 16px);width:calc(100% - 32px)}}
