.bank-shell { max-width: 1160px; }
.bank-admin-workspace,
.bank-student-workspace { display: grid; gap: 1rem; }
.bank-policy-form { display: grid; gap: .85rem; grid-template-columns: repeat(4, minmax(0, 1fr)); }
.bank-policy-form label,
.bank-transfer-form label { display: grid; gap: .35rem; color: var(--muted); font-size: .9rem; }
.bank-policy-form input,
.bank-policy-form select,
.bank-transfer-form input,
.bank-transfer-form select { width: 100%; }
.bank-check { align-content: center; grid-template-columns: auto 1fr !important; }
.bank-check input { width: auto; }
.bank-wide { grid-column: 1 / -1; }
.bank-tier-list { display: grid; gap: .55rem; }
.bank-tier-row { display: grid; grid-template-columns: 1fr 1.4fr 1fr 1fr auto; gap: .5rem; align-items: end; }
.bank-summary { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: .75rem; margin: 0; }
.bank-summary div { padding: .9rem; border: 1px solid var(--line); border-radius: 14px; background: #f8fafc; }
.bank-summary dt { color: var(--muted); font-size: .85rem; }
.bank-summary dd { margin: .25rem 0 0; font-size: 1.15rem; font-weight: 750; }
.bank-settlement-actions { display: flex; flex-wrap: wrap; gap: .65rem; align-items: end; }
.bank-settlement-actions label { display: grid; gap: .3rem; }
.bank-preview { margin: .9rem 0 0; padding: .85rem; border-radius: 12px; background: #eef6ff; }
.bank-transfer-form { display: grid; grid-template-columns: minmax(150px, .7fr) 1fr auto; gap: .75rem; align-items: end; }
.bank-policy-note { margin: .75rem 0 0; color: var(--muted); }
.bank-product-form { display: grid; gap: .8rem; grid-template-columns: repeat(3, minmax(0, 1fr)); }
.bank-product-form > label,
.bank-product-fields label,
.bank-product-join label { display: grid; gap: .35rem; color: var(--muted); font-size: .9rem; }
.bank-product-fields { display: grid; gap: .75rem; grid-template-columns: repeat(4, minmax(0, 1fr)); }
.bank-product-list,
.bank-contract-list { display: grid; gap: .75rem; grid-template-columns: repeat(2, minmax(0, 1fr)); margin-top: 1rem; }
.bank-product-card,
.bank-contract-card { padding: 1rem; border: 1px solid var(--line); border-radius: 14px; background: #fff; }
.bank-product-card h3,
.bank-contract-card h3 { margin: .15rem 0 .5rem; }
.bank-product-join { display: grid; grid-template-columns: 1fr auto; gap: .6rem; align-items: end; margin-top: .8rem; }
.bank-contract-actions { display: flex; flex-wrap: wrap; gap: .5rem; margin-top: .8rem; }
.bank-loan-form { display: grid; gap: .8rem; grid-template-columns: repeat(4, minmax(0, 1fr)); }
.bank-loan-form > label { display: grid; gap: .35rem; color: var(--muted); font-size: .9rem; }
.bank-loan-form input,
.bank-loan-form select { width: 100%; }
.bank-loan-checks { display: grid; gap: .45rem; padding: .8rem; border: 1px solid var(--line); border-radius: 12px; }
.bank-loan-checks label { display: flex; gap: .45rem; align-items: start; }
.bank-loan-checks input { width: auto; margin-top: .2rem; }
@media (max-width: 820px) {
  .bank-policy-form,
  .bank-summary,
  .bank-product-form,
  .bank-product-list,
  .bank-contract-list,
  .bank-loan-form { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .bank-product-fields { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .bank-tier-row { grid-template-columns: 1fr 1fr; }
  .bank-transfer-form { grid-template-columns: 1fr; }
}
@media (max-width: 520px) {
  .bank-policy-form,
  .bank-summary,
  .bank-product-form,
  .bank-product-list,
  .bank-contract-list,
  .bank-product-fields,
  .bank-loan-form { grid-template-columns: 1fr; }
}
