-
- {{ txLabel(tx) }}
- {{ txSubtitle(tx) }}
-
+
+ {{ txLabel(tx) }}
+ {{ txSubtitle(tx) }}
+ {{ new Date(tx.createdAt).toLocaleString() }}
+
+
{{ formatMoney(tx.amount, locale) }}
-
-
- {{ new Date(tx.createdAt).toLocaleString() }}
›
@@ -233,6 +231,10 @@ const pullIndicatorStyle = () => ({
padding-bottom: 24px;
}
+.stats-panel {
+ margin-bottom: var(--space-section);
+}
+
.top-bar {
margin-bottom: 4px;
}
@@ -240,9 +242,9 @@ const pullIndicatorStyle = () => ({
.back-btn {
background: none;
border: none;
- color: #003D6B;
+ color: var(--text-muted);
font-size: 15px;
- font-weight: 700;
+ font-weight: 500;
padding: 4px 0 8px;
cursor: pointer;
display: flex;
@@ -260,8 +262,8 @@ const pullIndicatorStyle = () => ({
.filter-tabs {
display: flex;
- gap: 6px;
- margin-bottom: 12px;
+ gap: 8px;
+ margin-bottom: var(--space-section);
overflow-x: auto;
-webkit-overflow-scrolling: touch;
scrollbar-width: none;
@@ -271,20 +273,21 @@ const pullIndicatorStyle = () => ({
.filter-tab {
flex-shrink: 0;
- padding: 7px 14px;
+ padding: 8px 16px;
border-radius: 999px;
font-size: 12px;
- font-weight: 700;
- color: #6B7280;
- background: #FFFFFF;
- border: 1px solid #E5E7EB;
- transition: all 0.2s;
+ font-weight: 600;
+ color: var(--text-muted);
+ background: var(--bg-card);
+ border: 1px solid var(--border);
+ transition: background 0.2s, border-color 0.2s, color 0.2s;
}
.filter-tab.active {
- color: #FFFFFF;
- background: #003D6B;
- border-color: #003D6B;
+ color: var(--text);
+ background: var(--bg-elevated);
+ border-color: var(--border-strong);
+ font-weight: 600;
}
.state {
@@ -293,7 +296,7 @@ const pullIndicatorStyle = () => ({
align-items: center;
gap: 12px;
text-align: center;
- color: #6B7280;
+ color: var(--text-muted);
padding: 56px 20px;
font-weight: 600;
font-size: 14px;
@@ -305,17 +308,24 @@ const pullIndicatorStyle = () => ({
.tx-list {
margin-bottom: 0;
+ background: var(--bg-card);
+ border: 1px solid var(--border);
+ border-radius: var(--radius);
+ overflow: hidden;
}
.tx-row {
- display: block;
+ display: flex;
+ align-items: center;
+ justify-content: space-between;
+ gap: 12px;
width: 100%;
text-align: left;
font-size: 14px;
- padding: 12px 16px;
+ padding: 12px 14px;
border: none;
- border-bottom: 1px solid #E5E7EB;
- background: #FFFFFF;
+ border-bottom: 1px solid var(--border);
+ background: transparent;
cursor: pointer;
}
@@ -324,45 +334,39 @@ const pullIndicatorStyle = () => ({
}
.tx-row:active {
- background: #F5F7FA;
+ background: var(--bg-hover);
}
-.tx-main {
- display: flex;
- justify-content: space-between;
- align-items: center;
- gap: 12px;
-}
-
-.tx-text {
+.tx-col-left {
display: flex;
flex-direction: column;
- gap: 2px;
+ gap: 3px;
min-width: 0;
+ flex: 1;
+}
+
+.tx-col-right {
+ display: flex;
+ align-items: center;
+ gap: 8px;
+ flex-shrink: 0;
}
.tx-summary {
font-size: 11px;
- color: #6B7280;
+ color: var(--text-muted);
font-weight: 600;
white-space: nowrap;
overflow: hidden;
text-overflow: ellipsis;
}
-.tx-meta {
- display: flex;
- justify-content: space-between;
- align-items: center;
- margin-top: 4px;
-}
-
-.tx-type { font-weight: 700; color: #1A1A2E; }
-.pos { color: #003D6B; font-weight: 800; font-size: 15px; }
-.neg { color: #DC2626; font-weight: 700; }
-.zero { color: #6B7280; font-weight: 700; font-size: 15px; }
-.tx-time { font-size: 11px; color: #6B7280; }
-.tx-arrow { font-size: 16px; color: #6B7280; font-weight: 700; line-height: 1; }
+.tx-type { font-weight: 600; color: var(--text); letter-spacing: -0.01em; }
+.pos { color: var(--success); font-weight: 600; font-size: 14px; font-variant-numeric: tabular-nums; }
+.neg { color: var(--text); font-weight: 600; font-size: 14px; font-variant-numeric: tabular-nums; }
+.zero { color: var(--text-muted); font-weight: 600; font-size: 14px; font-variant-numeric: tabular-nums; }
+.tx-time { font-size: 11px; color: var(--text-dim); }
+.tx-arrow { font-size: 15px; color: var(--text-dim); font-weight: 400; line-height: 1; }
.sentinel {
height: 1px;
@@ -377,11 +381,11 @@ const pullIndicatorStyle = () => ({
.end-hint {
text-align: center;
font-size: 12px;
- color: #6B7280;
+ color: var(--text-muted);
font-weight: 600;
padding: 16px 0 4px;
letter-spacing: 0.03em;
}
-.empty { text-align: center; color: #6B7280; padding: 40px 16px; font-weight: 600; }
+.empty { text-align: center; color: var(--text-muted); padding: 40px 16px; font-weight: 600; }
diff --git a/apps/player/src/views/WalletTransactionDetailView.vue b/apps/player/src/views/WalletTransactionDetailView.vue
index 458dd40..c2c5eb1 100644
--- a/apps/player/src/views/WalletTransactionDetailView.vue
+++ b/apps/player/src/views/WalletTransactionDetailView.vue
@@ -138,9 +138,9 @@ function goCashbackDetail() {
-
@@ -235,7 +235,7 @@ function goCashbackDetail() {
.back-btn {
background: none;
border: none;
- color: #003D6B;
+ color: var(--primary-light);
font-size: 15px;
font-weight: 700;
padding: 4px 0 8px;
@@ -248,13 +248,13 @@ function goCashbackDetail() {
.state {
text-align: center;
padding: 60px 20px;
- color: #6B7280;
+ color: var(--text-muted);
font-size: 14px;
font-weight: 600;
}
.hero {
- border-radius: 14px;
+ border-radius: var(--radius);
padding: 20px;
display: flex;
flex-direction: column;
@@ -262,24 +262,23 @@ function goCashbackDetail() {
gap: 6px;
margin-bottom: 12px;
text-align: center;
- background: #FFFFFF;
- border: 1px solid #E5E7EB;
- box-shadow: 0 1px 3px rgba(0, 0, 0, 0.08);
+ background: var(--bg-card);
+ border: 1px solid var(--border);
}
.hero.pos {
- border-color: rgba(0, 61, 107, 0.2);
- background: linear-gradient(135deg, rgba(0, 61, 107, 0.04), #FFFFFF);
+ border-color: rgba(46, 204, 113, 0.35);
+ background: linear-gradient(135deg, rgba(46, 204, 113, 0.16), rgba(46, 204, 113, 0.05));
}
.hero.neg {
- border-color: rgba(220, 38, 38, 0.2);
- background: linear-gradient(135deg, rgba(220, 38, 38, 0.04), #FFFFFF);
+ border-color: rgba(255, 255, 255, 0.35);
+ background: linear-gradient(135deg, rgba(255, 255, 255, 0.16), rgba(255, 255, 255, 0.05));
}
.hero.zero {
- border-color: #E5E7EB;
- background: #F5F7FA;
+ border-color: var(--border);
+ background: var(--bg-elevated);
}
.hero-type {
@@ -287,13 +286,13 @@ function goCashbackDetail() {
font-weight: 800;
letter-spacing: 0.06em;
text-transform: uppercase;
- color: #6B7280;
+ color: var(--text-muted);
}
.hero-summary {
font-size: 13px;
font-weight: 600;
- color: #6B7280;
+ color: var(--text);
max-width: 100%;
word-break: break-all;
}
@@ -304,29 +303,28 @@ function goCashbackDetail() {
line-height: 1.1;
}
-.hero.pos .hero-amount { color: #003D6B; }
-.hero.neg .hero-amount { color: #DC2626; }
-.hero.zero .hero-amount { color: #6B7280; }
+.hero.pos .hero-amount { color: var(--success); }
+.hero.neg .hero-amount { color: var(--primary); }
+.hero.zero .hero-amount { color: var(--text-muted); }
.hero-time {
font-size: 11px;
- color: #6B7280;
+ color: var(--neutral);
font-weight: 600;
}
.section {
- background: #FFFFFF;
- border: 1px solid #E5E7EB;
- border-radius: 8px;
- padding: 14px 16px;
- margin-bottom: 10px;
- box-shadow: 0 1px 3px rgba(0, 0, 0, 0.08);
+ background: var(--bg-card);
+ border: 1px solid var(--border);
+ border-radius: var(--radius);
+ padding: var(--space-card) 16px;
+ margin-bottom: var(--space-section);
}
.section-title {
font-size: 12px;
font-weight: 800;
- color: #6B7280;
+ color: var(--text-muted);
letter-spacing: 0.04em;
margin-bottom: 10px;
}
@@ -343,19 +341,19 @@ function goCashbackDetail() {
align-items: flex-start;
gap: 12px;
font-size: 13px;
- color: #6B7280;
+ color: var(--text-muted);
}
.sum-row span:last-child {
- color: #1A1A2E;
+ color: var(--text);
font-weight: 700;
text-align: right;
word-break: break-all;
}
-.pos { color: #003D6B !important; }
-.neg { color: #DC2626 !important; }
-.zero { color: #6B7280 !important; }
+.pos { color: var(--success) !important; }
+.neg { color: var(--primary) !important; }
+.zero { color: var(--text-muted) !important; }
.mono {
font-family: ui-monospace, monospace;
@@ -372,9 +370,9 @@ function goCashbackDetail() {
margin-top: 12px;
padding: 10px 14px;
border-radius: 10px;
- border: 1px solid #003D6B;
- background: rgba(0, 61, 107, 0.04);
- color: #003D6B;
+ border: 1px solid var(--border-gold-soft);
+ background: var(--surface-accent);
+ color: var(--primary-light);
font-size: 13px;
font-weight: 700;
cursor: pointer;
@@ -383,7 +381,7 @@ function goCashbackDetail() {
.tx-id {
font-family: ui-monospace, monospace;
font-size: 12px;
- color: #1A1A2E;
+ color: var(--text-muted);
word-break: break-all;
line-height: 1.5;
}
diff --git a/apps/player/src/views/WalletView.vue b/apps/player/src/views/WalletView.vue
index 2f31f89..8df0075 100644
--- a/apps/player/src/views/WalletView.vue
+++ b/apps/player/src/views/WalletView.vue
@@ -1,263 +1,588 @@
+
+
+
+
+
+
+
+
+
+
{{ t('bet.loading') }}
+
+
+
-
-