*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}:root{--bg: #0a0b14;--surface: #13141f;--surface-2: #1a1b2a;--surface-3: #22243a;--border: rgba(255,255,255,.08);--border-strong: rgba(255,255,255,.14);--text-primary: #f1f2f8;--text-secondary:#b0b3c8;--text-muted: #6b6e85;--accent: #6366f1;--accent-light: rgba(99,102,241,.15);--online: #22c55e;--danger: #ef4444}html,body,#root{height:100%;overflow:hidden}body{font-family:Inter,-apple-system,BlinkMacSystemFont,sans-serif;background:var(--bg);color:var(--text-primary);-webkit-font-smoothing:antialiased;font-size:14px;line-height:1.5}::-webkit-scrollbar{width:5px;height:5px}::-webkit-scrollbar-track{background:transparent}::-webkit-scrollbar-thumb{background:#ffffff1a;border-radius:4px}::-webkit-scrollbar-thumb:hover{background:#fff3}.input{width:100%;padding:12px 16px;border-radius:10px;border:1.5px solid var(--border-strong);background:var(--surface-2);color:var(--text-primary);font-size:14px;font-family:inherit;outline:none;transition:border-color .2s,box-shadow .2s}.input::placeholder{color:var(--text-muted)}.input:focus{border-color:var(--accent);box-shadow:0 0 0 3px #6366f12e}.input:disabled{opacity:.5;cursor:not-allowed}.otp-input{width:52px;height:60px;text-align:center;font-size:22px;font-weight:800;letter-spacing:0;border-radius:12px;border:1.5px solid var(--border-strong);background:var(--surface-2);color:var(--text-primary);outline:none;transition:border-color .2s,box-shadow .2s;caret-color:var(--accent)}.otp-input:focus{border-color:var(--accent);box-shadow:0 0 0 3px #6366f12e}.btn-primary{width:100%;padding:14px;border-radius:12px;border:none;background:linear-gradient(135deg,#6366f1,#8b5cf6);color:#fff;font-size:15px;font-weight:700;cursor:pointer;transition:opacity .15s,transform .1s,box-shadow .15s;display:flex;align-items:center;justify-content:center;gap:8px;letter-spacing:-.01em;font-family:inherit}.btn-primary:hover:not(:disabled){opacity:.92;box-shadow:0 8px 24px #6366f159}.btn-primary:active:not(:disabled){transform:scale(.98)}.btn-primary:disabled{opacity:.4;cursor:not-allowed}.spin{width:20px;height:20px;border:2.5px solid rgba(255,255,255,.25);border-top-color:#fff;border-radius:50%;animation:spin .7s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.fade-in{animation:fadeIn .3s ease forwards}@keyframes fadeIn{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}@keyframes typing-bounce{0%,60%,to{transform:translateY(0);opacity:.4}30%{transform:translateY(-5px);opacity:1}}
