Commit 40388425 by tdgiang

Redesign admin transaction management UI

Applies a cohesive visual system to the admin panel: a navy/blue
dashboard style (Inter font) for the internal staff pages, and a
navy/gold fintech-trust style (IBM Plex Sans) for the customer-facing
payment pages. Preserves all existing form fields, MegaPay integration
markup, and Swig template bindings unchanged.
parent 8cfa1225
<!DOCTYPE html>
<html>
<html lang="vi">
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<title>Kết quả thanh toán</title>
<link rel="preconnect" href="https://fonts.googleapis.com">
<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
<link href="https://fonts.googleapis.com/css2?family=IBM+Plex+Sans:wght@400;500;600;700&display=swap" rel="stylesheet">
<style>
body { font-family: Arial, sans-serif; max-width: 480px; margin: 60px auto; text-align: center; }
:root {
--color-bg: #F1F5F9;
--color-surface: #FFFFFF;
--color-navy: #0F172A;
--color-navy-muted: #475569;
--color-border: #E2E8F0;
--color-success: #15803D;
--color-success-bg: #F0FDF4;
--color-success-border: #BBF7D0;
--color-danger: #B91C1C;
--color-danger-bg: #FEF2F2;
--color-danger-border: #FECACA;
--radius: 14px;
--shadow-card: 0 1px 2px rgba(15, 23, 42, 0.04), 0 12px 32px rgba(15, 23, 42, 0.08);
}
* { box-sizing: border-box; }
body {
margin: 0;
min-height: 100vh;
background: var(--color-bg);
font-family: 'IBM Plex Sans', -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Helvetica, Arial, sans-serif;
color: var(--color-navy);
display: flex;
justify-content: center;
align-items: center;
padding: 24px;
}
.card {
width: 100%;
max-width: 400px;
background: var(--color-surface);
border: 1px solid var(--color-border);
border-radius: var(--radius);
box-shadow: var(--shadow-card);
padding: 44px 32px;
text-align: center;
}
.state-icon {
width: 64px;
height: 64px;
border-radius: 50%;
display: flex;
align-items: center;
justify-content: center;
margin: 0 auto 24px;
animation: pop 400ms cubic-bezier(0.34, 1.56, 0.64, 1);
}
.state-icon.success { background: var(--color-success-bg); color: var(--color-success); }
.state-icon.failed { background: var(--color-danger-bg); color: var(--color-danger); }
@keyframes pop {
from { transform: scale(0.6); opacity: 0; }
to { transform: scale(1); opacity: 1; }
}
h1 {
font-size: 20px;
font-weight: 700;
letter-spacing: -0.01em;
margin: 0 0 8px;
}
h1.success { color: var(--color-success); }
h1.failed { color: var(--color-danger); }
p.message {
font-size: 14px;
color: var(--color-navy-muted);
line-height: 1.6;
margin: 0;
}
@media (prefers-reduced-motion: reduce) {
.state-icon { animation: none; }
}
</style>
</head>
<body>
{% if success %}
<h2 style="color:#276b45">Thanh toán thành công</h2>
{% else %}
<h2 style="color:#a3352a">Thanh toán thất bại</h2>
<p>{{message}}</p>
{% endif %}
<div class="card">
{% if success %}
<div class="state-icon success">
<svg width="32" height="32" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><path d="M20 6L9 17l-5-5"/></svg>
</div>
<h1 class="success">Thanh toán thành công</h1>
<p class="message">Giao dịch của bạn đã được xử lý. Bạn có thể đóng trang này.</p>
{% else %}
<div class="state-icon failed">
<svg width="32" height="32" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><line x1="18" y1="6" x2="6" y2="18"/><line x1="6" y1="6" x2="18" y2="18"/></svg>
</div>
<h1 class="failed">Thanh toán thất bại</h1>
<p class="message">{{message}}</p>
{% endif %}
</div>
</body>
</html>
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment