:root{--primary-color: #4F46E5;--primary-hover: #4338CA;--bg-color: #F3F4F6;--card-bg: #FFFFFF;--text-main: #1F2937;--text-secondary: #6B7280;--border-color: #E5E7EB;--error: #EF4444;--success: #10B981}body{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica,Arial,sans-serif;background-color:var(--bg-color);color:var(--text-main);margin:0;padding:0;min-height:100vh;display:flex;justify-content:center;align-items:center}.auth-container{width:100%;max-width:400px;background-color:var(--card-bg);box-shadow:0 4px 6px -1px #0000001a,0 2px 4px -1px #0000000f;border-radius:1rem;padding:2rem;margin:1rem;box-sizing:border-box}.header{text-align:center;margin-bottom:2rem}.header h1{margin:0;font-size:1.75rem;font-weight:700;color:var(--text-main)}.header p{margin-top:.5rem;color:var(--text-secondary)}.form-group{margin-bottom:1.5rem}.form-label{display:block;font-size:.875rem;font-weight:500;color:var(--text-main);margin-bottom:.5rem}.form-input{width:100%;padding:.75rem;border:1px solid var(--border-color);border-radius:.5rem;font-size:1rem;transition:all .2s;box-sizing:border-box}.form-input:focus{outline:none;border-color:var(--primary-color);box-shadow:0 0 0 3px #4f46e51a}.form-input.error{border-color:var(--error)}.error-message{color:var(--error);font-size:.875rem;margin-top:.25rem;display:none}.btn{display:flex;justify-content:center;align-items:center;width:100%;padding:.75rem 1.5rem;border:none;border-radius:.5rem;font-size:1rem;font-weight:500;cursor:pointer;transition:all .2s;background-color:var(--primary-color);color:#fff}.btn:hover{background-color:var(--primary-hover)}.btn:disabled{opacity:.7;cursor:not-allowed}.footer-link{margin-top:1.5rem;text-align:center;font-size:.875rem;color:var(--text-secondary)}.footer-link a{color:var(--primary-color);text-decoration:none;font-weight:500}.footer-link a:hover{text-decoration:underline}.spinner{border:2px solid rgba(255,255,255,.3);border-radius:50%;border-top:2px solid white;width:16px;height:16px;animation:spin 1s linear infinite;margin-right:.5rem;display:none}.btn.loading .spinner{display:block}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.toast{position:fixed;top:1rem;left:50%;transform:translate(-50%);background-color:var(--text-main);color:#fff;padding:.75rem 1.5rem;border-radius:.5rem;box-shadow:0 4px 6px -1px #0000001a;opacity:0;transition:opacity .3s;z-index:1000;pointer-events:none}.toast.show{opacity:1}.toast.error{background-color:var(--error)}.toast.success{background-color:var(--success)}
