*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}:root{--bg: #f6f7fb;--surface: #ffffff;--surface-alt: #eef0f7;--border: #e0e3ee;--text: #1b1f2e;--text-muted: #636a82;--accent: #6366f1;--accent-hover: #4f52d8;--danger: #ef4444;--danger-bg: rgba(239, 68, 68, .12);--radius: 10px;--shadow: 0 1px 3px rgba(20, 24, 40, .06), 0 4px 16px rgba(20, 24, 40, .06);--radius-lg: 16px}html,body{height:100%;font-family:Inter,system-ui,-apple-system,sans-serif;font-size:16px;background:var(--bg);color:var(--text);-webkit-font-smoothing:antialiased}a{color:var(--accent);text-decoration:none}a:hover{text-decoration:underline}.auth-page{min-height:100vh;display:flex;flex-direction:column;align-items:center;padding:0 1.5rem 2rem}.auth-body{flex:1;display:flex;align-items:center;justify-content:center;width:100%;padding:2rem 0}.auth-card{width:100%;max-width:420px;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);box-shadow:var(--shadow);padding:2.5rem 2rem}.auth-logo{display:flex;align-items:center;gap:.5rem;font-size:1rem;font-weight:700;color:var(--text);letter-spacing:-.01em;margin-bottom:1.75rem;text-decoration:none}.auth-logo img{display:block;object-fit:contain}.auth-title{font-size:1.5rem;font-weight:700;letter-spacing:-.02em;margin-bottom:.375rem}.auth-subtitle{font-size:.9rem;color:var(--text-muted);margin-bottom:2rem}.auth-footer{margin-top:1.5rem;text-align:center;font-size:.875rem;color:var(--text-muted)}.auth-page-footer{margin-top:1.5rem;display:flex;align-items:center;justify-content:center;gap:.5rem;font-size:.8rem;color:var(--text-muted);flex-wrap:wrap}.auth-page-footer a{color:var(--text-muted)}.auth-page-footer a:hover{color:var(--accent)}.auth-footer-sep{opacity:.5}.google-btn-wrapper{display:flex;justify-content:center;margin-bottom:1rem}.auth-divider{display:flex;align-items:center;gap:.75rem;margin-bottom:1.25rem;color:var(--text-muted);font-size:.8rem}.auth-divider:before,.auth-divider:after{content:"";flex:1;height:1px;background:var(--border)}.field{display:flex;flex-direction:column;gap:.375rem;margin-bottom:1.125rem}.field label{font-size:.875rem;font-weight:500;color:var(--text-muted)}.field input{width:100%;padding:.625rem .875rem;background:var(--surface-alt);border:1px solid var(--border);border-radius:var(--radius);color:var(--text);font-size:.95rem;outline:none;transition:border-color .15s,box-shadow .15s}.field input::placeholder{color:var(--text-muted);opacity:.6}.field input:focus{border-color:var(--accent);box-shadow:0 0 0 3px #6366f133}.field input.is-invalid{border-color:var(--danger)}.field input.is-invalid:focus{box-shadow:0 0 0 3px #ef444433}.field-error{font-size:.8rem;color:var(--danger)}.btn-primary{width:100%;padding:.7rem 1rem;background:var(--accent);color:#fff;border:none;border-radius:var(--radius);font-size:.95rem;font-weight:600;cursor:pointer;margin-top:.5rem;transition:background .15s,opacity .15s}.btn-primary:hover:not(:disabled){background:var(--accent-hover)}.btn-primary:disabled{opacity:.6;cursor:not-allowed}.alert-error{padding:.75rem 1rem;background:var(--danger-bg);border:1px solid rgba(239,68,68,.3);border-radius:var(--radius);color:var(--danger);font-size:.875rem;margin-bottom:1rem}
