/* Customer account forms. Uses the existing Veil design tokens. */
.ca-page { background:var(--kt-bg); color:var(--kt-text); }
.ca-page .kt-auth { display:grid; grid-template-columns:minmax(0,1.1fr) minmax(0,.9fr); min-height:100svh; }
.ca-page .kt-auth-art { position:relative; overflow:hidden; background:var(--kt-bg); border-right:1px solid var(--kt-border); }
.ca-page .kt-auth-art > img { position:absolute; inset:0; width:100%; height:100%; object-fit:cover; object-position:72% center; }
.ca-page .kt-auth-art::after { content:''; position:absolute; inset:0; background:linear-gradient(180deg,rgba(8,7,11,.4),transparent 40%,var(--kt-bg)); }
.ca-page .kt-auth-brand { position:absolute; left:40px; top:32px; z-index:1; }
.ca-page .kt-auth-brand img { width:128px; height:74px; object-fit:contain; }
.ca-page .kt-auth-statement { position:absolute; z-index:1; left:clamp(28px,4vw,64px); right:30px; bottom:clamp(40px,8vh,90px); }
.ca-page .kt-auth-statement > span { display:block; color:var(--kt-accent); font:500 10px/1.6 var(--kt-font-mono); letter-spacing:.15em; margin-bottom:20px; }
.ca-page .kt-auth-statement h2 { font-family:var(--kt-font-display); font-size:clamp(42px,4.5vw,70px); line-height:1.02; font-weight:500; letter-spacing:-.06em; margin:0 0 20px; }
.ca-page .kt-auth-statement h2 em { color:var(--kt-accent); font-style:normal; }
.ca-page .kt-auth-statement p { color:var(--kt-muted); font-size:14px; line-height:1.7; max-width:36ch; }
.ca-page .kt-auth-form { display:flex; align-items:center; justify-content:center; padding:100px 32px 64px; position:relative; background:radial-gradient(ellipse at top right,var(--kt-light),transparent 55%); }
.ca-page .kt-auth-back { position:absolute; top:32px; right:34px; min-height:44px; display:inline-flex; align-items:center; gap:16px; color:var(--kt-muted); font:500 11px var(--kt-font-mono); text-decoration:none; }
.ca-page .auth-shell { width:100%; max-width:410px; }
.ca-eyebrow { color:var(--kt-accent); font:500 10px/1.6 var(--kt-font-mono); letter-spacing:.14em; margin:0 0 16px; }
.ca-page .auth-h1 { font:500 clamp(34px,3.4vw,48px)/1.08 var(--kt-font-display); letter-spacing:-.055em; margin:0 0 14px; text-wrap:balance; }
.ca-page .auth-sub { color:var(--kt-muted); font-size:14px; line-height:1.75; margin:0 0 26px; }
.ca-announcement { padding:12px 24px; background:var(--kt-light); border-bottom:1px solid var(--kt-border); font-size:13px; line-height:1.5; text-align:center; }
.ca-mode-switch { display:flex; gap:6px; padding:4px; margin:0 0 26px; border:1px solid var(--kt-border); border-radius:12px; background:var(--kt-glass-raised); }
.ca-mode-switch button { flex:1; min-height:44px; padding:10px 14px; border:1px solid transparent; border-radius:8px; background:transparent; color:var(--kt-muted); font-size:13px; font-weight:600; }
.ca-mode-switch button[aria-pressed="true"] { background:var(--kt-light); border-color:var(--kt-border-active); color:var(--kt-text); }
.ca-field { margin:0 0 18px; }
.ca-field > label { display:block; color:var(--kt-text); font-size:16px; font-weight:500; margin-bottom:9px; }
.ca-input { display:block; width:100%; min-height:52px; padding:13px 15px; color:var(--kt-text); background:var(--kt-glass-raised); border:1px solid var(--kt-border); border-radius:10px; font:400 16px/1.5 var(--kt-font-body); transition:border-color 160ms ease,background-color 160ms ease; }
.ca-input:hover { border-color:var(--kt-border-active); }
.ca-input:focus-visible { border-color:var(--kt-accent); outline:2px solid var(--kt-accent); outline-offset:3px; }
.ca-input[readonly] { color:var(--kt-muted); background:transparent; }
.ca-input[aria-invalid="true"] { border-color:var(--kt-error); }
.ca-password { position:relative; }
.ca-password .ca-input { padding-right:76px; }
.ca-password > button { position:absolute; top:4px; right:5px; min-width:60px; min-height:44px; border:0; border-radius:7px; background:transparent; color:var(--kt-muted); font-size:12px; }
.ca-password > button:hover { background:var(--kt-light); color:var(--kt-text); }
.ca-help { color:var(--kt-muted); font-size:12px; line-height:1.65; margin:9px 0 0; }
.ca-panel-intro { color:var(--kt-muted); font-size:13px; line-height:1.7; margin:0 0 20px; }
.ca-form-links { display:flex; justify-content:flex-end; margin:-6px 0 12px; }
.ca-text-button,.ca-text-link { display:inline-flex; align-items:center; gap:10px; min-height:44px; padding:8px 0; color:var(--kt-accent); background:none; border:0; font-size:12px; text-decoration:none; }
.ca-text-button:hover,.ca-text-link:hover { text-decoration:underline; text-underline-offset:4px; }
.ca-submit { width:100%; display:inline-flex; justify-content:center; align-items:center; min-height:52px; padding:14px 20px; border:1px solid var(--kt-border-active); border-radius:10px; background:var(--kt-accent); color:var(--kt-bg); font:600 14px/1.5 var(--kt-font-body); box-shadow:0 8px 30px var(--kt-light); }
.ca-submit:hover:not(:disabled) { box-shadow:var(--kt-glow); }
.ca-submit:disabled { opacity:.55; cursor:wait; }
[data-auth-form][aria-busy="true"] .ca-submit { opacity:.7; }
.ca-feedback,.ca-notice { margin:0 0 18px; padding:13px 15px; border:1px solid var(--kt-border-active); border-radius:10px; background:var(--kt-light); color:var(--kt-text); font-size:13px; line-height:1.65; overflow-wrap:anywhere; }
.ca-feedback--error,.ca-feedback[data-kind="error"],.ca-feedback[role="alert"] { border-color:var(--kt-error); color:var(--kt-error); background:rgba(255,93,122,.07); }
.ca-verify { display:inline-flex; align-items:center; min-height:44px; color:var(--kt-accent); font-size:13px; margin-bottom:14px; }
.ca-divider { display:flex; align-items:center; gap:14px; margin:25px 0 18px; color:var(--kt-muted); font-size:11px; }
.ca-divider::before,.ca-divider::after { content:''; flex:1; height:1px; background:var(--kt-border); }
.ca-alternatives,.ca-recovery-links { display:flex; gap:12px; }
.ca-alternative { flex:1; display:inline-flex; justify-content:center; align-items:center; gap:12px; min-height:48px; padding:12px 16px; border:1px solid var(--kt-border); border-radius:10px; background:var(--kt-glass-raised); color:var(--kt-text); font-size:13px; font-weight:500; line-height:1.5; text-align:center; text-decoration:none; }
.ca-alternative:hover { border-color:var(--kt-border-active); background:var(--kt-light); }
.ca-account-note { margin-top:16px; }
.ca-page .auth-footer-links { display:flex; gap:26px; margin-top:28px; padding-top:18px; border-top:1px solid var(--kt-border); }
.ca-page .auth-footer-links a { display:inline-flex; align-items:center; min-height:44px; color:var(--kt-muted); font-size:12px; text-decoration:none; }
.ca-section-title { font:500 19px/1.35 var(--kt-font-display); letter-spacing:-.025em; color:var(--kt-text); margin:0 0 12px; }
.ca-settings { color:var(--kt-text); border:1px solid var(--kt-border); background:var(--kt-panel); border-radius:16px; padding:28px; font-family:var(--kt-font-body); }
.theme-light .ca-settings { --kt-bg:var(--bg-app); --kt-panel:var(--surface-1); --kt-text:var(--text-main); --kt-muted:var(--text-muted); --kt-border:var(--hairline); --kt-accent:var(--accent-alt); --kt-error:var(--c-err); --kt-glass-raised:var(--surface-2); }
.ca-settings-header { display:flex; justify-content:space-between; align-items:flex-start; gap:24px; margin-bottom:14px; }
.ca-settings-header .ca-eyebrow { margin-bottom:8px; }
.ca-settings-header h3 { font:500 25px/1.2 var(--kt-font-display); letter-spacing:-.035em; margin:0; }
.ca-settings-header .ca-text-link { min-width:fit-content; font-size:11px; }
.ca-methods { border:1px solid var(--kt-border); border-radius:10px; padding:14px 16px; color:var(--kt-muted); font-size:13px; line-height:1.7; }
.ca-methods p { margin:0; }
.ca-settings-rule { height:1px; background:var(--kt-border); margin:24px 0; }
.ca-recovery-option { padding:14px 16px; border:1px solid var(--kt-border); border-radius:10px; margin-bottom:20px; background:var(--kt-glass-raised); }
.ca-checkbox { display:flex; gap:12px; align-items:flex-start; min-height:44px; font-size:13px; line-height:1.6; cursor:pointer; }
.ca-checkbox input { accent-color:var(--kt-accent); width:18px; height:18px; margin:2px 0 0; flex:0 0 auto; }
.ca-inline-links { display:flex; flex-wrap:wrap; gap:8px 20px; margin-top:8px; }
.ca-inline-links a { min-height:44px; display:inline-flex; align-items:center; color:var(--kt-accent); font-size:12px; }
.ca-passkey-row { display:flex; gap:24px; align-items:center; }
.ca-passkey-row > div { flex:1; }
.ca-passkey-row .ca-alternative { flex:0 0 auto; }
.ca-passkey-row .ca-section-title { margin-bottom:6px; }
.ca-empty-settings { margin-top:36px; scroll-margin-top:28px; }
.ca-empty-settings .ca-settings { max-width:760px; }
@media (max-width:1100px) { .ca-page .kt-auth { grid-template-columns:minmax(0,.85fr) minmax(0,1.15fr); } }
@media (max-width:760px) {
  .ca-page .kt-auth { grid-template-columns:1fr; }
  .ca-page .kt-auth-art { min-height:210px; border-right:0; border-bottom:1px solid var(--kt-border); }
  .ca-page .kt-auth-art > img { object-position:75% 40%; }
  .ca-page .kt-auth-brand { left:24px; top:12px; }
  .ca-page .kt-auth-brand img { width:96px; height:64px; }
  .ca-page .kt-auth-statement { left:26px; bottom:24px; }
  .ca-page .kt-auth-statement > span { font-size:8px; margin-bottom:10px; }
  .ca-page .kt-auth-statement h2 { font-size:35px; margin:0; }
  .ca-page .kt-auth-statement p { display:none; }
  .ca-page .kt-auth-form { padding:76px 26px 36px; }
  .ca-page .kt-auth-back { top:14px; right:26px; }
  .ca-settings { padding:22px; }
  .ca-settings-header,.ca-passkey-row { flex-direction:column; gap:14px; }
  .ca-passkey-row .ca-alternative { width:100%; }
  .ca-recovery-links { flex-direction:column; }
}
@media (prefers-reduced-motion:reduce) { .ca-input { transition:none; } }
