@font-face{font-family:IBM Plex Sans;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/ibm-plex-sans-cyrillic-ext-400-normal-g30qAdWV.woff2) format("woff2"),url(/assets/ibm-plex-sans-cyrillic-ext-400-normal-Dsrv2Tcn.woff) format("woff");unicode-range:U+0460-052F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:IBM Plex Sans;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/ibm-plex-sans-cyrillic-400-normal-DZqxrq2p.woff2) format("woff2"),url(/assets/ibm-plex-sans-cyrillic-400-normal-BTotfTJu.woff) format("woff");unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}@font-face{font-family:IBM Plex Sans;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/ibm-plex-sans-greek-400-normal-_efipK4i.woff2) format("woff2"),url(/assets/ibm-plex-sans-greek-400-normal-D9ESIMu3.woff) format("woff");unicode-range:U+0370-0377,U+037A-037F,U+0384-038A,U+038C,U+038E-03A1,U+03A3-03FF}@font-face{font-family:IBM Plex Sans;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/ibm-plex-sans-vietnamese-400-normal-DG4YqDda.woff2) format("woff2"),url(/assets/ibm-plex-sans-vietnamese-400-normal-fK1oJ5dG.woff) format("woff");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:IBM Plex Sans;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/ibm-plex-sans-latin-ext-400-normal-C5H60-Va.woff2) format("woff2"),url(/assets/ibm-plex-sans-latin-ext-400-normal-RBey6euL.woff) format("woff");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:IBM Plex Sans;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/ibm-plex-sans-latin-400-normal-CDDApCn2.woff2) format("woff2"),url(/assets/ibm-plex-sans-latin-400-normal-CYLoc0-x.woff) format("woff");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:IBM Plex Sans;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/ibm-plex-sans-cyrillic-ext-500-normal-Cs5J6C77.woff2) format("woff2"),url(/assets/ibm-plex-sans-cyrillic-ext-500-normal-DB5PtV2g.woff) format("woff");unicode-range:U+0460-052F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:IBM Plex Sans;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/ibm-plex-sans-cyrillic-500-normal-CocWQlwt.woff2) format("woff2"),url(/assets/ibm-plex-sans-cyrillic-500-normal-ByOcLdNv.woff) format("woff");unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}@font-face{font-family:IBM Plex Sans;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/ibm-plex-sans-greek-500-normal-JMMifIXV.woff2) format("woff2"),url(/assets/ibm-plex-sans-greek-500-normal-CuWXN6rf.woff) format("woff");unicode-range:U+0370-0377,U+037A-037F,U+0384-038A,U+038C,U+038E-03A1,U+03A3-03FF}@font-face{font-family:IBM Plex Sans;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/ibm-plex-sans-vietnamese-500-normal-e4dixQRQ.woff2) format("woff2"),url(/assets/ibm-plex-sans-vietnamese-500-normal-BEb3_waV.woff) format("woff");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:IBM Plex Sans;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/ibm-plex-sans-latin-ext-500-normal-DakdToA3.woff2) format("woff2"),url(/assets/ibm-plex-sans-latin-ext-500-normal-D0aIdm-b.woff) format("woff");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:IBM Plex Sans;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/ibm-plex-sans-latin-500-normal-6ng42L7E.woff2) format("woff2"),url(/assets/ibm-plex-sans-latin-500-normal-BgVn5rGT.woff) format("woff");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:IBM Plex Sans;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/ibm-plex-sans-cyrillic-ext-600-normal-DUMzJB7m.woff2) format("woff2"),url(/assets/ibm-plex-sans-cyrillic-ext-600-normal-Bz0x94Yp.woff) format("woff");unicode-range:U+0460-052F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:IBM Plex Sans;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/ibm-plex-sans-cyrillic-600-normal-71GNu3SW.woff2) format("woff2"),url(/assets/ibm-plex-sans-cyrillic-600-normal-BGq0mW3O.woff) format("woff");unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}@font-face{font-family:IBM Plex Sans;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/ibm-plex-sans-greek-600-normal-DzTrcv_p.woff2) format("woff2"),url(/assets/ibm-plex-sans-greek-600-normal-D-CqTdkO.woff) format("woff");unicode-range:U+0370-0377,U+037A-037F,U+0384-038A,U+038C,U+038E-03A1,U+03A3-03FF}@font-face{font-family:IBM Plex Sans;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/ibm-plex-sans-vietnamese-600-normal-DpPYBSTl.woff2) format("woff2"),url(/assets/ibm-plex-sans-vietnamese-600-normal-DgdngZtN.woff) format("woff");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:IBM Plex Sans;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/ibm-plex-sans-latin-ext-600-normal-DOrvGEcy.woff2) format("woff2"),url(/assets/ibm-plex-sans-latin-ext-600-normal-DIrixKbi.woff) format("woff");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:IBM Plex Sans;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/ibm-plex-sans-latin-600-normal-CuJfVYMP.woff2) format("woff2"),url(/assets/ibm-plex-sans-latin-600-normal-Cu4Hd6ag.woff) format("woff");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:IBM Plex Sans;font-style:normal;font-display:swap;font-weight:700;src:url(/assets/ibm-plex-sans-cyrillic-ext-700-normal-BmRLXWpJ.woff2) format("woff2"),url(/assets/ibm-plex-sans-cyrillic-ext-700-normal-DCQwxkRk.woff) format("woff");unicode-range:U+0460-052F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:IBM Plex Sans;font-style:normal;font-display:swap;font-weight:700;src:url(/assets/ibm-plex-sans-cyrillic-700-normal-D_uavGvn.woff2) format("woff2"),url(/assets/ibm-plex-sans-cyrillic-700-normal-RFb1v-CK.woff) format("woff");unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}@font-face{font-family:IBM Plex Sans;font-style:normal;font-display:swap;font-weight:700;src:url(/assets/ibm-plex-sans-greek-700-normal-wyJ6jzdA.woff2) format("woff2"),url(/assets/ibm-plex-sans-greek-700-normal-CkZN0sRy.woff) format("woff");unicode-range:U+0370-0377,U+037A-037F,U+0384-038A,U+038C,U+038E-03A1,U+03A3-03FF}@font-face{font-family:IBM Plex Sans;font-style:normal;font-display:swap;font-weight:700;src:url(/assets/ibm-plex-sans-vietnamese-700-normal-CkEo6LDy.woff2) format("woff2"),url(/assets/ibm-plex-sans-vietnamese-700-normal-BV5B8Are.woff) format("woff");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:IBM Plex Sans;font-style:normal;font-display:swap;font-weight:700;src:url(/assets/ibm-plex-sans-latin-ext-700-normal-aMgXseD4.woff2) format("woff2"),url(/assets/ibm-plex-sans-latin-ext-700-normal-DZH6Xh-4.woff) format("woff");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:IBM Plex Sans;font-style:normal;font-display:swap;font-weight:700;src:url(/assets/ibm-plex-sans-latin-700-normal-Bxkt5Cjx.woff2) format("woff2"),url(/assets/ibm-plex-sans-latin-700-normal-Bth3BMcD.woff) format("woff");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:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/ibm-plex-mono-cyrillic-ext-400-normal-xuaO2J-f.woff2) format("woff2"),url(/assets/ibm-plex-mono-cyrillic-ext-400-normal-DMdlQ8Kv.woff) format("woff");unicode-range:U+0460-052F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/ibm-plex-mono-cyrillic-400-normal-BSMlKf0J.woff2) format("woff2"),url(/assets/ibm-plex-mono-cyrillic-400-normal-CEL4l2ZJ.woff) format("woff");unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}@font-face{font-family:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/ibm-plex-mono-vietnamese-400-normal-BulugwFq.woff2) format("woff2"),url(/assets/ibm-plex-mono-vietnamese-400-normal-DDuiU_S-.woff) format("woff");unicode-range:U+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:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/ibm-plex-mono-latin-ext-400-normal-BmRBH3aV.woff2) format("woff2"),url(/assets/ibm-plex-mono-latin-ext-400-normal-D3D2R8hC.woff) format("woff");unicode-range:U+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:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/ibm-plex-mono-latin-400-normal-DMJ8VG8y.woff2) format("woff2"),url(/assets/ibm-plex-mono-latin-400-normal-CvHOgSBP.woff) format("woff");unicode-range:U+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:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/ibm-plex-mono-cyrillic-ext-500-normal-BqneJy0T.woff2) format("woff2"),url(/assets/ibm-plex-mono-cyrillic-ext-500-normal-BIfNGwUT.woff) format("woff");unicode-range:U+0460-052F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/ibm-plex-mono-cyrillic-500-normal-Bq9vWWag.woff2) format("woff2"),url(/assets/ibm-plex-mono-cyrillic-500-normal-Ael50iVv.woff) format("woff");unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}@font-face{font-family:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/ibm-plex-mono-vietnamese-500-normal-DZ4AoWbu.woff2) format("woff2"),url(/assets/ibm-plex-mono-vietnamese-500-normal-C8zxqsMH.woff) format("woff");unicode-range:U+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:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/ibm-plex-mono-latin-ext-500-normal-CAhNIIs5.woff2) format("woff2"),url(/assets/ibm-plex-mono-latin-ext-500-normal-CZ70TYgx.woff) format("woff");unicode-range:U+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:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/ibm-plex-mono-latin-500-normal-DSY6xOcd.woff2) format("woff2"),url(/assets/ibm-plex-mono-latin-500-normal-CB9ihrfo.woff) format("woff");unicode-range:U+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:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/ibm-plex-mono-cyrillic-ext-600-normal-V-xxqcpd.woff2) format("woff2"),url(/assets/ibm-plex-mono-cyrillic-ext-600-normal-9HEixskS.woff) format("woff");unicode-range:U+0460-052F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/ibm-plex-mono-cyrillic-600-normal-CTOM6hUh.woff2) format("woff2"),url(/assets/ibm-plex-mono-cyrillic-600-normal-fLZuRloM.woff) format("woff");unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}@font-face{font-family:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/ibm-plex-mono-vietnamese-600-normal-D2EvbN8M.woff2) format("woff2"),url(/assets/ibm-plex-mono-vietnamese-600-normal-iLQfcSjf.woff) format("woff");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:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/ibm-plex-mono-latin-ext-600-normal-D38SheWl.woff2) format("woff2"),url(/assets/ibm-plex-mono-latin-ext-600-normal-DmB0ttJJ.woff) format("woff");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:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/ibm-plex-mono-latin-600-normal-BgSNZQsw.woff2) format("woff2"),url(/assets/ibm-plex-mono-latin-600-normal-DWFSQ4vo.woff) format("woff");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{--mode-bar: #475569;--accent: #3b82f6;--accent-soft: color-mix(in oklab, var(--accent) 18%, transparent);--accent-dim: color-mix(in oklab, var(--accent) 40%, transparent);--ok: #22c55e;--warn: #f59e0b;--danger: #ef4444;--info: #3b82f6;--r-sm: 6px;--r-md: 10px;--r-lg: 14px;--r-xl: 20px;--pad-1: 8px;--pad-2: 12px;--pad-3: 16px;--pad-4: 20px;--pad-5: 28px;--font-sans: "IBM Plex Sans", ui-sans-serif, system-ui, -apple-system, Segoe UI, Helvetica, sans-serif;--font-mono: "IBM Plex Mono", ui-monospace, "SF Mono", Menlo, Consolas, monospace;--tr-fast: .12s cubic-bezier(.3, .7, .4, 1);--tr: .2s cubic-bezier(.3, .7, .4, 1)}:root[data-theme=dark]{--mode-bar: #3a4a66;--bg: #0b1220;--bg-2: #0f1825;--surface: #121d2e;--surface-2: #182640;--elevated: #1c2c47;--border: rgba(255, 255, 255, .08);--border-strong: rgba(255, 255, 255, .14);--fg: #e6edf3;--fg-2: #a4b1c2;--fg-3: #6c7a8e;--inset-grad: radial-gradient(900px 600px at 80% -10%, color-mix(in oklab, var(--accent) 10%, transparent), transparent 70%), radial-gradient(800px 500px at -10% 110%, rgba(80, 120, 200, .07), transparent 70%);--hairline: rgba(255, 255, 255, .05);--shadow-1: 0 1px 0 rgba(255, 255, 255, .04) inset, 0 1px 2px rgba(0, 0, 0, .4);--shadow-2: 0 1px 0 rgba(255, 255, 255, .04) inset, 0 8px 24px rgba(0, 0, 0, .4)}:root[data-theme=light]{--mode-bar: #475569;--bg: #f5f7fb;--bg-2: #eef2f7;--surface: #ffffff;--surface-2: #f8fafc;--elevated: #ffffff;--border: #e3e7ed;--border-strong: #cdd4dd;--fg: #0b1220;--fg-2: #475467;--fg-3: #768094;--inset-grad: radial-gradient(900px 600px at 80% -10%, color-mix(in oklab, var(--accent) 6%, transparent), transparent 70%);--hairline: rgba(0, 0, 0, .05);--shadow-1: 0 1px 0 rgba(255, 255, 255, .6) inset, 0 1px 2px rgba(10, 20, 40, .06);--shadow-2: 0 1px 0 rgba(255, 255, 255, .6) inset, 0 6px 20px rgba(10, 20, 40, .08)}*,*:before,*:after{box-sizing:border-box}html,body{height:100%}body{margin:0;font-family:var(--font-sans);color:var(--fg);background:var(--bg);background-image:var(--inset-grad);background-attachment:fixed;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility;font-feature-settings:"cv02","cv03","cv04","cv11","ss01"}button{font-family:inherit}:root,:root[data-density=airy]{--row-h: 44px;--gap: 16px;--pad-card: 22px}:root[data-density=cozy]{--row-h: 38px;--gap: 12px;--pad-card: 18px}:root[data-density=dense]{--row-h: 32px;--gap: 8px;--pad-card: 14px}.mono{font-family:var(--font-mono);font-variant-numeric:tabular-nums;letter-spacing:-.01em}.h-num{font-family:var(--font-mono);font-feature-settings:"ss02";font-variant-numeric:tabular-nums}.card{background:var(--surface);border:1px solid var(--border);border-radius:var(--r-lg);padding:var(--pad-card);box-shadow:var(--shadow-1)}.card-flat{background:var(--surface);border:1px solid var(--border);border-radius:var(--r-lg)}.pill{display:inline-flex;align-items:center;gap:6px;font-family:var(--font-mono);font-size:11px;font-weight:500;text-transform:uppercase;letter-spacing:.06em;padding:3px 8px;border-radius:999px;line-height:1;border:1px solid var(--border-strong);color:var(--fg-2)}.pill.ok{color:var(--ok);border-color:color-mix(in oklab,var(--ok) 35%,transparent);background:color-mix(in oklab,var(--ok) 10%,transparent)}.pill.warn{color:var(--warn);border-color:color-mix(in oklab,var(--warn) 35%,transparent);background:color-mix(in oklab,var(--warn) 10%,transparent)}.pill.danger{color:var(--danger);border-color:color-mix(in oklab,var(--danger) 35%,transparent);background:color-mix(in oklab,var(--danger) 12%,transparent)}.pill.info{color:var(--info);border-color:color-mix(in oklab,var(--info) 35%,transparent);background:color-mix(in oklab,var(--info) 10%,transparent)}.pill.accent{color:var(--accent);border-color:color-mix(in oklab,var(--accent) 35%,transparent);background:var(--accent-soft)}.pill .dot{width:6px;height:6px;border-radius:999px;background:currentColor}.pill .dot.pulse{animation:dot-pulse 1.6s ease-in-out infinite}@keyframes dot-pulse{0%,to{opacity:1;transform:scale(1)}50%{opacity:.4;transform:scale(.8)}}.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;height:40px;padding:0 16px;border-radius:var(--r-md);background:var(--surface-2);color:var(--fg);border:1px solid var(--border);font-size:14px;font-weight:500;cursor:pointer;transition:transform var(--tr-fast),background var(--tr-fast),border-color var(--tr-fast)}.btn:hover{background:var(--elevated);border-color:var(--border-strong)}.btn:active{transform:translateY(1px)}.btn:disabled{opacity:.4;pointer-events:none}.btn.primary{background:var(--accent);color:var(--on-accent);border-color:transparent}.btn.primary:hover{background:color-mix(in oklab,var(--accent) 90%,white)}.btn.ghost{background:transparent;border-color:transparent;color:var(--fg-2)}.btn.ghost:hover{background:var(--surface-2);color:var(--fg)}.btn.danger{background:color-mix(in oklab,var(--danger) 14%,transparent);color:var(--danger);border-color:color-mix(in oklab,var(--danger) 35%,transparent)}.btn.danger:hover{background:color-mix(in oklab,var(--danger) 20%,transparent)}.btn.icon-only{width:40px;padding:0}.btn.sm{height:32px;padding:0 12px;font-size:13px}.btn.sm.icon-only{width:32px;padding:0}.input{height:44px;width:100%;padding:0 14px;background:var(--surface-2);color:var(--fg);border:1px solid var(--border);border-radius:var(--r-md);font-family:inherit;font-size:14px;transition:border-color var(--tr-fast),background var(--tr-fast)}.input:focus{outline:none;border-color:var(--accent);background:var(--surface);box-shadow:0 0 0 3px var(--accent-soft)}.input::placeholder{color:var(--fg-3)}.row{display:flex;align-items:center;gap:var(--gap, 12px)}.col{display:flex;flex-direction:column;gap:var(--gap, 12px)}::-webkit-scrollbar{width:10px;height:10px}::-webkit-scrollbar-track{background:transparent}::-webkit-scrollbar-thumb{background:var(--border);border-radius:999px}::-webkit-scrollbar-thumb:hover{background:var(--border-strong)}:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.cam-frame{position:relative;overflow:hidden;border-radius:var(--r-md);background:#04080f;aspect-ratio:16/9}[data-theme=light] .cam-frame{background:#0b1220}.cam-frame svg{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%}.cam-frame .cam-meta{position:absolute;inset:auto 0 0 0;display:flex;justify-content:space-between;align-items:flex-end;padding:10px 12px;color:#e6edf3;pointer-events:none;font-family:var(--font-mono);font-size:11px;letter-spacing:.04em;text-shadow:0 1px 4px rgba(0,0,0,.8)}.cam-frame .cam-top{position:absolute;inset:0 0 auto 0;display:flex;justify-content:space-between;align-items:flex-start;padding:10px 12px;pointer-events:none;font-family:var(--font-mono);font-size:11px}.cam-rec{color:#ff4d4d;display:inline-flex;align-items:center;gap:5px}.cam-rec i{width:7px;height:7px;border-radius:999px;background:#ff4d4d;animation:dot-pulse 1.4s infinite}.kbd{font-family:var(--font-mono);font-size:11px;padding:2px 6px;border-radius:5px;background:var(--surface-2);border:1px solid var(--border);color:var(--fg-2)}.sidebar{width:248px;flex-shrink:0;padding:8px 12px 18px;background:var(--bg-2);border-right:1px solid var(--border);display:flex;flex-direction:column;gap:6px;height:100dvh;position:sticky;top:0;overflow-y:auto}.sidebar-brand{display:flex;align-items:center;gap:10px;padding:0 10px 14px}.sidebar-brand .logo{width:34px;height:34px;color:var(--logo);display:flex;align-items:center;justify-content:center}.sidebar-brand h1{margin:0;font-size:16px;font-weight:600;letter-spacing:-.01em}.sidebar-brand .sub{font-size:10.5px;color:var(--fg-3);font-family:var(--font-mono);text-transform:uppercase;letter-spacing:.08em}.nav-item{display:flex;align-items:center;gap:12px;padding:10px 12px;border-radius:var(--r-md);color:var(--fg-2);cursor:pointer;font-size:14px;font-weight:500;transition:background var(--tr-fast),color var(--tr-fast);position:relative;border:1px solid transparent;background:transparent;width:100%;text-align:left}.nav-item:hover{background:var(--surface);color:var(--fg)}.nav-item[data-active="1"]{background:var(--surface);color:var(--fg);border-color:var(--border)}.nav-item[data-active="1"]:before{content:"";position:absolute;left:-1px;top:8px;bottom:8px;width:3px;background:var(--accent);border-radius:2px}.nav-section{font-size:10px;font-weight:600;letter-spacing:.1em;text-transform:uppercase;color:var(--fg-3);padding:16px 12px 4px;font-family:var(--font-mono)}.nav-badge{margin-left:auto;min-width:18px;padding:0 5px;height:18px;border-radius:999px;background:var(--danger);color:#fff;font-size:10px;font-weight:600;display:flex;align-items:center;justify-content:center;font-family:var(--font-mono)}.nav-state{margin-left:auto;padding:0 6px;height:17px;border-radius:999px;font-size:9.5px;font-weight:600;letter-spacing:.04em;text-transform:uppercase;display:flex;align-items:center;justify-content:center;font-family:var(--font-mono);border:1px solid currentColor;opacity:.85}.nav-state[data-on="1"]{color:var(--ok);background:color-mix(in srgb,var(--ok) 12%,transparent)}.nav-state[data-on="0"]{color:var(--fg-3);background:transparent}.nav-state[data-on=soon]{color:var(--fg-3);background:transparent;border-style:dashed;opacity:.7}.topbar{display:flex;align-items:center;gap:12px;padding:14px 22px;height:64px;background:color-mix(in oklab,var(--bg) 80%,transparent);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);border-bottom:1px solid var(--border);position:sticky;top:0;z-index:10}.app{display:flex;min-height:100dvh}.main{flex:1;min-width:0;display:flex;flex-direction:column}.content{flex:1;padding:22px}.savebar{position:fixed;top:72px;right:22px;z-index:12;display:flex;align-items:center;gap:8px;padding:6px 8px;background:color-mix(in oklab,var(--surface) 90%,transparent);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border:1px solid var(--border);border-radius:var(--r-lg);box-shadow:var(--shadow-2)}.savebar-err{font-size:12px;color:var(--danger);max-width:280px}.mobile-menu-btn{display:none}@media(max-width:880px),(orientation:landscape)and (max-height:500px){.sidebar{display:none}.content{padding:14px 14px 84px}.topbar{padding:10px 14px;height:56px}.savebar{top:62px;right:14px}.bottom-nav{display:flex!important}.mobile-menu-btn{display:inline-flex}}.bottom-nav{display:none;position:fixed;bottom:0;left:0;right:0;z-index:20;background:color-mix(in oklab,var(--bg) 92%,transparent);-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px);border-top:1px solid var(--border);padding:6px 4px calc(6px + env(safe-area-inset-bottom))}.bottom-nav button{flex:1;min-width:0;display:flex;flex-direction:column;align-items:center;gap:4px;padding:8px 4px;background:transparent;border:0;cursor:pointer;color:var(--fg-3);font-size:10.5px;font-weight:500;min-height:56px;border-radius:var(--r-md);transition:color var(--tr-fast),background var(--tr-fast)}.bottom-nav button[data-active="1"]{color:var(--accent)}.bottom-nav .more{color:var(--fg-3)}.drawer-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background:#00000080;z-index:40}.drawer{position:fixed;right:0;top:0;bottom:0;width:min(360px,86vw);z-index:50;background:var(--bg-2);border-left:1px solid var(--border);padding:18px;display:flex;flex-direction:column;gap:8px;transform:translate(0);animation:slide-in .2s ease-out}@keyframes slide-in{0%{transform:translate(100%)}to{transform:translate(0)}}.stat-grid{display:grid;gap:var(--gap, 12px);grid-template-columns:repeat(auto-fill,minmax(220px,1fr))}.cam-grid{display:grid;gap:12px;grid-template-columns:repeat(4,1fr)}@media(max-width:1200px){.cam-grid{grid-template-columns:repeat(3,1fr)}}@media(max-width:880px){.cam-grid{grid-template-columns:repeat(2,1fr)}}.ring-track{stroke:var(--border)}.ring-fill{stroke:var(--accent);transition:stroke-dasharray .4s ease}.ph{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;margin-bottom:22px;flex-wrap:wrap}.ph h1{margin:0;font-size:24px;font-weight:600;letter-spacing:-.015em}.ph p{margin:4px 0 0;color:var(--fg-2);font-size:14px}.ph .actions{display:flex;gap:8px;flex-shrink:0}@media(max-width:600px){.ph h1{font-size:20px}}.tbl{width:100%;border-collapse:collapse;font-size:13px}.tbl th{text-align:left;font-weight:500;color:var(--fg-3);padding:10px 12px;border-bottom:1px solid var(--border);font-size:11px;text-transform:uppercase;letter-spacing:.08em;font-family:var(--font-mono)}.tbl td{padding:12px;border-bottom:1px solid var(--hairline);color:var(--fg)}.tbl tr:last-child td{border-bottom:0}.tbl tr:hover td{background:var(--surface-2)}svg{display:block}.switch{position:relative;width:36px;height:20px;border-radius:999px;background:var(--border-strong);border:0;padding:0;cursor:pointer;transition:background var(--tr-fast)}.switch[data-on="1"]{background:var(--accent)}.switch i{position:absolute;top:2px;left:2px;width:16px;height:16px;border-radius:50%;background:#fff;transition:transform var(--tr-fast);box-shadow:0 1px 2px #0003}.switch[data-on="1"] i{transform:translate(16px)}.seg{display:flex;padding:3px;background:var(--surface-2);border:1px solid var(--border);border-radius:var(--r-md);gap:2px}.seg button{flex:1;min-height:32px;padding:0 12px;border:0;background:transparent;color:var(--fg-2);font-size:13px;font-weight:500;cursor:pointer;border-radius:7px;transition:background var(--tr-fast),color var(--tr-fast)}.seg button[data-on="1"]{background:var(--surface);color:var(--fg);box-shadow:var(--shadow-1)}@keyframes spin{to{transform:rotate(360deg)}}@media(max-width:600px){.wizard-body{flex-direction:column;gap:14px!important;min-height:0!important}.wizard-steps{width:auto!important;border-right:0!important;padding-right:0!important;padding-bottom:8px;border-bottom:1px solid var(--hairline)}}.grid-cards{display:grid;gap:16px;grid-template-columns:repeat(auto-fit,minmax(min(300px,100%),1fr));align-items:stretch}.grid-main-side{display:grid;gap:16px;grid-template-columns:minmax(0,2fr) minmax(0,1fr)}@media(max-width:1100px){.grid-main-side{grid-template-columns:minmax(0,1fr)}}.tbl-scroll{overflow-x:auto;-webkit-overflow-scrolling:touch}@media(max-width:600px){.form-row{flex-direction:column;gap:8px!important}.form-row-label{width:auto!important}.api-sum{flex-basis:100%!important;white-space:normal!important;order:3}}.mode-strip{display:none}@media(max-width:880px),(orientation:landscape)and (max-height:500px){.topbar:has(.mode-strip [data-mode-badge]){height:auto;min-height:56px;flex-wrap:wrap;row-gap:8px;padding-top:0}.mode-strip:has([data-mode-badge]){display:block;flex-basis:calc(100% + 28px);margin:0 -14px}body:has(.mode-strip [data-mode-badge]) .savebar{top:92px}}@media(orientation:landscape)and (max-height:500px){.topbar-desc{display:none}.bottom-nav button{flex-direction:row;justify-content:center;gap:6px;padding:5px 4px;min-height:36px;font-size:12px}.content{padding-bottom:64px}}html{-webkit-text-size-adjust:100%;text-size-adjust:100%}@media(hover:none)and (pointer:coarse){input,select,textarea{font-size:16px!important}}html{background:var(--bg)}.main{padding-top:env(safe-area-inset-top,0px)}.topbar{top:env(safe-area-inset-top,0px)}.savebar{margin-top:env(safe-area-inset-top,0px)}body:before{content:"";position:fixed;top:0;left:0;right:0;height:env(safe-area-inset-top,0px);background:var(--bg);z-index:11}.topbar-center{display:flex;align-items:center;justify-content:center;gap:8px;flex:0 1 auto;min-width:0}.topbar-center:empty,.topbar-center:empty+.topbar-center-spacer{display:none}@media(max-width:880px){.topbar-center,.topbar-center-spacer{display:none}}.evs-tester-btn{position:absolute;top:0;left:calc(100% + 14px);white-space:nowrap;z-index:2}@media(max-width:1400px){.evs-tester-btn{left:auto;right:8px;top:8px}.evs-tester-btn .btn-label{display:none}}:root,:root[data-theme=dark]{--bg: #101419;--bg-2: #181c21;--surface: #1c2025;--surface-2: #262a30;--elevated: #31353b;--border: #31353b;--border-strong: #404752;--fg: #dfe2ea;--fg-2: #bfc7d4;--fg-3: #8a919d;--mode-bar: #2c4b6c;--accent: #0086de;--on-accent: #ffffff;--logo: #ffffff;--ok: #38d36a;--warn: #fea619;--danger: #ff9f98;--info: #82bdff;--on-status: #101419}:root[data-theme=light]{--bg: #f8f9ff;--bg-2: #f1f3fb;--surface: #ffffff;--surface-2: #f1f3fb;--elevated: #ffffff;--border: #e5e8f0;--border-strong: #bfc7d4;--fg: #181c21;--fg-2: #404752;--fg-3: #707883;--mode-bar: #426083;--accent: #0086de;--on-accent: #ffffff;--logo: #0086de;--ok: #007b36;--warn: #965e00;--danger: #cb292e;--info: #006eb7;--on-status: #ffffff}
