/* Financial policy and read-only estimates use shared typography tokens. */
.finance-policy, .finance-estimator { margin: 1.5rem 0; border: 1px solid var(--line); border-radius: .5rem; padding: 1.25rem; min-width: 0; }
.finance-rule-grid { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 1.5rem; margin: 1rem 0; }
.finance-rule-grid > article, .finance-inputs > div, .finance-results > article, .finance-totals > div { min-width: 0; }
.finance-rule-grid span, .finance-rule-grid p, .finance-inputs small { font-size: var(--type-caption); line-height: var(--leading-caption); color: var(--muted); }
.finance-rule-grid h3, .finance-results h3 { font-weight: var(--weight-semibold); margin: .5rem 0; }
.finance-estimate-heading { display: flex; flex-wrap: wrap; gap: 1rem; align-items: center; justify-content: space-between; }
.finance-inputs { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 1.25rem; margin: 1.25rem 0; }
.finance-inputs label, .finance-inputs small { display: block; margin: .375rem 0; }
.finance-inputs input, .finance-inputs select { width: 100%; min-width: 0; }
.finance-inputs :disabled { opacity: 1; color: var(--muted); background: #e9e5dc; }
.finance-estimate-status { padding: .75rem 1rem; background: #eeece3; border-radius: .25rem; }
.finance-results { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 1.5rem; margin: 1rem 0; }
.finance-results dl > div { display: grid; grid-template-columns: minmax(0,1fr) auto; align-items: baseline; gap: .5rem; padding: .5rem 0; border-bottom: 1px solid var(--line); }
.finance-results dt { overflow-wrap: anywhere; font-size: var(--type-caption); }
.finance-results dd { margin: 0; text-align: right; }
.finance-totals { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 1rem; margin: 1.5rem 0; }
.finance-totals span { font-size: var(--type-caption); color: var(--muted); }
.finance-totals strong { display: block; font-size: var(--type-price); font-weight: var(--weight-semibold); }
.finance-totals strong span { font-size: inherit; color: var(--ink); }
.finance-error { color: var(--text-danger); padding: 1rem 0; }
@media(max-width: 767px) { .finance-rule-grid, .finance-results, .finance-inputs, .finance-totals { grid-template-columns: minmax(0,1fr); } .finance-rule-grid { gap: 1rem; } .finance-totals > div { display: flex; justify-content: space-between; flex-wrap: wrap; gap: .5rem; } }
.payout-bank-layout .finance-rule-grid { grid-template-columns: minmax(0,1fr); }

.finance-pricing-rule { margin: 1rem 0 .375rem; }
.finance-pricing-rule strong { font-weight: var(--weight-semibold); }

.finance-service-summary { margin: .5rem 0; }
.finance-services fieldset { margin: 0; padding: 0; border: 0; min-width: 0; }
.finance-services legend { font-size: var(--type-control); font-weight: var(--weight-medium); line-height: var(--leading-control); margin: .375rem 0; }
.finance-service-options { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: .25rem .75rem; }
.finance-service-options label { display: flex; align-items: center; gap: .5rem; min-height: 2.75rem; margin: 0; cursor: pointer; }
.finance-inputs .finance-service-options input { width: 1.125rem; min-height: 1.125rem; height: 1.125rem; flex: 0 0 1.125rem; accent-color: var(--ink); }
.finance-service-options span { min-width: 0; overflow-wrap: anywhere; }
@media(max-width:767px) { .finance-service-options { grid-template-columns: minmax(0,1fr); } }
