:root{--primary:#6366f1;--primary-hover:#4f46e5;--error:#ef4444;--bg-color:#0f111a;--surface:#191b2899;--surface-border:#ffffff14;--text-primary:#f8fafc;--text-secondary:#94a3b8;--focus-ring:#6366f14d;--bg-grad-1:#6366f126;--bg-grad-2:#a855f726;--input-bg:#0003;--input-bg-focus:#0000004d;--error-bg:#ef44441a;--error-border:#ef444433;--shadow:#00000080;--btn-shadow:#6366f14d;--placeholder:#94a3b880}@media (prefers-color-scheme:light){:root{--bg-color:#f1f5f9;--surface:#ffffffb3;--surface-border:#00000014;--text-primary:#0f172a;--text-secondary:#64748b;--focus-ring:#6366f133;--bg-grad-1:#6366f114;--bg-grad-2:#a855f714;--input-bg:#0000000a;--input-bg-focus:#0000000f;--error-bg:#ef44440f;--error-border:#ef444426;--shadow:#0000001a;--btn-shadow:#6366f133;--placeholder:#64748b66}}*{box-sizing:border-box;margin:0;padding:0}body{background-color:var(--bg-color);color:var(--text-primary);background-image:radial-gradient(circle at 15% 50%, var(--bg-grad-1), transparent 25%), radial-gradient(circle at 85% 30%, var(--bg-grad-2), transparent 25%);-webkit-font-smoothing:antialiased;justify-content:center;align-items:center;min-height:100vh;font-family:Inter,system-ui,-apple-system,sans-serif;display:flex;overflow:hidden}.login-container{background:var(--surface);-webkit-backdrop-filter:blur(20px);border:1px solid var(--surface-border);width:100%;max-width:420px;box-shadow:0 25px 50px -12px var(--shadow);opacity:0;border-radius:24px;padding:2.5rem;animation:.6s cubic-bezier(.16,1,.3,1) forwards slideUp;transform:translateY(20px)}@keyframes slideUp{to{opacity:1;transform:translateY(0)}}.form-group{margin-bottom:1.5rem}.label{color:var(--text-secondary);margin-bottom:.5rem;font-size:.875rem;font-weight:500;display:block}.input-wrapper{align-items:center;display:flex;position:relative}.input-icon{color:var(--text-secondary);pointer-events:none;width:18px;height:18px;transition:color .3s;position:absolute;left:1rem}.input{background:var(--input-bg);border:1px solid var(--surface-border);width:100%;color:var(--text-primary);border-radius:12px;outline:none;padding:.875rem 1rem .875rem 2.75rem;font-family:inherit;font-size:1rem;transition:all .3s cubic-bezier(.4,0,.2,1)}.input:focus{border-color:var(--primary);background:var(--input-bg-focus);box-shadow:0 0 0 4px var(--focus-ring)}.input:focus+.input-icon{color:var(--primary)}.input::placeholder{color:var(--placeholder)}.button{background:var(--primary);color:#fff;cursor:pointer;border:none;border-radius:12px;justify-content:center;align-items:center;gap:.5rem;width:100%;padding:1rem;font-family:Outfit,sans-serif;font-size:1rem;font-weight:500;transition:all .3s;display:flex;position:relative;overflow:hidden}.button:hover{background:var(--primary-hover);box-shadow:0 10px 20px var(--btn-shadow);transform:translateY(-1px)}.button:active{transform:translateY(1px)}.button:disabled{opacity:.7;cursor:not-allowed;transform:none}.error-message{color:var(--error);background:var(--error-bg);border:1px solid var(--error-border);border-radius:8px;align-items:center;gap:.5rem;margin-top:-.5rem;margin-bottom:1.5rem;padding:.75rem;font-size:.875rem;animation:.5s cubic-bezier(.36,.07,.19,.97) both shake;display:flex}@keyframes shake{10%,90%{transform:translate(-1px)}20%,80%{transform:translate(2px)}30%,50%,70%{transform:translate(-4px)}40%,60%{transform:translate(4px)}}.spinner{width:20px;height:20px;animation:2s linear infinite rotate}.spinner .path{stroke:#fff;stroke-linecap:round;animation:1.5s ease-in-out infinite dash}@keyframes rotate{to{transform:rotate(360deg)}}@keyframes dash{0%{stroke-dasharray:1 150;stroke-dashoffset:0}50%{stroke-dasharray:90 150;stroke-dashoffset:-35px}to{stroke-dasharray:90 150;stroke-dashoffset:-124px}}
