/* ============================================================
   ArbitrageBot — modern dark-fintech theme
   Loaded AFTER Bootstrap + inline styles, so it overrides them.
   ============================================================ */
:root {
  --bg-0:#0b1020;
  --bg-1:#0f172a;
  --bg-2:#151f38;
  --panel:#111a30;
  --panel-2:#0e1729;
  --border:#233150;
  --text:#e6ecf7;
  --muted:#93a2c0;
  --brand:#6366f1;
  --brand-2:#8b5cf6;
  --accent:#22d3ee;
  --green:#10b981;
  --red:#ef4444;
  --shadow:0 10px 30px rgba(0,0,0,.35);
  --radius:16px;
}

* { box-sizing:border-box; }

html,body { height:100%; }
body {
  margin:0;
  font-family:'Inter',system-ui,-apple-system,Segoe UI,Roboto,sans-serif !important;
  color:var(--text);
  background:
    radial-gradient(1200px 600px at 100% -10%, rgba(99,102,241,.18), transparent 60%),
    radial-gradient(900px 500px at -10% 110%, rgba(34,211,238,.12), transparent 60%),
    linear-gradient(180deg,var(--bg-0),var(--bg-1)) !important;
  background-attachment:fixed;
  -webkit-font-smoothing:antialiased;
  letter-spacing:.1px;
}

h1,h2,h3,h4,h5,h6 { color:var(--text); font-weight:700; }
a { color:var(--accent); text-decoration:none; }
a:hover { color:#7dd3fc; }
.text-muted { color:var(--muted) !important; }
small.text-muted { color:var(--muted) !important; }

/* ---------- Sidebar ---------- */
.sidebar {
  background:linear-gradient(180deg,#0d1428 0%,#0a1122 100%) !important;
  border-right:1px solid var(--border);
  min-height:100vh;
}
.sidebar h4 { color:#fff; font-weight:800; letter-spacing:.3px; }
.sidebar h4 .bi { color:var(--brand); margin-right:6px; }
.sidebar .nav-link {
  color:#c7d2e8; padding:11px 14px; margin:3px 4px; border-radius:10px;
  display:flex; align-items:center; gap:10px; font-weight:500;
  transition:background .18s ease,color .18s ease,transform .18s ease;
}
.sidebar .nav-link .bi { font-size:1.05rem; width:20px; text-align:center; opacity:.85; }
.sidebar .nav-link:hover { background:rgba(99,102,241,.14); color:#fff; transform:translateX(2px); }
.sidebar .nav-link.active {
  background:linear-gradient(90deg,rgba(99,102,241,.35),rgba(139,92,246,.18));
  color:#fff; box-shadow:inset 0 0 0 1px rgba(139,92,246,.35);
}
.sidebar hr { border-color:rgba(255,255,255,.12); margin:12px 0; }

/* ---------- Cards ---------- */
.card {
  background:linear-gradient(180deg,var(--panel),var(--panel-2)) !important;
  border:1px solid var(--border) !important;
  border-radius:var(--radius) !important;
  box-shadow:var(--shadow);
  color:var(--text);
}
.card .card-body { color:var(--text); }
.card-header {
  background:transparent !important; border-bottom:1px solid var(--border) !important;
  font-weight:700; color:var(--text);
}
.stat-card {
  background:linear-gradient(180deg,var(--panel),var(--panel-2)) !important;
  border:1px solid var(--border) !important; border-radius:var(--radius);
  box-shadow:var(--shadow); padding:20px; transition:transform .2s ease,box-shadow .2s ease;
}
.stat-card:hover { transform:translateY(-4px); box-shadow:0 16px 40px rgba(0,0,0,.45); }
.stat-card .label { color:var(--muted); font-size:.8rem; text-transform:uppercase; letter-spacing:.6px; }
.stat-card .value { font-size:1.6rem; font-weight:800; }
.opportunity-card {
  border:1px solid var(--border) !important; border-left:4px solid var(--green) !important;
  background:linear-gradient(180deg,#0e2018,#0b1712) !important; border-radius:12px;
  color:#d1fae5; padding:16px; box-shadow:var(--shadow);
}

/* ---------- Buttons ---------- */
.btn { border-radius:10px; font-weight:600; padding:.55rem 1.05rem; transition:transform .12s ease,box-shadow .2s ease,filter .2s; }
.btn:active { transform:translateY(1px); }
.btn-lg { border-radius:12px; }
.btn-primary {
  background:linear-gradient(90deg,var(--brand),var(--brand-2)) !important;
  border:none !important; box-shadow:0 8px 20px rgba(99,102,241,.35);
}
.btn-primary:hover { filter:brightness(1.08); box-shadow:0 10px 26px rgba(99,102,241,.5); }
.btn-success { background:linear-gradient(90deg,#059669,var(--green)) !important; border:none !important; }
.btn-danger { background:linear-gradient(90deg,#dc2626,var(--red)) !important; border:none !important; }
.btn-secondary,.btn-outline-secondary {
  background:#1b2743 !important; color:#c7d2e8 !important; border:1px solid var(--border) !important;
}
.btn-outline-primary { color:var(--brand) !important; border:1px solid var(--brand) !important; }
.btn-outline-primary:hover { background:var(--brand) !important; color:#fff !important; }
.btn-close { filter:invert(1) grayscale(1) brightness(1.6); }

/* ---------- Forms ---------- */
.form-control,.form-select,input,textarea {
  background:#0c1526 !important; border:1px solid var(--border) !important;
  color:var(--text) !important; border-radius:10px; padding:.6rem .85rem;
}
.form-control:focus,.form-select:focus,input:focus,textarea:focus {
  background:#0c1526 !important; color:var(--text) !important;
  border-color:var(--brand) !important;
  box-shadow:0 0 0 .2rem rgba(99,102,241,.25) !important;
}
.form-label { color:var(--muted); font-weight:600; font-size:.85rem; }
::placeholder { color:#5f6f8f !important; }

/* ---------- Tables ---------- */
.table { color:var(--text) !important; }
.table thead th {
  background:#0c1526 !important; color:var(--muted) !important;
  text-transform:uppercase; font-size:.75rem; letter-spacing:.6px; border-bottom:1px solid var(--border) !important;
}
.table tbody tr { border-bottom:1px solid rgba(35,49,80,.6); }
.table tbody tr:hover { background:rgba(99,102,241,.06); }
.table-striped tbody tr:nth-of-type(odd) { background:rgba(255,255,255,.02); }
.table>:not(caption)>*>* { background:transparent !important; color:var(--text); }

/* ---------- Alerts / badges ---------- */
.alert { border:1px solid var(--border); border-radius:12px; color:var(--text); background:#12203a; }
.alert-success { background:rgba(16,185,129,.12); border-color:rgba(16,185,129,.4); color:#a7f3d0; }
.alert-danger { background:rgba(239,68,68,.12); border-color:rgba(239,68,68,.4); color:#fecaca; }
.alert-warning { background:rgba(245,158,11,.12); border-color:rgba(245,158,11,.4); color:#fde68a; }
.alert-info { background:rgba(34,211,238,.12); border-color:rgba(34,211,238,.4); color:#bae6fd; }
.badge { border-radius:8px; font-weight:600; padding:.4em .6em; }
.bg-success { background:var(--green) !important; }
.bg-danger { background:var(--red) !important; }
.text-success { color:#34d399 !important; }
.text-danger { color:#f87171 !important; }
.text-primary { color:#a5b4fc !important; }
.profit-positive { color:#34d399 !important; font-weight:700; }
.profit-negative { color:#f87171 !important; font-weight:700; }

/* ---------- Code / lists ---------- */
code { color:#7dd3fc; background:rgba(34,211,238,.08); padding:.1em .35em; border-radius:6px; }
.list-group-item { background:var(--panel) !important; color:var(--text) !important; border-color:var(--border) !important; }

/* ---------- Logged-out auth pages (login/setup): center as a hero card ---------- */
body:not(.authed) .container { max-width:640px; padding-top:6vh; }

/* ---------- Floating theme toggle ---------- */
.theme-toggle {
  position:fixed; right:18px; bottom:18px; z-index:1050;
  width:44px; height:44px; border-radius:50%; border:1px solid var(--border);
  background:linear-gradient(180deg,var(--brand),var(--brand-2)); color:#fff;
  box-shadow:var(--shadow); display:flex; align-items:center; justify-content:center; cursor:pointer;
}
.theme-toggle:hover { filter:brightness(1.1); }

/* ---------- Scrollbar ---------- */
::-webkit-scrollbar { width:10px; height:10px; }
::-webkit-scrollbar-thumb { background:#263352; border-radius:8px; }
::-webkit-scrollbar-track { background:transparent; }

/* ---------- Mobile ---------- */
@media (max-width: 767px) {
  .sidebar { min-height:auto; }
  .container-fluid > .row { flex-direction:column; }
}
