/* Official ZenvyPay palette and locally hosted, licensed product typography. */
@font-face { font-family: Manrope; font-style: normal; font-weight: 400 800; font-display: swap; src: url('/fonts/manrope-latin.woff2') format('woff2'); }
@font-face { font-family: Manrope; font-style: normal; font-weight: 400 800; font-display: swap; src: url('/fonts/manrope-latin-ext.woff2') format('woff2'); unicode-range: U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020-2027,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF; }
:root { --zenvy-font: Manrope, system-ui, sans-serif; --zenvy-blue: #2369eb; --zenvy-royal: #1c27a1; --zenvy-electric: #43bdf0; }
html body { font-family: var(--zenvy-font); -webkit-font-smoothing: antialiased; text-rendering: optimizeLegibility; }
html body :is(h1,h2,h3,h4,button,input,select,textarea,.display-font,.font-display) { font-family: var(--zenvy-font); }
html body :is(h1,h2,h3) { font-weight: 650; letter-spacing: -.025em; }
html body .dp-ops { --dp-bg: #080f1c; --dp-surface: #111d30; --dp-elevated: #16233a; --dp-line: #293a55; --dp-muted: #a0afc5; --dp-blue: #4686f3; --dp-radius: 22px; font-family: var(--zenvy-font); font-size: 13px; line-height: 1.65; }
html body .dp-ops h1 { font-size: clamp(26px, 2.2vw, 32px); line-height: 1.25; font-weight: 700; letter-spacing: -.035em; }
html body .dp-ops h2 { font-size: 17px; line-height: 1.5; font-weight: 650; }
html body .dp-ops :is(label, .zp-input-label) { font-weight: 550; }
html body .dp-ops small { line-height: 1.65; }
html body :is(.dp-cards article,.dp-surface,.zp-form-card,.zp-summary-card,.zp-link-card,.zp-dashboard-hero,.pos-form-surface,.pos-summary,.payment-link-summary,.simulator-best) { border-radius: 20px; border-color: rgba(140,167,210,.17); box-shadow: 0 8px 32px -20px rgba(0,0,0,.6), inset 0 1px 0 rgba(211,226,255,.025); }
html body .dp-ops :is(.dp-surface,.zp-form-card,.zp-link-card) { background: linear-gradient(145deg,#122035,#101a2b 70%); }
html body .dp-ops .dp-metric { background: linear-gradient(150deg,#17253a,#101a2a); padding: 22px; }
html body .dp-ops :is(.zp-summary-card,.zp-dashboard-hero) { background: radial-gradient(ellipse at 100% 0,rgba(35,105,235,.14),transparent 70%),linear-gradient(135deg,#172943,#182039); border-color: rgba(110,150,218,.28); }
html body :is(.dp-metric strong,.zp-summary-amount,.zp-balance-main>strong,.pos-summary__amount strong,.payment-link-summary__amount strong,.simulator-best dd,.stat-value,.pos-amount-field input) { font-family: var(--zenvy-font); font-weight: 650; font-variant-numeric: lining-nums tabular-nums; letter-spacing: -.045em; line-height: 1.25; }
html body .dp-metric strong { font-size: 27px; }
html body :is(.zp-summary-amount,.pos-summary__amount strong,.payment-link-summary__amount strong) { font-size: clamp(30px,3vw,39px); }
html body :is(td,dd,input[inputmode=decimal],input[inputmode=numeric]) { font-variant-numeric: lining-nums tabular-nums; }
html body .dp-ops :is(input,select,textarea) { border-radius: 12px; border-color: #31435f; min-height: 46px; background-color: #0c1729; font-size: 13px; box-shadow: inset 0 1px 2px rgba(0,0,0,.1); }
html body .dp-ops :is(input,select,textarea):focus { border-color: #6199f5; box-shadow: 0 0 0 4px rgba(67,130,235,.12); }
html body .dp-ops button { border-radius: 12px; font-weight: 600; }
html body .dp-ops :is(button.primary,a.primary), html.dark body :is(.merchant-login__submit,.admin-login__submit) { background: linear-gradient(115deg,#2369eb,#4058df); border-color: #4a80ed; box-shadow: 0 6px 18px -8px rgba(35,105,235,.65); }
html body .dp-ops :is(button.primary,a.primary):hover:not(:disabled) { background: linear-gradient(115deg,#347bf5,#526aed); box-shadow: 0 8px 25px -8px rgba(35,105,235,.65); transform: translateY(-1px); }
html body .dp-ops button:disabled { opacity: .48; transform: none; box-shadow: none; }
html body .dp-ops :is(.zp-segment,.zp-methods) button { border-radius: 10px; }
html body .dp-ops .zp-segment { border-radius: 14px; padding: 4px; }
html body .dp-ops .zp-segment button[aria-pressed=true] { background: #28436a; border-color: #4678bd; box-shadow: 0 2px 8px rgba(0,0,0,.16); }
html body .dp-ops .dp-badge { border-radius: 8px; font-size: 11px; font-weight: 650; letter-spacing: .005em; }
html body .dp-ops :is(dialog,.dp-modal) { border-radius: 24px; border-color: #354866; box-shadow: 0 24px 90px rgba(0,0,0,.5); }
html body .dp-ops table :is(th,td) { line-height: 1.65; padding-block: 15px; }
html body .dp-ops th { font-weight: 650; font-size: 11px; letter-spacing: .015em; }
html body .zp-brand { display: inline-flex; flex-shrink: 0; }
html body .zp-brand img { width: 172px; height: auto; object-fit: contain; }
html body .zp-brand--compact img { width: 32px; height: 32px; }
html body .zp-footer .zp-brand img { width: 24px; height: 24px; opacity: .75; }
html body .zp-brand-link { padding-inline: 22px; }
html body :is(.merchant-login__logo,.admin-login__brand-top img) { width: 210px; height: auto; margin: 0; object-fit: contain; }
html body :is(.merchant-login__mobile-brand img,.admin-login__mobile-brand img) { width: 160px; height: auto; margin: 0; object-fit: contain; }
html body .pos-summary { position: sticky; top: 94px; }
html body :is(.pos-input,.pos-choice,.pos-segmented,.pos-amount-field__control) { border-radius: 13px; }
html body .pos-choice.is-selected { background: rgba(35,105,235,.13); border-color: rgba(79,148,244,.65); }
html body .pos-segmented__option.is-active { background: #2369eb; }
html body .pos-summary__details { line-height: 1.65; }
html body .receipt-brand img { width: 42px; height: 42px; }
@media (max-width: 700px) { html body .pos-summary { position: static; } html body .dp-ops :is(.dp-surface,.zp-form-card,.zp-summary-card) { border-radius: 17px; } html body .dp-ops .dp-metric { padding: 17px; } html body .dp-metric strong { font-size: 23px; } }
@media (prefers-reduced-motion: reduce) { html body .dp-ops button { transition: none; transform: none; } }

html body .zp-installment-options { margin-top: 20px; border: 1px solid rgba(113,148,205,.24); border-radius: 16px; background: rgba(14,27,47,.55); padding: 16px; }
html body .zp-installment-heading { display: flex; align-items: center; flex-wrap: wrap; gap: 8px; color: #c0d9ff; font-size: 12px; margin-bottom: 12px; }
html body .zp-installment-heading small { margin-left: auto; color: #a9b9d1; }
html body .zp-installment-list { max-height: 290px; overflow-y: auto; scrollbar-width: thin; }
html body .zp-installment-list button { display: flex; justify-content: space-between; align-items: center; text-align: left; gap: 14px; width: 100%; padding: 12px; margin: 3px 0; border: 1px solid transparent; border-radius: 10px; color: #e4eeff; background: transparent; font-size: 12px; font-variant-numeric: tabular-nums; }
html body .zp-installment-list button:disabled { opacity: 1; cursor: default; }
html body .zp-installment-list button[aria-pressed=true] { background: rgba(62,119,215,.17); border-color: rgba(91,155,255,.6); }
html body .zp-installment-list button:not(:disabled):hover { background: rgba(72,123,207,.12); }
html body .zp-installment-list button span { display: grid; gap: 4px; }
html body .zp-installment-list button span:last-child { text-align: right; flex-shrink: 0; }
html body .zp-installment-list button small { font-size: 10px; font-weight: 450; color: #aebfd7; }
html body .zp-installment-options>p { margin: 12px 0 0; font-size: 10px; color: #a3b4cf; }
html body .zp-installment-payer { margin-top: 20px; }
html body .zp-summary-card dt small { display: block; color: #9cafcb; font-size: 10px; margin-top: 3px; }
html body .zp-payment-summary { min-width: 0; }
html body .zp-summary-card dd { max-width: 54%; text-align: right; overflow-wrap: anywhere; }
html body .zp-segment button { min-height: 42px; white-space: normal; line-height: 1.4; padding: 10px 12px; }
html body .pos-summary__details dd { max-width: 58%; text-align: right; }
html body .payment-link-summary dd { text-align: right; max-width: 60%; }
html body .font-mono:not(code):not(pre) { font-family: var(--zenvy-font); font-variant-numeric: tabular-nums; }
@media(max-width: 580px) { html body .zp-installment-list button { padding: 10px 5px; gap: 8px; font-size: 11px; } html body .zp-installment-options { padding: 12px; } html body .zp-segment button { font-size: 11px; } }

html body .zp-calculator-payers { display: grid; gap: 18px; margin-top: 22px; }
html body .zp-calculator .zp-installment-list { max-height: none; }

html body .checkout-success-logo { box-sizing: content-box; background: #101b30; border-radius: 12px; padding: 10px 18px; }

html body .merchant-sidebar__brand img { width: 166px; height: auto; margin: 0; filter: none; }
html.light body .merchant-sidebar__brand { background: #111c30; border-radius: 0 0 14px 14px; }
html body .checkout-brand__logo { filter: none; }
html body .checkout-page { font-family: var(--zenvy-font); }
html body .checkout-brand>div:last-child { font-family: var(--zenvy-font) !important; }

html:has(.checkout-page) body::before, html:has(.checkout-page) body::after,
html:has(.checkout-page) #root::before, html:has(.checkout-page) #root::after { display: none; }
html body .checkout-brand .checkout-price { font-family: var(--zenvy-font) !important; font-size: 14px !important; letter-spacing: 0 !important; }
html body .checkout-price>span { display: block; color: #bad0eb; font-size: 12px; }
html body .checkout-price>strong { display: block; font-size: clamp(32px, 3.8vw, 48px); font-weight: 650; letter-spacing: -.04em; font-variant-numeric: tabular-nums; margin: 8px 0 22px; }
html body .checkout-price dl { border-top: 1px solid rgba(151,187,230,.2); padding-top: 14px; font-size: 12px; color: #bcd0ea; }
html body .checkout-price dl>div { display: flex; gap: 20px; justify-content: space-between; margin: 10px 0; }
html body .checkout-price dd { margin: 0; text-align: right; max-width: 65%; color: #edf5ff; font-variant-numeric: tabular-nums; }
