.checkout-page { background-color: var(--bg); } .checkout-section { background-color: var(--surface); margin-bottom: 10px; padding-bottom: 16px; } .address-options, .payment-options { padding: 0 16px; display: flex; flex-direction: column; gap: 12px; } .address-card, .payment-card { display: flex; align-items: center; gap: 12px; padding: 12px; border-radius: 12px; border: 1px solid var(--border); cursor: pointer; position: relative; min-width: 0; } .address-card.selected, .payment-card.selected { border-color: #6366f1; background: rgba(99, 102, 241, 0.05); } .ritz-payment-card { padding: 1.2rem; border-radius: 20px; cursor: default; } .ritz-payment-card.insufficient-state { border: 1px solid rgba(244, 63, 94, 0.3); background: rgba(244, 63, 94, 0.03); position: relative; overflow: hidden; } .ritz-payment-card.insufficient-state::before { content: ''; position: absolute; left: 0; top: 0; bottom: 0; width: 4px; background: #f43f5e; } .status-badge-premium { font-size: 0.65rem; font-weight: 900; padding: 0.25rem 0.75rem; border-radius: 99px; text-transform: uppercase; letter-spacing: 0.05em; box-shadow: 0 4px 12px rgba(0, 0, 0, 0.05); } .status-badge-premium.error { background: #f43f5e; color: white; } .payment-icon.ritz-token-avatar { background: transparent; width: 54px; height: 54px; transform: scale(1.1); filter: drop-shadow(0 4px 12px rgba(99, 102, 241, 0.2)); } .token-image-main { width: 100%; height: 100%; object-fit: contain; } .payment-name-row { display: flex; justify-content: space-between; align-items: center; margin-bottom: 4px; } .wallet-balance-info { display: flex; align-items: center; gap: 6px; font-size: 0.8rem; color: #64748b; font-weight: 500; } .balance-val { font-weight: 700; color: #6366f1; } .insufficient-val { color: #f43f5e !important; text-decoration: line-through; opacity: 0.7; } .add-tokens-checkout-btn { width: 100%; margin-top: 12px; background: white; border: 1.5px dashed rgba(99, 102, 241, 0.4); padding: 1rem; border-radius: 18px; display: flex; align-items: center; justify-content: space-between; color: #6366f1; cursor: pointer; transition: all 0.2s cubic-bezier(0.4, 0, 0.2, 1); } .add-tokens-checkout-btn:active { background: rgba(99, 102, 241, 0.05); transform: scale(0.98); } .add-tokens-checkout-btn .btn-content { display: flex; align-items: center; gap: 10px; font-weight: 800; font-size: 0.9rem; } .payment-security-note { display: flex; align-items: center; justify-content: center; gap: 6px; margin-top: 1.5rem; color: #94a3b8; font-size: 0.75rem; font-weight: 500; } .ritz-text { color: #6366f1 !important; font-weight: 800; } .insufficient-warning-premium { margin: 1.5rem; padding: 1.25rem; background: white; border: 1px solid rgba(244, 63, 94, 0.1); border-radius: 24px; display: flex; align-items: center; gap: 1.25rem; box-shadow: 0 12px 30px -10px rgba(244, 63, 94, 0.15); } .token-warning-visual { width: 60px; height: 60px; position: relative; background: transparent; filter: drop-shadow(0 6px 15px rgba(244, 63, 94, 0.2)); } .token-image-mini { width: 100%; height: 100%; object-fit: contain; transform: rotate(-10deg); } .warning-icon-overlay { position: absolute; bottom: -2px; right: -2px; width: 24px; height: 24px; background: #f43f5e; color: white; border-radius: 8px; display: flex; align-items: center; justify-content: center; border: 2px solid white; box-shadow: 0 4px 8px rgba(244, 63, 94, 0.3); } .shortfall-amount { font-size: 1rem; font-weight: 800; color: #334155; margin-bottom: 0.25rem; } .shortfall-amount .highlight { color: #f43f5e; font-size: 1.1rem; } .warning-instruction { font-size: 0.8rem; font-weight: 500; color: #64748b; margin: 0; } .ritz-order-btn { background: #6366f1 !important; } .ritz-order-btn:disabled { background: var(--bg-secondary) !important; opacity: 0.7; } .loading-spinner-small { width: 20px; height: 20px; border: 2px solid rgba(255, 255, 255, 0.3); border-top-color: white; border-radius: 50%; animation: spin 0.8s linear infinite; } .address-icon, .payment-icon { width: 40px; height: 40px; background-color: var(--bg); border-radius: 10px; display: flex; align-items: center; justify-content: center; color: var(--text-mid); flex-shrink: 0; } .address-card.selected .address-icon, .payment-card.selected .payment-icon { background-color: white; color: var(--primary); } .address-info, .payment-info { flex: 1; display: flex; flex-direction: column; min-width: 0; } .address-type, .payment-name { font-size: 0.95rem; font-weight: 700; color: var(--text-dark); } .address-text, .payment-sub { font-size: 0.75rem; color: var(--text-mid); line-height: 1.4; margin-top: 2px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; } .selection-radio { width: 18px; height: 18px; border: 2px solid var(--border); border-radius: 50%; display: flex; align-items: center; justify-content: center; flex-shrink: 0; } .address-card.selected .selection-radio, .payment-card.selected .selection-radio { border-color: var(--primary); } .radio-inner { width: 8px; height: 8px; border-radius: 50%; background-color: transparent; } .address-card.selected .radio-inner, .payment-card.selected .radio-inner { background-color: var(--primary); } .add-address { display: flex; align-items: center; justify-content: center; gap: 8px; padding: 12px; border: 1px dashed var(--primary); border-radius: 12px; color: var(--primary); font-weight: 700; font-size: 0.9rem; margin-top: 4px; } .upi-placeholder { font-weight: 800; font-size: 0.7rem; } .order-summary-mini { background-color: var(--surface); padding: 16px; } .summary-row { display: flex; justify-content: space-between; align-items: center; font-size: 1rem; font-weight: 600; } .section-subtitle { font-size: 0.8rem; color: var(--text-mid); margin-top: 4px; } .upi-app-icon { width: 24px; height: 24px; object-fit: contain; } .tax-info { font-size: 0.75rem; color: var(--text-mid); margin-top: 8px; text-align: right; } .summary-price { font-weight: 800; color: var(--primary); } .checkout-footer { position: fixed; bottom: 0; left: 50%; transform: translateX(-50%); width: 100%; max-width: 600px; background-color: var(--surface); padding: 16px; box-shadow: 0 -4px 20px rgba(0,0,0,0.05); border-top: 1px solid var(--border); z-index: 101; } .place-order-button { width: 100%; background-color: var(--primary); color: white; padding: 14px; border-radius: 12px; font-size: 1rem; font-weight: 700; } @media (max-width: 360px) { .address-card, .payment-card { padding: 10px; gap: 10px; } }