:root{--ink:#0b1d2f;--ink-deep:#081827;--panel:#0f2740;--panel-2:#12304f;--text:#f2f8ff;--muted:#a9bfd2;--faint:#7f99ad;--line:#20a9de33;--line-soft:#20a9de1c;--line-strong:#23d8ca70;--blue:#1d70fd;--cyan:#20a9de;--teal:#23d8ca;--danger:#ff8f8f;--font-sans:"Montserrat", "Helvetica Neue", Arial, sans-serif;--font-mono:"JetBrains Mono", ui-monospace, Menlo, Consolas, monospace;--sidebar-w:248px;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}*{box-sizing:border-box}html,body,#root{min-height:100%}body{background:var(--ink);color:var(--text);font-family:var(--font-sans);-webkit-font-smoothing:antialiased;margin:0;font-size:15px;line-height:1.6}a{color:inherit;text-decoration:none}button{font:inherit;color:inherit;cursor:pointer;background:0 0;border:0}input,textarea,select{font:inherit}:focus-visible{outline:2px solid var(--teal);outline-offset:2px}.app{min-height:100vh;display:flex}.app__sidebar{z-index:30;width:var(--sidebar-w);border-right:1px solid var(--line);background:var(--ink-deep);flex-direction:column;display:flex;position:fixed;inset:0 auto 0 0}.app__brand{border-bottom:1px solid var(--line);align-items:center;gap:9px;height:64px;padding:0 18px;display:flex}.app__brand img{width:30px;height:30px}.app__brand-text{flex-direction:column;line-height:1.15;display:flex}.app__brand-text b{letter-spacing:.02em;font-size:14px;font-weight:700}.app__brand-text span{color:var(--faint);font-family:var(--font-mono);letter-spacing:.16em;text-transform:uppercase;font-size:9.5px}.app__nav{flex:1;padding:16px 12px;overflow-y:auto}.app__nav a{color:var(--muted);border-left:2px solid #0000;border-radius:0 8px 8px 0;align-items:center;gap:10px;padding:10px;font-size:13.5px;font-weight:500;transition:background-color .18s,color .18s,border-color .18s;display:flex}.app__nav a:hover{color:var(--text);background:#20a9de0f}.app__nav a.is-active{border-left-color:var(--teal);color:var(--text);background:#23d8ca17}.app__nav a svg{color:var(--faint)}.app__nav a.is-active svg{color:var(--teal)}.app__user{border-top:1px solid var(--line);color:var(--faint);font-family:var(--font-mono);letter-spacing:.08em;overflow-wrap:anywhere;padding:14px 18px 18px;font-size:10px}.app__user b{color:var(--muted);letter-spacing:.02em;font-weight:600;display:block}.app__user button{color:var(--teal);font-family:var(--font-sans);margin-top:10px;padding:6px 0;font-size:12.5px;font-weight:600}.app__main{min-width:0;margin-left:var(--sidebar-w);flex:1}.app__topbar{z-index:20;border-bottom:1px solid var(--line);background:var(--ink);align-items:center;gap:14px;height:64px;padding:0 28px;display:flex;position:sticky;top:0}.app__topbar h1{margin:0;font-size:15px;font-weight:600}.app__topbar a{color:var(--muted);margin-left:auto;font-size:13px}.app__topbar a:hover{color:var(--teal)}.app__content{max-width:1080px;padding:28px 28px 64px}.app__toggle{display:none}.card{border:1px solid var(--line);background:var(--panel);border-radius:14px;padding:22px}.card+.card{margin-top:16px}.card__title{letter-spacing:-.02em;margin:0 0 6px;font-size:19px;font-weight:600}.card__text{color:var(--muted);margin:0;font-size:14px;line-height:1.7}.stack{gap:16px;display:grid}.grid-2{grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;display:grid}.grid-4{grid-template-columns:repeat(4,minmax(0,1fr));gap:16px;display:grid}.field{margin-bottom:16px;display:block}.field__label{color:var(--muted);letter-spacing:.08em;text-transform:uppercase;margin-bottom:7px;font-size:12px;font-weight:600;display:block}.field__input{border:1px solid var(--line);background:var(--ink-deep);width:100%;height:44px;color:var(--text);border-radius:10px;padding:0 13px;font-size:14.5px}.field__input::placeholder{color:var(--faint)}.field__hint{color:var(--faint);margin:7px 0 0;font-size:12.5px}.button{background:var(--blue);color:#fff;border:1px solid #0000;border-radius:10px;justify-content:center;align-items:center;gap:8px;min-height:44px;padding:0 20px;font-size:14px;font-weight:600;transition:background-color .18s,border-color .18s,transform .18s;display:inline-flex}.button:hover:not(:disabled){background:#2f7fff;transform:translateY(-1px)}.button:disabled{opacity:.6;cursor:not-allowed}.button--ghost{border-color:var(--line-strong);color:var(--text);background:0 0}.button--ghost:hover:not(:disabled){color:var(--text);background:#23d8ca14}.button--danger{color:var(--danger);background:0 0;border-color:#ff8f8f66}.button--danger:hover:not(:disabled){color:var(--danger);background:#ff8f8f14}.button--block{width:100%}.alert{border:1px solid var(--line);background:var(--ink-deep);color:var(--muted);border-radius:10px;padding:12px 14px;font-size:13.5px}.alert--error{color:#ffc9c9;border-color:#ff8f8f66}.alert--ok{border-color:var(--line-strong);color:var(--teal)}.list{gap:12px;display:grid}.item{border:1px solid var(--line);background:var(--panel);border-radius:12px;align-items:center;gap:14px;padding:16px 18px;display:flex}.item__body{flex:1;min-width:0}.item__body b{font-size:15px;font-weight:600;display:block}.item__body span{color:var(--faint);font-family:var(--font-mono);font-size:11.5px}.pill{border:1px solid var(--line);color:var(--muted);font-family:var(--font-mono);letter-spacing:.1em;text-transform:uppercase;white-space:nowrap;border-radius:999px;align-items:center;padding:3px 9px;font-size:10px;display:inline-flex}.pill--ok{border-color:var(--line-strong);color:var(--teal)}.pill--wait{color:var(--cyan);border-color:#20a9de66}.pill--error{color:var(--danger);border-color:#ff8f8f66}.kpi{border:1px solid var(--line);background:var(--panel);border-radius:12px;padding:18px}.kpi span{color:var(--faint);font-family:var(--font-mono);letter-spacing:.14em;text-transform:uppercase;font-size:10px;font-weight:600;display:block}.kpi b{letter-spacing:-.03em;margin-top:6px;font-size:26px;font-weight:700;display:block}.code{border:1px solid var(--line);color:#c4d8ec;font-family:var(--font-mono);white-space:pre-wrap;word-break:break-word;background:#071522;border-radius:10px;margin:0;padding:14px;font-size:12.5px;line-height:1.75;overflow-x:auto}.copy{float:right;border:1px solid var(--line);color:var(--teal);font-family:var(--font-sans);border-radius:7px;margin-left:10px;padding:3px 9px;font-size:11.5px;font-weight:600}.muted{color:var(--muted)}.faint{color:var(--faint)}.mono{font-family:var(--font-mono);font-size:12.5px}.center{justify-content:center;align-items:center;min-height:100vh;padding:32px 20px;display:flex}.auth{width:100%;max-width:420px}.auth__head{text-align:center;margin-bottom:22px}.auth__head img{width:44px;height:44px;margin:0 auto 12px}.auth__head h1{letter-spacing:-.02em;margin:0 0 6px;font-size:21px;font-weight:700}.auth__head p{color:var(--muted);margin:0;font-size:13.5px}.auth__foot{color:var(--faint);text-align:center;margin-top:18px;font-size:13px}.auth__foot a{color:var(--teal);font-weight:600}.steps{counter-reset:step;gap:12px;margin:0;padding:0;list-style:none;display:grid}.steps li{border:1px solid var(--line);background:var(--ink-deep);color:var(--muted);border-radius:12px;padding:14px 16px 14px 52px;font-size:13.5px;position:relative}.steps li:before{counter-increment:step;content:counter(step);background:var(--panel-2);width:24px;height:24px;color:var(--teal);font-family:var(--font-mono);border-radius:7px;justify-content:center;align-items:center;font-size:12px;display:flex;position:absolute;top:12px;left:16px}.steps b{color:var(--text)}.row{flex-wrap:wrap;align-items:center;gap:12px;display:flex}.row--end{justify-content:flex-end}.progress{background:var(--panel-2);border-radius:999px;height:6px;overflow:hidden}.progress i{background:var(--teal);height:100%;transition:width .4s;display:block}@media (width<=900px){.app__sidebar{transition:transform .24s;transform:translate(-100%)}.app__sidebar.is-open{transform:none}.app__main{margin-left:0}.app__toggle{border:1px solid var(--line);width:40px;height:40px;color:var(--text);border-radius:9px;justify-content:center;align-items:center;display:inline-flex}.app__content,.app__topbar{padding-left:16px;padding-right:16px}.grid-2,.grid-4{grid-template-columns:1fr}}@font-face{font-family:Montserrat;src:url(/fonts/Montserrat-Medium.woff2)format("woff2");font-weight:500;font-style:normal;font-display:swap}@font-face{font-family:Montserrat;src:url(/fonts/Montserrat-SemiBold.woff2)format("woff2");font-weight:600;font-style:normal;font-display:swap}@font-face{font-family:Montserrat;src:url(/fonts/Montserrat-Bold.woff2)format("woff2");font-weight:700;font-style:normal;font-display:swap}@font-face{font-family:JetBrains Mono;src:url(/fonts/JetBrainsMono-Regular.woff2)format("woff2");font-weight:400;font-style:normal;font-display:swap}
