/* Order selection shares the catalog's light and dark appearances. */
.nx-customer-nav { display: flex; align-items: center; gap: 16px; }
.nx-customer-orders-link { color: #d6c9ff; font-size: 14px; font-weight: 800; white-space: nowrap; text-decoration: none; }
.nx-customer-orders-link:hover { color: #fff; }
.nx-customer-orders-link:focus-visible { outline: 3px solid #a78bfa; outline-offset: 5px; border-radius: 4px; }
.nexxa-service .nexxa-order {
    width: 100%; border: 0; font-family: inherit; font-size: 16px; line-height: 1.6;
    cursor: pointer; transition: filter .2s ease;
}
.nexxa-service .nexxa-order:hover:not(:disabled) { filter: brightness(1.1); }
.nexxa-service .nexxa-order:focus-visible { outline: 3px solid #c4b5fd; outline-offset: 4px; }
.nexxa-service .nexxa-order:disabled { background: #30313f; color: #b8bbcf; cursor: not-allowed; }
.nx-order-open { overflow: hidden; overscroll-behavior: none; }
.nx-order-open body { overscroll-behavior: none; }
.nx-checkout {
    --checkout-bg: #12121d; --checkout-ink: #f4f3fc; --checkout-muted: #a5a6bc;
    --checkout-line: #ffffff16; --checkout-panel: #ffffff04; --checkout-selected: #a78bfa12;
    box-sizing: border-box; width: min(570px, calc(100% - 32px));
    max-width: none; max-height: calc(100dvh - 24px); padding: 0; margin: auto;
    border: 1px solid #a78bfa40; border-radius: 26px; color: var(--checkout-ink);
    background: var(--checkout-bg); box-shadow: 0 28px 100px #00000066, inset 0 1px 0 #ffffff12;
    font-family: 'Cairo', sans-serif; text-align: start; overflow: auto; overscroll-behavior: contain;
}
.nx-checkout::backdrop { background: #06061185; backdrop-filter: blur(4px); -webkit-backdrop-filter: blur(4px); }
@supports ((backdrop-filter: blur(20px)) or (-webkit-backdrop-filter: blur(20px))) {
    .nx-checkout { --checkout-bg: rgba(18, 18, 29, .82); backdrop-filter: blur(22px) saturate(140%); -webkit-backdrop-filter: blur(22px) saturate(140%); }
}
.nx-checkout[open] { animation: nx-checkout-enter .24s cubic-bezier(.2,.7,.2,1); }
.nx-checkout[open]::backdrop { animation: nx-checkout-backdrop-enter .2s ease-out; }
.nx-checkout[open].nx-checkout-leaving { animation: nx-checkout-exit .15s ease-in both; }
.nx-checkout[open].nx-checkout-leaving::backdrop { animation: nx-checkout-backdrop-exit .15s ease-in both; }
.nx-checkout [hidden] { display: none !important; }
.nx-checkout-panel { position: relative; padding: 20px; }
.nx-checkout.nx-payment-overlay {
    --gateway-bg: #12121d; --gateway-ink: #f4f3fc; --gateway-accent: #b7a0ff;
    width: min(680px, calc(100% - 24px)); height: min(800px, calc(100dvh - 24px)); overflow: hidden;
    background: var(--gateway-bg); color: var(--gateway-ink);
    border-color: #a78bfa66;
    box-shadow: 0 28px 100px #00000080, 0 0 40px #8b5cf61a;
}
.nx-payment-overlay::backdrop { background: #06061155; backdrop-filter: blur(2px); -webkit-backdrop-filter: blur(2px); }
.nx-payment-gateway-card { display: flex; flex-direction: column; height: 100%; min-height: 0; }
.nx-payment-gateway-toolbar { display: flex; justify-content: flex-end; flex: 0 0 auto; padding: 4px 10px; background: var(--gateway-bg); border-bottom: 1px solid #a78bfa26; }
.nx-payment-overlay-close {
    display: grid; place-items: center; width: 44px; height: 44px; border: 1px solid #a78bfa40;
    border-radius: 12px; color: var(--gateway-ink); background: #a78bfa12; font: 26px/1 sans-serif; cursor: pointer;
}
.nx-payment-overlay-close:hover { background: #a78bfa26; }
.nx-payment-overlay-close:focus-visible { outline: 3px solid var(--gateway-accent); outline-offset: 2px; }
.nx-payment-panel { margin-top: 12px; }
.nx-checkout-header { display: grid; grid-template-columns: 44px minmax(0, 1fr) 44px; align-items: start; gap: 8px; margin-bottom: 12px; }
.nx-checkout-header > div { grid-column: 2; grid-row: 1; min-width: 0; text-align: center; }
.nx-checkout-header > .nx-checkout-close { grid-column: 3; grid-row: 1; }
.nx-checkout-eyebrow { color: #bca8fb; font-size: 11px; font-weight: 700; margin: 0 0 5px; }
.nx-checkout h2 { margin: 0; font-size: 22px; font-weight: 900; line-height: 1.4; }
.nx-checkout-close {
    display: grid; place-items: center; width: 44px; height: 44px; flex-shrink: 0; border: 1px solid var(--checkout-line);
    border-radius: 12px; color: var(--checkout-muted); background: var(--checkout-panel); font: 26px/1 sans-serif; cursor: pointer;
}
.nx-checkout-close:hover { color: var(--checkout-ink); background: var(--checkout-selected); }
.nx-checkout-service { display: flex; align-items: center; gap: 12px; padding-bottom: 12px; border-bottom: 1px solid var(--checkout-line); }
.nx-checkout-service h3 { margin: 0 0 4px; font-size: 18px; font-weight: 800; line-height: 1.4; overflow-wrap: anywhere; }
.nx-checkout-service p { margin: 0; color: var(--checkout-muted); font-size: 12px; line-height: 1.6; }
.nx-checkout-service .nexxa-service-icon { width: 48px; height: 48px; box-shadow: none; border-radius: 14px; }
.nx-checkout-status { margin: 12px 0; padding: 10px 12px; background: var(--checkout-selected); color: var(--checkout-ink); border-radius: 12px; font-size: 13px; line-height: 1.6; }
.nx-checkout-offers { padding: 0; margin: 12px 0; border: 0; min-width: 0; }
.nx-checkout-offers legend { padding: 0 0 8px; font-size: 13px; font-weight: 800; }
#order-offer-list { display: grid; gap: 8px; }
.nx-checkout-offer {
    display: grid; grid-template-columns: 20px minmax(0,1fr) auto; gap: 12px; align-items: center;
    min-height: 44px; padding: 10px 12px; border: 1px solid var(--checkout-line); border-radius: 12px;
    background: var(--checkout-panel); cursor: pointer; transition: background .15s, border-color .15s;
}
.nx-checkout-offer:has(input:checked) { border-color: #a78bfa; background: var(--checkout-selected); box-shadow: inset 0 0 0 1px #a78bfa; }
.nx-checkout-offer input { width: 18px; height: 18px; margin: 0; accent-color: #a78bfa; cursor: pointer; }
.nx-checkout-offer-duration { font-size: 14px; font-weight: 700; overflow-wrap: anywhere; }
.nx-checkout-offer strong { font-size: 15px; font-weight: 800; }
.nx-checkout-summary { display: grid; gap: 4px; padding: 10px 0; border-top: 1px solid var(--checkout-line); }
.nx-checkout-summary > div { display: flex; align-items: baseline; justify-content: space-between; gap: 20px; min-height: 22px; }
.nx-checkout-summary span { color: var(--checkout-muted); font-size: 13px; flex-shrink: 0; }
.nx-checkout-summary strong { font-size: 14px; overflow-wrap: anywhere; text-align: end; }
.nx-checkout-summary #order-total { font-size: 22px; font-weight: 900; }
.nx-checkout-contact { margin: 6px 0 10px; padding: 12px; border: 1px solid var(--checkout-line); border-radius: 16px; background: var(--checkout-panel); }
.nx-checkout-step-heading { display: block; margin-bottom: 10px; padding-bottom: 8px; border-bottom: 1px solid var(--checkout-line); text-align: right; }
.nx-checkout-step-heading strong { display: block; font-size: 15px; font-weight: 800; line-height: 1.45; }
.nx-checkout-step-heading span { display: block; margin-top: 3px; color: var(--checkout-muted); font-size: 12px; line-height: 1.55; }
.nx-checkout-field + .nx-checkout-field { margin-top: 10px; }
.nx-checkout-contact label { display: block; text-align: right; font-size: 13px; font-weight: 750; line-height: 1.45; margin-bottom: 5px; }
.nx-checkout-contact label span { display: block; margin-top: 2px; color: var(--checkout-muted); font-size: 11px; font-weight: 400; line-height: 1.55; }
.nx-checkout-contact input { display: block; box-sizing: border-box; width: 100%; min-height: 44px; padding: 9px 10px; border: 1px solid #a78bfa50; border-radius: 10px; background: #00000016; color: var(--checkout-ink); font: 600 16px/1.4 'Cairo', sans-serif; text-align: start; }
.nx-checkout-contact input::placeholder { color: var(--checkout-muted); font-size: 16px; font-weight: 400; opacity: 1; }
.nx-checkout-contact input[aria-invalid='true'] { border-color: #fb7185; }
.nx-checkout-contact p { font-size: 12px; line-height: 1.7; color: var(--checkout-muted); margin: 7px 0 0; }
.nx-checkout-contact .nx-checkout-field-error { color: #fda4af; }
.nx-checkout-contact > .nx-checkout-confirm { display: flex; justify-content: center; align-items: center; gap: 10px; width: 100%; min-height: 44px; margin-top: 10px; padding: 9px 12px; border: 0; border-radius: 12px; font: 800 15px/1.6 'Cairo', sans-serif; cursor: pointer; }
.nx-checkout-actions { display: grid; gap: 10px; margin-top: 8px; }
.nx-checkout-actions > * {
    display: flex; justify-content: center; align-items: center; gap: 8px; width: 100%; min-height: 44px;
    padding: 9px 12px; box-sizing: border-box; border-radius: 12px; font: 800 14px/1.6 'Cairo', sans-serif;
    text-decoration: none; cursor: pointer;
}
.nx-checkout-confirm { border: 0; color: #141021; background: linear-gradient(105deg, #b7a0ff, #c3afff); }
.nx-checkout-whatsapp { border: 1px solid #34d39966; color: #6ee7b7; background: #34d3990a; }
.nx-checkout-whatsapp:hover:not([aria-disabled]) { background: #34d3991a; }
.nx-checkout-actions :disabled, .nx-checkout-actions [aria-disabled='true'] { opacity: .4; cursor: not-allowed; }
.nx-checkout a:focus-visible, .nx-checkout button:focus-visible, .nx-checkout input:focus-visible { outline: 3px solid #a78bfa; outline-offset: 3px; }
.nx-checkout-footnote { color: var(--checkout-muted); font-size: 11px; text-align: center; line-height: 1.6; margin: 10px 0 0; }
.nx-checkout-noscript { padding: 20px; text-align: center; }
@media (prefers-color-scheme: light) {
    .nx-customer-orders-link, .nx-customer-orders-link:hover { color: #6d28d9; }
    .nexxa-service .nexxa-order:disabled { background: #e1e3ed; color: #626a80; }
    .nx-checkout {
        --checkout-bg: #ffffff; --checkout-ink: #18213a; --checkout-muted: #616b80;
        --checkout-line: #18213a14; --checkout-panel: #f8f9fd; --checkout-selected: #f4f0ff;
        border-color: #7c3aed2b; box-shadow: 0 28px 100px #13102d40;
    }
    .nx-checkout::backdrop { background: #18213a50; }
    @supports ((backdrop-filter: blur(20px)) or (-webkit-backdrop-filter: blur(20px))) {
        .nx-checkout { --checkout-bg: rgba(255, 255, 255, .84); }
    }
    .nx-checkout-eyebrow { color: #7543bd; }
    .nx-checkout-offer:has(input:checked) { border-color: #8b5cf6; box-shadow: inset 0 0 0 1px #8b5cf6; }
    .nx-checkout-offer input { accent-color: #7c3aed; }
    .nx-checkout-confirm { color: #ffffff; background: linear-gradient(105deg, #7c3aed, #6d28d9); }
    .nx-checkout-whatsapp { color: #087443; border-color: #08744340; background: #edf9f2; }
    .nx-checkout-service .nexxa-service-icon { color: var(--day-accent, #6639ad); }
    .nx-checkout-contact input { background: #ffffffa8; }
    .nx-checkout-contact .nx-checkout-field-error { color: #be123c; }
}
@media (max-width: 480px) {
    .nx-customer-nav { gap: 10px; }
    .nx-customer-nav .nav-btn { padding: 8px 12px; font-size: 11px; }
    .nx-customer-orders-link { font-size: 12px; }
    .nx-checkout { width: min(420px, calc(100% - 32px)); max-height: calc(100dvh - 24px); border-radius: 21px; }
    .nx-checkout-panel { padding: 16px; }
    .nx-checkout-header { grid-template-columns: 44px minmax(0, 1fr) 44px; margin-bottom: 10px; gap: 8px; }
    .nx-checkout-eyebrow { font-size: 10px; margin-bottom: 3px; }
    .nx-checkout h2 { font-size: 20px; }
    .nx-checkout-close { width: 44px; height: 44px; font-size: 23px; }
    .nx-payment-overlay-close { width: 44px; height: 44px; font-size: 23px; }
    .nx-checkout-service { gap: 10px; padding-bottom: 8px; }
    .nx-checkout-service .nexxa-service-icon { width: 48px; height: 48px; border-radius: 14px; }
    .nx-checkout-service h3 { font-size: 17px; }
    .nx-checkout-service p { font-size: 12px; }
    .nx-checkout-offers { margin: 10px 0; }
    .nx-checkout-offers legend { font-size: 12px; padding-bottom: 8px; }
    #order-offer-list { gap: 8px; }
    .nx-checkout-offer { gap: 8px; padding: 11px 10px; border-radius: 12px; }
    .nx-checkout-offer-duration { font-size: 13px; }
    .nx-checkout-offer strong { font-size: 14px; }
    .nx-checkout-summary { gap: 4px; padding: 10px 0; }
    .nx-checkout-summary span, .nx-checkout-summary strong { font-size: 12px; }
    .nx-checkout-summary #order-total { font-size: 22px; }
    .nx-checkout-contact { padding: 12px; margin: 5px 0 10px; border-radius: 13px; }
    .nx-checkout-field + .nx-checkout-field { margin-top: 10px; }
    .nx-checkout-contact label { font-size: 13px; margin-bottom: 5px; }
    .nx-checkout-step-heading { margin-bottom: 10px; padding-bottom: 8px; }
    .nx-checkout-step-heading strong { font-size: 15px; }
    .nx-checkout-step-heading span { font-size: 11px; }
    .nx-checkout-contact p { font-size: 11px; }
    .nx-checkout-contact > .nx-checkout-confirm { min-height: 44px; margin-top: 10px; padding: 9px 12px; font-size: 14px; }
    .nx-checkout-actions { gap: 8px; margin-top: 5px; }
    .nx-checkout-actions > * { min-height: 44px; padding: 9px 12px; font-size: 14px; }
    .nx-checkout-footnote { font-size: 11px; margin-top: 8px; }
}
@keyframes nx-checkout-enter { from { opacity: 0; transform: translateY(12px); } to { opacity: 1; transform: translateY(0); } }
@keyframes nx-checkout-exit { from { opacity: 1; transform: translateY(0); } to { opacity: 0; transform: translateY(8px); } }
@keyframes nx-checkout-backdrop-enter { from { opacity: 0; } to { opacity: 1; } }
@keyframes nx-checkout-backdrop-exit { from { opacity: 1; } to { opacity: 0; } }
@media (prefers-reduced-motion: reduce) {
    .nx-checkout[open], .nx-checkout[open]::backdrop,
    .nx-checkout[open].nx-checkout-leaving, .nx-checkout[open].nx-checkout-leaving::backdrop { animation: none; }
}

/* The order status retains its natural height behind the hosted gateway. */
.nx-checkout-paying {
    width: min(570px, calc(100% - 32px));
    height: fit-content;
    border-color: #c4b5fd59;
    background: var(--checkout-bg);
    box-shadow: 0 28px 100px #00000066, 0 0 50px #8b5cf615, inset 0 1px 0 #ffffff1a;
}
.nx-payment-heading { display: flex; gap: 10px; align-items: center; justify-content: space-between; font-size: 14px; }
.nx-payment-heading strong span { color: #bca8fb; margin-inline-start: 6px; }
.nx-payment-badge { background: #fbbf2414; border: 1px solid #fbbf2445; color: #f4c866; padding: 3px 8px; border-radius: 8px; font-size: 11px; white-space: nowrap; }
.nx-payment-reference { margin: 8px 0 12px; font-size: 11px; color: var(--checkout-muted); overflow-wrap: anywhere; }
.nx-payment-reference bdi { display: inline-block; color: var(--checkout-ink); font-family: monospace; }
.nx-payment-panel .nx-checkout-status { margin: 12px 0 8px; padding: 10px 12px; font-size: 12px; }
.nx-payment-frame-wrap {
    position: relative; isolation: isolate; flex: 1 1 auto; min-height: 0; overflow: hidden;
    background: var(--gateway-bg);
}
.nx-payment-frame-wrap iframe {
    display: block; width: 100%; height: 100%;
    border: 0; background: var(--gateway-bg); color-scheme: light;
}
.nx-payment-loader {
    position: absolute; z-index: 1; inset: 0; display: flex; flex-direction: column;
    justify-content: center; align-items: center; gap: 15px; padding: 24px;
    background: var(--gateway-bg); color: var(--gateway-ink);
    font-size: 13px; font-weight: 700; line-height: 1.8; text-align: center;
}
.nx-payment-loader-ring {
    display: block; flex-shrink: 0; width: 30px; height: 30px; border: 3px solid #b7a0ff26;
    border-top-color: var(--gateway-accent); border-radius: 50%; animation: nx-payment-spin .8s linear infinite;
}
.nx-payment-loader p { margin: 0; }
.nx-payment-back { border: 1px solid var(--checkout-line); color: var(--checkout-muted); background: transparent; }
.nx-payment-back:hover { color: var(--checkout-ink); background: var(--checkout-selected); }
.nx-payment-success { text-align: center; padding: 16px 12px; margin: 0; }
.nx-payment-success-icon { display: block; width: 64px; height: 64px; margin: 0 auto 12px; color: #4ade80; }
.nx-payment-success-icon svg { display: block; width: 100%; height: 100%; }
.nx-payment-success h3 { margin: 0 0 6px; font-size: 20px; font-weight: 900; color: var(--checkout-ink); }
.nx-payment-success p { max-width: 34em; margin: 0 auto; color: var(--checkout-muted); font-size: 13px; line-height: 1.9; }
.nx-checkout-complete { width: min(570px, calc(100% - 32px)); }
.nx-checkout-complete .nx-checkout-service p { display: none; }
@supports ((backdrop-filter: blur(20px)) or (-webkit-backdrop-filter: blur(20px))) {
    .nx-checkout-paying { backdrop-filter: blur(26px) saturate(145%); -webkit-backdrop-filter: blur(26px) saturate(145%); }
}
@media (prefers-color-scheme: light) {
    .nx-checkout-paying { border-color: #8b5cf642; box-shadow: 0 28px 90px #30204b33, 0 0 40px #8b5cf610, inset 0 1px 0 #ffffffd9; }
    .nx-payment-heading strong span { color: #7543bd; }
    .nx-payment-badge { color: #946200; background: #fbbf2412; border-color: #b581233b; }
    .nx-payment-success-icon { color: #047857; }
}
@media (max-width: 480px) {
    .nx-checkout-paying, .nx-payment-overlay { width: calc(100% - 32px); border-radius: 21px; }
    .nx-payment-heading { gap: 8px; font-size: 12px; }
    .nx-payment-badge { font-size: 10px; padding: 2px 6px; }
    .nx-payment-loader { font-size: 12px; }
    .nx-payment-success { padding: 14px 6px; }
    .nx-payment-success-icon { width: 60px; height: 60px; margin-bottom: 10px; }
    .nx-payment-success h3 { font-size: 19px; }
    .nx-payment-success p { font-size: 11px; }
}
@keyframes nx-payment-spin { to { transform: rotate(360deg); } }
@media (prefers-reduced-motion: reduce) { .nx-payment-loader-ring { animation: none; border-style: dotted; } }

/* Direct transfers share the original order card's glass and page backdrop. */
.nx-checkout.nx-payment-overlay.nx-checkout-direct {
    width: min(570px, calc(100% - 24px)); height: min(var(--nx-transfer-height, 360px), calc(100dvh - 24px));
    --checkout-bg: rgba(18, 18, 29, .74);
    background: var(--checkout-bg); color: var(--checkout-ink);
    border-color: #a78bfa40;
    box-shadow: 0 28px 100px #00000066, inset 0 1px 0 #ffffff12;
}
.nx-checkout-direct::backdrop { background: transparent; backdrop-filter: none; -webkit-backdrop-filter: none; }
.nx-checkout-direct .nx-payment-gateway-toolbar,
.nx-checkout-direct .nx-payment-frame-wrap,
.nx-checkout-direct .nx-payment-frame-wrap iframe,
.nx-checkout-direct .nx-payment-loader { background: transparent; color: var(--checkout-ink); }
.nx-checkout-direct .nx-payment-gateway-toolbar { border-bottom: 0; padding-top: 6px; }
.nx-checkout-direct .nx-payment-overlay-close { color: var(--checkout-ink); border-color: var(--checkout-line); background: var(--checkout-panel); }
.nx-checkout-direct .nx-payment-frame-wrap iframe { color-scheme: light dark; }
@media (prefers-color-scheme: light) {
    .nx-checkout.nx-payment-overlay.nx-checkout-direct { --checkout-bg: rgba(255, 255, 255, .76); border-color: #7c3aed2b; box-shadow: 0 28px 100px #13102d40; }
}

/* Apple Pay is rendered in the top document: the provider SDK requires it. */
.nx-checkout.nx-payment-overlay.nx-checkout-applepay {
    height: fit-content; max-height: calc(100dvh - 24px); overflow: auto;
    --checkout-bg: rgba(18, 18, 29, .86); background: var(--checkout-bg);
    color: var(--checkout-ink); border-color: #a78bfa40;
}
.nx-checkout-applepay .nx-payment-gateway-toolbar { background: transparent; border-bottom: 0; }
.nx-checkout-applepay .nx-payment-gateway-card { height: auto; }
.nx-applepay-view { flex: 1 1 auto; padding: 0 20px 20px; text-align: center; font-family: 'Cairo', sans-serif; }
.nx-applepay-view h2 { font-size: 22px; font-weight: 900; line-height: 1.4; margin: 0; color: var(--checkout-ink); }
.nx-applepay-description { font-size: 12px; color: var(--checkout-muted); margin: 3px 0 12px; }
.nx-applepay-summary { display: flex; justify-content: space-between; align-items: center; gap: 16px; min-height: 44px; padding: 10px 12px; border: 1px solid var(--checkout-line); border-radius: 12px; background: var(--checkout-panel); text-align: start; }
.nx-applepay-summary strong { min-width: 0; overflow-wrap: anywhere; font-size: 15px; font-weight: 800; }
.nx-applepay-summary bdi { flex-shrink: 0; font-size: 17px; font-weight: 800; }
.nx-applepay-notice { color: var(--checkout-muted); font-size: 12px; line-height: 1.6; margin: 12px 0; }
.nx-applepay-notice.nx-applepay-error { color: #fda4af; }
.nx-applepay-sdk { min-height: 52px; width: 100%; text-align: center; }
.nx-applepay-sdk .bottom-section,
.nx-applepay-sdk [class~="k-bg-black/50"] { background: transparent; }
.nx-applepay-sdk .apple-pay-button {
    font-family: 'Cairo', sans-serif; cursor: pointer;
    background: #fff !important; color: #000 !important;
    border: 1px solid #000 !important; border-radius: 12px !important;
    min-height: 52px; direction: ltr;
    -apple-pay-button-style: white;
}
.nx-applepay-sdk .apple-pay-button svg path { fill: #000; }
.nx-applepay-sdk button:focus-visible { outline: 3px solid #a78bfa; outline-offset: 4px; }
.nx-applepay-retry { margin: 10px 0 0; padding: 9px 12px; width: 100%; min-height: 44px; border: 1px solid #a78bfa66; border-radius: 12px; font: 700 14px/1.6 'Cairo', sans-serif; color: var(--checkout-ink); background: var(--checkout-selected); cursor: pointer; }
.nx-applepay-footnote { color: var(--checkout-muted); font-size: 11px; line-height: 1.6; margin: 12px 0 0; }
@media (prefers-color-scheme: light) {
    .nx-checkout.nx-payment-overlay.nx-checkout-applepay { --checkout-bg: rgba(255, 255, 255, .9); }
    .nx-applepay-notice.nx-applepay-error { color: #be123c; }
}
@media (max-width: 480px) {
    .nx-applepay-view { padding: 0 16px 16px; }
    .nx-applepay-view h2 { font-size: 20px; }
    .nx-applepay-summary { padding: 12px; gap: 12px; }
    .nx-applepay-summary strong { font-size: 13px; }
    .nx-applepay-summary bdi { font-size: 15px; }
    .nx-applepay-notice { font-size: 12px; }
}

/* Keep every payment step compact without scaling text or clipping content. */
.nx-checkout { scrollbar-width: thin; scrollbar-color: #a78bfa66 transparent; }
.nx-checkout input { caret-color: #b7a0ff; }
.nx-checkout-summary, .nx-payment-reference, .nx-applepay-summary { font-variant-numeric: tabular-nums; }
.nx-checkout.nx-payment-overlay.nx-checkout-applepay { width: min(570px, calc(100% - 24px)); }
@media (min-width: 540px) {
    .nx-checkout-contact { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: 10px 14px; }
    .nx-checkout-contact > .nx-checkout-step-heading,
    .nx-checkout-contact > .nx-checkout-confirm { grid-column: 1 / -1; }
    .nx-checkout-contact > .nx-checkout-step-heading { margin: 0; }
    .nx-checkout-contact > .nx-checkout-field { min-width: 0; margin: 0; }
    .nx-checkout-contact > .nx-checkout-confirm { margin-top: 0; }
}
@media (max-height: 680px) {
    .nx-checkout-panel { padding: 12px 16px; }
    .nx-checkout-header { margin-bottom: 8px; }
    .nx-checkout-service { padding-bottom: 8px; }
    .nx-checkout-status, .nx-checkout-offers { margin-block: 8px; }
    .nx-checkout-summary { padding-block: 8px; }
    .nx-checkout-contact { margin-block: 4px 8px; padding: 10px; }
    .nx-payment-panel { margin-top: 8px; }
    .nx-payment-panel .nx-checkout-status { margin-block: 8px; }
    .nx-payment-reference { margin-block: 6px 8px; }
    .nx-checkout-footnote { margin-top: 8px; }
    .nx-applepay-view { padding-bottom: 12px; }
}

/* Keep the original checkout layout; cover only payment content while it loads. */
.nx-payment-loading iframe { visibility: hidden; }
.nx-checkout-direct .nx-payment-loading > .nx-payment-loader {
    background: var(--checkout-bg); color: var(--checkout-ink);
}
.nx-applepay-stage { position: relative; }
.nx-applepay-stage.nx-applepay-loading { min-height: 160px; }
.nx-applepay-loading .nx-applepay-sdk { visibility: hidden; }
.nx-applepay-stage > .nx-payment-loader {
    background: var(--checkout-bg); color: var(--checkout-ink); border-radius: 12px;
}

/* Match the reviewed button while retaining Kashier's original Apple SVG. */
.nx-applepay-sdk .apple-pay-button {
    display: flex !important; align-items: center !important; justify-content: center !important;
    gap: 4px !important; width: 100% !important; height: 52px !important; min-height: 52px;
    box-sizing: border-box; padding: 0 12px !important;
    font: 500 24px/1 Arial, Helvetica, sans-serif !important; letter-spacing: normal !important;
}
.nx-applepay-sdk .apple-pay-button > svg {
    display: block; flex: 0 0 auto; width: 21.6px; height: 24px;
}

/* Retain one loading cover during internal handoffs, then restore the method's layout. */
.nx-checkout.nx-payment-overlay.nx-payment-preparing {
    width: min(var(--nx-preparing-width, 680px), calc(100% - 24px));
    height: min(var(--nx-preparing-height, 800px), calc(100dvh - 24px));
    overflow: hidden; background: var(--gateway-bg);
}
.nx-payment-preparing .nx-payment-gateway-card { position: relative; height: 100%; }
.nx-payment-preparing .nx-payment-gateway-toolbar {
    position: relative; z-index: 3; flex: 0 0 auto; background: var(--gateway-bg);
}
.nx-payment-preparing .nx-payment-frame-wrap,
.nx-payment-preparing .nx-applepay-view { visibility: hidden; }
.nx-payment-preparing .nx-payment-frame-wrap > .nx-payment-loader,
.nx-payment-preparing .nx-applepay-stage > .nx-payment-loader { display: none !important; }
.nx-payment-preparing > .nx-payment-gateway-card > .nx-payment-preparing-loader {
    inset: 52px 0 0; z-index: 2; background: var(--gateway-bg);
}
.nx-checkout.nx-checkout-preparing-underlay {
    background: transparent; border-color: transparent; box-shadow: none;
    backdrop-filter: none; -webkit-backdrop-filter: none;
}
.nx-checkout-preparing-underlay > .nx-checkout-panel { visibility: hidden; }
