html,body{width:100%;height:100%}input::-ms-clear,input::-ms-reveal{display:none}*,*:before,*:after{box-sizing:border-box}html{font-family:sans-serif;line-height:1.15;-webkit-text-size-adjust:100%;-ms-text-size-adjust:100%;-ms-overflow-style:scrollbar;-webkit-tap-highlight-color:rgba(0,0,0,0)}body{margin:0}[tabindex="-1"]:focus{outline:none}hr{box-sizing:content-box;height:0;overflow:visible}h1,h2,h3,h4,h5,h6{margin-top:0;margin-bottom:.5em;font-weight:500}p{margin-top:0;margin-bottom:1em}abbr[title],abbr[data-original-title]{-webkit-text-decoration:underline dotted;text-decoration:underline dotted;border-bottom:0;cursor:help}address{margin-bottom:1em;font-style:normal;line-height:inherit}input[type=text],input[type=password],input[type=number],textarea{-webkit-appearance:none}ol,ul,dl{margin-top:0;margin-bottom:1em}ol ol,ul ul,ol ul,ul ol{margin-bottom:0}dt{font-weight:500}dd{margin-bottom:.5em;margin-left:0}blockquote{margin:0 0 1em}dfn{font-style:italic}b,strong{font-weight:bolder}small{font-size:80%}sub,sup{position:relative;font-size:75%;line-height:0;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}pre,code,kbd,samp{font-size:1em;font-family:SFMono-Regular,Consolas,Liberation Mono,Menlo,Courier,monospace}pre{margin-top:0;margin-bottom:1em;overflow:auto}figure{margin:0 0 1em}img{vertical-align:middle;border-style:none}a,area,button,[role=button],input:not([type=range]),label,select,summary,textarea{touch-action:manipulation}table{border-collapse:collapse}caption{padding-top:.75em;padding-bottom:.3em;text-align:left;caption-side:bottom}input,button,select,optgroup,textarea{margin:0;color:inherit;font-size:inherit;font-family:inherit;line-height:inherit}button,input{overflow:visible}button,select{text-transform:none}button,html [type=button],[type=reset],[type=submit]{-webkit-appearance:button}button::-moz-focus-inner,[type=button]::-moz-focus-inner,[type=reset]::-moz-focus-inner,[type=submit]::-moz-focus-inner{padding:0;border-style:none}input[type=radio],input[type=checkbox]{box-sizing:border-box;padding:0}input[type=date],input[type=time],input[type=datetime-local],input[type=month]{-webkit-appearance:listbox}textarea{overflow:auto;resize:vertical}fieldset{min-width:0;margin:0;padding:0;border:0}legend{display:block;width:100%;max-width:100%;margin-bottom:.5em;padding:0;color:inherit;font-size:1.5em;line-height:inherit;white-space:normal}progress{vertical-align:baseline}[type=number]::-webkit-inner-spin-button,[type=number]::-webkit-outer-spin-button{height:auto}[type=search]{outline-offset:-2px;-webkit-appearance:none}[type=search]::-webkit-search-cancel-button,[type=search]::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{font:inherit;-webkit-appearance:button}output{display:inline-block}summary{display:list-item}template{display:none}[hidden]{display:none!important}@font-face{font-display:block;font-family:KaTeX_AMS;font-style:normal;font-weight:400;src:url(/qb/assets/KaTeX_AMS-Regular-BQhdFMY1.woff2) format("woff2"),url(/qb/assets/KaTeX_AMS-Regular-DMm9YOAa.woff) format("woff"),url(/qb/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(/qb/assets/KaTeX_Caligraphic-Bold-Dq_IR9rO.woff2) format("woff2"),url(/qb/assets/KaTeX_Caligraphic-Bold-BEiXGLvX.woff) format("woff"),url(/qb/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(/qb/assets/KaTeX_Caligraphic-Regular-Di6jR-x-.woff2) format("woff2"),url(/qb/assets/KaTeX_Caligraphic-Regular-CTRA-rTL.woff) format("woff"),url(/qb/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(/qb/assets/KaTeX_Fraktur-Bold-CL6g_b3V.woff2) format("woff2"),url(/qb/assets/KaTeX_Fraktur-Bold-BsDP51OF.woff) format("woff"),url(/qb/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(/qb/assets/KaTeX_Fraktur-Regular-CTYiF6lA.woff2) format("woff2"),url(/qb/assets/KaTeX_Fraktur-Regular-Dxdc4cR9.woff) format("woff"),url(/qb/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(/qb/assets/KaTeX_Main-Bold-Cx986IdX.woff2) format("woff2"),url(/qb/assets/KaTeX_Main-Bold-Jm3AIy58.woff) format("woff"),url(/qb/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(/qb/assets/KaTeX_Main-BoldItalic-DxDJ3AOS.woff2) format("woff2"),url(/qb/assets/KaTeX_Main-BoldItalic-SpSLRI95.woff) format("woff"),url(/qb/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(/qb/assets/KaTeX_Main-Italic-NWA7e6Wa.woff2) format("woff2"),url(/qb/assets/KaTeX_Main-Italic-BMLOBm91.woff) format("woff"),url(/qb/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(/qb/assets/KaTeX_Main-Regular-B22Nviop.woff2) format("woff2"),url(/qb/assets/KaTeX_Main-Regular-Dr94JaBh.woff) format("woff"),url(/qb/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(/qb/assets/KaTeX_Math-BoldItalic-CZnvNsCZ.woff2) format("woff2"),url(/qb/assets/KaTeX_Math-BoldItalic-iY-2wyZ7.woff) format("woff"),url(/qb/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(/qb/assets/KaTeX_Math-Italic-t53AETM-.woff2) format("woff2"),url(/qb/assets/KaTeX_Math-Italic-DA0__PXp.woff) format("woff"),url(/qb/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(/qb/assets/KaTeX_SansSerif-Bold-D1sUS0GD.woff2) format("woff2"),url(/qb/assets/KaTeX_SansSerif-Bold-DbIhKOiC.woff) format("woff"),url(/qb/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(/qb/assets/KaTeX_SansSerif-Italic-C3H0VqGB.woff2) format("woff2"),url(/qb/assets/KaTeX_SansSerif-Italic-DN2j7dab.woff) format("woff"),url(/qb/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(/qb/assets/KaTeX_SansSerif-Regular-DDBCnlJ7.woff2) format("woff2"),url(/qb/assets/KaTeX_SansSerif-Regular-CS6fqUqJ.woff) format("woff"),url(/qb/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(/qb/assets/KaTeX_Script-Regular-D3wIWfF6.woff2) format("woff2"),url(/qb/assets/KaTeX_Script-Regular-D5yQViql.woff) format("woff"),url(/qb/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(/qb/assets/KaTeX_Size1-Regular-mCD8mA8B.woff2) format("woff2"),url(/qb/assets/KaTeX_Size1-Regular-C195tn64.woff) format("woff"),url(/qb/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(/qb/assets/KaTeX_Size2-Regular-Dy4dx90m.woff2) format("woff2"),url(/qb/assets/KaTeX_Size2-Regular-oD1tc_U0.woff) format("woff"),url(/qb/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(/qb/assets/KaTeX_Size3-Regular-CTq5MqoE.woff) format("woff"),url(/qb/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(/qb/assets/KaTeX_Size4-Regular-Dl5lxZxV.woff2) format("woff2"),url(/qb/assets/KaTeX_Size4-Regular-BF-4gkZK.woff) format("woff"),url(/qb/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(/qb/assets/KaTeX_Typewriter-Regular-CO6r4hn1.woff2) format("woff2"),url(/qb/assets/KaTeX_Typewriter-Regular-C0xS9mPB.woff) format("woff"),url(/qb/assets/KaTeX_Typewriter-Regular-D3Ib7_Hf.ttf) format("truetype")}.katex{font: 1.21em KaTeX_Main,Times New Roman,serif;line-height:1.2;position:relative;text-indent:0;text-rendering:auto}.katex *{-ms-high-contrast-adjust:none!important;border-color:currentColor}.katex .katex-version:after{content:"0.16.47"}.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{--brand-blue: #1E3A8A;--brand-blue-light: #2D4EAA;--brand-blue-deep: #162D6E;--brand-gold: #C9A84C;--gold-tint: rgba(201, 168, 76, .12);--line: #e5e4e7;--accent: #1E3A8A;--ok: #52c41a;--bad: #ff4d4f;--muted: #6b6375;--bg: #F4F6FB;--surface: #fff;--text-h: #08060d;--radius: 8px;--radius-sm: 4px;--shadow-1: 0 10px 15px -3px rgba(0,0,0,.1), 0 4px 6px -2px rgba(0,0,0,.05)}:root[data-theme=dark]{color-scheme:dark;--bg: #0e1219;--surface: #161b25;--line: #2a3243;--muted: #8f98aa;--text-h: #e8ebf2;--brand-blue: #2f4fb3;--brand-blue-light: #3d5fc6;--brand-blue-deep: #1b2f73;--accent: #3d5fc6;--gold-tint: rgba(201, 168, 76, .16);--shadow-1: 0 10px 15px -3px rgba(0,0,0,.45), 0 4px 6px -2px rgba(0,0,0,.3);--t-sider: #111933;--t-surface: #161b25;--t-surface-2: #1a202c;--t-surface-3: #1f2633;--t-surface-4: #283042;--t-surface-glass: rgba(22, 27, 37, .94);--t-tint-blue: #1a2848;--t-tint-red: #33191c;--t-tint-amber: #2f2814;--t-tint-green: #142a1e;--t-tint-purple: #261c3a;--t-line: #2a3243;--t-line-strong: #3a4458;--t-line-blue: #34497e;--t-line-red: #5c2b30;--t-line-amber: #5a4a22;--t-line-green: #24533a;--t-text: #e8ebf2;--t-text-2: #b9c1d0;--t-muted: #8f98aa;--t-brand-ink: #9db4ff;--t-ink-red: #ff8f8f;--t-ink-amber: #e8c46a;--t-ink-green: #6fd59c}:root[data-theme=dark] .ant-app{color:var(--t-text)}:where(:root[data-theme=dark] input:not([type=checkbox],[type=radio]),:root[data-theme=dark] select,:root[data-theme=dark] textarea){color:var(--t-text);background-color:var(--t-surface-2)}:root[data-theme=dark] .ant-layout-content img{background-color:#fff}.authoring-shell{min-height:calc(100vh - 104px);color:var(--text-h)}.authoring-head{display:flex;align-items:flex-start;justify-content:space-between;gap:24px;margin-bottom:18px;padding:4px 2px 16px;border-bottom:1px solid var(--line)}.authoring-head h1{margin:4px 0 5px;font-size:25px}.authoring-head p{max-width:720px;margin:0;color:var(--muted);font-size:13px}.authoring-kicker{color:var(--t-brand-ink, var(--brand-blue));font-size:11px;font-weight:800;letter-spacing:.12em;text-transform:uppercase}.authoring-head-actions{display:flex;align-items:center;justify-content:flex-end;gap:8px;flex-wrap:wrap}.authoring-saved{color:var(--muted);font-size:11px}.authoring-head-actions .authoring-reset{color:var(--t-ink-red, #a33a3a);border-color:var(--t-line-red, #e8caca)}.authoring-head-actions .authoring-reset:hover:not(:disabled){color:var(--t-ink-red, #8c2424);background:var(--t-tint-red, #fff7f7);border-color:var(--t-line-red, #dca9a9)}.authoring-banner{margin-bottom:12px}.authoring-context-setup{max-width:820px;margin:42px auto;padding:28px;background:var(--t-surface, #fff);border:1px solid var(--t-line, #dfe4ef);border-radius:14px;box-shadow:0 12px 30px #1e3a8a12}.authoring-context-intro{margin-bottom:22px}.authoring-context-intro span{color:var(--t-brand-ink, var(--brand-blue));font-size:11px;font-weight:800;letter-spacing:.08em}.authoring-context-intro h2{margin:5px 0 7px;font-size:22px}.authoring-context-intro p{max-width:640px;margin:0;color:var(--muted);font-size:13px;line-height:1.6}.authoring-context-actions{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-top:18px}.authoring-context-actions small{color:var(--muted)}.authoring-context-bar{display:flex;align-items:center;gap:18px;margin-bottom:12px;padding:10px 14px;background:var(--t-surface-2, #f7f9fd);border:1px solid var(--t-line, #dfe4ef);border-radius:10px}.authoring-context-bar>div{display:grid;min-width:78px;gap:2px}.authoring-context-bar span{color:var(--muted);font-size:10px}.authoring-context-bar b{max-width:180px;overflow:hidden;font-size:12px;text-overflow:ellipsis;white-space:nowrap}.authoring-context-bar .authoring-context-codes{min-width:130px;flex:1}.authoring-context-bar button{flex:0 0 auto}.authoring-taxonomy-directories{max-height:360px;margin-top:4px}.authoring-taxonomy-codes{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:6px;margin-top:8px}.authoring-taxonomy-codes button{display:grid;min-width:0;gap:2px;padding:7px 9px;color:var(--t-text, #253251);text-align:left;background:var(--t-surface, #fff);border:1px solid var(--line);border-radius:7px}.authoring-taxonomy-codes button:hover{border-color:var(--t-brand-ink, var(--brand-blue))}.authoring-taxonomy-codes button.active{color:var(--t-brand-ink, var(--brand-blue));background:var(--gold-tint);border-color:var(--t-brand-ink, var(--brand-blue))}.authoring-taxonomy-codes button b{font-size:11px}.authoring-taxonomy-codes button span{overflow:hidden;color:var(--muted);font-size:10px;line-height:1.35;text-overflow:ellipsis;white-space:nowrap}.authoring-columns{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));height:clamp(720px,calc(100vh - 210px),900px);min-height:720px;overflow:hidden;border:1px solid var(--t-line, #dfe4ef);border-radius:12px;background:var(--t-surface, #fff);box-shadow:0 12px 30px #1e3a8a0f}.authoring-editor{min-width:0;padding:20px 24px 34px;overflow:auto}.authoring-copilot{display:flex;min-width:0;min-height:0;flex-direction:column;overflow:hidden;background:var(--t-surface-2, #f7f9fd);border-left:1px solid var(--t-line, #dfe4ef)}.authoring-question-tabs{display:flex;align-items:center;gap:6px;margin-bottom:16px;overflow-x:auto}.authoring-question-tabs button{flex:0 0 auto;padding:7px 11px;color:var(--muted);background:var(--t-surface-2, #f4f6fa);border-color:transparent}.authoring-question-tabs button.active{color:#fff;background:var(--brand-blue)}.authoring-editor-toolbar,.authoring-section-head,.authoring-plan-actions,.authoring-prompt-actions{display:flex;align-items:center;justify-content:space-between;gap:10px}.authoring-editor-toolbar{margin-bottom:16px}.authoring-editor-toolbar label{display:inline-flex;width:auto;align-items:center;gap:7px;margin:0;font-size:12px}.authoring-editor-toolbar input{width:auto}.authoring-editor-actions{display:flex;align-items:center;justify-content:flex-end;gap:8px}.authoring-edit-form{display:grid;gap:2px}.authoring-form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px 16px}.authoring-code-picker{display:flex;min-height:42px;align-items:center;gap:6px;flex-wrap:wrap;margin-bottom:14px;padding:9px;border:1px solid var(--line);border-radius:8px}.authoring-code-picker button{padding:4px 7px;color:var(--muted);background:var(--t-surface-3, #f1f3f8);border-color:transparent;font-size:11px}.authoring-code-picker button.active{color:#fff;background:var(--brand-blue)}.authoring-code-picker span{color:var(--muted);font-size:12px}.authoring-preview{min-height:42px;margin:-4px 0 14px;padding:10px 12px;background:var(--t-surface-2, #fafbfe);border:1px solid var(--t-line, #edf0f5);border-radius:8px}.authoring-editor-figures{display:grid;gap:10px;margin:-5px 0 16px}.authoring-editor-figures>div{display:flex;align-items:flex-start;gap:8px}.authoring-editor-figures img{max-width:min(100%,420px);max-height:260px;object-fit:contain;border:1px solid var(--t-line, #e0e4ec);border-radius:8px}.authoring-option{display:grid;grid-template-columns:22px minmax(0,1fr);align-items:center;gap:8px;margin-bottom:7px}.authoring-option b{text-align:center}.authoring-copilot-title{display:flex;flex:0 0 auto;align-items:center;gap:10px;padding:20px 24px 16px;background:var(--t-surface-glass, rgba(247,249,253,.96));border-bottom:1px solid var(--t-line, #e3e7ef)}.authoring-copilot-title>span{display:grid;width:34px;height:34px;place-items:center;color:var(--t-ink-amber, #8a6818);background:var(--t-tint-amber, #fff5d7);border-radius:50%}.authoring-copilot-title>div{display:grid;gap:2px}.authoring-copilot-title small{color:var(--muted);font-size:11px}.authoring-review-trigger{display:inline-flex;margin-left:auto;align-items:center;gap:7px;padding:7px 10px;color:var(--t-brand-ink, var(--brand-blue))!important;border-color:var(--t-line-blue, #c9d5ef)!important;white-space:nowrap}.authoring-review-trigger span{display:grid;min-width:20px;height:20px;place-items:center;padding:0 5px;color:#fff;background:var(--brand-blue);border-radius:10px;font-size:10px}.authoring-copilot-body{flex:1 1 auto;min-height:0;padding:0 24px 24px;overflow-y:auto;scrollbar-gutter:stable}.authoring-messages{display:flex;min-height:340px;flex-direction:column;gap:10px;padding:20px 0 8px}.authoring-empty,.authoring-message{padding:12px 14px;color:var(--muted);background:var(--t-surface, #fff);border:1px solid var(--t-line, #e4e8f1);border-radius:10px;font-size:13px;line-height:1.65}.authoring-message.teacher{max-width:88%;align-self:flex-end;color:var(--text-h);background:var(--t-tint-blue, #edf3ff);border-color:var(--t-line-blue, #ccd9f4)}.authoring-message.assistant{max-width:92%;align-self:flex-start;color:var(--text-h)}.authoring-message small{display:block;margin-bottom:5px;color:var(--muted)}.authoring-message.pending{display:flex;align-items:center;gap:7px;color:var(--muted)}.authoring-thinking-dot{width:7px;height:7px;background:var(--brand-blue);border-radius:50%;animation:authoring-pulse 1.1s ease-in-out infinite}.authoring-clarification-options{display:grid;gap:6px;margin-top:10px}.authoring-clarification-options button{width:100%;padding:8px 10px;text-align:left}.authoring-clarification-options button.recommended{color:var(--t-brand-ink, var(--brand-blue));background:var(--gold-tint);border-color:var(--brand-gold)}.authoring-clarification-options button:last-child{margin-top:3px;text-align:center}.authoring-upload{display:inline-flex;max-width:150px;align-items:center;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;cursor:pointer}.authoring-upload input{display:none}.authoring-prompt-actions{align-items:flex-end;margin-top:8px;flex-wrap:wrap}.authoring-prompt-actions label{display:inline-flex;width:auto;align-items:center;gap:6px;margin:0;font-size:11px}.authoring-prompt-actions input[type=number]{width:58px}.authoring-reference-toggle.active{color:var(--t-brand-ink, var(--brand-blue));background:var(--gold-tint);border-color:var(--brand-gold)}.authoring-composer-hint{margin-top:5px;color:var(--muted);font-size:10px;text-align:right}.authoring-composer{position:relative;flex:0 0 auto;padding:16px 24px 18px;background:var(--t-surface-glass, rgba(255,255,255,.94));border-top:1px solid var(--t-line, #dfe4ef);box-shadow:0 -10px 24px #1e3a8a0b}.authoring-composer textarea{min-height:96px;max-height:180px;resize:vertical;background:var(--t-surface, #fff);line-height:1.6}.authoring-reference-popover{position:absolute;z-index:4;right:24px;bottom:calc(100% + 10px);left:24px;max-height:360px;padding:14px;overflow:auto;background:var(--t-surface, #fff);border:1px solid var(--t-line, #d9dfeb);border-radius:10px;box-shadow:0 18px 45px #1e3a8a29}.authoring-reference-head{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;padding-bottom:10px;border-bottom:1px solid var(--t-line, #e7eaf0)}.authoring-reference-head>div{display:grid;gap:3px}.authoring-reference-head small,.authoring-reference-list small{color:var(--muted);font-size:10px}.authoring-reference-head button{flex:0 0 auto;padding:6px 9px;color:var(--t-ink-red, #a33a3a)}.authoring-reference-retry{margin-top:10px}.authoring-reference-list{display:grid;gap:0}.authoring-reference-list>div{display:grid;grid-template-columns:24px minmax(0,1fr);gap:8px;padding:10px 0;border-bottom:1px solid var(--t-line, #eef0f4);font-size:12px;line-height:1.55}.authoring-reference-list>div:last-child{border-bottom:0}.authoring-reference-list>div>span{display:grid;width:22px;height:22px;place-items:center;color:var(--t-brand-ink, var(--brand-blue));background:var(--t-tint-blue, #edf3ff);border-radius:50%;font-size:10px;font-weight:700}.authoring-reference-list>div>div{display:grid;gap:4px}.authoring-plan{margin-top:16px;padding-top:14px;border-top:1px solid var(--t-line, #dfe4ef)}.authoring-section-head{margin-bottom:9px}.authoring-section-head span{color:var(--muted);font-size:11px}.authoring-plan-row{display:grid;grid-template-columns:22px minmax(0,1fr) auto;align-items:start;gap:7px;margin-bottom:7px;padding:9px;background:var(--t-surface, #fff);border:1px solid var(--t-line, #e5e8ef);border-radius:8px}.authoring-plan-row>span{display:grid;width:20px;height:20px;place-items:center;color:var(--muted);background:var(--t-surface-3, #f1f3f7);border-radius:50%;font-size:10px}.authoring-plan-row>div{display:grid;gap:5px}.authoring-plan-row input{padding:5px 7px;font-size:11px}.authoring-plan-row em{color:var(--muted);font-size:10px;font-style:normal;white-space:nowrap}.authoring-plan-row-actions{display:flex!important;width:82px;align-items:flex-end;gap:4px!important}.authoring-plan-row-actions select{padding:4px;font-size:10px}.authoring-plan-row-actions button{padding:3px 6px;font-size:10px}.authoring-plan-row.generating{border-color:var(--t-line-blue, #9fb5e4);box-shadow:inset 3px 0 0 var(--brand-blue)}.authoring-plan-row.failed{border-color:var(--t-line-red, #f0b4b4)}.authoring-plan-actions{justify-content:flex-end;margin-top:9px}.authoring-review-overlay{display:flex;position:fixed;z-index:900;top:0;right:0;bottom:0;left:0;align-items:center;justify-content:center;padding:16px;background:#0c142870}.authoring-review-drawer{display:flex;width:min(1240px,calc(100vw - 48px));max-height:calc(100dvh - 32px);flex-direction:column;overflow:hidden;background:var(--t-surface-2, #f5f7fb);border:1px solid var(--t-line, #d7deeb);border-radius:14px;box-shadow:0 24px 70px #162d6e38}.authoring-review-head{display:flex;flex:0 0 auto;align-items:flex-start;justify-content:space-between;gap:24px;padding:20px 24px 18px;background:var(--t-surface, #fff);border-bottom:1px solid var(--t-line, #dfe4ef)}.authoring-review-head h2{margin:0 0 5px;font-size:20px}.authoring-review-head p{margin:0;color:var(--muted);font-size:12px;line-height:1.55}.authoring-review-head button{flex:0 0 auto}.authoring-review-body{flex:1 1 auto;min-height:0;padding:20px 24px 28px;overflow:auto;scrollbar-gutter:stable}.authoring-candidate-card{margin-bottom:16px;padding:20px;background:var(--t-surface, #fff);border:1px solid var(--t-line, #d9e0ec);border-radius:12px}.authoring-candidate-title{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-bottom:14px}.authoring-candidate-title label{display:flex;width:auto;align-items:center;gap:8px;margin:0}.authoring-candidate-title>span{color:var(--muted);font-size:11px;white-space:nowrap}.authoring-candidate-card input{width:auto}.authoring-question-preview{display:grid;gap:12px;margin:0;padding:18px;background:var(--t-surface-2, #fbfcfe);border:1px solid var(--t-line, #e1e6ef);border-radius:10px}.authoring-question-preview>img{width:100%;max-height:360px;object-fit:contain;background:var(--t-surface, #fff);border:1px solid var(--t-line, #e6e9ef);border-radius:8px}.authoring-preview-stem{font-size:14px;line-height:1.7}.authoring-preview-options{display:grid;gap:7px}.authoring-preview-options>div{display:grid;grid-template-columns:25px minmax(0,1fr);gap:8px;padding:8px 10px;background:var(--t-surface, #fff);border:1px solid var(--t-line, #e7eaf0);border-radius:7px}.authoring-workspace-preview{min-height:420px;align-content:start;padding:28px;background:var(--t-surface, #fff);border-color:var(--t-line, #dce2ec);box-shadow:0 10px 28px #1e3a8a0e}.authoring-workspace-preview .authoring-preview-stem{padding-bottom:5px;font-size:16px;line-height:1.85}.authoring-preview-answer,.authoring-preview-explanation{display:grid;grid-template-columns:84px minmax(0,1fr);gap:12px;margin-top:7px;padding-top:14px;border-top:1px solid var(--t-line, #e7eaf0);font-size:13px;line-height:1.7}.authoring-preview-answer b,.authoring-preview-explanation b{color:var(--muted);font-size:11px}.authoring-editor-empty{display:grid;min-height:420px;place-content:center;justify-items:center;padding:40px;color:var(--muted);text-align:center;background:linear-gradient(180deg,var(--t-surface-2, #fbfcff) 0%,var(--t-surface-2, #f7f9fd) 100%);border:1px dashed var(--t-line-strong, #ccd5e5);border-radius:12px}.authoring-editor-empty b{color:var(--text-h);font-size:17px}.authoring-editor-empty p{max-width:340px;margin:8px 0 18px;font-size:12px;line-height:1.65}.authoring-question-preview>small{color:var(--muted)}.authoring-change-picker{display:flex;align-items:center;justify-content:space-between;gap:18px;margin-bottom:14px;padding:11px 13px;background:var(--t-surface-2, #f7f9fd);border:1px solid var(--t-line, #e0e5ee);border-radius:9px}.authoring-change-picker>div:first-child{display:grid;flex:0 0 auto;gap:2px}.authoring-change-picker>div:first-child small{color:var(--muted);font-size:10px}.authoring-change-options{display:flex;align-items:center;justify-content:flex-end;gap:6px;flex-wrap:wrap}.authoring-change-options label{display:inline-flex;width:auto;align-items:center;gap:6px;margin:0;padding:6px 9px;color:var(--muted);background:var(--t-surface, #fff);border:1px solid var(--t-line, #dce2ec);border-radius:7px;font-size:11px;cursor:pointer}.authoring-change-options label.selected{color:var(--t-brand-ink, var(--brand-blue));background:var(--t-tint-blue, #edf3ff);border-color:var(--t-line-blue, #afc2e7)}.authoring-change-options input{margin:0}.authoring-compare-stage{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));align-items:start;gap:14px}.authoring-compare-stage.single{grid-template-columns:minmax(0,780px);justify-content:center}.authoring-compare-preview{min-width:0;overflow:hidden;background:var(--t-surface, #fff);border:1px solid var(--t-line, #dfe4ec);border-radius:10px}.authoring-compare-preview.suggestion{border-color:var(--t-line-blue, #b9c9e8);box-shadow:0 8px 24px #1e3a8a12}.authoring-compare-preview-head{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:12px 15px;background:var(--t-surface-2, #f7f8fa);border-bottom:1px solid var(--t-line, #e4e8ef)}.authoring-compare-preview.suggestion .authoring-compare-preview-head{background:var(--t-tint-blue, #edf3ff);border-bottom-color:var(--t-line-blue, #cad7ef)}.authoring-compare-preview-head>div{display:flex;align-items:baseline;gap:8px}.authoring-compare-preview-head span{color:var(--muted);font-size:10px;font-weight:700;letter-spacing:.06em}.authoring-compare-preview.suggestion .authoring-compare-preview-head span{color:var(--t-brand-ink, var(--brand-blue))}.authoring-compare-preview-head small{color:var(--muted);font-size:10px}.authoring-compare-section>small{color:var(--muted);font-size:9px;font-weight:700;letter-spacing:.04em}.authoring-compare-section{position:relative;display:grid;gap:9px;margin:12px;padding:13px;border:1px solid transparent;border-radius:8px;font-size:12px;line-height:1.65}.authoring-compare-section.stem{font-size:13px}.authoring-compare-section.compact{grid-template-columns:84px minmax(0,1fr);align-items:baseline}.authoring-compare-section.explanation{border-top-color:var(--t-line, #e8ebf0);border-radius:0}.authoring-compare-preview.current .changed,.authoring-compare-preview.current .authoring-compare-section.changed{background:var(--t-surface-2, #fafbfc);border-color:var(--t-line, #d9dee7)}.authoring-compare-preview.suggestion .changed,.authoring-compare-preview.suggestion .authoring-compare-section.changed{background:var(--t-tint-blue, #f3f7ff);border-color:var(--t-line-blue, #aebfe2);box-shadow:inset 3px 0 0 var(--brand-blue)}.authoring-compare-preview .authoring-preview-options>div{font-size:12px;line-height:1.6}.authoring-compare-figures{display:grid;gap:8px;margin:12px;padding:10px;border:1px solid transparent;border-radius:8px}.authoring-compare-figures img{width:100%;max-height:300px;object-fit:contain;background:var(--t-surface, #fff);border:1px solid var(--t-line, #e3e7ee);border-radius:7px}.authoring-figure-suggestion{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;margin:10px 0;padding:11px;color:var(--t-ink-amber, #4f3c13);background:var(--gold-tint);border:1px solid var(--t-line-amber, #e6cf8d);border-radius:8px}.authoring-figure-suggestion>div:first-child{display:grid;gap:4px}.authoring-figure-suggestion span{font-size:11px;line-height:1.45}.authoring-figure-actions{display:flex!important;gap:6px!important}.authoring-candidate-card-actions{display:flex;justify-content:flex-end;margin-top:12px}.authoring-edit-candidate{margin:0}.authoring-review-warning{margin:0;padding:10px 12px;background:var(--t-tint-red, #fff7f7);border:1px solid var(--t-line-red, #efcaca);border-radius:8px}.authoring-review-actions{display:flex;flex:0 0 auto;align-items:center;justify-content:flex-end;gap:8px;padding:14px 24px;background:var(--t-surface, #fff);border-top:1px solid var(--t-line, #dfe4ef)}.authoring-review-actions button{white-space:nowrap}.authoring-review-actions .authoring-discard-candidate{margin-right:auto;color:var(--t-ink-red, #9a3030);border-color:var(--t-line-red, #e6c4c4)}@keyframes authoring-pulse{0%,to{opacity:.35;transform:scale(.8)}50%{opacity:1;transform:scale(1)}}@media (max-width: 980px){.authoring-head{flex-direction:column}.authoring-head-actions{justify-content:flex-start}.authoring-columns{height:auto;min-height:0;grid-template-columns:1fr}.authoring-copilot{height:min(760px,82vh);min-height:600px;border-top:1px solid var(--t-line, #dfe4ef);border-left:0}.authoring-context-bar{align-items:flex-start;flex-wrap:wrap}.authoring-review-drawer{width:min(900px,calc(100vw - 32px))}.authoring-compare-stage{grid-template-columns:1fr}}@media (max-width: 640px){.authoring-form-grid{grid-template-columns:1fr}.authoring-editor{padding:16px}.authoring-copilot{height:72vh;min-height:520px}.authoring-copilot-title{padding:16px}.authoring-copilot-title small{display:none}.authoring-review-trigger{padding:6px 8px;font-size:11px}.authoring-copilot-body{padding:0 16px 18px}.authoring-composer{padding:14px 16px 16px}.authoring-reference-popover{right:16px;left:16px}.authoring-editor-toolbar{align-items:flex-start}.authoring-editor-actions{flex-wrap:wrap}.authoring-workspace-preview,.authoring-editor-empty{min-height:320px}.authoring-context-setup{margin:18px 0;padding:18px}.authoring-context-actions{align-items:stretch;flex-direction:column}.authoring-taxonomy-codes{grid-template-columns:1fr}.authoring-review-overlay{padding:0}.authoring-review-drawer{width:100%;height:100dvh;max-height:100dvh;border:0;border-radius:0}.authoring-review-head{padding:16px}.authoring-review-body{padding:14px 16px 22px}.authoring-candidate-card{padding:14px}.authoring-candidate-title{align-items:flex-start;flex-direction:column;gap:6px}.authoring-change-picker{align-items:stretch;flex-direction:column}.authoring-change-options{justify-content:flex-start}.authoring-compare-section{margin:9px;padding:11px}.authoring-review-actions{padding:12px 16px;flex-wrap:wrap}.authoring-review-actions .authoring-discard-candidate{margin-right:0}}*{box-sizing:border-box}body{margin:0;font-family:system-ui,Segoe UI,Roboto,PingFang SC,sans-serif;color:var(--t-text, #1f2330);background:var(--bg)}.ant-menu-dark .ant-menu-item:hover,.ant-menu-dark .ant-menu-submenu-title:hover{background:var(--brand-blue-light)!important}.ant-menu-dark .ant-menu-item-selected{background:var(--gold-tint)!important;color:var(--brand-gold)!important;border-left:3px solid var(--brand-gold)!important}.ant-menu-dark .ant-menu-submenu-selected>.ant-menu-submenu-title{color:var(--brand-gold)!important}.student-app-shell{min-height:100vh;background:var(--t-surface-2, #f4f6fb)}.student-app-sider{position:sticky!important;top:0;height:100vh;overflow:auto;background:linear-gradient(180deg,#1e3a8a,#162d6e)!important}.student-brand{display:flex;align-items:center;gap:10px;padding:20px 16px 18px;border-bottom:1px solid rgba(255,255,255,.12);cursor:pointer}.student-brand img{width:42px;height:42px;object-fit:contain}.student-brand span{display:grid;color:#fff;line-height:1.1;white-space:nowrap}.student-brand b{color:var(--t-ink-amber, #c9a84c);letter-spacing:.08em;font-size:15px}.student-brand small{margin-top:4px;color:#dbe5ff;font-size:12px}.student-app-sider .ant-menu{padding-top:10px;background:transparent!important;border-inline-end:0!important}.student-app-sider .ant-menu-item-group-title{color:#dbe5ffa8!important;font-size:11px;letter-spacing:.12em}.student-app-sider .ant-badge-count{background:#c9a84c;box-shadow:none}.student-sider-note{position:absolute;right:14px;bottom:18px;left:14px;color:#dbe5ffa8;font-size:12px;text-align:center}.student-app-header{display:flex;align-items:center;justify-content:space-between;height:56px;padding:0 24px;background:var(--t-surface, #fff)!important;border-bottom:1px solid var(--t-line, #e7ebf2)}.student-header-actions{display:flex;align-items:center;gap:12px}.student-header-caption{color:var(--t-text-2, #66708a);font-size:13px;font-weight:600}.student-account{display:inline-flex;align-items:center;gap:8px;padding:5px 0 5px 8px;color:var(--t-text, #253251);background:transparent}.student-account:hover{color:var(--t-brand-ink, var(--brand-blue))}.student-account .anticon{font-size:10px;color:var(--t-muted, #8b95aa)}.student-app-content{min-height:calc(100vh - 56px);padding:28px}.student-page{width:min(100%,980px);margin:0 auto}.student-page h1{margin:0 0 5px;color:var(--t-text, #15244c);font-size:26px;letter-spacing:-.02em}.student-lead{margin:0 0 22px;color:var(--t-text-2, #68738a);font-size:14px}.student-task-card,.student-message-card,.student-diagnosis-card{display:flex;width:100%;align-items:center;gap:16px;margin:0 0 12px;padding:18px 20px;color:var(--t-text, #253251);text-align:left;background:var(--t-surface, #fff);border:1px solid var(--t-line, #e1e6f0);box-shadow:0 5px 14px #1e3a8a09;transition:transform .16s ease,border-color .16s ease,box-shadow .16s ease}.student-task-card:hover,.student-message-card:hover,.student-diagnosis-card:hover{border-color:var(--t-line-blue, #9aaddb);box-shadow:0 10px 22px #1e3a8a17;transform:translateY(-1px)}.student-task-card:disabled{color:var(--t-text-2, #6e7890);cursor:default;transform:none;opacity:1}.student-task-card>span,.student-diagnosis-card>span:nth-child(2){display:grid;flex:1;gap:5px;min-width:0}.student-task-card b,.student-message-card b,.student-diagnosis-card b{color:var(--t-text, #17264f);font-size:16px}.student-task-card small,.student-message-card span,.student-diagnosis-card small{color:var(--t-text-2, #6b7690);font-size:13px;line-height:1.55}.student-task-card i,.student-diagnosis-card i{color:var(--t-brand-ink, var(--brand-blue));font-style:normal;font-weight:700;white-space:nowrap}.student-task-card.strong{border-color:var(--t-line-blue, #91a8dc);box-shadow:inset 3px 0 #c9a84c,0 7px 18px #1e3a8a12}.student-message-card{display:grid;gap:5px;cursor:default}.student-message-card:has(+*){cursor:pointer}.student-empty{color:var(--t-text-2, #50607d);padding:24px}.student-empty p{margin:8px 0 0;color:var(--t-muted, #748099);font-size:13px}.student-diagnosis-card{margin-top:18px;background:linear-gradient(105deg,var(--t-surface-2, #f8faff),var(--t-tint-blue, #edf3ff));border-color:var(--t-line-blue, #cfdcf5)}.student-diagnosis-icon{display:grid;width:38px;height:38px;place-items:center;color:var(--t-ink-amber, #81661e);background:var(--t-tint-amber, #fff7df);border-radius:50%;font-size:19px}.student-notification{display:block;width:100%;padding:9px 0;color:var(--t-text-2, #53617d);text-align:left;background:transparent;border-bottom:1px solid var(--t-line, #edf0f5);border-radius:0;font-size:13px}.student-notification:hover{color:var(--t-brand-ink, var(--brand-blue))}.student-feedback-item{margin-top:10px;padding-top:10px;border-top:1px solid var(--t-line, #eef0f4)}.student-diagnosis-result{display:grid;gap:3px;padding:10px 0;border-bottom:1px solid var(--t-line, #eef0f4)}.student-diagnosis-result span,.student-diagnosis-result small{color:var(--t-text-2, #6b7690);font-size:13px}.student-task-workspace{display:grid;grid-template-columns:184px minmax(0,1fr);gap:18px;align-items:start}.student-question-nav{position:sticky;top:18px;padding:14px;border:1px solid var(--t-line, #e1e6f0);border-radius:10px;background:var(--t-surface, #fff);box-shadow:0 5px 14px #1e3a8a09}.student-question-nav-head{display:flex;justify-content:space-between;gap:8px;margin-bottom:12px;color:var(--t-text, #17264f)}.student-question-nav-head span,.student-question-nav>p{color:var(--t-text-2, #6b7690);font-size:12px}.student-question-nav>p{margin:12px 0 0;line-height:1.55}.student-question-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:7px}.student-question-nav-item{position:relative;min-width:0;height:34px;padding:0;color:var(--t-text-2, #50607d);background:var(--t-surface, #fff);border:1px solid var(--t-line, #dce3ef);border-radius:7px;font-size:13px}.student-question-nav-item:hover{color:var(--t-brand-ink, #1e3a8a);border-color:var(--t-line-blue, #8ea5d7)}.student-question-nav-item.active{color:#fff;background:#1e3a8a;border-color:var(--t-brand-ink, #1e3a8a)}.student-question-nav-item.saved:after{position:absolute;top:4px;right:4px;width:5px;height:5px;border-radius:50%;background:#38a169;content:""}.student-question-nav-item.active.saved:after{background:#d9b95c}.student-question-nav-item.error{color:var(--t-ink-red, #c53030);border-color:var(--t-line-red, #e8abab)}.student-task-answer{min-width:0}.student-task-answer>.card{margin-bottom:14px}.student-attempt-timer{display:grid;grid-template-columns:auto 1fr;align-items:center;gap:0 16px;margin:0 0 12px;padding:13px 15px;color:var(--t-brand-ink, #1e3a8a);background:linear-gradient(105deg,var(--t-tint-blue, #edf3ff),var(--t-surface-2, #f8faff));border:1px solid var(--t-line-blue, #bfd0f4);border-radius:10px}.student-attempt-timer span{font-size:12px;font-weight:700;letter-spacing:.08em}.student-attempt-timer strong{font-variant-numeric:tabular-nums;font-size:25px;letter-spacing:.025em;line-height:1.1}.student-attempt-timer small{grid-column:1 / -1;margin-top:5px;color:var(--t-text-2, #63708a);font-size:12px}.student-attempt-timer.urgent{color:var(--t-ink-red, #b42318);background:var(--t-tint-red, #fff5f3);border-color:var(--t-line-red, #f6b7af)}.student-attempt-timer.urgent small{color:var(--t-ink-red, #a6473e)}.student-exam-attempt{min-height:100vh;padding:0 24px 84px;color:var(--t-text, #18233d);background:var(--t-surface-2, #f8fafc)}.student-exam-attempt-head{display:flex;position:sticky;z-index:3;top:0;align-items:center;justify-content:space-between;gap:20px;max-width:1040px;min-height:64px;margin:0 auto;background:var(--t-surface-2, #f8fafc);border-bottom:1px solid var(--t-line, #e4e9f1)}.student-exam-attempt-title{display:flex;align-items:center;min-width:0;gap:10px}.student-exam-attempt-title span{flex:0 0 auto;padding:3px 7px;color:var(--t-ink-amber, #805e11);background:var(--t-tint-amber, #fff5d9);border-radius:4px;font-size:11px;font-weight:700;letter-spacing:.08em}.student-exam-attempt-title b{overflow:hidden;font-size:15px;text-overflow:ellipsis;white-space:nowrap}.student-exam-attempt-actions{display:flex;flex:0 0 auto;align-items:center;gap:10px}.student-exam-question-panel{position:relative}.student-exam-question-panel summary{display:flex;align-items:center;gap:8px;padding:7px 10px;color:var(--t-text-2, #44516c);cursor:pointer;list-style:none;border:1px solid var(--t-line, #dce3ef);border-radius:7px;font-size:12px}.student-exam-question-panel summary::-webkit-details-marker{display:none}.student-exam-question-panel summary:after{color:var(--t-muted, #8b95aa);content:"⌄"}.student-exam-question-panel[open] summary:after{content:"⌃"}.student-exam-question-panel em{color:var(--t-muted, #72809a);font-style:normal}.student-exam-question-grid{display:grid;position:absolute;z-index:4;top:calc(100% + 8px);right:0;grid-template-columns:repeat(6,34px);gap:7px;width:max-content;padding:12px;background:var(--t-surface, #fff);border:1px solid var(--t-line, #dce3ef);border-radius:9px;box-shadow:0 12px 32px #1c315e29}.student-exam-question-grid button{position:relative;width:34px;height:34px;padding:0;color:var(--t-text-2, #526079);background:var(--t-surface, #fff);border:1px solid var(--t-line, #dce3ef);border-radius:6px;font-size:13px}.student-exam-question-grid button:hover{color:var(--t-brand-ink, #1e3a8a);border-color:var(--t-line-blue, #8da6dc)}.student-exam-question-grid button.active{color:#fff;background:#1e3a8a;border-color:var(--t-brand-ink, #1e3a8a)}.student-exam-question-grid button.saved:after{position:absolute;top:4px;right:4px;width:5px;height:5px;border-radius:50%;background:#38a169;content:""}.student-exam-question-grid button.active.saved:after{background:#d9b95c}.student-exam-question-grid button.error{color:var(--t-ink-red, #c53030);border-color:var(--t-line-red, #e8abab)}.student-exam-timer{display:flex;align-items:baseline;gap:5px;color:var(--t-brand-ink, #1e3a8a);font-variant-numeric:tabular-nums}.student-exam-timer span{font-size:12px}.student-exam-timer strong{font-size:17px;letter-spacing:.025em}.student-exam-timer.urgent{color:var(--t-ink-red, #b42318)}.student-exam-attempt-body{width:min(100%,780px);margin:46px auto 0}.student-exam-attempt-body>.card{padding:0;background:transparent;border:0;box-shadow:none}.student-exam-attempt-progress{margin-bottom:18px;color:var(--t-muted, #77839a);font-size:13px}.student-exam-attempt-body .q-stem{margin:0 0 26px;color:var(--t-text, #18233d);font-size:18px;line-height:1.85}.student-exam-attempt-body label{padding:13px 14px;border:1px solid var(--t-line, #dfe5ef);border-radius:8px;background:var(--t-surface, #fff);transition:border-color .15s ease,background .15s ease}.student-exam-attempt-body label:hover{border-color:var(--t-line-blue, #9eb3df);background:var(--t-surface-2, #f7f9ff)}.student-exam-attempt-footer{display:flex;position:fixed;z-index:3;right:0;bottom:0;left:0;align-items:center;justify-content:space-between;min-height:62px;padding:0 max(24px,calc((100vw - 1040px)/2));color:var(--t-text-2, #68758d);background:var(--t-surface-glass, rgba(255,255,255,.95));border-top:1px solid var(--t-line, #e4e9f1);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);font-size:13px}.student-exam-attempt-footer button{min-width:100px}@media (max-width: 640px){.student-exam-attempt{padding:0 16px 78px}.student-exam-attempt-head{gap:10px}.student-exam-attempt-title b{max-width:120px}.student-exam-question-panel em{display:none}.student-exam-question-grid{grid-template-columns:repeat(5,34px)}.student-exam-attempt-body{margin-top:28px}.student-exam-attempt-body .q-stem{font-size:16px}.student-exam-attempt-footer{padding:0 16px}}.student-question-missing{margin:12px 0 2px;padding:12px;color:var(--t-ink-red, #9b2c2c);background:var(--t-tint-red, #fff5f5);border:1px solid var(--t-line-red, #fecaca);border-radius:8px;line-height:1.6}@media (max-width: 720px){.student-task-workspace{grid-template-columns:1fr}.student-question-nav{position:static}.student-question-grid{display:flex;flex-wrap:nowrap;overflow-x:auto;padding-bottom:2px}.student-question-nav-item{flex:0 0 36px}}@media (max-width: 991px){.student-app-content{padding:20px 16px}.student-sider-note{display:none}}.wrap{max-width:960px;margin:0 auto;padding:16px}.card{background:var(--t-surface, #fff);border:1px solid var(--line);border-radius:10px;padding:16px;margin-bottom:14px}.q-stem{font-size:15px;line-height:1.7;margin-bottom:10px}.opt{display:flex;gap:10px;align-items:flex-start;padding:9px 12px;border:1px solid var(--line);border-radius:8px;margin-bottom:8px;cursor:pointer}.opt:hover{border-color:var(--t-brand-ink, var(--accent))}.opt.sel{border-color:var(--t-brand-ink, var(--accent));background:var(--t-tint-blue, #eff4ff)}.opt.wrong{border-color:var(--bad);background:var(--t-tint-red, #fef2f2)}.opt .k{font-weight:700;min-width:18px}.fig{max-width:100%;border:1px solid var(--line);border-radius:8px;margin:8px 0}.opt-fig{display:block;max-width:100%;max-height:220px;border:1px solid var(--line);border-radius:6px;margin:6px 0 2px}button{font:inherit;padding:9px 16px;border:0;border-radius:8px;background:var(--accent);color:#fff;cursor:pointer}button.ghost{background:var(--t-surface, #fff);color:var(--t-text, #1f2330);border:1px solid var(--line)}button:disabled{opacity:.5;cursor:not-allowed}input,select,textarea{font:inherit;padding:8px 10px;border:1px solid var(--line);border-radius:8px;width:100%}input[type=checkbox],input[type=radio]{width:auto;padding:0;accent-color:var(--brand-blue)}label{display:block;font-size:13px;color:var(--muted);margin:8px 0 4px}table{width:100%;border-collapse:collapse}th,td{text-align:left;padding:8px 10px;border-bottom:1px solid var(--line);font-size:14px}th{color:var(--muted);font-weight:600}.bar{height:8px;border-radius:4px;background:var(--t-surface-3, #eee);overflow:hidden}.bar>i{display:block;height:100%;background:var(--accent);transition:width .4s ease}.bar>i.indet{width:100%;animation:bar-pulse 1.2s ease-in-out infinite}@keyframes bar-pulse{0%,to{opacity:.3}50%{opacity:.85}}.pill{display:inline-block;padding:2px 8px;border-radius:999px;font-size:12px}.pill.ok{background:var(--t-tint-green, #dcfce7);color:var(--ok)}.pill.bad{background:var(--t-tint-red, #fee2e2);color:var(--bad)}.pill.muted{background:var(--t-surface-3, #eee);color:var(--muted)}.pill.warn{background:var(--t-tint-amber, #fef3c7);color:var(--t-ink-amber, #92400e)}.pill.code{background:var(--gold-tint, #faf6ea);color:var(--t-brand-ink, var(--brand-blue));border:1px solid rgba(201,168,76,.4);font-weight:600}.q-codes{display:flex;flex-wrap:wrap;gap:5px;margin:2px 0 8px}.err{color:var(--bad);font-size:13px;margin:8px 0}.topbar{display:flex;justify-content:space-between;align-items:center;margin-bottom:14px}h2{margin:4px 0 12px}.subj{color:var(--muted);font-size:12px}.assignment-page{max-width:1120px}.assignment-intro{display:flex;justify-content:space-between;background:linear-gradient(120deg,var(--t-surface, #fff) 0%,var(--t-tint-blue, #f2f5ff) 100%)}.assignment-intro h2{margin:3px 0 6px}.assignment-intro p{color:var(--muted);margin:0}.eyebrow,.section-label{color:var(--t-brand-ink, var(--brand-blue));font-size:11px;font-weight:700;letter-spacing:.08em;text-transform:uppercase}.assignment-prompt{margin-top:10px}.assignment-roster{margin-top:14px;padding:12px;border:1px solid var(--line);border-radius:var(--radius);background:var(--t-surface-2, #fafbff)}.assignment-roster .subj{margin-left:8px}.student-check{display:inline-flex;width:auto;align-items:center;gap:6px;margin:9px 14px 0 0;color:var(--text-h)}.student-check input{width:auto}.assignment-cards{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:12px;margin-bottom:16px}button.assignment-card{display:flex;align-items:center;justify-content:space-between;min-height:84px;padding:16px;text-align:left;color:var(--text-h);background:var(--surface);border:1px solid var(--line);box-shadow:none}button.assignment-card:hover{border-color:var(--t-brand-ink, var(--brand-blue-light));box-shadow:0 6px 16px #1e3a8a14}button.assignment-card>span{display:grid;gap:6px}button.assignment-card strong{color:var(--t-brand-ink, var(--brand-blue));font-size:18px;white-space:nowrap}button.assignment-card small{color:var(--muted);font-size:12px;font-weight:400}.assignment-review{margin:20px 0;border:1px solid var(--line);border-radius:12px;overflow:hidden;background:var(--surface)}.assignment-review>header{display:flex;justify-content:space-between;gap:20px;padding:20px;border-bottom:1px solid var(--line);background:var(--t-surface-2, #fbfcff)}.assignment-review h3{margin:4px 0 8px}.assignment-review header p{margin:0;color:var(--muted);white-space:pre-wrap}.assignment-stats{display:flex;align-items:flex-start;justify-content:flex-end;flex-wrap:wrap;gap:8px;min-width:200px}.assignment-stats span{padding:6px 8px;border-radius:6px;background:var(--t-tint-blue, #eef3ff);color:var(--t-brand-ink, var(--brand-blue));font-size:12px;white-space:nowrap}.assignment-stats .needs-attention{color:var(--t-ink-red, #991b1b);background:var(--t-tint-red, #fef2f2)}.assignment-review-grid{display:grid;grid-template-columns:minmax(210px,.72fr) minmax(0,2fr);min-height:520px}.assignment-review-grid>nav{border-right:1px solid var(--line);padding:8px;background:var(--t-surface-2, #fafbfc)}button.submission-list-item{width:100%;display:flex;align-items:center;justify-content:space-between;gap:8px;padding:12px;margin:0 0 4px;border:1px solid transparent;color:var(--text-h);text-align:left;background:transparent}button.submission-list-item:hover{background:var(--t-tint-blue, #f0f4ff)}button.submission-list-item.selected{border-color:var(--t-line-blue, #c9d6f3);background:var(--t-tint-blue, #eaf0ff)}.submission-list-item>span{display:grid;gap:4px;min-width:0}.submission-list-item small{color:var(--muted)}.submission-list-item .pill{white-space:nowrap}.submission-review{padding:20px;min-width:0}.submission-heading{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;margin-bottom:18px}.submission-heading h4{margin:0 0 7px;font-size:18px}.retry-button{padding:7px 10px;white-space:nowrap}.recording-panel,.transcript-panel,.ai-feedback,.grading-panel{margin-top:14px;padding:14px;border:1px solid var(--line);border-radius:8px}.recording-panel{background:var(--t-surface-2, #fafbff)}.recording-panel video{display:block;width:100%;max-height:380px;margin-top:8px;background:#101828;border-radius:6px}.recording-panel audio{width:100%;margin-top:10px}.media-loading{margin-top:9px;padding:20px;text-align:center;color:var(--muted);background:var(--t-surface, #fff);border-radius:6px}.transcript-panel{background:var(--t-surface, #fff)}.transcript-panel>p,.ai-feedback>p{margin:8px 0 0;line-height:1.7;white-space:pre-wrap}.transcript-empty{display:grid;gap:5px;margin-top:9px;padding:12px;color:var(--t-ink-red, #7f1d1d);background:var(--t-tint-red, #fff7f7);border-left:3px solid var(--bad)}.transcript-empty span{color:var(--muted);font-size:13px}.ai-feedback{background:var(--t-surface-2, #f4f7ff);border-color:var(--t-line-blue, #dbe5ff)}.ai-feedback .section-label span{color:var(--muted);font-weight:400;letter-spacing:0;text-transform:none}.grading-panel{display:grid;gap:10px;background:var(--t-surface-2, #fbfbfc)}.grading-panel label{margin:0}.grading-panel label:first-child{max-width:150px}.grading-actions{display:flex;align-items:center;gap:10px}.saved{color:var(--t-ink-green, #15803d);font-size:13px}@media (max-width: 760px){.assignment-review>header{display:block}.assignment-stats{justify-content:flex-start;margin-top:12px}.assignment-review-grid{grid-template-columns:1fr}.assignment-review-grid>nav{display:flex;gap:6px;overflow-x:auto;border-right:0;border-bottom:1px solid var(--line)}button.submission-list-item{min-width:176px}.submission-review{padding:14px}}.katex-preview{min-height:20px;color:var(--t-text, #333)}.exam-head{position:sticky;top:0;background:var(--t-surface-2, #f6f7f9);padding:12px 0 10px;z-index:10;border-bottom:1px solid var(--line);margin-bottom:16px}.exam-head .row{display:flex;align-items:center;gap:12px}.exam-head h2{margin:0;font-size:18px;flex:1}.progress-meta{font-size:13px;color:var(--muted);white-space:nowrap}.qnav{display:flex;flex-wrap:wrap;gap:6px;margin-top:10px}.qnav button{width:30px;height:30px;padding:0;font-size:13px;background:var(--t-surface, #fff);color:var(--t-text, #1f2330);border:1px solid var(--line);border-radius:6px}.qnav button.done{background:var(--t-tint-blue, #eff4ff);border-color:var(--t-brand-ink, var(--accent));color:var(--t-brand-ink, var(--accent))}.qnav button.active{background:var(--accent);color:#fff;border-color:var(--t-brand-ink, var(--accent))}.qsplit{display:grid;grid-template-columns:1fr 1fr;gap:16px;align-items:start}@media (max-width: 760px){.qsplit{grid-template-columns:1fr}}.qpane{background:var(--t-surface, #fff);border:1px solid var(--line);border-radius:10px;padding:18px}.qpane h4{margin:0 0 12px;font-size:13px;color:var(--muted);font-weight:600}.exam-nav{display:flex;justify-content:space-between;gap:12px;margin:18px 0 32px}.modal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#0006;display:flex;align-items:flex-start;justify-content:center;padding:56px 16px;z-index:100;overflow:auto}.modal{background:var(--t-surface, #fff);border-radius:12px;width:100%;max-width:520px;padding:20px;box-shadow:0 12px 40px #00000038}.modal-head{display:flex;align-items:center;gap:10px;margin:0 0 14px}.modal-head h3{margin:0;flex:1}.modal-x{background:var(--t-surface, #fff);color:var(--muted);border:1px solid var(--line);padding:4px 10px}.choice{display:flex;gap:12px}.choice-card{flex:1;display:flex;flex-direction:column;align-items:flex-start;gap:4px;text-align:left;background:var(--t-surface, #fff);color:var(--t-text, #1f2330);border:1px solid var(--line);border-radius:10px;padding:16px;cursor:pointer}.choice-card:hover{border-color:var(--t-brand-ink, var(--accent));background:var(--t-surface-2, #f7faff)}.choice-card .big{font-size:22px}.choice-card b{font-size:15px}.choice-card span{font-size:12px;color:var(--muted);font-weight:400}.assembly-shell{max-width:1280px;margin:12px auto 0}.assembly-top{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;margin:10px 0 14px}.assembly-top h2{margin:0 0 4px}.assembly-title{display:grid;grid-template-columns:minmax(220px,360px) auto;gap:8px;align-items:center}.assembly-steps{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px;margin:0 0 12px}.assembly-step{display:flex;align-items:center;gap:8px;padding:10px 12px;border:1px solid var(--line);border-radius:8px;background:var(--t-surface, #fff);color:var(--muted)}.assembly-step b{width:24px;height:24px;display:inline-flex;align-items:center;justify-content:center;border-radius:6px;background:var(--t-surface-3, #eef0f4);color:var(--muted)}.assembly-step.active{border-color:var(--t-line-blue, rgba(30,58,138,.35));background:var(--t-surface-2, #f7faff);color:var(--t-brand-ink, var(--brand-blue))}.assembly-step.active b{background:var(--brand-blue);color:#fff}.assembly-grid{display:grid;grid-template-columns:minmax(320px,.9fr) minmax(420px,1.1fr);gap:16px;align-items:start}.assembly-grid3{display:grid;grid-template-columns:minmax(280px,.85fr) minmax(360px,1.3fr) minmax(240px,.85fr);gap:14px;align-items:start}.assembly-detail{position:sticky;top:12px;max-height:calc(100vh - 40px);overflow:auto}.assembly-detail .card{margin-bottom:10px}.assembly-detail-actions{display:flex;align-items:center;gap:12px;margin-top:12px}.assembly-title-input{font-size:20px;font-weight:700;border:1px solid transparent;border-radius:6px;padding:4px 8px;margin:0 0 4px -8px;width:100%;max-width:520px;background:transparent;color:var(--t-text, #1f2330)}.assembly-title-input:hover{border-color:var(--line)}.assembly-title-input:focus{border-color:var(--t-brand-ink, var(--brand-blue));background:var(--t-surface, #fff);outline:none}.assembly-source-tabs{display:flex;gap:6px;margin-bottom:12px;border-bottom:1px solid var(--line)}.assembly-source-tab{background:transparent;border:0;border-bottom:2px solid transparent;color:var(--muted);padding:6px 10px;cursor:pointer;font-size:13px;border-radius:0}.assembly-source-tab:hover{color:var(--t-text, #1f2330)}.assembly-source-tab.active{color:var(--t-brand-ink, var(--brand-blue));border-bottom-color:var(--t-brand-ink, var(--accent));font-weight:600}.assembly-browse-actions{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-bottom:10px}.assembly-continue{display:flex;align-items:center;flex-wrap:wrap;gap:8px;margin-bottom:12px}.assembly-draft-chip{background:var(--t-surface, #fff);color:var(--t-text, #1f2330);border:1px solid var(--line);border-radius:999px;padding:5px 12px;font-size:12px;cursor:pointer}.assembly-draft-chip:hover{border-color:var(--t-brand-ink, var(--brand-blue));background:var(--t-surface-2, #f7faff)}.assembly-dropzone{display:flex;align-items:center;justify-content:center;text-align:center;min-height:64px;border:1.5px dashed var(--line);border-radius:8px;padding:12px;color:var(--muted);font-size:13px;cursor:pointer;background:var(--t-surface-2, #fafbff);margin-bottom:10px}.assembly-dropzone:hover{border-color:var(--t-brand-ink, var(--brand-blue));background:var(--t-surface-2, #f7faff)}.assembly-codes{display:flex;flex-wrap:wrap;gap:6px;max-height:200px;overflow:auto;border:1px solid var(--line);border-radius:8px;padding:10px;margin-bottom:10px}.assembly-code{border:1px solid var(--line);background:var(--t-surface, #fff);color:var(--t-text, #1f2330);border-radius:6px;padding:2px 8px;font-size:12px;cursor:pointer}.assembly-code.active{border-color:var(--t-brand-ink, var(--accent));background:var(--gold-tint, #faf6ea);color:var(--t-brand-ink, var(--brand-blue));font-weight:600}.assembly-custom-prompt{width:100%;margin:0 0 10px;resize:vertical;font:inherit;padding:8px 10px;border:1px solid var(--line);border-radius:8px}.assembly-pane{background:var(--t-surface, #fff);border:1px solid var(--line);border-radius:8px;padding:14px;min-width:0}.assembly-pane-head{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:10px}.assembly-pane-head h3{margin:0;font-size:16px}.assembly-filters{display:grid;grid-template-columns:repeat(auto-fit,minmax(140px,1fr));gap:8px;margin-bottom:12px}.assembly-taxonomy-directories{display:grid;gap:8px;max-height:280px;overflow:auto;border:1px solid var(--line);border-radius:8px;padding:8px;margin:-4px 0 12px;background:var(--t-surface-2, #fafbff)}.assembly-taxonomy-directory{border:1px solid var(--line);border-radius:7px;padding:8px;background:var(--t-surface, #fff)}.assembly-taxonomy-directory-head{display:flex;align-items:center;justify-content:space-between;gap:8px}.assembly-taxonomy-directory-title{display:flex;align-items:baseline;gap:6px;min-width:0}.assembly-taxonomy-directory-title b{color:var(--t-brand-ink, var(--brand-blue));font-size:13px}.assembly-taxonomy-directory-title span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:12px}.assembly-taxonomy-directory-title small{color:var(--muted);font-size:11px;white-space:nowrap}.assembly-taxonomy-directory-toggle{flex:0 0 auto;padding:3px 7px;font-size:11px}.assembly-taxonomy-directory-codes{display:flex;flex-wrap:wrap;gap:5px;margin-top:7px}.assembly-taxonomy-code{border:1px solid var(--line);background:var(--t-surface, #fff);color:var(--t-text, #1f2330);border-radius:6px;padding:2px 7px;font-size:11px;cursor:pointer}.assembly-taxonomy-code:hover{border-color:var(--t-brand-ink, var(--brand-blue))}.assembly-taxonomy-code.active{border-color:var(--t-brand-ink, var(--accent));background:var(--gold-tint, #faf6ea);color:var(--t-brand-ink, var(--brand-blue));font-weight:600}.assembly-code-chips{display:flex;flex-wrap:wrap;gap:6px;align-items:center;margin:-4px 0 10px}.assembly-results{display:grid;gap:8px;max-height:680px;overflow:auto;padding-right:2px}.assembly-result{display:flex;align-items:center;gap:8px;width:100%;background:var(--t-surface, #fff);color:var(--t-text, #1f2330);border:1px solid var(--line);border-radius:8px;padding:10px}.assembly-result:hover,.assembly-result.active{border-color:var(--t-brand-ink, var(--brand-blue));background:var(--t-surface-2, #f7faff)}.assembly-result-main{display:grid;gap:3px;flex:1;min-width:0;text-align:left;background:transparent;border:0;padding:0;cursor:pointer;color:inherit}.assembly-result span{color:var(--muted);font-size:12px}.assembly-result b{font-size:13px;line-height:1.45;max-height:2.9em;overflow:hidden}.assembly-result small{color:var(--t-brand-ink, var(--brand-blue));font-size:12px}.assembly-result-check{flex:0 0 auto;width:15px;height:15px;margin:0;accent-color:var(--brand-blue);cursor:pointer}.assembly-preview{border-bottom:1px solid var(--line);margin-bottom:12px;padding-bottom:12px}.assembly-preview .card{margin-bottom:10px}.assembly-list{display:grid;gap:8px;margin-bottom:16px}.assembly-empty{border:1px dashed var(--line);border-radius:8px;padding:14px;color:var(--muted);font-size:13px;background:var(--t-surface-2, #fafbff)}.assembly-onboard{max-width:640px}.assembly-draft-cards{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:10px}.assembly-draft-card{display:flex;gap:8px;align-items:center;background:var(--t-surface, #fff);color:var(--t-text, #1f2330);border:1px solid var(--line);border-radius:8px;padding:8px 10px 8px 14px}.assembly-draft-card:hover{border-color:var(--t-brand-ink, var(--brand-blue));background:var(--t-surface-2, #f7faff)}.assembly-draft-card-main{display:flex;flex:1;min-width:0;flex-direction:column;gap:4px;align-items:flex-start;text-align:left;background:transparent;color:inherit;border:0;padding:4px 0;cursor:pointer}.assembly-draft-card-main b{max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:14px}.assembly-draft-card-main small{color:var(--muted);font-size:12px}.assembly-draft-delete{flex:0 0 auto;color:var(--t-ink-red, #b91c1c);padding:5px 7px}.assembly-item{display:grid;grid-template-columns:32px 1fr auto;gap:10px;align-items:center;border:1px solid var(--line);border-radius:8px;padding:10px;cursor:grab}.assembly-item.dragging{opacity:.45;border-style:dashed}.assembly-ordinal{width:28px;height:28px;display:inline-flex;align-items:center;justify-content:center;border-radius:6px;background:var(--t-tint-blue, #eff4ff);color:var(--t-brand-ink, var(--brand-blue));font-weight:700}.assembly-actions{display:flex;gap:4px;align-items:center}.assembly-actions button{padding:5px 8px}.assembly-preview-step{background:var(--t-surface, #fff);border:1px solid var(--line);border-radius:8px;padding:16px;max-width:900px;margin:0 auto}.assembly-preview-item{border:1px solid var(--line);border-radius:8px;padding:12px;margin-bottom:12px;background:var(--t-surface-2, #fcfdff)}.assembly-preview-item-head{display:flex;align-items:center;gap:10px;margin-bottom:8px}.assembly-preview-item .card{margin:0;border:0;padding:0;background:transparent}.assembly-preview-item form.card{border:1px solid var(--line);padding:14px;background:var(--t-surface, #fff)}.assembly-publish{border-top:1px solid var(--line);padding-top:12px;max-width:900px;margin:0 auto}.assembly-publish h3{margin:0 0 10px;font-size:15px}.assembly-roster-panel{display:grid;gap:14px;border:1px solid var(--line);border-radius:8px;padding:14px;background:var(--t-surface-2, #fafbff)}.assembly-roster-section{display:grid;gap:7px}.assembly-roster-label{display:flex;align-items:baseline;gap:8px}.assembly-roster-label b{font-size:13px}.assembly-roster-label span{color:var(--muted);font-size:12px}.assembly-roster-controls{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:8px;margin:0}.assembly-roster-controls button{white-space:nowrap}.assembly-roster-search-results{display:grid;max-height:180px;overflow:auto;border:1px solid var(--line);border-radius:8px;background:var(--t-surface, #fff)}.assembly-roster-search-row{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:8px 10px;border-bottom:1px solid var(--line)}.assembly-roster-search-row:last-child{border-bottom:0}.assembly-roster-search-row>span{display:flex;min-width:0;flex-direction:column}.assembly-roster-search-row b{font-size:13px}.assembly-roster-search-row small{color:var(--muted);font-size:11px}.assembly-roster-search-row button{padding:4px 8px;font-size:12px}.assembly-roster-selected-head{display:flex;align-items:center;gap:8px}.assembly-roster-selected-head b{font-size:13px}.assembly-roster-selected{display:flex;flex-wrap:wrap;gap:7px;max-height:210px;overflow:auto}.assembly-roster-chip{display:inline-flex;align-items:center;gap:7px;border:1px solid var(--t-line-blue, rgba(30,58,138,.25));border-radius:999px;padding:4px 5px 4px 10px;background:var(--t-surface, #fff)}.assembly-roster-chip>span{display:flex;flex-direction:column;font-size:12px;line-height:1.25}.assembly-roster-chip small{color:var(--muted);font-size:10px}.assembly-roster-chip button{width:23px;height:23px;padding:0;border-radius:50%;background:var(--t-surface-3, #eef0f4);color:var(--muted)}.assembly-shell{max-width:1360px;padding:4px 4px 28px}.assembly-top{align-items:center;padding:18px 20px;margin:10px 0 12px;border:1px solid var(--t-line, #d9e1f0);border-radius:14px;background:linear-gradient(105deg,var(--t-surface, #fff) 0%,var(--t-surface-2, #f7f9fe) 68%,var(--t-tint-blue, #eff4ff) 100%);box-shadow:0 12px 30px #162d6e0d}.assembly-top .subj{max-width:720px;line-height:1.55}.assembly-title-input{max-width:620px;font-size:22px;letter-spacing:-.02em}.assembly-title{grid-template-columns:auto auto;flex:0 0 auto}.assembly-title .pill{padding:5px 10px;border:1px solid var(--t-line, #d9e1f0);background:var(--t-surface, #fff)}.assembly-steps{gap:0;margin:0 0 16px;padding:5px;border:1px solid var(--t-line, #e0e5ef);border-radius:12px;background:var(--t-surface, #fff);box-shadow:0 4px 14px #162d6e09}.assembly-step{position:relative;justify-content:center;border:0;border-radius:8px;padding:9px 10px;font-size:13px}.assembly-step+.assembly-step:before{position:absolute;left:0;width:1px;height:22px;background:var(--t-surface-4, #e7eaf0);content:""}.assembly-step b{width:22px;height:22px;border-radius:50%;background:var(--t-surface-3, #f0f2f6);font-size:11px}.assembly-step.active{box-shadow:inset 0 0 0 1px #1e3a8a2e}.assembly-step.active:after{position:absolute;right:12px;bottom:5px;left:12px;height:2px;border-radius:2px;background:var(--brand-gold);content:""}.assembly-grid3{gap:12px;grid-template-columns:minmax(290px,.92fr) minmax(390px,1.32fr) minmax(270px,.9fr)}.assembly-pane{border-color:var(--t-line, #dce2ec);border-radius:12px;padding:0;box-shadow:0 7px 20px #162d6e09;overflow:hidden}.assembly-grid3>.assembly-pane:first-child{background:var(--t-surface-2, #fbfcff)}.assembly-grid3>.assembly-pane>.assembly-source-tabs,.assembly-grid3>.assembly-pane>.assembly-pane-head{margin:0;padding:13px 14px 11px;border-bottom:1px solid var(--t-line, #e5e9f1);background:var(--t-surface, #fff)}.assembly-source-tabs{gap:4px}.assembly-source-tab{flex:1;border:1px solid transparent;border-radius:7px;padding:7px 6px}.assembly-source-tab.active{border-color:var(--t-line-blue, #cbd7ee);background:var(--t-tint-blue, #edf3ff)}.assembly-grid3>.assembly-pane:first-child>:not(.assembly-source-tabs){margin-right:14px;margin-left:14px}.assembly-grid3>.assembly-pane:first-child>.assembly-browse-actions{margin-top:12px}.assembly-grid3>.assembly-pane:first-child>.assembly-results{margin-bottom:14px}.assembly-detail{top:10px;background:var(--t-surface, #fff)}.assembly-detail .assembly-pane-head h3:before{display:inline-block;width:7px;height:7px;margin-right:8px;border-radius:50%;background:var(--brand-gold);content:"";vertical-align:1px}.assembly-detail>.card{margin:14px;border-color:var(--t-line, #e0e5ef);box-shadow:none}.assembly-detail>form{margin:14px}.assembly-detail>.assembly-empty{margin:14px}.assembly-detail-actions{margin:14px;padding:11px 12px;border-top:1px solid var(--t-line, #e6eaf1);background:var(--t-surface-2, #fbfcff)}.assembly-detail-actions button{min-width:132px}.assembly-filters{gap:7px}.assembly-taxonomy-directories{border-color:var(--t-line, #dce4f1);border-radius:9px;background:var(--t-surface-2, #f7f9fd)}.assembly-taxonomy-directory{border-color:var(--t-line, #e2e6ee)}.assembly-results{gap:7px;max-height:610px;padding:2px}.assembly-result{position:relative;gap:9px;border-color:var(--t-line, #e0e5ee);border-radius:9px;padding:9px;transition:border-color .16s ease,background .16s ease,box-shadow .16s ease}.assembly-result:hover{box-shadow:0 3px 10px #162d6e0f}.assembly-result.active{border-color:var(--t-line-blue, #8ca5d8);background:var(--t-surface-2, #f3f6fe);box-shadow:inset 3px 0 0 var(--brand-blue)}.assembly-result-main{gap:4px}.assembly-result-main>span{font-weight:600;letter-spacing:.01em}.assembly-result b{color:var(--text-h);font-size:13px}.assembly-result small{color:var(--t-text-2, #667798)}.assembly-result-select{display:inline-flex;width:22px;height:22px;flex:0 0 22px;align-items:center;justify-content:center;margin:0;border:1px solid var(--t-line-blue, #bdc8dc);border-radius:6px;background:var(--t-surface, #fff);color:transparent;cursor:pointer;transition:background .14s ease,border-color .14s ease,color .14s ease,transform .14s ease}.assembly-result-select:hover{border-color:var(--t-brand-ink, var(--brand-blue));background:var(--t-tint-blue, #f1f5ff)}.assembly-result-select:has(input:focus-visible){outline:2px solid var(--t-line-blue, rgba(30, 58, 138, .24));outline-offset:2px}.assembly-result-select:has(input:checked){border-color:var(--t-brand-ink, var(--brand-blue));background:var(--brand-blue);color:#fff;box-shadow:0 2px 5px #1e3a8a38}.assembly-result-select:has(input:checked)+.assembly-result-main{opacity:.82}.assembly-result-select input{position:absolute;width:1px;height:1px;opacity:0;pointer-events:none}.assembly-result-select span{color:inherit;font-size:13px;font-weight:800;line-height:1}.assembly-result>.ghost{min-width:33px;padding:5px 8px;border-color:var(--t-line, #d5ddeb);color:var(--t-brand-ink, var(--brand-blue));font-weight:700}.assembly-result>.ghost:hover{border-color:var(--t-brand-ink, var(--brand-blue));background:var(--t-tint-blue, #edf3ff)}.assembly-browse-actions{padding:8px 9px;border:1px solid var(--t-line, #e1e6ef);border-radius:8px;background:var(--t-surface, #fff)}.assembly-browse-actions>.subj{line-height:1.35}.assembly-browse-actions button{padding:6px 9px;font-size:12px;white-space:nowrap}.assembly-list{gap:7px;max-height:calc(100vh - 245px);margin:14px;overflow:auto}.assembly-item{grid-template-columns:29px 1fr;gap:8px;border-color:var(--t-line, #e1e6ef);border-radius:9px;padding:9px;background:var(--t-surface, #fff);cursor:grab}.assembly-item:hover{border-color:var(--t-line-blue, #adbcda);background:var(--t-surface-2, #fafcff)}.assembly-ordinal{width:25px;height:25px;border-radius:50%;background:var(--t-tint-blue, #eaf0fc);font-size:12px}.assembly-actions{grid-column:2;justify-content:flex-end;padding-top:2px}.assembly-actions button{padding:4px 7px;font-size:12px}.assembly-grid3>.assembly-pane:last-child>.assembly-pane-head{background:var(--t-surface-2, #f9fbff)}.assembly-grid3>.assembly-pane:last-child>div[style]{margin:0 14px 14px!important;padding-top:11px;border-top:1px solid var(--t-line, #e4e8f0)}.assembly-empty{border-color:var(--t-line-blue, #ced8e8);border-radius:9px;background:var(--t-surface-2, #f8faff);line-height:1.6}.assembly-onboard{max-width:920px}.assembly-draft-cards{grid-template-columns:repeat(auto-fill,minmax(240px,1fr))}.assembly-draft-card{border-color:var(--t-line, #dce3ee);border-radius:10px;box-shadow:0 3px 9px #162d6e06}.assembly-draft-card:hover{box-shadow:0 8px 18px #162d6e12}.assembly-top-status{padding:6px 10px;border:1px solid var(--t-line, #d9e1ef);border-radius:999px;color:var(--t-text-2, #52617a);background:var(--t-surface, #fff);font-size:12px;font-weight:600;white-space:nowrap}.assembly-onboard{display:grid;grid-template-columns:minmax(330px,.88fr) minmax(480px,1.45fr);max-width:none;min-height:360px;gap:14px;align-items:stretch}.assembly-start-card,.assembly-drafts-panel{border:1px solid var(--t-line, #dce3ee);border-radius:12px;background:var(--t-surface, #fff);box-shadow:0 8px 24px #162d6e0a}.assembly-start-card{display:flex;min-height:324px;flex-direction:column;justify-content:space-between;padding:28px;background:linear-gradient(145deg,var(--t-surface-2, #f7f9ff) 0%,var(--t-tint-blue, #edf3ff) 100%);border-color:var(--t-line-blue, #cad7ee)}.assembly-start-kicker{display:block;margin-bottom:9px;color:var(--t-brand-ink, var(--brand-blue));font-size:11px;font-weight:700;letter-spacing:.08em}.assembly-start-card h3,.assembly-drafts-head h3{margin:0;color:var(--text-h);font-size:22px;letter-spacing:-.02em}.assembly-start-card p{max-width:34ch;margin:10px 0 26px;color:var(--t-text-2, #59657b);font-size:14px;line-height:1.7}.assembly-start-card>button{align-self:flex-start;min-width:142px}.assembly-create-form{display:grid;gap:8px}.assembly-create-form label{margin:0;color:var(--t-text-2, #485673);font-size:12px;font-weight:700}.assembly-create-form>div{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:8px}.assembly-create-form input{min-width:0;border-color:var(--t-line-blue, #aec0df);background:var(--t-surface, #fff);color:var(--text-h)}.assembly-create-form input:focus{border-color:var(--t-brand-ink, var(--brand-blue));outline:2px solid rgba(30,58,138,.14)}.assembly-create-form button{white-space:nowrap}.assembly-create-cancel{justify-self:start;padding:4px 0!important;border:0!important;background:transparent!important;color:var(--t-text-2, #66738a)!important;font-size:12px}.assembly-drafts-panel{display:flex;min-width:0;flex-direction:column;padding:22px}.assembly-drafts-head{display:flex;align-items:flex-end;justify-content:space-between;gap:14px;padding-bottom:16px;border-bottom:1px solid var(--t-line, #e4e8ef)}.assembly-drafts-head .assembly-start-kicker{margin-bottom:6px;color:var(--t-muted, #747d90)}.assembly-drafts-head h3{font-size:17px}.assembly-drafts-head>span{color:var(--t-muted, #707b8f);font-size:12px;white-space:nowrap}.assembly-draft-cards{grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:10px;padding-top:16px}.assembly-draft-card{min-height:92px;align-items:stretch;border-color:var(--t-line, #e0e5ed);padding:12px 10px 12px 14px}.assembly-draft-card-main{justify-content:center;gap:7px}.assembly-draft-card-main b{color:var(--text-h)}.assembly-draft-card-main small{line-height:1.4}.assembly-draft-delete{align-self:center}.assembly-drafts-empty{display:grid;min-height:180px;place-items:center;margin-top:16px;border:1px dashed var(--t-line, #d4dce8);border-radius:9px;color:var(--t-muted, #778399);background:var(--t-surface-2, #fafbfe);font-size:13px;text-align:center}@media (max-width: 1100px){.assembly-grid3{grid-template-columns:1fr}.assembly-detail{position:static;max-height:none}.assembly-onboard{grid-template-columns:1fr;min-height:auto}.assembly-start-card{min-height:0}}@media (max-width: 960px){.assembly-grid{grid-template-columns:1fr}.assembly-top{flex-direction:column}.assembly-steps{grid-template-columns:1fr}.assembly-title{grid-template-columns:1fr;width:100%}.assembly-filters{grid-template-columns:1fr}.assembly-item{grid-template-columns:32px 1fr}.assembly-actions{grid-column:2;flex-wrap:wrap}}@media (max-width: 600px){.assembly-start-card,.assembly-drafts-panel{padding:18px}.assembly-start-card h3{font-size:20px}.assembly-create-form>div{grid-template-columns:1fr}.assembly-create-form>div button{width:100%}.assembly-drafts-head{align-items:flex-start;flex-direction:column}}.exams-shell{max-width:1120px;margin:12px auto 0}.exams-head{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;margin:10px 0 14px}.exams-head h2{margin:0 0 4px}.exams-list{display:grid;gap:10px}.exam-row{display:grid;grid-template-columns:minmax(0,1fr) auto auto;gap:14px;align-items:center;background:var(--t-surface, #fff);border:1px solid var(--line);border-radius:8px;padding:14px}.exam-title{font-weight:700;font-size:15px;margin-bottom:4px;color:var(--text-h)}.exam-actions{display:flex;gap:8px;align-items:center;flex-wrap:wrap;justify-content:flex-end}.exam-link{padding:9px 16px;border:1px solid var(--line);border-radius:8px;font-size:14px;text-decoration:none;color:var(--t-text, #1f2330)}@media (max-width: 760px){.exams-head{flex-direction:column}.exam-row{grid-template-columns:1fr;align-items:start}.exam-actions{justify-content:flex-start}}.past-papers-shell{max-width:1120px;margin:12px auto 0}.past-papers-head{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;margin:10px 0 14px}.past-papers-head h2{margin:0 0 4px}.past-paper-list{display:grid;gap:10px}.form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px 12px}@media (max-width: 760px){.past-papers-head{flex-direction:column}.form-grid{grid-template-columns:1fr}}.answer-tabs{display:flex;gap:4px;margin-bottom:14px;border-bottom:1px solid var(--line)}.answer-tabs button{background:transparent;color:var(--muted);border:0;border-bottom:2px solid transparent;border-radius:0;padding:8px 14px}.answer-tabs button.active{color:var(--t-brand-ink, var(--brand-blue));border-bottom-color:var(--t-brand-ink, var(--brand-blue));font-weight:600}.answer-tabs button:hover{color:var(--t-brand-ink, var(--brand-blue))}.recorder-start{text-align:center;padding:14px 0}.recorder-start p{margin:0 0 14px}.recorder-preview video{display:block;width:100%;max-height:420px;background:#101828;border-radius:8px}.mic-hint{padding:44px 0;text-align:center;color:var(--muted);font-size:15px}.recorder-toolbar{display:flex;align-items:center;gap:10px;margin-top:12px;flex-wrap:wrap}.rec-dot{color:var(--bad);font-weight:600}.rec-timer{font-variant-numeric:tabular-nums;min-width:72px}.recorder-review video{display:block;width:100%;max-height:420px;background:#101828;border-radius:8px}.recorder-review audio{width:100%}.recorder-actions{display:flex;gap:10px;margin-top:12px;flex-wrap:wrap}.confirm-inline{display:flex;align-items:center;gap:10px;margin-top:12px;padding:10px 12px;border:1px solid var(--line);border-radius:8px;background:var(--t-surface-2, #fafbff);flex-wrap:wrap}.upload-drop{display:block;padding:28px 16px;text-align:center;border:1px dashed var(--t-brand-ink, var(--brand-blue-light));border-radius:8px;background:var(--t-surface-2, #fafbff);color:var(--t-brand-ink, var(--brand-blue));cursor:pointer;margin:0}.upload-drop:hover{background:var(--t-tint-blue, #f0f4ff)}.upload-preview video{display:block;width:100%;max-height:420px;background:#101828;border-radius:8px;margin-top:12px}.upload-preview audio{width:100%;margin-top:12px}.upload-preview .subj{margin:6px 0 10px}.confirm-bar{margin-top:14px;padding:14px;border:1px solid var(--line);border-radius:8px;background:var(--t-surface-2, #fafbff)}.confirm-meta{margin:8px 0 10px}.confirm-actions{display:flex;gap:10px}.learning-evidence{display:grid;gap:14px}.learning-evidence.compact{gap:10px}.insight-code-list{display:grid;gap:8px}.insight-code-row{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;padding:12px 0;border-bottom:1px solid var(--t-line, #eef0f4)}.insight-code-row:last-child{border-bottom:0}.insight-code-row.attention{border-left:3px solid var(--brand-gold);padding-left:10px}.insight-code-row.limited{border-left:3px solid var(--t-line-strong, #b8becb);padding-left:10px}.insight-code-main{min-width:0;flex:1}.insight-code-heading{display:flex;align-items:center;gap:7px;flex-wrap:wrap}.insight-code-heading b{color:var(--text-h)}.insight-code-heading .ant-tag{margin-inline-end:0}.insight-status{color:var(--muted);font-size:12px}.insight-code-meta{margin:4px 0 6px;color:var(--muted);font-size:12px}.insight-code-rate{min-width:50px;padding-top:3px;color:var(--t-brand-ink, var(--brand-blue));font-size:16px;text-align:right}.insight-evidence-questions{display:flex;align-items:center;gap:5px;flex-wrap:wrap;margin-top:6px}.insight-caption{color:var(--muted);font-size:12px}.insight-question-link{padding:2px 7px;color:var(--t-brand-ink, var(--brand-blue));background:var(--t-tint-blue, #f0f4ff);border:1px solid var(--t-line-blue, #d8e1f6);border-radius:999px;font-size:12px}.insight-question-static{display:inline-block}.insight-question-link:hover{background:var(--t-tint-blue, #e5edff)}.insight-empty,.insight-good,.insight-untagged,.insight-stable-note{display:grid;gap:4px;padding:12px;color:var(--text-h);background:var(--t-surface-2, #fafbff);border:1px solid var(--t-line, #edf0f6);border-radius:8px}.insight-empty span,.insight-good,.insight-untagged,.insight-stable-note{color:var(--muted);font-size:13px}.insight-untagged{background:var(--t-tint-amber, #fffdf7);border-color:var(--t-line-amber, #f1e7c9)}.insight-overview-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin-bottom:14px}.insight-overview-stat{display:grid;gap:3px;padding:14px 16px;background:var(--t-surface, #fff);border:1px solid var(--line);border-radius:10px}.insight-overview-stat span{color:var(--muted);font-size:12px}.insight-overview-stat b{color:var(--t-brand-ink, var(--brand-blue));font-size:24px;line-height:1.2}.insight-overview-stat small{color:var(--muted);font-size:11px}.insight-section-card h3{margin:0 0 4px}.insight-section-heading{display:flex;align-items:flex-start;justify-content:space-between;gap:14px;margin-bottom:14px}.insight-section-heading p{margin:0;color:var(--muted);font-size:12px}.insight-module-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px 20px}.insight-module-row{min-width:0}.insight-module-row>div{display:flex;justify-content:space-between;gap:8px;margin-bottom:4px}.insight-module-row span{color:var(--muted);font-size:12px}.insight-finding-list{display:grid;gap:8px;margin-top:10px}.insight-finding{display:grid;gap:5px;padding:10px 12px;background:var(--t-surface-2, #fafbff);border-left:3px solid var(--brand-gold);border-radius:0 7px 7px 0;line-height:1.6}.insight-finding-head{display:flex;align-items:center;gap:7px;flex-wrap:wrap}.insight-finding-head .ant-tag{margin-inline-end:0}.insight-ai-summary{margin-top:12px;padding:12px;background:var(--t-tint-amber, #fffdf7);border:1px solid var(--t-line-amber, #f1e7c9);border-radius:8px;line-height:1.7}.insight-suggestions{margin-top:12px}.insight-suggestions ul{margin:6px 0 0;padding-left:20px}.teacher-ai-findings{margin-top:12px}.insight-workspace{max-width:1240px;padding:28px 24px 40px}.insight-page-head{display:flex;align-items:flex-start;justify-content:space-between;gap:24px;margin-bottom:22px}.insight-page-head h2{margin:0 0 8px;color:var(--text-h);font-size:28px;letter-spacing:-.02em}.insight-page-head p{max-width:720px;margin:0;color:var(--muted);font-size:14px;line-height:1.7}.insight-head-actions{display:flex;gap:8px;flex:0 0 auto}.insight-inline-notice{margin:-8px 0 14px;padding:9px 12px;color:var(--t-ink-amber, #805f12);background:var(--t-tint-amber, #fffaf0);border:1px solid var(--t-line-amber, #f0dfb2);border-radius:8px;font-size:12px}.insight-load-state{max-width:520px;margin:90px auto;padding:28px;color:var(--muted);text-align:center;background:var(--t-surface, #fff);border:1px solid var(--line);border-radius:12px}.insight-load-state b{display:block;color:var(--text-h);font-size:17px}.insight-load-state p{margin:7px 0 16px}.insight-tabs{display:flex;gap:28px;margin-bottom:18px;padding:0 4px;border-bottom:1px solid var(--t-line, #dfe3eb)}.insight-tabs button{position:relative;padding:11px 2px 13px;color:var(--t-text-2, #697080);background:transparent;border-radius:0;font-weight:600}.insight-tabs button:hover,.insight-tabs button.active{color:var(--t-brand-ink, var(--brand-blue))}.insight-tabs button.active:after{position:absolute;right:0;bottom:-1px;left:0;height:3px;background:var(--brand-blue);border-radius:3px 3px 0 0;content:""}.insight-briefing{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));min-height:360px;background:var(--t-surface, #fff);border:1px solid var(--t-line, #dfe3eb);border-radius:12px;box-shadow:0 8px 24px #1e3a8a0a}.insight-briefing>section{min-width:0;padding:24px}.insight-briefing>section+section{border-left:1px solid var(--t-line, #e7e9ef)}.insight-section-title{display:flex;gap:11px;align-items:flex-start;min-height:54px;margin-bottom:18px}.insight-section-title h3{margin:0 0 4px;color:var(--text-h);font-size:16px}.insight-section-title p{margin:0;color:var(--muted);font-size:12px;line-height:1.5}.insight-section-mark{width:8px;height:28px;flex:0 0 auto;border-radius:5px;background:var(--t-tint-blue, #d8deeb)}.insight-section-mark.action{background:var(--brand-gold)}.insight-section-mark.focus{background:var(--brand-blue)}.insight-section-mark.recent{background:#8190b5}.insight-action-list{display:grid;gap:0}.insight-action-line{display:grid;gap:12px;padding:16px 0;border-top:1px solid var(--t-line, #eef0f4)}.insight-action-line:first-child{border-top:0}.insight-action-line>div{display:flex;gap:10px;align-items:flex-start}.insight-action-line>div>strong{min-width:28px;color:var(--t-brand-ink, var(--brand-blue));font-size:24px;line-height:1}.insight-action-line span{display:grid;gap:4px}.insight-action-line span b{color:var(--text-h);font-size:13px}.insight-action-line small,.insight-quiet-state span{color:var(--muted);font-size:12px;line-height:1.55}.insight-action-line button{width:max-content;padding:7px 10px;font-size:12px}.insight-student-preview-block{gap:10px}.insight-action-line>.insight-student-preview-list{display:grid;overflow:hidden;border:1px solid var(--t-line, #e5e8ef);border-radius:8px}.insight-action-line .insight-student-preview-item{display:flex;width:100%;align-items:center;justify-content:space-between;gap:10px;padding:9px 10px;color:var(--text-h);text-align:left;background:var(--t-surface-2, #fafbfe);border-radius:0}.insight-action-line .insight-student-preview-item+.insight-student-preview-item{border-top:1px solid var(--t-line, #e8eaf0)}.insight-action-line .insight-student-preview-item:hover{background:var(--t-tint-blue, #f1f5ff)}.insight-student-preview-item>span{display:flex;min-width:0;align-items:baseline;gap:7px}.insight-student-preview-item>span b{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.insight-student-preview-item em{flex:0 0 auto;color:var(--t-brand-ink, var(--brand-blue));font-size:11px;font-style:normal}.insight-action-line .insight-preview-all{margin-top:1px}.insight-quiet-state{display:grid;gap:6px;padding:16px 0}.insight-quiet-state b{color:var(--t-text-2, #555d6c);font-size:13px;font-weight:600}.insight-task-link{display:flex;width:100%;align-items:center;justify-content:space-between;gap:10px;padding:14px 0;color:var(--text-h);text-align:left;background:transparent;border-top:1px solid var(--t-line, #eef0f4);border-radius:0}.insight-task-link:first-child{border-top:0}.insight-task-link:hover b,.insight-task-link>span:last-child{color:var(--t-brand-ink, var(--brand-blue))}.insight-task-link>span:first-child{display:grid;min-width:0;gap:4px}.insight-task-link b{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:13px}.insight-task-link small{color:var(--muted);font-size:11px}.insight-task-link>span:last-child{flex:0 0 auto;font-size:11px}.insight-panel{padding:22px 24px 26px;background:var(--t-surface, #fff);border:1px solid var(--t-line, #dfe3eb);border-radius:12px}.insight-panel-head{display:flex;align-items:flex-start;justify-content:space-between;gap:18px;margin-bottom:18px}.insight-panel-head h3{margin:0 0 5px;color:var(--text-h);font-size:18px}.insight-panel-head p{margin:0;color:var(--muted);font-size:12px;line-height:1.6}.insight-filter-bar{display:flex;width:max-content;max-width:100%;gap:3px;margin-bottom:18px;padding:3px;background:var(--t-surface-3, #f1f3f7);border-radius:8px}.insight-filter-bar button{padding:7px 14px;color:var(--t-text-2, #656d7c);background:transparent;font-size:12px;font-weight:600}.insight-filter-bar button.active{color:var(--t-brand-ink, var(--brand-blue));background:var(--t-surface, #fff);box-shadow:0 1px 4px #1928501a}.insight-list,.insight-student-list,.insight-knowledge-list{display:grid}.insight-task-row{display:grid;grid-template-columns:minmax(220px,1fr) auto auto;gap:26px;align-items:center;padding:18px 2px;border-top:1px solid var(--t-line, #eceef3)}.insight-task-row:first-child{border-top:0}.insight-row-main{min-width:0}.insight-row-title{display:flex;gap:8px;align-items:center}.insight-row-title>b{overflow:hidden;color:var(--text-h);text-overflow:ellipsis;white-space:nowrap;font-size:14px}.insight-row-main p{margin:6px 0 0;color:var(--muted);font-size:12px}.insight-state{padding:2px 7px;color:var(--t-text-2, #667085);background:var(--t-surface-3, #f1f2f4);border-radius:999px;font-size:11px;white-space:nowrap}.insight-state.published{color:var(--t-brand-ink, var(--brand-blue));background:var(--t-tint-blue, #edf2ff)}.insight-row-facts{display:flex;gap:28px}.insight-row-facts>span{display:grid;gap:3px;min-width:62px}.insight-row-facts b{color:var(--text-h);font-size:15px}.insight-row-facts small{color:var(--muted);font-size:11px}.insight-master-detail{display:grid;grid-template-columns:minmax(0,1fr);gap:22px}.insight-master-detail.has-detail{grid-template-columns:minmax(360px,.85fr) minmax(390px,1.15fr)}.insight-student-row,.insight-knowledge-row{display:grid;width:100%;align-items:center;gap:18px;padding:16px 12px;color:var(--text-h);text-align:left;background:transparent;border-top:1px solid var(--t-line, #eceef3);border-radius:8px}.insight-student-row{grid-template-columns:minmax(140px,1fr) minmax(150px,1fr) auto}.insight-knowledge-row{grid-template-columns:minmax(180px,1.25fr) minmax(120px,.8fr) minmax(130px,.9fr) auto}.insight-student-row:first-child,.insight-knowledge-row:first-child{border-top-color:transparent}.insight-student-row:hover,.insight-knowledge-row:hover,.insight-student-row.selected,.insight-knowledge-row.selected{background:var(--t-surface-2, #f7f9fd)}.insight-student-row.selected,.insight-knowledge-row.selected{box-shadow:inset 3px 0 0 var(--brand-blue)}.insight-student-name,.insight-knowledge-row>span{display:grid;gap:4px;min-width:0}.insight-student-name b,.insight-knowledge-row>span:first-child b{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:14px}.insight-student-name small,.insight-student-status small,.insight-knowledge-row small{color:var(--muted);font-size:11px;font-style:normal}.insight-student-status{display:flex;gap:6px;flex-wrap:wrap}.insight-student-status em{padding:3px 7px;color:var(--t-ink-amber, #805f12);background:var(--t-tint-amber, #fff7df);border-radius:999px;font-size:11px;font-style:normal}.insight-student-status small{padding:3px 7px;background:var(--t-surface-3, #f2f4f7);border-radius:999px}.insight-text-action{color:var(--t-brand-ink, var(--brand-blue));font-size:11px;white-space:nowrap}.insight-text-action.quiet{color:var(--muted)}.insight-detail-panel{min-width:0;padding:20px;background:var(--t-surface-2, #f8f9fc);border:1px solid var(--t-line, #dfe4ef);border-radius:10px}.insight-detail-head{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;padding-bottom:16px;border-bottom:1px solid var(--t-line, #e3e6ed)}.insight-detail-head span,.insight-detail-head small{color:var(--muted);font-size:11px}.insight-detail-head h3{margin:4px 0 0;color:var(--text-h);font-size:18px}.insight-detail-head button{padding:6px 9px;font-size:11px}.insight-detail-summary{display:grid;grid-template-columns:repeat(3,1fr);gap:1px;margin:16px 0;overflow:hidden;background:var(--t-surface-4, #e3e6ed);border:1px solid var(--t-line, #e3e6ed);border-radius:8px}.insight-detail-summary span{display:grid;gap:3px;padding:12px;background:var(--t-surface, #fff)}.insight-detail-summary b{color:var(--t-brand-ink, var(--brand-blue));font-size:18px}.insight-detail-summary small{color:var(--muted);font-size:10px}.insight-detail-section{padding:18px 0 2px;border-top:1px solid var(--t-line, #e3e6ed)}.insight-detail-section:first-of-type{border-top:0}.insight-detail-section h4{margin:0 0 5px;color:var(--text-h);font-size:14px}.insight-detail-section>p{margin:0 0 12px;color:var(--muted);font-size:11px;line-height:1.6}.insight-wide-action{width:100%;margin-top:12px}.insight-diagnosis-line{padding:10px 0;border-bottom:1px solid var(--t-line, #e3e6ed)}.insight-diagnosis-line>div{display:flex;align-items:center;justify-content:space-between;gap:10px}.insight-diagnosis-line>div b{color:var(--text-h);font-size:12px}.insight-diagnosis-line>div span,.insight-diagnosis-line small{font-size:11px}.insight-diagnosis-line p{margin:5px 0 0;color:var(--muted);font-size:11px;line-height:1.55}.insight-diagnosis-person{padding:9px 0}.insight-diagnosis-person>b{color:var(--text-h);font-size:12px}.insight-diagnosis-person .insight-diagnosis-line{padding-top:6px}@media (max-width: 980px){.insight-briefing{grid-template-columns:1fr}.insight-briefing>section+section{border-top:1px solid var(--t-line, #e7e9ef);border-left:0}.insight-master-detail.has-detail{grid-template-columns:1fr}.insight-task-row{grid-template-columns:minmax(200px,1fr) auto}.insight-task-row>button{grid-column:1 / -1;width:max-content}}@media (max-width: 700px){.insight-workspace{padding:18px 14px 30px}.insight-page-head,.insight-panel-head{flex-direction:column}.insight-head-actions{width:100%}.insight-head-actions button{flex:1}.insight-tabs{gap:18px;overflow-x:auto}.insight-panel,.insight-briefing>section{padding:18px 16px}.insight-filter-bar{width:100%;overflow-x:auto}.insight-filter-bar button{flex:0 0 auto}.insight-task-row{grid-template-columns:1fr;gap:12px}.insight-task-row>button{grid-column:auto}.insight-student-row,.insight-knowledge-row{grid-template-columns:1fr;gap:8px}.insight-text-action{margin-top:2px}.insight-detail-summary{grid-template-columns:1fr}}.task-workspace{max-width:1120px}.task-workspace-head{display:flex;align-items:flex-start;justify-content:space-between;gap:24px;padding:16px 0 20px}.task-workspace-head h2{margin:0 0 7px;color:var(--text-h);font-size:26px}.task-page-intro{max-width:720px;margin:0;color:var(--muted);font-size:13px;line-height:1.7}.task-autosave-state{flex:0 0 auto;padding:5px 9px;border-radius:999px;color:var(--t-brand-ink, #49618e);background:var(--t-tint-blue, #edf2fb);font-size:11px}.task-recovery-banner{display:flex;align-items:center;justify-content:space-between;gap:20px;margin-bottom:16px;padding:16px 18px;border:1px solid var(--t-line-amber, #d9c68d);border-left:4px solid var(--brand-gold);border-radius:9px;background:var(--t-tint-amber, #fffdf7)}.task-recovery-banner b{color:var(--text-h)}.task-recovery-banner p{margin:4px 0 0;color:var(--muted);font-size:12px}.task-recovery-banner>div:last-child{display:flex;gap:8px}.task-workspace-tabs{display:flex;gap:28px;margin:8px 0 0;padding:0 2px;border-bottom:1px solid var(--t-line, #dfe2e9)}.task-workspace-tabs button{display:flex;align-items:center;gap:7px;padding:13px 2px 11px;border:0;border-bottom:3px solid transparent;border-radius:0;color:var(--muted);background:transparent;font-weight:600}.task-workspace-tabs button:hover,.task-workspace-tabs button.active{color:var(--t-brand-ink, var(--brand-blue));border-bottom-color:var(--t-brand-ink, var(--brand-blue))}.task-workspace-tabs small{display:inline-flex;min-width:20px;height:20px;align-items:center;justify-content:center;padding:0 6px;border-radius:10px;color:var(--t-text-2, #586174);background:var(--t-surface-3, #e9ecf2);font-size:11px}.task-workspace-tabs button.active small{color:#fff;background:var(--brand-blue)}.task-queue-panel{min-height:280px;padding-top:14px}.task-queue-row{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:24px;align-items:center;margin-bottom:10px;padding:18px 20px;border:1px solid var(--t-line, #e1e4eb);border-radius:10px;background:var(--t-surface, #fff);transition:border-color .18s ease,box-shadow .18s ease}.task-queue-row:hover{border-color:var(--t-line-blue, #bdc9e2);box-shadow:0 6px 18px #162d6e0f}.task-queue-main{min-width:0}.task-queue-title{display:flex;align-items:center;gap:9px;min-width:0}.task-queue-title b{overflow:hidden;color:var(--text-h);font-size:15px;text-overflow:ellipsis;white-space:nowrap}.task-queue-main>p{margin:7px 0;color:var(--muted);font-size:12px}.task-status{flex:0 0 auto;padding:3px 7px;border-radius:4px;color:var(--t-text-2, #4f596d);background:var(--t-surface-3, #eef0f4);font-size:11px;font-weight:600}.task-status-published{color:var(--t-ink-green, #1e5f45);background:var(--t-tint-green, #e8f6ef)}.task-status-draft{color:var(--t-ink-amber, #785b13);background:var(--t-tint-amber, #faf3dd)}.task-status-closed,.task-status-cancelled{color:var(--t-text-2, #626978);background:var(--t-surface-3, #eceef2)}.task-status-feedback{color:var(--t-brand-ink, var(--brand-blue));background:var(--t-tint-blue, #edf2ff)}.task-queue-metrics{display:flex;gap:16px;flex-wrap:wrap;color:var(--t-text-2, #4e5666);font-size:12px}.task-queue-actions{display:flex;align-items:center;justify-content:flex-end;gap:8px}.task-queue-actions details{position:relative}.task-queue-actions summary{padding:8px 4px;color:var(--muted);font-size:12px;cursor:pointer;list-style:none}.task-queue-actions summary::-webkit-details-marker{display:none}.task-queue-actions details[open]>button{position:absolute;z-index:3;right:0;top:34px;width:max-content;min-width:120px;color:var(--t-text, #303746);background:var(--t-surface, #fff);border:1px solid var(--line);box-shadow:var(--shadow-1)}.task-queue-actions details[open]>button.text-danger,button.ghost.danger{color:var(--t-ink-red, #a61d24)}.task-empty-state{display:grid;justify-items:start;gap:8px;min-height:230px;align-content:center;padding:30px;border:1px dashed var(--t-line, #d7dae2);border-radius:10px;color:var(--text-h);background:var(--t-surface-2, #fafbfc)}.task-empty-state p{margin:0;color:var(--muted);font-size:12px}.task-detail,.task-feedback-workspace{display:grid;gap:14px}.task-detail-summary{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));overflow:hidden;border:1px solid var(--t-line, #e0e3ea);border-radius:10px;background:var(--t-surface, #fff)}.task-detail-summary>div{display:grid;gap:7px;padding:18px 20px}.task-detail-summary>div+div{border-left:1px solid var(--t-line, #e7e9ee)}.task-detail-summary span{color:var(--muted);font-size:11px}.task-detail-summary b{color:var(--text-h);font-size:18px}.task-detail-card,.task-feedback-student{padding:20px;border:1px solid var(--t-line, #e0e3ea);border-radius:10px;background:var(--t-surface, #fff)}.task-detail-card>header,.task-feedback-student>header{display:flex;align-items:flex-start;justify-content:space-between;gap:20px;padding-bottom:15px;border-bottom:1px solid var(--t-line, #e8eaf0)}.task-detail-card h3{margin:0 0 5px;color:var(--text-h)}.task-detail-card header p,.task-feedback-student header p{margin:0;color:var(--muted);font-size:12px}.task-feedback-student>.card{margin:14px 0 0;border-color:var(--t-line, #e5e8ef);background:var(--t-surface-2, #fbfcfe)}.task-management-actions{display:flex;gap:8px;flex-wrap:wrap;margin-top:14px;padding-top:14px;border-top:1px solid var(--t-line, #eceef2)}.task-release-state{align-self:center;color:var(--t-ink-green, #28725a);font-size:12px}.task-leave-overlay{position:fixed;z-index:1000;top:0;right:0;bottom:0;left:0;display:grid;place-items:center;padding:20px;background:#0c14286b}.task-leave-dialog{width:min(460px,100%);padding:24px;border-radius:12px;background:var(--t-surface, #fff);box-shadow:0 22px 60px #0c142838}.task-leave-dialog h3{margin:0 0 8px;color:var(--text-h)}.task-leave-dialog p{margin:0 0 20px;color:var(--muted);font-size:13px;line-height:1.65}.task-leave-actions{display:flex;justify-content:flex-end;gap:8px;flex-wrap:wrap}.task-launch-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:0;padding:0;overflow:hidden}.task-launch-option{display:flex;min-width:0;min-height:154px;flex-direction:column;padding:20px}.task-launch-option+.task-launch-option{border-left:1px solid var(--line)}.task-launch-option>b{color:var(--text-h);font-size:15px}.task-launch-option>p{flex:1;margin:7px 0 16px;color:var(--muted);font-size:12px;line-height:1.65}.task-launch-actions{display:flex;gap:8px;flex-wrap:wrap}.task-launch-actions button{white-space:nowrap}.task-composer{margin-top:16px;padding:0;overflow:hidden;border-color:var(--t-line, #d9deea);box-shadow:0 10px 30px #162d6e0f}.task-composer-head{display:flex;align-items:flex-start;justify-content:space-between;gap:20px;padding:22px 24px 20px;background:var(--t-surface-2, #f7f9fd);border-bottom:1px solid var(--line)}.task-composer-head h3{margin:0 0 7px;color:var(--text-h);font-size:20px}.task-composer-head p{max-width:680px;margin:0;color:var(--muted);font-size:13px;line-height:1.65}.task-collapse{flex:0 0 auto}.task-form-section{padding:24px;border-bottom:1px solid var(--t-line, #eceef3)}.task-section-head{display:flex;align-items:flex-start;gap:12px;margin-bottom:18px}.task-section-head>span{display:inline-flex;width:26px;height:26px;flex:0 0 26px;align-items:center;justify-content:center;border-radius:7px;background:var(--brand-blue);color:#fff;font-size:12px;font-weight:700}.task-section-head b{color:var(--text-h);font-size:15px}.task-section-head p{margin:3px 0 0;color:var(--muted);font-size:12px;line-height:1.55}.task-basic-grid{display:grid;grid-template-columns:minmax(260px,2fr) minmax(130px,.7fr) minmax(160px,.85fr);gap:14px}.task-roster-field{grid-column:1 / -1;max-width:560px}.task-field{min-width:0;margin:0;color:var(--t-text-2, #4b5262);font-size:12px;font-weight:600}.task-field>span{color:var(--t-muted, #8b92a1);font-weight:400}.task-field input,.task-field select,.task-field textarea{display:block;margin-top:7px;color:var(--text-h);background:var(--t-surface, #fff);line-height:1.45}.task-field input:focus,.task-field select:focus,.task-field textarea:focus{outline:2px solid rgba(30,58,138,.11);border-color:var(--t-brand-ink, var(--brand-blue-light))}.task-field-note{margin:10px 0 0;color:var(--muted);font-size:12px}.task-roster{margin-top:14px;padding:14px;border:1px solid var(--t-line, #dfe4ef);border-radius:9px;background:var(--t-surface-2, #fafbfe)}.task-roster-head{display:flex;align-items:center;justify-content:space-between;gap:12px}.task-roster-head b{color:var(--text-h);font-size:13px}.task-roster-head span,.task-roster>p{color:var(--muted);font-size:12px}.task-roster>p{margin:4px 0 8px}.task-student-list{display:flex;gap:8px;flex-wrap:wrap}.task-check{display:inline-flex;width:auto;align-items:center;gap:7px;margin:0;padding:7px 10px;border:1px solid var(--line);border-radius:7px;color:var(--text-h);background:var(--t-surface, #fff);cursor:pointer}.task-check input{flex:0 0 auto;margin:0}.task-subsection-label{margin:22px 0 10px;color:var(--text-h);font-size:13px;font-weight:700}.task-schedule-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}.task-rule-grid{display:grid;grid-template-columns:minmax(260px,1fr) minmax(260px,1fr);gap:14px;align-items:stretch}.task-rule-check{display:flex;align-items:flex-start;gap:11px;margin:0;padding:13px 14px;border:1px solid var(--line);border-radius:9px;color:var(--text-h);background:var(--t-surface, #fff);cursor:pointer}.task-rule-check:hover,.task-rule-check.selected{border-color:var(--t-line-blue, #9fb0d8);background:var(--t-surface-2, #f7f9ff)}.task-rule-check input{flex:0 0 auto;margin:3px 0 0}.task-rule-check span{display:grid;gap:3px}.task-rule-check b{font-size:13px}.task-rule-check small{color:var(--muted);font-size:12px;font-weight:400;line-height:1.5}.task-policy-field{padding:0 2px}.task-import-field{max-width:680px;margin-bottom:14px}.task-additional-empty{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:16px;border:1px dashed var(--t-line-strong, #cfd5e2);border-radius:9px;background:var(--t-surface-2, #fafbfe)}.task-additional-empty p{margin:0;color:var(--muted);font-size:12px}.task-item-list{display:grid;gap:14px}.task-item-card{padding:18px;border:1px solid var(--t-line, #dfe3eb);border-radius:10px;background:var(--t-surface-2, #fbfcfe)}.task-item-card .task-field+.task-field{margin-top:14px}.task-item-head{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:14px}.task-item-head>b{color:var(--text-h);font-size:14px}.task-delete-item{padding:5px 9px;color:var(--t-ink-red, #a61d24)}.task-answer-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;margin-top:14px}.task-answer-grid .task-field+.task-field{margin-top:0}.task-add-item{margin-top:14px}.task-composer-actions{display:flex;align-items:center;gap:10px;flex-wrap:wrap;padding:18px 24px;background:var(--t-surface-2, #fbfcff)}.task-composer-actions>span{color:var(--muted);font-size:12px}.task-field.invalid input,.task-field.invalid select,.task-field.invalid textarea{border-color:var(--t-line-red, #f08080);box-shadow:0 0 0 3px #d03b3b1a}.task-field-error{display:block;margin-top:6px;color:var(--bad);font-size:12px;font-weight:500}.task-field-label{display:block;margin:0;color:inherit;font-size:inherit;font-weight:inherit}.task-switch-open{margin-top:8px;padding:5px 12px;font-size:12px}.task-items-error{margin:12px 0 0;padding:10px 12px;background:var(--t-tint-red, #fff5f5);border:1px solid var(--t-line-red, #f5c2c2);border-radius:8px}.task-items-error .task-field-error{margin:0}.task-action-error{margin:0;padding:10px 24px;background:var(--t-tint-red, #fff5f5);border-top:1px solid var(--t-line-red, #f5c2c2)}.task-preview-head{display:flex;align-items:center;justify-content:space-between;gap:10px}.task-preview-revise{padding:3px 10px;color:var(--t-brand-ink, var(--brand-blue));font-size:12px}.task-preview-note{margin:10px 0 0;padding:8px 10px;color:var(--t-ink-amber, #6b5a00);background:var(--gold-tint);border-radius:8px;font-size:12px}.assembly-from-task{display:flex;align-items:center;justify-content:space-between;gap:12px;margin:0 0 12px;padding:10px 14px;color:var(--t-brand-ink, #1e3a8a);background:var(--t-tint-blue, #eef3ff);border:1px solid var(--t-line-blue, #c9d6f2);border-radius:10px;font-size:13px}.assembly-from-task button{flex:0 0 auto;padding:5px 12px;font-size:12px}.task-audience-block{margin-top:14px}.audience,.audience-unavailable{display:grid;gap:10px;padding:14px 16px;background:var(--t-surface-2, #f8faff);border:1px solid var(--t-line, #e1e7f2);border-radius:10px}.task-audience-block.invalid .audience,.task-audience-block.invalid .audience-unavailable{border-color:var(--t-line-red, #f08080);box-shadow:0 0 0 3px #d03b3b14}.task-audience-block .task-field-error{margin-top:0}.audience-head{display:flex;align-items:center;gap:8px}.audience-head b,.audience-summary b{color:var(--t-text, #3d4659);font-size:13px}.audience-head>span{color:var(--t-muted, #8b92a1);font-size:12px}.audience-search{max-width:220px;margin-left:auto;padding:6px 10px;font-size:12px}.audience-classes{display:flex;flex-wrap:wrap;gap:8px;max-height:188px;overflow-y:auto}.audience-class{display:inline-flex;align-items:center;gap:7px;padding:7px 12px;color:var(--t-text, #2b3345);background:var(--t-surface, #fff);border:1px solid var(--t-line, #d5dce8);border-radius:9px;font-size:13px}.audience-class:hover{border-color:var(--t-brand-ink, var(--brand-blue-light))}.audience-class.on{color:var(--t-brand-ink, var(--brand-blue));background:var(--t-tint-blue, #eef3ff);border-color:var(--t-brand-ink, var(--brand-blue))}.audience-box{display:inline-grid;width:16px;height:16px;place-items:center;color:#fff;background:var(--t-surface, #fff);border:1.5px solid var(--t-line-blue, #b8c2d4);border-radius:4px;font-size:11px;font-style:normal;line-height:1}.audience-class.on .audience-box{background:var(--brand-blue);border-color:var(--t-brand-ink, var(--brand-blue))}.audience-class small{color:var(--t-muted, #8a91a1);font-size:11px}.audience-class em{padding:0 5px;color:var(--t-ink-amber, #8a5a00);background:var(--gold-tint);border-radius:4px;font-size:10px;font-style:normal}.audience-empty{margin:4px 0;color:var(--muted);font-size:12px}.audience-students{display:grid;gap:10px;padding-top:10px;border-top:1px dashed var(--t-line, #d7deea)}.audience-summary{display:flex;align-items:center;flex-wrap:wrap;gap:8px;color:var(--t-text-2, #4b5468);font-size:12px}.audience-summary strong{color:var(--t-brand-ink, var(--brand-blue));font-size:14px}.audience-expand{margin-left:auto;padding:4px 12px;font-size:12px}.audience-roster{display:grid;gap:10px}.audience-group{padding:10px 12px;background:var(--t-surface, #fff);border:1px solid var(--t-line, #e6ebf3);border-radius:9px}.audience-group header{display:flex;align-items:center;gap:8px;margin-bottom:8px}.audience-group header b{font-size:13px}.audience-group header small{color:var(--t-muted, #8a91a1);font-size:12px}.audience-link{padding:0 2px;color:var(--t-brand-ink, var(--brand-blue));background:none;font-size:12px}.audience-group header .audience-link:first-of-type{margin-left:auto}.audience-people{display:grid;grid-template-columns:repeat(auto-fill,minmax(112px,1fr));gap:6px}.audience-person{display:flex;align-items:center;gap:6px;margin:0;padding:5px 8px;color:var(--t-text, #3d4659);border:1px solid var(--t-line, #e6ebf3);border-radius:7px;font-size:12px;cursor:pointer}.audience-person.on{color:var(--text-h);background:var(--t-tint-blue, #f3f6ff);border-color:var(--t-line-blue, #c9d6f2)}.audience-person:not(.on) span{color:var(--t-muted, #8a91a1);text-decoration:line-through}.audience-unavailable b{font-size:13px}.audience-unavailable span{color:var(--muted);font-size:12px;line-height:1.6}.audience-unavailable button{justify-self:start;padding:5px 12px;font-size:12px}.task-student-preview{margin:0 24px 22px}.task-student-preview summary{color:var(--t-brand-ink, var(--brand-blue));font-size:13px;font-weight:600;cursor:pointer}.task-student-preview>.card{margin:10px 0 0;background:var(--t-surface-2, #fafafa)}@media (max-width: 760px){.task-workspace-head,.task-recovery-banner{align-items:stretch;flex-direction:column}.task-workspace-head button{width:100%}.task-recovery-banner>div:last-child{flex-direction:column}.task-workspace-tabs{gap:20px;overflow-x:auto}.task-workspace-tabs button{flex:0 0 auto}.task-queue-row{grid-template-columns:1fr;gap:14px}.task-queue-actions{justify-content:flex-start;flex-wrap:wrap}.task-detail-summary{grid-template-columns:1fr}.task-detail-summary>div+div{border-top:1px solid var(--t-line, #e7e9ee);border-left:0}.task-detail-card>header{flex-direction:column}.task-leave-actions{align-items:stretch;flex-direction:column}.task-launch-grid{grid-template-columns:1fr}.task-launch-option{min-height:auto}.task-launch-option+.task-launch-option{border-left:0;border-top:1px solid var(--line)}.task-composer-head,.task-form-section{padding:18px}.task-composer-head{gap:12px}.task-composer-head h3{font-size:18px}.task-basic-grid,.task-schedule-grid,.task-rule-grid,.task-answer-grid{grid-template-columns:1fr}.task-roster-field{grid-column:auto;max-width:none}.task-additional-empty{align-items:flex-start;flex-direction:column}.task-composer-actions{align-items:stretch;flex-direction:column;padding:16px 18px}.task-composer-actions button{width:100%}.task-student-preview{margin:0 18px 18px}.insight-overview-grid,.insight-module-grid{grid-template-columns:1fr}.insight-section-heading{flex-direction:column}.insight-section-heading button{width:100%}.insight-code-row{gap:8px}}.top-progress{position:fixed;top:0;left:0;right:0;height:3px;z-index:2000;pointer-events:none;overflow:hidden}.top-progress-bar{height:100%;width:40%;background:var(--brand-gold, #C9A84C);box-shadow:0 0 6px #c9a84c8c;border-radius:0 2px 2px 0;animation:top-progress-slide 1.1s ease-in-out infinite}@keyframes top-progress-slide{0%{transform:translate(-110%)}to{transform:translate(330%)}}@media (prefers-reduced-motion: reduce){.top-progress-bar{animation-duration:2.4s}}.inline-loading{display:flex;align-items:center;gap:8px;color:var(--muted);font-size:13px;padding:6px 0}.scope-bar{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap;margin-bottom:14px}.scope-tabs{display:flex;gap:8px;flex-wrap:wrap}.scope-tab{display:inline-flex;align-items:baseline;gap:6px;padding:8px 14px;color:var(--t-text, #3d4659);background:var(--t-surface, #fff);border:1px solid var(--t-line, #d9e0ec);border-radius:999px;font-size:13px}.scope-tab b{color:var(--text-h);font-weight:700}.scope-tab:hover{border-color:var(--t-brand-ink, var(--brand-blue))}.scope-tab.active{color:#fff;background:var(--brand-blue);border-color:var(--t-brand-ink, var(--brand-blue));box-shadow:0 4px 12px #1e3a8a2e}.scope-tab.active b{color:#fff}.scope-hint{color:var(--muted);font-size:12px}.scope-card{padding-bottom:6px}.scope-card .scope-bar{margin-bottom:10px}.scope-empty{display:grid;gap:6px;margin-bottom:14px;padding:18px 20px;background:var(--t-tint-amber, #fffaf0);border:1px solid var(--t-line-amber, #f0dfb5);border-radius:10px}.scope-empty b{color:var(--t-ink-amber, #6b4e10)}.scope-empty span{color:var(--t-ink-amber, #7a6a48);font-size:13px;line-height:1.6}.concept-picker{margin-bottom:12px;padding:12px 14px;background:var(--t-surface-2, #f8faff);border:1px solid var(--t-line, #e1e7f2);border-radius:10px}.concept-picker-head{display:flex;align-items:baseline;justify-content:space-between;gap:10px;margin-bottom:8px}.concept-picker-head span{color:var(--t-brand-ink, var(--brand-blue));font-size:12px;font-weight:700;letter-spacing:.04em}.concept-picker-head small{color:var(--muted);font-size:11px}.concept-groups{display:flex;align-items:flex-start;gap:10px;flex-wrap:wrap;max-height:236px;overflow:auto}.concept-topic{display:grid;gap:4px}.concept-topic>small{color:var(--t-muted, #7b8496);font-size:10px;font-weight:600}.concept-topic>div{display:flex;gap:6px;flex-wrap:wrap}.concept-chip{display:inline-flex;max-width:280px;align-items:baseline;gap:5px;padding:5px 10px;color:var(--t-text, #3d4659);background:var(--t-surface, #fff);border:1px solid var(--t-line, #dde3ee);border-radius:7px;font-size:12px}.concept-chip b{flex:0 0 auto;color:var(--t-brand-ink, var(--brand-blue))}.concept-chip span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.concept-chip:hover{border-color:var(--t-brand-ink, var(--brand-blue))}.concept-chip.active{color:#fff;background:var(--brand-blue);border-color:var(--t-brand-ink, var(--brand-blue))}.concept-chip.active b{color:var(--brand-gold)}.concept-codes{margin-top:10px;padding-top:10px;border-top:1px dashed var(--t-line, #d7deea)}.concept-codes>small{display:block;margin-bottom:6px;color:var(--muted);font-size:11px}.concept-codes>div{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:6px}.concept-code{display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:7px;padding:6px 9px;color:var(--t-text, #364057);text-align:left;background:var(--t-surface, #fff);border:1px solid var(--t-line, #e0e5ee);border-radius:7px;font-size:12px}.concept-code b{color:var(--t-brand-ink, var(--brand-blue));font-size:11px}.concept-code span{overflow:hidden;color:var(--t-text-2, #4a5468);text-overflow:ellipsis;white-space:nowrap}.concept-code em,.plan-codes em{padding:1px 6px;color:var(--t-ink-amber, #8a5a00);background:var(--gold-tint);border-radius:999px;font-size:10px;font-style:normal;white-space:nowrap}.concept-code.active{background:var(--t-tint-blue, #eef3ff);border-color:var(--t-brand-ink, var(--brand-blue))}.assembly-onboard-main{display:flex;min-width:0;flex-direction:column;gap:14px}.assembly-onboard-main .assembly-start-card{min-height:0}.assembly-public-tabs{display:flex;gap:6px}.assembly-public-tabs button{padding:6px 12px;color:var(--t-text-2, #4a5468);background:var(--t-surface-3, #f1f4f9);border:1px solid transparent;border-radius:999px;font-size:12px;white-space:nowrap}.assembly-public-tabs button.active{color:var(--t-brand-ink, var(--brand-blue));background:var(--t-surface, #fff);border-color:var(--t-brand-ink, var(--brand-blue))}.assembly-public-note{margin:12px 0 4px;color:var(--muted);font-size:12px;line-height:1.6}.assembly-drafts-head>.ghost{padding:6px 10px;font-size:12px}.assembly-drafts-empty span{line-height:1.7}.assembly-public-panel .assembly-drafts-empty{gap:10px;padding:18px}.public-paper-list{display:grid;gap:8px;padding-top:10px}.public-paper{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:12px 14px;background:var(--t-surface, #fff);border:1px solid var(--t-line, #e0e5ed);border-radius:10px}.public-paper>div:first-child{display:grid;min-width:0;gap:3px}.public-paper b{overflow:hidden;color:var(--text-h);font-size:14px;text-overflow:ellipsis;white-space:nowrap}.public-paper small{color:var(--muted);font-size:12px}.public-paper-actions{display:flex;flex:0 0 auto;gap:6px}.public-paper-actions button{padding:6px 12px;font-size:12px}.asset-preview-item{display:grid;grid-template-columns:28px minmax(0,1fr);gap:10px;align-items:flex-start}.asset-preview-item .assembly-ordinal{margin-top:14px}.finish-dialog>p{margin:0 0 14px;color:var(--t-text, #3d4659);line-height:1.7}.finish-option{display:flex;gap:12px;align-items:flex-start;margin:0 0 10px;padding:14px 16px;color:inherit;background:var(--t-surface, #fff);border:1px solid var(--t-line, #dde3ee);border-radius:10px;cursor:pointer}.finish-option input{width:auto;margin-top:3px}.finish-option span{display:grid;gap:4px}.finish-option b{color:var(--text-h);font-size:14px}.finish-option small{color:var(--muted);font-size:12px;line-height:1.6}.finish-option.active{background:var(--t-surface-2, #f5f8ff);border-color:var(--t-brand-ink, var(--brand-blue));box-shadow:0 0 0 3px #1e3a8a14}.finish-actions{display:flex;justify-content:flex-end;gap:8px;flex-wrap:wrap;margin-top:16px}.assets-head{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;margin-bottom:14px}.assets-head h2{margin:0 0 6px}.assets-head p{max-width:680px;margin:0;color:var(--muted);font-size:13px;line-height:1.6}.assets-toolbar{display:flex;align-items:flex-end;justify-content:space-between;gap:12px;flex-wrap:wrap}.assets-toolbar .insight-tabs{flex:1 1 auto}.assets-scope-filter{display:flex;gap:6px;flex-wrap:wrap;margin-bottom:18px}.assets-scope-filter button{padding:6px 12px;color:var(--t-text-2, #4a5468);background:var(--t-surface, #fff);border:1px solid var(--t-line, #dde3ee);border-radius:999px;font-size:12px}.assets-scope-filter button.active{color:#fff;background:var(--brand-blue);border-color:var(--t-brand-ink, var(--brand-blue))}.assets-empty{display:grid;gap:6px;place-items:center;padding:48px 20px;color:var(--muted);text-align:center;background:var(--t-surface, #fff);border:1px dashed var(--t-line, #d4dce8);border-radius:12px}.assets-empty b{color:var(--text-h)}.assets-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(320px,1fr));gap:12px}.asset-card{display:grid;gap:10px;padding:16px;background:var(--t-surface, #fff);border:1px solid var(--t-line, #dce3ee);border-radius:12px;box-shadow:0 6px 16px #162d6e09}.asset-card-head{display:flex;align-items:flex-start;justify-content:space-between;gap:10px}.asset-card-head b{min-width:0;overflow:hidden;color:var(--text-h);font-size:15px;text-overflow:ellipsis;white-space:nowrap}.asset-status{flex:0 0 auto;padding:2px 9px;border-radius:999px;font-size:11px;font-weight:600}.asset-status.draft{color:var(--t-text-2, #6b7385);background:var(--t-surface-3, #f0f2f6)}.asset-status.ready{color:var(--t-ink-green, #1f6b3a);background:var(--t-tint-green, #e8f6ec)}.asset-meta{display:flex;align-items:center;gap:6px 12px;flex-wrap:wrap;color:var(--muted);font-size:12px}.asset-actions{display:flex;gap:6px;flex-wrap:wrap}.asset-actions button{padding:6px 11px;font-size:12px}.asset-actions .asset-delete{color:var(--t-ink-red, #b91c1c)}.dash{display:flex;flex-direction:column;gap:12px;max-width:1440px;height:calc(100vh - 136px);min-height:460px;margin:0 auto}.dash-head{display:flex;flex:0 0 auto;flex-wrap:wrap;align-items:center;gap:10px 20px}.dash-hello{display:flex;align-items:baseline;gap:12px;min-width:0}.dash-hello h2{margin:0;font-size:20px;white-space:nowrap}.dash-hello span{color:var(--muted);font-size:13px;white-space:nowrap}.dash-courses{display:flex;flex:1 1 auto;flex-wrap:wrap;gap:6px;max-width:100%;margin:0;padding:0;list-style:none}.dash-courses li{display:inline-flex;align-items:center;gap:6px;padding:3px 10px;color:var(--t-text, #2b3345);background:var(--t-surface, #fff);border:1px solid var(--t-line, #dfe4ef);border-radius:999px;font-size:12px;white-space:nowrap}.dash-courses em,.dash-course-tag em,.cal-dots em,.cal-lesson-dots em,.tt-course em{display:inline-block;flex:0 0 auto;width:8px;height:8px;border-radius:50%}.dash-head-actions{display:flex;gap:8px;margin-left:auto}.dash-head-actions button{padding:7px 14px;white-space:nowrap}.dash-body{display:grid;flex:1;grid-template-columns:clamp(280px,var(--cal-w, clamp(300px, 29%, 380px)),calc(100% - 574px)) 14px minmax(0,1fr);min-height:0}.dash-body.expanded{grid-template-columns:minmax(0,1fr)}.dash-side{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));grid-template-rows:repeat(2,minmax(0,1fr));gap:14px;min-height:0}.dash-card{display:flex;flex-direction:column;min-width:0;min-height:0;padding:14px 16px;background:var(--t-surface, #fff);border:1px solid var(--t-line, #dfe4ef);border-radius:12px;box-shadow:0 8px 22px #162d6e0a}.dash-card-head{display:flex;flex:0 0 auto;align-items:center;justify-content:space-between;gap:10px;margin-bottom:10px}.dash-card-head h3{display:flex;align-items:center;gap:8px;margin:0;font-size:15px;white-space:nowrap}.dash-count{min-width:22px;padding:1px 7px;color:var(--t-brand-ink, var(--brand-blue));background:var(--t-tint-blue, #eef2fb);border-radius:999px;font-size:12px;text-align:center}.dash-count.alert{color:#fff;background:#d03b3b}.dash-row.risk{border-color:var(--t-line-amber, #f1c99b);background:var(--t-tint-amber, #fffaf3)}.dash-risk{margin-left:6px;padding:1px 6px;color:var(--t-ink-red, #9a3412);background:var(--t-tint-amber, #fff1e6);border-radius:999px;font-size:10px;font-style:normal;font-weight:600;vertical-align:1px}.dash-row.dash-chat-row{gap:10px}.dash-chat-row .chat-thread-main b{font-size:13px}.dash-link{padding:2px 4px;color:var(--t-brand-ink, var(--brand-blue));background:none;font-size:12px;white-space:nowrap}.dash-link:hover{text-decoration:underline}.dash-list{display:flex;flex:1;flex-direction:column;gap:6px;min-height:0;overflow:hidden}.dash-row{display:flex;flex:0 0 auto;align-items:center;gap:10px;width:100%;height:50px;padding:0 12px;color:inherit;text-align:left;background:var(--t-surface, #fff);border:1px solid var(--t-line, #e7ebf2);border-radius:9px}.dash-row:hover{background:var(--t-surface-2, #fbfcff);border-color:var(--t-line-blue, #c4d0ea)}.dash-row-main{display:grid;flex:1;gap:3px;min-width:0}.dash-row-main b{overflow:hidden;color:var(--text-h);font-size:13px;text-overflow:ellipsis;white-space:nowrap}.dash-row-main small{display:flex;align-items:center;gap:8px;overflow:hidden;color:var(--muted);font-size:12px;white-space:nowrap}.dash-progress{display:inline-block;flex:0 0 56px;height:4px;overflow:hidden;background:var(--t-surface-3, #edf0f5);border-radius:999px}.dash-progress em{display:block;height:100%;background:var(--brand-blue);border-radius:999px}.dash-course-tag{display:inline-flex;flex:0 0 auto;align-items:center;gap:5px;padding:2px 8px;color:var(--t-text, #3d4659);background:var(--t-surface-2, #f4f6fa);border-radius:999px;font-size:11px;white-space:nowrap}.dash-date{display:grid;flex:0 0 36px;place-items:center;padding:3px 0;color:var(--t-brand-ink, var(--brand-blue));background:var(--t-surface-2, #f2f5fc);border-radius:7px;line-height:1.15}.dash-date b{font-size:15px}.dash-date small{color:var(--t-muted, #6f7891);font-size:10px}.dash-code{flex:0 0 auto;padding:2px 7px;color:var(--t-ink-amber, #8a5a00);background:var(--gold-tint);border-radius:6px;font-size:11px;font-weight:700}.dash-more{flex:0 0 auto;height:26px;padding:0 10px;color:var(--t-brand-ink, var(--brand-blue));text-align:left;background:var(--t-surface-2, #f4f7fd);border-radius:8px;font-size:12px}.dash-more:hover{background:var(--t-tint-blue, #eaf0fb)}.dash-quiet{margin:0;padding:12px;color:var(--muted);background:var(--t-surface-2, #fafbfd);border-radius:8px;font-size:12px;line-height:1.6}.dash-skeleton{flex:0 0 auto;height:64px;background:linear-gradient(90deg,var(--t-surface-3, #f1f3f7) 25%,var(--t-surface-2, #f8f9fb) 37%,var(--t-surface-3, #f1f3f7) 63%);background-size:400% 100%;border-radius:8px;animation:dash-shimmer 1.4s ease infinite}@keyframes dash-shimmer{0%{background-position:100% 50%}to{background-position:0 50%}}.dash-load{display:grid;gap:12px;place-items:center;padding:60px 20px;background:var(--t-surface, #fff);border:1px solid var(--t-line, #dfe4ef);border-radius:12px}.cal{gap:10px}.cal-head{display:flex;flex:0 0 auto;align-items:center;justify-content:space-between;gap:10px}.cal-head h3{margin:0;font-size:15px;white-space:nowrap}.cal-view-week .cal-head .cal-tools,.cal-view-month .cal-head .cal-tools{margin-left:auto}.cal-tools{display:flex;align-items:center;gap:6px}.cal-switch{display:inline-flex;padding:2px;background:var(--t-surface-3, #f1f4f9);border-radius:8px}.cal-switch button{padding:3px 11px;color:var(--t-text-2, #4b5468);background:transparent;border-radius:6px;font-size:12px}.cal-switch button.active{color:var(--t-brand-ink, var(--brand-blue));background:var(--t-surface, #fff);box-shadow:0 1px 3px #162d6e24;font-weight:600}.cal-tool{padding:3px 10px;font-size:12px}.cal-nav{display:flex;flex:0 0 auto;align-items:center;gap:4px}.cal-nav>button{padding:2px 9px;font-size:13px}.cal-nav b{padding:0 6px;font-size:13px;white-space:nowrap}.cal-view-day .cal-nav b{flex:1;text-align:center}.cal-today.is-hidden{visibility:hidden}.cal-strip{display:grid;flex:0 0 auto;grid-template-columns:repeat(7,minmax(0,1fr));gap:2px}.cal-strip-day{display:grid;justify-items:center;gap:1px;padding:4px 0 3px;color:var(--t-text, #2b3345);background:transparent;border-radius:8px}.cal-strip-day:hover{background:var(--t-surface-2, #f4f7fd)}.cal-strip-day small{color:var(--t-muted, #8a91a1);font-size:10px}.cal-strip-day b{display:grid;width:26px;height:26px;place-items:center;border-radius:50%;font-size:13px}.cal-strip-day.today b{color:var(--t-brand-ink, var(--brand-blue));box-shadow:inset 0 0 0 1.5px var(--brand-blue)}.cal-strip-day.selected b{color:#fff;background:var(--brand-blue);box-shadow:none}.cal-dots{display:flex;gap:2px;height:5px}.cal-dots em{width:5px;height:5px}.cal-agenda{display:flex;flex:1;flex-direction:column;gap:6px;min-height:0;padding-top:8px;overflow-y:auto;border-top:1px solid var(--t-line, #edf0f5)}.cal-agenda .dash-skeleton{height:76px}.cal-agenda .cal-chip{height:26px}.cal-day-insert{display:flex;flex:0 0 auto;align-items:center;justify-content:center;gap:6px;width:100%;padding:7px 12px;overflow:hidden;color:var(--t-brand-ink, var(--brand-blue));white-space:nowrap;background:var(--t-surface, #fff);border:1px dashed var(--t-line-blue, #c9d4ea);border-radius:999px;font-size:11px}.cal-day-insert:hover{background:var(--t-tint-blue, #f3f7ff)}.cal-day-insert span{font-weight:600}.cal-day-insert small{overflow:hidden;color:var(--t-text-2, #5d6578);text-overflow:ellipsis}.cal-quiet{flex:0 0 auto;margin:0;padding:10px 12px;color:var(--muted);background:var(--t-surface-2, #fafbfd);border-radius:8px;font-size:12px}.cal-prompt{display:grid;flex:0 0 auto;gap:6px;padding:14px;background:linear-gradient(180deg,var(--t-surface-2, #f7f9ff),var(--t-surface, #fff));border:1px dashed var(--t-line-blue, #c9d4ea);border-radius:10px}.cal-prompt b{font-size:13px}.cal-prompt span{color:var(--muted);font-size:12px;line-height:1.6}.cal-prompt button{justify-self:start;padding:6px 14px;font-size:12px}.cal-time{--axis: 50px;display:flex;flex:1;flex-direction:column;min-height:0;overflow:hidden;border:1px solid var(--t-line, #e9edf4);border-radius:10px}.cal-time.detailed{--axis: 44px}.cal-time-row{display:grid;grid-template-columns:var(--axis) repeat(var(--cols, 1),minmax(0,1fr))}.cal-time-days{flex:0 0 auto;border-bottom:1px solid var(--t-line, #e9edf4)}.cal-time-days button{display:flex;align-items:center;justify-content:center;gap:6px;padding:6px 4px;color:var(--t-text, #2b3345);background:transparent;border-left:1px solid var(--t-line, #e9edf4);border-radius:0}.cal-time-days button:hover{background:var(--t-surface-2, #f7f9fd)}.cal-time-days small{color:var(--t-muted, #8a91a1);font-size:11px}.cal-time-days b{display:inline-grid;min-width:24px;height:24px;place-items:center;border-radius:50%;font-size:13px}.cal-time-days .today b{color:#fff;background:var(--brand-blue)}.cal-time-tasks{flex:0 0 auto;border-bottom:1px solid var(--t-line, #e9edf4)}.cal-time-tasks.expanded{max-height:45%;overflow-y:auto}.cal-time-tasks.expanded .cal-time-cell{overflow:visible}.cal-time.no-timetable .cal-time-tasks{flex:1;min-height:0;border-bottom:0}.cal-axis-label{padding:7px 8px 0 0;color:var(--t-muted, #8a91a1);font-size:11px;text-align:right}.cal-time-cell{display:flex;flex-direction:column;gap:3px;min-width:0;padding:4px;overflow:hidden;border-left:1px solid var(--t-line, #e9edf4)}.cal-time-cell.today,.cal-time-col.today{background:var(--t-surface-2, #f8faff)}.cal-time-none{padding:3px 2px;color:var(--t-muted, #8a91a1);font-size:11px}.cal-time-body{position:relative;flex:1;min-height:0;isolation:isolate}.cal-time-axis{position:relative}.cal-time-axis span{position:absolute;right:7px;padding-top:2px;color:var(--t-muted, #8a91a1);font-size:10px;font-variant-numeric:tabular-nums;line-height:1.2}.cal-time-col{position:relative;min-width:0;border-left:1px solid var(--t-line, #e9edf4)}.cal-time-lines{position:absolute;top:0;right:0;bottom:0;left:0;z-index:1;pointer-events:none}.cal-time-lines i{position:absolute;right:0;left:0;border-top:1px solid var(--t-line, #e9edf4)}.cal-time-lines i.half{border-top-style:dashed;opacity:.6}.cal-block{position:absolute;z-index:2;display:flex;flex-flow:column wrap;align-content:flex-start;gap:1px 12px;padding:2px 6px;overflow:hidden;color:var(--text-h);text-align:left;border:0;border-left:3px solid var(--c);border-radius:6px;line-height:1.2}button.cal-block:hover{box-shadow:0 2px 8px #162d6e24}.cal-block.now{box-shadow:inset 0 0 0 1.5px var(--c)}.cal-block.past{color:var(--t-text-2, #6b7385);border-left-color:color-mix(in srgb,var(--c) 45%,transparent)}.cal-block>*{width:100%}.cal-block-head{display:flex;flex:0 0 auto;align-items:center;gap:6px;min-width:0}.cal-block b{overflow:hidden;font-size:12px;text-overflow:ellipsis;white-space:nowrap}.cal-block small{flex:0 0 auto;overflow:hidden;color:var(--t-text-2, #4b5468);font-size:11px;text-overflow:ellipsis;white-space:nowrap}.cal-time:not(.detailed) .cal-block small{font-size:10px}.cal-block .cal-state{font-style:normal}.cal-now{position:absolute;right:0;left:0;z-index:3;border-top:2px solid #d03b3b;pointer-events:none}.cal-now:before{content:"";position:absolute;top:-5px;left:-4px;width:8px;height:8px;background:#d03b3b;border-radius:50%}.cal-gap{position:absolute;right:3px;left:3px;z-index:1}.cal-gap:hover,.cal-gap:focus-within{z-index:4}.cal-slot{position:absolute;right:0;left:0;display:flex;flex-wrap:wrap;align-content:flex-start;align-items:baseline;gap:0 6px;min-height:8px;padding:3px 8px;overflow:hidden;color:var(--t-brand-ink, var(--brand-blue));text-align:left;white-space:nowrap;background:var(--t-tint-blue, #f3f7ff);border:1.5px dashed var(--t-brand-ink, var(--brand-blue));border-radius:6px;font-size:11px;line-height:1.3;opacity:0;pointer-events:none}.cal-gap:hover .cal-slot,.cal-slot:focus-visible{opacity:1;pointer-events:auto}.cal-slot:hover{box-shadow:0 2px 8px #162d6e29}.cal-slot span{font-weight:600}.cal-slot small{overflow:hidden;color:var(--t-text-2, #5d6578);text-overflow:ellipsis}@media (hover: none){.cal-slot{opacity:.85;pointer-events:auto}}.cal-time-free{position:absolute;top:0;right:0;bottom:0;left:0;z-index:2;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:8px;padding:12px;pointer-events:none}.cal-time-free span{color:var(--t-muted, #8a91a1);font-size:12px}.cal-time-empty{display:flex;flex:0 0 auto;align-items:center;justify-content:center;gap:12px;padding:12px;color:var(--muted);background:var(--t-surface-2, #fafbfd);border-top:1px solid var(--t-line, #e9edf4);font-size:12px}.cal-time-empty button{padding:5px 12px;font-size:12px}.cal-chip{display:flex;flex:0 0 auto;align-items:center;gap:4px;width:100%;height:22px;padding:0 6px;overflow:hidden;color:var(--text-h);text-align:left;border:1px solid transparent;border-left:3px solid;border-radius:5px;font-size:11px}.cal-chip:hover{box-shadow:0 1px 4px #162d6e29}.cal-chip.planned{border-color:var(--t-line, #d4dbe8);border-style:dashed;border-left-style:solid}.cal-chip em{flex:0 0 auto;color:var(--t-text-2, #5d6578);font-style:normal}.cal-chip.review em{color:var(--t-ink-red, #9a3412);font-weight:700}.cal-chip span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.cal-chip small{flex:0 0 auto;margin-left:auto;padding-left:6px;color:var(--t-muted, #8a91a1);font-size:10px;font-variant-numeric:tabular-nums}.cal-more{flex:0 0 auto;height:22px;padding:0 6px;color:var(--t-brand-ink, var(--brand-blue));text-align:left;background:transparent;font-size:11px}.cal-more:hover{text-decoration:underline}.cal-month{display:flex;flex:1;flex-direction:column;gap:4px;min-height:0}.cal-month-head{display:grid;flex:0 0 auto;grid-template-columns:repeat(7,minmax(0,1fr));gap:4px}.cal-month-head span{padding:0 6px;color:var(--t-muted, #8a91a1);font-size:11px}.cal-month-grid{display:grid;flex:1;grid-template-columns:repeat(7,minmax(0,1fr));gap:4px;min-height:0}.cal-month-cell{display:flex;flex-direction:column;gap:3px;min-width:0;min-height:0;padding:4px 5px;overflow:hidden;background:var(--t-surface-2, #fafbfd);border:1px solid transparent;border-radius:8px;cursor:pointer}.cal-month-cell:hover{border-color:var(--t-line-blue, #c9d4ea)}.cal-month-cell.muted{background:transparent}.cal-month-cell.today{background:var(--t-tint-blue, #f3f7ff);border-color:var(--t-line-blue, #c9d6f2)}.cal-month-top{display:flex;flex:0 0 auto;align-items:center;justify-content:space-between;height:22px}.cal-month-date{display:grid;min-width:22px;height:22px;padding:0 4px;place-items:center;color:var(--t-text, #2b3345);background:transparent;border-radius:999px;font-size:12px;font-weight:600}.cal-month-cell.muted .cal-month-date{color:var(--t-muted, #b6bcc8)}.cal-month-cell.today .cal-month-date{color:#fff;background:var(--brand-blue)}.cal-lesson-dots{display:flex;gap:3px;padding-right:2px}.cal-lesson-dots em{width:6px;height:6px}.resize-handle{position:relative;touch-action:none;outline:none}.resize-handle.x{cursor:col-resize}.resize-handle.y{cursor:row-resize}.resize-handle>i{position:absolute;top:50%;left:50%;background:var(--t-line-strong, #c3cad8);border-radius:999px;transform:translate(-50%,-50%);transition:background-color .15s}.resize-handle.x>i{width:4px;height:36px}.resize-handle.y>i{width:36px;height:4px}.resize-handle:hover>i,.resize-handle:focus-visible>i,html.resizing-x .resize-handle.x>i,html.resizing-y .resize-handle.y>i{background:var(--brand-blue)}.resize-handle:focus-visible{box-shadow:inset 0 0 0 2px var(--t-line-blue, #a9bce4);border-radius:6px}html.resizing-x,html.resizing-x *{cursor:col-resize!important;-webkit-user-select:none!important;user-select:none!important}html.resizing-y,html.resizing-y *{cursor:row-resize!important;-webkit-user-select:none!important;user-select:none!important}.dash-divider:before{content:"";position:absolute;top:8px;bottom:8px;left:50%;border-left:2px solid transparent;transform:translate(-50%);transition:border-color .15s}.dash-divider:hover:before,html.resizing-x .dash-divider:before{border-left-color:color-mix(in srgb,var(--brand-blue) 35%,transparent)}.header-icon-btn,.chat-header-btn{position:relative;display:grid;width:34px;height:34px;place-items:center;padding:0;color:var(--t-text-2, #4b5468);background:transparent;border-radius:50%;font-size:17px}.header-icon-btn:hover,.header-icon-btn.ant-dropdown-open,.chat-header-btn:hover,.chat-header-btn.active{color:var(--t-brand-ink, var(--brand-blue));background:var(--t-tint-blue, #eef2fb)}.chat-badge{display:inline-grid;min-width:18px;height:18px;padding:0 5px;place-items:center;color:#fff;background:#d03b3b;border-radius:999px;font-size:10px;font-style:normal;font-weight:700;line-height:1}.chat-header-btn .chat-badge{position:absolute;top:-2px;right:-4px;box-shadow:0 0 0 2px var(--t-surface, #fff)}.chat-avatar{display:inline-grid;flex:0 0 auto;place-items:center;color:#fff;border-radius:50%;font-weight:600;line-height:1;-webkit-user-select:none;user-select:none}.chat-avatar.team{border-radius:10px}.chat-panel{position:fixed;top:68px;right:16px;z-index:95;display:flex;flex-direction:column;width:min(var(--chat-w, 380px),calc(100vw - 32px));height:min(var(--chat-h, 100vh),calc(100vh - 84px));overflow:hidden;background:var(--t-surface, #fff);border:1px solid var(--t-line, #dfe4ef);border-radius:14px;box-shadow:0 18px 48px #162d6e38;animation:chat-in .18s ease-out}@keyframes chat-in{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}.chat-panel-head{display:flex;flex:0 0 auto;align-items:center;gap:10px;padding:12px 12px 12px 16px;border-bottom:1px solid var(--t-line, #edf0f5)}.chat-panel-title{display:grid;flex:1;gap:1px;min-width:0}.chat-panel-title b{overflow:hidden;font-size:15px;text-overflow:ellipsis;white-space:nowrap}.chat-panel-title small{color:var(--muted);font-size:11px}.chat-icon-btn{display:grid;flex:0 0 auto;width:28px;height:28px;place-items:center;padding:0;color:var(--t-text-2, #5d6578);background:transparent;border-radius:8px;font-size:18px;line-height:1}.chat-icon-btn:hover{color:var(--t-brand-ink, var(--brand-blue));background:var(--t-surface-3, #f1f4f9)}.chat-new-btn{flex:0 0 auto;padding:5px 10px;font-size:12px}.chat-search{flex:0 0 auto;padding:10px 14px 6px}.chat-search input{padding:7px 10px;background:var(--t-surface-2, #f6f8fb);border-color:var(--t-line, #e3e8f0);font-size:13px}.chat-thread-list{flex:1;min-height:0;padding:4px 8px 10px;overflow-y:auto}.chat-section{margin:10px 8px 4px;color:var(--t-muted, #8a91a1);font-size:11px;font-weight:600}.chat-empty{margin:16px 10px;color:var(--muted);font-size:12px;line-height:1.6;text-align:center}.chat-error{flex:0 0 auto;margin:0;padding:6px 14px;color:var(--bad);background:var(--t-tint-red, #fff5f5);font-size:12px}.chat-tabs{display:flex;flex:0 0 auto;gap:4px;margin:10px 14px 0;padding:3px;background:var(--t-surface-3, #f1f3f7);border-radius:10px}.chat-tab{display:inline-flex;flex:1;align-items:center;justify-content:center;gap:6px;padding:6px 10px;color:var(--t-text-2, #5d6578);background:transparent;border-radius:8px;font-size:13px;font-weight:500}.chat-tab:hover{color:var(--t-text, #1f2330)}.chat-tab.active{color:var(--t-brand-ink, var(--brand-blue));background:var(--t-surface, #fff);box-shadow:0 1px 3px #162d6e1f;font-weight:600}.chat-chips{display:flex;flex:0 0 auto;flex-wrap:wrap;gap:6px;padding:2px 14px 6px}.chat-chip{display:inline-flex;align-items:center;gap:5px;padding:3px 10px;color:var(--t-text-2, #4b5468);background:var(--t-surface, #fff);border:1px solid var(--t-line, #dfe4ef);border-radius:999px;font-size:12px}.chat-chip small{color:var(--t-muted, #8a91a1);font-size:11px}.chat-chip:hover{border-color:var(--t-line-blue, #c9d4ea)}.chat-chip.active{color:#fff;background:var(--brand-blue);border-color:var(--brand-blue)}.chat-chip.active small{color:#ffffffc7}.chat-crumb{margin:6px 4px 0;padding:3px 6px;color:var(--t-brand-ink, var(--brand-blue));background:none;border-radius:6px;font-size:12px}.chat-crumb:hover{background:var(--t-tint-blue, #eef2fb)}.chat-class-icon{display:inline-grid;flex:0 0 auto;width:32px;height:32px;place-items:center;color:var(--t-brand-ink, var(--brand-blue));background:var(--t-tint-blue, #eef2fb);border-radius:9px;font-size:11px;font-weight:700}.chat-contact.chat-class>span:nth-child(2){display:grid;flex:1;gap:2px}.chat-class-go{color:var(--t-muted, #8a91a1);font-size:16px;font-style:normal}.chat-contact b .chat-team-tag{margin-left:6px}.chat-team-tag.student{color:var(--t-ink-green, #1e5f45);background:var(--t-tint-green, #e8f6ef)}.chat-note{flex:0 0 auto;margin:0;padding:8px 14px;color:var(--muted);background:var(--t-surface-2, #f7f9fc);border-top:1px solid var(--t-line, #edf0f5);font-size:11px;line-height:1.5}.chat-tabs.compact{flex:0 0 auto;margin:0 0 8px;padding:2px}.chat-tabs.compact .chat-tab{padding:3px 8px;font-size:12px}.chat-tabs.compact .chat-badge{min-width:16px;height:16px;font-size:9px}.dash-card.has-toolbar{container-type:inline-size}.has-toolbar>.dash-card-head{display:grid;grid-template-columns:minmax(max-content,1fr) minmax(0,auto) minmax(max-content,1fr);gap:8px}.has-toolbar>.dash-card-head .dash-link{justify-self:end}.dash-card-head .chat-tabs.compact{gap:2px;min-width:0;margin:0}.dash-card-head .chat-tabs.compact .chat-tab{flex:0 1 auto;gap:4px;min-width:0;padding:3px 6px}.dash-card-head .chat-tab>span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.dash-card-head .chat-tab .chat-badge{flex:0 0 auto}@container (min-width: 356px) and (max-width: 400px){.has-toolbar>.dash-card-head .dash-count{display:none}}@container (max-width: 355px){.has-toolbar>.dash-card-head{grid-template-columns:minmax(0,1fr) auto}.has-toolbar>.dash-card-head .chat-tabs{grid-row:2;grid-column:1 / -1}}.chat-row{position:relative;flex:0 0 auto}.chat-row>button:first-child{width:100%}.chat-row-more{position:absolute;top:6px;right:6px;display:grid;width:26px;height:22px;place-items:center;padding:0;color:var(--t-text-2, #4b5468);background:var(--t-surface, #fff);border:1px solid var(--t-line, #dfe4ef);border-radius:6px;font-size:14px;line-height:1;opacity:0;transition:opacity .12s}.chat-row:hover .chat-row-more,.chat-row:focus-within .chat-row-more,.chat-row-more.ant-dropdown-open{opacity:1}.chat-row:hover .chat-thread-meta>small,.chat-row:focus-within .chat-thread-meta>small{visibility:hidden}.chat-row-more:hover{color:var(--t-brand-ink, var(--brand-blue));border-color:var(--t-line-blue, #c9d4ea)}@media (hover: none){.chat-row-more{opacity:1}.chat-thread-meta>small{visibility:hidden}}.chat-thread-flags{display:inline-flex;align-items:center;justify-content:flex-end;gap:5px;min-height:18px;color:var(--t-muted, #8a91a1);font-size:11px}.chat-badge.quiet{background:var(--t-muted, #9aa1b0)}.chat-dot{display:inline-block;width:10px;height:10px;background:#d03b3b;border-radius:50%}.chat-row.muted .chat-thread-main small{color:var(--muted)}.chat-thread,.dash-chat-row{display:flex;align-items:center;gap:10px;width:100%;color:inherit;text-align:left}.chat-thread{padding:9px 8px;background:transparent;border-radius:10px}.chat-thread:hover{background:var(--t-surface-2, #f4f7fd)}.chat-thread-main{display:grid;flex:1;gap:3px;min-width:0}.chat-thread-main b{display:flex;align-items:center;gap:6px;overflow:hidden;color:var(--text-h);font-size:13px;font-weight:500;text-overflow:ellipsis;white-space:nowrap}.chat-thread-main small{overflow:hidden;color:var(--muted);font-size:12px;text-overflow:ellipsis;white-space:nowrap}.unread .chat-thread-main b{font-weight:700}.unread .chat-thread-main small{color:var(--t-text, #2b3345)}.chat-team-tag{flex:0 0 auto;padding:0 5px;color:var(--t-brand-ink, var(--brand-blue));background:var(--t-tint-blue, #eef2fb);border-radius:4px;font-size:10px;font-style:normal;font-weight:500}.chat-thread-meta{display:grid;flex:0 0 auto;justify-items:end;gap:4px}.chat-thread-meta small{color:var(--t-muted, #8a91a1);font-size:11px;white-space:nowrap}.chat-contact{display:flex;align-items:center;gap:10px;width:100%;padding:8px;color:inherit;text-align:left;background:transparent;border-radius:10px}.chat-contact:hover:not(:disabled){background:var(--t-surface-2, #f4f7fd)}.chat-contact>span:last-child{display:grid;gap:2px}.chat-contact b{font-size:13px;font-weight:500}.chat-contact small{color:var(--muted);font-size:11px}.chat-messages{display:flex;flex:1;flex-direction:column;gap:10px;min-height:0;padding:14px 14px 8px;overflow-y:auto;background:var(--t-surface-2, #f7f9fc)}.chat-older{align-self:center;padding:4px 12px;color:var(--t-brand-ink, var(--brand-blue));background:var(--t-surface, #fff);border:1px solid var(--t-line, #dfe4ef);border-radius:999px;font-size:12px}.chat-day{display:flex;align-items:center;gap:10px;color:var(--t-muted, #8a91a1);font-size:11px}.chat-day:before,.chat-day:after{content:"";flex:1;border-top:1px solid var(--t-line, #e6eaf1)}.chat-run{display:flex;align-items:flex-start;gap:8px;max-width:88%}.chat-run.mine{align-self:flex-end;flex-direction:row-reverse}.chat-run-body{display:grid;justify-items:start;gap:3px;min-width:0}.chat-run.mine .chat-run-body{justify-items:end}.chat-run-head{display:flex;align-items:baseline;gap:6px;padding:0 2px}.chat-run-head b{color:var(--t-text, #3d4659);font-size:12px;font-weight:600}.chat-run-head small{color:var(--t-muted, #8a91a1);font-size:10px}.chat-bubble{max-width:100%;padding:7px 11px;color:var(--text-h);white-space:pre-wrap;word-break:break-word;background:var(--t-surface, #fff);border:1px solid var(--t-line, #e3e8f0);border-radius:4px 14px 14px;font-size:13px;line-height:1.5}.chat-run.mine .chat-bubble{color:#fff;background:var(--brand-blue);border-color:var(--t-brand-ink, var(--brand-blue));border-radius:14px 4px 14px 14px}.chat-msg{display:grid;justify-items:inherit;gap:4px;min-width:0;max-width:100%}.chat-msg.pending{opacity:.6}.chat-run.mine .chat-bubble.failed{background:var(--t-surface, #fff);color:var(--text-h);border-color:var(--t-line-red, #f1a5a5)}.chat-retry{display:block;margin-top:4px;padding:0;color:var(--bad);background:none;font-size:11px}.chat-empty-thread{display:grid;flex:1;justify-items:center;align-content:center;gap:8px;padding:20px;color:var(--muted);font-size:12px;line-height:1.6;text-align:center}.chat-empty-thread b{color:var(--text-h);font-size:14px}.chat-composer{display:flex;flex:0 0 auto;flex-direction:column;gap:8px;padding:10px 12px 12px;background:var(--t-surface, #fff);border-top:1px solid var(--t-line, #edf0f5)}.chat-composer-row{display:flex;align-items:flex-end;gap:6px}.chat-composer textarea{flex:1;min-height:38px;max-height:120px;padding:8px 12px;resize:none;background:var(--t-surface-2, #f6f8fb);border-color:var(--t-line, #e3e8f0);border-radius:18px;font-size:13px;line-height:1.5}.chat-composer textarea:focus{background:var(--t-surface, #fff);border-color:var(--t-line-blue, #a9bce4);outline:none}.chat-composer-row>button[type=submit]{flex:0 0 auto;height:38px;padding:0 16px;border-radius:19px}.chat-attach-btn{display:grid;flex:0 0 auto;width:36px;height:38px;place-items:center;padding:0;color:var(--t-text-2, #5d6578);background:transparent;border-radius:50%;font-size:18px}.chat-attach-btn:hover:not(:disabled){color:var(--t-brand-ink, var(--brand-blue));background:var(--t-surface-3, #f1f4f9)}.chat-thread-view{position:relative;display:flex;flex:1;flex-direction:column;min-height:0}.chat-pending{display:grid;gap:6px;max-height:176px;overflow-y:auto}.chat-pending-file{position:relative;display:flex;align-items:center;gap:10px;padding:6px 4px 6px 6px;overflow:hidden;background:var(--t-surface-2, #f6f8fb);border:1px solid var(--t-line, #e3e8f0);border-radius:10px}.chat-pending-file>img{flex:0 0 auto;width:34px;height:34px;object-fit:cover;border-radius:7px}.chat-pending-file.failed{background:var(--t-tint-red, #fff5f5);border-color:var(--t-line-red, #f1a5a5)}.chat-pending-file.failed small{color:var(--bad)}.chat-pending-bar{position:absolute;right:0;bottom:0;left:0;height:3px;background:var(--t-surface-3, #e9edf4)}.chat-pending-bar em{display:block;height:100%;background:var(--brand-blue);transition:width .2s}.chat-file-icon{display:inline-grid;flex:0 0 auto;width:34px;height:34px;place-items:center;color:var(--t-brand-ink, var(--brand-blue));background:var(--t-tint-blue, #eef2fb);border-radius:7px;font-size:9px;font-weight:700;letter-spacing:.02em}.chat-file-main{display:grid;flex:1;gap:1px;min-width:0;text-align:left}.chat-file-main b{overflow:hidden;color:var(--text-h);font-size:12px;font-weight:600;text-overflow:ellipsis;white-space:nowrap}.chat-file-main small{overflow:hidden;color:var(--muted);font-size:11px;text-overflow:ellipsis;white-space:nowrap}.chat-files{display:flex;flex-wrap:wrap;gap:4px;max-width:100%}.chat-run.mine .chat-files{justify-content:flex-end}.chat-image{display:block;max-width:100%;padding:0;overflow:hidden;background:var(--t-surface-3, #eef1f6);border:1px solid var(--t-line, #e3e8f0);border-radius:12px;cursor:zoom-in}.chat-image:disabled{opacity:1;cursor:default}.chat-image img{display:block;width:100%;height:100%;object-fit:cover}.chat-image small{display:grid;height:100%;place-items:center;color:var(--muted);font-size:11px}.chat-file{display:flex;align-items:center;gap:10px;width:240px;max-width:100%;padding:8px 10px;color:inherit;text-align:left;background:var(--t-surface, #fff);border:1px solid var(--t-line, #e3e8f0);border-radius:12px}.chat-file:hover{border-color:var(--t-line-blue, #c4d0ea)}.chat-file-save{flex:0 0 auto;color:var(--t-muted, #8a91a1);font-size:14px}.chat-file:hover .chat-file-save{color:var(--t-brand-ink, var(--brand-blue))}.chat-drop{position:absolute;top:8px;right:8px;bottom:8px;left:8px;z-index:5;display:grid;place-content:center;justify-items:center;gap:6px;color:var(--t-brand-ink, var(--brand-blue));background:color-mix(in srgb,var(--t-surface, #fff) 90%,transparent);border:2px dashed var(--t-brand-ink, var(--brand-blue));border-radius:12px;font-size:13px;pointer-events:none}.chat-drop .anticon{font-size:26px}.chat-drop small{color:var(--muted);font-size:11px}.chat-viewer{position:fixed;top:0;right:0;bottom:0;left:0;z-index:1100;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:12px;padding:24px;background:#0a0e18db;animation:chat-in .15s ease-out}.chat-viewer img{max-width:100%;max-height:calc(100vh - 110px);object-fit:contain;border-radius:6px;box-shadow:0 12px 40px #0006}.chat-viewer-bar{display:flex;align-items:center;gap:10px;max-width:100%;color:#fff;font-size:13px}.chat-viewer-bar span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.chat-viewer-bar .ghost{display:inline-flex;flex:0 0 auto;align-items:center;gap:6px;padding:6px 12px;font-size:12px}.chat-viewer-bar .chat-icon-btn{color:#fff}.chat-viewer-bar .chat-icon-btn:hover{color:#fff;background:#ffffff24}.chat-toasts{position:fixed;right:20px;bottom:20px;z-index:96;display:grid;gap:10px;width:340px;max-width:calc(100vw - 40px)}.chat-toasts.beside-panel{right:calc(min(var(--chat-w, 380px),calc(100vw - 32px)) + 32px)}.chat-panel>.resize-handle{position:absolute;z-index:6}.chat-resize-width{top:0;bottom:0;left:0;width:10px}.chat-resize-height{right:0;bottom:0;left:0;height:10px}.chat-panel>.resize-handle>i{background:color-mix(in srgb,var(--t-muted, #8a91a1) 45%,transparent)}.chat-panel>.resize-handle:hover>i,.chat-panel>.resize-handle:focus-visible>i,html.resizing-x .chat-resize-width>i,html.resizing-y .chat-resize-height>i{background:var(--brand-blue)}.chat-toast{position:relative;display:flex;align-items:flex-start;gap:12px;padding:12px 12px 12px 14px;background:var(--t-surface, #fff);border:1px solid var(--t-line, #dfe4ef);border-left:4px solid var(--t-brand-ink, var(--brand-blue));border-radius:12px;box-shadow:0 14px 36px #162d6e33;animation:chat-toast-in .22s ease-out}@keyframes chat-toast-in{0%{opacity:0;transform:translate(24px)}to{opacity:1;transform:none}}.chat-toast-main{display:grid;flex:1;gap:3px;min-width:0;padding:0;color:inherit;text-align:left;background:none}.chat-toast-head{display:flex;align-items:baseline;gap:6px;min-width:0;padding-right:22px}.chat-toast-head b{flex:0 0 auto;font-size:13px}.chat-toast-head em{overflow:hidden;color:var(--t-brand-ink, var(--brand-blue));font-size:11px;font-style:normal;text-overflow:ellipsis;white-space:nowrap}.chat-toast-head small{flex:0 0 auto;margin-left:auto;color:var(--t-muted, #8a91a1);font-size:11px}.chat-toast-text{display:-webkit-box;overflow:hidden;color:var(--t-text, #3d4659);font-size:12px;line-height:1.5;-webkit-line-clamp:2;-webkit-box-orient:vertical}.chat-toast-reply{justify-self:start;margin-top:2px;color:var(--t-brand-ink, var(--brand-blue));font-size:12px;font-weight:600}.theme-option{display:inline-flex;align-items:center;justify-content:space-between;gap:16px;min-width:84px}.theme-option .anticon{color:var(--t-brand-ink, var(--brand-blue));font-size:12px}.chat-toast-close{position:absolute;top:6px;right:6px;width:24px;height:24px;font-size:16px}@media (max-width: 760px){.chat-panel{top:0;right:0;width:100vw;height:100vh;border-radius:0}.chat-panel>.resize-handle{display:none}.chat-toasts,.chat-toasts.beside-panel{right:12px;bottom:12px;left:12px;width:auto}}.tt-modal{display:flex;flex-direction:column;max-width:800px;max-height:calc(100vh - 112px)}.tt-intro{margin:-6px 0 12px;color:var(--muted);font-size:12px;line-height:1.6}.tt-days{display:grid;flex:1;gap:10px;min-height:0;padding-right:4px;overflow-y:auto}.tt-day{display:grid;grid-template-columns:40px minmax(0,1fr);gap:10px;padding-bottom:10px;border-bottom:1px solid var(--t-line, #eef1f6)}.tt-day h4{margin:8px 0 0;color:var(--t-text, #3d4659);font-size:13px}.tt-lessons{display:grid;gap:6px}.tt-lesson{display:grid;grid-template-columns:70px auto 70px minmax(150px,1.3fr) minmax(110px,1fr) auto;align-items:center;gap:6px}.tt-lesson input,.tt-lesson select{min-width:0;padding:6px 8px;font-size:13px}.tt-clock{font-variant-numeric:tabular-nums;text-align:center}.tt-lesson.invalid .tt-clock{border-color:var(--t-line-red, #f1a5a5)}.tt-dash{color:var(--muted)}.tt-course{display:flex;align-items:center;gap:6px;min-width:0}.tt-remove{padding:5px 9px;color:var(--t-ink-red, #b91c1c);font-size:12px}.tt-problem{grid-column:1 / -1;color:var(--bad);font-size:11px}.tt-add{justify-self:start;padding:5px 10px;color:var(--t-brand-ink, var(--brand-blue));background:var(--t-surface-2, #f4f7fd);border:1px dashed var(--t-line-blue, #c9d4ea);font-size:12px}.tt-weekend{justify-self:start;padding:4px 0;color:var(--t-brand-ink, var(--brand-blue));background:none;font-size:12px}.tt-foot{display:flex;align-items:center;gap:8px;margin-top:12px;padding-top:12px;border-top:1px solid var(--t-line, #eef1f6)}.tt-foot span{margin-right:auto;color:var(--muted);font-size:12px}@media (max-width: 900px),(max-height: 600px){.dash{height:auto;min-height:0}.dash-body,.dash-body.expanded{grid-template-columns:minmax(0,1fr);gap:14px}.dash-divider{display:none}.dash-side{grid-template-columns:minmax(0,1fr);grid-template-rows:none}.cal-agenda{max-height:460px}.cal-time,.cal-month{flex:0 0 auto;height:520px}}@media (max-width: 760px){.dash-card{padding:12px}.dash-hello{flex-wrap:wrap}.dash-head-actions{margin-left:0}.cal-view-week .cal-time{overflow-x:auto}.cal-view-week .cal-time-row{min-width:640px}.cal-view-week .cal-head,.cal-view-month .cal-head{flex-wrap:wrap}.tt-lesson{grid-template-columns:minmax(0,1fr) auto minmax(0,1fr)}.tt-course,.tt-lesson input:not(.tt-clock){grid-column:1 / -1}}.course-dot{display:inline-block;flex:0 0 auto;width:9px;height:9px;border-radius:50%}.ant-menu .nav-course-dot{width:9px!important;min-width:9px!important;height:9px;margin:0 2px 0 3px;box-shadow:0 0 0 2px #ffffff2e}.nav-course-label{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.ant-menu-dark .ant-menu-sub.ant-menu-inline{background:#00000029}.ant-menu-submenu.nav-course-active>.ant-menu-submenu-title{color:#fff;background:#ffffff1a}.nav-course-empty{opacity:.75}.course-head{display:grid;gap:6px;margin-bottom:12px}.course-head .chat-crumb{justify-self:start;margin:0;padding:2px 6px}.course-head h2{display:flex;align-items:center;gap:10px;margin:0;color:var(--text-h)}.course-head h2 .course-dot{width:12px;height:12px}.course-head p{margin:0;color:var(--muted);font-size:13px}.course-classes{display:flex;flex-wrap:wrap;align-items:center;gap:6px}.course-note{color:var(--muted);font-size:13px}.course-tab-count{margin-left:6px;color:var(--t-muted, #8a91a1);font-size:11px}.course-task-actions{display:flex;flex:0 0 auto;gap:6px}.nav-label{display:flex;align-items:center;gap:6px;min-width:0}.nav-label>span{overflow:hidden;text-overflow:ellipsis}.nav-label .nav-badge{flex:0 0 auto}.nav-badge{display:inline-grid;min-width:18px;height:18px;padding:0 5px;place-items:center;color:#fff;background:#d03b3b;border-radius:999px;font-size:10px;font-style:normal;font-weight:700;line-height:1}.insight-tabs .nav-badge{margin-left:6px}.my-classes{display:grid;gap:14px;align-content:start}.class-admin-card+.class-admin-card,.err+.class-admin-card{margin-top:14px}.my-classes .dash-card h3,.class-admin-card h3{display:flex;align-items:center;gap:8px;margin:0 0 10px;font-size:15px}.class-row{display:flex;align-items:center;gap:12px;padding:10px 12px;border:1px solid var(--t-line, #e7ebf2);border-radius:9px}.class-row+.class-row{margin-top:6px}.class-row-main{display:grid;flex:1;gap:2px;min-width:0}.class-row-main b{overflow:hidden;color:var(--text-h);font-size:13px;text-overflow:ellipsis;white-space:nowrap}.class-row-main small{color:var(--muted);font-size:12px}.class-row-actions{display:flex;flex:0 0 auto;gap:6px}.class-row-actions button{padding:5px 12px;font-size:12px}.class-status{flex:0 0 auto;padding:2px 9px;border-radius:999px;font-size:11px;font-weight:600;white-space:nowrap}.class-status.ok{color:var(--t-ink-green, #1f6b3a);background:var(--t-tint-green, #e8f6ec)}.class-status.action{color:#fff;background:var(--brand-blue)}.class-status.wait{color:var(--t-ink-amber, #8a5a00);background:var(--t-tint-amber, #fff4e0)}.class-status.bad{color:var(--t-ink-red, #b91c1c);background:var(--t-tint-red, #fff1f1)}.class-invites{border-color:var(--t-line-blue, #c9d4ea)}.class-request,.class-invite-form{display:flex;flex-wrap:wrap;align-items:center;gap:8px;margin-top:10px}.class-invite-form .ant-select{min-width:200px}.class-invite-form button,.class-request button{padding:6px 14px;font-size:13px}.class-note{display:block;margin-top:8px;color:var(--muted);font-size:12px}.class-group+.class-group{margin-top:14px}.class-group h4{margin:0 0 6px;color:var(--t-text-2, #4b5468);font-size:12px;font-weight:600}.class-admin-card .scope-admin-toolbar h3{margin:0}.scope-admin .insight-tabs{margin-top:4px}.scope-admin-toolbar{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap;margin:4px 0 14px}.scope-admin-toolbar input{max-width:280px}.scope-admin-toolbar small{color:var(--muted);font-size:12px;line-height:1.6}.scope-matrix{overflow-x:auto}.scope-matrix-row{display:grid;grid-template-columns:minmax(180px,1.4fr) repeat(5,minmax(96px,1fr));align-items:center;min-width:680px;border-bottom:1px solid var(--t-line, #edf0f5)}.scope-matrix-row.head{color:var(--t-text-2, #6b7385);font-size:12px;border-bottom-color:var(--t-line, #dfe4ef)}.scope-matrix-row>span{display:grid;gap:2px;padding:10px 8px}.scope-matrix-row.head>span{text-align:center}.scope-matrix-row.head>span:first-child{text-align:left}.scope-matrix-row.head small{color:var(--t-muted, #8a91a1);font-size:11px}.scope-matrix-teacher b{color:var(--text-h);font-size:13px}.scope-matrix-teacher small{color:var(--muted);font-size:11px}.scope-matrix-cell{display:grid;height:100%;margin:0;padding:10px 0;place-items:center;cursor:pointer}.scope-matrix-cell input{width:18px;height:18px;cursor:pointer}.scope-matrix-dept{display:grid;gap:4px;padding:8px 10px!important}.scope-matrix-dept .ant-select{width:100%}.scope-matrix-dept small{color:var(--muted);font-size:11px}.scope-matrix-cell.checked{background:var(--t-tint-blue, #f3f6ff)}.plan-topic{margin-top:16px}.plan-topic h4{margin:0 0 8px;color:var(--t-text-2, #5d6578);font-size:12px;font-weight:700}.plan-group{margin-bottom:6px;border:1px solid var(--t-line, #e3e8f0);border-radius:9px;background:var(--t-surface, #fff)}.plan-group.all{border-color:var(--t-line-blue, #c8d4ee);background:var(--t-surface-2, #f8faff)}.plan-group-head{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:8px 10px}.plan-group-head label{display:flex;min-width:0;align-items:center;gap:8px;margin:0;color:var(--text-h);font-size:13px;cursor:pointer}.plan-group-head label input{width:auto}.plan-group-head label b{color:var(--t-brand-ink, var(--brand-blue))}.plan-group-head label span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.plan-group-head .ghost{flex:0 0 auto;padding:4px 9px;font-size:12px}.plan-codes{display:grid;gap:4px;padding:0 10px 10px 34px}.plan-codes label{display:grid;grid-template-columns:auto auto minmax(0,1fr) auto;align-items:center;gap:8px;margin:0;color:var(--t-text, #3d4659);font-size:12px;cursor:pointer}.plan-codes label input{width:auto}.plan-codes label b{color:var(--t-brand-ink, var(--brand-blue));font-size:11px}@media (max-width: 760px){.assets-head,.public-paper{flex-direction:column;align-items:stretch}.public-paper-actions{justify-content:flex-end}.assets-grid{grid-template-columns:1fr}.concept-chip{max-width:100%}}.syllabus-summary{display:flex;align-items:center;gap:18px;flex-wrap:wrap;margin-top:4px;color:var(--muted);font-size:13px}.syllabus-summary b{color:var(--t-brand-ink, var(--brand-blue));font-size:16px}.syllabus-summary label{display:inline-flex;align-items:center;gap:6px;margin:0 0 0 auto;color:var(--t-text, #3d4659);font-size:13px;cursor:pointer}.syllabus-summary label input{width:auto}.syllabus-topic{padding:14px 16px}.syllabus-topic h4{margin:0 0 8px;color:var(--t-text-2, #49526a);font-size:13px}.syllabus-group{border-top:1px solid var(--t-line, #eef1f6)}.syllabus-group-head{display:flex;width:100%;align-items:center;gap:10px;padding:10px 4px;color:var(--text-h);text-align:left;background:transparent;border-radius:0}.syllabus-group-head:hover{background:var(--t-surface-2, #f8faff)}.syllabus-group-head b{min-width:40px;color:var(--t-brand-ink, var(--brand-blue))}.syllabus-group-head span:not(.syllabus-caret){flex:1;font-size:14px}.syllabus-group-head small{color:var(--muted);font-size:12px}.syllabus-caret{width:14px;color:var(--muted);font-size:12px}.syllabus-codes{display:grid;gap:2px;padding:0 0 10px 28px}.syllabus-code{display:grid;grid-template-columns:56px minmax(0,1fr) auto auto;align-items:center;gap:10px;padding:7px 8px;border-radius:6px;font-size:13px}.syllabus-code:hover{background:var(--t-surface-2, #f8faff)}.syllabus-code b{color:var(--t-brand-ink, var(--brand-blue));font-size:12px}.syllabus-code em{padding:1px 7px;color:var(--t-ink-amber, #8a5a00);background:var(--gold-tint);border-radius:999px;font-size:11px;font-style:normal}.syllabus-code i{color:var(--t-muted, #9aa1b0);font-size:11px;font-style:normal}.syllabus-code.out-of-grade{opacity:.62}.bank-head-actions{display:flex;flex:0 0 auto;gap:8px}.bank-head-actions button{white-space:nowrap}@media (max-width: 760px){.bank-head-actions{flex-wrap:wrap}}.ant-layout-sider-collapsed .ant-layout-sider-children>div:first-child>span{display:none}@media (max-width: 760px){.ant-layout-content{margin:8px!important;padding:12px!important}}:root{--viz-1: #2a78d6;--viz-2: #eb6834;--viz-grid: #eceef3;--viz-axis: #7d8597;--viz-track: #edf0f6;--viz-ref: #4b5468;--viz-surface: #fff}:root[data-theme=dark]{--viz-1: #3987e5;--viz-2: #d95926;--viz-grid: #262e3d;--viz-axis: #8f98aa;--viz-track: #232b3a;--viz-ref: #c9d0dc;--viz-surface: #161b25}.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}.link-button{padding:0;color:var(--t-brand-ink, var(--brand-blue));background:none;text-align:left}.link-button:hover b{text-decoration:underline}.flag-amber,.flag-red{padding:2px 8px;border-radius:999px;font-size:11px;font-style:normal;font-weight:600;white-space:nowrap}.flag-amber{color:var(--t-ink-amber, #805f12);background:var(--t-tint-amber, #fff5d9)}.flag-red{color:var(--t-ink-red, #a33a3a);background:var(--t-tint-red, #fdecec)}.course-tab-alert{margin-left:6px;padding:1px 6px;color:#fff;background:#d9363e;border-radius:999px;font-size:10px;font-style:normal;font-weight:700}.insight-filter-bar button small{margin-left:5px;color:var(--t-muted, #8a91a1);font-size:11px;font-weight:500}.viz{position:relative;min-width:0}.viz svg{display:block;overflow:visible}.viz-grid{stroke:var(--viz-grid);stroke-width:1}.viz-baseline{stroke:var(--t-line-strong, #c9cfdb);stroke-width:1}.viz-axis{fill:var(--viz-axis);font-size:11px;font-variant-numeric:tabular-nums}.viz-value{fill:var(--t-text, #253251);font-size:12px;font-weight:600}.viz-bar{fill:var(--viz-1);transition:opacity .12s}.viz-hit{cursor:default;outline:none}.viz-hit:hover .viz-bar,.viz-hit:focus .viz-bar{opacity:.78}.viz-mean line{stroke:var(--viz-ref);stroke-width:1.5;stroke-dasharray:3 3}.viz-mean text{fill:var(--t-text-2, #4b5468);font-size:11px;font-weight:600}.viz-line{fill:none;stroke-width:2;stroke-linejoin:round;stroke-linecap:round}.viz-s1 .viz-line{stroke:var(--viz-1)}.viz-s2 .viz-line{stroke:var(--viz-2)}.viz-dot{stroke:var(--viz-surface);stroke-width:2}.viz-s1 .viz-dot{fill:var(--viz-1)}.viz-s2 .viz-dot{fill:var(--viz-2)}.viz-ref{stroke:var(--viz-ref);stroke-width:2;stroke-linecap:round;opacity:.55}.viz-crosshair{stroke:var(--t-line-strong, #c9cfdb);stroke-width:1}.viz-legend{display:flex;flex-wrap:wrap;gap:14px;margin-bottom:8px;color:var(--t-text-2, #4b5468);font-size:12px}.viz-legend span{display:inline-flex;align-items:center;gap:6px}.viz-key-line{display:inline-block;width:16px;height:2px;border-radius:2px}.viz-key-line.viz-s1{background:var(--viz-1)}.viz-key-line.viz-s2{background:var(--viz-2)}.viz-key-ref{display:inline-block;width:12px;height:2px;background:var(--viz-ref);border-radius:2px;opacity:.55}.viz-tip{position:absolute;z-index:5;display:grid;gap:2px;width:max-content;max-width:260px;padding:8px 10px;color:var(--t-text-2, #4b5468);background:var(--t-surface, #fff);border:1px solid var(--t-line, #dfe4ef);border-radius:8px;box-shadow:0 6px 20px #141e3c24;font-size:12px;line-height:1.45;pointer-events:none;transform:translateY(-100%)}.viz-tip-fixed{transform:none}.viz-tip b{color:var(--t-text, #1f2330);font-size:14px}.viz-tip small{color:var(--muted);font-size:11px}.viz-spark{display:block;overflow:visible}.viz-spark polyline{fill:none;stroke:var(--viz-axis);stroke-width:1.5;stroke-linejoin:round;stroke-linecap:round}.viz-spark circle{fill:var(--viz-1);stroke:var(--viz-surface);stroke-width:1.5}.viz-spark-empty{color:var(--muted)}.concept-bars{display:grid;gap:2px}.concept-bar-row{border-radius:8px}.concept-bar-row.open{background:var(--t-surface-2, #f7f9fd)}.concept-bar-button{display:grid;width:100%;grid-template-columns:minmax(150px,1.1fr) minmax(120px,1fr) 72px;align-items:center;gap:14px;padding:9px 10px;color:var(--text-h);text-align:left;background:transparent;border-radius:8px}.concept-bar-button:hover{background:var(--t-surface-2, #f7f9fd)}.concept-bar-label{display:grid;gap:2px;min-width:0}.concept-bar-label b{overflow:hidden;font-size:13px;font-weight:600;line-height:1.35;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical}.concept-bar-label small,.concept-bar-value small{color:var(--muted);font-size:11px}.concept-bar-track{position:relative;height:12px;background:var(--viz-track);border-radius:0 4px 4px 0}.concept-bar-fill{position:absolute;inset:0 auto 0 0;background:var(--viz-1);border-radius:0 4px 4px 0}.concept-bar-row.limited .concept-bar-fill{opacity:.5}.concept-bar-ref{position:absolute;top:-4px;bottom:-4px;width:2px;margin-left:-1px;background:var(--viz-ref);border-radius:2px}.concept-bar-value{display:grid;gap:1px;text-align:right}.concept-bar-value b{font-size:14px;font-variant-numeric:tabular-nums}.concept-bar-detail{padding:0 12px 12px;color:var(--t-text-2, #4b5468);font-size:12px;line-height:1.6}.concept-bar-detail p{margin:0 0 6px}.concept-bar-note{margin:0}.concept-steady{margin:10px 10px 0;color:var(--muted);font-size:12px}.concept-detail button{margin-top:4px;padding:6px 10px;font-size:12px}.task-board{display:grid;gap:16px}.task-board-count{margin-left:6px;color:var(--t-muted, #8a91a1);font-size:13px;font-weight:500}.task-board-row{display:grid;grid-template-columns:minmax(220px,1fr) minmax(150px,190px) minmax(70px,auto) auto;align-items:center;gap:22px;padding:14px 2px;border-top:1px solid var(--t-line, #eceef3)}.task-board-row.finished{grid-template-columns:minmax(220px,1fr) 84px 84px minmax(70px,auto) auto}.task-board-row.current{grid-template-columns:minmax(220px,1fr) minmax(150px,auto) auto}.task-board-row:first-child{border-top:0}.task-board-main{display:grid;gap:4px;min-width:0;padding:0;color:var(--text-h);text-align:left;background:none}.task-board-main b{overflow:hidden;font-size:14px;text-overflow:ellipsis;white-space:nowrap}.task-board-main:hover b{color:var(--t-brand-ink, var(--brand-blue))}.task-board-main small,.task-board-progress small,.task-board-score small{color:var(--muted);font-size:12px}.task-board-progress{display:grid;gap:5px}.task-board-meter{display:block;height:6px;overflow:hidden;background:var(--viz-track);border-radius:999px}.task-board-meter em{display:block;height:100%;background:var(--viz-1);border-radius:999px}.task-board-score{display:grid;gap:2px}.task-board-score b{color:var(--text-h);font-size:17px;font-variant-numeric:tabular-nums}.task-board-flags{display:flex;flex-wrap:wrap;gap:5px}.task-board-actions{display:flex;flex:0 0 auto;gap:6px;justify-content:flex-end}.task-board-actions button{padding:7px 12px;font-size:13px}.task-board-more{margin-top:10px}.task-board-err{grid-column:1 / -1;margin:0}.task-board-drafts{margin-top:12px;padding-top:12px;border-top:1px dashed var(--t-line, #e3e6ed)}.task-board-drafts summary{color:var(--t-text-2, #4b5468);font-size:13px;cursor:pointer}.task-board-draft{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:10px 0 0}.task-board-draft span{display:grid;gap:2px}.task-board-draft small{color:var(--muted);font-size:12px}.task-board-draft button{padding:6px 10px;font-size:12px}.student-table{display:grid}.student-table-head,.student-table-row{display:grid;grid-template-columns:minmax(170px,1.2fr) 90px 70px 104px minmax(170px,1.4fr) 136px;align-items:center;gap:16px;padding:10px}.student-table-head{color:var(--muted);font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.04em;border-bottom:1px solid var(--t-line, #e3e6ed)}.student-table-row{border-bottom:1px solid var(--t-line, #eef0f4)}.student-table-row:hover{background:var(--t-surface-2, #f7f9fd)}.student-table-name{display:grid;gap:3px;min-width:0;padding:0;color:var(--text-h);text-align:left;background:none}.student-table-name b{overflow:hidden;font-size:14px;text-overflow:ellipsis;white-space:nowrap}.student-table-name:hover b{color:var(--t-brand-ink, var(--brand-blue))}.student-table-name small{color:var(--muted);font-size:11px}.student-table-num{color:var(--text-h);font-size:14px;font-weight:600;font-variant-numeric:tabular-nums}.student-table-flags{display:flex;flex-wrap:wrap;gap:5px}.student-table-flags small{padding:2px 8px;color:var(--t-text-2, #4b5468);background:var(--t-surface-3, #f2f4f7);border-radius:999px;font-size:11px}.student-table-flags small.quiet{padding:0;color:var(--muted);background:none}.student-table-actions{display:flex;gap:6px;justify-content:flex-end}.student-table-actions button{padding:6px 10px;font-size:12px}.student-page{display:grid;gap:16px;align-content:start}.student-crumbs{display:flex;flex-wrap:wrap;align-items:center;gap:2px;color:var(--muted);font-size:12px}.student-crumbs .chat-crumb{margin:0;padding:2px 6px}.student-page-head{display:grid;grid-template-columns:1fr auto;gap:10px 20px;align-items:end}.student-page-head .student-crumbs{grid-column:1 / -1}.student-page-title{display:flex;align-items:center;gap:14px;min-width:0}.student-page-title h2{margin:0;color:var(--text-h);font-size:26px;letter-spacing:-.01em}.student-page-title p{margin:3px 0 0;color:var(--muted);font-size:13px}.student-avatar{display:grid;width:48px;height:48px;flex:0 0 auto;place-items:center;color:#fff;background:var(--brand-blue);border-radius:50%;font-size:20px;font-weight:700}.student-page-actions{display:flex;flex-wrap:wrap;gap:8px;justify-content:flex-end}.student-stats{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px}.student-stat{display:grid;gap:4px;padding:14px 16px;background:var(--t-surface, #fff);border:1px solid var(--t-line, #dfe3eb);border-radius:12px}.student-stat span{color:var(--muted);font-size:12px}.student-stat b{color:var(--text-h);font-size:26px;font-weight:600;line-height:1.15}.student-stat small{color:var(--muted);font-size:12px;line-height:1.45}.student-stat.warn b{color:var(--t-ink-red, #b23a3a)}.student-grid{display:grid;grid-template-columns:minmax(0,1.15fr) minmax(0,1fr);gap:16px;align-items:start}.student-diagnoses{margin-top:16px;padding-top:14px;border-top:1px solid var(--t-line, #e3e6ed)}.student-diagnoses h4{margin:0 0 8px;color:var(--text-h);font-size:13px}.regrade-panel{border-color:var(--t-line-red, #f0c9c9);box-shadow:inset 4px 0 #d9363e}.regrade-card{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:12px 18px;align-items:start;padding:14px 0;border-top:1px solid var(--t-line, #eef0f4)}.regrade-card:first-of-type{border-top:0}.regrade-card-main{display:grid;gap:4px;min-width:0}.regrade-card-main b{color:var(--text-h);font-size:14px}.regrade-card-main p{margin:2px 0;color:var(--t-text, #253251);font-size:13px;line-height:1.55}.regrade-card-main small{color:var(--muted);font-size:12px}.regrade-prompt{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.regrade-card-actions{display:flex;flex-wrap:wrap;gap:6px;justify-content:flex-end;align-items:center;max-width:420px}.regrade-card-actions button,.regrade-card-reply button{padding:6px 11px;font-size:12px}.regrade-hint{flex-basis:100%;color:var(--muted);font-size:12px;text-align:right}.regrade-card-reply{display:grid;gap:6px;width:min(380px,100%)}.regrade-card-reply textarea{width:100%;box-sizing:border-box}.regrade-card-reply div{display:flex;gap:6px;justify-content:flex-end}.regrade-history summary{color:var(--t-text-2, #4b5468);font-size:13px;font-weight:600;cursor:pointer}.regrade-past{display:grid;gap:2px;padding:10px 0;border-top:1px solid var(--t-line, #eef0f4);font-size:13px}.regrade-past span,.regrade-past small{color:var(--muted);font-size:12px}.regrade-done{margin:8px 0;color:var(--muted);font-size:12px}.attempt-nav{display:flex;flex-wrap:wrap;gap:8px}.attempt-focus{border-color:var(--t-line-blue, #b9c8ee);box-shadow:0 0 0 3px var(--t-tint-blue, #edf2ff)}.attempt-focus .regrade-card,.card .regrade-card{margin:10px 0;padding:12px 14px;background:var(--t-tint-red, #fff6f6);border:1px solid var(--t-line-red, #f0c9c9);border-radius:10px}.extend-form{display:inline-flex;flex-wrap:wrap;gap:6px;align-items:center}.extend-form input{padding:6px 8px;font-size:12px}.grade-table{display:grid}.grade-table-head,.grade-table-row{display:grid;grid-template-columns:minmax(200px,1.6fr) 80px 90px 90px minmax(150px,1fr) 140px;align-items:center;gap:14px;padding:10px 6px}.report-students .grade-table-head,.report-students .grade-table-row{grid-template-columns:minmax(180px,1.4fr) 90px 120px minmax(170px,1fr) 120px}.grade-table-head{color:var(--muted);font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.04em;border-bottom:1px solid var(--t-line, #e3e6ed)}.grade-table-row{border-bottom:1px solid var(--t-line, #eef0f4);color:var(--t-text, #253251);font-size:13px}.grade-table-task{display:grid;gap:2px;min-width:0}.grade-table-task b{overflow:hidden;color:var(--text-h);font-size:14px;text-overflow:ellipsis;white-space:nowrap}.grade-table-task small,.grade-table-num small,.grade-table-status small{color:var(--muted);font-size:11px}.grade-table-num{display:grid;gap:1px;font-variant-numeric:tabular-nums}.grade-table-num b{color:var(--text-h);font-size:14px}.grade-table-status{display:flex;flex-wrap:wrap;align-items:center;gap:6px}.grade-table-actions{display:flex;justify-content:flex-end}.grade-table-actions button{padding:6px 10px;font-size:12px;white-space:nowrap}.state-dot{display:inline-block;width:8px;height:8px;flex:0 0 auto;background:var(--t-line-strong, #c3c9d6);border-radius:50%}.state-dot.submitted{background:#2f9e6a}.state-dot.in_progress{background:var(--viz-1)}.state-dot.missed{background:#d9363e}.report-page{display:grid;gap:16px;align-content:start}.report-head{display:flex;flex-wrap:wrap;align-items:flex-end;justify-content:space-between;gap:12px 20px}.report-head h2{margin:0;color:var(--text-h);font-size:26px;letter-spacing:-.01em}.report-head p{margin:4px 0 0;color:var(--muted);font-size:13px}.report-head-actions{display:flex;gap:8px}.report-alerts{display:grid;gap:10px}.report-alert{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:12px 16px;border:1px solid;border-radius:10px}.report-alert div{display:grid;gap:2px}.report-alert span{font-size:12px}.report-alert.amber{color:var(--t-ink-amber, #6b4f10);background:var(--t-tint-amber, #fffaf0);border-color:var(--t-line-amber, #f0dfb2)}.report-alert.red{color:var(--t-ink-red, #8c2a2a);background:var(--t-tint-red, #fff6f6);border-color:var(--t-line-red, #f0c9c9)}.report-alert button{flex:0 0 auto;padding:7px 12px;font-size:13px}.report-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:16px;align-items:start}.report-table-tools{display:flex;flex-wrap:wrap;align-items:center;gap:12px;color:var(--muted);font-size:12px}.report-table-tools label{display:inline-flex;align-items:center;gap:6px;white-space:nowrap}.report-table-tools select{width:auto;padding:5px 8px;font-size:12px}.report-toggle{display:inline-flex;align-items:center;gap:5px}.question-table{display:grid}.question-table-head,.question-table-button{display:grid;grid-template-columns:34px minmax(200px,1fr) minmax(150px,210px) minmax(120px,170px);align-items:center;gap:16px}.question-table-head{padding:8px 10px;color:var(--muted);font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.04em;border-bottom:1px solid var(--t-line, #e3e6ed)}.question-table-row{border-bottom:1px solid var(--t-line, #eef0f4)}.question-table-row.open{background:var(--t-surface-2, #f7f9fd)}.question-table-button{width:100%;padding:12px 10px;color:var(--t-text, #253251);text-align:left;background:transparent;border-radius:0}.question-table-button:hover{background:var(--t-surface-2, #f7f9fd)}.question-num{display:grid;width:26px;height:26px;place-items:center;color:var(--t-brand-ink, var(--brand-blue));background:var(--t-tint-blue, #edf2ff);border-radius:50%;font-size:12px;font-weight:700}.question-text{display:grid;gap:3px;min-width:0}.question-prompt{overflow:hidden;color:var(--text-h);font-size:13px;text-overflow:ellipsis;white-space:nowrap}.question-text small,.question-correct small,.question-wrong small{color:var(--muted);font-size:11px}.question-correct{display:grid;grid-template-columns:minmax(50px,1fr) auto auto;align-items:center;gap:8px;font-variant-numeric:tabular-nums}.question-correct b,.question-wrong b{color:var(--text-h);font-size:13px}.question-wrong{display:flex;align-items:baseline;gap:6px}.question-detail{padding:2px 16px 16px 60px}.option-bars{display:grid;gap:6px;margin:10px 0}.option-bar{display:grid;grid-template-columns:24px minmax(120px,1fr) minmax(80px,200px) 70px;align-items:center;gap:10px;font-size:13px}.option-key{display:grid;width:22px;height:22px;place-items:center;color:var(--t-text-2, #4b5468);background:var(--t-surface-3, #f1f3f7);border-radius:6px;font-size:12px;font-weight:700}.option-bar.correct .option-key{color:#fff;background:#2f9e6a}.option-track{display:block;height:8px;overflow:hidden;background:var(--viz-track);border-radius:0 4px 4px 0}.option-track em{display:block;height:100%;background:var(--viz-axis);border-radius:0 4px 4px 0}.option-bar.correct .option-track em{background:var(--viz-1)}.option-count{display:flex;align-items:baseline;gap:6px;font-variant-numeric:tabular-nums}.option-count small{color:#2f9e6a;font-size:11px;font-weight:600}.student-regrade{margin-top:8px}.student-regrade p{margin:4px 0}.student-regrade-form{display:grid;gap:6px;margin-top:6px}.student-regrade-form textarea{width:100%;box-sizing:border-box}.student-regrade-form div{display:flex;gap:6px}@media (max-width: 1100px){.report-grid,.student-grid{grid-template-columns:1fr}.student-stats{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (max-width: 860px){.task-board-row,.task-board-row.finished,.task-board-row.current{grid-template-columns:1fr auto;gap:10px 16px}.task-board-row .task-board-progress,.task-board-row .task-board-flags{grid-column:1 / -1}.student-table-head{display:none}.student-table-row{grid-template-columns:1fr auto;gap:8px 12px}.student-table-row>span:nth-child(2),.student-table-row>span:nth-child(3),.student-table-row>span:nth-child(4){display:none}.student-table-flags{grid-column:1 / -1;grid-row:2}.grade-table-head{display:none}.grade-table-row,.report-students .grade-table-row{grid-template-columns:1fr auto;gap:6px 12px}.question-table-head{display:none}.question-table-button{grid-template-columns:34px 1fr}.question-correct,.question-wrong{grid-column:2}.question-detail{padding-left:16px}.student-page-head{grid-template-columns:1fr}.student-page-actions{justify-content:flex-start}.concept-bar-button{grid-template-columns:1fr 64px}.concept-bar-track{grid-column:1 / -1;grid-row:2}.regrade-card{grid-template-columns:1fr}.regrade-card-actions{justify-content:flex-start}}
