.pay-shell { width: min(1020px, 94vw); }
.pay-layout { display: grid; grid-template-columns: minmax(360px, 1.05fr) minmax(300px, 0.95fr); gap: 1rem; align-items: start; }
.pay-card { border: 1px solid var(--border); border-radius: 16px; background: linear-gradient(160deg, #fff 0%, #fefcf8 100%); box-shadow: var(--shadow); padding: 1rem; }
.pay-card h2 { margin: 0 0 .8rem; font-size: 1.08rem; }
.pay-field { margin-bottom: .9rem; }
.pay-field label { display: block; margin-bottom: .35rem; font-weight: 600; font-size: .9rem; }
.pay-field input, .pay-field select { width: 100%; border-radius: 10px; border: 1px solid var(--border); background: #fdfcf8; color: #1f1f1f; font-family: "IBM Plex Mono", monospace; font-size: .9rem; padding: .58rem .65rem; }
.pay-grid-2 { display: grid; grid-template-columns: 1fr 1fr; gap: .65rem; }
.toggle-row { display: flex; align-items: center; gap: .55rem; margin: 0 0 .85rem; font-size: .92rem; color: #2f2a24; }
.toggle-row input { width: 1.05rem; height: 1.05rem; }
.detail-panel { margin-bottom: .9rem; padding: .75rem; border: 1px solid #e5ddd1; border-radius: 12px; background: #fff; }
.detail-total { margin: .2rem 0 0; padding: .5rem .58rem; border: 1px solid #e5ddd1; border-radius: 10px; background: #fefcf8; color: #4f483f; font-size: .86rem; }
.input-prefix-wrap { position: relative; }
.input-prefix { position: absolute; left: .7rem; top: 50%; transform: translateY(-50%); color: #5f574e; pointer-events: none; }
.input-prefix-wrap input { padding-left: 1.5rem; }
.result-grid { display: grid; gap: .62rem; }
.result-line { display: flex; justify-content: space-between; align-items: baseline; gap: .8rem; padding: .6rem .65rem; border: 1px solid #e5ddd1; border-radius: 12px; background: #fff; }
.result-line span { color: #5f574e; font-size: .92rem; }
.result-line strong { font-family: "IBM Plex Mono", monospace; font-size: 1rem; }
.final-line { border-color: #b6d8ca; background: #eefaf5; }
.final-line strong { color: #0e5b45; font-size: 1.08rem; }
.note { margin: .8rem 0 0; padding: .62rem .68rem; border: 1px solid #e5ddd1; border-radius: 12px; background: #fff; color: #4f483f; font-size: .86rem; line-height: 1.35; }
@media (max-width: 900px) { .pay-layout { grid-template-columns: 1fr; } .pay-grid-2 { grid-template-columns: 1fr; } }
