/* ── TorrentDash – Custom Dark Theme ─────────────────────────────── */

:root {
  --bs-body-bg: #0d1117;
  --bs-body-color: #c9d1d9;
  --bs-card-bg: #161b22;
  --bs-card-border-color: #30363d;
  --td-nav-bg: #13191f;
}

body {
  background: var(--bs-body-bg);
  color: var(--bs-body-color);
  font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif;
}

/* ── Navbar ──────────────────────────────────────────────────────── */
#main-nav {
  background: var(--td-nav-bg) !important;
  border-color: #30363d !important;
  box-shadow: 0 1px 8px rgba(0,0,0,.4);
}
#main-nav .navbar-brand {
  color: #e6edf3;
  letter-spacing: -0.5px;
  font-size: 1.15rem;
}
#main-nav .nav-link { color: #8b949e; transition: color .15s; }
#main-nav .nav-link:hover,
#main-nav .nav-link.active { color: #e6edf3; }

/* ── Cards ───────────────────────────────────────────────────────── */
.card {
  background: var(--bs-card-bg);
  border-color: #30363d;
}
.card-header {
  background: rgba(255,255,255,.03);
  border-color: #30363d;
  padding: .75rem 1.25rem;
}

/* ── Stat cards ──────────────────────────────────────────────────── */
.stat-card { transition: transform .15s; }
.stat-card:hover { transform: translateY(-2px); }

.stat-value {
  font-size: 1.75rem;
  font-weight: 700;
  letter-spacing: -0.5px;
  line-height: 1.2;
}

.stat-icon {
  width: 48px;
  height: 48px;
  border-radius: 10px;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 1.25rem;
  flex-shrink: 0;
}

/* ── Tables ──────────────────────────────────────────────────────── */
.table {
  --bs-table-bg: transparent;
  --bs-table-border-color: #30363d;
  --bs-table-hover-bg: rgba(255,255,255,.04);
  color: #c9d1d9;
}
.table thead th {
  color: #8b949e;
  font-size: .8rem;
  text-transform: uppercase;
  letter-spacing: .04em;
  font-weight: 600;
  border-bottom-color: #30363d;
}

/* ── Badges ──────────────────────────────────────────────────────── */
.badge { font-weight: 500; letter-spacing: .02em; }

/* ── Progress bars ───────────────────────────────────────────────── */
.progress { background: rgba(255,255,255,.07); }

/* ── Forms ───────────────────────────────────────────────────────── */
.form-control, .form-select {
  background: #0d1117;
  border-color: #30363d;
  color: #c9d1d9;
}
.form-control:focus, .form-select:focus {
  background: #0d1117;
  border-color: #58a6ff;
  color: #e6edf3;
  box-shadow: 0 0 0 3px rgba(88,166,255,.15);
}
.form-control::placeholder { color: #484f58; }
.input-group-text {
  background: #161b22;
  border-color: #30363d;
  color: #8b949e;
}

/* ── Nav tabs ────────────────────────────────────────────────────── */
.nav-tabs {
  border-color: #30363d;
}
.nav-tabs .nav-link {
  color: #8b949e;
  border-color: transparent;
  border-radius: 6px 6px 0 0;
}
.nav-tabs .nav-link:hover { color: #e6edf3; border-color: transparent; }
.nav-tabs .nav-link.active {
  background: var(--bs-card-bg);
  border-color: #30363d #30363d var(--bs-card-bg);
  color: #e6edf3;
}

/* ── Modals ──────────────────────────────────────────────────────── */
.modal-content {
  background: #161b22;
  border-color: #30363d;
}
.modal-header, .modal-footer { border-color: #30363d; }

/* ── Alerts ──────────────────────────────────────────────────────── */
.alert-success { background: rgba(35,134,54,.15); border-color: #238636; color: #3fb950; }
.alert-danger  { background: rgba(218,55,51,.15);  border-color: #da3633; color: #f85149; }
.alert-warning { background: rgba(187,128,9,.15);  border-color: #9e6a03; color: #e3b341; }
.alert-info    { background: rgba(31,111,235,.15); border-color: #1f6feb; color: #58a6ff; }

/* ── Login / Auth pages ──────────────────────────────────────────── */
.ls-wide { letter-spacing: .25em; }

/* ── QR code ─────────────────────────────────────────────────────── */
.qr-code {
  width: 200px;
  height: 200px;
  object-fit: contain;
  border: 8px solid #fff;
}

/* ── Buttons ─────────────────────────────────────────────────────── */
.btn-primary   { background: #238636; border-color: #2ea043; }
.btn-primary:hover { background: #2ea043; border-color: #3fb950; }

/* ── Scrollbar ───────────────────────────────────────────────────── */
::-webkit-scrollbar { width: 6px; height: 6px; }
::-webkit-scrollbar-track { background: #0d1117; }
::-webkit-scrollbar-thumb { background: #30363d; border-radius: 3px; }
::-webkit-scrollbar-thumb:hover { background: #484f58; }

/* ── Font monospace ──────────────────────────────────────────────── */
.font-monospace { font-size: .85em; }

/* ── Navbar speed pills ──────────────────────────────────────────── */
.speed-pill {
  display: flex;
  align-items: center;
  gap: .45rem;
  padding: .35rem .75rem;
  border-radius: 8px;
  border: 1px solid #30363d;
  background: rgba(255,255,255,.04);
  font-family: ui-monospace, 'Cascadia Code', monospace;
  line-height: 1.1;
  min-width: 110px;
}
.speed-pill > i { font-size: .9rem; flex-shrink: 0; }
.speed-pill-up  > i { color: #3fb950; }
.speed-pill-dn  > i { color: #58a6ff; }
.speed-pill-inner { display: flex; flex-direction: column; }
.speed-pill-label {
  font-size: .6rem;
  letter-spacing: .08em;
  color: #6e7681;
  font-weight: 600;
  text-transform: uppercase;
}
.speed-pill-value {
  font-size: .95rem;
  font-weight: 700;
  color: #e6edf3;
}
