@font-face{font-family:Oswald;font-style:normal;font-weight:500;font-display:swap;src:url(../media/48cb8c496a1feb17-s.0734_fcy06s9j.woff2)format("woff2");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Oswald;font-style:normal;font-weight:500;font-display:swap;src:url(../media/87ccb897ba116d44-s.05f-deljhbeh9.woff2)format("woff2");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:Oswald;font-style:normal;font-weight:500;font-display:swap;src:url(../media/e9a8df42b0c6fb7a-s.2k0uebm9v9x1w.woff2)format("woff2");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:Oswald;font-style:normal;font-weight:500;font-display:swap;src:url(../media/804b9eb4033edb5d-s.1fbf3d0ri8mfi.woff2)format("woff2");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:Oswald;font-style:normal;font-weight:500;font-display:swap;src:url(../media/6ad1cda2f16975ee-s.p.2j22bd4n1tlhh.woff2)format("woff2");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:Oswald;font-style:normal;font-weight:600;font-display:swap;src:url(../media/48cb8c496a1feb17-s.0734_fcy06s9j.woff2)format("woff2");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Oswald;font-style:normal;font-weight:600;font-display:swap;src:url(../media/87ccb897ba116d44-s.05f-deljhbeh9.woff2)format("woff2");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:Oswald;font-style:normal;font-weight:600;font-display:swap;src:url(../media/e9a8df42b0c6fb7a-s.2k0uebm9v9x1w.woff2)format("woff2");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:Oswald;font-style:normal;font-weight:600;font-display:swap;src:url(../media/804b9eb4033edb5d-s.1fbf3d0ri8mfi.woff2)format("woff2");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:Oswald;font-style:normal;font-weight:600;font-display:swap;src:url(../media/6ad1cda2f16975ee-s.p.2j22bd4n1tlhh.woff2)format("woff2");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:Oswald;font-style:normal;font-weight:700;font-display:swap;src:url(../media/48cb8c496a1feb17-s.0734_fcy06s9j.woff2)format("woff2");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Oswald;font-style:normal;font-weight:700;font-display:swap;src:url(../media/87ccb897ba116d44-s.05f-deljhbeh9.woff2)format("woff2");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:Oswald;font-style:normal;font-weight:700;font-display:swap;src:url(../media/e9a8df42b0c6fb7a-s.2k0uebm9v9x1w.woff2)format("woff2");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:Oswald;font-style:normal;font-weight:700;font-display:swap;src:url(../media/804b9eb4033edb5d-s.1fbf3d0ri8mfi.woff2)format("woff2");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:Oswald;font-style:normal;font-weight:700;font-display:swap;src:url(../media/6ad1cda2f16975ee-s.p.2j22bd4n1tlhh.woff2)format("woff2");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:Oswald Fallback;src:local(Arial);ascent-override:146.51%;descent-override:35.49%;line-gap-override:0.0%;size-adjust:81.43%}.oswald_182dee1d-module__QLYKoW__className{font-family:Oswald,Oswald Fallback;font-style:normal}.oswald_182dee1d-module__QLYKoW__variable{--font-oswald:"Oswald", "Oswald Fallback"}
@font-face{font-family:Inter;font-style:normal;font-weight:400;font-display:swap;src:url(../media/2c55a0e60120577a-s.0-dom-5bn10r2.woff2)format("woff2");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-weight:400;font-display:swap;src:url(../media/9c72aa0f40e4eef8-s.1y4-pdgsjb-pw.woff2)format("woff2");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:Inter;font-style:normal;font-weight:400;font-display:swap;src:url(../media/ad66f9afd8947f86-s.3lvt2whj97whp.woff2)format("woff2");unicode-range:U+1F??}@font-face{font-family:Inter;font-style:normal;font-weight:400;font-display:swap;src:url(../media/5476f68d60460930-s.2uwcyprjm3xu3.woff2)format("woff2");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-weight:400;font-display:swap;src:url(../media/2bbe8d2671613f1f-s.0k62hbripvv8p.woff2)format("woff2");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-weight:400;font-display:swap;src:url(../media/1bffadaabf893a1e-s.3-6t-g6q0vh0a.woff2)format("woff2");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-weight:400;font-display:swap;src:url(../media/83afe278b6a6bb3c-s.p.2bn3s6zvc0dyp.woff2)format("woff2");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-weight:500;font-display:swap;src:url(../media/2c55a0e60120577a-s.0-dom-5bn10r2.woff2)format("woff2");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-weight:500;font-display:swap;src:url(../media/9c72aa0f40e4eef8-s.1y4-pdgsjb-pw.woff2)format("woff2");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:Inter;font-style:normal;font-weight:500;font-display:swap;src:url(../media/ad66f9afd8947f86-s.3lvt2whj97whp.woff2)format("woff2");unicode-range:U+1F??}@font-face{font-family:Inter;font-style:normal;font-weight:500;font-display:swap;src:url(../media/5476f68d60460930-s.2uwcyprjm3xu3.woff2)format("woff2");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-weight:500;font-display:swap;src:url(../media/2bbe8d2671613f1f-s.0k62hbripvv8p.woff2)format("woff2");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-weight:500;font-display:swap;src:url(../media/1bffadaabf893a1e-s.3-6t-g6q0vh0a.woff2)format("woff2");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-weight:500;font-display:swap;src:url(../media/83afe278b6a6bb3c-s.p.2bn3s6zvc0dyp.woff2)format("woff2");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-weight:600;font-display:swap;src:url(../media/2c55a0e60120577a-s.0-dom-5bn10r2.woff2)format("woff2");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-weight:600;font-display:swap;src:url(../media/9c72aa0f40e4eef8-s.1y4-pdgsjb-pw.woff2)format("woff2");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:Inter;font-style:normal;font-weight:600;font-display:swap;src:url(../media/ad66f9afd8947f86-s.3lvt2whj97whp.woff2)format("woff2");unicode-range:U+1F??}@font-face{font-family:Inter;font-style:normal;font-weight:600;font-display:swap;src:url(../media/5476f68d60460930-s.2uwcyprjm3xu3.woff2)format("woff2");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-weight:600;font-display:swap;src:url(../media/2bbe8d2671613f1f-s.0k62hbripvv8p.woff2)format("woff2");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-weight:600;font-display:swap;src:url(../media/1bffadaabf893a1e-s.3-6t-g6q0vh0a.woff2)format("woff2");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-weight:600;font-display:swap;src:url(../media/83afe278b6a6bb3c-s.p.2bn3s6zvc0dyp.woff2)format("woff2");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-weight:700;font-display:swap;src:url(../media/2c55a0e60120577a-s.0-dom-5bn10r2.woff2)format("woff2");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-weight:700;font-display:swap;src:url(../media/9c72aa0f40e4eef8-s.1y4-pdgsjb-pw.woff2)format("woff2");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:Inter;font-style:normal;font-weight:700;font-display:swap;src:url(../media/ad66f9afd8947f86-s.3lvt2whj97whp.woff2)format("woff2");unicode-range:U+1F??}@font-face{font-family:Inter;font-style:normal;font-weight:700;font-display:swap;src:url(../media/5476f68d60460930-s.2uwcyprjm3xu3.woff2)format("woff2");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-weight:700;font-display:swap;src:url(../media/2bbe8d2671613f1f-s.0k62hbripvv8p.woff2)format("woff2");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-weight:700;font-display:swap;src:url(../media/1bffadaabf893a1e-s.3-6t-g6q0vh0a.woff2)format("woff2");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-weight:700;font-display:swap;src:url(../media/83afe278b6a6bb3c-s.p.2bn3s6zvc0dyp.woff2)format("woff2");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 Fallback;src:local(Arial);ascent-override:90.44%;descent-override:22.52%;line-gap-override:0.0%;size-adjust:107.12%}.inter_1ec0685a-module__ODW2ua__className{font-family:Inter,Inter Fallback;font-style:normal}.inter_1ec0685a-module__ODW2ua__variable{--font-inter:"Inter", "Inter Fallback"}
@font-face{font-family:IBM Plex Mono;font-style:normal;font-weight:500;font-display:swap;src:url(../media/5e05ae5b48faa55e-s.1yd4_i3e35931.woff2)format("woff2");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-weight:500;font-display:swap;src:url(../media/a7afbb44bec2bb18-s.1qc6dx89jd2qv.woff2)format("woff2");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-weight:500;font-display:swap;src:url(../media/02263ebadd758ea4-s.29yke99gs9qpn.woff2)format("woff2");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-weight:500;font-display:swap;src:url(../media/68757d6cddeff913-s.1i-sca43-qwng.woff2)format("woff2");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-weight:500;font-display:swap;src:url(../media/effe91970fc4db64-s.p.0oace-s_gkfks.woff2)format("woff2");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-weight:600;font-display:swap;src:url(../media/6ff74e33ebd7bca3-s.352ti9pm7m6qh.woff2)format("woff2");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-weight:600;font-display:swap;src:url(../media/1a69062cfe6f77f8-s.0o-3_g79811ob.woff2)format("woff2");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-weight:600;font-display:swap;src:url(../media/9a4838fcda0d1bca-s.0ngr-xkgqz1kf.woff2)format("woff2");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-weight:600;font-display:swap;src:url(../media/2e95a7d252b9825a-s.15orukf5wyxb5.woff2)format("woff2");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-weight:600;font-display:swap;src:url(../media/23b7a97ae3b5c134-s.p.226pwps5o-gq_.woff2)format("woff2");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 Fallback;src:local(Arial);ascent-override:76.16%;descent-override:20.43%;line-gap-override:0.0%;size-adjust:134.59%}.ibm_plex_mono_b7345f9f-module__YHxIdG__className{font-family:IBM Plex Mono,IBM Plex Mono Fallback;font-style:normal}.ibm_plex_mono_b7345f9f-module__YHxIdG__variable{--font-mono-plex:"IBM Plex Mono", "IBM Plex Mono Fallback"}
:root{--bg:#fff;--surface:#fff;--surface-alt:#eff7f1;--surface-deep:#e4f0e8;--border:#d6e6db;--text:#16261c;--text-dim:#5c7568;--text-faint:#8fa79a;--accent:#2f8f5b;--accent-dark:#1f6b45;--accent-ink:#fff;--ok:#3a9d6a;--ok-bg:#3a9d6a21;--warn:#b5791e;--warn-bg:#b5791e1f;--danger:#b14a3f;--danger-bg:#b14a3f1f;--muted:#9aaaa1;--muted-bg:#9aaaa124;--radius:12px;--s1:#eaf5ee;--s2:#d3ecdd;--s3:#a9dabf;--s4:#7fc79e;--s5:#4fae7b;--s6:#2f8f5b;--font-display:var(--font-oswald), "Oswald", sans-serif;--font-body:var(--font-inter), "Inter", sans-serif;--font-mono:var(--font-mono-plex), "IBM Plex Mono", monospace}*{box-sizing:border-box}html,body{margin:0;padding:0}body{font-family:var(--font-body);color:var(--text);background:#f7fbf8;min-height:100vh}a{color:inherit;text-decoration:none}.app{min-height:100vh;display:flex}.sidebar{background:var(--surface);border-right:1px solid var(--border);flex-direction:column;flex-shrink:0;width:236px;height:100vh;padding:22px 16px;display:flex;position:sticky;top:0}.brand{border-bottom:1px solid var(--border);align-items:center;gap:10px;margin-bottom:18px;padding:0 6px 22px;display:flex}.brand img{flex-shrink:0;width:34px;height:34px}.brand-text{font-family:var(--font-display);font-size:15px;font-weight:600;line-height:1.15}.brand-text span{font-family:var(--font-body);color:var(--text-faint);font-size:11px;font-weight:400;display:block}.nav-group-label{font-family:var(--font-display);letter-spacing:.12em;text-transform:uppercase;color:var(--text-faint);margin:14px 10px 8px;font-size:10.5px}.nav-item{color:var(--text-dim);cursor:pointer;border-left:3px solid #0000;border-radius:8px;align-items:center;gap:10px;margin-bottom:2px;padding:9px 10px;font-size:13.5px;font-weight:500;display:flex}.nav-item .ic{text-align:center;flex-shrink:0;width:18px;font-size:15px}.nav-item.active{background:var(--surface-alt);color:var(--accent-dark);border-left-color:var(--accent);font-weight:600}.nav-item:not(.active):hover{background:var(--surface-alt)}.nav-item.disabled{opacity:.45;cursor:not-allowed}.nav-item.disabled:hover{background:0 0}.nav-item .soon{letter-spacing:.06em;text-transform:uppercase;color:var(--text-faint);border:1px solid var(--border);border-radius:5px;margin-left:auto;padding:1px 4px;font-size:9px}.sidebar-footer{border-top:1px solid var(--border);align-items:center;gap:10px;margin-top:auto;padding-top:16px;display:flex}.avatar{background:var(--accent);color:#fff;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:32px;height:32px;font-size:12px;font-weight:700;display:flex}.sidebar-footer .name{font-size:12.5px;font-weight:600}.sidebar-footer .role{color:var(--text-faint);font-size:11px}.logout-btn{color:var(--text-faint);cursor:pointer;background:0 0;border:none;border-radius:6px;margin-left:auto;padding:4px;font-size:15px}.logout-btn:hover{color:var(--danger);background:var(--danger-bg)}.main{flex:1;min-width:0;padding:28px 34px}.topbar{flex-wrap:wrap;justify-content:space-between;align-items:flex-start;gap:14px;margin-bottom:28px;display:flex}.topbar h1{font-family:var(--font-display);margin:0 0 4px;font-size:24px;font-weight:600}.topbar .sub{color:var(--text-dim);margin:0;font-size:13px}.topbar .actions{align-items:center;gap:10px;display:flex}.section-label{font-family:var(--font-display);letter-spacing:.1em;text-transform:uppercase;color:var(--text-faint);margin:26px 0 10px;font-size:11px}.btn{font-family:var(--font-display);cursor:pointer;letter-spacing:.02em;border:none;border-radius:9px;align-items:center;gap:7px;padding:11px 20px;font-size:13px;font-weight:600;transition:all .2s;display:inline-flex}.btn:disabled{opacity:.6;cursor:not-allowed}.btn-primary{background:var(--accent);color:#fff}.btn-primary:hover:not(:disabled){background:var(--accent-dark);box-shadow:0 4px 8px #1f6b4526}.btn-primary:active:not(:disabled){transform:scale(.98)}.btn-secondary{background:var(--surface-alt);color:var(--text-dim);border:1px solid var(--border)}.btn-secondary:hover:not(:disabled){background:var(--surface-deep);border-color:var(--text-faint)}.btn-secondary:active:not(:disabled){transform:scale(.98)}.btn-sm{padding:8px 14px;font-size:12.5px}.form-container{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);max-width:1000px;padding:28px}.form-section{margin-bottom:32px}.form-section:last-of-type{margin-bottom:0}.form-section-title{font-family:var(--font-display);letter-spacing:.05em;text-transform:uppercase;color:var(--accent-dark);border-bottom:1px solid var(--surface-alt);margin-bottom:16px;padding-bottom:10px;font-size:13px;font-weight:600}.form-section-hint{color:var(--text-dim);margin:-6px 0 16px;font-size:12px}.form-row{grid-template-columns:repeat(3,1fr);gap:18px;margin-bottom:16px;display:grid}.form-row.two-col{grid-template-columns:repeat(2,1fr)}.form-row.full{grid-template-columns:1fr}.form-row:last-child{margin-bottom:0}.form-group{flex-direction:column;display:flex}.form-group label{color:var(--text-dim);letter-spacing:.01em;margin-bottom:6px;font-size:12px;font-weight:600}.form-group label .required{color:var(--danger)}.form-group input,.form-group select,.form-group textarea{background:var(--bg);border:1px solid var(--border);font-family:var(--font-body);color:var(--text);border-radius:9px;width:100%;padding:10px 12px;font-size:13px;transition:border-color .2s,box-shadow .2s}.form-group input:focus,.form-group select:focus,.form-group textarea:focus{border-color:var(--accent);outline:none;box-shadow:0 0 0 3px #2f8f5b1a}.form-group input:disabled,.form-group select:disabled,.form-group input:read-only{background:var(--surface-alt);color:var(--text-faint);cursor:not-allowed}.form-group input[type=tel]{font-family:var(--font-mono)}.form-group textarea{resize:vertical;min-height:100px;font-family:var(--font-body)}.helper-text{color:var(--text-faint);margin-top:4px;font-size:11px}.form-group.error input,.form-group.error select,.form-group.error textarea{border-color:var(--danger);background:#b14a3f0a}.error-message{color:var(--danger);margin-top:4px;font-size:11px}.checkbox-group{grid-template-columns:repeat(2,1fr);gap:12px;margin-top:8px;display:grid}.checkbox-item{align-items:center;gap:8px;display:flex}.checkbox-item input[type=checkbox]{width:18px;height:18px;accent-color:var(--accent);cursor:pointer;flex-shrink:0}.checkbox-item label{color:var(--text);cursor:pointer;margin:0;font-size:13px;font-weight:400}.checkbox-item .unidad{font-family:var(--font-mono);color:var(--text-faint);font-size:11px}.protocol-select-row{grid-template-columns:repeat(5,1fr);gap:12px;margin-top:12px;display:grid}.protocol-select-row .form-group label{margin-bottom:4px;font-size:11px}.protocol-select-row .form-group input,.protocol-select-row .form-group select{padding:8px 10px;font-size:12px}.form-actions{border-top:1px solid var(--surface-alt);justify-content:flex-end;gap:12px;margin-top:32px;padding-top:24px;display:flex}.alert{border-radius:9px;margin-bottom:20px;padding:12px 14px;font-size:13px}.alert.success{background:var(--ok-bg);color:var(--ok);border:1px solid var(--ok)}.alert.error{background:var(--danger-bg);color:var(--danger);border:1px solid var(--danger)}.alert.info{background:var(--surface-alt);color:var(--text-dim);border:1px solid var(--border)}.kpi-row{grid-template-columns:repeat(4,1fr);gap:14px;margin-bottom:18px;display:grid}.kpi-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:14px 16px}.kpi-card .lbl{color:var(--text-faint);text-transform:uppercase;letter-spacing:.06em;font-size:11px;font-family:var(--font-display)}.kpi-card .val{font-family:var(--font-display);margin:4px 0 2px;font-size:26px;font-weight:600}.kpi-card .val.accent{color:var(--accent)}.kpi-card .val.danger{color:var(--danger)}.kpi-card .note{color:var(--text-dim);font-size:11px}.toolbar{flex-wrap:wrap;align-items:center;gap:10px;margin-bottom:14px;display:flex}.toolbar input[type=search],.toolbar input[type=text],.toolbar select{background:var(--surface);border:1px solid var(--border);color:var(--text);font-size:12.5px;font-family:var(--font-body);border-radius:9px;padding:8px 11px}.toolbar input[type=search]{min-width:260px}.toolbar select{cursor:pointer}.toolbar input:focus,.toolbar select:focus{border-color:var(--accent);outline:none;box-shadow:0 0 0 3px #2f8f5b1a}.ghost-clear{border:1px solid var(--border);color:var(--text-dim);cursor:pointer;font-size:12.5px;font-family:var(--font-body);background:0 0;border-radius:9px;padding:8px 12px}.ghost-clear:hover{background:var(--surface-alt)}.toolbar .count{color:var(--text-faint);margin-left:auto;font-size:12px}.col-picker{position:relative}.col-picker .ghost-clear{align-items:center;gap:7px;display:inline-flex}.col-picker .ghost-clear.con-marca{border-color:var(--accent);color:var(--accent-dark)}.col-picker .marca{background:var(--accent);color:#fff;border-radius:20px;padding:1px 6px;font-size:10.5px;font-weight:700;line-height:1.5}.col-menu{z-index:20;background:var(--surface);border:1px solid var(--border);border-radius:11px;width:262px;max-height:420px;padding:6px;position:absolute;top:calc(100% + 6px);right:0;overflow-y:auto;box-shadow:0 10px 28px #16261c21}.col-menu-cabeza{border-bottom:1px solid var(--surface-alt);color:var(--text-faint);justify-content:space-between;align-items:center;gap:8px;padding:8px 9px 10px;font-size:11.5px;display:flex}.col-menu-cabeza button{color:var(--accent);font-family:var(--font-body);cursor:pointer;background:0 0;border:none;padding:0;font-size:11.5px;font-weight:600}.col-menu-cabeza button:disabled{color:var(--text-faint);cursor:not-allowed}.col-menu-cabeza button:not(:disabled):hover{text-decoration:underline}.col-grupo{padding:8px 0 4px}.col-grupo:not(:last-child){border-bottom:1px solid var(--surface-alt)}.col-grupo-tit{font-family:var(--font-display);letter-spacing:.1em;text-transform:uppercase;color:var(--text-faint);padding:0 9px 5px;font-size:10px}.col-item{cursor:pointer;border-radius:7px;align-items:center;gap:9px;padding:6px 9px;font-size:13px;display:flex}.col-item:hover{background:var(--surface-alt)}.col-item input[type=checkbox]{width:16px;height:16px;accent-color:var(--accent);cursor:pointer;flex-shrink:0}.col-item.fija{cursor:default;color:var(--text-dim)}.col-item.fija:hover{background:0 0}.col-item .col-fija{letter-spacing:.06em;text-transform:uppercase;color:var(--text-faint);border:1px solid var(--border);border-radius:5px;margin-left:auto;padding:1px 4px;font-size:9px}.table-wrap{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);overflow-x:auto}.ot-table{border-collapse:collapse;width:100%;min-width:max-content;font-size:12.5px}.ot-table thead th{text-align:left;font-family:var(--font-display);letter-spacing:.06em;text-transform:uppercase;color:var(--text-faint);border-bottom:1px solid var(--border);white-space:nowrap;cursor:pointer;-webkit-user-select:none;user-select:none;background:var(--surface);z-index:1;padding:12px 10px;font-size:10.5px;font-weight:600;position:sticky;top:0}.ot-table thead th:hover{color:var(--accent-dark)}.ot-table thead th .arrow{color:var(--accent);margin-left:3px;font-size:9px}.ot-table tbody td{border-bottom:1px solid var(--surface-alt);vertical-align:middle;white-space:nowrap;padding:10px}.ot-table tbody tr:last-child td{border-bottom:none}.ot-table tbody tr:hover{background:var(--surface-alt)}.ot-table td.wrap{white-space:normal;min-width:150px}.cell-ot{font-family:var(--font-mono);color:var(--accent-dark);font-weight:600}.cell-ot a:hover{text-decoration:underline}.cell-date{font-family:var(--font-mono);color:var(--text-dim);font-size:12px}.cell-person{align-items:center;gap:7px;display:flex}.mini-avatar{background:var(--s3);color:#14512f;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:22px;height:22px;font-size:9.5px;font-weight:700;display:flex}.status-badge{white-space:nowrap;border-radius:20px;padding:3px 9px;font-size:11px;font-weight:600;display:inline-block}.status-badge.stage-1{background:var(--s1);color:#2c4a39}.status-badge.stage-2{background:var(--s2);color:#23503a}.status-badge.stage-3{background:var(--s3);color:#17492f}.status-badge.stage-4{background:var(--s4);color:#10402a}.status-badge.stage-5{background:var(--s5);color:#fff}.status-badge.stage-6{background:var(--s6);color:#fff}.status-badge.stage-0{background:var(--muted-bg);color:var(--text-dim)}.semaforo{white-space:nowrap;align-items:center;gap:6px;display:inline-flex}.semaforo .luz{border-radius:50%;flex-shrink:0;width:9px;height:9px}.semaforo .txt{font-size:11.5px;font-weight:500}.semaforo.ok .luz{background:var(--ok)}.semaforo.ok .txt{color:var(--ok)}.semaforo.warn .luz{background:var(--warn)}.semaforo.warn .txt{color:var(--warn)}.semaforo.danger .luz{background:var(--danger)}.semaforo.danger .txt{color:var(--danger)}.semaforo.muted .luz{background:var(--muted)}.semaforo.muted .txt{color:var(--text-faint)}.day-pill{text-align:center;min-width:34px;font-family:var(--font-mono);border-radius:7px;padding:3px 8px;font-size:11.5px;font-weight:600;display:inline-block}.day-pill.day-ok{background:var(--ok-bg);color:var(--ok)}.day-pill.day-warn{background:var(--warn-bg);color:var(--warn)}.day-pill.day-danger{background:var(--danger-bg);color:var(--danger)}.day-pill.day-muted{background:var(--muted-bg);color:var(--text-faint)}.pagination{color:var(--text-faint);justify-content:space-between;align-items:center;margin-top:12px;font-size:12px;display:flex}.pagination .pages{gap:5px;display:flex}.pagination .pages button{background:var(--surface);border:1px solid var(--border);color:var(--text-dim);cursor:pointer;font-size:12px;font-family:var(--font-body);border-radius:7px;padding:5px 10px}.pagination .pages button.active{background:var(--accent);color:#fff;border-color:var(--accent)}.pagination .pages button:disabled{opacity:.4;cursor:not-allowed}.legend-strip{color:var(--text-dim);flex-wrap:wrap;gap:18px;margin-top:14px;font-size:11.5px;display:flex}.legend-strip .lg{align-items:center;gap:6px;display:flex}.legend-strip .dot{border-radius:50%;width:8px;height:8px}.empty-state{text-align:center;color:var(--text-faint);padding:48px 20px;font-size:13px}.empty-state .big{opacity:.5;margin-bottom:10px;font-size:30px;display:block}.detail-grid{grid-template-columns:2fr 1fr;align-items:start;gap:18px;display:grid}.card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:20px 22px}.card h3{font-family:var(--font-display);letter-spacing:.05em;text-transform:uppercase;color:var(--accent-dark);border-bottom:1px solid var(--surface-alt);margin:0 0 14px;padding-bottom:10px;font-size:13px;font-weight:600}.def-list{grid-template-columns:repeat(2,1fr);gap:14px 20px;display:grid}.def-list.one-col{grid-template-columns:1fr}.def-item .k{color:var(--text-faint);text-transform:uppercase;letter-spacing:.05em;font-size:11px;font-family:var(--font-display);margin-bottom:3px}.def-item .v{color:var(--text);font-size:13.5px}.def-item .v.mono{font-family:var(--font-mono)}.def-item .v.empty{color:var(--text-faint)}.chip-list{flex-wrap:wrap;gap:7px;display:flex}.chip{background:var(--surface-alt);border:1px solid var(--border);color:var(--text-dim);border-radius:20px;align-items:center;gap:6px;padding:4px 11px;font-size:12px;display:inline-flex}.chip .code{font-family:var(--font-mono);color:var(--accent-dark);font-size:10.5px;font-weight:600}.timeline{flex-direction:column;gap:0;display:flex}.tl-item{gap:12px;padding-bottom:16px;display:flex;position:relative}.tl-item:not(:last-child):before{content:"";background:var(--border);width:1px;position:absolute;top:14px;bottom:0;left:5px}.tl-dot{background:var(--accent);z-index:1;border-radius:50%;flex-shrink:0;width:11px;height:11px;margin-top:3px}.tl-body .t{font-size:12.5px;font-weight:600}.tl-body .m{color:var(--text-faint);font-size:11.5px;font-family:var(--font-mono);margin-top:2px}.login-shell{background:linear-gradient(140deg,#f7fbf8 0%,#e4f0e8 100%);flex-direction:column;min-height:100vh;padding:24px;display:flex}.login-centro{flex:1;justify-content:center;align-items:center;display:flex}.login-pie{color:var(--text-faint);justify-content:flex-end;padding-top:22px;font-size:11.5px;display:flex}.login-card{background:var(--surface);border:1px solid var(--border);border-radius:16px;width:100%;max-width:396px;padding:34px 32px;box-shadow:0 12px 32px #16261c12}.login-brand{justify-content:center;align-items:center;gap:10.5px;margin-bottom:30px;display:flex}.login-brand .isotipo{flex-shrink:0;width:53px;height:53px;animation:5s cubic-bezier(.62,0,.32,1) infinite girar-isotipo}.login-brand .marca-texto{width:168px;height:auto}@keyframes girar-isotipo{0%{transform:rotate(0)}20%,to{transform:rotate(360deg)}}@media (prefers-reduced-motion:reduce){.login-brand .isotipo{animation:none}}.login-card .form-group{margin-bottom:14px}.login-card .btn{justify-content:center;width:100%;margin-top:8px}.login-autor{border-top:1px solid var(--surface-alt);justify-content:center;margin-top:26px;padding-top:20px;display:flex}.login-autor img{width:138px;height:auto}@media (max-width:1200px){.form-row{grid-template-columns:repeat(2,1fr)}.protocol-select-row{grid-template-columns:repeat(3,1fr)}.kpi-row{grid-template-columns:repeat(2,1fr)}.detail-grid{grid-template-columns:1fr}}@media (max-width:768px){.sidebar{width:60px;padding:12px 8px}.brand-text,.sidebar-footer .name,.sidebar-footer .role,.nav-item span:not(.ic),.nav-group-label{display:none}.main,.form-container{padding:20px}.form-row,.form-row.two-col,.protocol-select-row,.checkbox-group,.kpi-row,.def-list{grid-template-columns:1fr}.form-actions{flex-direction:column}.form-actions .btn{justify-content:center;width:100%}.toolbar input[type=search]{flex:1;min-width:0}}
