/* auth and floating UI */
.auth-modal, .info-modal, .confirm-overlay, .qr-modal {
  position: fixed !important;
  inset: 0 !important;
  z-index: 100 !important;
  display: grid;
  place-items: center;
}
.auth-backdrop, .info-backdrop, .confirm-overlay {
  background: rgba(0, 0, 0, .76) !important;
  backdrop-filter: blur(8px) !important;
}
.auth-dialog, .info-dialog, .confirm-box, .qr-modal-card, .overlay-card {
  border: 1px solid var(--p2-line-strong) !important;
  border-radius: var(--p2-radius-lg) !important;
  background: var(--p2-surface-1) !important;
  color: var(--p2-text) !important;
  box-shadow: var(--p2-shadow-float) !important;
}
.auth-dialog {
  width: min(430px, calc(100% - 28px)) !important;
  max-height: calc(100dvh - 32px);
  overflow: auto;
  padding: 28px !important;
}
.auth-dialog h2 { margin: 14px 0 7px; font-size: 27px !important; }
.auth-close {
  top: 16px !important;
  right: 16px !important;
  display: grid !important;
  place-items: center !important;
  width: 32px !important;
  height: 32px !important;
  border: 1px solid var(--p2-line) !important;
  border-radius: var(--p2-radius) !important;
  background: transparent !important;
  color: var(--p2-muted) !important;
}
.auth-tabs {
  display: grid !important;
  grid-template-columns: 1fr 1fr !important;
  gap: 3px !important;
  margin: 22px 0 16px !important;
  padding: 3px !important;
  border: 1px solid var(--p2-line) !important;
  border-radius: var(--p2-radius) !important;
  background: #0b0b0d !important;
}
.auth-tabs button {
  min-height: 34px !important;
  border: 0 !important;
  border-radius: 6px !important;
  background: transparent !important;
  color: var(--p2-muted) !important;
}
.auth-tabs button.active { background: var(--p2-surface-2) !important; color: var(--p2-text) !important; }
.auth-form { gap: 13px !important; }
.auth-form label { display: grid; gap: 7px; }
.auth-provider {
  min-height: 40px !important;
  border: 1px solid var(--p2-line-default) !important;
  border-radius: var(--p2-radius) !important;
  background: #0c0c0e !important;
  color: var(--p2-text) !important;
  box-shadow: none !important;
}
.auth-provider:hover { border-color: var(--p2-line-strong) !important; background: var(--p2-hover) !important; transform: none !important; }
.auth-divider { color: var(--p2-faint) !important; font: 9px/1 "Geist Mono", monospace !important; letter-spacing: .1em; }
.auth-message { border: 1px solid var(--p2-line-default) !important; border-radius: var(--p2-radius) !important; background: rgba(255,255,255,.025) !important; }
.auth-link { color: var(--p2-copy) !important; }
.info-dialog { overflow: hidden !important; }
.info-dialog header { border-bottom: 1px solid var(--p2-line) !important; background: var(--p2-surface-2) !important; }
.cookie-banner {
  right: max(16px, env(safe-area-inset-right)) !important;
  bottom: max(16px, env(safe-area-inset-bottom)) !important;
  width: min(420px, calc(100% - 32px)) !important;
  padding: 20px !important;
  border: 1px solid var(--p2-line-strong) !important;
  border-radius: var(--p2-radius-lg) !important;
  background: var(--p2-surface-1) !important;
  color: var(--p2-text) !important;
  box-shadow: var(--p2-shadow-float) !important;
}
.toast { border: 1px solid var(--p2-line-strong) !important; border-radius: var(--p2-radius) !important; background: var(--p2-surface-2) !important; color: var(--p2-text) !important; box-shadow: var(--p2-shadow-float) !important; }

