.payment-documents { list-style: none; margin: 0; padding: 0; }
.payment-panel .edit-link { display: inline-block; font-size: .8125rem; margin-top: .25rem; }
.payment-panel .error-message { margin: 1rem 0; }
.payment-panel .error-message .btn { margin-top: .75rem; }
.payment-fields { padding: 1.25rem 0; }
.payment-fields[inert] { opacity: .6; }
.payment-divider { text-align: center; margin: .75rem 0; color: var(--text-secondary); font-size: .8125rem; }
.card-field h3 { font-size: .875rem; font-weight: 500; margin-bottom: .75rem; }
#card-element { padding: .875rem .75rem; min-height: 50px; border: 1px solid var(--control-border); border-radius: .5rem; background: var(--card-solid); }
#card-element.StripeElement--focus { outline: 3px solid var(--primary); outline-offset: 3px; }
#card-element.StripeElement--invalid { border-color: var(--error-text); }
.payment-loading, .free-payment { margin: 1rem 0; color: var(--text-secondary); font-size: .875rem; line-height: 1.6; }
.secure-badge { text-align: center; margin-top: 1rem; color: var(--text-secondary); font-size: .75rem; }
.payment-panel { min-width: 0; }
@media (min-width: 901px) { .payment-layout { grid-template-columns: minmax(0, 1fr) minmax(360px, .8fr); } }

.payment-discount { margin: 1.25rem 0 .75rem; }
.discount-entry { display: flex; align-items: stretch; gap: .5rem; }
.discount-entry input { flex: 1; width: 0; min-width: 0; }
.discount-entry .btn { flex-shrink: 0; padding: .65rem 1rem; }
.applied-discount { display: flex; justify-content: space-between; align-items: center; flex-wrap: wrap; gap: .5rem; font-size: .875rem; }
.applied-discount .link-button { min-height: 44px; }

.review-panel > .section { padding: 1.5rem; margin-bottom: 1rem; border: 1px solid var(--border-subtle); background: var(--card-solid); border-radius: 1rem; }
.review-panel .section-header { display: flex; justify-content: space-between; gap: 1rem; align-items: center; margin-bottom: 1rem; }
.review-panel .section-title { font-weight: 600; }
.review-panel .document-item { padding: 1rem 0; border-bottom: 1px solid var(--border-subtle); }
.review-panel .document-item:first-child { padding-top: 0; }
.review-panel .document-item:last-child { border: 0; padding-bottom: 0; }
.review-panel .document-details { margin-top: .35rem; color: var(--text-secondary); font-size: .8125rem; line-height: 1.7; }
.review-panel .edit-link { font-size: .875rem; }
.review-panel .address-block { line-height: 1.7; }
