/* =============================================================================
   fh-loans.css v13.0.0
   Financial Help / Loan module — request cards, offers, agreements, payments
   ============================================================================= */

.gp-ln-panel { padding:16px 20px; }

/* ── Toolbar ── */
.gp-ln-toolbar { display:flex; align-items:center; justify-content:space-between; gap:10px; margin-bottom:16px; flex-wrap:wrap; }
.gp-ln-toolbar-left { display:flex; align-items:center; gap:10px; }
.gp-ln-toolbar-right { display:flex; align-items:center; gap:8px; }
.gp-ln-view-sel { padding:7px 12px; border:1px solid #e2e8f0; border-radius:8px; font-size:13px; font-family:inherit; background:#fff; }
.gp-ln-view-sel:focus { outline:none; border-color:#4f46e5; box-shadow:0 0 0 3px rgba(79,70,229,.12); }

/* ── Summary Cards ── */
.gp-ln-summary-row { display:grid; grid-template-columns:repeat(3,1fr); gap:10px; margin-bottom:18px; }
.gp-ln-scard { background:#f8fafc; border:1px solid #e2e8f0; border-radius:10px; padding:12px 14px; transition:box-shadow .15s; }
.gp-ln-scard:hover { box-shadow:0 2px 8px rgba(0,0,0,.04); }
.gp-ln-scard-label { font-size:11px; font-weight:600; color:#64748b; text-transform:uppercase; letter-spacing:.4px; margin-bottom:4px; }
.gp-ln-scard-value { font-size:18px; font-weight:700; color:#0f172a; }
.gp-ln-scard-sub { font-size:11px; color:#64748b; margin-top:2px; }
.gp-ln-scard-borrowed { border-color:#fca5a5; background:linear-gradient(180deg,#fef2f2 0%,#f8fafc 60%); }
.gp-ln-scard-borrowed .gp-ln-scard-value { color:#dc2626; }
.gp-ln-scard-lent { border-color:#86efac; background:linear-gradient(180deg,#f0fdf4 0%,#f8fafc 60%); }
.gp-ln-scard-lent .gp-ln-scard-value { color:#16a34a; }

/* ── Sub-tabs (requests / agreements / calculator) ── */
.gp-ln-stabs { display:flex; gap:2px; border-bottom:1px solid #e2e8f0; margin-bottom:14px; }
.gp-ln-stab { background:none; border:0; padding:10px 16px; font-size:13px; font-weight:600; color:#94a3b8;
  cursor:pointer; border-bottom:2px solid transparent; margin-bottom:-1px; transition:color .15s, border-color .15s; }
.gp-ln-stab:hover { color:#0f172a; }
.gp-ln-stab.active { color:#4f46e5; border-bottom-color:#4f46e5; }
.gp-ln-actions-bar { display:flex; flex-wrap:wrap; gap:8px; align-items:center; justify-content:flex-end; margin-bottom:10px; }

/* ── Request Cards ── */
.gp-ln-items-list { background:#fff; border:1px solid #e2e8f0; border-radius:10px; overflow:hidden; max-height:380px; overflow-y:auto; }
.gp-ln-req-card { padding:14px 16px; border-bottom:1px solid #f1f5f9; transition:background .1s; }
.gp-ln-req-card:last-child { border-bottom:0; }
.gp-ln-req-card:hover { background:#f8fafc; }
.gp-ln-req-header { display:flex; align-items:flex-start; justify-content:space-between; gap:10px; margin-bottom:6px; }
.gp-ln-req-title { font-size:14px; font-weight:600; color:#0f172a; }
.gp-ln-req-amount { font-size:16px; font-weight:700; color:#0f172a; white-space:nowrap; }
.gp-ln-req-meta { font-size:12px; color:#94a3b8; display:flex; align-items:center; gap:6px; flex-wrap:wrap; margin-bottom:6px; }
.gp-ln-req-reason { font-size:13px; color:#475569; margin-bottom:8px; line-height:1.4; }
.gp-ln-req-footer { display:flex; align-items:center; justify-content:space-between; gap:8px; flex-wrap:wrap; }

/* Progress bar for funding */
.gp-ln-progress-bar { flex:1; min-width:120px; height:6px; background:#f1f5f9; border-radius:3px; overflow:hidden; }
.gp-ln-progress-fill { height:100%; border-radius:3px; background:linear-gradient(90deg,#4f46e5,#7c3aed); transition:width .4s ease-out; }
.gp-ln-progress-text { font-size:11px; color:#64748b; white-space:nowrap; }

/* ── Badges / Pills ── */
.gp-ln-badge { display:inline-block; padding:3px 10px; border-radius:10px; font-size:11px; font-weight:600; }
.gp-ln-badge-open       { background:#dbeafe; color:#1e40af; }
.gp-ln-badge-partial    { background:#fef3c7; color:#92400e; }
.gp-ln-badge-funded     { background:#d1fae5; color:#065f46; }
.gp-ln-badge-closed     { background:#e2e8f0; color:#475569; }
.gp-ln-badge-cancelled  { background:#fee2e2; color:#991b1b; }
.gp-ln-badge-pending    { background:#fef3c7; color:#92400e; }
.gp-ln-badge-accepted   { background:#d1fae5; color:#065f46; }
.gp-ln-badge-rejected   { background:#fee2e2; color:#991b1b; }
.gp-ln-badge-withdrawn  { background:#e2e8f0; color:#475569; }
.gp-ln-badge-active     { background:#dbeafe; color:#1e40af; }
.gp-ln-badge-completed  { background:#d1fae5; color:#065f46; }
.gp-ln-badge-overdue    { background:#fee2e2; color:#991b1b; }
.gp-ln-badge-paid       { background:#d1fae5; color:#065f46; }
.gp-ln-badge-upcoming   { background:#f1f5f9; color:#64748b; }
.gp-ln-badge-due        { background:#fef3c7; color:#92400e; }

.gp-ln-purpose-tag { display:inline-flex; align-items:center; gap:4px; padding:2px 8px; border-radius:6px;
  font-size:11px; font-weight:500; background:#f1f5f9; color:#475569; }

/* ── Offer Items ── */
.gp-ln-offer-item { display:flex; align-items:flex-start; gap:12px; padding:12px 14px; border-bottom:1px solid #f1f5f9; }
.gp-ln-offer-item:last-child { border-bottom:0; }
.gp-ln-offer-av { width:36px; height:36px; border-radius:50%; background:#e0e7ff; color:#3730a3;
  display:inline-flex; align-items:center; justify-content:center; font-size:12px; font-weight:600; flex-shrink:0; }
.gp-ln-offer-body { flex:1; min-width:0; }
.gp-ln-offer-name { font-size:13px; font-weight:600; color:#0f172a; }
.gp-ln-offer-terms { font-size:12px; color:#64748b; margin-top:2px; line-height:1.5; }
.gp-ln-offer-msg { font-size:12px; color:#475569; margin-top:4px; font-style:italic; background:#f8fafc; padding:6px 10px; border-radius:6px; }
.gp-ln-offer-computed { display:flex; flex-wrap:wrap; gap:6px 14px; margin-top:6px; padding:8px 10px; background:#f0fdf4; border:1px solid #bbf7d0; border-radius:6px; font-size:12px; color:#166534; }
.gp-ln-offer-computed strong { font-weight:600; color:#065f46; }
.gp-ln-offer-actions { display:flex; gap:6px; margin-top:6px; }

/* ── Agreement Cards ── */
.gp-ln-agree-card { padding:14px 16px; border-bottom:1px solid #f1f5f9; cursor:pointer; transition:background .1s; }
.gp-ln-agree-card:last-child { border-bottom:0; }
.gp-ln-agree-card:hover { background:#f8fafc; }
.gp-ln-agree-header { display:flex; align-items:center; justify-content:space-between; gap:10px; margin-bottom:6px; }
.gp-ln-agree-parties { font-size:13px; color:#0f172a; }
.gp-ln-agree-parties strong { font-weight:600; }
.gp-ln-agree-grid { display:grid; grid-template-columns:repeat(4,1fr); gap:8px; margin-top:8px; }
.gp-ln-agree-stat { text-align:center; }
.gp-ln-agree-stat-label { font-size:10px; color:#94a3b8; text-transform:uppercase; letter-spacing:.3px; }
.gp-ln-agree-stat-value { font-size:14px; font-weight:700; color:#0f172a; }

/* ── Agreement Detail (inside modal) ── */
.gp-ln-detail-section { margin-bottom:18px; }
.gp-ln-detail-title { font-size:13px; font-weight:600; color:#64748b; text-transform:uppercase; letter-spacing:.4px; margin-bottom:8px; padding-bottom:4px; border-bottom:1px solid #f1f5f9; }
.gp-ln-detail-grid { display:grid; grid-template-columns:1fr 1fr; gap:8px 16px; }
.gp-ln-detail-item label { font-size:11px; color:#94a3b8; display:block; }
.gp-ln-detail-item span { font-size:14px; font-weight:600; color:#0f172a; }

/* ── Installment Table ── */
.gp-ln-inst-table { width:100%; border-collapse:collapse; font-size:12px; }
.gp-ln-inst-table th { text-align:left; padding:8px 10px; background:#f8fafc; color:#64748b; font-weight:600;
  text-transform:uppercase; letter-spacing:.3px; font-size:10px; border-bottom:2px solid #e2e8f0; }
.gp-ln-inst-table td { padding:8px 10px; border-bottom:1px solid #f1f5f9; color:#0f172a; }
.gp-ln-inst-table tr:hover td { background:#fafbfc; }
.gp-ln-inst-table .gp-ln-inst-overdue td { background:#fef2f2; }
.gp-ln-inst-table .gp-ln-inst-paid td { opacity:.65; }

/* ── Payment Items ── */
.gp-ln-payment-item { display:flex; align-items:center; gap:12px; padding:10px 14px; border-bottom:1px solid #f1f5f9; font-size:13px; }
.gp-ln-payment-item:last-child { border-bottom:0; }
.gp-ln-payment-amt { font-weight:700; color:#0f172a; white-space:nowrap; }
.gp-ln-payment-date { color:#64748b; font-size:12px; }
.gp-ln-payment-confirmed { color:#16a34a; }
.gp-ln-payment-unconfirmed { color:#f59e0b; }

/* ── EMI Calculator ── */
.gp-ln-calc-panel { padding:16px; background:#f8fafc; border:1px solid #e2e8f0; border-radius:10px; }
.gp-ln-calc-grid { display:grid; grid-template-columns:1fr 1fr; gap:12px; }
.gp-ln-calc-result { margin-top:16px; padding:14px; background:#fff; border:1px solid #e2e8f0; border-radius:8px; }
.gp-ln-calc-result-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:12px; text-align:center; }
.gp-ln-calc-result-item label { font-size:10px; color:#94a3b8; text-transform:uppercase; letter-spacing:.3px; display:block; margin-bottom:2px; }
.gp-ln-calc-result-item span { font-size:16px; font-weight:700; color:#0f172a; }

/* ── Form Grid ── */
.gp-ln-form-grid { display:grid; grid-template-columns:1fr 1fr; gap:12px; }

/* ── Rate / EMI mode toggle ── */
.gp-ln-mode-toggle { margin-bottom:14px; }
.gp-ln-mode-label { font-size:12px; font-weight:600; color:#64748b; text-transform:uppercase; letter-spacing:.4px; display:block; margin-bottom:6px; }
.gp-ln-mode-pills { display:flex; gap:0; border:1px solid #e2e8f0; border-radius:8px; overflow:hidden; }
.gp-ln-mode-pill { flex:1; padding:9px 14px; font-size:13px; font-weight:500; border:0; background:#f8fafc; color:#64748b;
  cursor:pointer; transition:all .15s; display:flex; align-items:center; justify-content:center; gap:6px; }
.gp-ln-mode-pill:first-child { border-right:1px solid #e2e8f0; }
.gp-ln-mode-pill:hover { background:#f1f5f9; color:#0f172a; }
.gp-ln-mode-pill.active { background:#4f46e5; color:#fff; }
.gp-ln-mode-pill.active:hover { background:#4338ca; }
.gp-ln-derived-info { margin-top:6px; padding:8px 12px; background:#f0fdf4; border:1px solid #bbf7d0; border-radius:8px;
  font-size:12px; color:#166534; display:flex; align-items:center; gap:6px; }
.gp-ln-derived-info .fa { color:#16a34a; }

/* ── Responsive ── */
@media (max-width:600px) {
  .gp-ln-summary-row { grid-template-columns:1fr; }
  .gp-ln-agree-grid { grid-template-columns:repeat(2,1fr); }
  .gp-ln-calc-grid { grid-template-columns:1fr; }
  .gp-ln-calc-result-grid { grid-template-columns:1fr; }
  .gp-ln-detail-grid { grid-template-columns:1fr; }
  .gp-ln-form-grid { grid-template-columns:1fr; }
  .gp-ln-toolbar { flex-direction:column; align-items:stretch; }
  .gp-ln-req-header { flex-direction:column; }
  .gp-ln-inst-table { font-size:11px; }
  .gp-ln-inst-table th, .gp-ln-inst-table td { padding:6px 6px; }
}