body{margin:0}:root{--primary:#f5b800;--primary-hover:#e0a800;--primary-disabled:#fdd96a;--text:#0f172a;--text-secondary:#64748b;--bg:#fff;--bg-secondary:#f8fafc;--border:#e2e8f0;--input-bg:#f1f5f9;--error:#ef4444;--success:#22c55e;--shadow:0 4px 24px #00000014}*,:before,:after{box-sizing:border-box}body{background:var(--bg-secondary);color:var(--text);-webkit-font-smoothing:antialiased;margin:0;font-family:system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif}#root{justify-content:center;align-items:center;min-height:100svh;padding:24px 16px;display:flex}.page{width:100%;max-width:420px}.card{background:var(--bg);border:1px solid var(--border);box-shadow:var(--shadow);border-radius:20px;padding:40px 32px}.header{flex-direction:column;align-items:center;margin-bottom:36px;display:flex}.logo{object-fit:cover;border-radius:18px;width:72px;height:72px;margin-bottom:14px;display:block;box-shadow:0 4px 16px #f5b80059}.app-name{letter-spacing:-.5px;color:var(--text);margin:0 0 4px;font-size:28px;font-weight:700}.app-subtitle{color:var(--text-secondary);margin:0;font-size:15px}.state-message{text-align:center;flex-direction:column;align-items:center;gap:12px;padding:8px 0 4px;display:flex}.state-icon{border-radius:50%;justify-content:center;align-items:center;width:56px;height:56px;display:flex}.error-icon{color:var(--error);background:#ef44441a}.success-icon{color:var(--success);background:#22c55e1a}.state-title{color:var(--text);margin:0;font-size:20px;font-weight:600}.state-body{color:var(--text-secondary);max-width:300px;margin:0;font-size:15px;line-height:1.5}.state-detail{color:var(--text-secondary);background:var(--input-bg);word-break:break-word;border-radius:8px;max-width:300px;margin:4px 0 0;padding:8px 12px;font-family:ui-monospace,Consolas,monospace;font-size:13px}.spinner{border:3px solid var(--border);border-top-color:var(--primary);border-radius:50%;width:36px;height:36px;animation:.7s linear infinite spin}.form{flex-direction:column;gap:0;display:flex}.form-title{color:var(--text);margin:0 0 6px;font-size:22px;font-weight:600}.form-subtitle{color:var(--text-secondary);margin:0 0 24px;font-size:15px}.error-banner{color:var(--error);background:#ef444414;border:1px solid #ef44444d;border-radius:10px;margin-bottom:20px;padding:10px 14px;font-size:14px}.field{flex-direction:column;gap:6px;margin-bottom:18px;display:flex}.field label{color:var(--text);font-size:14px;font-weight:500}.input-wrap{align-items:center;display:flex;position:relative}.input-icon{color:var(--text-secondary);pointer-events:none;display:flex;position:absolute;left:14px}.input-wrap input{background:var(--input-bg);border:1.5px solid var(--border);width:100%;color:var(--text);border-radius:12px;outline:none;padding:13px 44px 13px 42px;font-family:inherit;font-size:15px;transition:border-color .15s,box-shadow .15s}.input-wrap input::placeholder{color:#94a3b8}.input-wrap input:focus{border-color:var(--primary);background:#fff;box-shadow:0 0 0 3px #f5b80026}.input-wrap input:disabled{opacity:.6;cursor:not-allowed}.toggle-visibility{cursor:pointer;color:var(--text-secondary);background:0 0;border:none;border-radius:6px;align-items:center;padding:4px;transition:color .15s;display:flex;position:absolute;right:12px}.toggle-visibility:hover{color:var(--text)}.helper-text{color:var(--text-secondary);font-size:13px}.helper-text.error{color:var(--error)}.submit-btn{background:var(--primary);color:#0f172a;cursor:pointer;border:none;border-radius:12px;justify-content:center;align-items:center;gap:8px;width:100%;margin-top:8px;padding:15px;font-family:inherit;font-size:16px;font-weight:600;transition:background .15s,transform .1s,box-shadow .15s;display:flex}.submit-btn:hover:not(:disabled){background:var(--primary-hover);box-shadow:0 4px 14px #f5b80066}.submit-btn:active:not(:disabled){transform:scale(.98)}.submit-btn:disabled{background:var(--primary-disabled);color:#0f172a73;cursor:not-allowed}.btn-spinner{border:2.5px solid #0f172a40;border-top-color:#0f172a;border-radius:50%;width:20px;height:20px;animation:.7s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}
