:root{
  --bg: #0F172A;
  --surface: #1E293B;
  --panel: #111827;
  --border: #334155;
  --primary: #6366F1;
  --primary-contrast: #818CF8;
  --success: #22C55E;
  --danger: #EF4444;
  --warning: #F59E0B;
  --text-title: #FFFFFF;
  --text: #E2E8F0;
  --secondary: #CBD5E1;
  --muted: #94A3B8;
  --radius: 10px;
}

/* Base */
body{
  background: var(--bg) !important;
  color: var(--text) !important;
  font-family: Inter, system-ui, -apple-system, 'Segoe UI', Roboto, 'Helvetica Neue', Arial;
  -webkit-font-smoothing:antialiased;
  -moz-osx-font-smoothing:grayscale;
}
a{ color: var(--primary); }

/* Typography hierarchy */
h1, .page-title{ color: var(--text-title); font-weight:700; }
h2, h3, .section-heading{ color: var(--text) }
body, p, td, li, span{ color: var(--text); }
.text-secondary{ color: var(--secondary) !important; }
.text-muted{ color: var(--muted) !important; }

/* Navbar */
.navbar-wrapper, .navbar, nav{
  background: var(--panel) !important;
  border-bottom: 1px solid var(--border);
}
.navbar-wrapper .nav-link, .navbar .nav-link{ color: var(--text) !important; transition: color .12s ease; }
.navbar-wrapper .nav-link:hover, .navbar .nav-link:hover{ color: var(--text-title) !important; }
.navbar-wrapper .active{ background: rgba(129,140,248,0.08); border-radius: 8px; color: var(--primary-contrast) !important; }

/* Cards */
.card{ background: var(--surface); border: 1px solid var(--border); border-radius: var(--radius); color: var(--text); box-shadow: 0 8px 24px rgba(0,0,0,0.25); }
.card .card-body{ padding: 1rem; }

/* Tables: light table surfaces with readable dark text */
.table thead th{ background: #FFFFFF; color: #0F172A; border-bottom: 1px solid rgba(15,23,42,0.06); }
.table tbody, table.dataTable tbody { background: #FFFFFF !important; }
table tbody tr, table.dataTable tbody tr { background: #FFFFFF !important; border-bottom: 1px solid rgba(15,23,42,0.06); }
/* Enforce readable cell text for all table implementations (light table) */
table tbody td, table.dataTable tbody td, .table tbody td, .dataTables_wrapper table.dataTable tbody td, table.dataTable tbody td * {
  color: #0F172A !important;
  opacity: 1 !important;
}
.table tbody tr:hover, table.dataTable tbody tr:hover { background: #F1F5F9 !important; }
.table tbody tr:hover td, table.dataTable tbody tr:hover td { color: #0F172A !important; }

/* Links inside tables */
.table a, table.dataTable a, .dataTables_wrapper a { color: var(--primary); }
.table a:hover, table.dataTable a:hover, .dataTables_wrapper a:hover { color: var(--primary-contrast); }

/* Override muted utility classes inside tables to use readable muted color */
table .text-muted, table .text-secondary, table .muted { color: #64748B !important; opacity: 1 !important; filter: none !important; }
table td, table tr, .dataTables_wrapper table td { opacity: 1 !important; }

/* Specific DataTables row striping overrides (light table) */
table.dataTable tbody tr.odd td, table.dataTable tbody tr.even td { color: #0F172A !important; }
table.dataTable tbody td > * { color: inherit !important; }

/* DataTables specific elements */
.dataTables_wrapper .dataTables_info { color: #E2E8F0 !important; }
.dataTables_wrapper .dataTables_filter label { color: #F8FAFC !important; }
.dataTables_wrapper .dataTables_filter input{ background: #0F172A; border: 1px solid #475569; color: #FFFFFF; }
.dataTables_empty, table.dataTable .dataTables_empty, .dataTables_wrapper table.dataTable tbody td.dataTables_empty { color: #CBD5E1 !important; }

/* Buttons */
.btn-primary{ background: var(--primary); border: none; color: #fff; box-shadow: 0 6px 18px rgba(79,70,229,0.18); }
.btn-primary:hover{ background: var(--primary-contrast); transform: translateY(-1px); }
.btn-outline-primary{ color: var(--primary); border-color: rgba(99,102,241,0.14); background: transparent; }
.btn-secondary{ background: transparent; border: 1px solid var(--border); color: var(--secondary); }
.btn-success{ background: var(--success); color: #072b15; border: none; }
.btn-danger{ background: var(--danger); color: white; border: none; }

/* Forms */
.form-control, .form-select{ background: rgba(255,255,255,0.02); color: var(--text); border: 1px solid var(--border); border-radius: 8px; padding: .5rem .75rem; }
.form-control:focus, .form-select:focus{ box-shadow: 0 8px 20px rgba(99,102,241,0.08); outline: none; border-color: var(--primary-contrast); }
.form-label{ color: var(--secondary); font-weight:600; }
.invalid-feedback{ color: #ffb4b4; }

/* Search box */
.search-input, .dataTables_wrapper .dataTables_filter input{ background: #0F172A !important; color: #FFFFFF !important; border: 1px solid #475569 !important; }

/* Modals */
.modal-backdrop.show{ background: rgba(2,6,23,0.6); }
.modal-content{ background: var(--panel); border: 1px solid var(--border); color: var(--text); border-radius: 12px; box-shadow: 0 12px 36px rgba(0,0,0,0.35); }
.modal-header, .modal-footer{ border:none; }

/* Badges & Alerts */
.badge{ background: rgba(255,255,255,0.04); color: var(--text); }
.alert{ background: rgba(255,255,255,0.02); border: 1px solid rgba(255,255,255,0.02); color: var(--text); }

/* Pagination */
.pagination li a{ color: var(--text); }
.pagination .active a{ background: var(--primary); color: #fff; border-color: var(--primary); }

/* Utilities */
.card-shadow{ box-shadow: 0 8px 24px rgba(0,0,0,0.25); }
.rounded-lg{ border-radius: 14px; }

/* Responsive tweaks */
@media (max-width: 768px){
  .card { padding: .75rem; }
}
