koopa-admin-log/configs/merchant-landing/shop-pay.css

326 lines
6.8 KiB
CSS
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

/* GOA shop pay popup — QR_Taler style from taler-merchant-webui / @gnu-taler/web-util */
/* Animated blue ring (same as webui QR.tsx) */
@property --angle {
syntax: "<angle>";
initial-value: 0deg;
inherits: false;
}
@keyframes goa-pay-qr-rotate {
to {
--angle: 360deg;
}
}
.shop-item[data-product] {
cursor: pointer;
transition: border-color 0.15s, transform 0.12s, background 0.15s;
}
.shop-item[data-product]:hover,
.shop-item[data-product]:focus-visible {
border-color: rgba(196, 181, 253, 0.75);
background: rgba(0, 0, 0, 0.4);
transform: translateY(-1px);
outline: none;
}
button.shop-item {
font: inherit;
color: inherit;
width: 100%;
appearance: none;
-webkit-appearance: none;
}
.goa-pay-modal {
position: fixed;
inset: 0;
z-index: 80;
display: none;
align-items: center;
justify-content: center;
padding: 1rem;
background: rgba(8, 6, 14, 0.75);
backdrop-filter: blur(8px);
-webkit-backdrop-filter: blur(8px);
}
.goa-pay-modal.open {
display: flex;
}
.goa-pay-card {
position: relative;
background: rgba(36, 28, 48, 0.98);
border: 1px solid rgba(167, 139, 250, 0.45);
border-radius: 16px;
padding: 1.25rem 1.2rem 1.2rem;
max-width: 24rem;
width: 100%;
text-align: center;
box-shadow: 0 20px 50px rgba(0, 0, 0, 0.5);
max-height: 92vh;
overflow-y: auto;
}
.goa-pay-x {
position: absolute;
top: 0.45rem;
right: 0.55rem;
border: 0;
background: transparent;
color: #c4b5fd;
font-size: 1.4rem;
line-height: 1;
cursor: pointer;
padding: 0.2rem 0.45rem;
}
.goa-pay-card h3 {
margin: 0 0 0.2rem;
font-size: 1.08rem;
color: #faf5ff;
padding-right: 1.5rem;
}
.goa-pay-amount {
margin: 0 0 0.85rem;
font-weight: 750;
color: #c4b5fd;
font-variant-numeric: tabular-nums;
}
/* === QR_Taler frame (webui QR.tsx) === */
.goa-pay-taler-qr {
width: 100%;
max-width: 280px;
margin: 0 auto 0.75rem;
padding: 10px;
border-radius: 20px;
box-sizing: border-box;
position: relative;
background: conic-gradient(
from var(--angle),
#0042b3 0deg,
#f1f1f4 20deg,
#f1f1f4 150deg,
#f1f1f4 160deg,
#0042b3 180deg,
#f1f1f4 200deg,
#f1f1f4 330deg,
#f1f1f4 340deg,
#0042b3
);
animation: goa-pay-qr-rotate 10s linear infinite;
}
.goa-pay-taler-qr__inner {
padding: 10px;
border-radius: 20px;
background: #fff;
line-height: 0;
min-height: 180px;
box-sizing: border-box;
}
/* Always an <img data-url> with explicit pixel size from JS */
.goa-pay-taler-qr__inner img {
display: block !important;
margin: 0 auto !important;
border: 0 !important;
background: #fff;
image-rendering: pixelated;
}
/* Center logo plate — official qr-logo (webui uses ~100×50 on large QR) */
.goa-pay-taler-qr__logo {
position: absolute;
top: 50%;
left: 50%;
transform: translate(-50%, -50%);
width: 28%;
height: auto;
max-width: 100px;
pointer-events: none;
background: transparent;
}
/* Settlement: collapsed by default, expand on click */
.goa-pay-settle {
margin-top: 0.85rem;
border: 1px solid rgba(148, 163, 184, 0.35);
border-radius: 12px;
overflow: hidden;
background: rgba(0, 0, 0, 0.22);
}
.goa-pay-settle-toggle {
display: flex;
align-items: center;
justify-content: space-between;
gap: 0.5rem;
width: 100%;
margin: 0;
padding: 0.65rem 0.75rem;
border: 0;
background: transparent;
color: #cbd5e1;
font: inherit;
font-size: 0.78rem;
font-weight: 650;
text-align: left;
cursor: pointer;
line-height: 1.3;
}
.goa-pay-settle-toggle:hover {
background: rgba(148, 163, 184, 0.1);
color: #e2e8f0;
}
.goa-pay-settle-toggle-text {
flex: 1;
}
.goa-pay-settle-chevron {
flex-shrink: 0;
transition: transform 0.15s ease;
color: #94a3b8;
font-size: 0.85rem;
}
.goa-pay-modal.settle-open .goa-pay-settle-chevron {
transform: rotate(90deg);
}
.goa-pay-settle-body {
padding: 0 0.75rem 0.75rem;
border-top: 1px solid rgba(148, 163, 184, 0.25);
}
.goa-pay-settle-note {
margin-top: 0.55rem;
}
/* Settlement payto QR — plain box (not wallet pay / no logo / no blue ring) */
.goa-pay-payto-qr {
width: fit-content;
max-width: 160px;
margin: 0.35rem auto 0.55rem;
padding: 0.45rem 0.5rem 0.5rem;
border-radius: 10px;
background: #fff;
border: 1px dashed rgba(100, 116, 139, 0.75);
box-sizing: border-box;
}
.goa-pay-payto-qr__caption {
font-size: 0.62rem;
font-weight: 750;
letter-spacing: 0.04em;
text-transform: uppercase;
color: #64748b;
text-align: center;
margin: 0 0 0.35rem;
line-height: 1.2;
}
.goa-pay-payto-qr__inner {
line-height: 0;
min-height: 0;
}
.goa-pay-payto-qr__inner img {
display: block !important;
margin: 0 auto !important;
background: #fff;
image-rendering: pixelated;
}
.goa-pay-sub {
margin: 0 0 0.55rem;
font-size: 0.75rem;
line-height: 1.35;
color: #b8a8c9;
font-weight: 500;
text-align: center;
}
.goa-pay-hint {
margin: 0 0 0.75rem;
font-size: 0.82rem;
color: #b8a8c9;
}
.goa-pay-hint.err {
color: #fca5a5;
}
.goa-pay-cta {
display: block;
text-decoration: none;
font-weight: 750;
padding: 0.65rem 1rem;
border-radius: 11px;
background: linear-gradient(135deg, #a78bfa, #6366f1);
color: #0f0a1a;
margin-bottom: 0.75rem;
}
.goa-pay-cta:hover {
filter: brightness(1.06);
}
.goa-pay-cta.disabled {
opacity: 0.45;
pointer-events: none;
}
.goa-pay-label {
margin: 0.55rem 0 0.2rem;
font-size: 0.68rem;
font-weight: 700;
letter-spacing: 0.06em;
text-transform: uppercase;
color: #b8a8c9;
}
.goa-pay-line {
margin: 0 0 0.35rem;
text-align: center;
font-size: 0.88rem;
font-weight: 650;
}
.goa-pay-link {
color: #93c5fd;
text-decoration: none;
white-space: nowrap;
}
.goa-pay-link:hover {
text-decoration: underline;
}
.goa-pay-link.disabled {
opacity: 0.45;
pointer-events: none;
}
.goa-pay-sep {
margin: 0 0.4rem;
color: #b8a8c9;
font-weight: 500;
}
.goa-pay-close {
display: block;
width: 100%;
margin-top: 0.85rem;
border: 1px solid rgba(167, 139, 250, 0.45);
background: transparent;
color: #c4b5fd;
font-weight: 650;
padding: 0.5rem;
border-radius: 10px;
cursor: pointer;
}
/* Bank (gold/teal) overrides */
.goa-pay-modal.bank-theme .goa-pay-card {
background: rgba(42, 32, 24, 0.98);
border-color: rgba(232, 168, 56, 0.4);
}
.goa-pay-modal.bank-theme .goa-pay-amount {
color: #5eead4;
}
.goa-pay-modal.bank-theme .goa-pay-cta {
background: linear-gradient(135deg, #5eead4, #0d9488);
color: #042f2e;
}
.goa-pay-modal.bank-theme .goa-pay-link {
color: #5eead4;
}
.goa-pay-modal.bank-theme .goa-pay-x,
.goa-pay-modal.bank-theme .goa-pay-close {
color: #e8c878;
border-color: rgba(232, 168, 56, 0.35);
}
.goa-pay-modal.bank-theme .goa-pay-settle {
border-color: rgba(232, 168, 56, 0.3);
background: rgba(0, 0, 0, 0.28);
}
.goa-pay-modal.bank-theme .goa-pay-settle-toggle {
color: #e8c878;
}
.goa-pay-modal.bank-theme .goa-pay-settle-body {
border-top-color: rgba(232, 168, 56, 0.25);
}