.delivery-options > .scene-contract-planner { grid-column: 1 / -1; min-width: 0; max-width: 100%; }
.scene-contract-planner { display: grid; gap: 24px; width: 100%; min-width: 0; }
.scene-contract-intro { display: flex; align-items: center; justify-content: space-between; gap: 18px; padding: 18px 20px; border: 1px solid #dfe2eb; border-radius: 18px; background: #f8f8ff; }
.scene-contract-intro > span:first-child { display: grid; gap: 4px; min-width: 0; }
.scene-contract-intro strong { font-size: 18px; color: #101115; }
.scene-contract-intro small { color: #687087; line-height: 1.45; }
.scene-contract-total { flex: 0 0 auto; padding: 10px 14px; border-radius: 999px; background: #eef0ff; color: #4e5de6; font-weight: 800; }
.scene-contract-total.invalid { background: #fff3df; color: #9b6200; }
.scene-contract-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 14px; min-width: 0; }
.scene-contract-style { min-width: 0; overflow: hidden; border: 1px solid #dfe2eb; border-radius: 18px; background: #fff; transition: .2s ease; }
.scene-contract-style.selected { border-color: #7582ff; box-shadow: 0 0 0 1px rgba(96, 111, 255, .12); }
.scene-contract-style > header { display: flex; align-items: flex-start; justify-content: space-between; gap: 12px; padding: 18px; border-bottom: 1px solid #edf0f5; }
.scene-contract-style > header span { display: grid; gap: 5px; min-width: 0; }
.scene-contract-style > header strong { font-size: 17px; color: #121318; }
.scene-contract-style > header small { color: #70788d; line-height: 1.4; }
.scene-contract-style > header em { flex: 0 0 auto; font-style: normal; white-space: nowrap; padding: 6px 9px; border-radius: 999px; background: #f1f2f7; color: #666d80; font-size: 12px; font-weight: 800; }
.scene-contract-style.selected > header em { background: #eef0ff; color: #5362ed; }
.scene-contract-style > div { display: grid; min-width: 0; }
.scene-contract-ratio { display: flex; align-items: center; justify-content: space-between; gap: 14px; min-width: 0; padding: 12px 16px; border-bottom: 1px solid #f0f1f5; }
.scene-contract-ratio:last-child { border-bottom: 0; }
.scene-contract-ratio.active { background: #fafaff; }
.scene-contract-ratio > span { display: grid; gap: 2px; min-width: 0; }
.scene-contract-ratio strong { font-size: 14px; color: #202128; }
.scene-contract-ratio small { color: #7a8193; font-size: 12px; line-height: 1.35; overflow-wrap: anywhere; }
.scene-contract-counter { display: grid; grid-template-columns: 34px 40px 34px; min-width: 110px; overflow: hidden; flex: 0 0 auto; border: 1px solid #d8dce7; border-radius: 11px; background: #fff; }
.scene-contract-counter button, .scene-contract-counter input { height: 34px; border: 0; background: #fff; text-align: center; font: inherit; font-weight: 800; color: #18191e; }
.scene-contract-counter button { cursor: pointer; font-size: 18px; }
.scene-contract-counter button:hover { background: #eff1ff; color: #5260e8; }
.scene-contract-counter input { width: 40px; border-left: 1px solid #e2e5ed; border-right: 1px solid #e2e5ed; }
.scene-contract-style > footer { padding: 11px 16px; border-top: 1px solid #edf0f5; background: #f8faf9; color: #237454; font-size: 12px; font-weight: 700; }
.scene-contract-delivery { display: grid; gap: 10px; padding: 19px 20px; border: 1px solid #cfe8dc; border-radius: 18px; background: #f4fbf7; }
.scene-contract-delivery > strong { color: #113d2d; font-size: 16px; }
.scene-contract-delivery > div { display: grid; gap: 6px; }
.scene-contract-delivery > div span { position: relative; padding-left: 20px; color: #244f40; line-height: 1.45; }
.scene-contract-delivery > div span::before { content: '✓'; position: absolute; left: 0; color: #159261; font-weight: 900; }
.scene-contract-delivery > small { color: #5e776d; line-height: 1.45; }
.scene-contract-summary { display: grid !important; gap: 4px; }
.scene-contract-summary span { line-height: 1.45; }
@media (max-width: 760px) {
  .scene-contract-intro { align-items: flex-start; flex-direction: column; }
  .scene-contract-grid { grid-template-columns: 1fr; }
  .scene-contract-ratio { align-items: flex-start; }
  .scene-contract-ratio small { max-width: 190px; }
}
@media (max-width: 420px) {
  .scene-contract-ratio { gap: 10px; padding: 12px; }
  .scene-contract-counter { grid-template-columns: 32px 36px 32px; min-width: 102px; }
  .scene-contract-counter input { width: 36px; }
}