:root{color-scheme:dark;--background:#1e1f22;--surface:#2b2d31;--text:#f2f3f5;--muted:#a4a8b1;--line:#3d3f45;--blurple:#5865f2;--font:"gg sans","Noto Sans","Helvetica Neue",Helvetica,Arial,sans-serif}
*{box-sizing:border-box}
html,body{margin:0;min-height:100%;background:var(--background);color:var(--text);font:15px/1.5 var(--font);-webkit-font-smoothing:antialiased}
body{background:radial-gradient(ellipse at 50% 8%,rgba(88,101,242,.12),transparent 56%),var(--background)}
button,input,a{-webkit-tap-highlight-color:transparent}
button,input{font:inherit;color:inherit}
button,a{touch-action:manipulation}
button{cursor:pointer}
a{color:inherit;text-decoration:none}
[hidden]{display:none!important}
:focus-visible{outline:3px solid #9ba3ff;outline-offset:4px}
button:disabled,input:disabled{opacity:.48;cursor:not-allowed}
.login-layout{min-height:100vh;min-height:100svh;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:40px 20px 32px}
.brand{display:flex;align-items:center;gap:11px;margin-bottom:28px;font-size:20px;letter-spacing:-.4px}
.brand strong{font-weight:700}.brand-mark{width:38px;height:38px;display:grid;place-items:center;border-radius:12px;background:#f3ba2f;color:#1e1f22}.brand-mark svg{width:30px;height:30px;fill:currentColor}
.login-card{width:100%;max-width:440px;padding:32px 34px 28px;background:var(--surface);border:1px solid rgba(255,255,255,.065);border-radius:16px;box-shadow:0 20px 65px rgba(0,0,0,.18);text-align:center}
.login-symbol{display:grid;place-items:center;width:56px;height:56px;background:rgba(88,101,242,.16);border:1px solid rgba(139,149,255,.2);border-radius:17px;color:#a0a8ff;margin:0 auto 19px}.login-symbol svg{width:28px;height:28px;fill:none;stroke:currentColor;stroke-width:1.6;stroke-linecap:round;stroke-linejoin:round}
.eyebrow{font-size:10px;font-weight:700;letter-spacing:1.65px;color:#9fa7ff;margin:0 0 8px}
h1{font-size:25px;line-height:1.3;letter-spacing:-.65px;margin:0 0 11px;font-weight:750}
.intro{color:var(--muted);margin:0 0 28px;font-size:14px;line-height:1.65}
.login-step{display:flex;align-items:center;gap:9px;text-align:left;font-size:12px;font-weight:600;color:#d8dbe1;margin:0 0 12px}
.step-number{display:grid;place-items:center;flex:none;width:21px;height:21px;border:1px solid #515460;border-radius:50%;font-size:10px;color:#c4c9d5}
.telegram-button,.submit-button{display:flex;align-items:center;justify-content:center;gap:10px;width:100%;min-height:46px;border:0;border-radius:7px;font-size:13px;font-weight:650;transition:background .15s,transform .15s}
.telegram-button{background:#299ad4;color:#fff}.telegram-button:hover{background:#2386bb}.telegram-button svg{width:20px;height:20px;fill:currentColor;flex:none}.external-arrow{margin-left:auto;opacity:.8}.telegram-button svg{margin-right:auto}.telegram-button{padding:0 15px}
.bot-name{font-size:11px;min-height:16px;color:var(--muted);margin:9px 0 0}
.step-divider{height:1px;background:var(--line);margin:22px 0}
.code-input{width:100%;height:49px;border-radius:7px;border:1px solid #41434b;background:#1e1f22;text-align:center;padding:0 12px;font-family:Consolas,"Liberation Mono",monospace;font-size:16px;letter-spacing:.45px;transition:border-color .15s}
.code-input::placeholder{font:13px var(--font);color:#858c98;letter-spacing:0}.code-input:focus{outline:none;border-color:#8791ff;box-shadow:0 0 0 3px rgba(88,101,242,.16)}.code-input[aria-invalid="true"]{border-color:#f3868a}
.code-hint{display:flex;align-items:center;justify-content:center;gap:6px;margin:10px 0 21px;color:var(--muted);font-size:10.5px}.code-hint svg{width:13px;height:13px;flex:none;fill:none;stroke:currentColor;stroke-width:1.3;stroke-linecap:round}
.submit-button{background:var(--blurple);color:white;padding:0 17px;position:relative}.submit-button:hover:not(:disabled){background:#4752c4}.submit-button span{position:absolute;right:17px;font-size:18px}.submit-button:active:not(:disabled),.telegram-button:active{transform:translateY(1px)}
.login-status{font-size:12px;line-height:1.55;text-align:left;padding:11px 12px;background:rgba(242,63,67,.09);border:1px solid rgba(242,63,67,.23);border-radius:7px;color:#ffb0b3;margin:17px 0 0;overflow-wrap:anywhere}.login-status[data-tone="good"]{background:rgba(35,165,90,.1);border-color:rgba(35,165,90,.25);color:#86d6aa}
.login-status[data-tone="info"]{background:rgba(88,101,242,.1);border-color:rgba(139,149,255,.25);color:#c0c5ff}
.retry-button{padding:5px 8px;margin:9px 0 0;border:0;background:none;color:#adb4ff;font-size:12px}.retry-button:hover{text-decoration:underline}
.login-footer{margin:20px 0 0;color:#848b96;font-size:11px;text-align:center;max-width:400px}
@media(max-height:760px){.login-layout{padding-top:20px;padding-bottom:20px}.brand{margin-bottom:20px}.login-card{padding-top:24px;padding-bottom:24px}.login-symbol{width:48px;height:48px;margin-bottom:14px}.intro{margin-bottom:20px}.step-divider{margin:18px 0}.code-hint{margin-bottom:18px}.login-footer{margin-top:16px}}
@media(max-width:480px){.login-layout{padding:24px 16px}.brand{margin-bottom:22px;font-size:18px}.login-card{padding:26px 22px 24px;border-radius:13px}h1{font-size:23px}.intro{font-size:13px}.login-step{font-size:11.5px}.code-input{font-size:15px}.login-footer{font-size:10px}}
@media(prefers-reduced-motion:reduce){*{transition:none!important}}
