/* Transfer pages only. The existing mobile home layout is unchanged. */
.transfer-content { padding: 20px 18px 28px; }
.transfer-steps { display: flex; align-items: center; justify-content: center; gap: 12px; margin: 0 0 26px; font-size: 12px; color: #8b7582; }
.transfer-steps > span { display: flex; align-items: center; gap: 7px; white-space: nowrap; }
.transfer-steps b { display: grid; place-items: center; width: 25px; height: 25px; border-radius: 50%; border: 1px solid #e8bbce; font-size: 12px; font-weight: 700; }
.transfer-steps i { height: 1px; width: 32px; flex-shrink: 1; background: #ebbad0; }
.transfer-steps .is-current { color: #c60a57; font-weight: 700; }
.transfer-steps .is-current b { color: white; border-color: #e22873; background: linear-gradient(130deg, #ff6a9b, #db095f); box-shadow: 0 2px 7px #e7357e30; }
.transfer-steps .is-complete b { color: #c60a57; background: #fbd5e5; }
.transfer-intro { display: flex; align-items: center; gap: 13px; margin: 0 3px 22px; }
.transfer-hero-icon { display: grid; place-items: center; width: 49px; height: 49px; flex-shrink: 0; border: 1px solid #fff; border-radius: 16px; background: linear-gradient(140deg, #fff8fb, #fac6dd); box-shadow: 0 3px 9px #dd6b9b19; color: #d80a60; }
.transfer-hero-icon .icon { width: 27px; height: 27px; }
.transfer-intro h2, .transfer-review-heading h2 { margin: 0 0 6px; font-size: 18px; line-height: 1.35; }
.transfer-intro p, .transfer-review-heading p { margin: 0; font-size: 12px; line-height: 1.6; color: #806777; }
.transfer-form { padding: 23px 20px 21px; border-radius: 23px; }
.transfer-field { margin-bottom: 22px; min-width: 0; }
.transfer-field > label { display: block; margin: 0 0 10px; font-size: 14px; font-weight: 700; line-height: 1.4; }
.required-mark { color: #c40c53; }
.optional-label { font-size: 12px; font-weight: 400; color: #806777; }
.input-wrap { position: relative; }
.transfer-field input, .bank-trigger { width: 100%; min-height: 53px; padding: 14px 13px; border: 1px solid #edc4d5; border-radius: 13px; color: var(--ink); background: #fff9fc; font-size: 16px; line-height: 1.4; outline: none; transition: border-color .15s, box-shadow .15s; }
.transfer-field input::placeholder { color: #9c8592; font-size: 14px; opacity: 1; }
.transfer-field input:focus, .bank-trigger:focus-visible { border-color: #e53179; box-shadow: 0 0 0 3px #f7a7c532; outline: none; }
.transfer-field [aria-invalid="true"] { border-color: #be1748; background-color: #fff5f8; }
.amount-input-wrap input { padding-right: 71px; font-size: 23px; font-weight: 700; font-variant-numeric: tabular-nums; }
.currency-tag { position: absolute; right: 12px; top: 50%; transform: translateY(-50%); border-left: 1px solid #edc4d5; padding-left: 12px; color: #c5185e; font-size: 14px; font-weight: 700; pointer-events: none; }
.field-hint { margin: 8px 1px 0; color: #806777; font-size: 11px; line-height: 1.6; }
.field-error { margin: 7px 1px 0; font-size: 12px; line-height: 1.5; color: #aa123f; }
.form-summary { margin: 0 0 18px; padding: 10px 12px; border-radius: 10px; background: #fce1ea; color: #a11647; font-size: 12px; line-height: 1.6; }
.bank-trigger { display: flex; align-items: center; gap: 11px; text-align: left; padding: 12px; }
.bank-trigger:active { transform: none; }
.bank-trigger-icon { color: #d6266f; }
.bank-trigger-icon .icon { width: 26px; height: 26px; }
.bank-trigger-copy { flex: 1; min-width: 0; }
.bank-trigger-copy strong { display: block; font-size: 14px; font-weight: 700; overflow-wrap: anywhere; }
.bank-trigger-copy strong.is-placeholder { color: #937a88; font-weight: 400; }
.bank-trigger-copy small { display: block; margin-top: 4px; color: #8a7180; font-size: 11px; }
.select-chevron { color: #cc286b; font-size: 23px; line-height: 1; }
.transfer-primary, .transfer-secondary { display: flex; align-items: center; justify-content: center; gap: 12px; width: 100%; min-height: 51px; padding: 13px 15px; border-radius: 14px; font-size: 15px; font-weight: 700; line-height: 1.4; }
.transfer-primary { color: #fff; background: radial-gradient(at 0 0, #ff8aa8, transparent 55%), linear-gradient(115deg, #f02770, #cf0964); border: 1px solid #f270a3; box-shadow: 0 3px 7px #e22b6e26, inset 0 1px 1px #ffadc4; }
.transfer-primary:disabled { color: #9d7b8b; background: #efdde5; border-color: #ead4df; box-shadow: none; cursor: default; filter: none; transform: none; }
.transfer-secondary { color: #bd1757; border: 1px solid #eeb9cf; background: #fff6fb; }
.transfer-notice { display: flex; align-items: flex-start; gap: 8px; margin: 18px 7px 0; color: #876578; font-size: 11px; line-height: 1.7; }
.transfer-notice > .icon { width: 17px; height: 17px; margin-top: 1px; color: #b82c65; }
.quote-card { margin-top: 18px; padding: 18px 19px 14px; background: #fff7fbc4; border: 1px solid #f1c7d9; border-radius: 19px; }
.quote-card h2 { margin: 0 0 14px; font-size: 14px; }
.quote-card dl { margin: 0; }
.quote-card dl > div { display: flex; justify-content: space-between; gap: 12px; margin-top: 11px; font-size: 12px; }
.quote-card dt { color: #806777; }
.quote-card dd { margin: 0; font-weight: 700; color: #6d3851; }
.quote-card .quote-total { border-top: 1px solid #efcbdc; padding-top: 13px; margin-top: 14px; font-size: 13px; }
.quote-card .quote-total dd { color: #d80a60; font-size: 18px; }
.quote-card p { margin: 12px 0 0; color: #987b8b; font-size: 10px; line-height: 1.6; }
.transfer-review-heading { text-align: center; margin: 0 0 23px; }
.transfer-review-heading .transfer-hero-icon { margin: 0 auto 15px; }
.review-card { padding: 21px 20px 8px; border-radius: 23px; }
.review-amount { padding-bottom: 20px; border-bottom: 1px solid #f1c5d8; text-align: center; }
.review-amount > span { display: block; font-size: 12px; color: #896777; margin-bottom: 9px; }
.review-amount strong { display: block; color: #d91262; font-size: 27px; line-height: 1.3; overflow-wrap: anywhere; font-variant-numeric: tabular-nums; }
.review-details { margin: 0; }
.review-details > div { display: flex; justify-content: space-between; align-items: flex-start; gap: 15px; padding: 16px 0; border-bottom: 1px solid #f5dce6; font-size: 12px; line-height: 1.5; }
.review-details > div:last-child { border: 0; }
.review-details dt { color: #896777; flex: 0 0 34%; }
.review-details dd { margin: 0; text-align: right; font-weight: 700; overflow-wrap: anywhere; min-width: 0; }
.review-actions { display: grid; gap: 11px; margin-top: 20px; }
.unavailable-message { margin-top: 18px; padding: 15px 17px; background: #fce2ec; border: 1px solid #edaac6; border-radius: 14px; color: #8e254e; }
.unavailable-message strong { font-size: 13px; }
.unavailable-message p { margin: 7px 0 0; font-size: 12px; line-height: 1.65; }

html.bank-sheet-open { overflow: hidden; }
.bank-dialog { display: none; position: fixed; inset: auto 0 var(--sheet-bottom, 0px); margin: 0 auto; width: min(100%, 430px); max-width: 430px; max-height: min(84dvh, 730px); padding: 0; border: 1px solid #fff2f8; border-bottom: 0; border-radius: 27px 27px 0 0; color: var(--ink); background: #fff6fa; overflow: hidden; box-shadow: 0 -8px 40px #66223e30; }
.bank-dialog[open] { display: flex; flex-direction: column; animation: bank-sheet-enter .24s cubic-bezier(.2,.75,.25,1); }
.bank-dialog::backdrop { background: #43132966; backdrop-filter: blur(2px); }
.sheet-handle { width: 36px; height: 4px; margin: 10px auto 4px; flex-shrink: 0; background: #e5b8ca; border-radius: 5px; }
.bank-sheet-header { display: flex; align-items: center; justify-content: space-between; gap: 10px; padding: 8px 18px 13px; flex-shrink: 0; }
.bank-sheet-header h2 { margin: 0; font-size: 19px; line-height: 1.35; }
.bank-sheet-header p { margin: 5px 0 0; color: #8d6b7b; font-size: 11px; }
.sheet-close { display: grid; place-items: center; width: 44px; height: 44px; flex-shrink: 0; font-size: 29px; font-weight: 400; color: #a6486e; border-radius: 50%; }
.bank-search-wrap { position: relative; display: flex; align-items: center; margin: 0 18px 13px; flex-shrink: 0; }
.bank-search-wrap > span { position: absolute; left: 13px; font-size: 26px; color: #b7547c; pointer-events: none; }
.bank-search-wrap input { width: 100%; min-height: 46px; padding: 11px 53px 11px 40px; border: 1px solid #edc7d7; border-radius: 12px; background: #fff; color: var(--ink); font: inherit; font-size: 16px; outline: none; }
.bank-search-wrap input:focus { border-color: #de3379; box-shadow: 0 0 0 3px #f8c8dc6b; }
.bank-search-wrap input::placeholder { font-size: 13px; color: #a17c8f; }
.bank-search-wrap input::-webkit-search-cancel-button { display: none; }
.bank-search-wrap button { position: absolute; right: 2px; min-width: 44px; min-height: 44px; font-size: 12px; color: #c90e5a; }
.bank-country-filters { display: flex; gap: 7px; margin: 0 18px 8px; flex-shrink: 0; }
.bank-country-filters button { flex: 1; min-width: 0; min-height: 44px; padding: 9px 8px; border-radius: 11px; font-size: 12px; border: 1px solid #efd3df; color: #886173; background: #fffafd; }
.bank-country-filters button[aria-pressed="true"] { color: #ce135d; border-color: #ea92b6; background: #ffe2ef; font-weight: 700; }
.bank-list { overflow-y: auto; overscroll-behavior-y: contain; -webkit-overflow-scrolling: touch; flex: 1 1 auto; min-height: 90px; padding: 0 18px 10px; scrollbar-width: thin; scrollbar-color: #ebadca transparent; }
.bank-country-group h3 { display: flex; justify-content: space-between; gap: 10px; margin: 16px 1px 7px; font-size: 12px; color: #98617a; }
.bank-country-group h3 span { font-size: 10px; font-weight: 400; color: #a28795; }
.bank-option { display: flex; align-items: center; width: 100%; min-height: 67px; gap: 11px; padding: 11px 10px; margin-bottom: 6px; border: 1px solid #f2dce6; border-radius: 13px; background: #fffcfd; text-align: left; }
.bank-option:active { transform: none; }
.bank-option.is-selected { border-color: #e5538e; background: #ffe9f2; }
.bank-badge { display: grid; place-items: center; width: 39px; height: 39px; flex-shrink: 0; border-radius: 11px; color: #b7185b; background: linear-gradient(135deg, #ffedf5, #f4ccde); border: 1px solid #f6d8e6; font-size: 10px; font-weight: 700; letter-spacing: -.025em; }
.bank-option-copy { flex: 1; min-width: 0; }
.bank-option-copy strong { display: block; font-size: 13px; font-weight: 700; line-height: 1.45; overflow-wrap: anywhere; }
.bank-option-copy small { display: block; margin-top: 4px; font-size: 10px; line-height: 1.5; color: #967284; }
.bank-radio { width: 19px; height: 19px; border: 1.5px solid #dfbdcd; border-radius: 50%; flex-shrink: 0; }
.is-selected .bank-radio { border: 5px solid #e62676; background: white; }
.bank-empty { padding: 28px 0; text-align: center; color: #926e80; font-size: 13px; line-height: 1.8; }
.bank-sheet-footer { padding: 9px 18px calc(13px + env(safe-area-inset-bottom, 0px)); border-top: 1px solid #f0cbdc; background: #fff5fa; box-shadow: 0 -3px 12px #edb6ce17; flex-shrink: 0; }
.bank-sheet-footer p { margin: 0 0 8px; font-size: 11px; line-height: 1.5; color: #956379; overflow-wrap: anywhere; }
.bank-sheet-footer small { display: block; margin-top: 9px; text-align: center; color: #987a8a; font-size: 10px; line-height: 1.4; }
@media (max-width: 350px) { .transfer-content { padding: 18px 13px 25px; } .transfer-form { padding: 20px 15px; } .transfer-intro h2 { font-size: 16px; } .transfer-intro { gap: 10px; } .transfer-intro p { font-size: 11px; } .transfer-steps { gap: 9px; font-size: 11px; } .bank-country-filters { gap: 5px; } .bank-country-filters button { padding: 9px 5px; } }
@media (prefers-reduced-motion: reduce) { .bank-dialog[open] { animation: none; } }
@keyframes bank-sheet-enter { from { opacity: .3; translate: 0 65px; } to { opacity: 1; translate: 0 0; } }
