.payment-method-grid { display:grid; grid-template-columns:repeat(auto-fit,minmax(min(100%,260px),1fr)); gap:16px; }
.payment-method-card { min-width:0; margin:0; padding:18px; border:1px solid var(--border-color,#d6dce0); border-radius:12px; }
.payment-method-card legend,.payment-method-card h4 { font-weight:700; margin:0 0 10px; }
.payment-method-card label { display:grid; gap:6px; margin-bottom:12px; }
.payment-method-card input:not([type=checkbox]),.payment-method-card textarea { width:100%; min-width:0; box-sizing:border-box; }
.payment-method-card .payment-method-toggle { display:flex; align-items:center; gap:10px; }
.payment-method-toggle input { width:40px; height:22px; accent-color:var(--accent,#477463); }
.payment-recipient,.payment-instructions { white-space:pre-wrap; overflow-wrap:anywhere; }
.customer-payment-methods { margin-top:18px; }
.payment-link { display:inline-block; padding:10px 14px; border:1px solid currentColor; border-radius:8px; }
.payment-method-toggle input { appearance:none; position:relative; border:1px solid #7d8782; border-radius:20px; background:#d9dfdc; cursor:pointer; flex-shrink:0; }
.payment-method-toggle input::before { content:''; position:absolute; top:2px; left:2px; width:16px; height:16px; border-radius:50%; background:white; box-shadow:0 1px 3px #0003; transition:transform .15s; }
.payment-method-toggle input:checked { background:#386c52; }
.payment-method-toggle input:checked::before { transform:translateX(18px); }
.payment-method-toggle input:focus-visible { outline:2px solid #386c52; outline-offset:3px; }

.customer-stay-breakdown .estimate-line {gap:8px;align-items:start;overflow-wrap:anywhere}
.customer-stay-breakdown .estimate-line>span:last-child {text-align:right;font-variant-numeric:tabular-nums}
.portal-stay-services .stay-invoice-summary {margin:0;padding:10px;background:transparent}
.checkout-payment-required {border:2px solid #ba7620;border-radius:10px;padding:14px;margin-top:14px;background:#fff6e6;color:#473011}
@media(max-width:700px){.customer-stay-breakdown .estimate-line{display:grid;grid-template-columns:minmax(0,1fr)}.customer-stay-breakdown .estimate-line>span:last-child{justify-self:end}.checkout-invoice-actions{flex-wrap:wrap}}
.customer-stay-breakdown .estimate-total {gap:8px;flex-wrap:wrap;padding:8px}
body.role-customer .customer-stay-breakdown .estimate-total span {font-size:18px;white-space:nowrap;flex-shrink:0}
@media(max-width:700px){.portal-stay-facts>.portal-stay-services{grid-template-columns:minmax(0,1fr)}.portal-stay-services dt{align-items:start}.portal-stay-services .stay-invoice-summary{padding:8px;box-shadow:none}.customer-stay-breakdown .estimate-line{gap:3px;margin-bottom:10px}}
