/* ======================================
   BALANCE SHEET PAGE
====================================== */

.balance-page {
  width: 100%;

  display: flex;

  flex-direction: column;

  gap: 18px;
}

/* ======================================
   GLOBAL BALANCE WIDGETS
====================================== */

.balance-page .widget {
  background: linear-gradient(
    145deg,
    rgba(15, 23, 42, 0.96),
    rgba(2, 6, 23, 0.96)
  );

  border: 1px solid rgba(148, 163, 184, 0.18);

  border-radius: 16px;

  box-shadow: 0 15px 35px rgba(0, 0, 0, 0.35);

  overflow: hidden;
}

/* ======================================
   HEADER
====================================== */

.balance-header {
  padding: 22px;
}

.balance-header h2 {
  margin: 0;

  color: #ffffff;

  font-size: 28px;

  font-weight: 800;

  letter-spacing: 0.4px;
}

/* ======================================
   SUMMARY AREA
====================================== */

.summary {
  display: grid;

  grid-template-columns: repeat(4, 1fr);

  gap: 15px;

  padding: 18px;
}

.summary-card {
  position: relative;

  background: linear-gradient(145deg, #111827, #020617);

  padding: 22px;

  border-radius: 14px;

  border: 1px solid rgba(255, 255, 255, 0.08);

  text-align: center;

  transition: 0.25s ease;
}

.summary-card:hover {
  transform: translateY(-4px);

  border-color: #2563eb;
}

.summary-card h4 {
  color: #94a3b8;

  font-size: 13px;

  text-transform: uppercase;

  letter-spacing: 1px;

  margin-bottom: 12px;
}

.summary-card p {
  margin: 0;

  font-size: 30px;

  font-weight: 900;
}

/* Income */

.summary-card .income {
  color: #4ade80;
}

/* Expense */

.summary-card .expense {
  color: #f87171;
}

/* ======================================
   TABLE AREA
====================================== */

.table-card {
  padding: 18px;

  overflow-x: auto;
}

.balance-table {
  width: 100%;

  border-collapse: collapse;
}

.balance-table th {
  background: #020617;

  color: #94a3b8;

  padding: 14px;

  text-align: left;

  font-size: 13px;

  text-transform: uppercase;

  letter-spacing: 0.5px;
}

.balance-table td {
  padding: 14px;

  color: #e2e8f0;

  border-bottom: 1px solid rgba(255, 255, 255, 0.06);
}

.balance-table tr {
  transition: 0.2s ease;
}

.balance-table tr:hover {
  background: rgba(37, 99, 235, 0.08);
}

/* ======================================
   INCOME / EXPENSE ROWS
====================================== */

.income-row td {
  color: #86efac;
}

.expense-row td {
  color: #fca5a5;
}

/* ======================================
   PAGINATION
====================================== */

.pagination-widget {
  padding: 18px;
}

.pagination {
  display: flex;

  justify-content: center;

  gap: 8px;

  flex-wrap: wrap;
}

.pagination a {
  min-width: 38px;

  height: 38px;

  display: flex;

  align-items: center;

  justify-content: center;

  border-radius: 10px;

  background: #111827;

  border: 1px solid rgba(255, 255, 255, 0.08);

  color: #cbd5e1;

  text-decoration: none;

  font-weight: 600;

  transition: 0.2s ease;
}

.pagination a:hover {
  background: #2563eb;

  color: white;
}

.pagination .active {
  background: #2563eb;

  color: white;

  box-shadow: 0 0 15px rgba(37, 99, 235, 0.45);
}

/* ======================================
   INFO PANEL
====================================== */

.info-box {
  padding: 20px;
}

.info-content {
  color: #cbd5e1;
}

.info-content p {
  margin: 10px 0;

  padding-left: 10px;
}

/* ======================================
   MOBILE
====================================== */

@media (max-width: 1100px) {
  .summary {
    grid-template-columns: repeat(2, 1fr);
  }
}

@media (max-width: 700px) {
  .summary {
    grid-template-columns: 1fr;
  }

  .balance-header h2 {
    font-size: 22px;
  }

  .balance-table {
    min-width: 750px;
  }
}
