/* Payments pages (round 58): boss, verifiers, school admins, students. */
.pg-gate{ text-align:center; padding:50px 14px; font-size:14px; color:var(--text-secondary); }
.pg-empty{ text-align:center; padding:40px 14px; font-size:13.5px; color:var(--text-muted); background:var(--surface);
  border:1px dashed var(--border); border-radius:var(--radius-lg, 16px); }
.pg-msg{ font-size:12.5px; min-height:0; margin:0 2px 10px; }
.pg-msg:empty{ display:none; }
.pg-msg.bad{ color:var(--danger); } .pg-msg.ok{ color:var(--success); }

.pg-list{ background:var(--surface); border:1px solid var(--border); border-radius:var(--radius-lg, 16px); overflow:hidden; }
.pg-row{ display:flex; align-items:center; gap:14px; padding:16px; text-decoration:none; color:inherit; border-bottom:1px solid var(--border);
  background:none; width:100%; border-left:none; border-right:none; border-top:none; font:inherit; text-align:left; cursor:pointer; }
.pg-row:last-child{ border-bottom:none; }
.pg-row:hover{ background:var(--surface-2); }
.pg-ic{ width:44px; height:44px; border-radius:50%; display:grid; place-items:center; flex-shrink:0; background:var(--purple-tint); color:var(--purple); }
.pg-ic.main{ background:var(--purple); color:#fff; }
.pg-ic svg{ width:20px; height:20px; }
.pg-tx{ flex:1; min-width:0; }
.pg-tx b{ display:block; font-size:15px; }
.pg-tx small{ display:block; font-size:12px; color:var(--text-secondary); margin-top:2px; }
.pg-chev{ color:var(--text-muted); font-size:18px; }
.pg-badge{ min-width:24px; height:24px; padding:0 8px; border-radius:999px; background:var(--danger); color:#fff;
  font-size:12px; font-weight:800; display:inline-flex; align-items:center; justify-content:center; }

.pg-card{ background:var(--surface); border:1px solid var(--border); border-radius:var(--radius-lg, 16px); padding:14px 16px; margin-bottom:12px; }
.pg-top{ display:flex; gap:12px; align-items:flex-start; justify-content:space-between; }
.pg-title{ font-size:15.5px; font-weight:800; overflow-wrap:anywhere; }
.pg-sub{ font-size:12.5px; color:var(--text-secondary); margin-top:2px; }
.pg-amt{ font-size:16px; font-weight:800; white-space:nowrap; }
.pg-meta{ display:flex; flex-wrap:wrap; gap:8px 12px; align-items:center; margin-top:10px; font-size:12px; color:var(--text-secondary); font-weight:700; }
.pg-bank{ margin-top:8px; font-size:12px; color:var(--text-secondary); }
.pg-note{ margin-top:8px; font-size:12.5px; padding:8px 10px; border-radius:10px; background:var(--surface-2); }
.pg-note.bad{ background:var(--danger-tint); color:var(--danger); }
.pg-appr{ margin-top:8px; display:flex; flex-wrap:wrap; gap:6px; font-size:11.5px; font-weight:700; }
.pg-appr span{ padding:3px 9px; border-radius:999px; }
.pg-appr .ok{ background:var(--success-tint); color:var(--success); }
.pg-appr .bad{ background:var(--danger-tint); color:var(--danger); }
.pg-acts{ display:flex; gap:8px; flex-wrap:wrap; margin-top:12px; }
.pg-btn{ padding:9px 14px; border-radius:999px; border:1px solid var(--border); background:var(--surface); color:var(--text-primary);
  font:inherit; font-size:12.5px; font-weight:800; cursor:pointer; }
.pg-btn.main{ background:var(--purple); border-color:var(--purple); color:#fff; }
.pg-btn.danger{ color:var(--danger); }
.pg-btn:disabled{ opacity:.5; cursor:default; }

.chip{ display:inline-block; padding:4px 10px; border-radius:999px; font-size:11.5px; font-weight:800; white-space:nowrap; }
.chip.active, .chip.paid{ background:var(--success-tint); color:var(--success); }
.chip.awaiting, .chip.in_review, .chip.half_paid{ background:var(--warning-tint); color:var(--warning); }
.chip.rejected, .chip.not_paid{ background:var(--danger-tint); color:var(--danger); }
.chip.on_hold{ background:#E0E7FF; color:#4338CA; }
[data-theme="dark"] .chip.on_hold{ background:#1E1B4B; color:#A5B4FC; }
.chip.closed{ background:var(--surface-2); color:var(--text-secondary); }

/* new payment table */
.pg-table{ background:var(--surface); border:1px solid var(--border); border-radius:var(--radius-lg, 16px); overflow:hidden; }
.pg-thead, .pg-tr{ display:grid; grid-template-columns:1.3fr 1.6fr 1fr 34px; gap:8px; align-items:center; padding:10px 12px; }
.pg-thead{ background:var(--surface-2); font-size:11px; font-weight:800; letter-spacing:.06em; text-transform:uppercase; color:var(--text-secondary); }
.pg-tr{ border-top:1px solid var(--border); }
.pg-tr input, .pg-tr select, .pg-field input{ width:100%; box-sizing:border-box; padding:10px 11px; border-radius:10px; border:1px solid var(--border);
  background:var(--surface-2); color:var(--text-primary); font:inherit; font-size:14px; min-width:0; }
.pg-for{ display:grid; grid-template-columns:1fr; gap:6px; }
.pg-x{ width:34px; height:34px; border-radius:50%; border:none; background:var(--danger-tint); color:var(--danger); font-size:16px; font-weight:800; cursor:pointer; }
.pg-add{ width:100%; padding:12px; border:none; border-top:1px dashed var(--border); background:none; color:var(--purple); font:inherit; font-weight:800; cursor:pointer; }
@media (max-width:640px){
  .pg-thead{ display:none; }
  .pg-tr{ grid-template-columns:1fr 34px; grid-template-areas:"t x" "f f" "a a"; }
  .pg-tr .c-t{ grid-area:t; } .pg-tr .c-f{ grid-area:f; } .pg-tr .c-a{ grid-area:a; } .pg-tr .c-x{ grid-area:x; }
}
.pg-section{ font-size:11.5px; font-weight:800; letter-spacing:.06em; text-transform:uppercase; color:var(--text-secondary); margin:22px 4px 8px; }
.pg-section small{ text-transform:none; letter-spacing:0; font-weight:600; }
.pg-box{ background:var(--surface); border:1px solid var(--border); border-radius:var(--radius-lg, 16px); padding:14px; }
.pg-field{ margin-bottom:10px; }
.pg-field:last-child{ margin-bottom:0; }
.pg-field label{ display:block; font-size:12px; font-weight:700; color:var(--text-secondary); margin-bottom:5px; }

/* school admin inbox */
.pg-head{ display:flex; align-items:center; gap:10px; margin-bottom:12px; }
.pg-bell{ position:relative; display:inline-flex; align-items:center; gap:8px; padding:10px 16px; border-radius:999px; border:none;
  background:var(--purple); color:#fff; font:inherit; font-size:13.5px; font-weight:800; cursor:pointer; }
.pg-bell svg{ width:18px; height:18px; }
.pg-bell .pg-badge{ background:#fff; color:var(--purple); }
.pg-bell.quiet{ background:var(--surface); color:var(--text-primary); border:1px solid var(--border); }
.pg-bell.quiet .pg-badge{ background:var(--surface-2); color:var(--text-secondary); }
.pg-filters{ display:flex; gap:6px; overflow-x:auto; margin-bottom:12px; padding-bottom:2px; scrollbar-width:none; }
.pg-filters::-webkit-scrollbar{ display:none; }
.pg-filters button{ flex-shrink:0; padding:8px 13px; border-radius:999px; border:1px solid var(--border); background:var(--surface);
  color:var(--text-secondary); font:inherit; font-size:12.5px; font-weight:800; cursor:pointer; }
.pg-filters button.on{ background:var(--text-primary); color:var(--bg); border-color:var(--text-primary); }
.pg-sent{ display:flex; gap:12px; align-items:center; padding:12px 14px; background:var(--surface); border:1px solid var(--border);
  border-radius:var(--radius-md, 14px); margin-bottom:8px; cursor:pointer; text-align:left; width:100%; font:inherit; color:inherit; }
.pg-sent:hover{ border-color:var(--purple); }
.pg-av{ width:42px; height:42px; border-radius:50%; flex-shrink:0; display:grid; place-items:center; background:var(--purple-tint); color:var(--purple);
  font-weight:800; overflow:hidden; font-size:14px; }
.pg-av img{ width:100%; height:100%; object-fit:cover; }
.pg-when{ font-size:11.5px; color:var(--text-muted); white-space:nowrap; }

/* sheet */
.pg-modal{ position:fixed; inset:0; z-index:9000; background:rgba(0,0,0,.5); display:flex; align-items:flex-end; justify-content:center; padding:10px; }
.pg-sheet{ width:min(560px, 100%); max-height:92vh; overflow:auto; background:var(--surface); color:var(--text-primary);
  border-radius:22px; padding:18px; box-shadow:0 20px 60px rgba(0,0,0,.35); }
.pg-sheet h3{ font-size:17px; margin:0 0 2px; }
.pg-rows{ margin:12px 0; border:1px solid var(--border); border-radius:14px; overflow:hidden; }
.pg-kv{ display:flex; justify-content:space-between; gap:12px; padding:10px 12px; font-size:13px; border-bottom:1px solid var(--border); }
.pg-kv:last-child{ border-bottom:none; }
.pg-kv span:first-child{ color:var(--text-secondary); }
.pg-kv span:last-child{ font-weight:700; text-align:right; overflow-wrap:anywhere; }
.pg-receipt{ border-radius:14px; overflow:hidden; border:1px solid var(--border); background:var(--surface-2); text-align:center; min-height:80px; }
.pg-receipt img{ display:block; width:100%; height:auto; }
.pg-status{ display:grid; grid-template-columns:repeat(3, 1fr); gap:8px; margin:12px 0 10px; }
.pg-status button{ padding:11px 6px; border-radius:12px; border:1.5px solid var(--border); background:var(--surface); color:var(--text-primary);
  font:inherit; font-size:12.5px; font-weight:800; cursor:pointer; }
.pg-status button.on[data-s="paid"]{ border-color:var(--success); background:var(--success-tint); color:var(--success); }
.pg-status button.on[data-s="half_paid"]{ border-color:var(--warning); background:var(--warning-tint); color:var(--warning); }
.pg-status button.on[data-s="on_hold"]{ border-color:#4338CA; background:#E0E7FF; color:#4338CA; }
.pg-sheet textarea{ width:100%; box-sizing:border-box; min-height:70px; padding:10px 12px; border-radius:12px; border:1px solid var(--border);
  background:var(--surface-2); color:var(--text-primary); font:inherit; font-size:14px; resize:vertical; }
@media (min-width:640px){ .pg-modal{ align-items:center; } }
