body{min-height:100vh;display:flex;flex-direction:column}.auth-wrap{flex:1;display:flex;align-items:center;justify-content:center;padding:3rem var(--container-pad);background:var(--color-bg-soft)}.auth-card{width:100%;max-width:420px;background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-xl);box-shadow:var(--shadow-lg);padding:2.5rem 2rem}.auth-brand{text-align:center;margin-bottom:2rem}.auth-brand img{height:28px}.auth-brand p{margin-top:.5rem;font-size:var(--fs-sm);color:var(--color-text-muted)}.auth-tabs{display:flex;gap:2px;background:var(--color-bg-muted);border-radius:var(--radius-md);padding:3px;margin-bottom:1.75rem}.auth-tab{flex:1;padding:8px;border:none;background:transparent;border-radius:calc(var(--radius-md) - 2px);font-size:var(--fs-sm);font-weight:600;color:var(--color-text-muted);cursor:pointer;transition:background var(--transition-fast),color var(--transition-fast)}.auth-tab.active{background:var(--color-surface);color:var(--color-text);box-shadow:var(--shadow-sm)}.auth-form{display:flex;flex-direction:column;gap:1rem}.auth-form[hidden]{display:none}.field{display:flex;flex-direction:column;gap:.375rem}.field label{font-size:var(--fs-sm);font-weight:600;color:var(--color-text)}.field .input{width:100%;padding:10px 12px;background:var(--color-bg-soft);border:1px solid var(--color-border);border-radius:var(--radius-md);font-size:var(--fs-md);color:var(--color-text);outline:none;transition:border-color var(--transition-fast);box-sizing:border-box}.field .input:focus{border-color:var(--color-brand-mid)}.field .input.error{border-color:var(--color-negative)}.field-hint{font-size:var(--fs-xs);color:var(--color-text-subtle);margin-top:2px}.forgot{font-size:var(--fs-xs);color:var(--color-brand-mid);text-decoration:none;align-self:flex-end;margin-top:-6px}.forgot:hover{text-decoration:underline}.btn-submit{width:100%;padding:11px;background:var(--color-brand);color:#fff;border:none;border-radius:var(--radius-md);font-size:var(--fs-md);font-weight:700;cursor:pointer;transition:background var(--transition-fast);margin-top:.25rem}.btn-submit:hover:not(:disabled){background:var(--color-brand-light)}.btn-submit:disabled{opacity:.55;cursor:not-allowed}.auth-divider{display:flex;align-items:center;gap:.75rem;margin:.25rem 0;color:var(--color-text-subtle);font-size:var(--fs-xs)}.auth-divider::before,.auth-divider::after{content:'';flex:1;height:1px;background:var(--color-border)}.btn-google{display:flex;align-items:center;justify-content:center;gap:.625rem;width:100%;padding:10px;background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-md);font-size:var(--fs-sm);font-weight:600;color:var(--color-text);cursor:pointer;transition:background var(--transition-fast),border-color var(--transition-fast)}.btn-google:hover{background:var(--color-bg-muted);border-color:var(--color-border-strong)}.btn-google svg{flex-shrink:0}.auth-alert{padding:10px 12px;border-radius:var(--radius-md);font-size:var(--fs-sm);display:none}.auth-alert.error{background:var(--color-negative-bg);color:var(--color-negative);display:block}.auth-alert.success{background:var(--color-positive-bg);color:var(--color-positive);display:block}.auth-note{text-align:center;font-size:var(--fs-xs);color:var(--color-text-subtle);margin-top:1.25rem}.auth-note a{color:var(--color-brand-mid);text-decoration:none}.auth-note a:hover{text-decoration:underline}.pw-strength{height:3px;border-radius:2px;background:var(--color-border);overflow:hidden}.pw-strength__bar{height:100%;width:0;border-radius:2px;transition:width .3s,background .3s}