.auth-dialog-overlay {
  position:fixed; inset:0; z-index:var(--layer-overlay); display:flex;
  align-items:center; justify-content:center; padding:var(--space-dialog-pad);
  background:var(--visual-overlay-modal); backdrop-filter:blur(10px); -webkit-backdrop-filter:blur(10px);
}
.auth-dialog-overlay[hidden] { display:none; }
.auth-dialog-provider-list[hidden],
.auth-dialog-divider[hidden],
.auth-dialog-mode-switch[hidden],
.auth-dialog-input[hidden],
.auth-dialog-context[hidden] { display:none; }
.auth-dialog-panel {
  width:min(var(--size-scale-px-408), calc(100vw - var(--space-dialog-pad) - var(--space-dialog-pad)));
  max-height:min(var(--size-scale-px-640), calc(100vh - var(--size-scale-px-48)));
  overflow-x:hidden; overflow-y:auto; border:1px solid var(--border); border-radius:var(--radius-lg);
  background:var(--visual-dialog-surface-soft); box-shadow:var(--shadow-dialog);
}
.auth-dialog-head { display:flex; align-items:flex-start; justify-content:space-between; gap:var(--space-dialog-gap); padding:var(--space-dialog-pad); }
.auth-dialog-heading { min-width:0; display:flex; align-items:center; gap:var(--space-dialog-gap); }
.auth-dialog-logo {
  width:var(--size-dialog-logo); height:var(--size-dialog-logo); border-radius:var(--radius-md);
  display:flex; align-items:center; justify-content:center; flex-shrink:0;
  border:1px solid var(--accent-border-soft); background:var(--bg-card); color:var(--accent);
  box-shadow:var(--shadow-surface-hairline); font-size:var(--type-section); font-weight:900; letter-spacing:-.02em;
}
.auth-dialog-title { color:var(--text-primary); font-size:var(--type-dialog-title); font-weight:850; line-height:var(--leading-title); }
.auth-dialog-sub { display:none; }
.auth-dialog-close {
  width:var(--size-dialog-control); height:var(--size-dialog-control); flex-shrink:0;
  display:inline-flex; align-items:center; justify-content:center; border:1px solid var(--border);
  border-radius:var(--radius-sm); background:var(--bg-surface); color:var(--text-muted);
  font-size:var(--type-dialog-title); line-height:1; cursor:pointer;
}
.auth-dialog-close:hover { color:var(--text-primary); border-color:var(--accent-dim); }
.auth-dialog-body { padding:0 var(--space-dialog-pad) var(--space-dialog-pad); display:grid; gap:var(--space-dialog-gap); }
.auth-dialog-card {
  display:grid; gap:var(--space-scale-px-10); padding:var(--space-scale-px-12);
  border:1px solid var(--border); border-radius:var(--radius-md); background:var(--bg-card);
}
.auth-dialog-provider-list { display:grid; grid-template-columns:1fr; gap:var(--space-scale-px-8); }
.auth-dialog-provider {
  min-height:var(--size-dialog-control); width:100%; border:1px solid var(--border);
  border-radius:var(--radius-md); background:var(--bg-surface); color:var(--text-primary);
  font-size:var(--type-dialog-copy); font-weight:800; display:flex; align-items:center;
  justify-content:center; gap:var(--space-scale-px-9); cursor:pointer;
}
.auth-dialog-provider:hover { border-color:var(--accent-dim); background:var(--accent-soft); }
.auth-dialog-provider:disabled, .auth-dialog-primary:disabled, .auth-dialog-mode-option:disabled { opacity:var(--opacity-disabled); cursor:not-allowed; }
.auth-dialog-provider-mark {
  width:var(--size-scale-px-20); height:var(--size-scale-px-20); border-radius:var(--radius-xs);
  display:flex; align-items:center; justify-content:center; flex-shrink:0;
  color:var(--visual-accent-copy); background:var(--visual-control-wash);
  font-size:var(--type-section); font-weight:850;
}
.auth-dialog-provider--apple .auth-dialog-provider-mark { color:var(--text-primary); font-size:var(--type-value); }
.auth-dialog-divider { display:flex; align-items:center; gap:var(--space-scale-px-10); color:var(--text-muted); font-size:var(--type-kicker); line-height:1; margin:var(--space-scale-px-2) 0 0; }
.auth-dialog-divider::before, .auth-dialog-divider::after { content:""; flex:1; height:var(--size-scale-px-1); background:var(--border); }
.auth-dialog-form, .auth-dialog-field-stack { display:grid; gap:var(--space-scale-px-8); }
.auth-dialog-mode-switch {
  display:grid; grid-template-columns:repeat(3, minmax(0, 1fr)); gap:var(--space-scale-px-3);
  padding:var(--space-scale-px-3); border:1px solid var(--border); border-radius:var(--radius-sm); background:var(--bg-surface);
}
.auth-dialog-mode-option {
  min-height:var(--size-scale-px-44); border:0; border-radius:var(--radius-xs);
  background:transparent; color:var(--text-muted); font-size:var(--type-control); font-weight:800; cursor:pointer;
}
.auth-dialog-mode-option.is-active { background:var(--bg-card); color:var(--text-primary); box-shadow:var(--shadow-border-ring); }
.auth-dialog-input {
  min-height:var(--size-dialog-control); min-width:0; width:100%; border:1px solid var(--border);
  border-radius:var(--radius-sm); background:var(--bg-input); color:var(--text-primary);
  padding:0 var(--space-dialog-pad); outline:none; font-size:var(--type-dialog-copy);
}
.auth-dialog-input:focus { border-color:var(--accent-dim); box-shadow:var(--shadow-disabled-focus); }
.auth-dialog-input:disabled { opacity:var(--opacity-disabled); }
.auth-dialog-context {
  display:grid; gap:var(--space-scale-px-3); padding:var(--space-scale-px-10) var(--space-scale-px-12);
  border:1px solid var(--border); border-radius:var(--radius-sm); background:var(--bg-surface);
}
.auth-dialog-context-kicker { color:var(--text-muted); font-size:var(--type-kicker); font-weight:750; letter-spacing:.08em; text-transform:uppercase; }
.auth-dialog-context-email { color:var(--text-primary); font-size:var(--type-section); line-height:1.35; overflow-wrap:anywhere; }
.auth-dialog-primary {
  width:100%; min-height:var(--size-dialog-control); border:1px solid var(--accent);
  border-radius:var(--radius-sm); background:var(--accent); color:var(--text-on-accent);
  padding:0 var(--space-dialog-pad); font-size:var(--type-control); font-weight:800; cursor:pointer;
}
.auth-dialog-primary:hover:not(:disabled) { background:var(--visual-accent-bright); }
.auth-dialog-note { min-height:var(--size-scale-px-18); margin:0; color:var(--text-muted); font-size:var(--type-dialog-meta); line-height:var(--leading-copy); }
.auth-dialog-note.is-error { color:var(--bad); }
@media (max-width:480px) {
  .auth-dialog-overlay { align-items:flex-end; padding:var(--space-scale-px-12); }
  .auth-dialog-panel { width:100%; max-height:calc(100vh - var(--size-scale-px-24)); }
}
