.auth-page{min-height:100dvh;display:flex;flex-direction:column;padding:28px 24px max(24px,env(safe-area-inset-bottom));background:var(--surface-page);color:var(--text-strong)}.auth-top{width:100%;max-width:1120px;margin:0 auto}.auth-brand{display:inline-flex;min-height:44px;align-items:center;border-radius:var(--radius-control)}.auth-main{width:100%;max-width:440px;margin:48px auto 32px;display:grid;gap:16px;align-content:start}.auth-main.wide{max-width:640px;margin-top:32px}.auth-card{background:var(--surface);border:1px solid var(--border-default);border-radius:20px;padding:36px;box-shadow:var(--shadow-panel);min-width:0}.auth-heading{margin-bottom:28px}.auth-eyebrow{display:block;font-size:var(--type-caption);font-weight:500;color:var(--text-secondary)}.auth-heading h1{margin:10px 0 0;font-size:26px;line-height:1.35;letter-spacing:-.03em;font-weight:700}.auth-lead{margin-top:12px;font-size:15px;line-height:1.7;color:var(--text-secondary);overflow-wrap:anywhere}.auth-stack{gap:18px}.auth-field,.auth-stack{display:grid;min-width:0}.auth-field{gap:8px}.auth-field>label{font-size:var(--type-body);font-weight:600;color:var(--text-strong)}.auth-field input{width:100%;min-height:52px;padding:0 14px;border:1px solid var(--border-input);border-radius:var(--radius-control);background:var(--surface);color:var(--text-strong);font-size:16px;line-height:1.3}.auth-field input:focus{outline:none;border-color:var(--brand-point);box-shadow:0 0 0 1px var(--brand-point),0 0 0 4px var(--focus-ring)}.auth-field input[aria-invalid=true]{border-color:var(--status-error)}.auth-field input[readonly]{background:var(--surface-sunken);color:var(--text-body)}.auth-password{position:relative}.auth-password input{padding-right:56px}.auth-reveal{position:absolute;top:50%;right:4px;transform:translateY(-50%);display:grid;place-items:center;width:44px;height:44px;min-height:44px;border:0;border-radius:8px;background:transparent;color:var(--text-secondary);cursor:pointer}.auth-reveal:hover{color:var(--brand-default);background:var(--brand-faint)}.auth-reveal:not(:disabled):active{transform:translateY(-50%)}.auth-hint{color:var(--text-secondary)}.auth-field-error,.auth-hint{font-size:var(--type-sub);line-height:1.6}.auth-field-error{font-weight:500;color:var(--status-error)}.auth-alert,.auth-success{padding:12px 14px;border-radius:var(--radius-control);font-size:var(--type-body);line-height:1.6;overflow-wrap:anywhere}.auth-alert{background:var(--status-error-bg);color:var(--status-error)}.auth-success{background:var(--status-success-bg);color:var(--status-success)}.auth-success.empty{position:absolute;width:1px;height:1px;padding:0;overflow:hidden;clip-path:inset(50%);white-space:nowrap}.auth-note{font-size:var(--type-sub);line-height:1.7;color:var(--text-secondary)}.auth-note-box{padding:14px 16px;border-radius:var(--radius-control);background:var(--brand-faint);color:var(--text-body);font-size:var(--type-body);line-height:1.7}.auth-button{display:inline-flex;align-items:center;justify-content:center;gap:8px;width:100%;min-height:52px;padding:12px 20px;border:1px solid transparent;border-radius:var(--radius-control);font:inherit;font-size:15px;font-weight:600;line-height:1.3;text-align:center;text-decoration:none;cursor:pointer}.auth-button.primary{background:var(--brand-default);color:#fff}.auth-button.primary:hover{background:var(--brand-strong)}.auth-button.secondary{background:var(--surface);border-color:var(--border-input);color:var(--brand-default)}.auth-button.secondary:hover{background:var(--brand-faint)}.auth-button.danger{background:var(--status-error);color:#fff}.auth-button.danger:hover{background:var(--status-error-strong)}.auth-button:disabled{background:var(--control-disabled-bg);border-color:transparent;color:var(--control-disabled-fg);cursor:not-allowed;opacity:1}.auth-button.primary[aria-busy=true]{background:var(--brand-default);color:#fff}.auth-button.danger[aria-busy=true]{background:var(--status-error);color:#fff}.auth-button[aria-busy=true]{cursor:progress}.auth-text-button{display:inline-flex;align-items:center;gap:6px;min-height:44px;padding:0;border:0;background:none;color:var(--brand-point);font:inherit;font-size:var(--type-body);font-weight:600;text-decoration:underline;text-underline-offset:3px;cursor:pointer}.auth-actions,.auth-switch{margin-top:16px}.auth-actions{display:flex;flex-wrap:wrap;gap:10px}.auth-actions>.auth-button{flex:1 1 200px;width:auto}.auth-steps{margin:0;padding-left:20px;display:grid;gap:6px;font-size:var(--type-body);line-height:1.7;color:var(--text-body)}.mfa-enroll{display:grid;grid-template-columns:196px minmax(0,1fr);gap:20px;align-items:start}.mfa-qr{width:196px;height:196px;padding:9px;border:1px solid var(--border-default);border-radius:12px;background:#fff}.mfa-qr img{display:block;width:176px;height:176px}.mfa-manual{display:grid;gap:8px;min-width:0}.mfa-manual>p{font-size:var(--type-body);line-height:1.7;color:var(--text-secondary)}.mfa-key-label{margin-top:4px;font-size:var(--type-sub);font-weight:600}.mfa-key,.mfa-key-label{color:var(--text-strong)}.mfa-key{display:block;padding:10px 12px;border-radius:var(--radius-control);background:var(--surface-sunken);font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:15px;letter-spacing:.06em;word-spacing:.2em;overflow-wrap:anywhere;user-select:all}.mfa-key-actions{display:flex;flex-wrap:wrap;column-gap:16px}.auth-summary{display:grid;gap:0;margin:0 0 24px;padding:4px 16px;border-radius:12px;background:var(--surface-subtle)}.auth-summary>div{display:flex;justify-content:space-between;gap:16px;padding:10px 0;border-bottom:1px solid var(--border-default);font-size:var(--type-body);line-height:1.5}.auth-summary>div:last-child{border-bottom:0}.auth-summary dt{flex-shrink:0;color:var(--text-secondary)}.auth-summary dd{margin:0;min-width:0;text-align:right;font-weight:600;overflow-wrap:anywhere}.auth-modes{display:grid;grid-template-columns:1fr 1fr;margin:-8px 0 24px;border-bottom:1px solid var(--border-default)}.auth-modes button{min-height:48px;margin-bottom:-1px;border:0;border-bottom:2px solid transparent;background:none;color:var(--text-secondary);font:inherit;font-size:15px;font-weight:600;cursor:pointer}.auth-modes button[aria-pressed=true]{border-bottom-color:var(--text-strong);color:var(--text-strong)}.auth-modes button:focus-visible{outline:2px solid var(--brand-point);outline-offset:-2px}.auth-resident{display:grid;grid-template-columns:minmax(0,1fr) auto 52px auto;align-items:center;gap:8px}.auth-resident input{text-align:center;letter-spacing:.06em}.auth-resident-mask{color:var(--text-secondary);font-size:var(--type-sub);letter-spacing:2px}.auth-consents{display:grid;gap:12px;margin:4px 0 0;padding:0;border:0;min-width:0}.auth-consents>legend{padding:0;margin-bottom:4px;font-size:15px;font-weight:700}.auth-consent{display:grid;gap:4px;padding:12px 14px;border:1px solid var(--border-default);border-radius:12px;background:var(--surface)}.auth-check{display:flex;align-items:center;gap:10px;min-height:44px;font-size:var(--type-body);font-weight:600;cursor:pointer}.auth-check input{width:22px;height:22px;flex-shrink:0;margin:0}.auth-options{display:flex;flex-wrap:wrap;align-items:center;column-gap:20px;margin-top:-6px}.auth-options>.auth-hint{flex-basis:100%;margin-top:-6px}.auth-consent details>summary{display:inline-flex;align-items:center;min-height:44px;font-size:var(--type-sub);font-weight:600;color:var(--brand-point);cursor:pointer}.auth-consent details>p{padding:12px 14px;border-radius:var(--radius-control);background:var(--surface-subtle);font-size:var(--type-sub);line-height:1.75;color:var(--text-body);white-space:pre-line}.auth-back{display:inline-flex;align-items:center;gap:6px;min-height:44px;justify-self:start;color:var(--brand-default);font-size:var(--type-body);font-weight:600;text-decoration:none}.auth-page-title h1{font-size:28px;line-height:1.3;letter-spacing:-.03em;font-weight:700}.auth-page-title p{margin-top:8px;font-size:15px;color:var(--text-secondary)}.auth-section-title{display:flex;align-items:center;flex-wrap:wrap;gap:8px;margin:0 0 18px;font-size:18px;font-weight:700;color:var(--text-strong)}.auth-section-title>.tone{margin-left:auto}.auth-bottom{display:grid;gap:10px;justify-items:center;margin-top:auto;padding-top:8px;text-align:center;color:var(--text-secondary);font-size:var(--type-sub);line-height:1.6}.auth-bottom>p{display:inline-flex;align-items:flex-start;gap:6px;max-width:440px;font-size:var(--type-sub);text-align:left}.auth-bottom>p>svg{margin-top:2px;flex-shrink:0}@media (max-width:600px){.auth-page{padding:16px 16px max(20px,env(safe-area-inset-bottom))}.auth-main,.auth-main.wide{margin:24px auto}.auth-card{padding:26px 20px;border-radius:16px}.auth-heading h1{font-size:24px}.mfa-enroll{grid-template-columns:minmax(0,1fr);justify-items:center}.mfa-manual{width:100%}.auth-summary>div{flex-direction:column;gap:2px}.auth-summary dd{text-align:left}}@media (prefers-reduced-motion:reduce){.auth-button,.auth-reveal{transition:none}}.auth-resident.full{grid-template-columns:minmax(0,6fr) auto minmax(0,7fr)}.auth-resident.full input[type=password]{letter-spacing:.24em}.auth-resident.full input[type=password]::placeholder{letter-spacing:.06em}.auth-summary dd.account-login-id{font-family:ui-monospace,SFMono-Regular,monospace;letter-spacing:.02em}