/* ============================================================
   RecoverChain AI — Premium Fintech Theme
   Dark-first design with careful glass effects.
   ============================================================ */
:root {
  --rc-bg: #0b1020;
  --rc-bg-2: #101830;
  --rc-surface: #141d38;
  --rc-surface-2: #1a2547;
  --rc-border: rgba(255,255,255,.08);
  --rc-text: #e8ecf7;
  --rc-muted: #93a0c4;
  --rc-primary: #5b8cff;
  --rc-primary-2: #7a5bff;
  --rc-success: #2ecc8f;
  --rc-danger: #ff5f7e;
  --rc-warning: #ffc857;
  --rc-radius: 16px;
  --rc-shadow: 0 20px 45px -20px rgba(0,0,0,.65);
  --rc-grad: linear-gradient(135deg, #5b8cff 0%, #7a5bff 100%);
}

[data-theme="light"] {
  --rc-bg: #f4f6fb;
  --rc-bg-2: #ffffff;
  --rc-surface: #ffffff;
  --rc-surface-2: #f0f3fa;
  --rc-border: rgba(20,40,80,.1);
  --rc-text: #16213d;
  --rc-muted: #5b6783;
}

* { box-sizing: border-box; }
html, body { height: 100%; }
body {
  margin: 0;
  font-family: 'Inter', 'Segoe UI', system-ui, -apple-system, sans-serif;
  background: var(--rc-bg);
  color: var(--rc-text);
  -webkit-font-smoothing: antialiased;
}
a { color: var(--rc-primary); text-decoration: none; }
a:hover { color: var(--rc-primary-2); }

/* Background glow blobs */
.rc-bg-decor { position: fixed; inset: 0; z-index: 0; overflow: hidden; pointer-events: none; }
.rc-bg-decor::before, .rc-bg-decor::after {
  content:''; position:absolute; width:600px; height:600px; border-radius:50%;
  filter: blur(120px); opacity:.25;
}
.rc-bg-decor::before { background:#5b8cff; top:-150px; left:-100px; }
.rc-bg-decor::after { background:#7a5bff; bottom:-200px; right:-120px; }
[data-theme="light"] .rc-bg-decor::before, [data-theme="light"] .rc-bg-decor::after { opacity:.12; }

/* Layout shell */
.rc-shell { position: relative; z-index: 1; display: flex; min-height: 100vh; }

/* Sidebar */
.rc-sidebar {
  width: 264px; background: var(--rc-bg-2); border-right: 1px solid var(--rc-border);
  position: fixed; top:0; bottom:0; left:0; display:flex; flex-direction:column;
  transition: transform .25s ease; z-index: 1040;
}
.rc-sidebar .brand { padding: 22px 20px; display:flex; align-items:center; gap:12px; }
.rc-brand-logo { width:40px; height:40px; border-radius:12px; background:var(--rc-grad); display:grid; place-items:center; color:#fff; font-weight:800; }
.rc-brand-name { font-weight:800; font-size:1.05rem; letter-spacing:-.3px; }
.rc-sidebar .nav-label { font-size:.7rem; text-transform:uppercase; letter-spacing:.12em; color:var(--rc-muted); padding:18px 22px 6px; }
.rc-sidebar .nav-item { margin:2px 10px; border-radius:12px; }
.rc-sidebar .nav-link {
  display:flex; align-items:center; gap:12px; color:var(--rc-muted); padding:10px 14px;
  border-radius:12px; font-weight:500; font-size:.92rem; transition:all .15s ease;
}
.rc-sidebar .nav-link i { font-size:1.1rem; width:22px; text-align:center; }
.rc-sidebar .nav-link:hover { color:var(--rc-text); background:var(--rc-surface-2); }
.rc-sidebar .nav-link.active { color:#fff; background:var(--rc-grad); box-shadow:0 8px 20px -8px rgba(91,140,255,.6); }
.rc-sidebar .sidebar-foot { margin-top:auto; padding:16px 20px; border-top:1px solid var(--rc-border); }

/* Main area */
.rc-main { flex:1; margin-left:264px; display:flex; flex-direction:column; min-width:0; }
.rc-topbar {
  display:flex; align-items:center; gap:16px; padding:14px 28px; background:var(--rc-bg-2);
  border-bottom:1px solid var(--rc-border); position:sticky; top:0; z-index:1030;
}
.rc-topbar .breadcrumb { margin:0; }
.rc-content { padding:26px 28px; flex:1; }

/* Cards */
.rc-card { background:var(--rc-surface); border:1px solid var(--rc-border); border-radius:var(--rc-radius); box-shadow:var(--rc-shadow); }
.rc-card .rc-card-head { padding:18px 22px; border-bottom:1px solid var(--rc-border); display:flex; align-items:center; justify-content:space-between; gap:12px; }
.rc-card .rc-card-body { padding:22px; }

/* Stat cards */
.rc-stat { position:relative; overflow:hidden; padding:20px 22px; }
.rc-stat .icon { width:46px; height:46px; border-radius:14px; display:grid; place-items:center; font-size:1.3rem; background:var(--rc-surface-2); color:var(--rc-primary); }
.rc-stat .value { font-size:1.55rem; font-weight:800; letter-spacing:-.5px; margin-top:12px; }
.rc-stat .label { color:var(--rc-muted); font-size:.85rem; margin-top:2px; }
.rc-stat.grad { color:#fff; }
.rc-stat.grad .icon { background:rgba(255,255,255,.16); color:#fff; }

/* Glass utility */
.rc-glass { background:rgba(255,255,255,.04); border:1px solid var(--rc-border); backdrop-filter:blur(12px); }

/* Buttons */
.btn { border-radius:12px; font-weight:600; }
.btn-primary { background:var(--rc-grad); border:none; }
.btn-primary:hover { filter:brightness(1.05); }
.btn-outline-light { border-color:var(--rc-border); }

/* Forms */
.form-control, .form-select {
  background:var(--rc-surface-2); border:1px solid var(--rc-border); color:var(--rc-text); border-radius:12px; padding:.6rem .9rem;
}
.form-control:focus, .form-select:focus { background:var(--rc-surface-2); color:var(--rc-text); border-color:var(--rc-primary); box-shadow:0 0 0 .2rem rgba(91,140,255,.2); }
.form-label { font-weight:600; font-size:.85rem; color:var(--rc-muted); }
.input-group-text { background:var(--rc-surface-2); border-color:var(--rc-border); color:var(--rc-muted); }
[data-theme="light"] .form-select option { color:#16213d; }

/* Tables — high readability */
.rc-table { width:100%; border-collapse:collapse; }
.rc-table thead { position:sticky; top:0; z-index:2; }
.rc-table th {
  font-size:.74rem; text-transform:uppercase; letter-spacing:.07em;
  color:var(--rc-primary); font-weight:700;
  background:var(--rc-surface-2);
  border-bottom:2px solid var(--rc-border);
  padding:14px 16px; white-space:nowrap;
}
.rc-table td {
  padding:15px 16px; border-bottom:1px solid var(--rc-border);
  vertical-align:middle; color:var(--rc-text); font-size:.92rem;
}
/* Zebra striping for readability */
.rc-table tbody tr:nth-child(even) { background:rgba(255,255,255,.025); }
.rc-table tbody tr:hover { background:rgba(91,140,255,.08); }
[data-theme="light"] .rc-table tbody tr:nth-child(even) { background:rgba(20,40,80,.03); }
[data-theme="light"] .rc-table tbody tr:hover { background:rgba(91,140,255,.10); }
/* Right-align numeric/code columns for scan-ability */
.rc-table .text-end { text-align:right; }
.rc-table .text-end { font-variant-numeric:tabular-nums; }
.rc-table .small-code { color:var(--rc-muted); font-size:.83rem; }
/* Muted helper text stays readable */
.rc-table .text-muted, .rc-table .text-muted.small { color:var(--rc-muted) !important; font-size:.85rem; }
.rc-table td.fw-semibold { font-weight:600; color:var(--rc-text); }
.table-striped>tbody>tr:nth-of-type(odd) { --bs-table-accent-bg: rgba(255,255,255,.02); }
/* Scrollable card tables keep header visible */
.table-responsive { max-height: 70vh; overflow:auto; border-radius: 0 0 var(--rc-radius) var(--rc-radius); }

/* Badges */
.badge { font-weight:600; letter-spacing:.02em; padding:.4em .7em; border-radius:8px; }
.bg-dark { background:#10132a !important; }

/* Empty state */
.rc-empty { text-align:center; padding:50px 20px; color:var(--rc-muted); }
.rc-empty i { font-size:3rem; opacity:.4; }

/* Toasts / alerts */
.alert { border-radius:14px; }
.rc-toast { background:var(--rc-surface); border:1px solid var(--rc-border); }

/* Auth pages */
.rc-auth-wrap { min-height:100vh; display:grid; place-items:center; position:relative; z-index:1; padding:20px; }
.rc-auth-card { width:100%; max-width:430px; background:var(--rc-bg-2); border:1px solid var(--rc-border); border-radius:20px; box-shadow:var(--rc-shadow); padding:36px; }

/* Theme toggle & avatar */
.rc-avatar { width:38px; height:38px; border-radius:50%; background:var(--rc-grad); display:grid; place-items:center; color:#fff; font-weight:700; }
.rc-dropdown-menu { background:var(--rc-surface); border:1px solid var(--rc-border); border-radius:14px; box-shadow:var(--rc-shadow); }

/* Responsive */
.rc-mobile-toggle { display:none; }
@media (max-width: 991px) {
  .rc-sidebar { transform:translateX(-100%); }
  .rc-sidebar.open { transform:translateX(0); }
  .rc-main { margin-left:0; }
  .rc-mobile-toggle { display:inline-flex; }
  .rc-content { padding:18px 16px; }
}

/* Charts container height */
.rc-chart { min-height:320px; }
.rc-chart-sm { min-height:260px; }

/* Loading overlay */
.rc-loading { position:fixed; inset:0; background:rgba(11,16,32,.7); backdrop-filter:blur(4px); display:none; place-items:center; z-index:2000; }
.rc-loading.show { display:grid; }
.rc-spinner { width:48px; height:48px; border:4px solid rgba(255,255,255,.2); border-top-color:#5b8cff; border-radius:50%; animation:rcspin .8s linear infinite; }
@keyframes rcspin { to { transform:rotate(360deg); } }

/* Print / misc */
.text-muted { color:var(--rc-muted) !important; }
.bg-surface { background:var(--rc-surface) !important; }
.small-code { font-family:ui-monospace,SFMono-Regular,Menlo,monospace; font-size:.85rem; word-break:break-all; }
