@font-face{font-family:Barlow;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/barlow-vietnamese-400-normal-Dpl4UHAZ.woff2) format("woff2"),url(/assets/barlow-vietnamese-400-normal-BFeobeCK.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:Barlow;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/barlow-latin-ext-400-normal-HxX4XjxC.woff2) format("woff2"),url(/assets/barlow-latin-ext-400-normal-CvBsJvxq.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:Barlow;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/barlow-latin-400-normal-qiz4-Cze.woff2) format("woff2"),url(/assets/barlow-latin-400-normal-fsAxiSwU.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:Barlow;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/barlow-vietnamese-500-normal-zTViEIzf.woff2) format("woff2"),url(/assets/barlow-vietnamese-500-normal-GNfB7rCE.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:Barlow;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/barlow-latin-ext-500-normal-DOaysfXq.woff2) format("woff2"),url(/assets/barlow-latin-ext-500-normal-CJPcKP2Q.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:Barlow;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/barlow-latin-500-normal-BPAOfeC8.woff2) format("woff2"),url(/assets/barlow-latin-500-normal-C1h8hMer.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:Barlow;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/barlow-vietnamese-600-normal-DcjprdFV.woff2) format("woff2"),url(/assets/barlow-vietnamese-600-normal-CA_GiK2e.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:Barlow;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/barlow-latin-ext-600-normal-B8NK_A3D.woff2) format("woff2"),url(/assets/barlow-latin-ext-600-normal-DMVRjfRT.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:Barlow;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/barlow-latin-600-normal-DILqtrty.woff2) format("woff2"),url(/assets/barlow-latin-600-normal-CNwfPWQD.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:Barlow;font-style:normal;font-display:swap;font-weight:700;src:url(/assets/barlow-vietnamese-700-normal-D6euyNzi.woff2) format("woff2"),url(/assets/barlow-vietnamese-700-normal-4Jt4k04K.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:Barlow;font-style:normal;font-display:swap;font-weight:700;src:url(/assets/barlow-latin-ext-700-normal-BLuWmldJ.woff2) format("woff2"),url(/assets/barlow-latin-ext-700-normal-CctuGmmz.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:Barlow;font-style:normal;font-display:swap;font-weight:700;src:url(/assets/barlow-latin-700-normal-A9pxMQ4z.woff2) format("woff2"),url(/assets/barlow-latin-700-normal-__SGTsZ1.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:Barlow Semi Condensed;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/barlow-semi-condensed-vietnamese-500-normal-DGADhYWF.woff2) format("woff2"),url(/assets/barlow-semi-condensed-vietnamese-500-normal-hJ2t9k9e.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:Barlow Semi Condensed;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/barlow-semi-condensed-latin-ext-500-normal-BXdp1BvY.woff2) format("woff2"),url(/assets/barlow-semi-condensed-latin-ext-500-normal-rZeYuEMb.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:Barlow Semi Condensed;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/barlow-semi-condensed-latin-500-normal-G0uxJNrM.woff2) format("woff2"),url(/assets/barlow-semi-condensed-latin-500-normal-CFOoVYFH.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:Barlow Semi Condensed;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/barlow-semi-condensed-vietnamese-600-normal-b1FQiZcx.woff2) format("woff2"),url(/assets/barlow-semi-condensed-vietnamese-600-normal-DzVrjA0Q.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:Barlow Semi Condensed;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/barlow-semi-condensed-latin-ext-600-normal-BkQ9hN72.woff2) format("woff2"),url(/assets/barlow-semi-condensed-latin-ext-600-normal-BuP8AaxH.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:Barlow Semi Condensed;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/barlow-semi-condensed-latin-600-normal-BkLiAYu4.woff2) format("woff2"),url(/assets/barlow-semi-condensed-latin-600-normal-DyOfdMBA.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:Barlow Semi Condensed;font-style:normal;font-display:swap;font-weight:700;src:url(/assets/barlow-semi-condensed-vietnamese-700-normal-Dm7RZTvf.woff2) format("woff2"),url(/assets/barlow-semi-condensed-vietnamese-700-normal-BvUTSFNY.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:Barlow Semi Condensed;font-style:normal;font-display:swap;font-weight:700;src:url(/assets/barlow-semi-condensed-latin-ext-700-normal-BhgEo64M.woff2) format("woff2"),url(/assets/barlow-semi-condensed-latin-ext-700-normal-C0vCoZIV.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:Barlow Semi Condensed;font-style:normal;font-display:swap;font-weight:700;src:url(/assets/barlow-semi-condensed-latin-700-normal-BpqDG8I9.woff2) format("woff2"),url(/assets/barlow-semi-condensed-latin-700-normal-BMyZXq_9.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{--font-ui: "Barlow", system-ui, sans-serif;--font-label: "Barlow Semi Condensed", "Barlow", system-ui, sans-serif;--font-data: "IBM Plex Mono", ui-monospace, monospace;--r-s: 8px;--r-l: 16px;--gap: 12px;--ease: cubic-bezier(.2, .8, .2, 1);color-scheme:dark}:root[data-theme=chart]{color-scheme:light}*{box-sizing:border-box}html,body,#app{height:100%;margin:0}body{background:var(--background);color:var(--primary);font-family:var(--font-ui);font-size:15px;line-height:1.4;font-variant-numeric:tabular-nums;-webkit-font-smoothing:antialiased;overflow:hidden;user-select:none;-webkit-user-select:none}button{font:inherit;color:inherit;border:0;background:none;cursor:pointer;padding:0}button:disabled{cursor:default;opacity:.4}:focus-visible{outline:2px solid var(--accent);outline-offset:2px;border-radius:6px}.mono{font-family:var(--font-data)}.glass{background:var(--panel);border:1px solid var(--stroke);border-radius:var(--r-l);backdrop-filter:blur(18px) saturate(1.3);-webkit-backdrop-filter:blur(18px) saturate(1.3);box-shadow:0 10px 30px var(--shadow)}.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;height:46px;padding:0 22px;border-radius:12px;font-weight:600;font-size:16px;letter-spacing:.01em;transition:transform .12s var(--ease),background .15s,box-shadow .15s}.btn:active:not(:disabled){transform:scale(.97)}.btn-primary{background:var(--accent);color:var(--on-accent);box-shadow:0 0 0 1px var(--accent),0 8px 28px #6fe3d240}:root[data-theme=chart] .btn-primary{box-shadow:0 6px 18px #0b6bcb40}.btn-primary:hover:not(:disabled){filter:brightness(1.06)}.btn-secondary{background:color-mix(in srgb,var(--primary) 8%,transparent);border:1px solid var(--stroke)}.btn-secondary:hover:not(:disabled){background:color-mix(in srgb,var(--primary) 13%,transparent)}.btn-ghost{height:36px;padding:0 12px;color:var(--secondary)}.btn-ghost:hover{color:var(--primary)}.icon-btn{width:36px;height:36px;border-radius:10px;display:grid;place-items:center;color:var(--secondary)}.icon-btn:hover{color:var(--primary);background:color-mix(in srgb,var(--primary) 8%,transparent)}.chip{display:inline-flex;align-items:center;justify-content:center;gap:6px;min-height:44px;padding:0 12px;border-radius:10px;background:color-mix(in srgb,var(--primary) 7%,transparent);border:1px solid var(--stroke);font-weight:600;transition:transform .1s var(--ease),background .12s,color .12s}.chip:hover:not(:disabled){background:color-mix(in srgb,var(--primary) 12%,transparent)}.chip:active:not(:disabled){transform:scale(.95)}.chip.on{background:var(--accent);color:var(--on-accent);border-color:var(--accent)}.segmented{display:inline-flex;padding:3px;gap:2px;border-radius:12px;background:color-mix(in srgb,var(--primary) 6%,transparent);border:1px solid var(--stroke)}.segmented button{height:34px;min-width:44px;padding:0 12px;border-radius:9px;font-weight:600;color:var(--secondary)}.segmented button:hover{color:var(--primary)}.segmented button.on{background:var(--accent);color:var(--on-accent)}.screen{position:fixed;top:0;right:0;bottom:0;left:0}.fade-in{animation:fadeIn .35s var(--ease) both}.slide-in{animation:slideIn .35s var(--ease) both}@keyframes fadeIn{0%{opacity:0;transform:scale(.985)}to{opacity:1;transform:none}}@keyframes slideIn{0%{opacity:0;transform:translate(24px)}to{opacity:1;transform:none}}.home{display:grid;grid-template-columns:minmax(360px,520px) 1fr;align-items:center;padding:0 clamp(24px,6vw,96px);gap:48px}.home-backdrop{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%}.home-copy{position:relative;z-index:1;display:flex;flex-direction:column;gap:22px}.wordmark{font-family:var(--font-label);font-weight:600;font-size:clamp(64px,8vw,104px);line-height:.9;letter-spacing:-.02em;margin:0}.wordmark-slope{display:block;margin-top:14px;height:2px;width:220px;background:linear-gradient(90deg,var(--accent),transparent);transform-origin:left;transform:rotate(-3deg)}.home-lede{font-size:19px;color:var(--secondary);max-width:34ch;margin:0}.home-actions{display:flex;flex-direction:column;gap:12px;max-width:360px}.home-actions .btn{width:100%}.home-row{display:grid;grid-template-columns:repeat(3,1fr);gap:8px}.home-row .btn{height:44px;padding:0 10px;font-size:14.5px}.home-card{display:flex;align-items:center;gap:14px;padding:14px 16px;text-align:left;width:100%;max-width:360px}.home-card:hover{border-color:var(--stroke-strong)}.home-card .title{font-weight:600}.home-card .sub{color:var(--secondary);font-size:13.5px}.home-card .ico{width:38px;height:38px;border-radius:10px;display:grid;place-items:center;background:var(--accent-soft);color:var(--accent);flex:none}.home-foot{color:var(--tertiary);font-size:13.5px}.select{position:absolute;top:0;right:0;bottom:0;left:0;overflow-y:auto;padding:28px clamp(20px,5vw,64px) 140px;-webkit-user-select:none;user-select:none}.select-head{display:flex;align-items:center;gap:12px;margin-bottom:26px}.select-head h1{margin:0;font-family:var(--font-label);font-weight:600;font-size:34px}.group-title{font-family:var(--font-label);font-size:19px;font-weight:600;margin:26px 0 12px;color:var(--secondary)}.airports{display:grid;grid-template-columns:repeat(auto-fill,minmax(250px,1fr));gap:14px}.airport-card{position:relative;padding:0;text-align:left;overflow:hidden;display:flex;flex-direction:column;transition:border-color .15s,transform .15s var(--ease)}.airport-card:hover:not(:disabled){border-color:var(--stroke-strong)}.airport-card.on{border-color:var(--accent);box-shadow:0 0 0 1px var(--accent),0 10px 30px var(--shadow)}.airport-card:disabled{opacity:1;cursor:not-allowed}.airport-card canvas{width:100%;height:150px;display:block}.airport-card .body{padding:12px 14px 14px;display:flex;flex-direction:column;gap:4px}.airport-card .name{display:flex;align-items:center;justify-content:space-between;font-weight:700;font-size:17px}.airport-card .tagline{color:var(--secondary);font-size:13.5px;min-height:38px}.airport-card .best{color:var(--tertiary);font-size:12.5px;font-family:var(--font-data)}.dots{display:inline-flex;gap:4px}.dots i{width:7px;height:7px;border-radius:50%;background:color-mix(in srgb,var(--primary) 18%,transparent)}.dots i.on{background:var(--accent)}.lock{position:absolute;inset:0 0 auto 0;height:150px;display:grid;place-items:center;background:color-mix(in srgb,var(--background) 62%,transparent);color:var(--secondary);font-size:13.5px;font-weight:600;text-align:center;gap:6px;padding:20px}.lock div{display:flex;flex-direction:column;align-items:center;gap:6px}.select-bar{position:absolute;z-index:2;left:50%;bottom:20px;transform:translate(-50%);display:flex;align-items:center;gap:18px;padding:12px 12px 12px 20px;width:min(980px,calc(100vw - 32px));flex-wrap:wrap}.select-bar .opt{display:flex;flex-direction:column;gap:6px}.select-bar .opt label{font-size:12.5px;color:var(--tertiary);font-weight:600}.select-bar .summary{flex:1;min-width:180px;color:var(--secondary);font-size:13.5px}.select-bar .btn{margin-left:auto}.radar canvas.scope{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;touch-action:none}.topbar{position:absolute;top:14px;left:14px;right:14px;height:64px;display:grid;grid-template-columns:1fr auto 1fr;align-items:center;padding:0 12px 0 8px;z-index:5}.topbar .left,.topbar .right{display:flex;align-items:center;gap:14px}.topbar .right{justify-content:flex-end}.flights{display:flex;flex-direction:column;line-height:1}.flights b{font-family:var(--font-data);font-weight:600;font-size:26px;color:var(--accent)}.flights span{font-size:11px;color:var(--secondary);font-weight:600;margin-top:3px}.score{display:flex;flex-direction:column;line-height:1}.score b{font-family:var(--font-data);font-weight:500;font-size:17px}.score span{font-size:11px;color:var(--tertiary);font-weight:600;margin-top:4px}.pips{display:flex;gap:5px;color:var(--tertiary);align-items:center}.pips .hit{color:var(--red)}.pips-count{display:inline-flex;gap:4px;align-items:center;color:var(--amber);font-family:var(--font-data)}.clock{text-align:center;line-height:1.15}.clock b{font-family:var(--font-data);font-size:19px;font-weight:500}.clock div{font-size:12.5px;color:var(--secondary);font-family:var(--font-data);display:flex;align-items:center;gap:6px;justify-content:center}.clock .closed{color:var(--red);text-decoration:line-through}.strips{position:absolute;left:14px;top:92px;width:330px;bottom:14px;display:flex;flex-direction:column;gap:12px;z-index:4;pointer-events:none}.strips>*{pointer-events:auto}.strip-board{flex:1 1 auto;min-height:120px;overflow-y:auto;padding:10px;scrollbar-width:thin}.strip-head{display:flex;align-items:center;gap:8px;padding:8px 6px 6px;font-family:var(--font-label);font-weight:600;font-size:14.5px;color:var(--secondary)}.strip-head .n{margin-left:auto;font-family:var(--font-data);color:var(--tertiary);font-size:13px}.strip-head.em{color:var(--red)}.strip{position:relative;width:100%;display:grid;grid-template-columns:1fr auto;gap:1px 10px;padding:8px 10px 8px 16px;margin-bottom:6px;border-radius:10px;text-align:left;background:color-mix(in srgb,var(--primary) 4%,transparent);border:1px solid var(--stroke);transition:background .15s,border-color .15s}.strip:hover{border-color:var(--stroke-strong)}.strip:before{content:"";position:absolute;left:5px;top:8px;bottom:8px;width:4px;border-radius:2px;background:var(--bar)}.strip.sel{border-color:var(--accent);background:color-mix(in srgb,var(--accent) 14%,transparent)}.strip.conflict{border-color:var(--amber)}.strip.conflict.flash{background:color-mix(in srgb,var(--amber) 28%,transparent)}.strip.conflict:not(.flash){background:color-mix(in srgb,var(--amber) 10%,transparent)}.strip.emergency{border-color:var(--red)}.strip.emergency.flash{background:color-mix(in srgb,var(--red) 26%,transparent)}.strip.emergency:not(.flash){background:color-mix(in srgb,var(--red) 12%,transparent)}.strip.ground{opacity:.75}.strip .cs{font-family:var(--font-data);font-weight:600;font-size:15.5px;display:flex;align-items:baseline;gap:8px}.strip .cs small{font-family:var(--font-label);font-weight:600;font-size:12px;color:var(--secondary);letter-spacing:.04em}.strip .alt{font-family:var(--font-data);font-size:14.5px;font-weight:500;text-align:right;display:flex;align-items:center;gap:6px;justify-content:flex-end}.strip .alt .warn{color:var(--amber)}.strip .st{color:var(--secondary);font-size:13px}.strip .tag{font-family:var(--font-data);font-size:11.5px;font-weight:600;text-align:right}.strip .tag.red{color:var(--red)}.strip .tag.amber{color:var(--amber)}.strip-empty{color:var(--tertiary);font-size:13.5px;padding:2px 8px 8px}.comms{flex:0 0 auto;max-height:34vh;overflow:hidden;padding:12px 14px;display:flex;flex-direction:column;gap:8px;font-size:13.5px}.comms .tx{display:flex;flex-direction:column;gap:2px}.comms .line{display:grid;grid-template-columns:16px 1fr;gap:6px;align-items:start}.comms .line svg{margin-top:2px}.comms .ctl{color:var(--primary)}.comms .ctl svg{color:var(--accent)}.comms .plt{color:var(--secondary)}.comms .plt svg{color:var(--tertiary)}.comms-empty{color:var(--tertiary)}.panel{position:absolute;right:14px;top:92px;width:400px;max-height:calc(100% - 106px);overflow-y:auto;padding:16px;z-index:4;display:flex;flex-direction:column;gap:14px;animation:panelIn .25s var(--ease) both}@keyframes panelIn{0%{opacity:0;transform:translate(16px)}to{opacity:1;transform:none}}.panel-head{display:flex;align-items:flex-start;gap:10px}.panel-head h2{margin:0;font-family:var(--font-data);font-size:22px;font-weight:600}.panel-head .pill{font-size:12.5px;font-weight:600;padding:3px 9px;border-radius:99px;background:var(--accent-soft);color:var(--accent);white-space:nowrap}.panel-head .close{margin-left:auto}.panel .meta{color:var(--secondary);font-size:13.5px;margin-top:2px}.panel .em-badge{display:flex;align-items:center;gap:8px;padding:8px 12px;border-radius:10px;background:var(--red);color:#fff;font-weight:600;font-size:13.5px}.panel .minfuel{display:flex;align-items:center;gap:8px;color:var(--amber);font-weight:600;font-size:13.5px}.panel .row{display:flex;gap:8px;align-items:stretch}.panel .row>*{flex:1}.panel .section-label{font-size:12px;font-weight:600;color:var(--tertiary);margin-bottom:6px}.dial-wrap{display:grid;grid-template-columns:150px 1fr;gap:14px;align-items:center}.dial{width:150px;height:150px;touch-action:none;cursor:grab}.dial:active{cursor:grabbing}.dial-buttons{display:grid;grid-template-columns:repeat(4,1fr);gap:6px}.dial-buttons .chip{min-height:40px;padding:0}.dial-side{display:flex;flex-direction:column;gap:10px}.dial-side .hdg-now{color:var(--secondary);font-size:13px}.dial-side .hdg-now b{font-family:var(--font-data);color:var(--primary);font-weight:500}.stepper{display:grid;grid-template-columns:48px 1fr 48px;gap:8px;align-items:center}.stepper .val{text-align:center;line-height:1.1}.stepper .val b{font-family:var(--font-data);font-size:24px;font-weight:600}.stepper .val.warn b,.stepper .val.warn small{color:var(--amber)}.stepper .val small{display:block;font-size:12px;color:var(--secondary)}.speeds{display:grid;grid-template-columns:repeat(3,1fr);gap:6px}.speeds .chip{flex-direction:column;gap:0;min-height:50px;line-height:1.15}.speeds .chip small{font-size:11.5px;font-weight:500;opacity:.8;font-family:var(--font-data)}.approach{display:grid;grid-template-columns:1fr auto;gap:6px}.approach .toggle{justify-content:flex-start;text-align:left;gap:10px;padding:0 12px;min-height:52px}.approach .toggle .t{display:flex;flex-direction:column;line-height:1.15}.approach .toggle small{font-size:12px;font-weight:500;opacity:.8}.approach select{min-height:52px;border-radius:10px;padding:0 10px;font:600 15px var(--font-data);color:var(--primary);background:color-mix(in srgb,var(--primary) 7%,var(--panel-solid));border:1px solid var(--stroke);cursor:pointer}.lateral{display:grid;grid-template-columns:1fr 1fr;gap:6px}.direct-menu{display:grid;grid-template-columns:repeat(3,1fr);gap:6px;padding:10px;border-radius:12px;border:1px dashed var(--stroke-strong)}.direct-menu p{grid-column:1 / -1;margin:0 0 4px;color:var(--secondary);font-size:13px}.direct-menu .chip{min-height:36px;font-family:var(--font-data);font-size:13px}.exit-label{display:flex;align-items:center;gap:8px;color:var(--accent);font-weight:600}.hint{display:flex;gap:10px;align-items:flex-start;color:var(--secondary);font-size:14px;border-top:1px solid var(--stroke);padding-top:12px}.hint svg{color:var(--amber);flex:none;margin-top:1px}.transit-note{color:var(--secondary)}.idle-hint{position:absolute;right:18px;bottom:18px;padding:12px 18px;display:flex;gap:10px;align-items:center;color:var(--secondary);z-index:3;font-size:14.5px}.map-tools{position:absolute;right:18px;bottom:76px;display:flex;flex-direction:column;gap:6px;z-index:3;padding:6px}.banner{position:absolute;left:50%;top:88px;transform:translate(-50%);z-index:6;display:flex;align-items:center;gap:10px;padding:9px 16px;border-radius:99px;background:var(--red);color:#fff;font-weight:600;box-shadow:0 8px 24px #ff546859}.banner .beat{animation:beat 1s ease-in-out infinite}@keyframes beat{50%{transform:scale(1.18)}}.banner .clk{font-family:var(--font-data)}.toasts{position:absolute;left:50%;top:92px;transform:translate(-50%);display:flex;flex-direction:column;gap:8px;z-index:6;align-items:center;pointer-events:none}.banner~.toasts{top:136px}.toast{display:flex;gap:10px;align-items:center;padding:9px 16px;font-weight:600;font-size:14.5px;animation:toastIn .25s var(--ease) both;border-radius:99px}.toast.success svg,.toast.info svg{color:var(--accent)}.toast.warning svg{color:var(--amber)}.toast.danger{border-color:color-mix(in srgb,var(--red) 55%,transparent)}.toast.danger svg{color:var(--red)}@keyframes toastIn{0%{opacity:0;transform:translateY(-8px) scale(.97)}to{opacity:1;transform:none}}.celebration{position:absolute;left:50%;top:24%;transform:translate(-50%);text-align:center;z-index:6;pointer-events:none;animation:celebrate .5s var(--ease) both}.celebration.small{top:150px}.celebration h3{margin:0;font-family:var(--font-label);font-weight:700;font-size:48px;color:var(--accent);text-shadow:0 0 30px rgba(111,227,210,.45);letter-spacing:-.01em}.celebration.small h3{font-size:30px}.celebration p{margin:4px 0 0;color:var(--secondary);font-weight:600}@keyframes celebrate{0%{opacity:0;transform:translate(-50%,10px) scale(.92)}to{opacity:1;transform:translate(-50%)}}.overlay{position:absolute;top:0;right:0;bottom:0;left:0;z-index:20;display:grid;place-items:center;background:color-mix(in srgb,var(--background-deep) 55%,transparent);-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);animation:fadeIn .2s ease both}.dialog{width:min(440px,calc(100vw - 32px));padding:26px;display:flex;flex-direction:column;gap:14px;text-align:center}.dialog h2{margin:0;font-family:var(--font-label);font-weight:600;font-size:30px}.dialog .sub{color:var(--secondary);margin:-6px 0 0}.dialog .btns{display:flex;flex-direction:column;gap:8px}.dialog .btns.row{flex-direction:row}.dialog .btns.row .btn{flex:1}.go-icon{margin:0 auto;width:56px;height:56px;border-radius:16px;display:grid;place-items:center}.go-icon.good{background:var(--accent-soft);color:var(--accent)}.go-icon.bad{background:color-mix(in srgb,var(--red) 16%,transparent);color:var(--red)}.go-loss{color:var(--red);font-family:var(--font-data);font-size:13.5px}.go-best{align-self:center;padding:4px 12px;border-radius:99px;background:var(--accent);color:var(--on-accent);font-weight:700;font-size:13px}.go-big{font-family:var(--font-data);font-size:64px;font-weight:600;line-height:1;color:var(--accent)}.go-big+small{color:var(--secondary);font-weight:600;margin-top:-8px}.stats{display:grid;grid-template-columns:repeat(3,1fr);gap:8px}.stat{padding:10px 6px;border-radius:12px;background:color-mix(in srgb,var(--primary) 5%,transparent);border:1px solid var(--stroke)}.stat b{display:block;font-family:var(--font-data);font-size:19px;font-weight:600}.stat span{font-size:12px;color:var(--secondary)}.stat.wide{grid-column:1 / -1}.unlock-line{color:var(--accent);font-weight:600}.tut-dim{position:absolute;top:0;right:0;bottom:0;left:0;z-index:7;pointer-events:none}.tut-card{position:absolute;left:50%;top:92px;transform:translate(-50%);width:min(560px,calc(100vw - 32px));padding:18px 20px 16px;z-index:8;display:flex;flex-direction:column;gap:8px}.tut-card .top{display:flex;align-items:center;gap:10px;color:var(--accent);font-weight:600;font-size:13.5px}.tut-card .top .n{margin-left:auto;font-family:var(--font-data);color:var(--secondary)}.tut-card h3{margin:0;font-family:var(--font-label);font-weight:600;font-size:25px}.tut-card p{margin:0;color:var(--secondary);font-size:15.5px}.tut-card .foot{display:flex;align-items:center;justify-content:space-between;margin-top:6px}.tut-card .watching{color:var(--tertiary);font-size:13.5px;display:flex;align-items:center;gap:8px}.tut-card .watching i{width:8px;height:8px;border-radius:50%;background:var(--accent);animation:beat 1.2s infinite}.progress{height:3px;border-radius:3px;background:color-mix(in srgb,var(--primary) 10%,transparent);overflow:hidden}.progress i{display:block;height:100%;background:var(--accent);transition:width .4s var(--ease)}.spot{outline:2px solid var(--accent);outline-offset:3px;border-radius:12px;animation:spot 1.4s ease-in-out infinite}@keyframes spot{50%{outline-color:transparent}}.sheet{width:min(620px,calc(100vw - 32px));max-height:calc(100vh - 48px);overflow-y:auto;padding:24px;display:flex;flex-direction:column;gap:18px;text-align:left;-webkit-user-select:text;user-select:text}.sheet-head{display:flex;align-items:center;gap:10px}.sheet-head h2{margin:0;font-family:var(--font-label);font-weight:600;font-size:28px}.sheet-head .icon-btn{margin-left:auto}.sheet h3{margin:6px 0 0;font-family:var(--font-label);font-weight:600;font-size:17px;color:var(--secondary)}.setting{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:10px 0;border-bottom:1px solid var(--stroke)}.setting:last-child{border-bottom:0}.setting .l{display:flex;flex-direction:column}.setting .l small{color:var(--tertiary);font-size:13px}.switch{width:46px;height:28px;border-radius:99px;background:color-mix(in srgb,var(--primary) 16%,transparent);position:relative;transition:background .15s;flex:none}.switch:after{content:"";position:absolute;top:3px;left:3px;width:22px;height:22px;border-radius:50%;background:#fff;transition:transform .18s var(--ease);box-shadow:0 1px 3px #0000004d}.switch.on{background:var(--accent)}.switch.on:after{transform:translate(18px)}.theme-tiles{display:grid;grid-template-columns:1fr 1fr;gap:10px}.theme-tile{border-radius:12px;overflow:hidden;border:1px solid var(--stroke);text-align:left}.theme-tile.on{border-color:var(--accent);box-shadow:0 0 0 1px var(--accent)}.theme-tile canvas{width:100%;height:110px;display:block}.theme-tile div{padding:8px 12px;font-weight:600}.record-tiles{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:8px}.record-table{width:100%;border-collapse:collapse;font-size:14px}.record-table th{text-align:left;font-weight:600;color:var(--tertiary);font-size:12.5px;padding:6px 4px}.record-table td{padding:8px 4px;border-top:1px solid var(--stroke);font-family:var(--font-data)}.record-table td:first-child{font-family:var(--font-ui);font-weight:600}.lesson{display:flex;align-items:center;gap:14px;padding:12px 14px;border-radius:12px;border:1px solid var(--stroke);text-align:left;width:100%}.lesson:hover{border-color:var(--stroke-strong)}.lesson .num{width:34px;height:34px;border-radius:10px;display:grid;place-items:center;font-family:var(--font-data);font-weight:600;background:color-mix(in srgb,var(--primary) 7%,transparent);flex:none}.lesson .num.done{background:var(--accent);color:var(--on-accent)}.lesson small{display:block;color:var(--secondary);font-size:13.5px}.howto{display:grid;grid-template-columns:repeat(3,1fr);gap:12px}.howto-card{padding:14px;border-radius:14px;border:1px solid var(--stroke);background:color-mix(in srgb,var(--primary) 3%,transparent);display:flex;flex-direction:column;gap:8px}.howto-card svg.fig{width:100%;height:110px}.howto-card h4{margin:0;font-size:16px}.howto-card p{margin:0;color:var(--secondary);font-size:13.5px}.keys{color:var(--secondary);font-size:13.5px}.keys kbd{font-family:var(--font-data);font-size:12px;padding:2px 6px;border-radius:5px;border:1px solid var(--stroke-strong);color:var(--primary)}.narrow-note{display:none}@media (max-width: 1100px){.strips{width:280px}.panel{width:360px}}@media (max-width: 820px){.home{grid-template-columns:1fr}.strips{display:none}.panel{left:14px;right:14px;width:auto;top:auto;bottom:14px;max-height:58vh}.howto{grid-template-columns:1fr}.topbar .score,.topbar .pips{display:none}}@media (prefers-reduced-motion: reduce){*,*:before,*:after{animation:none!important;transition:none!important}}.spot-ring{position:absolute;left:0;top:0;width:72px;height:72px;border-radius:50%;border:2.5px solid var(--accent);box-shadow:0 0 0 9999px color-mix(in srgb,var(--background-deep) 38%,transparent),0 0 24px var(--accent);pointer-events:none;z-index:6;animation:spot 1.4s ease-in-out infinite}.strip.sel.sel{border-color:var(--accent);background:color-mix(in srgb,var(--accent) 14%,transparent)}.strip.emergency.conflict{border-color:var(--red)}
