@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:"Source Serif 4";font-style:normal;font-display:swap;font-weight:400;src:url(/assets/source-serif-4-cyrillic-ext-400-normal-CWV284fw.woff2)format("woff2"),url(/assets/source-serif-4-cyrillic-ext-400-normal-DLkyKLvH.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:"Source Serif 4";font-style:normal;font-display:swap;font-weight:400;src:url(/assets/source-serif-4-cyrillic-400-normal-C44pakCn.woff2)format("woff2"),url(/assets/source-serif-4-cyrillic-400-normal-B8Z6Jvzv.woff)format("woff");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:"Source Serif 4";font-style:normal;font-display:swap;font-weight:400;src:url(/assets/source-serif-4-greek-400-normal-Cw5-AHNN.woff2)format("woff2"),url(/assets/source-serif-4-greek-400-normal-BccYJ-vZ.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:"Source Serif 4";font-style:normal;font-display:swap;font-weight:400;src:url(/assets/source-serif-4-vietnamese-400-normal-BbG3LG1A.woff2)format("woff2"),url(/assets/source-serif-4-vietnamese-400-normal-DR1UuFon.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:"Source Serif 4";font-style:normal;font-display:swap;font-weight:400;src:url(/assets/source-serif-4-latin-ext-400-normal-Cp7z-ARB.woff2)format("woff2"),url(/assets/source-serif-4-latin-ext-400-normal-CEpydyUl.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:"Source Serif 4";font-style:normal;font-display:swap;font-weight:400;src:url(/assets/source-serif-4-latin-400-normal-DJ5YJwmz.woff2)format("woff2"),url(/assets/source-serif-4-latin-400-normal-Dn3IlU-Z.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:"Source Serif 4";font-style:normal;font-display:swap;font-weight:600;src:url(/assets/source-serif-4-cyrillic-ext-600-normal-D_E8FDgP.woff2)format("woff2"),url(/assets/source-serif-4-cyrillic-ext-600-normal-DiT2IGQm.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:"Source Serif 4";font-style:normal;font-display:swap;font-weight:600;src:url(/assets/source-serif-4-cyrillic-600-normal-BDP5YDHD.woff2)format("woff2"),url(/assets/source-serif-4-cyrillic-600-normal-DFnC3vAY.woff)format("woff");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:"Source Serif 4";font-style:normal;font-display:swap;font-weight:600;src:url(/assets/source-serif-4-greek-600-normal-DdRkKr-1.woff2)format("woff2"),url(/assets/source-serif-4-greek-600-normal-DhXQw1Kl.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:"Source Serif 4";font-style:normal;font-display:swap;font-weight:600;src:url(/assets/source-serif-4-vietnamese-600-normal-CznyfUKR.woff2)format("woff2"),url(/assets/source-serif-4-vietnamese-600-normal-B0WJbuqT.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:"Source Serif 4";font-style:normal;font-display:swap;font-weight:600;src:url(/assets/source-serif-4-latin-ext-600-normal-0sIUyHMO.woff2)format("woff2"),url(/assets/source-serif-4-latin-ext-600-normal-C6NNqpJh.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:"Source Serif 4";font-style:normal;font-display:swap;font-weight:600;src:url(/assets/source-serif-4-latin-600-normal-DouSKlru.woff2)format("woff2"),url(/assets/source-serif-4-latin-600-normal-DMD1h6_f.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:"Source Serif 4";font-style:normal;font-display:swap;font-weight:700;src:url(/assets/source-serif-4-cyrillic-ext-700-normal-B9R79AaY.woff2)format("woff2"),url(/assets/source-serif-4-cyrillic-ext-700-normal-DsKdgJCr.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:"Source Serif 4";font-style:normal;font-display:swap;font-weight:700;src:url(/assets/source-serif-4-cyrillic-700-normal-BmBwwUw2.woff2)format("woff2"),url(/assets/source-serif-4-cyrillic-700-normal-DVvE-KHB.woff)format("woff");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:"Source Serif 4";font-style:normal;font-display:swap;font-weight:700;src:url(/assets/source-serif-4-greek-700-normal-BzuEQSqJ.woff2)format("woff2"),url(/assets/source-serif-4-greek-700-normal-C5Ojiwey.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:"Source Serif 4";font-style:normal;font-display:swap;font-weight:700;src:url(/assets/source-serif-4-vietnamese-700-normal-CCAt8c4x.woff2)format("woff2"),url(/assets/source-serif-4-vietnamese-700-normal-BBU5i_d1.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:"Source Serif 4";font-style:normal;font-display:swap;font-weight:700;src:url(/assets/source-serif-4-latin-ext-700-normal-C8ywwcuQ.woff2)format("woff2"),url(/assets/source-serif-4-latin-ext-700-normal-BZsvHpal.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:"Source Serif 4";font-style:normal;font-display:swap;font-weight:700;src:url(/assets/source-serif-4-latin-700-normal-CGGdTIBe.woff2)format("woff2"),url(/assets/source-serif-4-latin-700-normal-3V4Pv1hj.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{--navy:#0b2545;--navy-800:#0f2e55;--navy-700:#13315c;--navy-600:#1d4677;--navy-400:#6d86a8;--navy-300:#9fb2cc;--navy-200:#c9d5e5;--navy-100:#e1e8f2;--navy-50:#eef2f8;--bg:#f7f8fa;--surface:#fff;--surface-2:#f2f4f7;--border:#dde2e8;--border-strong:#c3ccd6;--text:#16212c;--text-muted:#56636f;--text-subtle:#66737f;--text-disabled:#9aa5b0;--text-on-navy:#fff;--text-on-navy-muted:#ffffffb8;--green:#1c7545;--green-strong:#16623a;--green-dot:#2e9e62;--green-bg:#e8f5ee;--green-border:#a8d6bb;--amber:#8f5300;--amber-dot:#d98e04;--amber-bg:#fdf4e2;--amber-border:#efc574;--red:#b42318;--red-strong:#912018;--red-dot:#d92d20;--red-bg:#fdecea;--red-border:#f3b1ab;--info:#1d4ed8;--info-bg:#eaf0fd;--dot-cash:#8a96a3;--dot-orange:#f26b0f;--dot-mtn:#f2c200;--dot-transfer:#2563eb;--gold:#d4a017;--silver:#a7b1bc;--bronze:#b87333;--focus:#e09b0b;--focus-ring:0 0 0 2px var(--surface), 0 0 0 4px var(--focus);--font:"Inter", "Segoe UI", system-ui, -apple-system, sans-serif;--font-serif:"Source Serif 4", Georgia, "Times New Roman", serif;--font-mono:"JetBrains Mono", "Cascadia Mono", Consolas, "SF Mono", ui-monospace, monospace;--fs-xs:12px;--fs-sm:13px;--fs-md:14px;--fs-input:16px;--fs-lg:16px;--fs-xl:20px;--fs-2xl:24px;--fs-kpi:28px;--r-sm:4px;--r-md:6px;--r-lg:10px;--r-pill:999px;--shadow-sm:0 1px 2px #0b25450f;--shadow-md:0 2px 8px #0b254514, 0 1px 2px #0b25450f;--shadow-lg:0 12px 32px #0b254529, 0 2px 6px #0b254514;--shadow-paper:0 1px 3px #0000001f, 0 8px 24px #0000001f;--sidebar-w:220px;--sidebar-w-collapsed:64px;--topbar-h:56px;--content-pad:24px;--row-h:44px;--row-h-dense:36px;--target:44px}*,:before,:after{box-sizing:border-box}html,body,#root{height:100%}body{background:var(--bg);color:var(--text);font-family:var(--font);font-size:var(--fs-md);font-variant-numeric:tabular-nums;font-feature-settings:"tnum" 1, "cv11" 1;-webkit-font-smoothing:antialiased;text-rendering:optimizelegibility;margin:0;line-height:1.45}h1,h2,h3,h4{color:var(--navy);margin:0;font-weight:600;line-height:1.25}h1{font-size:var(--fs-xl)}h2{font-size:16px}h3{font-size:14px}p{margin:0}a{color:var(--navy-600);text-decoration:none}a:hover{text-decoration:underline}button,input,select,textarea{font:inherit;color:inherit}button{cursor:pointer}:focus-visible{outline:2px solid var(--focus);outline-offset:2px}::selection{background:var(--navy-100)}.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}.skip-link{z-index:1000;background:var(--navy);color:#fff;border-radius:var(--r-md);padding:10px 14px;position:absolute;top:-48px;left:8px}.skip-link:focus{top:8px}.mono{font-family:var(--font-mono);letter-spacing:-.01em;font-size:.93em}.num{font-variant-numeric:tabular-nums;text-align:right;white-space:nowrap}.muted{color:var(--text-muted)}.subtle{color:var(--text-subtle)}.small{font-size:var(--fs-xs)}.strong{font-weight:600}.nowrap{white-space:nowrap}.truncate{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.text-good{color:var(--green)}.text-bad{color:var(--red)}.text-warn{color:var(--amber)}.italic{font-style:italic}.row{align-items:center;gap:8px;display:flex}.row--wrap{flex-wrap:wrap}.row--between{justify-content:space-between}.row--end{justify-content:flex-end}.stack{flex-direction:column;gap:8px;display:flex}.stack--lg{gap:16px}.stack--xl{gap:24px}.grow{flex:auto;min-width:0}.spacer{flex:1}.grid-2{grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;display:grid}.grid-3{grid-template-columns:repeat(3,minmax(0,1fr));gap:16px;display:grid}.grid-4{grid-template-columns:repeat(4,minmax(0,1fr));gap:16px;display:grid}.mt-8{margin-top:8px}.mt-16{margin-top:16px}.mt-24{margin-top:24px}.mb-16{margin-bottom:16px}@media (prefers-reduced-motion:reduce){*,:before,:after{transition-duration:.01ms!important;animation-duration:.01ms!important}}.btn{border-radius:var(--r-md);min-height:40px;font-size:var(--fs-md);white-space:nowrap;-webkit-user-select:none;user-select:none;border:1px solid #0000;justify-content:center;align-items:center;gap:8px;padding:0 16px;font-weight:600;line-height:1;text-decoration:none;transition:background-color .12s,border-color .12s,color .12s;display:inline-flex}.btn:hover{text-decoration:none}.btn svg{flex:none}.btn--primary{background:var(--navy);color:#fff}.btn--primary:hover:not(:disabled){background:var(--navy-700)}.btn--secondary{background:var(--surface);color:var(--navy);border-color:var(--border-strong)}.btn--secondary:hover:not(:disabled){background:var(--navy-50);border-color:var(--navy-300)}.btn--ghost{color:var(--navy);background:0 0}.btn--ghost:hover:not(:disabled){background:var(--navy-50)}.btn--danger{background:var(--red);color:#fff}.btn--danger:hover:not(:disabled){background:var(--red-strong)}.btn--link{min-height:0;color:var(--navy-600);background:0 0;border:0;padding:0;font-weight:500}.btn--link:hover:not(:disabled){text-decoration:underline}.btn--sm{min-height:32px;font-size:var(--fs-sm);padding:0 12px}.btn--lg{min-height:48px;font-size:var(--fs-lg);padding:0 20px}.btn--block{width:100%}.btn:disabled,.btn[aria-disabled=true]{cursor:not-allowed;opacity:.55}.btn--primary:disabled{background:var(--navy-400);opacity:1}.btn-group{display:inline-flex}.btn-group>.btn:first-child{border-top-right-radius:0;border-bottom-right-radius:0}.btn-group>.btn:last-child{border-left:1px solid #ffffff40;border-top-left-radius:0;border-bottom-left-radius:0;padding:0 10px}.icon-btn{border-radius:var(--r-md);width:36px;height:36px;color:var(--text-muted);background:0 0;border:1px solid #0000;justify-content:center;align-items:center;display:inline-flex}.icon-btn:hover:not(:disabled){background:var(--navy-50);color:var(--navy)}.icon-btn--bordered{border-color:var(--border-strong);background:var(--surface)}.icon-btn:disabled{opacity:.4;cursor:not-allowed}.spinner{border:2px solid;border-right-color:#0000;border-radius:50%;width:16px;height:16px;animation:.7s linear infinite spin;display:inline-block}@keyframes spin{to{transform:rotate(360deg)}}.field{flex-direction:column;gap:6px;min-width:0;display:flex}.field__label{font-size:var(--fs-sm);color:var(--text);font-weight:600}.field__label .req{color:var(--red);margin-left:2px}.field__hint{font-size:var(--fs-xs);color:var(--text-subtle)}.field__error{font-size:var(--fs-xs);color:var(--red);align-items:flex-start;gap:6px;display:flex}.field__warning{font-size:var(--fs-xs);color:var(--amber);align-items:center;gap:6px;display:flex}.input,.select,.textarea{border:1px solid var(--border-strong);border-radius:var(--r-md);background:var(--surface);width:100%;min-height:44px;font-size:var(--fs-input);color:var(--text);padding:0 12px;transition:border-color .12s,box-shadow .12s}.textarea{resize:vertical;min-height:88px;padding:10px 12px;line-height:1.45}.input::placeholder,.textarea::placeholder{color:var(--text-disabled)}.input:hover,.select:hover,.textarea:hover{border-color:var(--navy-400)}.input:focus,.select:focus,.textarea:focus{border-color:var(--navy);box-shadow:var(--focus-ring);outline:none}.input[aria-invalid=true],.select[aria-invalid=true],.textarea[aria-invalid=true]{border-color:var(--red)}.input:disabled,.select:disabled,.textarea:disabled,.input[readonly]{background:var(--surface-2);color:var(--text-muted);cursor:not-allowed}.input--sm,.select--sm{min-height:36px;font-size:var(--fs-md)}.select{appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 24 24' fill='none' stroke='%2356636f' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='6 9 12 15 18 9'/%3E%3C/svg%3E");background-position:right 10px center;background-repeat:no-repeat;padding-right:36px}.input-group{align-items:center;display:flex;position:relative}.input-group .input{flex:1}.input-group__prefix,.input-group__suffix{color:var(--text-subtle);pointer-events:none;align-items:center;display:flex;position:absolute;top:0;bottom:0}.input-group__prefix{left:12px}.input-group__suffix{right:12px}.input-group__suffix--interactive{pointer-events:auto;right:4px}.input-group--prefix .input{padding-left:38px}.input-group--suffix .input{padding-right:44px}.check{cursor:pointer;min-height:24px;font-size:var(--fs-md);align-items:flex-start;gap:10px;display:inline-flex}.check input{width:18px;height:18px;accent-color:var(--navy);cursor:pointer;flex:none;margin:1px 0 0}.check--disabled{cursor:not-allowed;color:var(--text-muted)}.switch{cursor:pointer;align-items:center;gap:12px;min-height:32px;display:inline-flex}.switch input{opacity:0;width:1px;height:1px;position:absolute}.switch__track{background:var(--border-strong);border-radius:999px;flex:none;width:36px;height:20px;transition:background .15s;position:relative}.switch__track:after{content:"";width:16px;height:16px;box-shadow:var(--shadow-sm);background:#fff;border-radius:50%;transition:transform .15s;position:absolute;top:2px;left:2px}.switch input:checked+.switch__track{background:var(--navy)}.switch input:checked+.switch__track:after{transform:translate(16px)}.switch input:focus-visible+.switch__track{box-shadow:var(--focus-ring)}.switch input:disabled+.switch__track{opacity:.5}.segmented{background:var(--surface-2);border:1px solid var(--border);border-radius:var(--r-md);gap:2px;padding:3px;display:inline-flex}.segmented button{min-height:32px;font-size:var(--fs-sm);color:var(--text-muted);white-space:nowrap;background:0 0;border:0;border-radius:4px;padding:0 14px;font-weight:500}.segmented button[aria-checked=true],.segmented button[aria-selected=true]{background:var(--surface);color:var(--navy);box-shadow:var(--shadow-sm);font-weight:600}.segmented button:disabled{opacity:.5;cursor:not-allowed}.pill{border-radius:var(--r-pill);height:24px;font-size:var(--fs-xs);white-space:nowrap;border:1px solid #0000;align-items:center;gap:6px;padding:0 10px;font-weight:600;line-height:1;display:inline-flex}.pill--md{height:28px;font-size:var(--fs-sm)}.pill__dot{background:currentColor;border-radius:50%;flex:none;width:8px;height:8px}.pill--neutral{background:var(--surface-2);color:var(--text-muted);border-color:var(--border)}.pill--navy{background:var(--navy-50);color:var(--navy);border-color:var(--navy-100)}.pill--success{background:var(--green-bg);color:var(--green);border-color:var(--green-border)}.pill--warning{background:var(--amber-bg);color:var(--amber);border-color:var(--amber-border)}.pill--danger{background:var(--red-bg);color:var(--red);border-color:var(--red-border)}.pill--info{background:var(--info-bg);color:var(--info)}.pill--outline{background:var(--surface)}.pill--outline.pill--neutral{color:var(--text);border-color:var(--border-strong)}.pill--success .pill__dot{background:var(--green-dot)}.pill--warning .pill__dot{background:var(--amber-dot)}.pill--danger .pill__dot{background:var(--red-dot)}button.pill,a.pill{cursor:pointer}button.pill:hover,a.pill:hover{filter:brightness(.97);text-decoration:none}.count-badge{border-radius:var(--r-pill);background:var(--navy-50);height:22px;color:var(--navy);font-size:var(--fs-xs);align-items:center;padding:0 8px;font-weight:600;display:inline-flex}.grade-badge{border-radius:var(--r-sm);min-width:52px;font-weight:600;font-size:var(--fs-sm);justify-content:center;padding:3px 8px;display:inline-flex}.grade-badge--good{background:var(--green-bg);color:var(--green)}.grade-badge--neutral{background:var(--amber-bg);color:var(--amber)}.grade-badge--bad{background:var(--red-bg);color:var(--red)}.grade-badge--none{color:var(--text-subtle)}.kbd{border:1px solid var(--border-strong);background:var(--surface);min-width:20px;height:20px;font-family:var(--font-mono);color:var(--text-muted);border-bottom-width:2px;border-radius:4px;justify-content:center;align-items:center;padding:0 5px;font-size:11px;line-height:1;display:inline-flex}.avatar{letter-spacing:.02em;-webkit-user-select:none;user-select:none;border-radius:50%;flex:none;justify-content:center;align-items:center;font-weight:600;display:inline-flex;overflow:hidden}.avatar--photo{background:var(--surface-2)}.avatar--square{border-radius:var(--radius-sm,6px)}.avatar img{object-fit:cover;width:100%;height:100%;display:block}.progress{background:var(--navy-100);border-radius:999px;height:6px;position:relative;overflow:hidden}.progress__bar{background:var(--navy);border-radius:999px;transition:width .3s;position:absolute;inset:0 auto 0 0}.progress--thin{height:4px}.progress--success .progress__bar{background:var(--green-dot)}.progress--warning .progress__bar{background:var(--amber-dot)}.progress--danger .progress__bar{background:var(--red-dot)}.card{background:var(--surface);border:1px solid var(--border);border-radius:var(--r-lg);box-shadow:var(--shadow-sm)}.card--pad{padding:16px}.card--pad-lg{padding:24px}.panel{background:var(--surface);border:1px solid var(--border);border-radius:var(--r-lg);box-shadow:var(--shadow-sm);flex-direction:column;min-width:0;display:flex}.panel__header{border-bottom:1px solid var(--border);justify-content:space-between;align-items:center;gap:12px;min-height:52px;padding:14px 16px;display:flex}.panel__header h2{font-size:15px}.panel__body{padding:16px}.panel__body--flush{padding:0}.panel__footer{border-top:1px solid var(--border);justify-content:space-between;align-items:center;gap:12px;padding:12px 16px;display:flex}.kpi{background:var(--surface);border:1px solid var(--border);border-radius:var(--r-lg);box-shadow:var(--shadow-sm);flex-direction:column;gap:4px;min-width:0;padding:16px 16px 16px 20px;display:flex;position:relative;overflow:hidden}.kpi:before{content:"";background:var(--navy);width:4px;position:absolute;top:0;bottom:0;left:0}.kpi--success:before{background:var(--green-dot)}.kpi--warning:before{background:var(--amber-dot)}.kpi--danger:before{background:var(--red-dot)}.kpi__label{font-size:var(--fs-sm);color:var(--text-muted);justify-content:space-between;gap:8px;font-weight:500;display:flex}.kpi__value{font-size:var(--fs-kpi);color:var(--navy);letter-spacing:-.01em;font-weight:700;line-height:1.15}.kpi__detail{font-size:var(--fs-sm);color:var(--text)}.kpi__delta{font-size:var(--fs-xs);color:var(--text-subtle)}.table-wrap{position:relative;overflow:auto}.table{border-collapse:separate;border-spacing:0;width:100%;font-size:var(--fs-md)}.table th{z-index:2;background:var(--surface-2);color:var(--text-muted);font-size:var(--fs-xs);text-transform:uppercase;letter-spacing:.03em;text-align:left;border-bottom:1px solid var(--border);white-space:nowrap;height:38px;padding:0 12px;font-weight:600;position:sticky;top:0}.table td{height:var(--row-h);border-bottom:1px solid var(--border);vertical-align:middle;padding:4px 12px}.table--dense td{height:var(--row-h-dense)}.table--compact td{height:40px}.table tbody tr:last-child td{border-bottom:0}.table tr.is-clickable{cursor:pointer}.table tbody tr.is-clickable:hover td,.table tr.is-selected td{background:var(--navy-50)}.table th.num,.table td.num{text-align:right}.table th.center,.table td.center{text-align:center}.table .col-check{width:44px;padding-right:0}.table .col-actions{text-align:right;width:52px}.table tfoot td{background:var(--navy-50);border-top:1px solid var(--navy-100);font-weight:600}.sort-btn{font:inherit;color:inherit;text-transform:inherit;letter-spacing:inherit;background:0 0;border:0;align-items:center;gap:4px;padding:0;display:inline-flex}.sort-btn:hover,.sort-btn[aria-sort] svg{color:var(--navy)}.table-divider td{font-size:var(--fs-xs);color:var(--text-muted);padding:0 12px;font-weight:600;background:var(--surface)!important;height:30px!important}.table-divider--dashed td{border-top:1.5px dashed var(--navy);border-bottom:1.5px dashed var(--navy);color:var(--navy)}.table-divider--solid td{border-top:2px solid var(--border-strong);border-bottom:1px solid var(--border-strong)}.person{align-items:center;gap:10px;min-width:0;display:flex}.person__text{flex-direction:column;min-width:0;display:flex}.person__name{color:var(--text);white-space:nowrap;text-overflow:ellipsis;font-weight:600;overflow:hidden}.person__sub{font-size:var(--fs-xs);color:var(--text-subtle);white-space:nowrap}.tabs{border-bottom:1px solid var(--border);gap:4px;display:flex;overflow-x:auto}.tabs__tab{min-height:44px;font-size:var(--fs-md);color:var(--text-muted);white-space:nowrap;background:0 0;border:0;align-items:center;gap:6px;padding:0 14px;font-weight:500;text-decoration:none;display:inline-flex;position:relative}.tabs__tab:hover{color:var(--navy);text-decoration:none}.tabs__tab[aria-selected=true],.tabs__tab.active{color:var(--navy);font-weight:600}.tabs__tab[aria-selected=true]:after,.tabs__tab.active:after{content:"";background:var(--navy);border-radius:3px 3px 0 0;height:3px;position:absolute;bottom:-1px;left:8px;right:8px}.chip{border-radius:var(--r-pill);background:var(--navy-50);border:1px solid var(--navy-100);height:30px;color:var(--navy);font-size:var(--fs-sm);align-items:center;gap:4px;padding:0 4px 0 12px;font-weight:500;display:inline-flex}.chip button{width:24px;height:24px;color:var(--navy);background:0 0;border:0;border-radius:50%;justify-content:center;align-items:center;display:inline-flex}.chip button:hover{background:var(--navy-100)}.banner{border-radius:var(--r-md);font-size:var(--fs-md);border:1px solid;align-items:flex-start;gap:10px;padding:10px 14px;display:flex}.banner svg{flex:none;margin-top:1px}.banner--info{background:var(--navy-50);border-color:var(--navy-100);color:var(--navy)}.banner--warning{background:var(--amber-bg);border-color:var(--amber-border);color:#6b3f00}.banner--danger{background:var(--red-bg);border-color:var(--red-border);color:var(--red-strong)}.banner--success{background:var(--green-bg);border-color:var(--green-border);color:var(--green-strong)}.banner__body{flex:1;min-width:0}.banner__title{font-weight:600}.empty{text-align:center;flex-direction:column;align-items:center;gap:12px;max-width:440px;margin:0 auto;padding:40px 16px;display:flex}.empty__title{font-size:var(--fs-xl);color:var(--navy);font-weight:600}.empty__text{color:var(--text-muted)}.empty--sm{padding:24px 16px}.empty--sm .empty__title{font-size:15px}.skeleton{background:linear-gradient(90deg,#eceff3 0%,#f5f7f9 50%,#eceff3 100%) 0 0/200% 100%;border-radius:4px;height:12px;animation:1.2s ease-in-out infinite shimmer;display:inline-block}.skeleton--circle{border-radius:50%}@keyframes shimmer{0%{background-position:200% 0}to{background-position:-200% 0}}.dialog-backdrop{z-index:200;background:#0b254573;justify-content:center;align-items:center;padding:16px;animation:.12s ease-out fadeIn;display:flex;position:fixed;inset:0}.dialog{background:var(--surface);border-radius:var(--r-lg);box-shadow:var(--shadow-lg);flex-direction:column;width:100%;max-height:92vh;animation:.14s ease-out popIn;display:flex}.dialog--sm{max-width:480px}.dialog--md{max-width:600px}.dialog--lg{max-width:720px}.dialog--xl{max-width:960px}.dialog__header{justify-content:space-between;align-items:flex-start;gap:12px;padding:20px 24px 12px;display:flex}.dialog__title{color:var(--navy);font-size:18px;font-weight:600}.dialog__body{flex:1;padding:4px 24px 16px;overflow-y:auto}.dialog__footer{border-top:1px solid var(--border);flex-wrap:wrap;justify-content:flex-end;align-items:center;gap:8px;padding:14px 24px;display:flex}@keyframes fadeIn{0%{opacity:0}}@keyframes popIn{0%{opacity:0;transform:translateY(6px)scale(.99)}}.toasts{z-index:400;flex-direction:column;gap:8px;max-width:420px;display:flex;position:fixed;bottom:84px;right:20px}.toast{border-radius:var(--r-md);background:var(--navy);color:#fff;box-shadow:var(--shadow-lg);font-size:var(--fs-md);align-items:flex-start;gap:10px;padding:12px 14px;animation:.16s ease-out popIn;display:flex}.toast__icon{flex:none;margin-top:1px}.toast--success .toast__icon{color:#7fd6a5}.toast--warning .toast__icon{color:#f6c768}.toast--danger .toast__icon{color:#ff9b91}.toast button{color:#ffffffb3;background:0 0;border:0;margin-left:auto;padding:0}.menu{z-index:300;background:var(--surface);border:1px solid var(--border);border-radius:var(--r-md);min-width:220px;box-shadow:var(--shadow-lg);padding:4px;animation:.1s ease-out popIn;position:absolute}.menu__item{text-align:left;width:100%;min-height:38px;font-size:var(--fs-md);color:var(--text);background:0 0;border:0;border-radius:4px;align-items:center;gap:10px;padding:0 10px;text-decoration:none;display:flex}.menu__item:hover,.menu__item:focus{background:var(--navy-50);outline:none;text-decoration:none}.menu__item--danger{color:var(--red)}.menu__item:disabled{color:var(--text-disabled);cursor:not-allowed;background:0 0}.menu__sep{background:var(--border);height:1px;margin:4px 0}.menu__label{font-size:var(--fs-xs);color:var(--text-subtle);padding:6px 10px 4px}.popover{z-index:300;background:var(--surface);border:1px solid var(--border);border-radius:var(--r-lg);box-shadow:var(--shadow-lg);width:340px;padding:16px;animation:.1s ease-out popIn;position:absolute}.tooltip{z-index:500;color:#fff;max-width:320px;font-size:var(--fs-xs);border-radius:var(--r-sm);pointer-events:none;box-shadow:var(--shadow-md);background:#0f1c2e;padding:6px 10px;line-height:1.4;position:fixed}.bulk-bar{z-index:150;border-radius:var(--r-lg);color:#fff;width:min(720px,100vw - 32px);box-shadow:var(--shadow-lg);background:#0f1c2e;align-items:center;gap:4px;padding:8px 8px 8px 18px;animation:.18s ease-out slideUp;display:flex;position:fixed;bottom:20px;left:50%;transform:translate(-50%)}.bulk-bar__count{white-space:nowrap;margin-right:auto;font-weight:600}.bulk-bar .btn{color:#fff;background:0 0;min-height:36px;font-weight:500}.bulk-bar .btn:hover:not(:disabled){background:#ffffff1f}.bulk-bar .icon-btn{color:#fffc}.bulk-bar .icon-btn:hover{color:#fff;background:#ffffff1f}@keyframes slideUp{0%{opacity:0;transform:translate(-50%,16px)}}.pagination{border-top:1px solid var(--border);font-size:var(--fs-sm);color:var(--text-muted);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:16px;padding:10px 16px;display:flex}.pagination__pages{align-items:center;gap:4px;display:flex}.pagination__page{border-radius:var(--r-md);min-width:34px;height:34px;font-size:var(--fs-sm);color:var(--text);background:0 0;border:1px solid #0000}.pagination__page:hover:not(:disabled){background:var(--navy-50)}.pagination__page[aria-current=page]{background:var(--navy);color:#fff;font-weight:600}.pagination__page:disabled{opacity:.4;cursor:not-allowed}.page{padding:var(--content-pad);flex-direction:column;gap:16px;min-width:0;display:flex}.page-header{flex-wrap:wrap;justify-content:space-between;align-items:flex-start;gap:16px;display:flex}.page-header__title{color:var(--navy);align-items:center;gap:10px;font-size:22px;font-weight:600;display:flex}.page-header__sub{color:var(--text-muted);font-size:var(--fs-md);margin-top:4px}.page-header__actions{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.breadcrumb{font-size:var(--fs-sm);color:var(--text-muted);align-items:center;gap:6px;display:flex}.breadcrumb a{color:var(--text-muted)}.breadcrumb a:hover{color:var(--navy)}.section-label{font-size:var(--fs-xs);text-transform:uppercase;letter-spacing:.06em;color:var(--text-subtle);font-weight:700}.divider{background:var(--border);border:0;height:1px;margin:0}.dot{border-radius:50%;flex:none;width:8px;height:8px;display:inline-block}.ref{font-family:var(--font-mono);color:var(--text);font-size:12.5px}.form-row-2{grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;display:grid}.form-row-3{grid-template-columns:2fr 1fr 1fr;gap:16px;display:grid}.shell{grid-template-columns:var(--sidebar-w) minmax(0, 1fr);min-height:100vh;display:grid}.shell--collapsed{grid-template-columns:var(--sidebar-w-collapsed) minmax(0, 1fr)}.sidebar{background:var(--navy);height:100vh;color:var(--text-on-navy);flex-direction:column;display:flex;position:sticky;top:0;overflow:hidden}.sidebar__school{border-bottom:1px solid #ffffff1a;align-items:center;gap:10px;min-height:72px;padding:16px 14px;display:flex}.sidebar__crest{background:#fff;border-radius:50%;flex:none;justify-content:center;align-items:center;width:40px;height:40px;display:flex;overflow:hidden}.sidebar__crest img{object-fit:contain;width:100%;height:100%}.sidebar__school-name{font-weight:600;font-size:var(--fs-md);color:#fff;line-height:1.25}.sidebar__school-sub{font-size:var(--fs-xs);color:var(--text-on-navy-muted)}.sidebar__nav{flex-direction:column;flex:1;gap:2px;padding:12px 10px;display:flex;overflow-y:auto}.sidebar__link{border-radius:var(--r-md);min-height:44px;color:var(--text-on-navy-muted);font-weight:500;font-size:var(--fs-md);white-space:nowrap;align-items:center;gap:12px;padding:0 12px;text-decoration:none;display:flex}.sidebar__link:hover{color:#fff;background:#ffffff14;text-decoration:none}.sidebar__link.active{color:#fff;background:#ffffff24;font-weight:600;box-shadow:inset 3px 0 #fff}.sidebar__link svg{flex:none}.sidebar__link:focus-visible{outline-color:var(--focus)}.sidebar__footer{font-size:var(--fs-xs);color:var(--text-on-navy-muted);border-top:1px solid #ffffff1a;flex-direction:column;gap:4px;padding:12px 14px 16px;display:flex}.sidebar__brand{color:#fff;letter-spacing:.01em;font-weight:600}.shell--collapsed .sidebar__school{justify-content:center;padding:16px 0}.shell--collapsed .sidebar__school-text,.shell--collapsed .sidebar__label,.shell--collapsed .sidebar__footer{display:none}.shell--collapsed .sidebar__link{justify-content:center;padding:0}.main{flex-direction:column;min-width:0;display:flex}.topbar{z-index:100;height:var(--topbar-h);padding:0 var(--content-pad);background:var(--surface);border-bottom:1px solid var(--border);align-items:center;gap:16px;display:flex;position:sticky;top:0}.topbar__title{color:var(--navy);white-space:nowrap;text-overflow:ellipsis;font-size:17px;font-weight:600;overflow:hidden}.topbar__right{align-items:center;gap:12px;margin-left:auto;display:flex}.context-select{min-height:34px;font-size:var(--fs-sm);border-color:var(--border);background-color:var(--surface-2);max-width:260px;font-weight:500}.conn-pill{border-radius:var(--r-pill);height:32px;font-size:var(--fs-sm);white-space:nowrap;background:var(--surface);border:1px solid;align-items:center;gap:8px;padding:0 12px;font-weight:500;display:inline-flex}.conn-pill--offline{border-color:var(--amber-border);background:var(--amber-bg);color:#6b3f00}.conn-pill--online{border-color:var(--green-border);background:var(--green-bg);color:var(--green-strong)}.conn-pill--syncing{border-color:var(--navy-200);background:var(--navy-50);color:var(--navy)}.conn-pill--error{border-color:var(--red-border);background:var(--red-bg);color:var(--red-strong)}.conn-pill .pill__dot{width:8px;height:8px}.conn-pill--offline .pill__dot{background:var(--amber-dot)}.conn-pill--online .pill__dot{background:var(--green-dot)}.conn-pill--error .pill__dot{background:var(--red-dot)}.user-menu-btn{border-radius:var(--r-pill);background:0 0;border:1px solid #0000;align-items:center;gap:10px;min-height:40px;padding:4px 8px 4px 4px;display:flex}.user-menu-btn:hover{background:var(--navy-50)}.user-menu-btn__name{font-size:var(--fs-sm);color:var(--text);white-space:nowrap;font-weight:600}.user-menu-btn__role{color:var(--text-muted);font-weight:400}.update-gate{z-index:1000;background:#0b2545b8;place-items:center;padding:16px;display:grid;position:fixed;inset:0}.update-gate__card{background:var(--surface,#fff);width:100%;max-width:520px}.sync-strip{padding:8px var(--content-pad);background:var(--amber-bg);border-bottom:1px solid var(--amber-border);color:#6b3f00;font-size:var(--fs-sm);align-items:center;gap:10px;display:flex}.subnav{padding:0 var(--content-pad);background:var(--surface);border-bottom:1px solid var(--border);gap:4px;display:flex;overflow-x:auto}.content{flex:1;min-width:0}.sticky-footer{z-index:50;background:var(--surface);border-top:1px solid var(--border);padding:10px var(--content-pad);align-items:center;gap:16px;display:flex;position:sticky;bottom:0;box-shadow:0 -2px 8px #0b25450f}@media (max-width:1100px){.shell{grid-template-columns:var(--sidebar-w-collapsed) minmax(0, 1fr)}.shell .sidebar__school{justify-content:center;padding:16px 0}.shell .sidebar__school-text,.shell .sidebar__label,.shell .sidebar__footer{display:none}.shell .sidebar__link{justify-content:center;padding:0}.user-menu-btn__role{display:none}}@media (max-width:900px){:root{--content-pad:16px}.grid-4{grid-template-columns:repeat(2,minmax(0,1fr))}.grid-3,.grid-2{grid-template-columns:minmax(0,1fr)}}@media print{.sidebar,.topbar,.subnav,.no-print{display:none!important}.shell{display:block}body{background:#fff}}html{-webkit-text-size-adjust:100%;-moz-text-size-adjust:100%;text-size-adjust:100%}.main,.content,.page,.page>*,.panel,.panel__body,.settings-content,.stack>*{min-width:0}.content{overflow-x:clip}img,svg,video,canvas{max-width:100%}.panel__header,.panel__header>.row{flex-wrap:wrap}.segmented{scrollbar-width:none;max-width:100%;overflow-x:auto}.segmented::-webkit-scrollbar{display:none}.segmented button{flex:none}.tabs{scrollbar-width:none;max-width:100%;overflow-x:auto}.tabs::-webkit-scrollbar{display:none}.mobile-nav,.mobile-sheet{display:none}@media (max-width:1280px){.conn-pill>span:last-child{display:none}.conn-pill{padding:0 10px}}@media (max-width:1100px){.panel__body{overflow-x:auto}.topbar__title{flex:auto;min-width:0}.context-select{max-width:240px}.user-menu-btn__name{display:none}.table.students-table{table-layout:auto}.table.students-table col.col-tuteur{width:auto}.table.students-table .person{min-width:170px}.page-header__actions{flex-wrap:wrap}}@media (min-width:721px) and (max-width:1180px){.payments-table :is(th,td):nth-child(6){display:none}}@media (min-width:721px) and (max-width:1100px){.table.students-table col.col-matricule,.table.students-table :is(th,td):nth-child(2){display:none}}@media (max-width:720px){:root{--content-pad:12px;--mobile-nav-h:64px}.shell,.shell--collapsed{display:block}.sidebar{display:none}.main{min-height:100vh;min-height:100dvh;padding-bottom:calc(var(--mobile-nav-h) + env(safe-area-inset-bottom,0px))}.mobile-nav{z-index:150;height:calc(var(--mobile-nav-h) + env(safe-area-inset-bottom,0px));padding:6px 6px env(safe-area-inset-bottom,0px);background:var(--navy);gap:4px;display:flex;position:fixed;bottom:0;left:0;right:0;box-shadow:0 -4px 16px #0b254538}.mobile-nav__link{min-width:0;color:var(--text-on-navy-muted);font:inherit;cursor:pointer;-webkit-tap-highlight-color:transparent;background:0 0;border:0;border-radius:12px;flex-direction:column;flex:1 1 0;justify-content:center;align-items:center;gap:3px;font-size:11px;font-weight:500;line-height:1.1;text-decoration:none;display:flex}.mobile-nav__link span{text-overflow:ellipsis;white-space:nowrap;max-width:100%;padding:0 2px;overflow:hidden}.mobile-nav__link:hover,.mobile-nav__link:focus-visible{color:#fff;text-decoration:none}.mobile-nav__link.active{color:#fff;background:#ffffff24;font-weight:600}.mobile-sheet{z-index:250;background:#0b254573;align-items:flex-end;animation:.12s ease-out fadeIn;display:flex;position:fixed;inset:0}.mobile-sheet__panel{background:var(--surface);width:100%;max-height:85dvh;padding:12px 16px calc(20px + env(safe-area-inset-bottom,0px));box-shadow:var(--shadow-lg);border-radius:20px 20px 0 0;overflow-y:auto}.mobile-sheet__head{border-bottom:1px solid var(--border);align-items:center;gap:10px;margin-bottom:14px;padding:4px 0 14px;display:flex}.mobile-sheet__head .sidebar__crest{border:1px solid var(--border)}.mobile-sheet__school{min-width:0;color:var(--navy);text-overflow:ellipsis;white-space:nowrap;flex:1;overflow:hidden}.mobile-sheet__grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;display:grid}.mobile-sheet__item{border:1px solid var(--border);min-height:84px;color:var(--navy);font-size:var(--fs-sm);text-align:center;background:var(--surface-2);border-radius:14px;flex-direction:column;justify-content:center;align-items:center;gap:8px;padding:10px 6px;font-weight:500;text-decoration:none;display:flex}.mobile-sheet__item:hover,.mobile-sheet__item:focus-visible{border-color:var(--navy-200);text-decoration:none}.mobile-sheet__item.active{background:var(--navy);border-color:var(--navy);color:#fff}.topbar{height:auto;min-height:52px;padding:6px var(--content-pad);flex-wrap:wrap;gap:6px 8px}.topbar__title{flex:1 1 0;min-width:0;font-size:16px}.topbar__right{gap:4px;margin-left:0}.topbar>label{flex:1 0 100%;order:3}.context-select{width:100%;max-width:none;min-height:38px}.conn-pill{height:34px;padding:0 10px}.conn-pill>span:last-child{display:none}.user-menu-btn{padding:2px}.user-menu-btn__name,.user-menu-btn>svg{display:none}.sync-strip{flex-wrap:wrap}.subnav{scrollbar-width:none}.subnav::-webkit-scrollbar{display:none}.page{gap:12px}.page-header{gap:10px}.page-header__title{flex-wrap:wrap;font-size:20px}.page-header__actions{width:100%}.page-header__actions>.btn,.page-header__actions>a.btn{flex:auto}.page-header__actions .field{flex:140px}.page-header__actions .field .input,.page-header__actions .field input{width:100%!important}.grid-4{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.grid-3,.grid-2,.form-row-2,.form-row-3,.form-grid{grid-template-columns:minmax(0,1fr)!important}.kpi{min-width:0;padding:12px 14px}.kpi__value{overflow-wrap:break-word;font-size:clamp(15px,4.6vw,24px);line-height:1.15}.kpi__label,.kpi__detail,.kpi a{overflow-wrap:anywhere;white-space:normal}.row:not(.row--nowrap){flex-wrap:wrap}input,select,textarea,.input,.select{font-size:16px}.btn{min-height:44px}.btn--sm{min-height:36px}.panel__header{padding:12px 14px}.panel__body{padding:14px}.panel__body--flush{padding:0}.sticky-footer{bottom:calc(var(--mobile-nav-h) + env(safe-area-inset-bottom,0px));flex-wrap:wrap;gap:8px}.sticky-footer .spacer{display:none}.sticky-footer .btn{flex:auto}.dialog-backdrop{align-items:flex-end;padding:0}.dialog,.dialog--sm,.dialog--md,.dialog--lg,.dialog--xl{border-radius:20px 20px 0 0;max-width:none;max-height:94dvh}.dialog__header{padding:16px 16px 8px}.dialog__body{padding:4px 16px 12px}.dialog__footer{padding:12px 16px calc(12px + env(safe-area-inset-bottom,0px));flex-wrap:wrap}.dialog__footer .btn{flex:auto}.table:not(.table--scroll):not(.table--dense):not(.perm-matrix):not(.timetable-grid):not(.setup__levels){table-layout:auto;border:0;width:100%;display:block;min-width:0!important}.table:not(.table--scroll):not(.table--dense):not(.perm-matrix):not(.timetable-grid):not(.setup__levels) :is(thead,colgroup){display:none}.table:not(.table--scroll):not(.table--dense):not(.perm-matrix):not(.timetable-grid):not(.setup__levels) :is(tbody,tfoot){width:100%;display:block}.table:not(.table--scroll):not(.table--dense):not(.perm-matrix):not(.timetable-grid):not(.setup__levels) tr{border-bottom:1px solid var(--border);background:var(--surface);flex-direction:column;gap:2px;width:100%;padding:12px 14px;display:flex}.table:not(.table--scroll):not(.table--dense):not(.perm-matrix):not(.timetable-grid):not(.setup__levels) tfoot tr{background:var(--surface-2);font-weight:600}.table:not(.table--scroll):not(.table--dense):not(.perm-matrix):not(.timetable-grid):not(.setup__levels) :is(td,th){text-align:right;white-space:normal;overflow-wrap:anywhere;background:0 0;min-height:26px;display:block;position:static;border:0!important;width:auto!important;max-width:none!important;height:auto!important;padding:3px 0!important}.table:not(.table--scroll):not(.table--dense):not(.perm-matrix):not(.timetable-grid):not(.setup__levels) :is(td,th)[data-label]:not([data-label=""]):before{content:attr(data-label);float:left;max-width:45%;color:var(--text-muted);line-height:1.4;font-size:var(--fs-xs);text-align:left;text-transform:none;letter-spacing:0;margin:2px 12px 2px 0;font-weight:500}.table:not(.table--scroll):not(.table--dense):not(.perm-matrix):not(.timetable-grid):not(.setup__levels) :is(td,th):is([data-label=""],:not([data-label])){text-align:left}.table:not(.table--scroll):not(.table--dense):not(.perm-matrix):not(.timetable-grid):not(.setup__levels) :is(td,th)[data-label]:not([data-label=""])>:is(.row,.eval-chips,.person,.solde,.stack){justify-content:flex-end;width:-moz-fit-content;width:fit-content;max-width:100%;margin-left:auto}.table:not(.table--scroll):not(.table--dense):not(.perm-matrix):not(.timetable-grid):not(.setup__levels) :is(td,th):after{content:"";clear:both;display:block}.table:not(.table--scroll):not(.table--dense):not(.perm-matrix):not(.timetable-grid):not(.setup__levels) tr>:is(td,th):first-child:not(.col-check){color:var(--navy);font-weight:600}.table:not(.table--scroll):not(.table--dense):not(.perm-matrix):not(.timetable-grid):not(.setup__levels) tr:has(>.col-check){padding-right:52px;position:relative}.table:not(.table--scroll):not(.table--dense):not(.perm-matrix):not(.timetable-grid):not(.setup__levels) :is(td,th).col-check{min-height:0;position:absolute;top:10px;right:14px}.table:not(.table--scroll):not(.table--dense):not(.perm-matrix):not(.timetable-grid):not(.setup__levels) :is(td,th).col-check:before{content:none}.table:not(.table--scroll):not(.table--dense):not(.perm-matrix):not(.timetable-grid):not(.setup__levels) :is(td,th).col-actions{text-align:right;padding-top:6px!important}.table:not(.table--scroll):not(.table--dense):not(.perm-matrix):not(.timetable-grid):not(.setup__levels) :is(td,th).col-actions>*{margin-left:auto}.table:not(.table--scroll):not(.table--dense):not(.perm-matrix):not(.timetable-grid):not(.setup__levels) :is(td,th).col-actions:before{content:none}.table:not(.table--scroll):not(.table--dense):not(.perm-matrix):not(.timetable-grid):not(.setup__levels) .truncate{white-space:normal}.table:not(.table--scroll):not(.table--dense):not(.perm-matrix):not(.timetable-grid):not(.setup__levels) td:empty{display:none}.table-wrap{-webkit-overflow-scrolling:touch;overflow-x:auto}.table:is(.table--scroll,.table--dense,.perm-matrix,.timetable-grid){min-width:560px}}@media (max-width:340px){.grid-4,.grid-3{grid-template-columns:minmax(0,1fr)}}@media (max-width:380px){.mobile-nav__link{font-size:10px}.mobile-sheet__grid{grid-template-columns:repeat(2,minmax(0,1fr))}.page-header__title{font-size:18px}}@media (max-width:920px) and (max-height:480px) and (orientation:landscape){:root{--mobile-nav-h:52px}}@media print{.mobile-nav,.mobile-sheet{display:none!important}.main{padding-bottom:0}}@media (max-width:720px){.toasts{bottom:calc(var(--mobile-nav-h) + 12px + env(safe-area-inset-bottom,0px));left:12px;right:12px}.entry-grid .col-mat{display:none}.entry-grid .col-n{width:36px;padding:0 6px}.entry-grid th,.entry-grid td{padding:0 8px}.entry-grid .col-note{width:96px}.entry-grid th{top:0}.fin-filters .fin-date{flex-wrap:wrap;flex:100%}.fin-filters .fin-date .input{flex:120px;width:auto}.period-row{border-bottom:1px dashed var(--border);flex-wrap:wrap;padding:8px 0}.period-row .input{flex:110px}.settings-nav{margin:0 calc(-1 * var(--content-pad));padding:0 var(--content-pad) 4px;scrollbar-width:none;gap:6px;overflow-x:auto;flex-wrap:nowrap!important}.settings-nav::-webkit-scrollbar{display:none}.settings-nav__item{white-space:nowrap;border-color:var(--border);background:var(--surface);border-radius:999px;flex:none;min-height:38px}.settings-nav__item.active{background:var(--navy);color:#fff;box-shadow:none}.profile-header{text-align:center;flex-direction:column;align-items:center;gap:12px}.profile-header__main{align-items:center;width:100%}.profile-header__main .row{justify-content:center}.profile-header__name{font-size:22px}.profile-header__actions{flex-wrap:wrap;justify-content:stretch;gap:8px;width:100%;display:flex}.profile-header__actions>*{flex:auto}.profile-topline{flex-wrap:wrap;gap:6px}.journal-totals,.fin-summary{grid-template-columns:repeat(2,minmax(0,1fr))!important}.entry-footer{gap:8px;padding-top:8px;padding-bottom:8px}.entry-stats{font-size:var(--fs-xs);gap:4px 10px}.entry-stats .sep,.entry-stats .histo{display:none}.entry-footer__actions{flex-wrap:wrap;gap:8px;width:100%;margin-left:0}.entry-footer__actions>*{flex:auto}}.licence-strip{padding:8px var(--content-pad);font-size:var(--fs-sm);border-bottom:1px solid;flex-wrap:wrap;align-items:center;gap:8px 10px;display:flex}.licence-strip--warn{background:var(--amber-bg);border-color:var(--amber-border);color:#6b3f00}.licence-strip--danger{background:var(--red-bg);border-color:var(--red-border);color:var(--red-strong)}.licence-strip__action{color:inherit;margin-left:auto;font-weight:600;text-decoration:underline}.upgrade{text-align:center;flex-direction:column;align-items:center;gap:8px;padding:8px 0;display:flex}.upgrade__icon{color:#8a5a00;background:linear-gradient(135deg,#fff4d6,#ffe3a1);border-radius:50%;place-items:center;width:56px;height:56px;display:grid}.upgrade__title{color:var(--navy);font-size:17px;font-weight:600}.plan-hero{color:#fff;background:linear-gradient(135deg,#0b2545 0%,#13315c 60%,#1d4e89 100%);border-radius:16px;grid-template-columns:minmax(0,1.1fr) minmax(0,1fr);gap:24px;padding:24px;display:grid;box-shadow:0 10px 30px #0b25452e}.plan-hero--free{background:linear-gradient(135deg,#334155 0%,#475569 100%)}.plan-hero--investor,.plan-hero--investor_group{background:linear-gradient(135deg,#3b2a05 0%,#7a5410 55%,#b8862b 100%)}.plan-hero__label{font-size:var(--fs-sm);text-transform:uppercase;letter-spacing:.06em;opacity:.85;align-items:center;gap:6px;display:inline-flex}.plan-hero__name{margin:6px 0 10px;font-size:28px;font-weight:700}.plan-hero__meta{font-size:var(--fs-sm);opacity:.95;flex-wrap:wrap;align-items:center;gap:8px 12px;display:flex}.plan-hero__reason{font-size:var(--fs-sm);opacity:.9;margin-top:10px}.plan-hero__usage{background:#ffffff1a;border-radius:12px;flex-direction:column;gap:14px;padding:16px;display:flex}.usage__head{font-size:var(--fs-sm);justify-content:space-between;gap:8px;margin-bottom:6px;display:flex}.usage__hint{font-size:var(--fs-xs);opacity:.75;margin-top:4px;display:block}.plan-hero .progress{background:#ffffff38}.feature-list{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px 20px;margin:0;padding:0;list-style:none;display:grid}.feature-list li{align-items:center;gap:8px;display:flex}.feature-list .is-on svg{color:var(--green)}.feature-list .is-off{color:var(--text-subtle)}.licence-input{word-break:break-all;font-size:12px}.licence-preview{border-radius:var(--r-md);background:var(--navy-50);border:1px solid var(--navy-200);flex-direction:column;gap:4px;padding:12px 14px;display:flex}.contract{border-radius:var(--r-md);font-size:var(--fs-sm);background:#fffaeb;border:1px solid #e3c77a;flex-direction:column;gap:10px;padding:14px 16px;display:flex}.contract__title{color:#6b4a00;align-items:center;gap:6px;font-weight:600;display:flex}.plans-title{color:var(--navy);font-size:18px;font-weight:700}.plans{grid-template-columns:repeat(3,minmax(0,1fr));align-items:stretch;gap:16px;display:grid}.plan-card{border:1px solid var(--border);background:var(--surface);border-radius:16px;flex-direction:column;gap:10px;padding:22px 20px;display:flex;position:relative}.plan-card--popular{border:2px solid var(--navy);box-shadow:0 10px 28px #0b254524}.plan-card--current{outline:3px solid var(--green-border)}.plan-card__ribbon{background:var(--navy);color:#fff;font-size:var(--fs-xs);border-radius:999px;padding:3px 10px;font-weight:600;position:absolute;top:-12px;left:20px}.plan-card__name{color:var(--navy);font-size:18px;font-weight:700}.plan-card__tag{color:var(--text-muted);font-size:var(--fs-sm)}.plan-card__price{color:var(--navy);font-size:24px;font-weight:700}.plan-card__price span{font-size:var(--fs-sm);color:var(--text-muted);font-weight:500}.plan-card__saving{font-size:var(--fs-sm);color:var(--green-strong);font-weight:600}.plan-card__saving--muted{color:var(--text-muted);font-weight:500}.plan-card__list{flex-direction:column;flex:1;gap:8px;margin:4px 0 8px;padding:0;list-style:none;display:flex}.plan-card__list li{font-size:var(--fs-md);align-items:flex-start;gap:8px;display:flex}.plan-card__list svg{color:var(--green);flex:none;margin-top:3px}.plan-card__current{text-align:center;color:var(--green-strong);border-radius:var(--r-md);background:var(--green-bg);padding:10px;font-weight:600}.plan-card__contact{text-align:center;font-size:var(--fs-sm);color:var(--text-muted)}.investor{background:linear-gradient(135deg,#fff8e6 0%,#fdeec7 100%);border:1px solid #ecd28f;border-radius:18px;padding:22px}.investor__head{color:#6b4a00;align-items:center;gap:12px;margin-bottom:16px;display:flex}.investor__title{font-size:18px;font-weight:700}.investor__sub{font-size:var(--fs-sm)}.investor__grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;display:grid}.investor__card{background:#fff;border:1px solid #ecd28f;border-radius:14px;flex-direction:column;gap:10px;padding:20px;display:flex}.investor__card.is-current{outline:3px solid var(--green-border)}.nav-lock{opacity:.7;margin-left:auto}@media (max-width:1100px){.plan-hero,.plans{grid-template-columns:minmax(0,1fr)}}@media (max-width:720px){.plan-hero{padding:18px}.plan-hero__name{font-size:24px}.feature-list,.investor__grid{grid-template-columns:minmax(0,1fr)}.investor{padding:16px}}.sidebar__link--locked{opacity:.6}.sidebar__link--locked:hover{opacity:1}
