.auth-shell{display:flex;flex-direction:column;min-height:100vh;min-height:100dvh;padding:20px;background:radial-gradient(120% 55% at 50% -10%,var(--accent-weak),transparent 55%)}.auth-topbar{display:flex;align-items:center;justify-content:space-between;gap:16px}.auth-brand{display:inline-flex;align-items:center;gap:11px;padding:2px;border-radius:10px;color:inherit;text-decoration:none}.auth-brand-text{display:flex;flex-direction:column;line-height:1.15}.auth-main{flex:1;display:flex;align-items:center;justify-content:center;padding:24px 0 40px}.auth-card{width:100%;max-width:440px;padding:28px;border:1px solid var(--border);border-radius:14px;background:var(--surface);box-shadow:var(--shadow-lg)}.auth-heading{margin-bottom:20px}.auth-heading h1{margin:0;font-family:var(--font-display),var(--font-sans),sans-serif;font-size:24px;line-height:1.2;letter-spacing:-.01em}.auth-heading p{margin:6px 0 0;color:var(--muted);font-size:14px;line-height:1.5}.auth-message{margin:0 0 18px;padding:10px 12px;border:1px solid var(--border);border-radius:8px;background:var(--surface-2);color:var(--text);font-size:13px;line-height:1.5}.auth-message.error{color:var(--rose);border-color:var(--rose)}.auth-message.success{color:var(--green);border-color:var(--accent-weak-border)}.auth-message.info{color:var(--muted)}.auth-form{display:grid;gap:16px}.auth-field{display:grid;gap:7px}.auth-field>label{color:var(--text);font-size:13px;font-weight:650}.auth-input-wrap{position:relative;display:flex;align-items:center}.auth-input-wrap>svg{position:absolute;top:50%;left:12px;transform:translateY(-50%);color:var(--soft);pointer-events:none}.auth-input{width:100%;height:46px;padding:0 12px;border:1px solid var(--border);border-radius:8px;background:var(--field);color:var(--text);font-size:16px;transition:border-color .15s ease,box-shadow .15s ease}.auth-input::-moz-placeholder{color:var(--soft)}.auth-input::placeholder{color:var(--soft)}.auth-input.has-icon{padding-left:40px}.auth-input.has-reveal{padding-right:44px}.auth-input:focus{outline:none;border-color:var(--accent-line);box-shadow:0 0 0 3px var(--accent-weak)}.auth-code{letter-spacing:.14em}.auth-reveal{position:absolute;top:50%;right:6px;transform:translateY(-50%);display:inline-flex;align-items:center;justify-content:center;width:32px;height:32px;border:0;border-radius:6px;background:transparent;color:var(--soft);cursor:pointer;transition:color .15s ease,background-color .15s ease}.auth-reveal:hover{color:var(--text);background:var(--surface-2)}.auth-hint{color:var(--muted);font-size:12px}.auth-hint.error{color:var(--rose)}.text-link{border:0;padding:0;background:none;color:var(--green);font:inherit;font-size:13px;font-weight:600;text-decoration:none;cursor:pointer}.text-link:hover:not(:disabled){text-decoration:underline}.text-link:disabled{color:var(--muted);cursor:not-allowed;opacity:1}.auth-forgot{justify-self:end}.auth-center{justify-self:center;margin-top:2px}.twofa-resend{justify-content:center;gap:6px;color:var(--muted);font-size:13px}.auth-divider,.twofa-resend{display:flex;align-items:center}.auth-divider{gap:12px;margin:18px 0}.auth-rule{flex:1;height:1px;background:var(--border)}.auth-divider-text{color:var(--soft);font-size:12px;letter-spacing:.06em;text-transform:uppercase}.google-button{display:inline-flex;align-items:center;justify-content:center;gap:10px;width:100%;min-height:46px;padding:0 16px;border:1px solid var(--border);border-radius:8px;background:var(--surface-2);color:var(--text);font-weight:650;cursor:pointer;transition:border-color .2s ease,background-color .2s ease}.google-button:hover:not(:disabled){border-color:var(--border-strong);background:var(--elevated)}.google-g{display:inline-grid;place-items:center;width:20px;height:20px;border-radius:4px;background:#ffffff;color:#4285f4;font-family:var(--font-display),var(--font-sans),sans-serif;font-size:13px;font-weight:800}.auth-alt{margin:18px 0 0;color:var(--muted);font-size:13px;text-align:center}.auth-alt a{color:var(--green);font-weight:650;text-decoration:none}.auth-alt a:hover{text-decoration:underline}.pw-meter{display:grid;gap:10px;margin-top:2px}.pw-track{height:6px;overflow:hidden;border-radius:999px;background:var(--surface-2)}.pw-fill{width:0;height:100%;border-radius:inherit;background:var(--soft);transition:width .25s ease,background-color .25s ease}.pw-fill.weak{background:var(--rose)}.pw-fill.medium{background:var(--amber)}.pw-fill.strong{background:var(--green)}.pw-reqs{display:grid;gap:6px;margin:0;padding:0;list-style:none}.pw-req{display:flex;align-items:center;gap:8px;color:var(--muted);font-size:12.5px}.pw-req.met{color:var(--text)}.pw-req-icon{display:inline-flex;color:var(--soft)}.pw-req.met .pw-req-icon{color:var(--green)}.auth-spinner{width:16px;height:16px;border:2px solid;border-top:2px solid transparent;border-radius:50%;animation:auth-spin .6s linear infinite}@keyframes auth-spin{to{transform:rotate(1turn)}}.sr-only{position:absolute;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0}@media (max-width:520px){.auth-shell{padding:16px}.auth-card{padding:22px 18px;border-radius:12px}.auth-brand .brand-domain{display:none}}.auth-fineprint{margin:0;color:var(--soft);font-size:.79rem;line-height:1.5;text-align:center}