/**
 * DigiBox × Gmingo — cascade overrides (load LAST)
 * Forces primary CTAs, footer, focus, and common hardcode remaps
 * onto the Gmingo brand system without rewriting every rule.
 */

/* ── Primary buttons (marketing + DS) ───────────────── */
.rt-btn-primary,
.rt-btn-primary--lg,
.rt-footer-newsletter__btn,
.db-btn:not(.db-btn--secondary):not(.db-btn--ghost) {
  background: var(--gmingo-primary) !important;
  color: var(--gmingo-text-on-brand) !important;
  border-color: transparent !important;
  box-shadow: var(--gmingo-shadow-cta);
}

.rt-btn-primary:hover,
.rt-btn-primary--lg:hover,
.rt-footer-newsletter__btn:hover,
.db-btn:not(.db-btn--secondary):not(.db-btn--ghost):hover {
  background: var(--gmingo-primary-hover) !important;
  color: var(--gmingo-text-on-brand) !important;
}

.rt-btn-primary:active,
.rt-btn-primary--lg:active,
.db-btn:not(.db-btn--secondary):not(.db-btn--ghost):active {
  background: var(--gmingo-primary-active) !important;
}

.rt-btn-primary:focus-visible,
.db-btn:focus-visible,
.adm-btn:focus-visible,
a:focus-visible,
button:focus-visible,
input:focus-visible,
select:focus-visible,
textarea:focus-visible {
  outline: none;
  box-shadow: var(--gmingo-focus-ring) !important;
}

.rt-btn-ghost {
  color: var(--gmingo-primary);
}

.rt-btn-ghost:hover {
  color: var(--gmingo-primary-hover);
  background: var(--gmingo-surface-soft);
}

.db-btn--secondary {
  background: var(--gmingo-surface) !important;
  border: 1px solid var(--gmingo-border) !important;
  color: var(--gmingo-text) !important;
  box-shadow: none !important;
}

.db-btn--secondary:hover {
  background: var(--gmingo-background) !important;
}

.db-btn--ghost {
  background: transparent !important;
  color: var(--gmingo-primary) !important;
  box-shadow: none !important;
}

.db-btn--ghost:hover {
  background: var(--gmingo-surface-soft) !important;
}

/* Premium gradient CTA utility */
.gmingo-btn-premium,
.rt-btn-premium {
  background: var(--gmingo-gradient-cta) !important;
  color: #fff !important;
  border: none !important;
  box-shadow: var(--gmingo-shadow-cta);
}

/* Success CTA (secondary brand green) */
.gmingo-btn-success,
.db-btn--success,
.adm-btn--success {
  background: var(--gmingo-secondary) !important;
  color: #fff !important;
  border: none !important;
}

.gmingo-btn-success:hover,
.db-btn--success:hover,
.adm-btn--success:hover {
  background: var(--gmingo-secondary-hover) !important;
}

/* ── Header / navigation ────────────────────────────── */
.rt-header,
.rt-header--tiered,
.rt-public-header,
.db-nav,
.db-topbar {
  background: var(--gmingo-surface);
  border-color: var(--gmingo-border);
}

.rt-header a:not(.rt-topbar__link):not(.rt-topbar__social-link):not(.rt-header-cta__btn),
.rt-public-header a:not(.rt-topbar__link):not(.rt-topbar__social-link):not(.rt-header-cta__btn),
.db-nav a {
  color: var(--gmingo-text);
}

.rt-header a:not(.rt-topbar__link):not(.rt-topbar__social-link):not(.rt-header-cta__btn):hover,
.rt-public-header a:not(.rt-topbar__link):not(.rt-topbar__social-link):not(.rt-header-cta__btn):hover,
.db-nav a:hover,
.rt-header a.is-active:not(.rt-topbar__link),
.rt-nav-link.is-active,
.db-nav a[aria-current="page"] {
  color: var(--gmingo-primary);
}

.rt-topbar,
.rt-topbar a:not(.rt-topbar__social-link),
.rt-topbar__item,
.rt-topbar__link {
  color: #fff !important;
}

.rt-topbar__social-link,
.rt-topbar__social-link i {
  color: #1E3A8A !important;
}

.rt-topbar__social-link:hover,
.rt-topbar__social-link:hover i {
  color: #fff !important;
}

.rt-topbar {
  background: var(--gmingo-gradient-topbar);
}

.rt-topbar__social-link {
  background: #fff !important;
  color: #1E3A8A !important;
  box-shadow: 0 2px 8px rgba(15, 23, 42, 0.18);
}

.rt-topbar__social-link i {
  color: #1E3A8A !important;
}

.rt-topbar__social-link:hover {
  background: #2F80ED !important;
  color: #fff !important;
}

.rt-topbar__social-link:hover i {
  color: #fff !important;
}

/* ── Footer ─────────────────────────────────────────── */
.rt-footer,
.db-footer {
  background: var(--gmingo-navy-footer) !important;
  color: var(--gmingo-text-on-dark);
}

.rt-footer h4,
.db-footer h4,
.rt-footer-newsletter__copy h3 {
  color: var(--gmingo-text-on-dark-strong) !important;
}

.rt-footer a,
.db-footer a {
  color: #BFDBFE !important;
}

.rt-footer a:hover,
.db-footer a:hover {
  color: var(--gmingo-white) !important;
}

.rt-footer-newsletter {
  border-color: rgba(47, 128, 237, 0.35);
}

.rt-footer-newsletter__input:focus {
  border-color: var(--gmingo-primary) !important;
  box-shadow: var(--gmingo-focus-ring) !important;
}

/* ── Surfaces / page chrome ─────────────────────────── */
body,
.rt-body,
.adm-body {
  background: var(--gmingo-background);
  color: var(--gmingo-text);
}

.db-card,
.rt-card,
.adm-card,
.adm-panel {
  background: var(--gmingo-surface);
  border-color: var(--gmingo-border);
  box-shadow: var(--gmingo-shadow-sm);
}

/* ── Forms ──────────────────────────────────────────── */
input:not([type="checkbox"]):not([type="radio"]):not([type="range"]):not([type="file"]):not(.db-footer__input),
textarea,
select,
.form-control,
.form-select,
.db-field,
.db-input,
.rt-search input,
.rt-footer-newsletter__input {
  background: var(--gmingo-surface);
  border-color: var(--gmingo-border);
  color: var(--gmingo-text);
}

input::placeholder,
textarea::placeholder,
.form-control::placeholder {
  color: var(--gmingo-text-placeholder);
}

input:hover,
textarea:hover,
select:hover,
.form-control:hover,
.form-select:hover {
  border-color: var(--gmingo-border-strong);
}

input:focus,
textarea:focus,
select:focus,
.form-control:focus,
.form-select:focus,
.db-field:focus,
.db-input:focus {
  border-color: var(--gmingo-primary) !important;
  box-shadow: var(--gmingo-focus-ring) !important;
  outline: none;
}

/* ── Links (content areas; dark surfaces keep local rules) ─ */
.db-section a:not(.db-btn):not(.rt-btn-primary):not(.rt-btn-secondary):not(.rt-btn-ghost):not(.rt-btn-white),
.db-prose a,
.db-card a:not(.db-btn),
.adm-content a:not(.adm-btn):not(.db-btn),
.rt-catalog a:not(.rt-btn-primary):not(.rt-btn-secondary) {
  color: var(--gmingo-primary);
}

.db-section a:not(.db-btn):not(.rt-btn-primary):hover,
.db-prose a:hover,
.db-card a:not(.db-btn):hover,
.adm-content a:not(.adm-btn):hover {
  color: var(--gmingo-primary-hover);
}

/* ── Badges / status ────────────────────────────────── */
.db-badge--success,
.adm-badge--success,
.badge-success {
  color: var(--gmingo-success-text) !important;
  background: var(--gmingo-success-bg) !important;
  border: 1px solid var(--gmingo-success-border) !important;
}

.db-badge--warning,
.adm-badge--warning,
.badge-warning {
  color: var(--gmingo-warning-text) !important;
  background: var(--gmingo-warning-bg) !important;
  border: 1px solid var(--gmingo-warning-border) !important;
}

.db-badge--danger,
.adm-badge--danger,
.badge-danger {
  color: var(--gmingo-danger-text) !important;
  background: var(--gmingo-danger-bg) !important;
  border: 1px solid var(--gmingo-danger-border) !important;
}

.db-badge--info,
.adm-badge--info,
.badge-info {
  color: var(--gmingo-info) !important;
  background: var(--gmingo-info-bg) !important;
  border: 1px solid var(--gmingo-info-border) !important;
}

/* ── Tables ─────────────────────────────────────────── */
table thead,
.adm-table thead,
.db-table thead {
  background: var(--gmingo-background);
  color: var(--gmingo-text);
}

table tbody tr:hover,
.adm-table tbody tr:hover {
  background: var(--gmingo-background);
}

table tbody tr.is-selected,
.adm-table tbody tr.is-selected {
  background: var(--gmingo-surface-soft);
  outline: 1px solid var(--gmingo-border-selected);
}

/* ── Modals / overlays ──────────────────────────────── */
.modal-backdrop,
.db-modal__overlay,
.adm-modal__overlay,
.swal2-container.swal2-backdrop-show {
  background: var(--gmingo-overlay) !important;
}

.modal-content,
.db-modal,
.adm-modal,
.swal2-popup {
  background: var(--gmingo-surface) !important;
  border-color: var(--gmingo-border) !important;
  color: var(--gmingo-text);
}

/* ── Admin sidebar ──────────────────────────────────── */
.adm-sidebar {
  background: var(--gmingo-navy) !important;
}

.adm-sidebar__link.is-active,
.adm-nav-item.is-active,
.adm-sidebar a[aria-current="page"] {
  background: rgba(47, 128, 237, 0.22) !important;
  color: #fff !important;
  box-shadow: inset 3px 0 0 var(--gmingo-primary);
}

/* Light sidebar variant (if present) */
.adm-sidebar--light .adm-sidebar__link.is-active {
  background: var(--gmingo-surface-soft) !important;
  color: var(--gmingo-primary) !important;
}

/* ── Alerts ─────────────────────────────────────────── */
.alert-success,
.db-alert--success {
  background: var(--gmingo-success-bg);
  border-color: var(--gmingo-success-border);
  color: var(--gmingo-success-text);
}

.alert-warning,
.db-alert--warning {
  background: var(--gmingo-warning-bg);
  border-color: var(--gmingo-warning-border);
  color: var(--gmingo-warning-text);
}

.alert-danger,
.db-alert--danger {
  background: var(--gmingo-danger-bg);
  border-color: var(--gmingo-danger-border);
  color: var(--gmingo-danger-text);
}

.alert-info,
.db-alert--info {
  background: var(--gmingo-info-bg);
  border-color: var(--gmingo-info-border);
  color: var(--gmingo-navy);
}

/* ── Profile hero / form chrome ─────────────────────── */
.db-profile__hero {
  background:
    radial-gradient(ellipse at 100% 0%, rgba(47, 128, 237, 0.22), transparent 48%),
    radial-gradient(ellipse at 0% 100%, rgba(255, 143, 61, 0.10), transparent 42%),
    var(--gmingo-gradient-dark) !important;
}

.db-profile__avatar--initials {
  background: var(--gmingo-gradient-cta) !important;
}

.db-profile__avatar-wrap::before {
  border-color: rgba(47, 128, 237, 0.45) !important;
}

/* ── Selection / focus utilities ────────────────────── */
::selection {
  background: var(--gmingo-primary-soft);
  color: var(--gmingo-text);
}

/* Brand preview helpers */
.gmingo-swatch {
  border: 1px solid var(--gmingo-border);
  border-radius: 12px;
  overflow: hidden;
  background: var(--gmingo-surface);
  box-shadow: var(--gmingo-shadow-xs);
}

.gmingo-swatch__chip {
  height: 72px;
}

.gmingo-swatch__meta {
  padding: 0.75rem 1rem;
}

.gmingo-swatch__name {
  font-weight: 700;
  color: var(--gmingo-text);
  font-size: 0.875rem;
}

.gmingo-swatch__hex {
  color: var(--gmingo-text-muted);
  font-size: 0.75rem;
  font-family: ui-monospace, monospace;
}
