/* ===== Global dark theme (high-contrast) ===== */
:root {
  --bg: #0d1117;             /* app background */
  --text: #e6edf3;           /* primary text */
  --muted: #9da5b4;          /* secondary text */
  --card-bg: #1c1f26;        /* cards / panels */
  --card-border: #2b313d;    /* card borders */
  --input-bg: #2b313d;       /* inputs */
  --input-border: #3b4454;   /* input border */
  --input-focus-bg: #333b4a; /* input focus bg */
  --link: #79b8ff;           /* links */
  --link-hover: #b3d4ff;
  --accent: #2f81f7;         /* primary accent (buttons/focus) */
  --accent-hover: #296dd6;
  --danger: #ef4444;

  --table-head-bg: #161b22;
  --table-row-alt: #12161c;
}

/* Base */
body {
  background: var(--bg) !important;
  color: var(--text) !important;
}
a { color: var(--link); }
a:hover { color: var(--link-hover); }

/* Navbar */
.navbar {
  background: #0b1220 !important;
  border-bottom: 1px solid var(--card-border) !important;
}
.navbar-brand { font-weight: 700; letter-spacing: .5px; }

/* Cards */
.card {
  background: var(--card-bg) !important;
  color: var(--text) !important;
  border: 1px solid var(--card-border) !important;
  box-shadow: 0 0 15px rgba(0,0,0,.35);
  border-radius: 1rem;
}

/* Text tones */
label.form-label { color: #d4d7db !important; }
.text-muted, .form-text { color: var(--muted) !important; }

/* Forms */
.form-control,
.form-select {
  background: var(--input-bg) !important;
  color: var(--text) !important;
  border: 1px solid var(--input-border) !important;
}
.form-control::placeholder { color: #b7bfcb !important; }

.form-control:focus,
.form-select:focus {
  background: var(--input-focus-bg) !important;
  color: #fff !important;
  border-color: var(--accent) !important;
  box-shadow: 0 0 0 .2rem rgba(47,129,247,.25) !important;
}

/* Buttons */
.btn-primary {
  background: var(--accent) !important;
  border-color: var(--accent) !important;
  color: #fff !important;
  font-weight: 600;
}
.btn-primary:hover {
  background: var(--accent-hover) !important;
  border-color: var(--accent-hover) !important;
}
.btn-outline-light {
  color: #e8eef7 !important;
  border-color: #5a6573 !important;
}
.btn-outline-danger { border-color: var(--danger) !important; color: #ffd7d7 !important; }
.btn-outline-danger:hover { background: var(--danger) !important; border-color: var(--danger) !important; color: #fff !important; }

/* Tables + DataTables */
.table { color: var(--text) !important; }
.table thead th {
  background: var(--table-head-bg) !important;
  color: var(--text) !important;
  border-bottom: 1px solid var(--card-border) !important;
}
.table-striped > tbody > tr:nth-of-type(odd) > * {
  background: var(--table-row-alt) !important;
}
.dataTables_wrapper .dataTables_paginate .paginate_button { color: #fff !important; }
.dataTables_wrapper .dataTables_length label,
.dataTables_wrapper .dataTables_filter label { color: var(--muted) !important; }

/* Badges */
.badge-role { background:#6b7280; }
.badge-role.admin { background:#2563eb; }
.badge-role.user { background:#10b981; }

/* Misc */
hr { border-color: var(--card-border) !important; }
