/* Denobulus Social Auth — one shared, compact provider row (login, registration, checkout, order sidebar).
   Icon-only tiles; names live in aria-label/title. Portal tokens (--dnp-*) drive light/dark, hover and focus.
   The row is sized by its own container: one row of up to six on normal form widths, 3 × 2 when the form is narrow. */
.dnb-sa { container-type: inline-size; display: grid; gap: 0.5rem; margin: 0 0 0.875rem; }
.dnb-sa-label { color: var(--dnp-muted, #64748b); font-size: 0.8125rem; font-weight: 600; text-align: center; line-height: 1.2; }
.dnb-sa-grid { --dnb-sa-n: 6; display: grid; gap: 0.375rem; grid-template-columns: repeat(var(--dnb-sa-n), minmax(0, 1fr)); padding-top: 0.375rem; }
@container (max-width: 300px) { .dnb-sa-grid { grid-template-columns: repeat(min(var(--dnb-sa-n), 3), minmax(0, 1fr)); row-gap: 0.75rem; } }
.dnb-sa-btn {
  position: relative; display: flex; align-items: center; justify-content: center;
  height: 2.5rem; min-width: 0; padding: 0;
  border: 1px solid var(--dnp-border, #d0d7e2); border-radius: 6px;
  background: var(--dnp-surface, #fff); color: var(--dnp-text, #0f172a) !important; text-decoration: none !important;
  transition: background-color .15s ease, border-color .15s ease;
}
a.dnb-sa-btn:hover { background: var(--dnp-raised, #f4f6f9); border-color: var(--dnp-muted, #94a3b8); }
.dnb-sa-btn:focus-visible { outline: 2px solid var(--dnp-focus, #79bbf4); outline-offset: 2px; }
.dnb-sa-icon { display: inline-flex; width: 1.25rem; height: 1.25rem; color: var(--dnp-text, #0f172a); }
.dnb-sa-icon svg { width: 100%; height: 100%; }
/* disabled tiles: no link, muted but recognisable */
.dnb-sa-btn.is-soon, .dnb-sa-btn.is-pending { cursor: not-allowed; background: transparent; }
.dnb-sa-btn.is-soon .dnb-sa-icon, .dnb-sa-btn.is-pending .dnb-sa-icon { filter: grayscale(0.4); opacity: 0.5; }
/* corner badge: sits inside the tile's width (never overflows sideways), lifted over the top border */
.dnb-sa-badge {
  position: absolute; top: -0.4375rem; right: 0.1875rem; z-index: 1;
  padding: 0.0625rem 0.25rem; border-radius: 3px;
  background: #dc2626; color: #fff; font-size: 0.5625rem; font-weight: 700; line-height: 1.25; letter-spacing: 0.05em; text-transform: uppercase;
  box-shadow: 0 0 0 2px var(--dnp-surface, #fff); pointer-events: none; white-space: nowrap;
}
.dnb-sa-badge--setup { background: #b45309; }
.dnb-sa-badge--processing { background: #1d4ed8; }
.dnb-sa-divider { display: flex; align-items: center; gap: 0.75rem; margin: 0.125rem 0 0; color: var(--dnp-muted, #64748b); font-size: 0.8125rem; }
.dnb-sa-divider::before, .dnb-sa-divider::after { content: ""; flex: 1; height: 1px; background: var(--dnp-border, #d0d7e2); }
.dnb-sa-terms { margin: 0; color: var(--dnp-muted, #64748b); font-size: 0.75rem; line-height: 1.4; text-align: center; text-wrap: balance; }
.dnb-sa-terms a { color: inherit; text-decoration: underline; text-underline-offset: 2px; }
.dnb-sa-terms a:hover, .dnb-sa-terms a:focus-visible { color: var(--dnp-text, #0f172a); }
.dnb-sa-preview { padding: 0.375rem 0.625rem; border: 1px dashed #d97706; border-radius: 6px; color: var(--dnp-text, #0f172a); font-size: 0.75rem; background: rgba(217, 119, 6, 0.08); }
/* order sidebar login box */
.dnb-sa--compact { margin: 0.5rem 0 0.75rem; }
.dnb-sa-checkout { max-width: 34rem; margin: 0 auto 1rem; }
@media (prefers-reduced-motion: reduce) { .dnb-sa-btn { transition: none; } }
/* dashboard list (Sign-in methods page) */
.dnb-sa-manage .dnb-sa-icon { width: 1.75rem; height: 1.75rem; }
.dnb-sa-list .list-group-item { gap: 0.875rem; }
.dnb-sa-list .dnb-sa-icon, .dnb-sa-list .btn, .dnb-sa-list form { flex: 0 0 auto; }
.dnb-sa-list .flex-grow-1 { min-width: 0; overflow-wrap: anywhere; }
.dnb-sa-list .is-soon { opacity: 0.7; }
/* The theme's .text-secondary is a pale blue on white in light mode; use the portal's muted ink instead (both themes). */
.dnb-social-page .text-secondary, .dnb-sa-manage .text-secondary { color: var(--dnp-muted, #475569) !important; }
/* "New to Denobulus? Create an account" (login) / "Already have an account? Log in" (free registration page) */
.dnb-sa-register { margin: 0.875rem 0 0; text-align: center; font-size: 0.875rem; color: var(--dnp-muted, #475569); }
.dnb-sa-register a { font-weight: 600; }
.dnb-sa-register--top { margin: 0 0 1rem; }
/* 1.6.0: Terms/Privacy notice above the stock registration template's "Create account" button (no checkbox) */
.dnb-terms-reg { clear: both; margin: 1rem 0 0.75rem; }
.dnb-terms-reg + button[type="submit"] { float: none !important; display: block; width: 100%; }
.dnb-terms-notice { margin: 0; font-size: 0.875rem; line-height: 1.5; color: var(--dnp-text, inherit); text-align: center; text-wrap: pretty; }
.dnb-terms-notice a { color: inherit; font-weight: 600; text-decoration: underline; text-underline-offset: 2px; }
/* 1.8.3: Terms notice on the client-area "Add an add-on" page (above the right-aligned Add button) */
.dnb-terms-addon { clear: both; margin: 0.75rem 0 0.625rem; }
.dnb-terms-addon .dnb-terms-notice { text-align: right; font-size: 0.8125rem; color: var(--dnp-muted, #64748b); }
@media (max-width: 575.98px) { .dnb-terms-addon .dnb-terms-notice { text-align: left; } }
