@font-face{font-family:IBM Plex Sans Thai;font-style:normal;font-display:swap;font-weight:400;src:url(data:font/woff2;base64,d09GMgABAAAAAAWEABAAAAAACnwAAAUtAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGx4cLgZgAFQIUAmCcxEQCoNgg18LDgABNgIkAxgEIAWDXgdGDINsG1MJQB6FTZl7lLXccknfu1wyTATU3L97eflQ5pSZFDAaQ2lZGABwoEh28vM61/uRmqMp3E9NUQkmEvCWM7XNclvAh+1kutF0mLT/I/pDTx2q/sjCXMDGBokHg7TG5j00ngglgHOe50pjWa/ntXqNCoB94CaYSdTl3t0pAEWZmaF+A6qbQYYCZEDP9PEhi6OXDSzMgOl/ok4FE8D+eBw1haNoEO2PJgFDqT87zJAT2oOoGE3SBAlEDkAOiAAwuE8Nhg2Sq/G0/z+Ip0UVExQQAFFMLAEJAoiAHFAeCQHlUTigOBkCBZSA3UuuZuC/FbJ/vpv/eRTkev1KivTjpCmTY0qVAJtTklQqVq/VMFA860QVKkhCG3k2jCrMk0QUqKKlGX6CFvDmU6ag2VCRfNSkFyGcmZyGbFequMYiOXLmDL8INUtwCV8shFnNRUSzFGpS2y8imyWlQq7+gMZ2awc+kewfPO9EMgCPDwwLcf1WqpoxcmJySyxomsRvpc2TWKHXZIapmt/RkeUXUZFwrDnRB0vxRAw8Ie2u+dc8RTcbioVcg1HtDe3C1n7VWk2/toxlcYnwYNSkp6dfNfaUdmZJrVIquJuPrhpKrZImnUEWRzN20PTqEjr27+cjVlbYOqSq7a87WTJOtNGLDYi97KKYubn6/cWwdZRSsxV1TCshJKOlg3n8Q4v9InmzoU3tJcUMy3b4ASHJKOjQWaYUQD5AcSAH9ABGABCDUB0BQABxnFasQC0ZLJGnGtj/6tmrsO1KpaJB2VY8qG+Gba+K7n/RbMz662IHXj58aWvlYhTjSlCdPGvfy2IHXvccvfIiKX62+NSu+FLSJVvZahhTH1fsiQzVVhbtfjyzbtHWwzU6cClZzpK4N/0uzW+Y7iuPqjZzLsvREX33PJ5Zr2jb7r2mnNLsHE+l5USDLdMJH+AWioy8TNlMEVU6BU+koP8kEbSstgiU7dEhQh9SUDpFURBFpB9atfalM9Kkq3wQQ2Xg7kFyl6gxINHN6pa9SaAENL037ZUS3imBWM3CBMxJjZAgI0k6dC4y/SbFBv/6tRSCMjn0N6UuTWMNZBaZqP/eEsVEk7ZSUzpleZJSU9AOFdAB5dCtBS8cpCeRC35oQiIgIChYtyfH16ft9q+wCPkN3t752g3w4ffA/g//z/zpcTugCAIggK+LJX+DnqLCGMglkB/eShh+zfFonQCnC+2jOkdlAA0BFAURohsSAgqNIqFYDmBKqIlsxOY3m6Dxi03iPGFTUmxj0yINsiUCUrSaIQsWWbjpc7IEy8KGhPAk9AVhga/KmxIwK2RMUJ1S1SoUqlFvyohtmgyYEdZs3ACeX6MRYzabMiCk1YiQMN6sGViigMQoZjya8WjGoyis8DVnj8PMrqWTH7yGhxWZNWe7EN6YcQuwJAkSZcIxpHY/FjInACswZQr20Yd57QgFR37lFiOGBRAAsslxXZEPhEAAGUhESTev4BNAV4yJpITCFMnWggQRNLUEUSOahpWmQcH79zQoksIuCihsep9WiUw+mHFfpcNJ5RbPAIv00vlZxdCCRt+KNCmWyhlKmJAlgUt8K6lVmXQuq1WUUc0KBJlhMq1WvqRlskS3KtmyVVLJPFjRNJCVqZSzBS1MuEpum0E10rGQVbhu9xgs5cGskgtug3oKXKUS0qlUkngYVauqaKklBkrSpin4ZSpbwomE1lHEOWI+8R7SgfVEjnpPNFhLfIUArCNy/n5mTVDHHFFn9nSabYl3/ZvYLI0vEfXp1gE=)format("woff2"),url(data:font/woff;base64,d09GRgABAAAAAASEAA0AAAAABXwAAQABAAAAAAAAAAAAAAAAAAAAAAAAAABHUE9TAAABMAAAAB4AAAAeRHRMdUdTVUIAAAFQAAAALQAAAC4tfxplT1MvMgAAAYAAAABTAAAAYGmlnq5jbWFwAAAB1AAAADwAAABUAMohV2dhc3AAAAIQAAAAEAAAABAAGAAhZ2x5ZgAAAiAAAADAAAAAwELfCadoZWFkAAAC4AAAADYAAAA2GnZrk2hoZWEAAAMYAAAAHwAAACQJCQOBaG10eAAAAzgAAAAXAAAAGAcQAE5sb2NhAAADUAAAAA4AAAAOAIgAiG1heHAAAANgAAAAHAAAACAAGwDzbmFtZQAAA3wAAADYAAAB3iYtQbtwb3N0AAAEVAAAADAAAABG/5SrMAABAAAACgAcABwAAURGTFQACAAEAAAAAP//AAAAAAAAeNpjYGRgYOBi0AFCZhc3nxAGiZzEkjwGkZKMxEwGEQYQYAER//+DSACUkQcoAAAAeNothTEOQFAQBWef/ZVevZfQqXQiKo3ix4FUDqNSOY87SBAmMxlco60k0KIJ6L/bTGM1qExFUsEjvImfrh2CA2LzfJ3gWVWYGYBcOxDoBuCVClMAeNpjYGBgAmJmIBYBkoxgmoXBAUjzMHAA5ViALF4GBYYFClv+/weykXmM/7/+f/w/9X4ASB8CAACScQ45AAEAAwAIAAoAEAAF//8ADwACACAAAAG4AwwAAwAHAAAzESERJSERISABmP6kASD+4AMM/PQ8ApQAAQAu//QCRgLGADUAAAUiLgI1NDY3IzUzNyE1ITY1NCYjIgYHJz4BMzIeAhUUBzMVIwchFSEOARUUFjMyNjcXDgEBPDBNNh4IBUp9pv7dAXcJQTonRh41KmY3LEk1HQlOfqYBJP6ICAhHPCpLKTMobgwcMUUqFiMPQ2BDFh02NR4jNS4oGC1BKCIYQ2BDDiAUPDwjKzcwMQABAAAAAQBBzvNdCF8PPPUACQPoAAAAANm84TwAAAAA3PJHEf5N/esGXQQ0AAAACQACAAAAAAAAeNpjYGRgYIn5+4qBga36n+9/UbZYoAgqYAMAjoYFkwB42mO8waDAAAJvIJiphEEPRAMANRYEYgAAAAAUABQAFAAUAGAAYAAAeNpjYGRgYGBjmMDAw5DIwArmIQAzAyMAGHQBD3jalc4BR0NRGIDhZ7VSMECAHATQXcugBlVElFIJAatu25jtOndl/ad+Wr8g0MFxGVA+eA7ne33Y8mZdq72Np9Zudsuen+w1Hd/Z6058Zbf1LbM37HjO3lToZ3eSGFukqRzrpqm9iCYqi+RCnTxVmItGum5cuHLpzLVbU6Wle0MztQfjpIl9d0oj76aGokelKJXMzQQ9hV5uhKYSmk5oSmG1lDcHze7gn5esvv5ywbm5yqeYPDK2EBw60HMkNIX0S1QpBKemaYJmQ+qJSrVS9KH0qvgFlnxHCnjaY2BiAIP/CxlsGLABNiBmZGRiYGZkZmRhL83LNDAwcAHRRgZOJhC+owEAx1QIaw==)format("woff");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:IBM Plex Sans Thai;font-style:normal;font-display:swap;font-weight:400;src:url(/data-career-lab/_astro/ibm-plex-sans-thai-thai-400-normal.Bt1rR4gi.woff2)format("woff2"),url(/data-career-lab/_astro/ibm-plex-sans-thai-thai-400-normal.DKc8V4lk.woff)format("woff");unicode-range:U+2D7,U+303,U+331,U+E01-E5B,U+200C-200D,U+25CC}@font-face{font-family:IBM Plex Sans Thai;font-style:normal;font-display:swap;font-weight:400;src:url(/data-career-lab/_astro/ibm-plex-sans-thai-latin-ext-400-normal.DBkYO1u-.woff2)format("woff2"),url(/data-career-lab/_astro/ibm-plex-sans-thai-latin-ext-400-normal.n-X-g5Z4.woff)format("woff");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:IBM Plex Sans Thai;font-style:normal;font-display:swap;font-weight:400;src:url(/data-career-lab/_astro/ibm-plex-sans-thai-latin-400-normal.CwmoKdEh.woff2)format("woff2"),url(/data-career-lab/_astro/ibm-plex-sans-thai-latin-400-normal.YXrLwNa7.woff)format("woff");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:IBM Plex Sans Thai;font-style:normal;font-display:swap;font-weight:600;src:url(data:font/woff2;base64,d09GMgABAAAAAAV4ABAAAAAAChgAAAUeAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGx4cLgZgAFQISAmCcxEQCoMsgzILDgABNgIkAxgEIAWDQAdGDINkG/gICB4HzvksHpSclNDkippHLXj4bGp/ZleEBnzJyIBCI8oOkMxSgBVgUI464KLU8UbB+pBL5NIngtxdgHFLKA/SQF4gooyDBAOt/2vHv09dmm5Jwz5eumAwSLdppWDtFODK0QC2Lxj9hqVZgN7e3+hB5LVU90rtdlc6G8ew80QEYKdSJREfXz6NFR0gD+AkDgrSWkvXpiP7KPxb1J0UAoL26XKrTGICmVnzYdmfLdaTTN0gHRbNJDWkBmiABABYMlYoHoI6+tr5n0FfK4uVEAJA2mUOUCQgAQ0opCGAQjpDwIkViQ64UF5Sr+VB+S2R/8+ll0Awed8SU5ZbZ1TSdqvssVybkEdY7KhdLvAY4Mx3cYolOPIDdHEQs7TjlLkafgsaLtKA4DSwJZIvC/FYyhD5qwbxehsb2ob1IQMRVGpsZzwrNoYMZNBANAVCBlpQjWe12vHJZHVKZVRmydaMGlc7Nm3N6rUpsdiTzqQiKstU7OzapyOQHUpVbPWkU6mekIHOw7o7k0JA7SLhXSQ7Zz5kYAouU1mtLpGcSGYvxCtSczzvCATUWPZhIjkPxysCI8lc5guTdeLsztKrQ4vH3JTZrTTzVGEeyvKkdkaZrg5kLxTFikx1ql9k8DDXKKAP+QzI9VrtmCEuJGzMF2CtSKklVbpTFdN/cDxkYAsum0qOxSsCgVQIgYYVO16mfJ4HADMATkAD+sAyAKAD/5IAgABdb3NYXObNDpN9U+azjz4TF58tsQvHnF24nhQX37NnErMPPnfc+vTDT7lQ6sA+7cL5FBc+dNz6fHDm7ifK+ZRzcO7HtT/2LHZ0TC48Vrm0yVVdunjq4K1l89N71hdHGsPLu0cT9bua+2MrKhOVI3Xlc8umT95YJqf2JQrbLrfWjqi5+MTSvW05gBw6Vmw+f7eB7jXgAwwYCwMi5Tbg7ykD8Y0B70X/xiC8BpZvorEc5dq0Z393ICpnl1swO1Z9Dhfl2O+OrsiwiQgXg1zIdcMaf3Ih1t3Gjvx3m+fB3mFD/GtweRXYDctrC7n/zSkudFG73V6DwDO4AGugHdZCG2ywEIpDwigboS+NxhCAYLg1HXthg6fvP6tN+xHgy7u/H+Cbvxf5/h+Z/8W8Xk8ANiQAAr4XbvMZJ1a+ZAGCiYpZfIFi/7XOyfM0qKwifVaewMl2JgQAdpCIb9EQgJVtNIRuA1YnIBV0eEsqcXNXqjHi1LzuKjVRbKvUTFRbt5s2sMORmfCAHpHqw7Y4ZKdaeMRh4cvZaY+w/Q7ZLmKVccstMWKFhD3STpiyyT6HTdthk51CpqTttdOI/fbYalbaISaFE/soMWExK0cvdbNKLx9Ojm931B6bHOIZOS5VulSpXtWP2u+Ak4+3bf8oVyotomK6KWwr558eckCYMmyPPVSg7bDSkl7D9K88Jm2rMAkA+UianGEGhJBoQhO65ei+nVGxxpFviY60qW8djhrQLIfAjWwWLdeDBh88pU2zKqU8gLX5AV7NalQq5OyP+dRTyvg5xEx+lWBUp2bViqyrJUv0iST0MotWNMfUqeBDtc6UuPbSUYKKiUFtqavSddxMh6CAsqTawrhuodJRgIqVVk2poJTbbrsEAb3wKju7zImLqZSrHJy21UpdauQqJw2UUj52GXexwqComsdsu4mqv9ZJcvjZsDQb8FPpyDGomDiypg/RD9BfQl77UTeCHF7lsG4EOAw8BjOutA6CqB37QX8R/QkOoyhxdyRQk7SAOAIAAAA=)format("woff2"),url(data:font/woff;base64,d09GRgABAAAAAASAAA0AAAAABVQAAQABAAAAAAAAAAAAAAAAAAAAAAAAAABHUE9TAAABMAAAAB4AAAAeRHRMdUdTVUIAAAFQAAAALQAAAC4tfxplT1MvMgAAAYAAAABSAAAAYGpxoOFjbWFwAAAB1AAAADwAAABUAMohV2dhc3AAAAIQAAAAEAAAABAAGAAhZ2x5ZgAAAiAAAAC4AAAAuIJK/GhoZWFkAAAC2AAAADYAAAA2GmxrsGhoZWEAAAMQAAAAHwAAACQI/wOEaG10eAAAAzAAAAAXAAAAGAcbAEhsb2NhAAADSAAAAA4AAAAOAIIAgm1heHAAAANYAAAAHAAAACAAGwD5bmFtZQAAA3QAAADZAAABwCLFP6pwb3N0AAAEUAAAADAAAABG/6irTAABAAAACgAcABwAAURGTFQACAAEAAAAAP//AAAAAAAAeNpjYGRgYOBi0AFCZhc3nxAGiZzEkjwGkZKMxEwGEQYQYAER//+DSACUkQcoAAAAeNothTEOQEAUBec/u5HQq/81tDoR/RYbldM4j0rlPO4gscJkJkPQqkQEbeUwfbeFZD2orauoiiK8iZ9xmJ0TfA/5viBkdW5mAGp0AI4e3IAKVQAAeNpjYGBgAmJmIBYBkoxgmoXBAUjzMHAA5ViALF4GBYYFClv+/weykXmM/7/+f/w/9X4ASB8CAACScQ45AAEAAwAIAAoAEAAF//8ADwACACAAAAG4AwwAAwAHAAAzESERJTMRIyABmP7A6OgDDPz0WAJcAAEAKP/0AlcCxgAzAAAFIi4CNTQ2NyM1MzcjNSE2NTQmIyIHJz4BMzIeAhUUBzMVIwchFSEGFRQWMzI2NxcOAQFJNlM4HQMCSHGM/QFsBjMuTDREI2s9MU42HQZLeYkBAv6SBjkzJUMmRSVuDCA3SyoNFAlTTFQPFi8qOlEoLB0xQyYaGFRMUxEUNDQhKFIrNQAAAQAAAAEAQVVJdwRfDzz1AAkD6AAAAADZvOE9AAAAANzyRxH+Qv3rBl4EUAAAAAkAAgAAAAAAAHjaY2BkYGCJ+fuKgYGt5p/Tf3G2OKAIKmADAI3fBYwAeNpjvMGgwAACbyCYqZ5BA0QDADVFBGcAAAAAEwATABMAEwBcAFwAAHjaY2BkYGBgY5jAwMOQzsAK5iEAMwMjABjyARV42pWMtWFDQRBEn5kdOv4FmBkSk5gZIjEzS7WpAlWlCcSZjvbN7ewAx+TYY2f/BIjvMOMdXpnMeJdLxjPe45fRjPdXPAdckZnxIfc8z/hSBAU62g0+udNuk6ZFUbojvqUtrqjWaZFX34MZJzZ+ceFVJ8uAAElqcgYpiIrc6CdLVfRLXZ4MYekWyqIup8EDtzzM3q9ZmiHaNtcvnacrTtJa5MzmRbME0SxDtJnxp9pgSIsiebk6GDxyzwMfolkmctGS71b8Q0XbWJloI0VWNava05vhdgr05EGRAAAAeNpjYGIAg/9bGSIYsAE2IGZkZGJgZmRmZGEvzcs0MDBwAdFGBk4mEL6jAQDSjAib)format("woff");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:IBM Plex Sans Thai;font-style:normal;font-display:swap;font-weight:600;src:url(/data-career-lab/_astro/ibm-plex-sans-thai-thai-600-normal.DvfsyWAn.woff2)format("woff2"),url(/data-career-lab/_astro/ibm-plex-sans-thai-thai-600-normal.BOwfviun.woff)format("woff");unicode-range:U+2D7,U+303,U+331,U+E01-E5B,U+200C-200D,U+25CC}@font-face{font-family:IBM Plex Sans Thai;font-style:normal;font-display:swap;font-weight:600;src:url(/data-career-lab/_astro/ibm-plex-sans-thai-latin-ext-600-normal.BXI6PlF4.woff2)format("woff2"),url(/data-career-lab/_astro/ibm-plex-sans-thai-latin-ext-600-normal.iH120vlL.woff)format("woff");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:IBM Plex Sans Thai;font-style:normal;font-display:swap;font-weight:600;src:url(/data-career-lab/_astro/ibm-plex-sans-thai-latin-600-normal.BR-dhaTH.woff2)format("woff2"),url(/data-career-lab/_astro/ibm-plex-sans-thai-latin-600-normal.P_JjY83V.woff)format("woff");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}:root{--bg:#fbfaf7;--surface:#fff;--surface-2:#f3f1ec;--text:#1d1c1a;--muted:#6b6860;--border:#e3e0d8;--accent:#2f6fed;--accent-text:#fff;--pass:#1f7a45;--pass-bg:#e4f3ea;--fail:#b93b27;--fail-bg:#fbe9e5;--warn:#7a5600;--warn-bg:#fff3d1;--code-bg:#f6f5f1;--radius:10px;--font:"IBM Plex Sans Thai", system-ui, sans-serif;--mono:ui-monospace, "SF Mono", Menlo, Consolas, monospace;color-scheme:light}@media (prefers-color-scheme:dark){:root:not([data-theme=light]){--bg:#151514;--surface:#1d1d1b;--surface-2:#262623;--text:#ecebe6;--muted:#a09d94;--border:#34332f;--accent:#6b9bff;--accent-text:#0d1426;--pass:#6fcf97;--pass-bg:#16301f;--fail:#ff8a75;--fail-bg:#3a1c16;--warn:#f2c14e;--warn-bg:#33290f;--code-bg:#1a1a18;color-scheme:dark}}:root[data-theme=dark]{--bg:#151514;--surface:#1d1d1b;--surface-2:#262623;--text:#ecebe6;--muted:#a09d94;--border:#34332f;--accent:#6b9bff;--accent-text:#0d1426;--pass:#6fcf97;--pass-bg:#16301f;--fail:#ff8a75;--fail-bg:#3a1c16;--warn:#f2c14e;--warn-bg:#33290f;--code-bg:#1a1a18;color-scheme:dark}*{box-sizing:border-box}body{background:var(--bg);color:var(--text);font-family:var(--font);margin:0;font-size:17px;line-height:1.7}a{color:var(--accent)}h1,h2,h3{line-height:1.3}h2{margin-top:2.2rem}code,pre{font-family:var(--mono);font-size:.9em}:not(pre)>code{background:var(--code-bg);border:1px solid var(--border);overflow-wrap:anywhere;border-radius:4px;padding:0 .3em}pre{white-space:pre-wrap;margin:0}table{border-collapse:collapse;width:100%;font-size:.95em}th,td{border-bottom:1px solid var(--border);text-align:left;vertical-align:top;padding:.4rem .6rem}.sr-only{clip:rect(0 0 0 0);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}.muted{color:var(--muted)}.lead{color:var(--muted);font-size:1.1rem}.site-header{border-bottom:1px solid var(--border);background:var(--surface);z-index:10;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:1rem;padding:.75rem 16px;display:flex;position:sticky;top:0}.site-header nav{flex-wrap:wrap;align-items:center;gap:1rem;display:flex}.site-header a{color:var(--text);white-space:nowrap;text-decoration:none}@media (width<=480px){.site-header{gap:.5rem}.site-header nav{gap:.6rem;font-size:.9rem}}.brand{text-overflow:ellipsis;white-space:nowrap;min-width:0;font-weight:600;overflow:hidden}.site-header nav{flex:none}.container{max-width:1120px;margin:0 auto;padding:1.5rem 16px 4rem}.banner{background:var(--warn-bg);color:var(--warn);text-align:center;padding:.6rem 16px}.card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);margin:1rem 0;padding:1rem 1.25rem}.hero{padding:2rem 0 1rem}.hero h1{margin:0 0 .5rem;font-size:2.2rem}.track-grid{grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:1rem;display:grid}.track-card.soon{opacity:.65}.step{color:var(--muted);margin:0;font-size:.85rem}.badge{background:var(--surface-2);color:var(--muted);border-radius:999px;padding:.1rem .6rem;font-size:.8rem;display:inline-block}button,.button{font:inherit;border:1px solid var(--border);background:var(--surface-2);color:var(--text);cursor:pointer;border-radius:8px;padding:.35rem .9rem;font-size:.95rem;text-decoration:none;display:inline-block}button:disabled{opacity:.55;cursor:default}button.primary,.button.primary{background:var(--accent);border-color:var(--accent);color:var(--accent-text)}button.ghost{background:0 0}button.danger{border-color:var(--fail);color:var(--fail);background:0 0}button:focus-visible,a:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.crumb{color:var(--muted);margin:0;font-size:.9rem}.module-list,.lesson-list{padding:0;list-style:none}.module-card{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:1rem;display:flex}.module-card h2{margin:.2rem 0}.lesson-list li{border-bottom:1px solid var(--border);padding:.5rem 0}.lesson-layout{grid-template-columns:240px minmax(0,1fr);gap:2rem;display:grid}.lesson-aside{align-self:start;font-size:.92rem;position:sticky;top:4rem}@media (width<=860px){.lesson-layout{grid-template-columns:minmax(0,1fr)}.lesson-aside{position:static}}.lesson-nav{margin:0;padding:0;list-style:none}.lesson-nav a{color:var(--text);border-radius:6px;gap:.5rem;padding:.3rem .4rem;text-decoration:none;display:flex}.lesson-nav li.current a{background:var(--surface-2);font-weight:600}.lesson-nav .icon{flex:none;width:1.2em}.lesson-nav .stars{color:var(--warn);margin-left:auto}.pager{justify-content:space-between;gap:1rem;margin-top:3rem;display:flex}.pager .next{margin-left:auto}.runner,.exercise,.worked{margin:1rem 0}.editor{border:1px solid var(--border);border-radius:8px;font-size:.92rem;overflow:hidden}.runner-bar{flex-wrap:wrap;align-items:center;gap:.5rem;margin:.5rem 0;display:flex}.runner-title{margin-bottom:.3rem;font-weight:600}.lang-tag{color:var(--muted);margin-left:auto;font-size:.8rem}.run-note{color:var(--muted);font-size:.85rem}.output{border-left:3px solid var(--border);margin:.5rem 0;padding:.4rem .8rem;overflow-x:auto}.output img{background:#fff;border-radius:6px;max-width:100%}.out-error{color:var(--fail)}.table-wrap{overflow-x:auto}.table-wrap td,.table-wrap th{white-space:nowrap}.table-wrap caption{caption-side:bottom;text-align:left;color:var(--muted);padding-top:.3rem;font-size:.85rem}.null{color:var(--muted);font-style:italic}.load-error{background:var(--warn-bg);color:var(--warn);border-radius:8px;padding:.5rem .8rem}.exercise-head{align-items:center;gap:.5rem;display:flex}.level,.status{background:var(--surface-2);border-radius:999px;padding:.05rem .55rem;font-size:.8rem}.status-self{background:var(--pass-bg);color:var(--pass)}.status-with-solution{background:var(--warn-bg);color:var(--warn)}.status-failed{background:var(--fail-bg);color:var(--fail)}.verdict{white-space:pre-wrap;border-radius:8px;padding:.5rem .8rem}.verdict.pass{background:var(--pass-bg);color:var(--pass)}.verdict.fail{background:var(--fail-bg);color:var(--fail)}.hints{background:var(--surface-2);border-radius:8px;padding:.4rem 1rem .4rem 2rem}.solution,.pitfall{border-top:1px dashed var(--border);margin-top:.8rem;padding-top:.5rem}.pitfall{background:var(--warn-bg);border-radius:8px;padding:.6rem .9rem}.steps>li{margin-bottom:1rem}.drill-filters{flex-wrap:wrap;align-items:center;gap:.75rem;margin:1rem 0;display:flex}.drill-filters label{color:var(--muted);flex-direction:column;gap:.2rem;font-size:.85rem;display:flex}.drill-filters select,.drill-filters input[type=search]{font:inherit;border:1px solid var(--border);background:var(--surface);color:var(--text);border-radius:6px;padding:.3rem .5rem}.flashcard{text-align:center;cursor:pointer;width:100%;padding:3rem 1.5rem;font-size:1.2rem;display:block}.quiz-q{border:1px solid var(--border)}.quiz-q legend{padding:0 .3rem;font-weight:600}.choice{text-align:left;background:var(--surface);width:100%;margin:.35rem 0;display:block}.choice.right{border-color:var(--pass);background:var(--pass-bg)}.choice.wrong{border-color:var(--fail);background:var(--fail-bg)}.why{color:var(--muted);font-size:.93rem}.progress{align-items:center;gap:.6rem;min-width:180px;display:flex}.progress .bar{background:var(--surface-2);border-radius:999px;flex:1;height:8px;overflow:hidden}.progress .bar span{background:var(--pass);height:100%;display:block}.interview summary{cursor:pointer;font-weight:600}
