@font-face{font-family:Lexend;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/lexend-vietnamese-500-normal-Bos7Oy9U.woff2)format("woff2"),url(/assets/lexend-vietnamese-500-normal-EFAPmUTE.woff)format("woff");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Lexend;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/lexend-latin-ext-500-normal-Bo17xs96.woff2)format("woff2"),url(/assets/lexend-latin-ext-500-normal-DbCmXT_D.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:Lexend;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/lexend-latin-500-normal-Dl-X5nog.woff2)format("woff2"),url(/assets/lexend-latin-500-normal-D9x1QWTH.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:Lexend;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/lexend-vietnamese-600-normal-Cr1ePs6O.woff2)format("woff2"),url(/assets/lexend-vietnamese-600-normal-BxEVPgxw.woff)format("woff");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Lexend;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/lexend-latin-ext-600-normal-hDcqLAH9.woff2)format("woff2"),url(/assets/lexend-latin-ext-600-normal-BXtyp5LP.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:Lexend;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/lexend-latin-600-normal-DdvlkEkX.woff2)format("woff2"),url(/assets/lexend-latin-600-normal-DSBzZxpA.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:Lexend;font-style:normal;font-display:swap;font-weight:700;src:url(/assets/lexend-vietnamese-700-normal-BrGlFDtO.woff2)format("woff2"),url(/assets/lexend-vietnamese-700-normal-NEp7hM5T.woff)format("woff");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Lexend;font-style:normal;font-display:swap;font-weight:700;src:url(/assets/lexend-latin-ext-700-normal-CcWyeg4T.woff2)format("woff2"),url(/assets/lexend-latin-ext-700-normal-iR1cPiNX.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:Lexend;font-style:normal;font-display:swap;font-weight:700;src:url(/assets/lexend-latin-700-normal-DqO8md6r.woff2)format("woff2"),url(/assets/lexend-latin-700-normal-DVyJlN8t.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:Inter;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/inter-cyrillic-ext-400-normal-BQZuk6qB.woff2)format("woff2"),url(/assets/inter-cyrillic-ext-400-normal-DQukG94-.woff)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:Inter;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/inter-cyrillic-400-normal-obahsSVq.woff2)format("woff2"),url(/assets/inter-cyrillic-400-normal-HOLc17fK.woff)format("woff");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/inter-greek-ext-400-normal-DGGRlc-M.woff2)format("woff2"),url(/assets/inter-greek-ext-400-normal-KugGGMne.woff)format("woff");unicode-range:U+1F??}@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/inter-greek-400-normal-B4URO6DV.woff2)format("woff2"),url(/assets/inter-greek-400-normal-q2sYcFCs.woff)format("woff");unicode-range:U+370-377,U+37A-37F,U+384-38A,U+38C,U+38E-3A1,U+3A3-3FF}@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/inter-vietnamese-400-normal-DMkecbls.woff2)format("woff2"),url(/assets/inter-vietnamese-400-normal-Bbgyi5SW.woff)format("woff");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/inter-latin-ext-400-normal-C1nco2VV.woff2)format("woff2"),url(/assets/inter-latin-ext-400-normal-77YHD8bZ.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:Inter;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/inter-latin-400-normal-C38fXH4l.woff2)format("woff2"),url(/assets/inter-latin-400-normal-CyCys3Eg.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:Inter;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/inter-cyrillic-ext-500-normal-B0yAr1jD.woff2)format("woff2"),url(/assets/inter-cyrillic-ext-500-normal-BmqWE9Dz.woff)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:Inter;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/inter-cyrillic-500-normal-BasfLYem.woff2)format("woff2"),url(/assets/inter-cyrillic-500-normal-CxZf_p3X.woff)format("woff");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/inter-greek-ext-500-normal-C4iEst2y.woff2)format("woff2"),url(/assets/inter-greek-ext-500-normal-2j5mBUwD.woff)format("woff");unicode-range:U+1F??}@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/inter-greek-500-normal-BIZE56-Y.woff2)format("woff2"),url(/assets/inter-greek-500-normal-Xzm54t5V.woff)format("woff");unicode-range:U+370-377,U+37A-37F,U+384-38A,U+38C,U+38E-3A1,U+3A3-3FF}@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/inter-vietnamese-500-normal-DOriooB6.woff2)format("woff2"),url(/assets/inter-vietnamese-500-normal-mJboJaSs.woff)format("woff");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/inter-latin-ext-500-normal-CV4jyFjo.woff2)format("woff2"),url(/assets/inter-latin-ext-500-normal-BxGbmqWO.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:Inter;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/inter-latin-500-normal-Cerq10X2.woff2)format("woff2"),url(/assets/inter-latin-500-normal-BL9OpVg8.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:Inter;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/inter-cyrillic-ext-600-normal-Dfes3d0z.woff2)format("woff2"),url(/assets/inter-cyrillic-ext-600-normal-Bcila6Z-.woff)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:Inter;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/inter-cyrillic-600-normal-CWCymEST.woff2)format("woff2"),url(/assets/inter-cyrillic-600-normal-4D_pXhcN.woff)format("woff");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/inter-greek-ext-600-normal-DRtmH8MT.woff2)format("woff2"),url(/assets/inter-greek-ext-600-normal-B8X0CLgF.woff)format("woff");unicode-range:U+1F??}@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/inter-greek-600-normal-plRanbMR.woff2)format("woff2"),url(/assets/inter-greek-600-normal-BZpKdvQh.woff)format("woff");unicode-range:U+370-377,U+37A-37F,U+384-38A,U+38C,U+38E-3A1,U+3A3-3FF}@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/inter-vietnamese-600-normal-Cc8MFFhd.woff2)format("woff2"),url(/assets/inter-vietnamese-600-normal-BuLX-rYi.woff)format("woff");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/inter-latin-ext-600-normal-D2bJ5OIk.woff2)format("woff2"),url(/assets/inter-latin-ext-600-normal-CIVaiw4L.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:Inter;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/inter-latin-600-normal-LgqL8muc.woff2)format("woff2"),url(/assets/inter-latin-600-normal-CiBQ2DWP.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:Inter;font-style:normal;font-display:swap;font-weight:700;src:url(/assets/inter-cyrillic-ext-700-normal-BjwYoWNd.woff2)format("woff2"),url(/assets/inter-cyrillic-ext-700-normal-LO58E6JB.woff)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:Inter;font-style:normal;font-display:swap;font-weight:700;src:url(/assets/inter-cyrillic-700-normal-CjBOestx.woff2)format("woff2"),url(/assets/inter-cyrillic-700-normal-DrXBdSj3.woff)format("woff");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:700;src:url(/assets/inter-greek-ext-700-normal-qfdV9bQt.woff2)format("woff2"),url(/assets/inter-greek-ext-700-normal-BoQ6DsYi.woff)format("woff");unicode-range:U+1F??}@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:700;src:url(/assets/inter-greek-700-normal-C3JjAnD8.woff2)format("woff2"),url(/assets/inter-greek-700-normal-BUv2fZ6O.woff)format("woff");unicode-range:U+370-377,U+37A-37F,U+384-38A,U+38C,U+38E-3A1,U+3A3-3FF}@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:700;src:url(/assets/inter-vietnamese-700-normal-DlLaEgI2.woff2)format("woff2"),url(/assets/inter-vietnamese-700-normal-BZaoP0fm.woff)format("woff");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:700;src:url(/assets/inter-latin-ext-700-normal-Ca8adRJv.woff2)format("woff2"),url(/assets/inter-latin-ext-700-normal-TidjK2hL.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:Inter;font-style:normal;font-display:swap;font-weight:700;src:url(/assets/inter-latin-700-normal-Yt3aPRUw.woff2)format("woff2"),url(/assets/inter-latin-700-normal-BLAVimhd.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 Mono;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/ibm-plex-mono-cyrillic-ext-400-normal-xuaO2J-f.woff2)format("woff2"),url(/assets/ibm-plex-mono-cyrillic-ext-400-normal-DMdlQ8Kv.woff)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 Mono;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/ibm-plex-mono-cyrillic-400-normal-BSMlKf0J.woff2)format("woff2"),url(/assets/ibm-plex-mono-cyrillic-400-normal-CEL4l2ZJ.woff)format("woff");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/ibm-plex-mono-vietnamese-400-normal-BulugwFq.woff2)format("woff2"),url(/assets/ibm-plex-mono-vietnamese-400-normal-DDuiU_S-.woff)format("woff");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/ibm-plex-mono-latin-ext-400-normal-BmRBH3aV.woff2)format("woff2"),url(/assets/ibm-plex-mono-latin-ext-400-normal-D3D2R8hC.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 Mono;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/ibm-plex-mono-latin-400-normal-DMJ8VG8y.woff2)format("woff2"),url(/assets/ibm-plex-mono-latin-400-normal-CvHOgSBP.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 Mono;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/ibm-plex-mono-cyrillic-ext-500-normal-BqneJy0T.woff2)format("woff2"),url(/assets/ibm-plex-mono-cyrillic-ext-500-normal-BIfNGwUT.woff)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 Mono;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/ibm-plex-mono-cyrillic-500-normal-Bq9vWWag.woff2)format("woff2"),url(/assets/ibm-plex-mono-cyrillic-500-normal-Ael50iVv.woff)format("woff");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/ibm-plex-mono-vietnamese-500-normal-DZ4AoWbu.woff2)format("woff2"),url(/assets/ibm-plex-mono-vietnamese-500-normal-C8zxqsMH.woff)format("woff");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/ibm-plex-mono-latin-ext-500-normal-CAhNIIs5.woff2)format("woff2"),url(/assets/ibm-plex-mono-latin-ext-500-normal-CZ70TYgx.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 Mono;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/ibm-plex-mono-latin-500-normal-DSY6xOcd.woff2)format("woff2"),url(/assets/ibm-plex-mono-latin-500-normal-CB9ihrfo.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{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;--font-display:"Lexend", ui-sans-serif, system-ui, sans-serif;--font-body:"Inter", -apple-system, "Segoe UI", Helvetica, Arial, sans-serif;--font-mono:"IBM Plex Mono", ui-monospace, "SF Mono", Consolas, monospace;--text-xs:.75rem;--text-sm:.8125rem;--text-base:1rem;--text-md:1.0625rem;--text-lg:1.25rem;--text-xl:1.5rem;--text-2xl:1.875rem;--text-3xl:2.375rem;--leading-tight:1.2;--leading-normal:1.55;--space-1:.25rem;--space-2:.5rem;--space-3:.75rem;--space-4:1rem;--space-5:1.5rem;--space-6:2rem;--space-7:3rem;--space-8:4rem;--radius-sm:6px;--radius-md:10px;--radius-lg:16px;--radius-full:999px;--shadow-sm:0 1px 2px #10233f12;--shadow-md:0 6px 20px #10233f1a;--shadow-focus:0 0 0 3px var(--color-focus-ring-soft);--sidebar-width:15.5rem;--header-height:3.75rem;--content-max:74rem;--ease-out:cubic-bezier(.16, 1, .3, 1);--duration-fast:.12s;--duration-base:.2s;--color-ink:#10233f;--color-ink-soft:#45566e;--color-ink-faint:#7c8ca3;--color-paper:#f6f8fa;--color-surface:#fff;--color-surface-sunken:#eef1f5;--color-border:#dde3ea;--color-border-strong:#c3ccd6;--color-brand:#0e7c86;--color-brand-strong:#0b616a;--color-brand-soft:#e2f2f1;--color-on-brand:#fff;--color-flame:#d9631a;--color-flame-soft:#fce7d8;--color-success:#15803d;--color-success-bg:#dcfce7;--color-warning:#a16207;--color-warning-bg:#fef3c7;--color-danger:#b91c1c;--color-danger-bg:#fee2e2;--color-focus-ring:#0e7c86;--color-focus-ring-soft:#0e7c8647;--color-overlay:#1018267a}@media (prefers-color-scheme:dark){:root:not([data-theme=light]){--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--color-ink:#e7ecf2;--color-ink-soft:#aebccb;--color-ink-faint:#7d8ea2;--color-paper:#0b1420;--color-surface:#121d2c;--color-surface-sunken:#0e1826;--color-border:#223347;--color-border-strong:#314a63;--color-brand:#4fc4bf;--color-brand-strong:#7bd6d1;--color-brand-soft:#11302d;--color-on-brand:#06181a;--color-flame:#f0925a;--color-flame-soft:#3a2417;--color-success:#4ade80;--color-success-bg:#0f2a1b;--color-warning:#fcd34d;--color-warning-bg:#2e2306;--color-danger:#fca5a5;--color-danger-bg:#3a1616;--color-focus-ring:#4fc4bf;--color-focus-ring-soft:#4fc4bf52;--color-overlay:#03080e99;--shadow-sm:0 1px 2px #00000059;--shadow-md:0 10px 28px #00000073}}:root[data-theme=dark]{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--color-ink:#e7ecf2;--color-ink-soft:#aebccb;--color-ink-faint:#7d8ea2;--color-paper:#0b1420;--color-surface:#121d2c;--color-surface-sunken:#0e1826;--color-border:#223347;--color-border-strong:#314a63;--color-brand:#4fc4bf;--color-brand-strong:#7bd6d1;--color-brand-soft:#11302d;--color-on-brand:#06181a;--color-flame:#f0925a;--color-flame-soft:#3a2417;--color-success:#4ade80;--color-success-bg:#0f2a1b;--color-warning:#fcd34d;--color-warning-bg:#2e2306;--color-danger:#fca5a5;--color-danger-bg:#3a1616;--color-focus-ring:#4fc4bf;--color-focus-ring-soft:#4fc4bf52;--color-overlay:#03080e99;--shadow-sm:0 1px 2px #00000059;--shadow-md:0 10px 28px #00000073}*,:before,:after{box-sizing:border-box}html{-webkit-text-size-adjust:100%}body{background:var(--color-paper);min-height:100vh;color:var(--color-ink);font-family:var(--font-body);font-size:var(--text-base);line-height:var(--leading-normal);font-variant-numeric:tabular-nums;margin:0}#root{min-height:100vh}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}h1,h2,h3,h4{font-family:var(--font-display);font-weight:600;line-height:var(--leading-tight);color:var(--color-ink);text-wrap:balance;margin:0}h1{font-size:var(--text-2xl)}h2{font-size:var(--text-lg);font-weight:600}h3{font-size:var(--text-md);font-weight:600}p{color:var(--color-ink);margin:0}.mono{font-family:var(--font-mono);font-size:.93em}a{color:var(--color-brand);text-underline-offset:2px;text-decoration-thickness:1.5px}a:hover{color:var(--color-brand-strong)}a:focus-visible,button:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible,[tabindex]:focus-visible{outline:2px solid var(--color-focus-ring);outline-offset:2px;border-radius:var(--radius-sm)}button{font-family:inherit}::selection{background:var(--color-brand);color:var(--color-on-brand)}::-webkit-scrollbar{width:10px;height:10px}::-webkit-scrollbar-track{background:0 0}::-webkit-scrollbar-thumb{background:var(--color-border-strong);border-radius:var(--radius-full);border:2px solid var(--color-paper)}.skip-link{top:-3rem;left:var(--space-4);z-index:1000;background:var(--color-ink);color:var(--color-paper);padding:var(--space-2) var(--space-4);border-radius:var(--radius-sm);font-weight:600;font-size:var(--text-sm);transition:top var(--duration-fast) var(--ease-out);position:absolute}.skip-link:focus{top:var(--space-4)}.sr-only{clip:rect(0, 0, 0, 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.app-shell{min-height:100vh;display:flex}.app-sidebar{width:var(--sidebar-width);background:var(--color-surface);border-right:1px solid var(--color-border);flex-direction:column;flex-shrink:0;height:100vh;display:flex;position:sticky;top:0;overflow-y:auto}button.icon-button.app-sidebar-close{display:none}.app-brand{align-items:center;gap:var(--space-2);padding:var(--space-5) var(--space-4) var(--space-4);color:var(--color-ink);text-decoration:none;display:flex}.app-brand:hover{color:var(--color-ink)}.app-brand-mark{border-radius:var(--radius-sm);background:linear-gradient(155deg, var(--color-brand), var(--color-brand-strong));width:2rem;height:2rem;color:var(--color-on-brand);font-family:var(--font-display);flex-shrink:0;justify-content:center;align-items:center;font-size:.95rem;font-weight:700;display:flex}.app-brand-name{font-family:var(--font-display);letter-spacing:-.01em;font-size:1.05rem;font-weight:700}.app-nav{gap:var(--space-5);padding:var(--space-2) var(--space-3) var(--space-4);flex-direction:column;flex:1;display:flex}.app-nav-group-label{font-size:var(--text-xs);letter-spacing:.07em;text-transform:uppercase;color:var(--color-ink-faint);padding:0 var(--space-3);margin-bottom:var(--space-1);font-weight:700}.app-nav-group{flex-direction:column;gap:1px;display:flex}.app-nav-link{align-items:center;gap:var(--space-3);padding:.55rem var(--space-3);border-radius:var(--radius-sm);color:var(--color-ink-soft);font-size:var(--text-sm);font-weight:500;text-decoration:none;display:flex;position:relative}.app-nav-link:hover{background:var(--color-surface-sunken);color:var(--color-ink)}.app-nav-link .icon{opacity:.85;flex-shrink:0;width:1.15rem;height:1.15rem}.app-nav-link[aria-current=page]{background:var(--color-brand-soft);color:var(--color-brand-strong);font-weight:600}.app-nav-link[aria-current=page] .icon{opacity:1}.app-nav-link .badge-count{background:var(--color-flame);color:#fff;border-radius:var(--radius-full);text-align:center;min-width:1.1rem;margin-left:auto;padding:.05rem .4rem;font-size:.68rem;font-weight:700}.app-sidebar-footer{padding:var(--space-3);border-top:1px solid var(--color-border);gap:var(--space-2);flex-direction:column;display:flex}.app-user-card{align-items:center;gap:var(--space-2);padding:var(--space-2);border-radius:var(--radius-sm);display:flex}.app-user-avatar{border-radius:var(--radius-full);background:var(--color-surface-sunken);width:2rem;height:2rem;color:var(--color-ink-soft);border:1px solid var(--color-border);flex-shrink:0;justify-content:center;align-items:center;font-size:.8rem;font-weight:700;display:flex}.app-user-meta{flex:1;min-width:0}.app-user-name{font-size:var(--text-sm);color:var(--color-ink);white-space:nowrap;text-overflow:ellipsis;font-weight:600;overflow:hidden}.app-user-role{font-size:var(--text-xs);color:var(--color-ink-soft);white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.app-main{flex-direction:column;flex:1;min-width:0;display:flex}.app-topbar{height:var(--header-height);padding:0 var(--space-4);background:var(--color-surface);border-bottom:1px solid var(--color-border);z-index:20;justify-content:space-between;align-items:center;display:none;position:sticky;top:0}.app-content{width:100%;max-width:var(--content-max);padding:var(--space-6) var(--space-5) var(--space-8);flex:1;margin:0 auto}.app-content:focus{outline:none}@media (width<=880px){.app-sidebar{z-index:40;transition:transform var(--duration-base) var(--ease-out);box-shadow:var(--shadow-md);position:fixed;inset:0 auto 0 0;transform:translate(-100%)}.app-sidebar.is-open{transform:translate(0)}button.icon-button.app-sidebar-close{top:var(--space-4);right:var(--space-3);display:inline-flex;position:absolute}.app-topbar{display:flex}.app-content{padding:var(--space-4) var(--space-4) var(--space-7)}.app-scrim{background:var(--color-overlay);z-index:30;position:fixed;inset:0}}.icon-button{border-radius:var(--radius-sm);width:2.25rem;height:2.25rem;color:var(--color-ink-soft);cursor:pointer;background:0 0;border:1px solid #0000;justify-content:center;align-items:center;display:inline-flex}.icon-button:hover{background:var(--color-surface-sunken);color:var(--color-ink)}.icon-button svg{width:1.15rem;height:1.15rem}.breadcrumbs{align-items:center;gap:var(--space-2);font-size:var(--text-sm);color:var(--color-ink-soft);margin-bottom:var(--space-2);display:flex}.breadcrumbs a{color:var(--color-ink-soft);text-decoration:none}.breadcrumbs a:hover{color:var(--color-brand);text-decoration:underline}.breadcrumbs .sep{color:var(--color-ink-faint)}.breadcrumbs .current{color:var(--color-ink);font-weight:600}.page-header{justify-content:space-between;align-items:flex-start;gap:var(--space-4);margin-bottom:var(--space-6);flex-wrap:wrap;display:flex}.page-header h1{font-size:var(--text-2xl)}.page-header .subtitle{margin-top:var(--space-1);color:var(--color-ink-soft);font-size:var(--text-sm);max-width:56ch}.page-header-actions{gap:var(--space-2);flex-shrink:0;display:flex}.btn{justify-content:center;align-items:center;gap:var(--space-2);font-family:var(--font-body);font-size:var(--text-sm);border-radius:var(--radius-sm);cursor:pointer;transition:background var(--duration-fast) var(--ease-out), border-color var(--duration-fast) var(--ease-out), color var(--duration-fast) var(--ease-out);white-space:nowrap;border:1px solid #0000;padding:.6rem 1rem;font-weight:600;line-height:1;display:inline-flex}.btn:disabled{opacity:.55;cursor:not-allowed}.btn-primary{background:var(--color-brand);color:var(--color-on-brand)}.btn-primary:hover:not(:disabled){background:var(--color-brand-strong)}.btn-secondary{background:var(--color-surface);color:var(--color-ink);border-color:var(--color-border-strong)}.btn-secondary:hover:not(:disabled){background:var(--color-surface-sunken)}.btn-ghost{color:var(--color-ink-soft);background:0 0}.btn-ghost:hover:not(:disabled){background:var(--color-surface-sunken);color:var(--color-ink)}.btn-danger{background:var(--color-danger-bg);color:var(--color-danger);border-color:#0000}.btn-danger:hover:not(:disabled){filter:brightness(.95)}.btn-sm{font-size:var(--text-xs);padding:.4rem .75rem}.field{font-size:var(--text-sm);color:var(--color-ink);flex-direction:column;gap:.35rem;font-weight:500;display:flex}input,select,textarea{font-family:var(--font-body);font-size:var(--text-base);border-radius:var(--radius-sm);border:1px solid var(--color-border-strong);background:var(--color-surface);color:var(--color-ink);padding:.65rem .8rem}input::placeholder{color:var(--color-ink-faint)}input:hover,select:hover{border-color:var(--color-ink-faint)}.field input,.field select,.field textarea,label>input,label>select,label>textarea{width:100%}.field-hint{font-size:var(--text-xs);color:var(--color-ink-soft);font-weight:400}.inline-form{gap:var(--space-3);margin:var(--space-3) 0 var(--space-6);padding:var(--space-4);background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-md);flex-wrap:wrap;align-items:flex-end;display:flex}.inline-form input,.inline-form select{min-width:9rem}.inline-form label{font-size:var(--text-xs);color:var(--color-ink-soft);flex-direction:column;gap:.3rem;font-weight:600;display:flex}.inline-form.form-grid{grid-template-columns:repeat(auto-fit,minmax(11rem,1fr));align-items:end;display:grid}.inline-form button{align-self:end}.card{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-md);padding:var(--space-5)}.hub-grid{gap:var(--space-4);grid-template-columns:repeat(auto-fill,minmax(15rem,1fr));display:grid}.hub-card{gap:var(--space-3);padding:var(--space-5);border:1px solid var(--color-border);border-radius:var(--radius-lg);color:inherit;background:var(--color-surface);transition:box-shadow var(--duration-base) var(--ease-out), border-color var(--duration-base) var(--ease-out), transform var(--duration-base) var(--ease-out);flex-direction:column;text-decoration:none;display:flex}.hub-card:hover{box-shadow:var(--shadow-md);border-color:var(--color-brand);transform:translateY(-1px)}.hub-card-icon{border-radius:var(--radius-md);background:var(--color-brand-soft);width:2.5rem;height:2.5rem;color:var(--color-brand-strong);justify-content:center;align-items:center;display:flex}.hub-card-icon svg{width:1.3rem;height:1.3rem}.hub-card h2{font-size:var(--text-md)}.hub-card p{font-size:var(--text-sm);color:var(--color-ink-soft)}.stat-row{gap:var(--space-3);margin-bottom:var(--space-6);grid-template-columns:repeat(auto-fit,minmax(9rem,1fr));display:grid}.stat-tile{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-md);padding:var(--space-4)}.stat-tile .stat-value{font-family:var(--font-display);font-size:var(--text-2xl);color:var(--color-ink);font-weight:700;line-height:1}.stat-tile .stat-label{margin-top:var(--space-2);font-size:var(--text-xs);text-transform:uppercase;letter-spacing:.05em;color:var(--color-ink-soft);font-weight:600}.table-scroll{border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-surface);overflow-x:auto}.data-table{border-collapse:collapse;width:100%;font-size:var(--text-sm)}.data-table th,.data-table td{text-align:left;border-bottom:1px solid var(--color-border);white-space:nowrap;padding:.7rem .9rem}.data-table td:first-child,.data-table th:first-child{white-space:normal}.data-table th{font-size:var(--text-xs);text-transform:uppercase;letter-spacing:.04em;color:var(--color-ink-soft);background:var(--color-surface-sunken);font-weight:700}.data-table tbody tr:hover{background:var(--color-surface-sunken)}.data-table tbody tr:last-child td{border-bottom:none}.data-table .action-cell{gap:var(--space-2);white-space:normal;flex-wrap:wrap;display:flex}.data-table .num{text-align:right;font-variant-numeric:tabular-nums}.mark-input{font-variant-numeric:tabular-nums;width:4.5rem;padding:.4rem .5rem!important}.chip{letter-spacing:.02em;text-transform:uppercase;border-radius:var(--radius-full);white-space:nowrap;align-items:center;gap:.35rem;padding:.22rem .6rem;font-size:.72rem;font-weight:700;display:inline-flex}.chip:before{content:"";border-radius:50%;flex-shrink:0;width:6px;height:6px}.chip-ok{background:var(--color-success-bg);color:var(--color-success)}.chip-ok:before{background:var(--color-success)}.chip-warn{background:var(--color-warning-bg);color:var(--color-warning)}.chip-warn:before{background:var(--color-warning)}.chip-danger{background:var(--color-danger-bg);color:var(--color-danger)}.chip-danger:before{background:var(--color-danger)}.chip-neutral{background:var(--color-surface-sunken);color:var(--color-ink-soft)}.chip-neutral:before{background:var(--color-ink-faint)}.role-chip{background:var(--color-surface-sunken);border:1px solid var(--color-border);border-radius:var(--radius-full);color:var(--color-ink-soft);align-items:center;gap:.3rem;margin:.15rem .25rem .15rem 0;padding:.2rem .4rem .2rem .6rem;font-size:.72rem;font-weight:600;display:inline-flex}.role-revoke{cursor:pointer;color:var(--color-ink-faint);background:0 0;border:none;border-radius:50%;padding:.1rem .2rem;font-size:.85rem;line-height:1}.role-revoke:hover{color:var(--color-danger);background:var(--color-danger-bg)}.error,.notice{align-items:flex-start;gap:var(--space-2);font-size:var(--text-sm);border-radius:var(--radius-sm);margin:0 0 var(--space-4);border:1px solid #0000;padding:.7rem .9rem;display:flex}.error{color:var(--color-danger);background:var(--color-danger-bg)}.notice{color:var(--color-success);background:var(--color-success-bg)}.tab-bar{gap:var(--space-1);margin-bottom:var(--space-5);border-bottom:1px solid var(--color-border);flex-wrap:wrap;display:flex}.tab-bar button{cursor:pointer;font-size:var(--text-sm);color:var(--color-ink-soft);background:0 0;border:none;border-bottom:2px solid #0000;margin-bottom:-1px;padding:.55rem .9rem;font-weight:600}.tab-bar button:hover{color:var(--color-ink)}.tab-bar button.tab-active{color:var(--color-brand-strong);border-bottom-color:var(--color-brand)}.empty-state{text-align:center;align-items:center;gap:var(--space-2);padding:var(--space-7) var(--space-5);color:var(--color-ink-soft);border:1px dashed var(--color-border-strong);border-radius:var(--radius-md);background:var(--color-surface);flex-direction:column;display:flex}.empty-state svg{width:2rem;height:2rem;color:var(--color-ink-faint)}.empty-state p{font-size:var(--text-sm);max-width:32ch}.loading-row{align-items:center;gap:var(--space-2);color:var(--color-ink-soft);font-size:var(--text-sm);padding:var(--space-4) 0;display:flex}.spinner{border:2px solid var(--color-border-strong);border-top-color:var(--color-brand);border-radius:50%;flex-shrink:0;width:1rem;height:1rem;animation:.7s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}.loading-screen{justify-content:center;align-items:center;gap:var(--space-3);min-height:100vh;color:var(--color-ink-soft);background:var(--color-paper);display:flex}.notification-list{gap:var(--space-2);flex-direction:column;margin:0;padding:0;list-style:none;display:flex}.notification-list li{justify-content:space-between;align-items:flex-start;gap:var(--space-4);padding:var(--space-4);border-radius:var(--radius-md);border:1px solid var(--color-border);background:var(--color-surface);display:flex}.notification-list li.notification-unread{background:var(--color-brand-soft);border-color:var(--color-brand)}.notification-list li p{font-size:var(--text-sm);color:var(--color-ink-soft);margin:.25rem 0}.notification-list li strong{font-family:var(--font-display);font-weight:600}.notification-date{font-size:var(--text-xs);color:var(--color-ink-faint)}.transcript-program{color:var(--color-ink-soft);margin:var(--space-1) 0;font-size:var(--text-sm)}.transcript-semester{margin:var(--space-6) 0}.transcript-semester h2{font-size:var(--text-md);margin-bottom:var(--space-2)}.transcript-summary{margin-top:var(--space-6);padding:var(--space-5);background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-md);gap:var(--space-6);flex-wrap:wrap;display:flex}.transcript-summary p{font-size:var(--text-sm);color:var(--color-ink-soft);margin:0}.transcript-summary strong{font-family:var(--font-display);font-size:var(--text-lg);color:var(--color-ink)}.login-page{background:radial-gradient(1100px 620px at 15% -10%, var(--color-brand-soft), transparent 60%), var(--color-paper);min-height:100vh;padding:var(--space-5);justify-content:center;align-items:center;display:flex}.login-shell{gap:var(--space-5);flex-direction:column;width:100%;max-width:26rem;display:flex}.login-brand{align-items:center;gap:var(--space-3);justify-content:center;display:flex}.login-form{background:var(--color-surface);padding:var(--space-6);border-radius:var(--radius-lg);border:1px solid var(--color-border);box-shadow:var(--shadow-md);gap:var(--space-4);flex-direction:column;display:flex}.login-form h1{font-size:var(--text-xl);margin-bottom:.15rem}.login-form .lede{font-size:var(--text-sm);color:var(--color-ink-soft);margin-bottom:var(--space-2)}.login-form label{font-size:var(--text-sm);color:var(--color-ink);flex-direction:column;gap:.35rem;font-weight:500;display:flex}.login-form button[type=submit]{margin-top:var(--space-1);width:100%;padding:.75rem}.login-footnote{text-align:center;font-size:var(--text-xs);color:var(--color-ink-faint)}.dashboard-page header{justify-content:space-between;align-items:center;display:flex}.placeholder-note{margin-top:var(--space-6);padding:var(--space-3) var(--space-4);background:var(--color-warning-bg);border-radius:var(--radius-sm);font-size:var(--text-sm);color:var(--color-warning);border:1px solid #0000}.app-footer{margin-top:var(--space-7);padding-top:var(--space-4);border-top:1px solid var(--color-border);gap:var(--space-2) var(--space-5);font-size:var(--text-xs);color:var(--color-ink-faint);flex-wrap:wrap;justify-content:space-between;display:flex}.app-footer a{color:var(--color-ink-faint)}.app-footer nav{gap:var(--space-4);display:flex}
