/* BallotNexus v5.2.4 bridge identity
   Product palette: Midnight Charcoal + Election Teal + Soft Gray + controlled Lime.
   This file intentionally overrides the legacy theme without changing component behavior. */
:root {
  --bnx-charcoal: #111827;
  --bnx-charcoal-soft: #1F2937;
  --bnx-teal: #14B8A6;
  --bnx-teal-strong: #0F766E;
  --bnx-teal-soft: #2DD4BF;
  --bnx-lime: #A3E635;
  --bnx-soft-gray: #F3F4F6;
  --bnx-cloud: #F8FAFC;
  --bnx-white: #FFFFFF;
  --bnx-slate: #64748B;
  --bnx-border: #E2E8F0;
  --bnx-success: #16A34A;
  --bnx-warning: #D97706;
  --bnx-danger: #DC2626;
  --bnx-info: #0284C7;

  --primary: var(--bnx-teal);
  --primary-strong: var(--bnx-teal-strong);
  --primary-soft: var(--bnx-teal-soft);
  --primary-rgb: 20, 184, 166;
  --neutral: var(--bnx-soft-gray);
  --neutral-soft: var(--bnx-cloud);
  --text-main: var(--bnx-charcoal);
  --text-muted: var(--bnx-slate);
  --glass-bg: rgba(248, 250, 252, .88);
  --glass-bg-soft: rgba(248, 250, 252, .72);
  --glass-bg-strong: rgba(255, 255, 255, .96);
  --border-soft: rgba(20, 184, 166, .18);
  --shadow-soft: 0 18px 42px rgba(15, 23, 42, .12);
  --page-bg:
    radial-gradient(circle at 100% 0%, rgba(163, 230, 53, .10), transparent 28%),
    radial-gradient(circle at 0% 0%, rgba(20, 184, 166, .10), transparent 30%),
    linear-gradient(145deg, #F8FAFC, #F3F4F6 56%, #EEF2F7);
}

body {
  background: var(--page-bg) !important;
  color: var(--bnx-charcoal) !important;
}
body::before {
  background-image:
    linear-gradient(rgba(100, 116, 139, .06) 1px, transparent 1px),
    linear-gradient(90deg, rgba(100, 116, 139, .06) 1px, transparent 1px) !important;
  opacity: .45 !important;
}

.main-header .navbar,
.main-header .logo,
.navbar.navbar-static-top {
  background: rgba(17, 24, 39, .97) !important;
  box-shadow: 0 10px 30px rgba(15, 23, 42, .20) !important;
}
.main-header .logo {
  border-right-color: rgba(255, 255, 255, .10) !important;
}
.main-header .logo .brand-icon,
.main-header .logo-mini i,
.entry-brand-mark i {
  color: var(--bnx-teal-soft) !important;
}
.main-header .navbar .nav > li > a:hover,
.main-header .navbar .nav > li > a:focus,
.main-header .navbar .sidebar-toggle:hover {
  background: rgba(20, 184, 166, .12) !important;
}

.main-sidebar,
.left-side {
  background: linear-gradient(180deg, #111827 0%, #172033 62%, #111827 100%) !important;
  border-right: 1px solid rgba(255,255,255,.06) !important;
}
.sidebar-menu > li > a {
  color: #DCE5EE !important;
}
.sidebar-menu > li:hover > a,
.sidebar-menu > li.active > a,
.sidebar-menu > li.menu-open > a {
  background: rgba(20, 184, 166, .14) !important;
  color: #FFFFFF !important;
  box-shadow: inset 3px 0 0 var(--bnx-teal) !important;
}
.sidebar-menu > li.active > a .fa,
.sidebar-menu > li.active > a .glyphicon,
.sidebar-menu > li:hover > a .fa,
.sidebar-menu > li:hover > a .glyphicon {
  color: var(--bnx-lime) !important;
}

.btn-primary {
  background: linear-gradient(135deg, var(--bnx-teal-strong), var(--bnx-teal)) !important;
  color: #FFFFFF !important;
  box-shadow: 0 8px 18px rgba(20, 184, 166, .20) !important;
}
.btn-primary:hover,
.btn-primary:focus {
  background: linear-gradient(135deg, #0B6B64, #0D9488) !important;
}
.btn-success {
  background: linear-gradient(135deg, #15803D, var(--bnx-success)) !important;
  color: #FFFFFF !important;
}
.btn-info {
  background: linear-gradient(135deg, #0369A1, var(--bnx-info)) !important;
  color: #FFFFFF !important;
}
.btn-warning {
  background: linear-gradient(135deg, #B45309, var(--bnx-warning)) !important;
  color: #FFFFFF !important;
}
.btn-danger {
  background: linear-gradient(135deg, #B91C1C, var(--bnx-danger)) !important;
  color: #FFFFFF !important;
}
.btn-default,
.btn-flat {
  background: #FFFFFF !important;
  color: var(--bnx-charcoal) !important;
  border: 1px solid var(--bnx-border) !important;
}
.btn-default:hover,
.btn-flat:hover {
  border-color: rgba(20, 184, 166, .40) !important;
  background: #F8FAFC !important;
}

.form-control,
.select2-container--default .select2-selection--single,
.select2-container--default .select2-selection--multiple {
  background: #FFFFFF !important;
  color: var(--bnx-charcoal) !important;
  border-color: #CBD5E1 !important;
}
.form-control:focus,
.select2-container--default.select2-container--focus .select2-selection--multiple,
.select2-container--default.select2-container--open .select2-selection--single {
  border-color: var(--bnx-teal) !important;
  box-shadow: 0 0 0 3px rgba(20, 184, 166, .14) !important;
}

.main-footer {
  background: #111827 !important;
  border-top: 1px solid rgba(255,255,255,.08) !important;
  color: #E5E7EB !important;
}
.main-footer a,
.modern-footer .footer-right {
  color: #CCFBF1 !important;
}

.auth-brand-badge,
.entry-badge,
.entry-status,
.header-status-dot,
.status-dot {
  accent-color: var(--bnx-teal);
}
.auth-brand-badge,
.entry-badge {
  color: var(--bnx-teal-strong) !important;
  border-color: rgba(20,184,166,.20) !important;
  background: rgba(20,184,166,.08) !important;
}
.entry-brand {
  color: var(--bnx-charcoal) !important;
}
.entry-brand-mark {
  background: var(--bnx-charcoal) !important;
  border-color: rgba(20,184,166,.25) !important;
}

.ballotnexus-hero-mark {
  width: 88px;
  height: 88px;
  margin: 0 auto;
  border-radius: 24px;
  display: grid;
  place-items: center;
  position: relative;
  background: linear-gradient(145deg, #111827, #1F2937);
  border: 1px solid rgba(20,184,166,.22);
  box-shadow: 0 16px 34px rgba(15,23,42,.20);
  color: #FFFFFF;
  overflow: hidden;
}
.ballotnexus-hero-mark::after {
  content: "";
  position: absolute;
  width: 42px;
  height: 42px;
  right: -12px;
  top: -12px;
  border-radius: 50%;
  background: var(--bnx-lime);
  opacity: .92;
}
.ballotnexus-hero-mark i {
  font-size: 34px;
  color: var(--bnx-teal-soft);
  transform: translateY(-5px);
}
.ballotnexus-hero-mark span {
  position: absolute;
  bottom: 10px;
  font-size: 12px;
  font-weight: 800;
  letter-spacing: .18em;
  color: #FFFFFF;
}

/* Dark mode remains charcoal-led while preserving semantic colors. */
html.dark-mode body,
body.dark-mode {
  --page-bg: linear-gradient(145deg, #0B1120, #111827 55%, #172033);
  --text-main: #E5E7EB;
  --text-muted: #94A3B8;
  --glass-bg: rgba(17,24,39,.86);
  --glass-bg-soft: rgba(30,41,59,.72);
  --glass-bg-strong: rgba(17,24,39,.96);
  --border-soft: rgba(45,212,191,.16);
}
