@keyframes login-drift{0%{background-position:0 0}to{background-position:120px 120px}}@keyframes login-orb-a{0%,to{transform:translate(0) scale(1)}50%{transform:translate(30px,-20px) scale(1.08)}}@keyframes login-orb-b{0%,to{transform:translate(0) scale(1)}50%{transform:translate(-24px,18px) scale(1.05)}}@keyframes login-pulse{0%,to{opacity:1;transform:scale(1)}50%{opacity:.45;transform:scale(.85)}}@keyframes login-sail{0%{transform:translate(112vw)}to{transform:translate(-14vw)}}@keyframes login-swell{0%{background-position-x:0}to{background-position-x:-240px}}.login-page{min-height:100vh;display:grid;grid-template-columns:repeat(auto-fit,minmax(320px,1fr));position:relative}.login-hero{position:relative;overflow:hidden;background:var(--nav-bg);color:#fff;padding:48px 44px 96px;display:flex;flex-direction:column;justify-content:center;gap:28px;isolation:isolate}.login-hero:before{content:"";position:absolute;top:-1px;right:-1px;bottom:-1px;left:-1px;z-index:-2;background-image:linear-gradient(rgba(255,255,255,.05) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.05) 1px,transparent 1px);background-size:40px 40px;animation:login-drift 16s linear infinite;-webkit-mask-image:radial-gradient(circle at 30% 30%,#000 0%,transparent 75%);mask-image:radial-gradient(circle at 30% 30%,#000 0%,transparent 75%)}.login-orb{position:absolute;z-index:-1;border-radius:50%;filter:blur(64px);pointer-events:none}.login-orb-primary{width:320px;height:320px;top:-80px;left:-60px;background:var(--primary);opacity:.4;animation:login-orb-a 12s ease-in-out infinite}.login-orb-purple{width:280px;height:280px;bottom:-40px;right:-60px;background:var(--purple);opacity:.35;animation:login-orb-b 14s ease-in-out infinite}.login-badge{display:inline-flex;align-items:center;gap:8px;width:fit-content;padding:6px 12px;border-radius:var(--r-pill);background:#ffffff14;border:1px solid rgba(255,255,255,.14);-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);font-size:11px;letter-spacing:.08em;color:var(--nav-fg)}.login-badge-dot{width:6px;height:6px;border-radius:50%;background:var(--success);box-shadow:0 0 0 3px #12b76a40;animation:login-pulse 2.2s ease-in-out infinite}.login-title{font-size:44px;font-weight:650;letter-spacing:-.03em;margin-top:14px;background:linear-gradient(100deg,#ffffff 20%,var(--primary-ring-border) 55%,var(--purple) 90%);-webkit-background-clip:text;background-clip:text;color:transparent;width:fit-content}.login-lede{color:var(--nav-fg);max-width:40ch;margin-top:10px;line-height:1.65;font-size:14.5px}.login-card-side{display:grid;place-items:center;padding:40px 24px 96px;position:relative}.login-card{width:min(400px,100%);padding:28px;display:grid;gap:16px;background:#ffffffdb;-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);border:1px solid var(--border);box-shadow:0 24px 48px -20px #10182847,0 0 0 1px #2f6feb0a}.login-ocean{position:fixed;left:0;right:0;bottom:0;height:64px;overflow:hidden;z-index:3;pointer-events:none;background:linear-gradient(180deg,transparent 0%,rgba(2,106,162,.08) 40%,rgba(2,106,162,.22) 100%),repeating-linear-gradient(100deg,rgba(2,106,162,.16) 0px,rgba(2,106,162,.16) 2px,transparent 2px,transparent 28px);background-color:var(--cyan-bg);border-top:1px solid var(--border);animation:login-swell 9s linear infinite}.login-ship{position:absolute;bottom:14px;left:0;animation:login-sail 26s linear infinite;filter:drop-shadow(0 6px 8px rgba(16,24,40,.2))}@media(prefers-reduced-motion:reduce){.login-hero:before,.login-orb-primary,.login-orb-purple,.login-badge-dot,.login-ship,.login-ocean{animation:none}}@media(max-width:760px){.login-hero{padding:40px 28px 80px}.login-title{font-size:34px}}@font-face{font-family:IBM Plex Mono;font-style:normal;font-weight:400;font-display:swap;src:url(/fonts/IBMPlexMono-400-cyrillic-ext.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:IBM Plex Mono;font-style:normal;font-weight:400;font-display:swap;src:url(/fonts/IBMPlexMono-400-cyrillic.woff2) format("woff2");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-weight:400;font-display:swap;src:url(/fonts/IBMPlexMono-400-vietnamese.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:IBM Plex Mono;font-style:normal;font-weight:400;font-display:swap;src:url(/fonts/IBMPlexMono-400-latin-ext.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:IBM Plex Mono;font-style:normal;font-weight:400;font-display:swap;src:url(/fonts/IBMPlexMono-400-latin.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:IBM Plex Mono;font-style:normal;font-weight:500;font-display:swap;src:url(/fonts/IBMPlexMono-500-cyrillic-ext.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:IBM Plex Mono;font-style:normal;font-weight:500;font-display:swap;src:url(/fonts/IBMPlexMono-500-cyrillic.woff2) format("woff2");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-weight:500;font-display:swap;src:url(/fonts/IBMPlexMono-500-vietnamese.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:IBM Plex Mono;font-style:normal;font-weight:500;font-display:swap;src:url(/fonts/IBMPlexMono-500-latin-ext.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:IBM Plex Mono;font-style:normal;font-weight:500;font-display:swap;src:url(/fonts/IBMPlexMono-500-latin.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:IBM Plex Sans;font-style:normal;font-weight:400;font-stretch:100%;font-display:swap;src:url(/fonts/IBMPlexSans-400-cyrillic-ext.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:IBM Plex Sans;font-style:normal;font-weight:400;font-stretch:100%;font-display:swap;src:url(/fonts/IBMPlexSans-400-cyrillic.woff2) format("woff2");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-weight:400;font-stretch:100%;font-display:swap;src:url(/fonts/IBMPlexSans-400-greek.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:IBM Plex Sans;font-style:normal;font-weight:400;font-stretch:100%;font-display:swap;src:url(/fonts/IBMPlexSans-400-vietnamese.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:IBM Plex Sans;font-style:normal;font-weight:400;font-stretch:100%;font-display:swap;src:url(/fonts/IBMPlexSans-400-latin-ext.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:IBM Plex Sans;font-style:normal;font-weight:400;font-stretch:100%;font-display:swap;src:url(/fonts/IBMPlexSans-400-latin.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:IBM Plex Sans;font-style:normal;font-weight:500;font-stretch:100%;font-display:swap;src:url(/fonts/IBMPlexSans-500-cyrillic-ext.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:IBM Plex Sans;font-style:normal;font-weight:500;font-stretch:100%;font-display:swap;src:url(/fonts/IBMPlexSans-500-cyrillic.woff2) format("woff2");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-weight:500;font-stretch:100%;font-display:swap;src:url(/fonts/IBMPlexSans-500-greek.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:IBM Plex Sans;font-style:normal;font-weight:500;font-stretch:100%;font-display:swap;src:url(/fonts/IBMPlexSans-500-vietnamese.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:IBM Plex Sans;font-style:normal;font-weight:500;font-stretch:100%;font-display:swap;src:url(/fonts/IBMPlexSans-500-latin-ext.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:IBM Plex Sans;font-style:normal;font-weight:500;font-stretch:100%;font-display:swap;src:url(/fonts/IBMPlexSans-500-latin.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:IBM Plex Sans;font-style:normal;font-weight:600;font-stretch:100%;font-display:swap;src:url(/fonts/IBMPlexSans-600-cyrillic-ext.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:IBM Plex Sans;font-style:normal;font-weight:600;font-stretch:100%;font-display:swap;src:url(/fonts/IBMPlexSans-600-cyrillic.woff2) format("woff2");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-weight:600;font-stretch:100%;font-display:swap;src:url(/fonts/IBMPlexSans-600-greek.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:IBM Plex Sans;font-style:normal;font-weight:600;font-stretch:100%;font-display:swap;src:url(/fonts/IBMPlexSans-600-vietnamese.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:IBM Plex Sans;font-style:normal;font-weight:600;font-stretch:100%;font-display:swap;src:url(/fonts/IBMPlexSans-600-latin-ext.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:IBM Plex Sans;font-style:normal;font-weight:600;font-stretch:100%;font-display:swap;src:url(/fonts/IBMPlexSans-600-latin.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:IBM Plex Sans;font-style:normal;font-weight:700;font-stretch:100%;font-display:swap;src:url(/fonts/IBMPlexSans-700-cyrillic-ext.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:IBM Plex Sans;font-style:normal;font-weight:700;font-stretch:100%;font-display:swap;src:url(/fonts/IBMPlexSans-700-cyrillic.woff2) format("woff2");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-weight:700;font-stretch:100%;font-display:swap;src:url(/fonts/IBMPlexSans-700-greek.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:IBM Plex Sans;font-style:normal;font-weight:700;font-stretch:100%;font-display:swap;src:url(/fonts/IBMPlexSans-700-vietnamese.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:IBM Plex Sans;font-style:normal;font-weight:700;font-stretch:100%;font-display:swap;src:url(/fonts/IBMPlexSans-700-latin-ext.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:IBM Plex Sans;font-style:normal;font-weight:700;font-stretch:100%;font-display:swap;src:url(/fonts/IBMPlexSans-700-latin.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: #f7f8fa;--surface: #ffffff;--surface-sunken: #f9fafb;--surface-muted: #f2f4f7;--ink: #101828;--ink-strong: #344054;--ink-body: #475467;--ink-muted: #667085;--ink-faint: #98a2b3;--border: #e4e7ec;--border-strong: #d0d5dd;--border-faint: #f2f4f7;--primary: #2f6feb;--primary-hover: #1d4fb8;--primary-tint: #eef4ff;--primary-tint-alt: #eaf1fe;--primary-ring: #eaf1fe;--primary-ring-border: #84adff;--primary-border: #b2ccff;--nav-bg: #101828;--nav-raised: #1d2939;--nav-border: #344054;--nav-fg: #cdd3de;--danger: #d92d20;--danger-ink: #b42318;--danger-bg: #fef3f2;--danger-border: #fda29b;--warn: #f79009;--warn-ink: #b54708;--warn-ink-deep: #93370d;--warn-bg: #fffaeb;--warn-border: #fedf89;--success: #12b76a;--success-ink: #087443;--success-ink-deep: #05603a;--success-bg: #edfcf2;--success-border: #a6f4c5;--purple: #7a5af8;--purple-ink: #5925dc;--purple-ink-deep: #4a1fb8;--purple-bg: #f4f3ff;--purple-border: #d9d6fe;--cyan-ink: #026aa2;--cyan-bg: #f0f9ff;--scroll-thumb: #cdd3de;--r-pill: 999px;--r-card: 12px;--r-control: 8px;--r-chip: 6px;--r-panel: 10px;--shadow-card: 0 1px 2px rgba(16, 24, 40, .05);--shadow-button: 0 1px 2px rgba(16, 24, 40, .1);--shadow-modal: 0 20px 40px rgba(16, 24, 40, .2);--shadow-drawer: -8px 0 24px rgba(16, 24, 40, .12);--shadow-toast: 0 10px 24px rgba(16, 24, 40, .24);--scrim: rgba(16, 24, 40, .45);--font-sans: "IBM Plex Sans", system-ui, sans-serif;--font-mono: "IBM Plex Mono", ui-monospace, monospace}html,body{margin:0;background:var(--bg);color:var(--ink);font-family:var(--font-sans);font-size:14px;-webkit-font-smoothing:antialiased}*{box-sizing:border-box}#root{min-height:100vh}a{color:var(--primary);text-decoration:none}a:hover{color:var(--primary-hover);text-decoration:underline}.mono{font-family:var(--font-mono)}.hit{cursor:pointer}.navi:hover{background:var(--nav-raised)!important;color:#fff!important}.rowi{cursor:pointer}.rowi:hover{background:#f2f6ff}.th{cursor:pointer;-webkit-user-select:none;user-select:none}.th:hover{color:var(--primary)}.scroll::-webkit-scrollbar{width:10px;height:10px}.scroll::-webkit-scrollbar-thumb{background:var(--scroll-thumb);border-radius:var(--r-chip)}.btn{font:inherit;font-size:13px;font-weight:500;padding:8px 13px;border-radius:var(--r-control);border:1px solid var(--border-strong);background:var(--surface);color:var(--ink-strong);cursor:pointer;display:inline-flex;align-items:center;gap:7px;white-space:nowrap;flex-shrink:0}.btn:hover{background:var(--surface-sunken)}.btn:active{background:var(--surface-muted)}.btn:disabled{opacity:.5;cursor:not-allowed}.btn-p{background:var(--primary);border-color:var(--primary);color:#fff;box-shadow:var(--shadow-button)}.btn-p:hover{background:var(--primary-hover);border-color:var(--primary-hover)}.btn-p:disabled:hover{background:var(--primary);border-color:var(--primary)}.btn-d{color:var(--danger-ink);border-color:var(--danger-border);background:var(--surface)}.btn-d:hover{background:var(--danger-bg)}.inp{font:inherit;font-size:13px;width:100%;padding:8px 11px;border-radius:var(--r-control);border:1px solid var(--border-strong);background:var(--surface);color:var(--ink);box-shadow:var(--shadow-card)}.inp:focus{outline:none;border-color:var(--primary-ring-border);box-shadow:0 0 0 4px var(--primary-ring)}.inp:disabled{background:var(--surface-muted);color:var(--ink-muted);cursor:not-allowed;box-shadow:none}textarea.inp{min-height:92px;resize:vertical}.lbl{display:block;font-size:12px;font-weight:500;color:var(--ink-strong);margin-bottom:5px}.pill{display:inline-flex;align-items:center;gap:5px;padding:2px 9px;border-radius:var(--r-pill);font-size:12px;font-weight:500;white-space:nowrap}.card{background:var(--surface);border:1px solid var(--border);border-radius:var(--r-card);box-shadow:var(--shadow-card)}:focus-visible{outline:2px solid var(--primary);outline-offset:2px}
