@charset "UTF-8";@font-face{font-family:Inter;font-style:normal;font-weight:300;font-display:swap;src:url(https://fonts.gstatic.com/s/inter/v20/UcC73FwrK3iLTeHuS_nVMrMxCp50SjIa2JL7SUc.woff2) format("woff2");unicode-range:U+0460-052F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Inter;font-style:normal;font-weight:300;font-display:swap;src:url(https://fonts.gstatic.com/s/inter/v20/UcC73FwrK3iLTeHuS_nVMrMxCp50SjIa0ZL7SUc.woff2) format("woff2");unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}@font-face{font-family:Inter;font-style:normal;font-weight:300;font-display:swap;src:url(https://fonts.gstatic.com/s/inter/v20/UcC73FwrK3iLTeHuS_nVMrMxCp50SjIa2ZL7SUc.woff2) format("woff2");unicode-range:U+1F00-1FFF}@font-face{font-family:Inter;font-style:normal;font-weight:300;font-display:swap;src:url(https://fonts.gstatic.com/s/inter/v20/UcC73FwrK3iLTeHuS_nVMrMxCp50SjIa1pL7SUc.woff2) format("woff2");unicode-range:U+0370-0377,U+037A-037F,U+0384-038A,U+038C,U+038E-03A1,U+03A3-03FF}@font-face{font-family:Inter;font-style:normal;font-weight:300;font-display:swap;src:url(https://fonts.gstatic.com/s/inter/v20/UcC73FwrK3iLTeHuS_nVMrMxCp50SjIa2pL7SUc.woff2) format("woff2");unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Inter;font-style:normal;font-weight:300;font-display:swap;src:url(https://fonts.gstatic.com/s/inter/v20/UcC73FwrK3iLTeHuS_nVMrMxCp50SjIa25L7SUc.woff2) format("woff2");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,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:300;font-display:swap;src:url(https://fonts.gstatic.com/s/inter/v20/UcC73FwrK3iLTeHuS_nVMrMxCp50SjIa1ZL7.woff2) format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,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:400;font-display:swap;src:url(https://fonts.gstatic.com/s/inter/v20/UcC73FwrK3iLTeHuS_nVMrMxCp50SjIa2JL7SUc.woff2) format("woff2");unicode-range:U+0460-052F,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(https://fonts.gstatic.com/s/inter/v20/UcC73FwrK3iLTeHuS_nVMrMxCp50SjIa0ZL7SUc.woff2) format("woff2");unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}@font-face{font-family:Inter;font-style:normal;font-weight:400;font-display:swap;src:url(https://fonts.gstatic.com/s/inter/v20/UcC73FwrK3iLTeHuS_nVMrMxCp50SjIa2ZL7SUc.woff2) format("woff2");unicode-range:U+1F00-1FFF}@font-face{font-family:Inter;font-style:normal;font-weight:400;font-display:swap;src:url(https://fonts.gstatic.com/s/inter/v20/UcC73FwrK3iLTeHuS_nVMrMxCp50SjIa1pL7SUc.woff2) format("woff2");unicode-range:U+0370-0377,U+037A-037F,U+0384-038A,U+038C,U+038E-03A1,U+03A3-03FF}@font-face{font-family:Inter;font-style:normal;font-weight:400;font-display:swap;src:url(https://fonts.gstatic.com/s/inter/v20/UcC73FwrK3iLTeHuS_nVMrMxCp50SjIa2pL7SUc.woff2) format("woff2");unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Inter;font-style:normal;font-weight:400;font-display:swap;src:url(https://fonts.gstatic.com/s/inter/v20/UcC73FwrK3iLTeHuS_nVMrMxCp50SjIa25L7SUc.woff2) format("woff2");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,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(https://fonts.gstatic.com/s/inter/v20/UcC73FwrK3iLTeHuS_nVMrMxCp50SjIa1ZL7.woff2) format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,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(https://fonts.gstatic.com/s/inter/v20/UcC73FwrK3iLTeHuS_nVMrMxCp50SjIa2JL7SUc.woff2) format("woff2");unicode-range:U+0460-052F,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(https://fonts.gstatic.com/s/inter/v20/UcC73FwrK3iLTeHuS_nVMrMxCp50SjIa0ZL7SUc.woff2) format("woff2");unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}@font-face{font-family:Inter;font-style:normal;font-weight:500;font-display:swap;src:url(https://fonts.gstatic.com/s/inter/v20/UcC73FwrK3iLTeHuS_nVMrMxCp50SjIa2ZL7SUc.woff2) format("woff2");unicode-range:U+1F00-1FFF}@font-face{font-family:Inter;font-style:normal;font-weight:500;font-display:swap;src:url(https://fonts.gstatic.com/s/inter/v20/UcC73FwrK3iLTeHuS_nVMrMxCp50SjIa1pL7SUc.woff2) format("woff2");unicode-range:U+0370-0377,U+037A-037F,U+0384-038A,U+038C,U+038E-03A1,U+03A3-03FF}@font-face{font-family:Inter;font-style:normal;font-weight:500;font-display:swap;src:url(https://fonts.gstatic.com/s/inter/v20/UcC73FwrK3iLTeHuS_nVMrMxCp50SjIa2pL7SUc.woff2) format("woff2");unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Inter;font-style:normal;font-weight:500;font-display:swap;src:url(https://fonts.gstatic.com/s/inter/v20/UcC73FwrK3iLTeHuS_nVMrMxCp50SjIa25L7SUc.woff2) format("woff2");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,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(https://fonts.gstatic.com/s/inter/v20/UcC73FwrK3iLTeHuS_nVMrMxCp50SjIa1ZL7.woff2) format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,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(https://fonts.gstatic.com/s/inter/v20/UcC73FwrK3iLTeHuS_nVMrMxCp50SjIa2JL7SUc.woff2) format("woff2");unicode-range:U+0460-052F,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(https://fonts.gstatic.com/s/inter/v20/UcC73FwrK3iLTeHuS_nVMrMxCp50SjIa0ZL7SUc.woff2) format("woff2");unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}@font-face{font-family:Inter;font-style:normal;font-weight:600;font-display:swap;src:url(https://fonts.gstatic.com/s/inter/v20/UcC73FwrK3iLTeHuS_nVMrMxCp50SjIa2ZL7SUc.woff2) format("woff2");unicode-range:U+1F00-1FFF}@font-face{font-family:Inter;font-style:normal;font-weight:600;font-display:swap;src:url(https://fonts.gstatic.com/s/inter/v20/UcC73FwrK3iLTeHuS_nVMrMxCp50SjIa1pL7SUc.woff2) format("woff2");unicode-range:U+0370-0377,U+037A-037F,U+0384-038A,U+038C,U+038E-03A1,U+03A3-03FF}@font-face{font-family:Inter;font-style:normal;font-weight:600;font-display:swap;src:url(https://fonts.gstatic.com/s/inter/v20/UcC73FwrK3iLTeHuS_nVMrMxCp50SjIa2pL7SUc.woff2) format("woff2");unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Inter;font-style:normal;font-weight:600;font-display:swap;src:url(https://fonts.gstatic.com/s/inter/v20/UcC73FwrK3iLTeHuS_nVMrMxCp50SjIa25L7SUc.woff2) format("woff2");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,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(https://fonts.gstatic.com/s/inter/v20/UcC73FwrK3iLTeHuS_nVMrMxCp50SjIa1ZL7.woff2) format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,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(https://fonts.gstatic.com/s/inter/v20/UcC73FwrK3iLTeHuS_nVMrMxCp50SjIa2JL7SUc.woff2) format("woff2");unicode-range:U+0460-052F,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(https://fonts.gstatic.com/s/inter/v20/UcC73FwrK3iLTeHuS_nVMrMxCp50SjIa0ZL7SUc.woff2) format("woff2");unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}@font-face{font-family:Inter;font-style:normal;font-weight:700;font-display:swap;src:url(https://fonts.gstatic.com/s/inter/v20/UcC73FwrK3iLTeHuS_nVMrMxCp50SjIa2ZL7SUc.woff2) format("woff2");unicode-range:U+1F00-1FFF}@font-face{font-family:Inter;font-style:normal;font-weight:700;font-display:swap;src:url(https://fonts.gstatic.com/s/inter/v20/UcC73FwrK3iLTeHuS_nVMrMxCp50SjIa1pL7SUc.woff2) format("woff2");unicode-range:U+0370-0377,U+037A-037F,U+0384-038A,U+038C,U+038E-03A1,U+03A3-03FF}@font-face{font-family:Inter;font-style:normal;font-weight:700;font-display:swap;src:url(https://fonts.gstatic.com/s/inter/v20/UcC73FwrK3iLTeHuS_nVMrMxCp50SjIa2pL7SUc.woff2) format("woff2");unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Inter;font-style:normal;font-weight:700;font-display:swap;src:url(https://fonts.gstatic.com/s/inter/v20/UcC73FwrK3iLTeHuS_nVMrMxCp50SjIa25L7SUc.woff2) format("woff2");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,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(https://fonts.gstatic.com/s/inter/v20/UcC73FwrK3iLTeHuS_nVMrMxCp50SjIa1ZL7.woff2) format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:JetBrains Mono;font-style:normal;font-weight:400;font-display:swap;src:url(https://fonts.gstatic.com/s/jetbrainsmono/v24/tDbv2o-flEEny0FZhsfKu5WU4zr3E_BX0PnT8RD8yKwBNntkaToggR7BYRbKPx3cwhsk.woff2) format("woff2");unicode-range:U+0460-052F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:JetBrains Mono;font-style:normal;font-weight:400;font-display:swap;src:url(https://fonts.gstatic.com/s/jetbrainsmono/v24/tDbv2o-flEEny0FZhsfKu5WU4zr3E_BX0PnT8RD8yKwBNntkaToggR7BYRbKPxTcwhsk.woff2) format("woff2");unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}@font-face{font-family:JetBrains Mono;font-style:normal;font-weight:400;font-display:swap;src:url(https://fonts.gstatic.com/s/jetbrainsmono/v24/tDbv2o-flEEny0FZhsfKu5WU4zr3E_BX0PnT8RD8yKwBNntkaToggR7BYRbKPxPcwhsk.woff2) format("woff2");unicode-range:U+0370-0377,U+037A-037F,U+0384-038A,U+038C,U+038E-03A1,U+03A3-03FF}@font-face{font-family:JetBrains Mono;font-style:normal;font-weight:400;font-display:swap;src:url(https://fonts.gstatic.com/s/jetbrainsmono/v24/tDbv2o-flEEny0FZhsfKu5WU4zr3E_BX0PnT8RD8yKwBNntkaToggR7BYRbKPx_cwhsk.woff2) format("woff2");unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB}@font-face{font-family:JetBrains Mono;font-style:normal;font-weight:400;font-display:swap;src:url(https://fonts.gstatic.com/s/jetbrainsmono/v24/tDbv2o-flEEny0FZhsfKu5WU4zr3E_BX0PnT8RD8yKwBNntkaToggR7BYRbKPx7cwhsk.woff2) format("woff2");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,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:JetBrains Mono;font-style:normal;font-weight:400;font-display:swap;src:url(https://fonts.gstatic.com/s/jetbrainsmono/v24/tDbv2o-flEEny0FZhsfKu5WU4zr3E_BX0PnT8RD8yKwBNntkaToggR7BYRbKPxDcwg.woff2) format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:JetBrains Mono;font-style:normal;font-weight:500;font-display:swap;src:url(https://fonts.gstatic.com/s/jetbrainsmono/v24/tDbv2o-flEEny0FZhsfKu5WU4zr3E_BX0PnT8RD8yKwBNntkaToggR7BYRbKPx3cwhsk.woff2) format("woff2");unicode-range:U+0460-052F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:JetBrains Mono;font-style:normal;font-weight:500;font-display:swap;src:url(https://fonts.gstatic.com/s/jetbrainsmono/v24/tDbv2o-flEEny0FZhsfKu5WU4zr3E_BX0PnT8RD8yKwBNntkaToggR7BYRbKPxTcwhsk.woff2) format("woff2");unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}@font-face{font-family:JetBrains Mono;font-style:normal;font-weight:500;font-display:swap;src:url(https://fonts.gstatic.com/s/jetbrainsmono/v24/tDbv2o-flEEny0FZhsfKu5WU4zr3E_BX0PnT8RD8yKwBNntkaToggR7BYRbKPxPcwhsk.woff2) format("woff2");unicode-range:U+0370-0377,U+037A-037F,U+0384-038A,U+038C,U+038E-03A1,U+03A3-03FF}@font-face{font-family:JetBrains Mono;font-style:normal;font-weight:500;font-display:swap;src:url(https://fonts.gstatic.com/s/jetbrainsmono/v24/tDbv2o-flEEny0FZhsfKu5WU4zr3E_BX0PnT8RD8yKwBNntkaToggR7BYRbKPx_cwhsk.woff2) format("woff2");unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB}@font-face{font-family:JetBrains Mono;font-style:normal;font-weight:500;font-display:swap;src:url(https://fonts.gstatic.com/s/jetbrainsmono/v24/tDbv2o-flEEny0FZhsfKu5WU4zr3E_BX0PnT8RD8yKwBNntkaToggR7BYRbKPx7cwhsk.woff2) format("woff2");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,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:JetBrains Mono;font-style:normal;font-weight:500;font-display:swap;src:url(https://fonts.gstatic.com/s/jetbrainsmono/v24/tDbv2o-flEEny0FZhsfKu5WU4zr3E_BX0PnT8RD8yKwBNntkaToggR7BYRbKPxDcwg.woff2) format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}:root{--bg: #04060f;--surface: #0b1120;--elevated: #111928;--border: #1d2b42;--border-l: #243347;--accent: #34d399;--accent-d: #059669;--muted: #4b6180;--text: #c8d8ec;--bg-canvas: #0f172a;--bg-panel: #1e293b;--bg-card: #273549;--bg-hover: #334155;--accent2: #818cf8;--accent-green: #34d399;--accent-yellow: #fbbf24;--accent-red: #f87171;--text-primary: #f1f5f9;--text-muted: #94a3b8;--text-dim: #64748b;--border-orig: #334155;--border-light: #475569}html[data-theme=light]{--bg: #eef2f9;--surface: #ffffff;--elevated: #f4f7fc;--border: #dde6f3;--border-l: #c5d4e8;--accent: #2D6A4F;--accent-d: #1b4531;--muted: #6b80a3;--text: #1e2d45;--bg-canvas: #f0f4fa;--bg-panel: #ffffff;--bg-card: #f4f7fc;--bg-hover: #e8edf5;--text-primary: #1e2d45;--text-muted: #6b80a3;--text-dim: #94a3b8;--border-orig: #dde6f3;--border-light: #c5d4e8}*{margin:0;padding:0;box-sizing:border-box}body{font-family:Segoe UI,system-ui,-apple-system,sans-serif;background:var(--bg-canvas);color:var(--text-primary);overflow:hidden;height:100vh}::-webkit-scrollbar{width:6px}::-webkit-scrollbar-track{background:transparent}::-webkit-scrollbar-thumb{background:var(--border-orig);border-radius:3px}::-webkit-scrollbar-thumb:hover{background:var(--border-light)}@keyframes fadeIn{0%{opacity:0;transform:translateY(4px)}to{opacity:1;transform:none}}@keyframes slideIn{0%{transform:translate(40px);opacity:0}to{transform:none;opacity:1}}@keyframes spin{to{transform:rotate(360deg)}}.fade-in{animation:fadeIn .22s ease both}.spin{animation:spin .8s linear infinite}.app-layout{display:grid;grid-template-rows:48px 1fr;height:100vh}.topbar{display:flex;align-items:center;gap:12px;padding:0 16px;background:var(--bg-panel);border-bottom:1px solid var(--border-orig);z-index:100}.topbar h1{font-size:15px;font-weight:600;white-space:nowrap;color:var(--accent)}.topbar h1 span{color:var(--text-muted);font-weight:400;font-size:13px;margin-left:6px}.main-grid{display:grid;grid-template-columns:1fr 360px;overflow:hidden}.main-grid.sidebar-hidden{grid-template-columns:1fr 0}.canvas-wrap{position:relative;overflow:hidden;background:var(--bg-canvas)}.canvas-wrap svg{display:block;width:100%;height:100%}.zoom-controls{position:absolute;bottom:16px;left:16px;display:flex;gap:4px;z-index:10}.zoom-btn{width:32px;height:32px;background:var(--bg-panel);border:1px solid var(--border-orig);color:var(--text-primary);border-radius:6px;cursor:pointer;font-size:16px;display:flex;align-items:center;justify-content:center}.zoom-btn:hover{background:var(--bg-hover)}.legend{position:absolute;bottom:16px;right:376px;background:var(--bg-panel);border:1px solid var(--border-orig);border-radius:8px;padding:8px 12px;font-size:11px;color:var(--text-muted);z-index:10;max-height:300px;overflow-y:auto}.sidebar-hidden .legend{right:16px}.legend-title{font-weight:600;margin-bottom:4px;color:var(--text-primary)}.legend-item{display:flex;align-items:center;gap:6px;padding:1px 0;cursor:pointer}.legend-item:hover{color:var(--text-primary)}.legend-dot{width:10px;height:10px;border-radius:2px;flex-shrink:0}.info-badge{position:absolute;top:8px;left:8px;background:var(--bg-panel);border:1px solid var(--border-orig);border-radius:6px;padding:4px 10px;font-size:11px;color:var(--text-muted);z-index:10}.welcome{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);text-align:center;color:var(--text-dim);z-index:5;pointer-events:none}.welcome h2{font-size:18px;color:var(--text-muted);margin-bottom:8px}.welcome p{font-size:13px}.explorer-sidebar{overflow-y:auto;background:var(--bg-panel);border-left:1px solid var(--border-orig);padding:0;transition:width .2s}.explorer-sidebar.hidden{width:0;padding:0;overflow:hidden}.sidebar-header{padding:16px;border-bottom:1px solid var(--border-orig)}.sidebar-header h2{font-size:16px;font-weight:600;word-break:break-all}.sidebar-header .badges{display:flex;flex-wrap:wrap;gap:4px;margin-top:6px}.domain-badge{display:inline-block;padding:2px 8px;border-radius:10px;font-size:10px;font-weight:500;color:#fff}.stat-row{display:flex;gap:12px;padding:8px 16px;background:var(--bg-card);font-size:12px;color:var(--text-muted);border-bottom:1px solid var(--border-orig)}.stat-row span{white-space:nowrap}.stat-val{color:var(--accent);font-weight:600}.desc-text{font-size:12px;color:var(--text-muted);line-height:1.4;padding:8px 16px;border-bottom:1px solid var(--border-orig);font-style:italic}.sb-section{padding:12px 16px;border-bottom:1px solid var(--border-orig)}.sb-section h3{font-size:12px;font-weight:600;text-transform:uppercase;letter-spacing:.5px;color:var(--text-muted);margin-bottom:8px;cursor:pointer}.sb-section h3:hover{color:var(--text-primary)}.sb-section.collapsed .sb-content{display:none}.sb-section h3:before{content:"\25be";font-size:10px}.sb-section.collapsed h3:before{content:"\25b8"}.col-table{width:100%;font-size:11px;border-collapse:collapse}.col-table td{padding:2px 4px;border-bottom:1px solid var(--border-orig);vertical-align:top}.col-table tr:hover{background:var(--bg-hover)}.col-table .pk-row{background:#fbbf2414}.col-table .pk-row td:first-child{color:var(--accent-yellow);font-weight:600}.col-name{font-family:Cascadia Code,JetBrains Mono,Fira Code,monospace;color:var(--text-primary);white-space:nowrap}.col-type{color:var(--accent2);font-family:monospace;font-size:10px;white-space:nowrap}.col-null{color:var(--text-dim);font-size:10px}.col-fk{color:var(--accent);cursor:pointer;text-decoration:underline;font-size:10px}.col-fk:hover{color:#7dd3fc}.col-desc{color:var(--text-muted);font-size:10px;font-style:italic;max-width:120px}.fk-item{display:flex;align-items:center;gap:6px;padding:3px 0;font-size:11px}.fk-item a{color:var(--accent);text-decoration:none;font-family:monospace;cursor:pointer}.fk-item a:hover{text-decoration:underline}.fk-col{color:var(--text-muted);font-family:monospace;font-size:10px}.fk-more{color:var(--text-dim);font-size:11px;cursor:pointer;padding:4px 0}.fk-more:hover{color:var(--accent)}.ix-item{padding:3px 0;font-size:11px}.ix-name{color:var(--text-muted);font-family:monospace;font-size:10px}.ix-cols{color:var(--text-primary);font-family:monospace;font-size:10px}.ix-unique{color:var(--accent-yellow);font-size:9px;font-weight:600;margin-left:4px}.tb-select{background:var(--bg-card);color:var(--text-primary);border:1px solid var(--border-orig);border-radius:6px;padding:6px 10px;font-size:12px;cursor:pointer;max-width:260px}.tb-select:focus{outline:none;border-color:var(--accent)}.search-wrap{position:relative;flex:0 0 220px}.search-wrap input{width:100%;background:var(--bg-card);color:var(--text-primary);border:1px solid var(--border-orig);border-radius:6px;padding:6px 10px 6px 28px;font-size:12px}.search-wrap input:focus{outline:none;border-color:var(--accent)}.search-wrap .search-icon{position:absolute;left:8px;top:50%;transform:translateY(-50%);color:var(--text-dim);font-size:13px;pointer-events:none}.search-results{position:absolute;top:100%;left:0;right:0;background:var(--bg-panel);border:1px solid var(--border-orig);border-radius:0 0 6px 6px;max-height:320px;overflow-y:auto;z-index:200}.sr-item{padding:6px 10px;font-size:12px;cursor:pointer;border-bottom:1px solid var(--border-orig)}.sr-item:hover{background:var(--bg-hover)}.sr-item .sr-table{font-weight:600;color:var(--text-primary)}.sr-item .sr-match{color:var(--text-muted);font-size:11px;margin-left:4px}.sr-item .sr-domain{color:var(--text-dim);font-size:10px;float:right}.tb-btn{background:var(--bg-card);color:var(--text-primary);border:1px solid var(--border-orig);border-radius:6px;padding:6px 12px;font-size:12px;cursor:pointer;white-space:nowrap}.tb-btn:hover{background:var(--bg-hover)}.tb-btn.active{border-color:var(--accent);color:var(--accent)}.tb-spacer{flex:1}.modal-overlay{position:fixed;inset:0;background:#0009;z-index:500;display:flex;align-items:center;justify-content:center}.modal{background:var(--bg-panel);border:1px solid var(--border-orig);border-radius:12px;padding:24px;max-width:700px;width:90%;max-height:80vh;overflow-y:auto;animation:fadeIn .2s ease}.modal h2{font-size:18px;margin-bottom:16px;color:var(--accent)}.modal h3{font-size:13px;font-weight:600;color:var(--text-muted);margin:16px 0 8px;text-transform:uppercase;letter-spacing:.5px}.modal .close-btn{float:right;background:none;border:none;color:var(--text-muted);font-size:20px;cursor:pointer}.modal .close-btn:hover{color:var(--text-primary)}.stat-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:12px}.stat-card{background:var(--bg-card);border-radius:8px;padding:12px;text-align:center}.stat-card .num{display:block;font-size:24px;font-weight:700;color:var(--accent)}.stat-card .label{font-size:11px;color:var(--text-muted)}.bar-row{display:flex;align-items:center;gap:8px;padding:3px 0;font-size:11px}.bar-label{width:120px;text-align:right;color:var(--text-primary);font-family:monospace;flex-shrink:0}.bar-track{flex:1;height:18px;background:var(--bg-card);border-radius:3px;overflow:hidden;position:relative}.bar-fill{height:100%;background:var(--accent);border-radius:3px;display:flex;align-items:center;justify-content:flex-end;padding-right:4px;min-width:24px;transition:width .3s}.bar-value{font-size:10px;font-weight:600;color:#fff}.bar-role{width:150px;color:var(--text-muted);font-size:10px;flex-shrink:0}.glossary-search{width:100%;background:var(--bg-card);color:var(--text-primary);border:1px solid var(--border-orig);border-radius:6px;padding:8px 12px;font-size:13px;margin-bottom:12px}.glossary-search:focus{outline:none;border-color:var(--accent)}.glossary-row{display:grid;grid-template-columns:80px 1fr 1fr;gap:8px;padding:4px 0;font-size:12px;border-bottom:1px solid var(--border-orig)}.glossary-abbr{font-family:monospace;font-weight:600;color:var(--accent-yellow)}.glossary-de{color:var(--text-primary)}.glossary-en{color:var(--text-muted)}.node{cursor:pointer}.node:hover rect{filter:brightness(1.3)}.node.selected rect{stroke:var(--accent)!important;stroke-width:2.5px!important}.node text{pointer-events:none}.link{fill:none;stroke:var(--border-light);stroke-opacity:.5}.link.highlighted{stroke:var(--accent);stroke-opacity:1;stroke-width:2px}.link-label{fill:var(--text-dim);font-size:9px;pointer-events:none}.tooltip{position:fixed;background:var(--bg-panel);border:1px solid var(--border-orig);border-radius:6px;padding:6px 10px;font-size:11px;color:var(--text-primary);pointer-events:none;z-index:1000;display:none;max-width:300px;box-shadow:0 4px 12px #0006}@media (max-width: 900px){.main-grid{grid-template-columns:1fr}.explorer-sidebar{position:fixed;right:0;top:48px;bottom:0;width:340px;z-index:50;transform:translate(100%);transition:transform .2s}.explorer-sidebar.mobile-visible{transform:translate(0)}.legend{right:16px}}.admin-page{padding:24px;overflow-y:auto;height:100vh;background:var(--bg-canvas)}.admin-page h1{font-size:18px;font-weight:600;color:var(--accent);margin-bottom:24px}.admin-card{background:var(--bg-panel);border:1px solid var(--border-orig);border-radius:10px;padding:16px;margin-bottom:24px}.admin-table{border-collapse:collapse;width:100%}.admin-table th{font-size:10px;font-weight:600;letter-spacing:.1em;text-transform:uppercase;color:var(--text-muted);padding:10px 16px;border-bottom:1px solid var(--border-orig);white-space:nowrap;text-align:left}.admin-table td{padding:10px 16px;font-size:13px;vertical-align:middle;color:var(--text-primary);border-bottom:1px solid var(--border-orig)}.admin-table tr:last-child td{border-bottom:none}.admin-table tr:hover td{background:var(--bg-hover)}.input{background:var(--bg-card);border:1px solid var(--border-orig);color:var(--text-primary);border-radius:6px;padding:6px 10px;font-size:12px;outline:none;transition:border-color .15s;width:100%;display:block}.input:focus{border-color:var(--accent)}.input::placeholder{color:var(--text-dim)}.btn-primary{display:inline-flex;align-items:center;gap:6px;font-size:12px;font-weight:500;padding:6px 12px;border-radius:6px;border:1px solid #065f46;background:#064e3b;color:#34d399;cursor:pointer}.btn-primary:hover{background:#065f46;color:#6ee7b7}.btn-danger{display:inline-flex;align-items:center;gap:6px;font-size:12px;font-weight:500;padding:6px 12px;border-radius:6px;border:1px solid #450a0a;background:#1c0606;color:#f87171;cursor:pointer}.btn-danger:hover{background:#2d0a0a}.badge-lw{display:inline-flex;align-items:center;font-family:JetBrains Mono,monospace;font-size:11px;font-weight:500;padding:2px 8px;border-radius:4px;border:1px solid}.badge-success{background:#052e16;color:#34d399;border-color:#064e3b}.badge-failure{background:#1c0606;color:#f87171;border-color:#450a0a}.badge-started{background:#0c1a3a;color:#60a5fa;border-color:#1e3a6e}.badge-pending{background:var(--elevated);color:var(--muted);border-color:var(--border)}.badge-purple{background:#1e1035;color:#c4b5fd;border-color:#4c1d95}.section-label{font-size:10px;font-weight:700;letter-spacing:.12em;text-transform:uppercase;color:var(--text-muted);margin-bottom:12px}.login-page{display:flex;align-items:center;justify-content:center;min-height:100vh;background:var(--bg-canvas)}.login-card{background:var(--bg-panel);border:1px solid var(--border-orig);border-radius:12px;padding:32px;width:380px}.login-card h1{font-size:20px;font-weight:600;color:var(--accent);margin-bottom:24px;text-align:center}.login-field{margin-bottom:16px}.login-field label{display:block;font-size:11px;font-weight:600;color:var(--text-muted);margin-bottom:4px;text-transform:uppercase;letter-spacing:.5px}.login-btn{width:100%;padding:10px;border-radius:6px;border:none;background:var(--accent);color:#000;font-weight:600;font-size:14px;cursor:pointer}.login-btn:hover{opacity:.9}.login-error{color:var(--accent-red);font-size:12px;text-align:center;margin-top:12px}.license-preview{background:var(--bg-card);border:1px solid var(--border-orig);border-radius:8px;padding:12px 16px;margin-bottom:16px;font-size:12px;color:var(--text-muted);line-height:1.8}.register-link{text-align:center;font-size:12px;margin-top:16px;color:var(--text-muted)}.register-link a{color:var(--accent);text-decoration:none}.register-link a:hover{text-decoration:underline}.redacted,.redacted td{color:var(--text-dim)!important;filter:blur(3px);-webkit-user-select:none;user-select:none;pointer-events:none}.fk-item.redacted a{color:var(--text-dim)!important;text-decoration:none!important}.redacted-hint{color:var(--text-dim);font-size:11px;font-style:italic;padding:4px 0}.upgrade-banner{margin:12px 0;padding:12px 16px;border-radius:8px;background:#818cf81a;border:1px solid var(--accent2);color:var(--accent2);font-size:12px;text-align:center}
