.auth-layout{min-height:100vh;display:flex;align-items:center;justify-content:center;background:var(--paper-warm);padding:var(--space-lg)}.auth-container{width:100%;max-width:420px}.auth-brand{text-align:center;margin-bottom:var(--space-2xl)}.auth-logo{font-family:var(--font-display);font-size:2.5rem;font-weight:600;color:var(--ink-900);margin:0;letter-spacing:-.02em}.auth-tagline{font-family:var(--font-body);font-size:.95rem;color:var(--ink-500);margin:var(--space-xs) 0 0}.auth-card{background:var(--paper-cream);border:1px solid var(--ink-200);border-radius:var(--radius-lg);padding:var(--space-2xl);box-shadow:var(--shadow-md)}.auth-card h2{font-family:var(--font-display);font-size:1.5rem;font-weight:600;color:var(--ink-900);margin:0 0 var(--space-lg);text-align:center}.auth-form{gap:var(--space-md)}.auth-field,.auth-form{display:flex;flex-direction:column}.auth-field{gap:var(--space-xs)}.auth-field label{font-family:var(--font-body);font-size:.85rem;font-weight:500;color:var(--ink-700)}.auth-field input{font-family:var(--font-body);font-size:.95rem;padding:.65rem .85rem;border:1px solid var(--ink-300);border-radius:var(--radius-md);background:#fff;color:var(--ink-900);transition:border-color var(--transition-fast),box-shadow var(--transition-fast)}.auth-field input:focus{outline:none;border-color:var(--teal-500);box-shadow:0 0 0 3px var(--teal-100)}.auth-field input::placeholder{color:var(--ink-400)}.auth-submit{font-family:var(--font-body);font-size:.95rem;font-weight:600;padding:.7rem 1.5rem;border:none;border-radius:var(--radius-md);background:var(--teal-600);color:#fff;cursor:pointer;transition:background var(--transition-fast),transform var(--transition-fast);margin-top:var(--space-sm)}.auth-submit:hover:not(:disabled){background:var(--teal-500)}.auth-submit:active:not(:disabled){transform:scale(.98)}.auth-submit:disabled{opacity:.6;cursor:not-allowed}.auth-divider{display:flex;align-items:center;gap:var(--space-md);margin:var(--space-sm) 0}.auth-divider:after,.auth-divider:before{content:"";flex:1 1;height:1px;background:var(--ink-200)}.auth-divider span{font-family:var(--font-body);font-size:.8rem;color:var(--ink-400);text-transform:uppercase;letter-spacing:.05em}.auth-oauth{display:flex;align-items:center;justify-content:center;gap:var(--space-sm);font-family:var(--font-body);font-size:.9rem;font-weight:500;padding:.65rem 1.5rem;border:1px solid var(--ink-300);border-radius:var(--radius-md);background:#fff;color:var(--ink-700);cursor:pointer;transition:background var(--transition-fast),border-color var(--transition-fast);width:100%}.auth-oauth:hover{background:var(--ink-50);border-color:var(--ink-400)}.auth-oauth svg{width:18px;height:18px}.auth-links{display:flex;flex-direction:column;align-items:center;gap:var(--space-sm);margin-top:var(--space-lg);font-family:var(--font-body);font-size:.85rem;color:var(--ink-500)}.auth-links a{color:var(--teal-600);text-decoration:none;font-weight:500;transition:color var(--transition-fast)}.auth-links a:hover{color:var(--teal-500);text-decoration:underline}.auth-error{color:var(--error);background:var(--error-light);border:1px solid #fecaca;border-radius:var(--radius-md)}.auth-error,.auth-success{font-family:var(--font-body);font-size:.85rem;padding:.6rem .85rem;text-align:center}.auth-success{color:var(--success);background:var(--success-light);border:1px solid #a7f3d0;border-radius:var(--radius-md)}.auth-forgot{text-align:right}.auth-forgot a{font-family:var(--font-body);font-size:.8rem;color:var(--teal-600);text-decoration:none}.auth-forgot a:hover{text-decoration:underline}