/* ===================================================================
   Signature Dark — coreX / TiNi #Software
   Dark glassmorphism theme with particle background and glow effects
   =================================================================== */

/* --- Custom Properties --- */
:root {
  --sd-bg:              #0d1117;
  --sd-bg2:             #161b27;
  --sd-bg3:             #1e2535;
  --sd-glass:           rgba(255, 255, 255, 0.04);
  --sd-glass-md:        rgba(255, 255, 255, 0.07);
  --sd-glass-hover:     rgba(255, 255, 255, 0.10);
  --sd-border:          rgba(255, 255, 255, 0.10);
  --sd-border-accent:   rgba(56, 189, 248, 0.35);
  --sd-blur:            14px;
  --sd-text:            #e2e8f0;
  --sd-text-muted:      #94a3b8;
  --sd-text-strong:     #f8fafc;
  --sd-text-dim:        #64748b;
  --sd-accent:          #38bdf8;
  --sd-accent-rgb:      56, 189, 248;
  --sd-accent2:         #818cf8;
  --sd-accent2-rgb:     129, 140, 248;
  --sd-success:         #34d399;
  --sd-warning:         #fbbf24;
  --sd-danger:          #f87171;
  --sd-glow-sm:         0 0 12px rgba(56, 189, 248, 0.25);
  --sd-glow-md:         0 0 24px rgba(56, 189, 248, 0.40);
  --sd-radius:          0.75rem;
  --sd-radius-sm:       0.5rem;
}

/* --- Base --- */
html {
  background: var(--sd-bg);
  color-scheme: dark;
}

body.sd-body {
  --bs-body-bg:              var(--sd-bg);
  --bs-body-color:           var(--sd-text);
  --bs-body-color-rgb:       226, 232, 240;
  --bs-emphasis-color:       var(--sd-text-strong);
  --bs-secondary-color:      var(--sd-text-muted);
  --bs-border-color:         var(--sd-border);
  --bs-link-color:           var(--sd-accent);
  --bs-link-hover-color:     #7dd3fc;
  --bs-link-color-rgb:       var(--sd-accent-rgb);
  /* Bootstrap 5 form variables — override for dark mode */
  --bs-secondary-bg:         var(--sd-bg3);
  --bs-tertiary-bg:          var(--sd-glass);
  --bs-secondary-bg-rgb:     30, 37, 53;
  /* Debug console / code block */
  --dbg-console-bg:          #1e1e2e;
  --dbg-console-fg:          #cdd6f4;
  background: linear-gradient(135deg, #0d1117 0%, #0f172a 50%, #0d1117 100%);
  color: var(--sd-text);
  min-height: 100vh;
  font-family: 'Segoe UI', system-ui, -apple-system, sans-serif;
}

/* --- Particle canvas --- */
#sd-canvas {
  position: fixed;
  inset: 0;
  width: 100%;
  height: 100%;
  z-index: 0;
  pointer-events: none;
  opacity: 0.55;
}

.container-fluid {
  position: relative;
  padding-top: 0.75rem;
}

/* --- Typography --- */
h1, h2, h3, h4, h5, h6,
.h1, .h2, .h3, .h4, .h5, .h6 {
  color: var(--sd-text-strong);
}

a {
  color: var(--sd-accent);
}
a:hover {
  color: #7dd3fc;
}

code {
  color: var(--sd-accent);
  background: rgba(56, 189, 248, 0.10);
  padding: 0.15em 0.4em;
  border-radius: 0.25rem;
  font-size: 0.875em;
}

pre {
  background: var(--sd-bg3);
  color: var(--sd-text);
  border: 1px solid var(--sd-border);
  border-radius: var(--sd-radius-sm);
  padding: 1rem;
}

.text-muted          { color: var(--sd-text-muted)   !important; }
.text-dark           { color: var(--sd-text)          !important; }
.text-body           { color: var(--sd-text)          !important; }
.text-body-secondary { color: var(--sd-text-muted)    !important; }
.text-body-emphasis  { color: var(--sd-text-strong)   !important; }
.text-secondary      { color: var(--sd-text-muted)    !important; }
.text-primary        { color: var(--sd-accent)        !important; }
.text-success        { color: var(--sd-success)       !important; }
.text-warning        { color: var(--sd-warning)       !important; }
.text-danger         { color: var(--sd-danger)        !important; }
.text-info           { color: var(--sd-accent)        !important; }
small, .small        { color: var(--sd-text-muted); }

hr {
  border-color: var(--sd-border);
  opacity: 1;
}

/* --- Navbar --- */
.sd-navbar {
  background: rgba(13, 17, 23, 0.72);
  -webkit-backdrop-filter: blur(var(--sd-blur));
  backdrop-filter: blur(var(--sd-blur));
  border-bottom: 1px solid var(--sd-border);
  position: sticky;
  top: 0;
  z-index: 1040;
  transition: background 0.3s ease, box-shadow 0.3s ease;
}
.sd-navbar.sd-navbar--scrolled {
  background: rgba(13, 17, 23, 0.96);
  box-shadow: 0 4px 30px rgba(0, 0, 0, 0.55);
}

.sd-navbar .navbar-brand,
.sd-navbar .navbar-brand:hover {
  color: var(--sd-text-strong);
}

.sd-navbar .nav-link {
  color: var(--sd-text-muted);
  transition: color 0.2s ease;
  padding: 0.5rem 0.75rem;
}
.sd-navbar .nav-link:hover,
.sd-navbar .nav-link:focus {
  color: var(--sd-accent);
}
.sd-navbar .nav-item.active .nav-link,
.sd-navbar .nav-link.active {
  color: var(--sd-accent);
  text-shadow: 0 0 8px rgba(var(--sd-accent-rgb), 0.5);
}

.sd-navbar .navbar-toggler {
  border-color: var(--sd-border);
}
.sd-navbar .navbar-toggler-icon {
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 30 30'%3E%3Cpath stroke='rgba(226,232,240,0.75)' stroke-width='2' stroke-linecap='round' d='M4 7h22M4 15h22M4 23h22'/%3E%3C/svg%3E");
}

.sd-navbar .dropdown-menu {
  background: rgba(15, 23, 42, 0.94);
  -webkit-backdrop-filter: blur(20px);
  backdrop-filter: blur(20px);
  border: 1px solid var(--sd-border);
  border-radius: var(--sd-radius-sm);
  box-shadow: 0 8px 32px rgba(0, 0, 0, 0.45);
}
.sd-navbar .dropdown-item {
  color: var(--sd-text);
  transition: background 0.15s ease, color 0.15s ease;
}
.sd-navbar .dropdown-item:hover,
.sd-navbar .dropdown-item:focus {
  background: rgba(var(--sd-accent-rgb), 0.12);
  color: var(--sd-accent);
}

/* --- Navbar message button (dark override) --- */
.sd-navbar .corex-nav-msg-btn { color: rgba(226, 232, 240, 0.82); }
.sd-navbar .corex-nav-msg-btn:hover { background: rgba(255, 255, 255, 0.08); color: #e2e8f0; }

/* --- Footer nav --- */
.sd-footer-nav {
  background: rgba(13, 17, 23, 0.88) !important;
  -webkit-backdrop-filter: blur(var(--sd-blur));
  backdrop-filter: blur(var(--sd-blur));
  border-top: 1px solid var(--sd-border) !important;
}
.sd-footer-nav .nav-link {
  color: var(--sd-text-muted);
  transition: color 0.2s ease;
}
.sd-footer-nav .nav-link:hover {
  color: var(--sd-accent);
}
.sd-footer-nav .navbar-brand {
  color: var(--sd-text-strong);
}

/* --- Cards --- */
.card {
  background: var(--sd-glass-md);
  -webkit-backdrop-filter: blur(var(--sd-blur));
  backdrop-filter: blur(var(--sd-blur));
  border: 1px solid var(--sd-border);
  border-radius: var(--sd-radius);
  color: var(--sd-text);
  box-shadow: 0 4px 24px rgba(0, 0, 0, 0.3);
  transition: border-color 0.3s ease, box-shadow 0.3s ease;
}
.card:hover {
  border-color: rgba(var(--sd-accent-rgb), 0.38);
  box-shadow: 0 4px 24px rgba(0, 0, 0, 0.35),
              0 0 22px rgba(var(--sd-accent-rgb), 0.14),
              0 0 48px rgba(var(--sd-accent-rgb), 0.06);
}
.card-header {
  background: rgba(255, 255, 255, 0.04);
  border-bottom: 1px solid var(--sd-border);
  color: var(--sd-text-strong);
}
.card-body  { color: var(--sd-text); }
.card-footer {
  background: rgba(255, 255, 255, 0.02);
  border-top: 1px solid var(--sd-border);
  color: var(--sd-text-muted);
}

/* --- Tables --- */
.table {
  --bs-table-bg:          transparent;
  --bs-table-color:       var(--sd-text);
  --bs-table-border-color: var(--sd-border);
  --bs-table-hover-bg:    rgba(255, 255, 255, 0.04);
  --bs-table-hover-color: var(--sd-text-strong);
  --bs-table-striped-bg:  rgba(255, 255, 255, 0.025);
  --bs-table-striped-color: var(--sd-text);
  color: var(--sd-text);
}
.table thead th {
  color: var(--sd-accent);
  border-bottom: 1px solid var(--sd-border-accent);
  font-weight: 600;
  font-size: 0.82rem;
  letter-spacing: 0.04em;
  text-transform: uppercase;
}
.table td, .table th {
  border-color: var(--sd-border);
  color: var(--sd-text);
}
.table-success {
  --bs-table-bg:    rgba(52, 211, 153, 0.10);
  --bs-table-color: var(--sd-text-strong);
}
.table-warning {
  --bs-table-bg:    rgba(251, 191, 36, 0.10);
  --bs-table-color: var(--sd-text-strong);
}
.table-danger {
  --bs-table-bg:    rgba(248, 113, 113, 0.10);
  --bs-table-color: var(--sd-text-strong);
}

/* --- Forms --- */
.form-control,
.form-select,
.form-control-sm,
.form-select-sm {
  background: rgba(255, 255, 255, 0.06);
  border: 1px solid var(--sd-border);
  color: var(--sd-text);
  border-radius: var(--sd-radius-sm);
  transition: border-color 0.2s ease, box-shadow 0.2s ease;
}
.form-control::placeholder { color: var(--sd-text-dim); }

.form-control:focus,
.form-select:focus,
.form-control-sm:focus,
.form-select-sm:focus {
  background: rgba(255, 255, 255, 0.09);
  border-color: var(--sd-accent);
  color: var(--sd-text-strong);
  box-shadow: 0 0 0 3px rgba(var(--sd-accent-rgb), 0.20);
  outline: none;
}
.form-select option {
  background: var(--sd-bg2);
  color: var(--sd-text);
}
.form-label {
  color: var(--sd-text);
  font-weight: 500;
}
.input-group-text {
  background: rgba(255, 255, 255, 0.06);
  border-color: var(--sd-border);
  color: var(--sd-text-muted);
}

/* --- Buttons --- */
.btn {
  position: relative;
  overflow: hidden;
  transition: box-shadow 0.2s ease, opacity 0.2s ease, transform 0.1s ease;
}
.btn:active { transform: translateY(0) !important; }

.btn-primary {
  background: linear-gradient(135deg, #0ea5e9, #6366f1);
  border: none;
  color: #ffffff;
  box-shadow: var(--sd-glow-sm);
}
.btn-primary:hover, .btn-primary:focus {
  color: #ffffff;
  box-shadow: var(--sd-glow-md);
  opacity: 0.92;
  transform: translateY(-1px);
}

.btn-warning {
  background: rgba(251, 191, 36, 0.12);
  border: 1px solid rgba(251, 191, 36, 0.4);
  color: var(--sd-warning);
}
.btn-warning:hover, .btn-warning:focus {
  background: rgba(251, 191, 36, 0.22);
  color: var(--sd-warning);
  box-shadow: 0 0 16px rgba(251, 191, 36, 0.3);
  transform: translateY(-1px);
}

.btn-secondary {
  background: rgba(255, 255, 255, 0.08);
  border: 1px solid var(--sd-border);
  color: var(--sd-text);
}
.btn-secondary:hover, .btn-secondary:focus {
  background: rgba(255, 255, 255, 0.14);
  color: var(--sd-text-strong);
  border-color: var(--sd-accent);
}

.btn-success {
  background: rgba(52, 211, 153, 0.12);
  border: 1px solid rgba(52, 211, 153, 0.4);
  color: var(--sd-success);
}
.btn-success:hover, .btn-success:focus {
  background: rgba(52, 211, 153, 0.22);
  color: var(--sd-success);
  box-shadow: 0 0 16px rgba(52, 211, 153, 0.3);
  transform: translateY(-1px);
}

.btn-danger {
  background: rgba(248, 113, 113, 0.12);
  border: 1px solid rgba(248, 113, 113, 0.4);
  color: var(--sd-danger);
}
.btn-danger:hover, .btn-danger:focus {
  background: rgba(248, 113, 113, 0.22);
  color: var(--sd-danger);
  box-shadow: 0 0 16px rgba(248, 113, 113, 0.3);
  transform: translateY(-1px);
}

/* Ripple */
.btn .sd-ripple {
  position: absolute;
  border-radius: 50%;
  background: rgba(255, 255, 255, 0.28);
  transform: scale(0);
  animation: sd-ripple 0.55s linear;
  pointer-events: none;
}
@keyframes sd-ripple {
  to { transform: scale(4); opacity: 0; }
}

/* --- Badges --- */
.badge.bg-success {
  background: rgba(52, 211, 153, 0.18) !important;
  color: #6ee7b7 !important;
  border: 1px solid rgba(52, 211, 153, 0.4);
}
.badge.bg-primary {
  background: rgba(var(--sd-accent-rgb), 0.18) !important;
  color: #7dd3fc !important;
  border: 1px solid rgba(var(--sd-accent-rgb), 0.4);
}
.badge.bg-warning {
  background: rgba(251, 191, 36, 0.18) !important;
  color: #fde68a !important;
  border: 1px solid rgba(251, 191, 36, 0.4);
}
.badge.bg-danger {
  background: rgba(248, 113, 113, 0.18) !important;
  color: #fca5a5 !important;
  border: 1px solid rgba(248, 113, 113, 0.4);
}
.badge.bg-secondary {
  background: rgba(255, 255, 255, 0.10) !important;
  color: var(--sd-text-muted) !important;
  border: 1px solid var(--sd-border);
}

/* --- Alerts --- */
.alert { border-radius: var(--sd-radius-sm); }
.alert-success {
  background: rgba(52, 211, 153, 0.10);
  border-color: rgba(52, 211, 153, 0.35);
  color: #6ee7b7;
}
.alert-warning {
  background: rgba(251, 191, 36, 0.10);
  border-color: rgba(251, 191, 36, 0.35);
  color: #fde68a;
}
.alert-danger {
  background: rgba(248, 113, 113, 0.10);
  border-color: rgba(248, 113, 113, 0.35);
  color: #fca5a5;
}
.alert-info {
  background: rgba(var(--sd-accent-rgb), 0.10);
  border-color: rgba(var(--sd-accent-rgb), 0.35);
  color: #7dd3fc;
}

/* --- Modals --- */
.modal-content {
  background: rgba(22, 27, 39, 0.96);
  -webkit-backdrop-filter: blur(20px);
  backdrop-filter: blur(20px);
  border: 1px solid var(--sd-border);
  border-radius: var(--sd-radius);
  color: var(--sd-text);
}
.modal-header {
  border-bottom: 1px solid var(--sd-border);
  color: var(--sd-text-strong);
}
.modal-footer    { border-top: 1px solid var(--sd-border); }
.modal-title     { color: var(--sd-text-strong); }
.btn-close       { filter: invert(1) grayscale(1) brightness(1.5); }

/* --- Dropdowns (outside navbar) --- */
.dropdown-menu {
  background: rgba(22, 27, 39, 0.96);
  -webkit-backdrop-filter: blur(16px);
  backdrop-filter: blur(16px);
  border: 1px solid var(--sd-border);
  color: var(--sd-text);
  box-shadow: 0 8px 32px rgba(0, 0, 0, 0.45);
}
.dropdown-item {
  color: var(--sd-text);
}
.dropdown-item:hover, .dropdown-item:focus {
  background: rgba(var(--sd-accent-rgb), 0.10);
  color: var(--sd-accent);
}
.dropdown-divider { border-color: var(--sd-border); }
.dropdown-header  { color: var(--sd-text-dim); }

/* --- List groups --- */
.list-group-item {
  background: var(--sd-glass);
  border-color: var(--sd-border);
  color: var(--sd-text);
}
.list-group-item:hover {
  background: var(--sd-glass-hover);
  color: var(--sd-text-strong);
}
.list-group-item.active {
  background: rgba(var(--sd-accent-rgb), 0.15);
  border-color: var(--sd-accent);
  color: var(--sd-accent);
}

/* --- Tabs / Pills --- */
.nav-tabs { border-bottom: 1px solid var(--sd-border); }
.nav-tabs .nav-link {
  color: var(--sd-text-muted);
  border: none;
  border-bottom: 2px solid transparent;
  background: transparent;
}
.nav-tabs .nav-link:hover {
  color: var(--sd-accent);
  border-bottom-color: rgba(var(--sd-accent-rgb), 0.4);
}
.nav-tabs .nav-link.active {
  color: var(--sd-accent);
  border-bottom: 2px solid var(--sd-accent);
  background: transparent;
}

.nav-pills .nav-link { color: var(--sd-text-muted); }
.nav-pills .nav-link:hover { background: rgba(255, 255, 255, 0.06); color: var(--sd-text); }
.nav-pills .nav-link.active {
  background: rgba(var(--sd-accent-rgb), 0.18);
  color: var(--sd-accent);
}
.tab-content { color: var(--sd-text); }

/* --- Pagination --- */
.page-item .page-link {
  background: var(--sd-glass);
  border-color: var(--sd-border);
  color: var(--sd-text);
}
.page-item .page-link:hover {
  background: rgba(var(--sd-accent-rgb), 0.12);
  border-color: var(--sd-accent);
  color: var(--sd-accent);
}
.page-item.active .page-link {
  background: var(--sd-accent);
  border-color: var(--sd-accent);
  color: #0d1117;
  font-weight: 600;
}
.page-item.disabled .page-link {
  background: var(--sd-glass);
  border-color: var(--sd-border);
  color: var(--sd-text-dim);
}

/* --- Progress --- */
.progress {
  background: rgba(255, 255, 255, 0.08);
  border-radius: 2rem;
}
.progress-bar {
  background: linear-gradient(90deg, var(--sd-accent), var(--sd-accent2));
  box-shadow: 0 0 8px rgba(var(--sd-accent-rgb), 0.5);
}

/* --- Tooltips --- */
.tooltip .tooltip-inner {
  background: rgba(15, 23, 42, 0.96);
  border: 1px solid var(--sd-border);
  color: var(--sd-text);
}

/* --- coreX admin classes --- */
.corex-admin-hero {
  background: var(--sd-glass);
  -webkit-backdrop-filter: blur(var(--sd-blur));
  backdrop-filter: blur(var(--sd-blur));
  border: 1px solid var(--sd-border);
  border-radius: var(--sd-radius);
  padding: 1.5rem;
  margin-bottom: 1.5rem;
}
.corex-admin-hero h1,
.corex-admin-hero h2,
.corex-admin-hero h3 {
  color: var(--sd-text-strong);
}

.corex-admin-chip-row {
  display: flex;
  flex-wrap: wrap;
  gap: 0.5rem;
  margin-top: 0.75rem;
}
.corex-admin-chip {
  background: rgba(255, 255, 255, 0.07);
  border: 1px solid var(--sd-border);
  color: var(--sd-text);
  border-radius: 2rem;
  padding: 0.25rem 0.75rem;
  font-size: 0.8rem;
}
.corex-admin-chip-ok {
  background: rgba(52, 211, 153, 0.12);
  border-color: rgba(52, 211, 153, 0.35);
  color: #6ee7b7;
}

.corex-admin-table-wrap {
  background: var(--sd-glass);
  -webkit-backdrop-filter: blur(var(--sd-blur));
  backdrop-filter: blur(var(--sd-blur));
  border: 1px solid var(--sd-border);
  border-radius: var(--sd-radius);
  overflow: hidden;
  transition: border-color 0.3s ease, box-shadow 0.3s ease;
}
.corex-admin-table-wrap:hover {
  border-color: rgba(var(--sd-accent-rgb), 0.38);
  box-shadow: 0 4px 24px rgba(0, 0, 0, 0.35),
              0 0 22px rgba(var(--sd-accent-rgb), 0.14),
              0 0 48px rgba(var(--sd-accent-rgb), 0.06);
}
.corex-admin-table-header {
  background: rgba(var(--sd-accent-rgb), 0.08);
  border-bottom: 1px solid var(--sd-border-accent);
  color: var(--sd-accent);
  padding: 0.75rem 1rem;
  font-weight: 600;
  font-size: 0.82rem;
  letter-spacing: 0.05em;
  text-transform: uppercase;
}

/* --- Border utilities --- */
.border        { border-color: var(--sd-border) !important; }
.border-top    { border-top-color:    var(--sd-border) !important; }
.border-bottom { border-bottom-color: var(--sd-border) !important; }

/* --- Scrollbar --- */
::-webkit-scrollbar { width: 8px; height: 8px; }
::-webkit-scrollbar-track { background: var(--sd-bg2); }
::-webkit-scrollbar-thumb {
  background: rgba(255, 255, 255, 0.15);
  border-radius: 4px;
}
::-webkit-scrollbar-thumb:hover {
  background: rgba(var(--sd-accent-rgb), 0.5);
}

/* --- Scroll-reveal --- */
.sd-reveal {
  opacity: 0;
  transform: translateY(18px);
  transition: opacity 0.45s ease, transform 0.45s ease;
}
.sd-reveal.sd-visible {
  opacity: 1;
  transform: translateY(0);
}

/* --- Glow pulse --- */
@keyframes sd-pulse-glow {
  0%, 100% { box-shadow: 0 0 8px rgba(var(--sd-accent-rgb), 0.3); }
  50%       { box-shadow: 0 0 22px rgba(var(--sd-accent-rgb), 0.65); }
}
.sd-glow { animation: sd-pulse-glow 2.5s ease-in-out infinite; }

/* --- Bootstrap background utilities --- */
.bg-white { background: var(--sd-bg3)      !important; color: var(--sd-text); }
.bg-light { background: var(--sd-glass-md) !important; color: var(--sd-text); }

/* --- Cards (scoped + !important overrides Bootstrap 5 card variables) --- */
body.sd-body .card {
  --bs-card-bg:       var(--sd-bg3);
  --bs-card-cap-bg:   rgba(255, 255, 255, 0.04);
  background-color:   var(--sd-bg3)  !important;
  border-color:       var(--sd-border) !important;
  color:              var(--sd-text);
}
body.sd-body .card-header {
  background-color:   rgba(255, 255, 255, 0.04) !important;
  border-color:       var(--sd-border) !important;
  color:              var(--sd-text-strong) !important;
}
body.sd-body .card-footer {
  background-color:   rgba(255, 255, 255, 0.02) !important;
  border-color:       var(--sd-border) !important;
  color:              var(--sd-text-muted) !important;
}
body.sd-body .card-body { color: var(--sd-text); }

/* --- Form validation feedback --- */
.valid-feedback   { color: var(--sd-success); }
.invalid-feedback { color: var(--sd-danger); }

/* --- Admin stat cards (admin_modern.css: bg #fff) --- */
.corex-admin-stat-card {
  background: var(--sd-glass-md) !important;
  border-color: var(--sd-border) !important;
  color: var(--sd-text);
  box-shadow: 0 4px 24px rgba(0, 0, 0, 0.3);
}
.corex-admin-stat-label { color: var(--sd-text-muted)  !important; }
.corex-admin-stat-value { color: var(--sd-text-strong) !important; }

/* --- Admin panel (admin_modern.css: bg #fff) --- */
.corex-admin-panel {
  background: var(--sd-glass-md) !important;
  border-color: var(--sd-border) !important;
  color: var(--sd-text);
}
.corex-admin-panel .card-header {
  background: rgba(255, 255, 255, 0.04) !important;
  border-color: var(--sd-border) !important;
  color: var(--sd-text-strong) !important;
}

/* --- Admin status items (admin_modern.css: color #334155 / #0f172a) --- */
.corex-admin-status-item  { border-bottom-color: var(--sd-border) !important; }
.corex-admin-status-key   { color: var(--sd-text-muted)  !important; }
.corex-admin-status-value { color: var(--sd-text-strong) !important; }

/* --- Menu editor items (admin_modern.css: bg #f8fafc) --- */
.corex-admin-menu-item {
  background: var(--sd-glass) !important;
  border-color: var(--sd-border) !important;
  color: var(--sd-text);
}
.corex-admin-inline-check { color: var(--sd-text-muted) !important; }

.corex-admin-submenu-preview {
  background: var(--sd-glass) !important;
  border-color: var(--sd-border) !important;
  color: var(--sd-text) !important;
}
.corex-admin-submenu-preview:hover {
  border-color: rgba(var(--sd-accent-rgb), 0.5) !important;
  color: var(--sd-accent) !important;
}

/* --- Admin tab nav (admin_modern.css: color #334155, bg #f8fafc) --- */
.corex-admin-tab-nav { border-bottom-color: var(--sd-border) !important; }
.corex-admin-tab-nav .nav-link {
  background: var(--sd-glass) !important;
  border-color: var(--sd-border) !important;
  color: var(--sd-text-muted) !important;
}
.corex-admin-tab-nav .nav-link.active {
  background: rgba(var(--sd-accent-rgb), 0.12) !important;
  border-color: rgba(var(--sd-accent-rgb), 0.4) !important;
  color: var(--sd-accent) !important;
}

/* --- Taskmanager form sections (taskmanager_modern.css: bg #fff, hardcoded colors) --- */
.corex-tm-form-section {
  background: var(--sd-glass-md) !important;
  border-color: var(--sd-border) !important;
}
.corex-tm-form-section-title { color: var(--sd-text-strong) !important; }
.corex-tm-form-section-desc  { color: var(--sd-text-muted)  !important; }
.corex-tm-field label         { color: var(--sd-text-muted)  !important; }

/* --- Admin form labels (admin_modern.css: .corex-admin-subpage .form-label color #334155) --- */
body.sd-body .corex-admin-subpage .form-label,
body.sd-body .corex-admin-label-row .form-label {
  color: var(--sd-text) !important;
}

/* --- Help button (admin_modern.css: color #0ea5e9 — fine on dark, keep) --- */
.corex-admin-help-btn { color: var(--sd-accent); }
.corex-admin-help-btn:hover { color: #7dd3fc; }

/* --- DB integrity / Security badges --- */
.corex-db-badge-warn { background: rgba(251,191,36,0.18); color: var(--sd-warning); }

/* --- SAM Builder cards --- */
.sam-builder-shell .card .card-header {
  background: rgba(255, 255, 255, 0.04) !important;
  color: var(--sd-text-strong) !important;
  border-color: var(--sd-border) !important;
}

/* --- Glyphicon picker (admin_modern.css: bg #fff, color #334155) --- */
.profile-glyphicon-list,
.glyphicon-picker-grid {
  background: var(--sd-bg2) !important;
  border-color: var(--sd-border) !important;
}
.profile-glyphicon-item,
.glyph-pick-item {
  background: var(--sd-glass) !important;
  border-color: var(--sd-border) !important;
  color: var(--sd-text) !important;
}
.profile-glyphicon-item:hover,
.glyph-pick-item:hover {
  background: rgba(var(--sd-accent-rgb), 0.12) !important;
  border-color: rgba(var(--sd-accent-rgb), 0.4) !important;
  color: var(--sd-accent) !important;
}
.profile-glyphicon-item.active,
.glyph-pick-item.active {
  background: rgba(var(--sd-accent-rgb), 0.15) !important;
  border-color: var(--sd-accent) !important;
}

/* --- Forms & Inputs --- */
/* Bootstrap classes — scoped to sd-body for specificity (0,2,1) */
body.sd-body .form-control,
body.sd-body .form-select {
  background-color: var(--sd-bg2) !important;
  border-color: var(--sd-border);
  color: var(--sd-text) !important;
}
body.sd-body .form-control:focus,
body.sd-body .form-select:focus {
  background-color: var(--sd-bg3) !important;
  border-color: var(--sd-border-accent);
  color: var(--sd-text) !important;
  box-shadow: 0 0 0 0.2rem rgba(var(--sd-accent-rgb), 0.18);
}
body.sd-body .form-control::placeholder { color: var(--sd-text-dim); opacity: 1; }
body.sd-body .form-control:disabled,
body.sd-body .form-control[readonly],
body.sd-body .form-select:disabled {
  background-color: var(--sd-glass) !important;
  border-color: var(--sd-border);
  color: var(--sd-text-muted) !important;
  opacity: 0.65;
}
body.sd-body .form-check-input {
  background-color: var(--sd-bg2);
  border-color: rgba(255, 255, 255, 0.25);
}
body.sd-body .form-check-input:checked {
  background-color: var(--sd-accent);
  border-color: var(--sd-accent);
}
body.sd-body .form-check-input:focus {
  border-color: var(--sd-border-accent);
  box-shadow: 0 0 0 0.2rem rgba(var(--sd-accent-rgb), 0.18);
}
body.sd-body .form-check-label { color: var(--sd-text); }
body.sd-body .input-group-text {
  background-color: var(--sd-bg3);
  border-color: var(--sd-border);
  color: var(--sd-text-muted);
}
body.sd-body .form-control-sm,
body.sd-body .form-select-sm { font-size: 0.85rem; }
body.sd-body .form-text { color: var(--sd-text-muted); }
body.sd-body .form-control-plaintext {
  background-color: transparent !important;
  color: var(--sd-text);
}
body.sd-body .form-floating > .form-control::placeholder { color: transparent; }
body.sd-body .form-floating > label { color: var(--sd-text-muted); }

/* --- Native inputs (no Bootstrap class) --- */
body.sd-body input:not([type=button]):not([type=submit]):not([type=reset]):not([type=checkbox]):not([type=radio]):not([type=range]):not([type=file]):not([type=color]),
body.sd-body textarea,
body.sd-body select {
  background-color: var(--sd-bg2) !important;
  border-color: var(--sd-border);
  color: var(--sd-text) !important;
}
body.sd-body input:not([type=button]):not([type=submit]):not([type=reset]):not([type=checkbox]):not([type=radio]):not([type=range]):not([type=file]):not([type=color]):focus,
body.sd-body textarea:focus,
body.sd-body select:focus {
  background-color: var(--sd-bg3) !important;
  border-color: var(--sd-border-accent);
  color: var(--sd-text) !important;
  outline: none;
}
body.sd-body input:disabled,
body.sd-body input[readonly],
body.sd-body textarea:disabled,
body.sd-body textarea[readonly],
body.sd-body select:disabled {
  background-color: var(--sd-glass) !important;
  border-color: var(--sd-border)   !important;
  color: var(--sd-text-muted)      !important;
  opacity: 0.65;
}
body.sd-body input::placeholder,
body.sd-body textarea::placeholder {
  color: var(--sd-text-dim);
  opacity: 1;
}

/* --- Buttons --- */

/* Base: smoother transitions + theme-coloured focus ring */
body.sd-body .btn {
  transition: background-color 0.18s ease, border-color 0.18s ease,
              color 0.18s ease, box-shadow 0.18s ease, transform 0.15s ease;
}
body.sd-body .btn:focus-visible {
  box-shadow: 0 0 0 0.2rem rgba(var(--sd-accent-rgb), 0.30);
  outline: none;
}

/* .btn-secondary — Bootstrap's grey disappears on dark */
body.sd-body .btn-secondary {
  background-color: rgba(255, 255, 255, 0.08);
  border-color: rgba(255, 255, 255, 0.14);
  color: var(--sd-text);
}
body.sd-body .btn-secondary:hover,
body.sd-body .btn-secondary:active,
body.sd-body .btn-secondary.active {
  background-color: rgba(255, 255, 255, 0.14);
  border-color: rgba(255, 255, 255, 0.22);
  color: var(--sd-text-strong);
}
body.sd-body .btn-secondary:disabled,
body.sd-body .btn-secondary.disabled {
  background-color: rgba(255, 255, 255, 0.04);
  border-color: rgba(255, 255, 255, 0.08);
  color: var(--sd-text-muted);
}

/* .btn-light — near-white background, jarring on dark */
body.sd-body .btn-light {
  background-color: rgba(255, 255, 255, 0.12);
  border-color: rgba(255, 255, 255, 0.22);
  color: var(--sd-text-strong);
}
body.sd-body .btn-light:hover,
body.sd-body .btn-light:active,
body.sd-body .btn-light.active {
  background-color: rgba(255, 255, 255, 0.20);
  border-color: rgba(255, 255, 255, 0.35);
  color: #fff;
}
body.sd-body .btn-light:disabled,
body.sd-body .btn-light.disabled {
  background-color: rgba(255, 255, 255, 0.05);
  border-color: rgba(255, 255, 255, 0.10);
  color: var(--sd-text-muted);
}

/* .btn-dark — near-black, invisible on dark background */
body.sd-body .btn-dark {
  background-color: rgba(255, 255, 255, 0.06);
  border-color: rgba(255, 255, 255, 0.18);
  color: var(--sd-text);
}
body.sd-body .btn-dark:hover,
body.sd-body .btn-dark:active,
body.sd-body .btn-dark.active {
  background-color: rgba(255, 255, 255, 0.12);
  border-color: rgba(255, 255, 255, 0.28);
  color: var(--sd-text-strong);
}
body.sd-body .btn-dark:disabled,
body.sd-body .btn-dark.disabled {
  background-color: rgba(255, 255, 255, 0.03);
  border-color: rgba(255, 255, 255, 0.08);
  color: var(--sd-text-muted);
}

/* .btn-outline-dark — dark border invisible on dark background */
body.sd-body .btn-outline-dark {
  border-color: rgba(255, 255, 255, 0.28);
  color: var(--sd-text);
}
body.sd-body .btn-outline-dark:hover,
body.sd-body .btn-outline-dark:active,
body.sd-body .btn-outline-dark.active {
  background-color: rgba(255, 255, 255, 0.10);
  border-color: rgba(255, 255, 255, 0.42);
  color: var(--sd-text-strong);
}

/* .btn-outline-secondary — grey border loses contrast on dark */
body.sd-body .btn-outline-secondary {
  border-color: rgba(255, 255, 255, 0.25);
  color: var(--sd-text-muted);
}
body.sd-body .btn-outline-secondary:hover,
body.sd-body .btn-outline-secondary:active,
body.sd-body .btn-outline-secondary.active {
  background-color: rgba(255, 255, 255, 0.08);
  border-color: rgba(255, 255, 255, 0.38);
  color: var(--sd-text);
}

/* .btn-outline-light — hover fills white on dark, tone it down */
body.sd-body .btn-outline-light:hover,
body.sd-body .btn-outline-light:active,
body.sd-body .btn-outline-light.active {
  background-color: rgba(255, 255, 255, 0.14);
  color: #fff;
}

/* --- Page Debug Widget (page_debug.html) --- */
body.sd-body .page-debug-panel {
  background: var(--sd-bg2) !important;
  border-left-color: var(--sd-border) !important;
  color: var(--sd-text);
}
body.sd-body .page-debug-summary-card {
  background: var(--sd-bg3) !important;
  border-color: var(--sd-border) !important;
  color: var(--sd-text-muted);
}
body.sd-body .page-debug-summary-card strong {
  color: var(--sd-text-strong);
}
body.sd-body .dbg-tab-nav {
  background: var(--sd-bg3) !important;
  border-bottom-color: var(--sd-border) !important;
}
body.sd-body .dbg-tab-btn {
  color: var(--sd-text-muted) !important;
}
body.sd-body .dbg-tab-btn:hover {
  color: var(--sd-text) !important;
  background: rgba(255, 255, 255, 0.05) !important;
}
body.sd-body .dbg-tab-btn.active {
  color: var(--sd-accent) !important;
  border-bottom-color: var(--sd-accent) !important;
}
body.sd-body .dbg-tab-btn .dbg-badge-cnt {
  background: rgba(255, 255, 255, 0.10) !important;
  color: var(--sd-text-muted) !important;
}
body.sd-body .dbg-tab-btn.active .dbg-badge-cnt {
  background: rgba(56, 189, 248, 0.18) !important;
  color: var(--sd-accent) !important;
}
body.sd-body .dbg-toolbar {
  background: var(--sd-bg2) !important;
  border-bottom-color: var(--sd-border) !important;
}
body.sd-body .dbg-search {
  background: var(--sd-bg) !important;
  border-color: var(--sd-border) !important;
  color: var(--sd-text) !important;
}
body.sd-body .dbg-search::placeholder {
  color: var(--sd-text-dim) !important;
}
body.sd-body .dbg-filter-btn {
  background: var(--sd-bg3) !important;
  border-color: var(--sd-border) !important;
  color: var(--sd-text-muted) !important;
}
body.sd-body .dbg-filter-btn:hover,
body.sd-body .dbg-filter-btn.active {
  background: rgba(56, 189, 248, 0.12) !important;
  border-color: rgba(56, 189, 248, 0.35) !important;
  color: var(--sd-accent) !important;
}
body.sd-body .page-debug-entry {
  background: var(--sd-bg3) !important;
  border-color: var(--sd-border) !important;
}
body.sd-body .page-debug-entry:hover {
  background: rgba(255, 255, 255, 0.05) !important;
}
/* .page-debug-pre is already dark (#0f172a) — no override needed */
body.sd-body .dbg-err-nav {
  background: rgba(248, 113, 113, 0.08) !important;
  border-color: rgba(248, 113, 113, 0.25) !important;
  color: var(--sd-danger) !important;
}
body.sd-body .dbg-err-nav-btn {
  background: rgba(248, 113, 113, 0.12) !important;
  border-color: rgba(248, 113, 113, 0.30) !important;
  color: var(--sd-danger) !important;
}
body.sd-body .page-debug-entry.dbg-err-focus {
  background: rgba(248, 113, 113, 0.06) !important;
  border-color: rgba(248, 113, 113, 0.40) !important;
}

/* --- Profile Module --- */
body.sd-body .profile-page {
  --profile-bg-soft:       var(--sd-bg2);
  --profile-bg-contrast:   var(--sd-bg3);
  --profile-surface:       var(--sd-bg3);
  --profile-border:        var(--sd-border);
  --profile-text:          var(--sd-text-strong);
  --profile-muted:         var(--sd-text-muted);
  --profile-accent-soft:   rgba(56, 189, 248, 0.12);
  --profile-success-soft:  rgba(52, 211, 153, 0.10);
}

body.sd-body .profile-page::before {
  background:
    radial-gradient(circle at 7% 8%, rgba(56, 189, 248, 0.06), transparent 35%),
    radial-gradient(circle at 92% 16%, rgba(52, 211, 153, 0.06), transparent 34%),
    radial-gradient(circle at 50% 100%, rgba(255, 255, 255, 0.02), transparent 46%),
    linear-gradient(155deg, var(--sd-bg2), var(--sd-bg3)) !important;
}

body.sd-body .profile-shell .card,
body.sd-body .profile-hero.card {
  background: var(--sd-bg3) !important;
  border-color: var(--sd-border) !important;
  box-shadow: 0 14px 34px rgba(0, 0, 0, 0.5) !important;
}

body.sd-body .profile-form-surface {
  background: var(--sd-bg2) !important;
  border-color: var(--sd-border) !important;
}

body.sd-body .profile-field-row {
  border-bottom-color: var(--sd-border) !important;
}

body.sd-body .profile-field-label {
  color: var(--sd-text-strong) !important;
}

body.sd-body .profile-readonly-value {
  background: var(--sd-bg) !important;
  border-color: var(--sd-border) !important;
  color: var(--sd-text) !important;
}

body.sd-body .profile-nav .nav-link {
  color: var(--sd-text-muted) !important;
}
body.sd-body .profile-nav .nav-link:hover {
  background: var(--sd-glass-md) !important;
  color: var(--sd-text) !important;
}
body.sd-body .profile-nav .nav-link.active {
  background: rgba(56, 189, 248, 0.12) !important;
  color: var(--sd-text-strong) !important;
  box-shadow: inset 0 0 0 1px rgba(56, 189, 248, 0.25),
              0 8px 15px rgba(56, 189, 248, 0.08) !important;
}
body.sd-body .profile-nav .nav-link .glyphicons         { color: var(--sd-accent) !important; }
body.sd-body .profile-nav .nav-link.active .glyphicons  { color: var(--sd-accent) !important; }

body.sd-body .profile-tab-header h4 { color: var(--sd-text-strong) !important; }
body.sd-body .profile-tab-header p  { color: var(--sd-text-muted) !important; }

body.sd-body .profile-visibility-box {
  background: rgba(56, 189, 248, 0.03) !important;
  border-top-color: var(--sd-border) !important;
}

body.sd-body .profile-password-accordion .accordion-item {
  border-color: var(--sd-border) !important;
}
body.sd-body .profile-password-accordion .accordion-button {
  background: var(--sd-bg2) !important;
  color: var(--sd-text-strong) !important;
}
body.sd-body .profile-password-accordion .accordion-button:not(.collapsed) {
  background: rgba(56, 189, 248, 0.10) !important;
  color: var(--sd-text-strong) !important;
  box-shadow: none !important;
}
body.sd-body .profile-password-accordion .accordion-body {
  background: var(--sd-bg3) !important;
}

body.sd-body .profile-rendered-wrapper {
  background: var(--sd-bg2) !important;
  border-color: var(--sd-border) !important;
}

body.sd-body .profile-submit-note,
body.sd-body .profile-field-help    { color: var(--sd-text-muted) !important; }

body.sd-body .profile-logins-table tbody tr:hover { background-color: var(--sd-glass-md) !important; }

body.sd-body .profile-avatar-card {
  background: var(--sd-bg3) !important;
  border-color: var(--sd-border) !important;
}

/* img-thumbnail in dark mode */
body.sd-body .img-thumbnail {
  background-color: var(--sd-bg3) !important;
  border-color: var(--sd-border) !important;
}

/* .text-bg-light badge on dark (used in loginForm) */
body.sd-body .text-bg-light {
  background-color: var(--sd-bg3) !important;
  color: var(--sd-text) !important;
}

/* Login form card */
body.sd-body .form-floating > label { color: var(--sd-text-muted); }
