// ─── Page shell ───────────────────────────────────────────────────────────── .page { min-height: 100dvh; display: flex; align-items: center; justify-content: center; padding: 16px; background: linear-gradient(135deg, #1e40af 0%, #2563eb 40%, #0ea5e9 100%); @media (max-width: 480px) { align-items: flex-end; padding: 0; min-height: 50dvh; } } // ─── Card ──────────────────────────────────────────────────────────────────── .card { background: #ffffff; border-radius: 24px; width: 100%; max-width: 400px; box-shadow: 0 24px 60px rgba(0, 0, 0, 0.18); overflow: hidden; @media (max-width: 480px) { border-radius: 24px 24px 0 0; max-width: 100%; box-shadow: 0 -8px 40px rgba(0, 0, 0, 0.15); } &__header { background: linear-gradient(135deg, #1e40af 0%, #2563eb 100%); padding: 32px 28px 28px; text-align: center; @media (max-width: 480px) { padding: 28px 24px 24px; } } &__title { color: #ffffff; font-size: 22px; font-weight: 700; margin: 14px 0 4px; letter-spacing: -0.3px; } &__subtitle { color: rgba(255, 255, 255, 0.7); font-size: 13px; margin: 0; } &__body { padding: 28px 28px 20px; @media (max-width: 480px) { padding: 24px 20px 16px; } } &__footer { padding: 0 28px 24px; display: flex; justify-content: center; @media (max-width: 480px) { padding: 0 20px 32px; } } } // ─── Logo ──────────────────────────────────────────────────────────────────── .sbp-logo { display: inline-flex; align-items: center; justify-content: center; background: rgba(255, 255, 255, 0.15); backdrop-filter: blur(8px); border-radius: 16px; padding: 12px 20px; border: 1px solid rgba(255, 255, 255, 0.25); img { height: 40px; display: block; @media (max-width: 480px) { height: 34px; } } } // ─── Field ─────────────────────────────────────────────────────────────────── .field { margin-bottom: 16px; &__label { display: block; font-size: 13px; font-weight: 600; color: #64748b; margin-bottom: 8px; text-transform: uppercase; letter-spacing: 0.6px; } &__error { display: block; margin-top: 6px; font-size: 13px; color: #ef4444; font-weight: 500; } } // ─── Amount input ──────────────────────────────────────────────────────────── .input-wrap { display: flex; align-items: center; border: 2px solid #e2e8f0; border-radius: 14px; background: #f8fafc; transition: border-color 0.2s, box-shadow 0.2s, background 0.2s; &:focus-within { border-color: #2563eb; box-shadow: 0 0 0 4px rgba(37, 99, 235, 0.12); background: #ffffff; } &--error { border-color: #ef4444; box-shadow: 0 0 0 4px rgba(239, 68, 68, 0.1); } &__prefix { padding: 0 4px 0 18px; font-size: 26px; font-weight: 700; color: #2563eb; user-select: none; line-height: 1; } &__input { flex: 1; border: none; background: transparent; padding: 16px 16px 16px 8px; font-size: 32px; font-weight: 700; color: #0f172a; outline: none; min-width: 0; font-family: inherit; &::placeholder { color: #cbd5e1; } // Remove number spinners &::-webkit-outer-spin-button, &::-webkit-inner-spin-button { -webkit-appearance: none; margin: 0; } -moz-appearance: textfield; @media (max-width: 480px) { font-size: 28px; padding: 14px 14px 14px 6px; } } } // ─── Currency badge ────────────────────────────────────────────────────────── .currency-badge { display: flex; align-items: center; gap: 10px; background: #f1f5f9; border-radius: 12px; padding: 12px 16px; margin-bottom: 20px; &__flag { font-size: 22px; line-height: 1; } &__code { font-size: 15px; font-weight: 700; color: #0f172a; } &__name { font-size: 13px; color: #64748b; margin-left: auto; } } // ─── Pay button ────────────────────────────────────────────────────────────── .pay-btn { width: 100%; display: flex; align-items: center; justify-content: center; gap: 10px; padding: 17px 24px; background: linear-gradient(135deg, #1e40af 0%, #2563eb 100%); color: #ffffff; border: none; border-radius: 14px; font-size: 17px; font-weight: 700; letter-spacing: 0.2px; cursor: pointer; transition: opacity 0.15s, transform 0.1s, box-shadow 0.15s; box-shadow: 0 6px 20px rgba(37, 99, 235, 0.38); font-family: inherit; @media (max-width: 480px) { padding: 16px 24px; font-size: 16px; } &:hover { opacity: 0.92; box-shadow: 0 8px 28px rgba(37, 99, 235, 0.45); } &:active { transform: scale(0.98); opacity: 0.88; } &__icon { display: flex; align-items: center; } } // ─── Secure badge ──────────────────────────────────────────────────────────── .secure-badge { display: inline-flex; align-items: center; gap: 6px; font-size: 12px; color: #94a3b8; font-weight: 500; svg { flex-shrink: 0; } }