/* Light checkout and account components. Mercado Pago owns the card inputs. */
.modal-card.modal-checkout { width:min(760px,calc(100vw - 32px)); max-width:760px; color:#182230; background:#fff; border:1px solid #dce2eb; border-radius:14px; box-shadow:none; overflow-wrap:anywhere; }
.modal-checkout .modal-header { padding-right:36px; margin-bottom:24px; }
.modal-checkout .modal-badge { color:#1738ce; background:#edf1ff; border:1px solid #dce2eb; border-radius:8px; }
.modal-checkout .modal-header h3 { color:#182230; font-size:clamp(1.35rem,3vw,1.75rem); line-height:1.3; overflow-wrap:anywhere; }
.modal-checkout .modal-code { color:#536174; font-size:.875rem; line-height:1.7; }
#cPlanPrice { display:inline-block; max-width:100%; color:#182230; font-size:1.15rem; font-weight:800; }
.checkout-flow.form-grid { display:block; }
.checkout-section { min-width:0; display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:18px; margin:0 0 24px; padding:22px; border:1px solid #dce2eb; border-radius:12px; background:#f6f7fb; }
.checkout-section legend { max-width:100%; padding:0 8px; color:#182230; font-size:1rem; font-weight:750; }
.checkout-section > .full { grid-column:1 / -1; }
.checkout-section .form-group { min-width:0; margin:0; }
.checkout-section .form-group label,.checkout-section .field-label { color:#182230; font-size:.875rem; line-height:1.5; font-weight:650; }
.checkout-section .form-group input,.checkout-section .form-group select,.account-form .form-input { min-height:48px; width:100%; padding:12px 14px; background:#fff; color:#182230; border:1px solid #7b899c; border-radius:10px; font:inherit; font-size:1rem; color-scheme:light; box-shadow:none; }
.checkout-section .form-group input::placeholder,.account-form .form-input::placeholder { color:#536174; opacity:1; }
.checkout-section .form-group input[readonly] { color:#536174; background:#edf0f5; border-color:#aeb8c6; }
.checkout-section .form-group input:focus,.checkout-section .form-group select:focus,.account-form .form-input:focus { border-color:#244bff; outline:2px solid #244bff; outline-offset:2px; box-shadow:none; }
.checkout-section .checkout-consent { margin:0; padding-top:16px; border-top:1px solid #dce2eb; }
.checkout-section .field-hint,.checkout-review-note { margin:0; color:#536174; font-size:.875rem; line-height:1.65; }
.checkout-consent { color:#536174; font-size:.875rem; line-height:1.7; }
.checkout-consent strong { color:#182230; white-space:normal; }
.checkout-consent input { width:20px; height:20px; accent-color:#244bff; }
.checkout-order-summary { display:grid; gap:16px; width:100%; margin:0; text-align:left; }
.checkout-order-summary > div { display:flex; align-items:baseline; justify-content:space-between; gap:20px; }
.checkout-order-summary > div > * { min-width:0; }
.checkout-order-summary dt { color:#536174; font-size:.875rem; }
.checkout-order-summary dd { margin:0; color:#182230; font-weight:650; overflow-wrap:anywhere; text-align:right; }
#cReviewAmount,#pAmount { font-size:1.3rem; font-weight:800; font-variant-numeric:tabular-nums; }
#cReviewEmail { font-size:.9375rem; }
.checkout-availability-actions { display:flex; flex-wrap:wrap; gap:12px; margin:16px 0 24px; }
.checkout-availability-actions button { min-height:44px; }
.modal-checkout .btn-primary { color:#fff; background:#244bff; border-color:#244bff; box-shadow:none; }
.modal-checkout .btn-primary:hover:not(:disabled) { background:#1738ce; border-color:#1738ce; box-shadow:none; transform:none; }
.modal-checkout .btn-outline { color:#182230; background:#fff; border-color:#7b899c; box-shadow:none; }
.modal-checkout .btn-outline:hover:not(:disabled) { color:#1738ce; border-color:#244bff; background:#edf1ff; }
.modal-checkout .btn:disabled { color:#536174; background:#e7ebf2; border-color:#cbd3df; opacity:1; cursor:not-allowed; box-shadow:none; }
.modal-checkout .btn { min-width:0; max-width:100%; min-height:48px; border-radius:10px; white-space:normal; overflow-wrap:anywhere; }
.checkout-environment { color:#925000; background:#fff4d8; border:1px solid #e7c47e; border-radius:10px; font-size:.8125rem; font-weight:650; line-height:1.65; }
.checkout-notice { color:#536174; background:#f6f7fb; border:1px solid #dce2eb; border-radius:12px; padding:22px; font-size:.9375rem; line-height:1.7; }
.card-brand { color:#536174; background:#fff; border:1px solid #dce2eb; border-radius:6px; font-size:.75rem; font-weight:750; padding:3px 9px; }
.modal-checkout .card-field-heading { flex-wrap:wrap; }
.modal-checkout .card-field-heading > * { min-width:0; max-width:100%; }
.card-brand[data-brand="visa"],.card-brand[data-brand="amex"] { color:#1738ce; background:#edf1ff; border-color:#abb9ff; }
.card-brand[data-brand="master"] { color:#925000; background:#fff4d8; border-color:#e7c47e; }
.secure-card-field { min-width:0; min-height:50px; height:auto; padding:2px 14px; background:#fff; color:#182230; border:1px solid #7b899c; border-radius:10px; color-scheme:light; box-shadow:none; font-size:1rem; }
.secure-card-field iframe { display:block; width:100%; max-width:100%; min-height:44px; height:max(44px,1.5em); border:0; }
.secure-card-field:focus-within { border-color:#244bff; outline:2px solid #244bff; outline-offset:2px; box-shadow:none; }
.checkout-section .field-error,.account-fields .field-error { color:#b42318; font-size:.8125rem; line-height:1.6; }
.checkout-error { padding:14px 16px; color:#b42318; background:#fff0ed; border:1px solid #e6a29c; border-radius:10px; font-size:.875rem; line-height:1.65; }
#checkoutError:focus { outline:2px solid #b42318; outline-offset:4px; }
.modal-checkout .security-badges { justify-content:center; gap:8px 20px; color:#536174; font-size:.8125rem; line-height:1.65; padding-top:16px; text-align:center; }
.checkout-progress { border:1px solid #dce2eb; border-radius:12px; padding:22px; margin:24px 0; background:#f6f7fb; }
.checkout-timeline { list-style:none; padding:22px 0 0; margin:22px 0 0; border-top:1px solid #dce2eb; display:grid; gap:20px; text-align:left; }
.checkout-timeline li { position:relative; display:grid; grid-template-columns:18px 1fr; gap:4px 12px; color:#536174; }
.checkout-timeline strong { font-size:.875rem; }
.timeline-dot { width:13px; height:13px; margin-top:4px; border:2px solid #7b899c; border-radius:50%; background:#fff; }
.timeline-state { grid-column:2; font-size:.8125rem; line-height:1.6; }
.checkout-timeline .is-complete strong { color:#137547; }
.checkout-timeline .is-complete .timeline-dot { border-color:#137547; background:#137547; }
#pProtocol { font-size:.8125rem; font-family:ui-monospace,monospace; font-weight:500; }
.modal-checkout .checkout-success { padding:16px 4px 4px; }
.modal-checkout .checkout-success h3 { color:#182230; font-size:clamp(1.4rem,3vw,1.85rem); line-height:1.35; }
.modal-checkout .success-msg { color:#536174; line-height:1.75; }
.modal-checkout .success-msg strong { color:#182230; font-weight:800; }
.modal-checkout .success-plan-title { color:#182230; font-weight:650; }
.modal-checkout .payment-state-icon { width:76px; height:76px; margin:8px auto 22px; box-shadow:none; }
.modal-checkout .approved-icon { color:#137547; background:#e8f7ee; border:1px solid #a9d8bd; }
.modal-checkout .pending-icon { color:#925000; background:#fff4d8; border:1px solid #e7c47e; }
.modal-checkout .failed-icon { color:#b42318; background:#fff0ed; border:1px solid #e6a29c; }
.modal-checkout .next-step-box { color:#182230; background:#f6f7fb; border:1px solid #dce2eb; border-radius:12px; padding:22px; text-align:left; box-shadow:none; }
.modal-checkout .next-step-box h4 { color:#182230; font-size:1rem; }
.modal-checkout .next-step-box p,.modal-checkout .step-detail { color:#536174; font-size:.875rem; line-height:1.7; }
.modal-checkout .highlight-email { color:#1738ce; overflow-wrap:anywhere; }
.modal-checkout .pending-help { color:#536174; font-size:.875rem; line-height:1.7; }
.password-input-wrap { display:flex; align-items:stretch; width:100%; min-width:0; position:relative; }
.password-input-wrap input { width:100%; min-width:0; padding-right:90px!important; }
.password-visibility { position:absolute; right:4px; top:50%; transform:translateY(-50%); min-height:44px; min-width:76px; border:0; border-radius:8px; padding:8px; color:#1738ce; background:transparent; font:inherit; font-size:.875rem; font-weight:650; cursor:pointer; }
.password-visibility:hover { background:#edf1ff; }
.password-visibility:focus-visible { outline:2px solid #244bff; outline-offset:-2px; }
.password-visibility:disabled { color:#536174; cursor:wait; }
.account-fields { display:grid; gap:20px; }
.account-fields .form-group { margin:0; }
.account-fields .form-group label { color:#182230; font-size:.875rem; }
.account-fields .field-hint { display:block; color:#536174; font-size:.875rem; line-height:1.55; margin-top:8px; }
.account-fields .field-error { display:block; }
.account-form .account-feedback { margin:18px 0; padding:14px 16px; border-radius:10px; font-size:.9375rem; line-height:1.6; }
.account-form .account-feedback.auth-form-error { background:#fff0ed; color:#b42318; border:1px solid #e6a29c; }
.account-form .account-feedback.auth-status-message { background:#edf1ff; color:#1738ce; border:1px solid #abb9ff; }
.account-guidance { margin:18px 0; padding:16px; background:#f6f7fb; border:1px solid #dce2eb; border-radius:12px; color:#536174; font-size:.875rem; line-height:1.65; }
.account-guidance p { margin:0; }
.account-guidance p + p { margin-top:8px; }
.account-sent-to { overflow-wrap:anywhere; color:#182230; font-weight:650; }
.account-cooldown { margin:12px 0; color:#536174; }
.account-back { margin-top:12px; }
.account-form [aria-invalid="true"],.checkout-flow input[aria-invalid="true"] { border-color:#b42318; }
.public-contact-link { display:inline-flex; margin:8px 16px 8px 0; min-height:44px; align-items:center; overflow-wrap:anywhere; }
#contato { padding:22px 0; scroll-margin-top:100px; }
#mfaQr { max-width:100%; display:block; background:#fff; padding:10px; margin:16px auto; border:1px solid #dce2eb; border-radius:10px; }
#mfaSecret { display:block; overflow-wrap:anywhere; user-select:all; padding:12px 0; color:#182230; }
#modalMfa form { margin:20px 0; }
#modalMfa .modal-card { max-width:520px; }
@media (max-width:600px) {
  .modal-card.modal-checkout { width:calc(100vw - 24px); padding:24px 18px; }
  .checkout-section { padding:18px 14px; gap:16px; }
  .checkout-section > .form-group:has(#cCustCpf),.checkout-section > .form-group:has(#cCustPhone) { grid-column:1 / -1; }
  .checkout-order-summary > div { display:block; }
  .checkout-order-summary dt { margin-bottom:4px; }
  .checkout-order-summary dd { text-align:left; }
  .checkout-progress,.modal-checkout .next-step-box { padding:18px; }
  .checkout-availability-actions { flex-direction:column; }
  .checkout-availability-actions .btn { width:100%; }
  .modal-checkout .security-badges { flex-direction:column; text-align:left; }
}
@media (max-width:360px) {
  .modal-card.modal-checkout { padding:24px 14px; }
  .checkout-section { padding:16px 12px; }
  .checkout-section > .form-group { grid-column:1 / -1; }
}
@media (prefers-reduced-motion:reduce) {
  .checkout-flow *,.account-form * { animation:none!important; transition:none!important; }
}
