/* ============================================
   ODZRESHOP — Admin Dashboard
   ============================================ */
.dashboard {
  width: 1300px;
  height: 950px;
  display: grid;
  grid-template-columns: 252px 1fr;
  background: var(--bg-soft);
  font-family: var(--font);
  color: var(--ink);
  overflow: hidden;
}

/* ---------- Sidebar ---------- */
.dash-side {
  background: linear-gradient(185deg, var(--purple-950) 0%, var(--purple-900) 55%, #3A1280 100%);
  color: #E9E3FA;
  padding: 24px 18px;
  display: flex; flex-direction: column;
}
.dash-side .brand { color: #fff; margin: 0 6px 26px; }
.dash-side .brand-name { color: #fff; }
.dash-side .brand-name .brand-tld { color: var(--purple-300); }
.side-label {
  font-size: 10.5px; font-weight: 700; letter-spacing: .12em;
  color: rgba(233,227,250,.45);
  text-transform: uppercase;
  margin: 0 10px 10px;
}
.side-menu { display: flex; flex-direction: column; gap: 3px; }
.side-item {
  display: flex; align-items: center; gap: 12px;
  padding: 10.5px 12px;
  border-radius: 10px;
  font-size: 13.5px; font-weight: 600;
  color: rgba(233,227,250,.72);
  cursor: pointer;
  transition: background .15s ease, color .15s ease;
}
.side-item:hover { background: rgba(255,255,255,.07); color: #fff; }
.side-item.active {
  background: linear-gradient(92deg, var(--purple-600), var(--purple-500));
  color: #fff;
  box-shadow: 0 8px 18px rgba(124,58,237,.35);
}
.side-item .ic { width: 17px; height: 17px; }
.side-item.danger { color: #FCA5A5; }
.side-item.danger:hover { background: rgba(239,68,68,.14); color: #F87171; }
.side-foot { margin-top: auto; padding: 14px 10px 4px; border-top: 1px solid rgba(255,255,255,.10); }
.side-plan {
  background: rgba(255,255,255,.07);
  border: 1px solid rgba(255,255,255,.12);
  border-radius: 14px;
  padding: 14px;
}
.side-plan b { font-size: 13px; color: #fff; display: flex; align-items: center; gap: 8px; }
.side-plan p { font-size: 11px; color: rgba(233,227,250,.65); margin-top: 5px; line-height: 1.5; }

/* ---------- Main ---------- */
.dash-main { padding: 26px 30px; overflow: hidden; }
.dash-head {
  display: flex; align-items: flex-start; justify-content: space-between;
  gap: 18px; margin-bottom: 22px;
}
.dash-head h1 { font-size: 23px; font-weight: 800; color: var(--purple-950); letter-spacing: -.01em; }
.dash-head p { margin-top: 5px; font-size: 13px; color: var(--text-soft); }
.dash-search {
  display: flex; align-items: center; gap: 10px;
  background: #fff; border: 1.5px solid var(--border);
  border-radius: 11px; padding: 9px 14px;
  color: var(--text-soft); font-size: 13px;
  min-width: 210px;
}
.dash-profile {
  display: flex; align-items: center; gap: 10px;
  background: #fff; border: 1.5px solid var(--border);
  border-radius: 999px; padding: 5px 12px 5px 5px;
}
.dash-profile .avatar { width: 32px; height: 32px; font-size: 11.5px; }
.dash-profile b { font-size: 13px; color: var(--purple-950); }
.dash-profile .ic { color: var(--text-soft); }
.head-actions { display: flex; gap: 12px; align-items: center; }

/* ---------- Stat cards ---------- */
.stats-grid {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 16px;
  margin-bottom: 18px;
}
.stat-card {
  background: #fff;
  border: 1px solid var(--border);
  border-radius: var(--radius-lg);
  padding: 16px 17px;
  box-shadow: var(--shadow-sm);
  display: flex; justify-content: space-between; gap: 10px;
}
.stat-info { display: flex; flex-direction: column; }
.stat-label { font-size: 11.5px; font-weight: 600; color: var(--text-soft); }
.stat-value { font-size: 25px; font-weight: 800; color: var(--purple-950); margin-top: 6px; line-height: 1; letter-spacing: -.01em; }
.stat-trend {
  display: inline-flex; align-items: center; gap: 5px;
  font-size: 11px; font-weight: 700; margin-top: 9px;
}
.stat-trend.up { color: var(--green); }
.stat-trend.down { color: var(--red); }
.stat-trend.flat { color: var(--text-soft); }
.stat-ic {
  width: 38px; height: 38px; flex: none;
  border-radius: 11px;
  display: flex; align-items: center; justify-content: center;
}
.stat-ic .ic { width: 17px; height: 17px; }
.stat-ic.p { background: var(--purple-100); color: var(--purple-700); }
.stat-ic.b { background: var(--blue-bg); color: var(--blue); }
.stat-ic.g { background: var(--green-bg); color: var(--green); }
.stat-ic.r { background: #FEF2F2; color: var(--red); }
.stat-viz { margin-top: 8px; }

/* ---------- Analytics + Integrations row ---------- */
.dash-grid-2 {
  display: grid;
  grid-template-columns: 1.5fr 1fr;
  gap: 16px;
  margin-bottom: 18px;
}
.panel {
  background: #fff;
  border: 1px solid var(--border);
  border-radius: var(--radius-lg);
  padding: 18px 20px;
  box-shadow: var(--shadow-sm);
}
.panel-head {
  display: flex; align-items: center; justify-content: space-between;
  margin-bottom: 14px;
}
.panel-head h3 { font-size: 14.5px; font-weight: 800; color: var(--purple-950); }
.chart-legend { display: flex; gap: 16px; }
.chart-legend span {
  display: inline-flex; align-items: center; gap: 7px;
  font-size: 11.5px; font-weight: 600; color: var(--text-body);
}
.chart-legend i { width: 9px; height: 9px; border-radius: 3px; }
.lg-gopay  { background: var(--purple-600); }
.lg-shopee { background: var(--blue); }

/* Integration cards */
.integration-stack { display: flex; flex-direction: column; gap: 12px; }
.integration-card {
  border: 1px solid var(--border);
  border-radius: 14px;
  padding: 13px 15px;
  display: flex; align-items: center; gap: 13px;
  background: linear-gradient(120deg, #FBFAFF, #F5F1FE);
}
.integration-card .ilogo {
  width: 42px; height: 42px; flex: none;
  border-radius: 12px;
  display: flex; align-items: center; justify-content: center;
}
.integration-card .ilogo .glyph { width: 26px; height: 26px; }
.integration-card .ilogo.gopay  { background: #EAF9FD; }
.integration-card .ilogo.shopee { background: #FEF0E8; }
.integration-info { flex: 1; min-width: 0; }
.integration-info b { font-size: 13px; color: var(--purple-950); display: flex; align-items: center; gap: 8px; }
.integration-info small { display: block; font-size: 11px; color: var(--text-soft); margin-top: 3px; }
.integration-info .amount { font-size: 12.5px; font-weight: 800; color: var(--purple-800); margin-top: 3px; }
.integration-card .spark { flex: none; }

/* ---------- Activity table + Quick actions ---------- */
.dash-grid-3 {
  display: grid;
  grid-template-columns: 1.75fr 1fr;
  gap: 16px;
}
.table-wrap { overflow: hidden; border-radius: 12px; }
table.data-table { width: 100%; border-collapse: collapse; font-size: 12.5px; }
.data-table th {
  text-align: left;
  font-size: 10.5px; font-weight: 700; letter-spacing: .08em; text-transform: uppercase;
  color: var(--text-soft);
  background: var(--purple-50);
  padding: 9px 14px;
  border-bottom: 1px solid var(--border);
}
.data-table td {
  padding: 10.5px 14px;
  border-bottom: 1px solid var(--border);
  color: var(--text-body);
  white-space: nowrap;
}
.data-table tr:last-child td { border-bottom: none; }
.data-table td.mono { font-family: 'JetBrains Mono', 'SF Mono', Consolas, monospace; font-size: 12px; color: var(--purple-800); font-weight: 600; }
.data-table td b { color: var(--ink); }
.status-pill {
  display: inline-flex; align-items: center; gap: 6px;
  font-size: 11px; font-weight: 700;
  padding: 3px 10px; border-radius: 999px;
}
.status-pill.ok  { background: var(--green-bg); color: #047857; }
.status-pill.err { background: #FEF2F2; color: #B91C1C; }
.status-pill.warn{ background: #FFFBEB; color: #B45309; }
.badge-dot { width: 6px; height: 6px; border-radius: 50%; background: currentColor; }

/* Quick actions */
.quick-stack { display: flex; flex-direction: column; gap: 11px; }
.quick-btn {
  display: flex; align-items: center; gap: 13px;
  border: 1.5px dashed var(--purple-300);
  background: var(--purple-50);
  border-radius: 13px;
  padding: 14px 16px;
  color: var(--purple-800);
  font-size: 13px; font-weight: 700;
  transition: background .15s ease, border-color .15s ease;
  text-align: left;
}
.quick-btn:hover { background: var(--purple-100); border-color: var(--purple-500); }
.quick-btn .qic {
  width: 34px; height: 34px; flex: none;
  border-radius: 10px;
  background: #fff;
  display: flex; align-items: center; justify-content: center;
  color: var(--purple-700);
  box-shadow: var(--shadow-sm);
}
.quick-btn small { display: block; font-size: 11px; font-weight: 500; color: var(--text-soft); margin-top: 2px; }
