/* ===================== PAGE TITLE ===================== */
.page-title {
  font-size: 22px;
  font-weight: 800;
  color: #0f172a;
  margin-bottom: 18px;
}

/* ===================== MONTH NAVIGATOR ===================== */
.month-nav {
  display: flex;
  align-items: center;
  gap: 12px;
  margin-bottom: 22px;
}
.month-nav-arrow {
  width: 36px;
  height: 36px;
  border-radius: 10px;
  border: 1.5px solid #e2e8f0;
  background: #fff;
  color: #1d4ed8;
  font-size: 14px;
  font-weight: 700;
  cursor: pointer;
  transition: all .18s;
}
.month-nav-arrow:hover { background: #eff6ff; border-color: #93c5fd; }
.month-nav-label {
  font-size: 17px;
  font-weight: 800;
  color: #0f172a;
  min-width: 160px;
  text-align: center;
}
.month-picker-input {
  margin-left: 8px;
  padding: 8px 10px;
  border: 1.5px solid #e2e8f0;
  border-radius: 9px;
  font-size: 13px;
  color: #1e293b;
  background: #fff;
  outline: none;
}
.month-picker-input:focus { border-color: #3b82f6; box-shadow: 0 0 0 3px rgba(59,130,246,.18); }

/* ===================== LAYOUT ===================== */
.payments-layout {
  display: grid;
  grid-template-columns: 1fr 300px;
  gap: 20px;
  align-items: start;
}
@media (max-width: 900px) {
  .payments-layout { grid-template-columns: 1fr; }
}

/* ===================== EMI LIST PANEL ===================== */
.payments-panel {
  background: #fff;
  border-radius: 16px;
  padding: 20px 22px;
  box-shadow: 0 1px 3px rgba(0,0,0,.07), 0 4px 16px rgba(0,0,0,.04);
}
.payments-panel-hdr {
  font-size: 12px;
  font-weight: 800;
  color: #64748b;
  text-transform: uppercase;
  letter-spacing: .7px;
  margin-bottom: 14px;
}

.payments-row {
  display: grid;
  grid-template-columns: 1fr 140px 60px;
  align-items: center;
  gap: 10px;
  padding: 12px 10px;
  border-radius: 10px;
  border-bottom: 1px solid #f1f5f9;
}
.payments-row:last-child { border-bottom: none; }
.payments-row:hover { background: #f8fafc; }

.pr-name { font-size: 14px; font-weight: 700; color: #0f172a; }
.pr-day { font-size: 11px; color: #94a3b8; font-weight: 600; margin-top: 2px; }
.pr-amount { font-size: 14px; font-weight: 800; color: #1e293b; text-align: right; }
.pr-check { display: flex; justify-content: center; }
.pr-check input[type="checkbox"] { width: 20px; height: 20px; cursor: pointer; accent-color: #10b981; }

.payments-row.paid .pr-amount { color: #059669; }
.payments-row.paid .pr-name { color: #059669; }

/* ===================== FLEX LOANS — MIN PAYMENT ===================== */
.flex-payments-panel { margin-top: 20px; }

.flex-row {
  display: grid;
  grid-template-columns: 1fr 160px 120px;
  align-items: center;
  gap: 10px;
  padding: 12px 10px;
  border-radius: 10px;
  border-bottom: 1px solid #f1f5f9;
}
.flex-row:last-child { border-bottom: none; }
.flex-row:hover { background: #f8fafc; }

.fr-name { font-size: 14px; font-weight: 700; color: #0f172a; }
.fr-pct { font-size: 11px; color: #94a3b8; font-weight: 600; margin-top: 2px; }
.fr-min { font-size: 14px; font-weight: 800; color: #1e293b; text-align: right; }
.fr-min-lbl { font-size: 9.5px; color: #94a3b8; text-transform: uppercase; letter-spacing: .5px; text-align: right; margin-top: 2px; }

.flex-row.paid .fr-name { color: #059669; }
.flex-row.paid .fr-min { color: #059669; }

.btn-pay-flex {
  background: #eff6ff;
  color: #2563eb;
  border: 1px solid #bfdbfe;
  padding: 8px 16px;
  border-radius: 8px;
  font-size: 12px;
  font-weight: 700;
  cursor: pointer;
  white-space: nowrap;
  transition: all .18s;
  justify-self: end;
}
.btn-pay-flex:hover { background: #dbeafe; border-color: #93c5fd; }
.btn-pay-flex:disabled { opacity: .5; cursor: not-allowed; }

/* ===================== PIE CHART ===================== */
.payments-chart-card { position: sticky; top: 96px; }
.payments-chart-total {
  font-size: 20px;
  font-weight: 800;
  color: #0f172a;
  text-align: center;
  margin-bottom: 12px;
}
