diff --git a/apps/player/index.html b/apps/player/index.html
index c799e95..fd3a2c4 100644
--- a/apps/player/index.html
+++ b/apps/player/index.html
@@ -3,13 +3,13 @@
-
-
+
+
TheBet365
diff --git a/apps/player/src/components/BetGuideHelp.vue b/apps/player/src/components/BetGuideHelp.vue
index cde07d2..4e631bf 100644
--- a/apps/player/src/components/BetGuideHelp.vue
+++ b/apps/player/src/components/BetGuideHelp.vue
@@ -65,9 +65,9 @@ function close() {
width: 30px;
height: 30px;
border-radius: 50%;
- border: 1px solid var(--border-gold-soft);
- background: rgba(0, 0, 0, 0.2);
- color: var(--primary-light);
+ border: 1px solid #E5E7EB;
+ background: #FFFFFF;
+ color: #003D6B;
font-size: 14px;
font-weight: 800;
line-height: 1;
@@ -79,7 +79,7 @@ function close() {
position: fixed;
inset: 0;
z-index: 205;
- background: rgba(0, 0, 0, 0.72);
+ background: rgba(0, 0, 0, 0.4);
display: flex;
align-items: center;
justify-content: center;
@@ -93,11 +93,11 @@ function close() {
max-width: 340px;
max-height: 85vh;
overflow-y: auto;
- background: linear-gradient(165deg, #1a1810 0%, #121212 45%, #0a0a0a 100%);
- border: 1px solid var(--border-gold-soft);
- border-radius: var(--radius);
+ background: #FFFFFF;
+ border: 1px solid #E5E7EB;
+ border-radius: 8px;
padding: 16px 14px 14px;
- box-shadow: var(--shadow), 0 0 24px rgba(212, 175, 55, 0.08);
+ box-shadow: 0 1px 3px rgba(0, 0, 0, 0.08);
}
.close-x {
@@ -107,15 +107,15 @@ function close() {
width: 28px;
height: 28px;
border-radius: 50%;
- background: rgba(255, 255, 255, 0.06);
- color: var(--text-muted);
+ background: #F5F7FA;
+ color: #6B7280;
font-size: 14px;
}
.title {
font-size: 16px;
font-weight: 800;
- color: var(--primary-light);
+ color: #003D6B;
text-align: center;
margin-bottom: 12px;
padding-right: 24px;
@@ -126,14 +126,14 @@ function close() {
gap: 10px;
margin-bottom: 14px;
font-size: 13px;
- color: var(--text-muted);
+ color: #6B7280;
line-height: 1.55;
}
.guide-body :deep(.flow-name) {
font-size: 13px;
font-weight: 800;
- color: var(--primary-light);
+ color: #003D6B;
margin: 0 0 8px;
}
@@ -152,21 +152,24 @@ function close() {
.guide-body :deep(.flow-block) {
padding-top: 10px;
- border-top: 1px solid var(--border);
+ border-top: 1px solid #E5E7EB;
}
.guide-body :deep(.rules-link) {
margin: 4px 0 0;
font-size: 12px;
padding-top: 8px;
- border-top: 1px dashed var(--border);
+ border-top: 1px dashed #E5E7EB;
}
.btn-ok {
width: 100%;
padding: 10px;
- border-radius: 6px;
+ border-radius: 8px;
font-size: 14px;
font-weight: 800;
+ background: #003D6B;
+ color: #FFFFFF;
+ border: none;
}
diff --git a/apps/player/src/components/BetHistoryCard.vue b/apps/player/src/components/BetHistoryCard.vue
index 10ffbea..f56d9bd 100644
--- a/apps/player/src/components/BetHistoryCard.vue
+++ b/apps/player/src/components/BetHistoryCard.vue
@@ -149,15 +149,19 @@ function goDetail() {
align-items: center;
gap: 10px;
padding: 14px 16px;
- border-bottom: 1px solid var(--border);
+ background: #FFFFFF;
+ border: 1px solid #E5E7EB;
+ border-radius: 8px;
+ margin-bottom: 8px;
cursor: pointer;
- transition: background 0.15s;
+ transition: background 0.15s, box-shadow 0.15s;
-webkit-tap-highlight-color: transparent;
overflow: hidden;
+ box-shadow: 0 1px 3px rgba(0, 0, 0, 0.08);
}
.bet-card:active {
- background: rgba(255, 255, 255, 0.02);
+ background: #F5F7FA;
}
.card-body {
@@ -178,9 +182,9 @@ function goDetail() {
.cashback-tag {
font-size: 10px;
font-weight: 700;
- color: #f0b90b;
- background: rgba(240, 185, 11, 0.1);
- border: 1px solid rgba(240, 185, 11, 0.25);
+ color: #F8971F;
+ background: rgba(248, 151, 31, 0.08);
+ border: 1px solid rgba(248, 151, 31, 0.2);
border-radius: 4px;
padding: 1px 6px;
}
@@ -188,9 +192,9 @@ function goDetail() {
.bet-type-tag {
font-size: 10px;
font-weight: 700;
- color: var(--primary-light, #c8a84e);
- background: rgba(200, 168, 78, 0.12);
- border: 1px solid rgba(200, 168, 78, 0.25);
+ color: #003D6B;
+ background: rgba(0, 61, 107, 0.06);
+ border: 1px solid rgba(0, 61, 107, 0.15);
border-radius: 4px;
padding: 1px 6px;
letter-spacing: 0.02em;
@@ -198,7 +202,7 @@ function goDetail() {
.card-date {
font-size: 10px;
- color: #555;
+ color: #6B7280;
font-weight: 600;
flex-shrink: 0;
margin-left: auto;
@@ -207,7 +211,7 @@ function goDetail() {
.title {
font-size: 14px;
font-weight: 800;
- color: #e8e8e8;
+ color: #1A1A2E;
white-space: nowrap;
overflow: hidden;
text-overflow: ellipsis;
@@ -221,7 +225,7 @@ function goDetail() {
.pick-label {
font-size: 11px;
- color: #888;
+ color: #6B7280;
font-weight: 600;
white-space: nowrap;
overflow: hidden;
@@ -233,8 +237,8 @@ function goDetail() {
.odds-badge {
font-size: 11px;
font-weight: 800;
- color: #c8a84e;
- background: rgba(200, 168, 78, 0.1);
+ color: #F8971F;
+ background: rgba(248, 151, 31, 0.08);
border-radius: 4px;
padding: 1px 6px;
flex-shrink: 0;
@@ -250,24 +254,24 @@ function goDetail() {
.stake-amt {
font-size: 11px;
- color: #666;
+ color: #6B7280;
font-weight: 600;
}
.return-amt {
font-size: 15px;
font-weight: 900;
- color: #888;
+ color: #6B7280;
}
-.return-amt.highlight { color: #3db865; }
-.return-amt.pending { color: #e8c84a; }
-.return-amt.lost { color: #e05050; }
+.return-amt.highlight { color: #059669; }
+.return-amt.pending { color: #F8971F; }
+.return-amt.lost { color: #DC2626; }
.chevron {
flex-shrink: 0;
font-size: 18px;
- color: #333;
+ color: #E5E7EB;
margin-left: 2px;
line-height: 1;
}
diff --git a/apps/player/src/components/BetSlipDrawer.vue b/apps/player/src/components/BetSlipDrawer.vue
index 13c58c9..1c3b731 100644
--- a/apps/player/src/components/BetSlipDrawer.vue
+++ b/apps/player/src/components/BetSlipDrawer.vue
@@ -457,7 +457,7 @@ watch(
.overlay {
position: fixed;
inset: 0;
- background: rgba(0, 0, 0, 0.75);
+ background: rgba(0, 0, 0, 0.35);
z-index: 200;
display: flex;
align-items: flex-end;
@@ -466,13 +466,13 @@ watch(
.drawer {
width: 100%;
max-height: 88vh;
- background: #101010;
+ background: #FFFFFF;
border-radius: 16px 16px 0 0;
- border-top: 1px solid var(--border-gold-soft);
+ border-top: 1px solid #E5E7EB;
display: flex;
flex-direction: column;
overflow: hidden;
- box-shadow: 0 -20px 44px rgba(0, 0, 0, 0.48);
+ box-shadow: 0 -8px 30px rgba(0, 0, 0, 0.12);
}
.drawer-head {
@@ -484,14 +484,14 @@ watch(
align-items: flex-start;
gap: 12px;
padding: 14px 14px 10px;
- background: linear-gradient(180deg, #1d1d1d 0%, #111 100%);
- border-bottom: 1px solid rgba(255, 255, 255, 0.06);
+ background: #FFFFFF;
+ border-bottom: 1px solid #E5E7EB;
}
.drawer-kicker {
margin: 0 0 3px;
font-size: 11px;
- color: var(--primary-light);
+ color: #003D6B;
font-weight: 800;
}
@@ -499,7 +499,7 @@ watch(
margin: 0;
font-size: 17px;
font-weight: 900;
- color: var(--text);
+ color: #1A1A2E;
}
.close-btn {
@@ -509,8 +509,8 @@ watch(
width: 32px;
height: 32px;
border-radius: 50%;
- background: rgba(255, 255, 255, 0.05);
- color: var(--text-muted);
+ background: #F5F7FA;
+ color: #6B7280;
font-size: 18px;
padding: 0;
pointer-events: auto;
@@ -523,15 +523,15 @@ watch(
align-items: center;
gap: 8px;
padding: 10px 14px;
- background: rgba(212, 175, 55, 0.08);
- border-bottom: 1px solid rgba(212, 175, 55, 0.18);
- color: var(--text-muted);
+ background: rgba(0, 61, 107, 0.04);
+ border-bottom: 1px solid #E5E7EB;
+ color: #6B7280;
font-size: 12px;
}
.balance-bar strong {
justify-self: end;
- color: var(--primary-light);
+ color: #003D6B;
font-size: 16px;
font-weight: 900;
}
@@ -540,8 +540,8 @@ watch(
width: 28px;
height: 28px;
border-radius: 50%;
- background: rgba(255, 255, 255, 0.04);
- color: var(--text-muted);
+ background: #F5F7FA;
+ color: #6B7280;
padding: 0;
}
@@ -550,23 +550,23 @@ watch(
grid-template-columns: repeat(2, 1fr);
padding: 8px 12px 0;
gap: 6px;
- background: #101010;
+ background: #FFFFFF;
}
.slip-tab {
min-height: 38px;
border-radius: 6px 6px 0 0;
- border: 1px solid var(--border);
- background: #171717;
- color: var(--text-muted);
+ border: 1px solid #E5E7EB;
+ background: #F5F7FA;
+ color: #6B7280;
font-size: 13px;
font-weight: 800;
}
.slip-tab.active {
- border-color: var(--border-gold-soft);
- background: rgba(212, 175, 55, 0.13);
- color: var(--primary-light);
+ border-color: #003D6B;
+ background: rgba(0, 61, 107, 0.06);
+ color: #003D6B;
}
.tab-count {
@@ -577,8 +577,8 @@ watch(
height: 18px;
margin-left: 6px;
border-radius: 9px;
- background: var(--primary);
- color: #111;
+ background: #003D6B;
+ color: #FFFFFF;
font-size: 11px;
font-weight: 900;
}
@@ -592,7 +592,7 @@ watch(
.empty {
text-align: center;
- color: var(--text-muted);
+ color: #6B7280;
padding: 26px 12px;
font-size: 13px;
}
@@ -603,15 +603,15 @@ watch(
gap: 10px;
align-items: center;
padding: 11px 12px;
- background: #151515;
- border: 1px solid #292929;
- border-radius: 7px;
+ background: #FFFFFF;
+ border: 1px solid #E5E7EB;
+ border-radius: 8px;
margin-bottom: 8px;
}
.slip-item--single {
- border-color: var(--border-gold-soft);
- background: linear-gradient(180deg, rgba(212, 175, 55, 0.12), rgba(18, 18, 18, 0.94));
+ border-color: #003D6B;
+ background: rgba(0, 61, 107, 0.03);
}
.item-main {
@@ -621,7 +621,7 @@ watch(
.item-title {
font-size: 13px;
font-weight: 900;
- color: var(--text);
+ color: #1A1A2E;
white-space: nowrap;
overflow: hidden;
text-overflow: ellipsis;
@@ -631,19 +631,19 @@ watch(
margin-top: 4px;
font-size: 12px;
font-weight: 800;
- color: var(--primary-light);
+ color: #003D6B;
}
.item-pick {
margin-top: 3px;
font-size: 12px;
- color: var(--text-muted);
+ color: #6B7280;
line-height: 1.35;
}
.item-odds,
.item-side strong {
- color: var(--primary-light);
+ color: #003D6B;
font-size: 22px;
font-weight: 900;
}
@@ -657,7 +657,7 @@ watch(
.remove {
background: none;
- color: var(--danger);
+ color: #DC2626;
font-size: 12px;
font-weight: 800;
padding: 0;
@@ -672,14 +672,12 @@ watch(
min-height: 48px;
padding: 0 14px;
border-radius: 8px;
- background: linear-gradient(180deg, #4b370d 0%, #241905 100%);
- border: 1px solid var(--primary-light);
- color: #ffe892;
+ background: #FFFFFF;
+ border: 1px solid #003D6B;
+ color: #003D6B;
font-size: 14px;
font-weight: 900;
- box-shadow:
- 0 0 0 1px rgba(255, 232, 146, 0.18) inset,
- 0 6px 18px rgba(212, 175, 55, 0.18);
+ box-shadow: 0 1px 3px rgba(0, 0, 0, 0.08);
}
.btn-add-parlay span {
@@ -689,8 +687,8 @@ watch(
width: 18px;
height: 18px;
border-radius: 50%;
- background: var(--primary-light);
- color: #191100;
+ background: #003D6B;
+ color: #FFFFFF;
font-size: 14px;
line-height: 1;
}
@@ -700,16 +698,16 @@ watch(
margin: 0 0 10px;
padding: 10px 11px;
border-radius: 6px;
- background: rgba(255, 77, 79, 0.12);
- border: 1px solid rgba(255, 77, 79, 0.25);
- color: #ff8b8b;
+ background: rgba(220, 38, 38, 0.06);
+ border: 1px solid rgba(220, 38, 38, 0.18);
+ color: #DC2626;
font-size: 12px;
line-height: 1.45;
}
.parlay-meta {
margin: 8px 2px 10px;
- color: var(--primary-light);
+ color: #003D6B;
font-size: 12px;
font-weight: 800;
}
@@ -717,8 +715,8 @@ watch(
.stake-area {
margin: 12px 0 12px;
padding: 12px;
- background: #151515;
- border: 1px solid #292929;
+ background: #FFFFFF;
+ border: 1px solid #E5E7EB;
border-radius: 8px;
}
@@ -729,12 +727,12 @@ watch(
justify-content: space-between;
gap: 8px;
font-size: 12px;
- color: var(--text-muted);
+ color: #6B7280;
}
.stake-head strong,
.return strong {
- color: var(--primary-light);
+ color: #003D6B;
font-size: 16px;
font-weight: 900;
}
@@ -744,17 +742,17 @@ watch(
grid-template-columns: auto 1fr auto;
align-items: center;
margin-top: 10px;
- border: 1px solid var(--border-gold-soft);
+ border: 1px solid #E5E7EB;
border-radius: 6px;
overflow: hidden;
- background: #0c0c0c;
+ background: #F5F7FA;
}
.currency {
padding: 0 10px;
- color: var(--text-muted);
+ color: #6B7280;
font-size: 13px;
- border-right: 1px solid #2d2d2d;
+ border-right: 1px solid #E5E7EB;
}
.stake-input-row input {
@@ -762,7 +760,7 @@ watch(
height: 42px;
border: none;
background: transparent;
- color: var(--text);
+ color: #1A1A2E;
font-size: 17px;
font-weight: 800;
padding: 0 10px;
@@ -781,7 +779,7 @@ watch(
width: 38px;
height: 42px;
background: transparent;
- color: var(--text-muted);
+ color: #6B7280;
padding: 0;
font-size: 15px;
}
@@ -804,10 +802,10 @@ watch(
.number-key,
.quick-stakes button {
min-height: 52px;
- border-radius: 5px;
- background: #f4f1f6;
- color: #221f26;
- border: 1px solid rgba(255, 255, 255, 0.16);
+ border-radius: 6px;
+ background: #F5F7FA;
+ color: #1A1A2E;
+ border: 1px solid #E5E7EB;
font-size: 26px;
font-weight: 500;
}
@@ -819,10 +817,11 @@ watch(
.quick-stakes button {
min-height: 50px;
- background: #7b787d;
- color: var(--text);
+ background: #FFFFFF;
+ color: #1A1A2E;
font-size: 20px;
font-weight: 800;
+ border: 1px solid #E5E7EB;
}
.return {
@@ -830,7 +829,7 @@ watch(
}
.success {
- color: var(--primary-light);
+ color: #059669;
font-size: 13px;
margin: 0 0 8px;
}
@@ -841,9 +840,9 @@ watch(
grid-template-columns: 1fr;
gap: 10px;
padding: 10px 14px calc(10px + env(safe-area-inset-bottom, 0px));
- background: rgba(14, 14, 14, 0.98);
- border-top: 1px solid var(--border-gold-soft);
- box-shadow: 0 -6px 20px rgba(0, 0, 0, 0.45);
+ background: #FFFFFF;
+ border-top: 1px solid #E5E7EB;
+ box-shadow: 0 -2px 8px rgba(0, 0, 0, 0.06);
}
.drawer-foot--split {
@@ -853,9 +852,9 @@ watch(
.btn-primary {
width: 100%;
min-height: 48px;
- border-radius: 7px;
- background: linear-gradient(180deg, var(--primary-light), var(--primary));
- color: #111;
+ border-radius: 8px;
+ background: #003D6B;
+ color: #FFFFFF;
font-size: 16px;
font-weight: 900;
}
diff --git a/apps/player/src/components/BetStatsPanel.vue b/apps/player/src/components/BetStatsPanel.vue
index 1c8d733..9ec47e1 100644
--- a/apps/player/src/components/BetStatsPanel.vue
+++ b/apps/player/src/components/BetStatsPanel.vue
@@ -79,12 +79,12 @@ const stats = computed(() => {
diff --git a/apps/player/src/components/BetSuccessOverlay.vue b/apps/player/src/components/BetSuccessOverlay.vue
index 8c82f30..bee9922 100644
--- a/apps/player/src/components/BetSuccessOverlay.vue
+++ b/apps/player/src/components/BetSuccessOverlay.vue
@@ -16,7 +16,7 @@ interface Particle {
color: string; shape: number;
}
-const COLORS = ['#D4AF37', '#FFD700', '#F0C040', '#C8A02E', '#E6C84C', '#B8960C'];
+const COLORS = ['#003D6B', '#005B9F', '#0066CC', '#3388DD', '#1A5FA0', '#4499E0'];
let w = 0;
let h = 0;
@@ -111,8 +111,8 @@ onUnmounted(stop);
{{ t('bet.place_success') }}
@@ -125,7 +125,7 @@ onUnmounted(stop);
position: fixed;
inset: 0;
z-index: 300;
- background: rgba(0, 0, 0, 0.82);
+ background: rgba(245, 247, 250, 0.88);
display: flex;
align-items: center;
justify-content: center;
@@ -166,7 +166,7 @@ onUnmounted(stop);
}
.success-text {
- color: var(--primary-light);
+ color: #003D6B;
font-size: 18px;
font-weight: 800;
letter-spacing: 0.04em;
diff --git a/apps/player/src/components/CashBalanceChip.vue b/apps/player/src/components/CashBalanceChip.vue
index d104b25..916d31e 100644
--- a/apps/player/src/components/CashBalanceChip.vue
+++ b/apps/player/src/components/CashBalanceChip.vue
@@ -115,10 +115,11 @@ onUnmounted(() => {
padding: 0 8px 0 8px;
min-width: 0;
cursor: pointer;
- border: 1px solid var(--border);
+ border: 1px solid #E5E7EB;
border-radius: 6px;
- background: #141414;
+ background: #FFFFFF;
box-sizing: border-box;
+ box-shadow: 0 1px 3px rgba(0, 0, 0, 0.08);
}
.chip-body {
@@ -130,7 +131,7 @@ onUnmounted(() => {
.chip-label {
font-size: 8px;
- color: var(--text-muted);
+ color: #6B7280;
font-weight: 600;
letter-spacing: 0.02em;
white-space: nowrap;
@@ -143,14 +144,14 @@ onUnmounted(() => {
.chip-amount {
font-size: 11px;
font-weight: 800;
- color: var(--primary-light);
+ color: #003D6B;
white-space: nowrap;
line-height: 1.15;
}
.chevron {
font-size: 10px;
- color: var(--primary-light);
+ color: #003D6B;
transition: transform 0.2s;
margin-left: 0;
}
@@ -166,10 +167,10 @@ onUnmounted(() => {
width: min(260px, 78vw);
padding: 12px 14px;
z-index: 130;
- border: 1px solid var(--border);
- border-radius: var(--radius-sm);
- background: #141414;
- box-shadow: var(--shadow);
+ border: 1px solid #E5E7EB;
+ border-radius: 8px;
+ background: #FFFFFF;
+ box-shadow: 0 4px 12px rgba(0, 0, 0, 0.1);
}
.cash-panel::before {
@@ -183,21 +184,22 @@ onUnmounted(() => {
font-size: 13px;
font-weight: 600;
padding: 6px 0;
+ color: #1A1A2E;
}
.panel-row.muted {
- color: var(--text-muted);
+ color: #6B7280;
}
.panel-row.highlight {
- color: var(--primary-light);
+ color: #003D6B;
font-weight: 800;
font-size: 14px;
}
.panel-divider {
height: 1px;
- background: linear-gradient(90deg, transparent, var(--border-gold-soft), transparent);
+ background: #E5E7EB;
margin: 4px 0;
}
@@ -206,9 +208,9 @@ onUnmounted(() => {
padding: 8px 0;
margin-top: 4px;
border-radius: 6px;
- border: 1px solid var(--primary, #c8a84e);
- background: rgba(200, 168, 78, 0.12);
- color: var(--primary-light, #c8a84e);
+ border: 1px solid #003D6B;
+ background: transparent;
+ color: #003D6B;
font-size: 13px;
font-weight: 700;
cursor: pointer;
@@ -216,7 +218,7 @@ onUnmounted(() => {
}
.panel-recharge-btn:active {
- background: rgba(200, 168, 78, 0.24);
+ background: rgba(0, 61, 107, 0.06);
}
.backdrop {
diff --git a/apps/player/src/components/CustomerServiceModal.vue b/apps/player/src/components/CustomerServiceModal.vue
index fb1886d..30114d6 100644
--- a/apps/player/src/components/CustomerServiceModal.vue
+++ b/apps/player/src/components/CustomerServiceModal.vue
@@ -77,7 +77,7 @@ function close() {
align-items: center;
justify-content: center;
padding: 16px;
- background: rgba(0, 0, 0, 0.72);
+ background: rgba(0, 0, 0, 0.35);
backdrop-filter: blur(4px);
-webkit-backdrop-filter: blur(4px);
}
@@ -87,11 +87,11 @@ function close() {
flex-direction: column;
width: min(100%, 420px);
height: min(82vh, 680px);
- background: #141414;
- border: 1px solid var(--border-gold-soft, rgba(200, 168, 78, 0.25));
+ background: #FFFFFF;
+ border: 1px solid #E5E7EB;
border-radius: 12px;
overflow: hidden;
- box-shadow: 0 16px 48px rgba(0, 0, 0, 0.55);
+ box-shadow: 0 8px 30px rgba(0, 0, 0, 0.12);
}
.cs-header {
@@ -101,21 +101,21 @@ function close() {
justify-content: space-between;
gap: 12px;
padding: 14px 16px;
- border-bottom: 1px solid var(--border, #2a2a2a);
- background: rgba(26, 26, 26, 0.98);
+ border-bottom: 1px solid #E5E7EB;
+ background: #FFFFFF;
}
.cs-title {
margin: 0;
font-size: 16px;
font-weight: 800;
- color: var(--primary-light, #c8a84e);
+ color: #003D6B;
}
.close-btn {
background: none;
border: none;
- color: #666;
+ color: #6B7280;
font-size: 18px;
cursor: pointer;
padding: 4px;
@@ -123,13 +123,13 @@ function close() {
}
.close-btn:hover {
- color: #aaa;
+ color: #1A1A2E;
}
.cs-body {
flex: 1;
min-height: 0;
- background: #0d0d0d;
+ background: #F5F7FA;
}
.cs-frame {
@@ -150,7 +150,7 @@ function close() {
text-align: center;
font-size: 14px;
line-height: 1.6;
- color: #888;
+ color: #6B7280;
}
.fade-enter-active,
diff --git a/apps/player/src/components/GoldSpinner.vue b/apps/player/src/components/GoldSpinner.vue
index cf6186e..87799ed 100644
--- a/apps/player/src/components/GoldSpinner.vue
+++ b/apps/player/src/components/GoldSpinner.vue
@@ -19,7 +19,7 @@ const wrapperStyle = computed(() => {
+
\ No newline at end of file
diff --git a/apps/player/src/components/LeagueAccordionItem.vue b/apps/player/src/components/LeagueAccordionItem.vue
index 4089f8e..3d77080 100644
--- a/apps/player/src/components/LeagueAccordionItem.vue
+++ b/apps/player/src/components/LeagueAccordionItem.vue
@@ -86,11 +86,12 @@ const openCount = computed(() => props.matches.filter(m => m.matchPhase === 'ope
.league-block {
position: relative;
isolation: isolate;
- margin-bottom: 12px;
- border: 1px solid var(--border);
- border-radius: var(--radius);
- background: var(--bg-card);
+ margin-bottom: 10px;
+ border: 1px solid #CBD5E1;
+ border-radius: 8px;
+ background: #FFFFFF;
overflow: hidden;
+ box-shadow: 0 1px 4px rgba(0, 0, 0, 0.1);
}
.league-row {
@@ -112,8 +113,7 @@ const openCount = computed(() => props.matches.filter(m => m.matchPhase === 'ope
content: '';
position: absolute;
inset: 0;
- background: v-bind(matchCardBg) center / 100% 100% no-repeat;
- opacity: 0.25;
+ background: linear-gradient(135deg, rgba(0, 61, 107, 0.02) 0%, transparent 60%);
z-index: -1;
pointer-events: none;
}
@@ -127,17 +127,17 @@ const openCount = computed(() => props.matches.filter(m => m.matchPhase === 'ope
width: 26px;
height: 26px;
border-radius: 50%;
- background: #141414;
- border: 1px solid var(--border-gold-soft);
+ background: #003D6B;
+ border: none;
display: flex;
align-items: center;
justify-content: center;
}
.toggle-mark {
- color: var(--primary-light);
+ color: #FFFFFF;
font-size: 17px;
- font-weight: 900;
+ font-weight: 700;
line-height: 1;
margin-top: -1px;
}
@@ -152,8 +152,8 @@ const openCount = computed(() => props.matches.filter(m => m.matchPhase === 'ope
.league-title {
font-size: 13px;
- font-weight: 800;
- color: #fff;
+ font-weight: 700;
+ color: #1A1A2E;
line-height: 1.35;
min-width: 0;
}
@@ -163,16 +163,16 @@ const openCount = computed(() => props.matches.filter(m => m.matchPhase === 'ope
align-items: center;
gap: 6px;
font-size: 11px;
- color: #ccc;
+ color: #6B7280;
line-height: 1.2;
}
.stat-live {
- color: #3db865;
+ color: #059669;
}
.stat-open {
- color: #c8a84e;
+ color: #D97706;
}
.league-saishi {
@@ -183,11 +183,13 @@ const openCount = computed(() => props.matches.filter(m => m.matchPhase === 'ope
object-fit: contain;
margin-left: 4px;
padding-left: 10px;
- border-left: 1px solid #2a2a2a;
+ border-left: 1px solid #CBD5E1;
}
.match-panel {
- padding: 10px 0 4px;
+ padding: 8px 0 4px;
+ background: #F0F2F6;
+ border-top: 1px solid #D1D5DB;
}
.match-grid {
diff --git a/apps/player/src/components/LocaleFlag.vue b/apps/player/src/components/LocaleFlag.vue
index fd3ee81..cbe8cac 100644
--- a/apps/player/src/components/LocaleFlag.vue
+++ b/apps/player/src/components/LocaleFlag.vue
@@ -27,6 +27,6 @@ const src = computed(() => `/flags/${countryCode.value}.svg`);
flex-shrink: 0;
border-radius: 2px;
object-fit: cover;
- box-shadow: 0 0 0 1px rgba(255, 255, 255, 0.12);
+ box-shadow: 0 0 0 1px rgba(0, 0, 0, 0.08);
}
diff --git a/apps/player/src/components/LocaleSwitcher.vue b/apps/player/src/components/LocaleSwitcher.vue
index 341338d..ca97273 100644
--- a/apps/player/src/components/LocaleSwitcher.vue
+++ b/apps/player/src/components/LocaleSwitcher.vue
@@ -79,16 +79,17 @@ onUnmounted(() => {
width: 36px;
height: 36px;
padding: 0;
- border: 1px solid var(--border);
+ border: 1px solid #E5E7EB;
border-radius: 6px;
- background: #0d0d0d;
- color: var(--primary-light);
+ background: #FFFFFF;
+ color: #003D6B;
font-size: 11px;
font-weight: 700;
font-family: inherit;
cursor: pointer;
box-sizing: border-box;
flex-shrink: 0;
+ box-shadow: 0 1px 3px rgba(0, 0, 0, 0.08);
}
.locale-switch.compact .locale-trigger {
@@ -105,10 +106,10 @@ onUnmounted(() => {
margin: 0;
padding: 4px;
list-style: none;
- background: #141414;
- border: 1px solid var(--border-gold-soft);
+ background: #FFFFFF;
+ border: 1px solid #E5E7EB;
border-radius: 8px;
- box-shadow: var(--shadow);
+ box-shadow: 0 4px 12px rgba(0, 0, 0, 0.1);
}
.locale-option {
@@ -117,7 +118,7 @@ onUnmounted(() => {
gap: 8px;
padding: 8px 10px;
border-radius: 6px;
- color: var(--text-muted);
+ color: #6B7280;
font-size: 12px;
font-weight: 600;
cursor: pointer;
@@ -126,7 +127,7 @@ onUnmounted(() => {
.locale-option:hover,
.locale-option.active {
- background: rgba(212, 175, 55, 0.1);
- color: var(--primary-light);
+ background: rgba(0, 61, 107, 0.06);
+ color: #003D6B;
}
diff --git a/apps/player/src/components/LoginPromptModal.vue b/apps/player/src/components/LoginPromptModal.vue
index e669142..96940cf 100644
--- a/apps/player/src/components/LoginPromptModal.vue
+++ b/apps/player/src/components/LoginPromptModal.vue
@@ -55,7 +55,7 @@ function continueBrowsing() {
display: flex;
align-items: center;
justify-content: center;
- background: rgba(0, 0, 0, 0.7);
+ background: rgba(0, 0, 0, 0.35);
backdrop-filter: blur(4px);
-webkit-backdrop-filter: blur(4px);
}
@@ -64,10 +64,11 @@ function continueBrowsing() {
position: relative;
width: 90%;
max-width: 360px;
- background: #1a1a1a;
- border: 1px solid var(--border-gold-soft, rgba(200, 168, 78, 0.25));
+ background: #FFFFFF;
+ border: 1px solid #E5E7EB;
border-radius: 12px;
padding: 28px 24px 24px;
+ box-shadow: 0 4px 20px rgba(0, 0, 0, 0.12);
}
.close-btn {
@@ -76,7 +77,7 @@ function continueBrowsing() {
right: 14px;
background: none;
border: none;
- color: #666;
+ color: #6B7280;
font-size: 18px;
cursor: pointer;
padding: 4px;
@@ -84,20 +85,20 @@ function continueBrowsing() {
}
.close-btn:hover {
- color: #aaa;
+ color: #1A1A2E;
}
.login-title {
font-size: 18px;
font-weight: 800;
- color: var(--primary-light, #c8a84e);
+ color: #003D6B;
margin: 0 0 6px;
text-align: center;
}
.login-hint {
font-size: 12px;
- color: #888;
+ color: #6B7280;
text-align: center;
margin: 0 0 24px;
}
@@ -112,8 +113,8 @@ function continueBrowsing() {
padding: 12px;
border-radius: 8px;
border: none;
- background: linear-gradient(135deg, #d4a017, #e8c84a);
- color: #1a1a1a;
+ background: #003D6B;
+ color: #FFFFFF;
font-size: 15px;
font-weight: 800;
cursor: pointer;
@@ -128,9 +129,9 @@ function continueBrowsing() {
.login-secondary {
padding: 10px;
border-radius: 8px;
- border: 1px solid #333;
+ border: 1px solid #E5E7EB;
background: transparent;
- color: #888;
+ color: #6B7280;
font-size: 14px;
font-weight: 600;
cursor: pointer;
@@ -139,8 +140,8 @@ function continueBrowsing() {
}
.login-secondary:active {
- color: #aaa;
- border-color: #444;
+ color: #1A1A2E;
+ border-color: #003D6B;
}
.fade-enter-active,
diff --git a/apps/player/src/components/MatchBetCard.vue b/apps/player/src/components/MatchBetCard.vue
index b8628b5..fa0e648 100644
--- a/apps/player/src/components/MatchBetCard.vue
+++ b/apps/player/src/components/MatchBetCard.vue
@@ -130,30 +130,32 @@ const liveScoreText = computed(() => {
diff --git a/apps/player/src/components/PhoneCountrySelect.vue b/apps/player/src/components/PhoneCountrySelect.vue
index 4a7412e..54b60b9 100644
--- a/apps/player/src/components/PhoneCountrySelect.vue
+++ b/apps/player/src/components/PhoneCountrySelect.vue
@@ -129,19 +129,20 @@ onUnmounted(() => {
gap: 3px;
height: 36px;
padding: 0 8px;
- border: 1px solid var(--border);
+ border: 1px solid #E5E7EB;
border-radius: 6px;
- background: #0d0d0d;
- color: var(--text);
+ background: #FFFFFF;
+ color: #1A1A2E;
font-family: inherit;
font-size: 12px;
line-height: 1;
cursor: pointer;
white-space: nowrap;
+ box-shadow: 0 1px 3px rgba(0, 0, 0, 0.08);
}
.country-trigger:active {
- background: var(--bg-hover);
+ background: #F5F7FA;
}
.country-iso {
@@ -150,12 +151,12 @@ onUnmounted(() => {
}
.country-sep {
- color: var(--text-muted);
+ color: #6B7280;
font-size: 10px;
}
.country-dial {
- color: var(--text-muted);
+ color: #6B7280;
font-weight: 600;
}
@@ -166,31 +167,31 @@ onUnmounted(() => {
z-index: 60;
width: min(260px, calc(100vw - 48px));
padding: 4px;
- background: #141414;
- border: 1px solid var(--border);
- border-radius: 6px;
- box-shadow: var(--shadow);
+ background: #FFFFFF;
+ border: 1px solid #E5E7EB;
+ border-radius: 8px;
+ box-shadow: 0 4px 12px rgba(0, 0, 0, 0.1);
}
.country-search {
width: 100%;
margin-bottom: 4px;
padding: 6px 8px;
- border: 1px solid var(--border);
+ border: 1px solid #E5E7EB;
border-radius: 4px;
- background: #0d0d0d;
- color: var(--text);
+ background: #F5F7FA;
+ color: #1A1A2E;
font-size: 12px;
font-family: inherit;
}
.country-search::placeholder {
- color: rgba(255, 255, 255, 0.35);
+ color: #6B7280;
}
.country-search:focus {
outline: none;
- border-color: #555;
+ border-color: #003D6B;
}
.country-menu {
@@ -213,20 +214,20 @@ onUnmounted(() => {
.country-option:hover,
.country-option.active {
- background: var(--bg-hover);
+ background: #F5F7FA;
}
.country-option .country-iso {
flex-shrink: 0;
width: 26px;
font-weight: 700;
- color: var(--text);
+ color: #1A1A2E;
}
.country-option .country-dial {
flex-shrink: 0;
width: 38px;
- color: var(--text-muted);
+ color: #6B7280;
}
.country-name {
@@ -234,17 +235,17 @@ onUnmounted(() => {
overflow: hidden;
text-overflow: ellipsis;
white-space: nowrap;
- color: var(--text-muted);
+ color: #6B7280;
}
.country-option:hover .country-name,
.country-option.active .country-name {
- color: var(--text);
+ color: #1A1A2E;
}
.country-empty {
padding: 10px 8px;
- color: var(--text-muted);
+ color: #6B7280;
font-size: 11px;
text-align: center;
}
diff --git a/apps/player/src/components/PlayerAvatarModal.vue b/apps/player/src/components/PlayerAvatarModal.vue
index 6dd6887..5b56e44 100644
--- a/apps/player/src/components/PlayerAvatarModal.vue
+++ b/apps/player/src/components/PlayerAvatarModal.vue
@@ -55,7 +55,7 @@ function confirm() {
position: fixed;
inset: 0;
z-index: 210;
- background: rgba(0, 0, 0, 0.72);
+ background: rgba(0, 0, 0, 0.35);
display: flex;
align-items: center;
justify-content: center;
@@ -69,11 +69,11 @@ function confirm() {
max-width: 360px;
max-height: 85vh;
overflow-y: auto;
- background: linear-gradient(165deg, #1a1810 0%, #121212 45%, #0a0a0a 100%);
- border: 1px solid var(--border-gold-soft);
- border-radius: var(--radius);
+ background: #FFFFFF;
+ border: 1px solid #E5E7EB;
+ border-radius: 12px;
padding: 16px 14px 14px;
- box-shadow: var(--shadow), 0 0 24px rgba(212, 175, 55, 0.08);
+ box-shadow: 0 4px 20px rgba(0, 0, 0, 0.12);
}
.close-x {
@@ -83,9 +83,9 @@ function confirm() {
width: 28px;
height: 28px;
border-radius: 50%;
- border: 1px solid var(--border);
- background: rgba(0, 0, 0, 0.35);
- color: var(--text-muted);
+ border: 1px solid #E5E7EB;
+ background: #F5F7FA;
+ color: #6B7280;
font-size: 12px;
line-height: 1;
padding: 0;
@@ -95,7 +95,7 @@ function confirm() {
margin: 0 28px 12px 0;
font-size: 15px;
font-weight: 800;
- color: var(--primary-light);
+ color: #003D6B;
}
.actions {
@@ -114,12 +114,14 @@ function confirm() {
}
.btn-cancel {
- border: 1px solid var(--border);
- background: #0a0a0a;
- color: var(--text-muted);
+ border: 1px solid #E5E7EB;
+ background: #FFFFFF;
+ color: #6B7280;
}
.btn-confirm {
border: none;
+ background: #003D6B;
+ color: #FFFFFF;
}
diff --git a/apps/player/src/components/PlayerAvatarPicker.vue b/apps/player/src/components/PlayerAvatarPicker.vue
index 80e2f5e..67bf893 100644
--- a/apps/player/src/components/PlayerAvatarPicker.vue
+++ b/apps/player/src/components/PlayerAvatarPicker.vue
@@ -78,7 +78,7 @@ function select(key: string) {
.picker-label {
display: block;
font-size: 11px;
- color: var(--text-muted);
+ color: #6B7280;
font-weight: 600;
margin-bottom: 6px;
}
@@ -87,15 +87,15 @@ function select(key: string) {
width: 100%;
padding: 8px 10px;
border-radius: 6px;
- border: 1px solid var(--border);
- background: #0a0a0a;
- color: var(--text);
+ border: 1px solid #E5E7EB;
+ background: #F5F7FA;
+ color: #1A1A2E;
font-size: 13px;
}
.picker-search:focus {
outline: none;
- border-color: var(--border-gold-soft);
+ border-color: #003D6B;
}
.picker-grid {
@@ -114,16 +114,16 @@ function select(key: string) {
gap: 4px;
padding: 8px 4px 6px;
border-radius: 8px;
- border: 1px solid var(--border);
- background: #0a0a0a;
+ border: 1px solid #E5E7EB;
+ background: #FFFFFF;
cursor: pointer;
min-width: 0;
}
.picker-item.active {
- border-color: var(--border-gold-soft);
- box-shadow: 0 0 0 1px rgba(212, 175, 55, 0.18);
- background: rgba(212, 175, 55, 0.08);
+ border-color: #003D6B;
+ box-shadow: 0 0 0 1px rgba(0, 61, 107, 0.18);
+ background: rgba(0, 61, 107, 0.04);
}
.picker-photo {
@@ -132,14 +132,14 @@ function select(key: string) {
border-radius: 50%;
object-fit: cover;
object-position: top;
- border: 1px solid rgba(255, 255, 255, 0.08);
+ border: 1px solid #E5E7EB;
}
.picker-name {
width: 100%;
font-size: 10px;
font-weight: 700;
- color: var(--text);
+ color: #1A1A2E;
text-align: center;
line-height: 1.2;
overflow: hidden;
@@ -150,7 +150,7 @@ function select(key: string) {
.picker-meta {
width: 100%;
font-size: 9px;
- color: var(--text-muted);
+ color: #6B7280;
text-align: center;
line-height: 1.2;
overflow: hidden;
@@ -161,7 +161,7 @@ function select(key: string) {
.picker-empty {
margin: 8px 0 0;
font-size: 12px;
- color: var(--text-muted);
+ color: #6B7280;
text-align: center;
}
diff --git a/apps/player/src/components/RobotVerify.vue b/apps/player/src/components/RobotVerify.vue
index a1df64a..c30e3ea 100644
--- a/apps/player/src/components/RobotVerify.vue
+++ b/apps/player/src/components/RobotVerify.vue
@@ -139,14 +139,14 @@ defineExpose({ validate, refresh });
display: flex;
align-items: stretch;
height: 36px;
- border: 1px solid var(--border);
- border-radius: 6px;
- background: #0d0d0d;
+ border: 1px solid #E5E7EB;
+ border-radius: 8px;
+ background: #FFFFFF;
overflow: hidden;
}
.captcha-row:focus-within {
- border-color: #555;
+ border-color: #003D6B;
}
.hp-field {
@@ -164,7 +164,7 @@ defineExpose({ validate, refresh });
padding: 0 10px;
border: none;
background: transparent;
- color: var(--text);
+ color: #1A1A2E;
font-size: 14px;
font-weight: 700;
letter-spacing: 0.12em;
@@ -174,7 +174,7 @@ defineExpose({ validate, refresh });
}
.captcha-input::placeholder {
- color: rgba(255, 255, 255, 0.32);
+ color: #6B7280;
font-weight: 600;
letter-spacing: 0.02em;
text-transform: none;
@@ -187,11 +187,11 @@ defineExpose({ validate, refresh });
cursor: pointer;
display: block;
border: none;
- border-left: 1px solid var(--border);
+ border-left: 1px solid #E5E7EB;
}
.captcha-error {
- color: var(--danger);
+ color: #DC2626;
font-size: 12px;
font-weight: 600;
margin: 4px 0 0;
diff --git a/apps/player/src/components/StatusWatermark.vue b/apps/player/src/components/StatusWatermark.vue
index 4d3a771..b0dcd98 100644
--- a/apps/player/src/components/StatusWatermark.vue
+++ b/apps/player/src/components/StatusWatermark.vue
@@ -23,7 +23,7 @@ withDefaults(
letter-spacing: 0.06em;
white-space: nowrap;
pointer-events: none;
- opacity: 0.2;
+ opacity: 0.15;
max-width: 92%;
overflow: hidden;
text-overflow: ellipsis;
@@ -43,26 +43,26 @@ withDefaults(
}
.status-watermark.won {
- color: #3db865;
+ color: #059669;
}
.status-watermark.lost {
- color: #e05050;
+ color: #DC2626;
}
.status-watermark.push {
- color: #888;
+ color: #6B7280;
}
.status-watermark.pending {
- color: #e8c84a;
+ color: #F8971F;
}
.status-watermark.closed {
- color: #c9a84a;
+ color: #005B9F;
}
.status-watermark.settled {
- color: #7a9ab8;
+ color: #0066CC;
}
diff --git a/apps/player/src/components/TeamEmblem.vue b/apps/player/src/components/TeamEmblem.vue
index 06d5b70..937a7b3 100644
--- a/apps/player/src/components/TeamEmblem.vue
+++ b/apps/player/src/components/TeamEmblem.vue
@@ -62,7 +62,7 @@ watch(
/* 队徽(非国旗):圆角 + 投影 */
.team-emblem--logo {
border-radius: 4px;
- box-shadow: 0 1px 3px rgba(0, 0, 0, 0.35);
+ box-shadow: 0 1px 3px rgba(0, 0, 0, 0.08);
}
.team-emblem--sm {
diff --git a/apps/player/src/components/UserAvatarMenu.vue b/apps/player/src/components/UserAvatarMenu.vue
index 8a2aee4..c4db867 100644
--- a/apps/player/src/components/UserAvatarMenu.vue
+++ b/apps/player/src/components/UserAvatarMenu.vue
@@ -85,8 +85,8 @@ function logout() {
height: 36px;
box-sizing: border-box;
border-radius: 50%;
- border: 1px solid var(--border-gold-soft);
- background: linear-gradient(145deg, #2a2210, #141008);
+ border: 2px solid #003D6B;
+ background: linear-gradient(145deg, #003D6B, #005B9F);
display: flex;
align-items: center;
justify-content: center;
@@ -106,7 +106,7 @@ function logout() {
.avatar-letter {
font-size: 13px;
font-weight: 800;
- color: var(--primary-light);
+ color: #FFFFFF;
}
.avatar-menu {
@@ -115,10 +115,10 @@ function logout() {
right: 0;
min-width: 168px;
padding: 8px 0;
- border: 1px solid var(--border);
- border-radius: var(--radius-sm);
- background: #141414;
- box-shadow: var(--shadow);
+ border: 1px solid #E5E7EB;
+ border-radius: 8px;
+ background: #FFFFFF;
+ box-shadow: 0 4px 12px rgba(0, 0, 0, 0.1);
z-index: 140;
}
@@ -126,8 +126,8 @@ function logout() {
padding: 8px 14px 10px;
font-size: 13px;
font-weight: 800;
- color: var(--primary-light);
- border-bottom: 1px solid var(--border);
+ color: #003D6B;
+ border-bottom: 1px solid #E5E7EB;
margin-bottom: 4px;
}
@@ -136,22 +136,22 @@ function logout() {
text-align: left;
padding: 10px 14px;
background: none;
- color: var(--text);
+ color: #1A1A2E;
font-size: 14px;
font-weight: 600;
}
.menu-item:hover {
- background: rgba(255, 255, 255, 0.04);
+ background: #F5F7FA;
}
.menu-item.recharge {
- color: var(--primary-light);
+ color: #003D6B;
font-weight: 700;
}
.menu-item.danger {
- color: var(--danger);
+ color: #DC2626;
}
.backdrop {
diff --git a/apps/player/src/components/WalletStatsPanel.vue b/apps/player/src/components/WalletStatsPanel.vue
index 6a0fd39..8554bfe 100644
--- a/apps/player/src/components/WalletStatsPanel.vue
+++ b/apps/player/src/components/WalletStatsPanel.vue
@@ -76,11 +76,12 @@ const stats = computed(() => {
diff --git a/apps/player/src/components/match-detail/CorrectScoreConfirmModal.vue b/apps/player/src/components/match-detail/CorrectScoreConfirmModal.vue
index 5c72d38..a9ae071 100644
--- a/apps/player/src/components/match-detail/CorrectScoreConfirmModal.vue
+++ b/apps/player/src/components/match-detail/CorrectScoreConfirmModal.vue
@@ -96,18 +96,18 @@ function formatOdds(odds: string) {
.overlay {
position: fixed;
inset: 0;
- background: rgba(0, 0, 0, 0.75);
+ background: rgba(0, 0, 0, 0.4);
z-index: 210;
display: flex;
align-items: flex-end;
}
.drawer {
- background: linear-gradient(180deg, #222 0%, #141414 100%);
+ background: #FFFFFF;
width: 100%;
max-height: 80vh;
border-radius: 16px 16px 0 0;
- border-top: 1px solid var(--border);
+ border-top: 1px solid #E5E7EB;
display: flex;
flex-direction: column;
overflow: hidden;
@@ -123,9 +123,9 @@ function formatOdds(odds: string) {
.drawer-foot {
flex-shrink: 0;
padding: 10px 14px calc(10px + env(safe-area-inset-bottom, 0px));
- background: rgba(14, 14, 14, 0.98);
- border-top: 1px solid var(--border-gold-soft);
- box-shadow: 0 -6px 20px rgba(0, 0, 0, 0.45);
+ background: #F5F7FA;
+ border-top: 1px solid #E5E7EB;
+ box-shadow: 0 -2px 8px rgba(0, 0, 0, 0.06);
}
.drawer-header {
@@ -134,48 +134,50 @@ function formatOdds(odds: string) {
align-items: center;
padding: 14px 14px 12px;
flex-shrink: 0;
- background: rgba(14, 14, 14, 0.98);
- border-bottom: 1px solid #2a2a2a;
+ background: #FFFFFF;
+ border-bottom: 1px solid #E5E7EB;
z-index: 2;
}
.drawer-header h3 {
font-size: 16px;
font-weight: 800;
+ color: #1A1A2E;
}
.count {
- color: var(--primary-light);
+ color: #003D6B;
}
.close-btn {
background: none;
- color: var(--text-muted);
+ color: #6B7280;
font-size: 20px;
padding: 4px;
}
.slip-item {
padding: 10px 12px;
- background: #111;
- border: 1px solid var(--border);
- border-radius: 6px;
+ background: #F5F7FA;
+ border: 1px solid #E5E7EB;
+ border-radius: 8px;
margin-bottom: 8px;
}
.item-name {
font-size: 13px;
font-weight: 800;
+ color: #1A1A2E;
}
.item-sel {
font-size: 12px;
- color: var(--text-muted);
+ color: #6B7280;
margin-top: 4px;
}
.odds {
- color: var(--primary-light);
+ color: #F8971F;
font-weight: 800;
}
@@ -188,24 +190,24 @@ function formatOdds(odds: string) {
justify-content: space-between;
align-items: center;
font-size: 13px;
- color: var(--text-muted);
+ color: #6B7280;
font-weight: 600;
margin-bottom: 8px;
}
.summary-row strong {
- color: var(--primary-light);
+ color: #003D6B;
font-size: 15px;
font-weight: 800;
}
.return {
font-size: 13px;
- color: var(--text-muted);
+ color: #6B7280;
}
.return strong {
- color: var(--primary-light);
+ color: #003D6B;
font-size: 18px;
font-weight: 800;
}
diff --git a/apps/player/src/components/match-detail/CorrectScorePanel.vue b/apps/player/src/components/match-detail/CorrectScorePanel.vue
index 5e38d01..9b47bb5 100644
--- a/apps/player/src/components/match-detail/CorrectScorePanel.vue
+++ b/apps/player/src/components/match-detail/CorrectScorePanel.vue
@@ -75,6 +75,8 @@ function formatOdds(odds: string) {
diff --git a/apps/player/src/components/match-detail/MarketSelectionsPanel.vue b/apps/player/src/components/match-detail/MarketSelectionsPanel.vue
index 0572e0a..be697bf 100644
--- a/apps/player/src/components/match-detail/MarketSelectionsPanel.vue
+++ b/apps/player/src/components/match-detail/MarketSelectionsPanel.vue
@@ -57,7 +57,8 @@ function onPick(id: string) {
diff --git a/apps/player/src/components/match-detail/MarketTypeTile.vue b/apps/player/src/components/match-detail/MarketTypeTile.vue
index 1eb38ba..e93ce0e 100644
--- a/apps/player/src/components/match-detail/MarketTypeTile.vue
+++ b/apps/player/src/components/match-detail/MarketTypeTile.vue
@@ -44,11 +44,11 @@ const { t } = useI18n();
}
.row:not(.disabled):active {
- background: rgba(255, 255, 255, 0.025);
+ background: rgba(0, 61, 107, 0.07);
}
.row.expanded {
- background: rgba(255, 255, 255, 0.03);
+ background: rgba(0, 61, 107, 0.07);
}
.row.expanded::before {
@@ -57,9 +57,9 @@ const { t } = useI18n();
top: 0;
left: 12px;
right: 12px;
- height: 2px;
- background: linear-gradient(90deg, transparent 0%, var(--primary) 30%, var(--primary-light) 50%, var(--primary) 70%, transparent 100%);
- opacity: 0.6;
+ height: 2.5px;
+ background: #003D6B;
+ opacity: 1;
}
.row.disabled {
@@ -71,7 +71,7 @@ const { t } = useI18n();
min-width: 0;
font-size: 13px;
font-weight: 700;
- color: var(--text);
+ color: #1A1A2E;
letter-spacing: 0.02em;
}
@@ -79,32 +79,32 @@ const { t } = useI18n();
flex-shrink: 0;
font-size: 9px;
font-weight: 700;
- color: #ffb800;
+ color: #F8971F;
padding: 2px 6px;
border-radius: 3px;
- background: rgba(255, 184, 0, 0.12);
- border: 1px solid rgba(255, 184, 0, 0.35);
+ background: rgba(248, 151, 31, 0.1);
+ border: 1px solid rgba(248, 151, 31, 0.3);
}
.row.expanded .row-label {
- color: var(--primary-light);
+ color: #003D6B;
}
.row-muted {
font-size: 10px;
- color: var(--text-muted);
+ color: #6B7280;
font-weight: 600;
}
.row-chevron {
font-size: 11px;
- color: var(--text-muted);
+ color: #6B7280;
transition: transform 0.25s cubic-bezier(0.4, 0, 0.2, 1), color 0.2s;
flex-shrink: 0;
}
.row-chevron.open {
transform: rotate(90deg);
- color: var(--primary-light);
+ color: #003D6B;
}
diff --git a/apps/player/src/components/outright/OutrightBetModal.vue b/apps/player/src/components/outright/OutrightBetModal.vue
index 8015e8e..d90955e 100644
--- a/apps/player/src/components/outright/OutrightBetModal.vue
+++ b/apps/player/src/components/outright/OutrightBetModal.vue
@@ -221,7 +221,7 @@ function formatOdds(odds: string) {
position: fixed;
inset: 0;
z-index: 200;
- background: rgba(0, 0, 0, 0.72);
+ background: rgba(0, 0, 0, 0.4);
display: flex;
align-items: center;
justify-content: center;
@@ -233,12 +233,12 @@ function formatOdds(odds: string) {
position: relative;
width: 100%;
max-width: 300px;
- background: linear-gradient(165deg, #1a1810 0%, #121212 45%, #0a0a0a 100%);
- border: 1px solid var(--border-gold-soft);
- border-radius: var(--radius);
+ background: #FFFFFF;
+ border: 1px solid #E5E7EB;
+ border-radius: 8px;
padding: 18px 16px 16px;
text-align: center;
- box-shadow: var(--shadow), 0 0 24px rgba(212, 175, 55, 0.08);
+ box-shadow: 0 1px 3px rgba(0, 0, 0, 0.08);
}
.close-x {
@@ -248,8 +248,8 @@ function formatOdds(odds: string) {
width: 28px;
height: 28px;
border-radius: 50%;
- background: rgba(255, 255, 255, 0.06);
- color: var(--text-muted);
+ background: #F5F7FA;
+ color: #6B7280;
font-size: 14px;
line-height: 1;
}
@@ -257,7 +257,7 @@ function formatOdds(odds: string) {
.hint {
font-size: 12px;
font-weight: 600;
- color: var(--text-muted);
+ color: #6B7280;
margin-bottom: 12px;
letter-spacing: 0.04em;
}
@@ -280,22 +280,22 @@ function formatOdds(odds: string) {
height: 32px;
object-fit: cover;
border-radius: 4px;
- box-shadow: 0 2px 8px rgba(0, 0, 0, 0.45);
+ box-shadow: 0 1px 3px rgba(0, 0, 0, 0.08);
}
.team {
font-size: 20px;
font-weight: 900;
- color: var(--primary-light);
+ color: #1A1A2E;
letter-spacing: 0.02em;
}
.odds-badge {
display: inline-block;
padding: 3px 10px;
- background: rgba(198, 40, 40, 0.85);
- border: 1px solid rgba(255, 120, 120, 0.35);
- color: #fff;
+ background: #F8971F;
+ border: 1px solid rgba(248, 151, 31, 0.3);
+ color: #FFFFFF;
font-size: 13px;
font-weight: 800;
border-radius: 4px;
@@ -303,7 +303,7 @@ function formatOdds(odds: string) {
.event-title {
font-size: 11px;
- color: var(--text-muted);
+ color: #6B7280;
margin-bottom: 12px;
line-height: 1.4;
padding: 0 4px;
@@ -315,28 +315,28 @@ function formatOdds(odds: string) {
align-items: center;
padding: 8px 10px;
margin-bottom: 12px;
- background: rgba(0, 0, 0, 0.35);
- border: 1px solid var(--border);
- border-radius: 6px;
+ background: #F5F7FA;
+ border: 1px solid #E5E7EB;
+ border-radius: 8px;
}
.balance-label {
font-size: 12px;
- color: var(--text-muted);
+ color: #6B7280;
font-weight: 600;
}
.balance-value {
font-size: 14px;
font-weight: 800;
- color: var(--primary-light);
+ color: #003D6B;
}
.stake-label {
display: block;
text-align: left;
font-size: 11px;
- color: var(--text-muted);
+ color: #6B7280;
font-weight: 600;
margin-bottom: 6px;
}
@@ -345,10 +345,10 @@ function formatOdds(odds: string) {
width: 100%;
padding: 11px 12px;
margin-bottom: 8px;
- border-radius: 6px;
- border: 1px solid var(--border);
- background: #0a0a0a;
- color: var(--text);
+ border-radius: 8px;
+ border: 1px solid #E5E7EB;
+ background: #F5F7FA;
+ color: #1A1A2E;
font-size: 18px;
font-weight: 800;
text-align: center;
@@ -356,12 +356,12 @@ function formatOdds(odds: string) {
}
.stake-input:focus {
- border-color: var(--border-gold-soft);
- box-shadow: 0 0 0 1px rgba(212, 175, 55, 0.15);
+ border-color: #003D6B;
+ box-shadow: 0 0 0 1px rgba(0, 61, 107, 0.15);
}
.stake-input::placeholder {
- color: #555;
+ color: #6B7280;
font-weight: 500;
font-size: 14px;
}
@@ -375,33 +375,34 @@ function formatOdds(odds: string) {
.chip {
flex: 1;
padding: 6px 4px;
- border-radius: 6px;
- border: 1px solid var(--border);
- background: #141414;
- color: var(--text-muted);
+ border-radius: 8px;
+ border: 1px solid #E5E7EB;
+ background: #FFFFFF;
+ color: #6B7280;
font-size: 11px;
font-weight: 700;
+ transition: border-color 0.15s ease, background 0.15s ease;
}
.chip:active {
- border-color: var(--border-gold-soft);
- color: var(--primary-light);
- background: rgba(212, 175, 55, 0.08);
+ border-color: #003D6B;
+ color: #003D6B;
+ background: rgba(0, 61, 107, 0.06);
}
.est-return {
font-size: 12px;
- color: var(--text-muted);
+ color: #6B7280;
margin-bottom: 12px;
}
.est-value {
- color: var(--primary-light);
+ color: #003D6B;
font-weight: 800;
}
.error {
- color: var(--danger);
+ color: #DC2626;
font-size: 12px;
font-weight: 600;
margin-bottom: 10px;
@@ -415,19 +416,22 @@ function formatOdds(odds: string) {
.btn-cancel {
padding: 10px;
- border-radius: 6px;
- background: #1a1a1a;
- border: 1px solid var(--border);
- color: var(--text-muted);
+ border-radius: 8px;
+ background: #FFFFFF;
+ border: 1px solid #E5E7EB;
+ color: #6B7280;
font-size: 14px;
font-weight: 700;
}
.btn-confirm {
padding: 10px;
- border-radius: 6px;
+ border-radius: 8px;
font-size: 14px;
font-weight: 800;
+ background: #003D6B;
+ color: #FFFFFF;
+ border: none;
}
.btn-confirm:disabled {
@@ -439,9 +443,9 @@ function formatOdds(odds: string) {
height: 44px;
margin: 0 auto 8px;
border-radius: 50%;
- border: 2px solid rgba(46, 158, 94, 0.8);
- background: rgba(46, 158, 94, 0.12);
- color: #4ade80;
+ border: 2px solid #059669;
+ background: rgba(5, 150, 105, 0.1);
+ color: #059669;
font-size: 24px;
font-weight: 900;
line-height: 40px;
@@ -450,37 +454,40 @@ function formatOdds(odds: string) {
.success-title {
font-size: 16px;
font-weight: 800;
- color: var(--primary-light);
+ color: #1A1A2E;
margin-bottom: 10px;
}
.summary {
margin: 12px 0 14px;
padding: 10px;
- background: rgba(0, 0, 0, 0.35);
- border: 1px solid var(--border);
- border-radius: 6px;
+ background: #F5F7FA;
+ border: 1px solid #E5E7EB;
+ border-radius: 8px;
}
.summary-row {
display: flex;
justify-content: space-between;
font-size: 13px;
- color: var(--text-muted);
+ color: #6B7280;
padding: 4px 0;
}
.summary-row + .summary-row {
margin-top: 4px;
padding-top: 8px;
- border-top: 1px solid var(--border);
+ border-top: 1px solid #E5E7EB;
}
.btn-done {
width: 100%;
padding: 11px;
- border-radius: 6px;
+ border-radius: 8px;
font-size: 14px;
font-weight: 800;
+ background: #003D6B;
+ color: #FFFFFF;
+ border: none;
}
diff --git a/apps/player/src/components/outright/OutrightEventSection.vue b/apps/player/src/components/outright/OutrightEventSection.vue
index 4cefdcc..42e42cc 100644
--- a/apps/player/src/components/outright/OutrightEventSection.vue
+++ b/apps/player/src/components/outright/OutrightEventSection.vue
@@ -86,10 +86,11 @@ const headMeta = computed(() => {
position: relative;
isolation: isolate;
margin-bottom: 12px;
- border: 1px solid var(--border);
- border-radius: var(--radius);
- background: var(--bg-card);
+ border: 1px solid #E5E7EB;
+ border-radius: 8px;
+ background: #FFFFFF;
overflow: hidden;
+ box-shadow: 0 1px 3px rgba(0, 0, 0, 0.08);
}
.event-head {
@@ -112,7 +113,7 @@ const headMeta = computed(() => {
position: absolute;
inset: 0;
background: v-bind(matchCardBg) center / 100% 100% no-repeat;
- opacity: 0.25;
+ opacity: 0.08;
z-index: -1;
pointer-events: none;
}
@@ -122,8 +123,8 @@ const headMeta = computed(() => {
width: 26px;
height: 26px;
border-radius: 50%;
- background: #141414;
- border: 1px solid var(--border-gold-soft);
+ background: #F5F7FA;
+ border: 1px solid #E5E7EB;
display: flex;
align-items: center;
justify-content: center;
@@ -131,11 +132,11 @@ const headMeta = computed(() => {
}
.toggle-icon.open {
- border-color: var(--primary-light);
+ border-color: #003D6B;
}
.toggle-mark {
- color: var(--primary-light);
+ color: #003D6B;
font-size: 17px;
font-weight: 900;
line-height: 1;
@@ -152,21 +153,21 @@ const headMeta = computed(() => {
.event-title {
font-size: 13px;
font-weight: 800;
- color: var(--primary-light);
+ color: #003D6B;
line-height: 1.35;
}
.event-league {
font-size: 11px;
font-weight: 600;
- color: #888;
+ color: #6B7280;
line-height: 1.3;
}
.event-meta {
font-size: 11px;
font-weight: 600;
- color: #666;
+ color: #6B7280;
}
.event-saishi {
@@ -176,7 +177,7 @@ const headMeta = computed(() => {
max-width: 40px;
object-fit: contain;
padding-left: 8px;
- border-left: 1px solid #2a2a2a;
+ border-left: 1px solid #E5E7EB;
}
.options-scroll {
@@ -185,7 +186,7 @@ const headMeta = computed(() => {
-webkit-overflow-scrolling: touch;
padding: 8px 2px 2px;
scrollbar-width: thin;
- scrollbar-color: #333 transparent;
+ scrollbar-color: #E5E7EB transparent;
}
.options-grid {
diff --git a/apps/player/src/components/outright/OutrightOptionCard.vue b/apps/player/src/components/outright/OutrightOptionCard.vue
index 587b3d8..1b12c62 100644
--- a/apps/player/src/components/outright/OutrightOptionCard.vue
+++ b/apps/player/src/components/outright/OutrightOptionCard.vue
@@ -76,27 +76,21 @@ onUnmounted(() => {
width: 100%;
min-width: 0;
padding: 8px 4px 6px;
- border-radius: 6px;
- background: linear-gradient(180deg, #1a1a1a 0%, #0d0d0d 100%);
- border: 1px solid rgba(140, 140, 140, 0.35);
+ border-radius: 8px;
+ background: #FFFFFF;
+ border: 1px solid #E5E7EB;
display: flex;
flex-direction: column;
align-items: center;
gap: 4px;
text-align: center;
overflow: hidden;
-}
-
-.option-card::before {
- content: '';
- position: absolute;
- inset: 0;
- background: linear-gradient(135deg, rgba(100, 100, 100, 0.08) 0%, transparent 50%, rgba(80, 80, 80, 0.05) 100%);
- pointer-events: none;
+ transition: border-color 0.15s ease, box-shadow 0.15s ease;
}
.option-card:active {
- border-color: var(--border-gold-soft);
+ border-color: #003D6B;
+ box-shadow: 0 0 0 1px rgba(0, 61, 107, 0.12);
}
.flag {
@@ -119,7 +113,7 @@ onUnmounted(() => {
.name {
font-size: 11px;
font-weight: 800;
- color: var(--primary-light);
+ color: #1A1A2E;
line-height: 1.2;
width: 100%;
overflow: hidden;
@@ -130,6 +124,6 @@ onUnmounted(() => {
.odds {
font-size: 11px;
font-weight: 800;
- color: var(--primary-light);
+ color: #F8971F;
}
diff --git a/apps/player/src/components/outright/OutrightPanel.vue b/apps/player/src/components/outright/OutrightPanel.vue
index de4ccd7..4c779b8 100644
--- a/apps/player/src/components/outright/OutrightPanel.vue
+++ b/apps/player/src/components/outright/OutrightPanel.vue
@@ -178,7 +178,7 @@ function closeModal() {
padding: 0 4px;
font-size: 12px;
font-weight: 600;
- color: var(--text-muted);
+ color: #6B7280;
line-height: 1.4;
}
@@ -189,7 +189,7 @@ function closeModal() {
.state,
.empty {
text-align: center;
- color: var(--text-muted);
+ color: #6B7280;
padding: 48px 20px;
font-weight: 600;
}
diff --git a/apps/player/src/layouts/MainLayout.vue b/apps/player/src/layouts/MainLayout.vue
index ce93df2..e2e80c7 100644
--- a/apps/player/src/layouts/MainLayout.vue
+++ b/apps/player/src/layouts/MainLayout.vue
@@ -106,7 +106,11 @@ watch(