.payment-control { margin-top: 22px; }
.payment-control h3 { margin-bottom: 8px; }
.payment-control > p { max-width: 720px; }
.route-warning { color: #a34b15; font-weight: 650; }
.route-options { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; margin: 20px 0; }
.route-options label { display: grid; grid-template-columns: auto 1fr; column-gap: 12px; row-gap: 4px; align-items: center; padding: 16px; border: 1px solid #cbd5e1; border-radius: 14px; background: #f8fafc; cursor: pointer; }
.route-options label:has(input:checked) { border-color: #3559d6; background: #eef2ff; box-shadow: 0 0 0 2px #3559d622; }
.route-options input { grid-row: span 2; width: 18px; height: 18px; accent-color: #3559d6; }
.route-options small { color: #64748b; }
.route-options label:focus-within { outline: 2px solid #3559d6; outline-offset: 2px; }
.price-panel { margin: 16px 0; }
.price-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 14px; }
.price-grid label { min-width: 0; }
.price-grid input { width: 100%; font-variant-numeric: tabular-nums; }
.price-grid small { color: #66758a; font-size: 12px; font-weight: 500; line-height: 1.4; }
.price-preview { border-radius: 10px; background: #f1f5f9; padding: 12px 14px; font-weight: 700; color: #203f60 !important; }
.plan-grid { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 14px; margin-top: 20px; }
.plan-card { border: 1px solid #dfe5ec; border-radius: 14px; padding: 18px; background: #fbfcfd; align-content: start; }
.plan-head { display: flex; align-items: start; justify-content: space-between; gap: 8px; }
.plan-head small { color: #728198; font-size: 11px; overflow-wrap: anywhere; }
.plan-head h4 { font-size: 20px; margin: 4px 0 0; }
.plan-fields { display: grid; gap: 10px; }
.plan-fields input { width: 100%; font-variant-numeric: tabular-nums; }
.plan-enabled { display: flex !important; flex-direction: row; align-items: center; gap: 8px; min-height: 44px; }
.plan-enabled input { min-height: 20px; width: 20px; accent-color: #203f60; }
@media (max-width: 1080px) { .plan-grid { grid-template-columns: 1fr; } }
@media (max-width: 760px) { .price-grid { grid-template-columns: 1fr; } }
#payment-save[disabled], #payment-confirm[disabled] { opacity: .55; cursor: wait; }
@media (max-width: 680px) { .route-options { grid-template-columns: 1fr; } }
