@font-face{font-family:DM Sans;font-style:normal;font-weight:300 600;font-display:swap;src:url(/fonts/dm-sans-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:DM Sans;font-style:normal;font-weight:300 600;font-display:swap;src:url(/fonts/dm-sans-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:DM Mono;font-style:normal;font-weight:400;font-display:swap;src:url(/fonts/dm-mono-400.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:DM Mono;font-style:normal;font-weight:500;font-display:swap;src:url(/fonts/dm-mono-500.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}*,*:before,*:after{box-sizing:border-box;margin:0;padding:0;-webkit-tap-highlight-color:transparent}:root{--bg: #0a0a0a;--bg2: #141414;--bg3: #1c1c1c;--border: #2a2a2a;--text: #ffffff;--text2: #a0a0a0;--text3: #606060;--accent: #ee4f00;--accent-dim: rgba(238, 79, 0, .15);--radius: 12px;--radius-sm: 8px;--font: "DM Sans", sans-serif;--font-mono: "DM Mono", monospace;--safe-top: env(safe-area-inset-top, 0px);--safe-bottom: env(safe-area-inset-bottom, 0px);--safe-left: env(safe-area-inset-left, 0px);--safe-right: env(safe-area-inset-right, 0px);--nav-height: 58px}html{height:100%;width:100%}body{height:100%;width:100%;overflow:hidden;background:var(--bg);color:var(--text);font-family:var(--font);font-size:16px;line-height:1.5;-webkit-font-smoothing:antialiased}#root{height:100%;width:100%;display:flex;flex-direction:column;position:relative;overflow:hidden}.screen{flex:1;overflow-y:auto;overflow-x:hidden;-webkit-overflow-scrolling:touch;padding-top:var(--safe-top);padding-bottom:calc(var(--nav-height) + var(--safe-bottom))}.screen-inner{max-width:480px;margin:0 auto;padding:24px 20px}.screen-auth{flex:1;overflow-y:auto;-webkit-overflow-scrolling:touch;display:flex;flex-direction:column;padding-top:var(--safe-top);padding-bottom:var(--safe-bottom)}.screen-auth-inner{max-width:480px;margin:0 auto;padding:48px 24px 40px;width:100%;flex:1;display:flex;flex-direction:column}.btn{display:flex;align-items:center;justify-content:center;gap:8px;width:100%;padding:16px 24px;border-radius:var(--radius);border:none;font-family:var(--font);font-size:15px;font-weight:500;cursor:pointer;transition:opacity .15s,transform .1s;text-decoration:none}.btn:active{transform:scale(.98);opacity:.85}.btn-primary{background:var(--accent);color:#fff}.btn-secondary{background:var(--bg3);color:var(--text);border:1px solid var(--border)}.btn-ghost{background:transparent;color:var(--text2)}.btn:disabled{opacity:.4;cursor:not-allowed}.input{width:100%;background:var(--bg2);border:1px solid var(--border);border-radius:var(--radius-sm);padding:14px 16px;color:var(--text);font-family:var(--font);font-size:16px;outline:none;transition:border-color .2s}.input:focus{border-color:var(--accent)}.input::placeholder{color:var(--text3)}.card{background:var(--bg2);border:1px solid var(--border);border-radius:var(--radius);padding:20px}.msg-error{background:#dc26261a;border:1px solid rgba(220,38,38,.3);color:#f87171;border-radius:var(--radius-sm);padding:12px 16px;font-size:14px}.msg-success{background:#22c55e1a;border:1px solid rgba(34,197,94,.3);color:#4ade80;border-radius:var(--radius-sm);padding:12px 16px;font-size:14px}.loader{width:20px;height:20px;border:2px solid rgba(255,255,255,.2);border-top-color:#fff;border-radius:50%;animation:spin .7s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}@keyframes fadeUp{0%{opacity:0;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}.fade-up{animation:fadeUp .35s ease forwards}
