Files
pk10/Static/css/style.css
T

3148 lines
55 KiB
CSS
Executable File

* {
box-sizing: border-box;
margin: 0;
padding: 0;
}
body {
padding: 0;
margin: 0;
font-family: 'Segoe UI', Tahoma, Geneva, Verdana, sans-serif;
}
#bg-img {
position: absolute;
top: 0;
left: 0;
width: 100%;
height: 100%;
object-fit: cover;
z-index: 0;
}
/* Header Logo */
.header-logo {
position: absolute;
top: 40px;
left: 50%;
transform: translateX(-50%);
z-index: 10;
text-align: center;
}
.header-logo img {
width: 300px;
height: auto;
filter: drop-shadow(0 0 20px rgba(255, 215, 0, 0.5));
}
/* Auth Container */
.auth-container {
position: fixed;
top: 50%;
left: 50%;
transform: translate(-50%, -50%);
z-index: 100;
display: flex;
flex-direction: column;
align-items: center;
gap: 20px;
}
.auth-box {
background: rgba(80, 80, 90, 0.85);
border: 3px solid #0ba7ff;
border-radius: 20px;
padding: 0;
width: 520px;
box-shadow: 0 0 40px rgba(11, 167, 255, 0.6);
backdrop-filter: blur(10px);
}
/* Tabs */
.auth-tabs {
display: flex;
gap: 0;
}
.tab-btn {
flex: 1;
padding: 18px 30px;
border: none;
background: rgba(100, 100, 110, 0.6);
color: #8bb3d8;
font-size: 18px;
font-weight: bold;
cursor: pointer;
transition: all 0.3s ease;
border-bottom: 3px solid transparent;
letter-spacing: 1px;
font-family: 'Segoe UI', Tahoma, Geneva, Verdana, sans-serif;
}
.tab-btn:first-child {
border-top-left-radius: 16px;
}
.tab-btn:last-child {
border-top-right-radius: 16px;
}
.tab-btn.active {
background: #0ba7ff;
color: white;
border-bottom: 3px solid #0ba7ff;
}
.tab-btn:hover:not(.active) {
background: rgba(120, 120, 130, 0.7);
color: #a8cde8;
}
/* Form Content */
.form-content {
display: none;
padding: 35px 40px 40px;
}
.form-content.active {
display: block;
}
/* Input Groups */
.input-group {
position: relative;
margin-bottom: 20px;
}
.input-icon {
position: absolute;
left: 18px;
top: 50%;
transform: translateY(-50%);
color: #a0a0a0;
z-index: 1;
}
.input-group input {
width: 100%;
padding: 16px 18px 16px 50px;
border: 2px solid rgba(150, 150, 160, 0.4);
border-radius: 12px;
background: rgba(70, 70, 80, 0.8);
color: #d0d0d0;
font-size: 16px;
transition: all 0.3s ease;
font-family: 'Segoe UI', Tahoma, Geneva, Verdana, sans-serif;
}
.input-group input::placeholder {
color: #a0a0a0;
}
.input-group input:focus {
outline: none;
border-color: #0ba7ff;
background: rgba(60, 60, 70, 0.9);
box-shadow: 0 0 15px rgba(11, 167, 255, 0.3);
}
/* Checkbox */
.checkbox-group {
margin-bottom: 25px;
margin-top: 10px;
}
.checkbox-group label {
display: flex;
align-items: center;
cursor: pointer;
user-select: none;
}
.checkbox-group input[type="checkbox"] {
width: 20px;
height: 20px;
margin-right: 10px;
cursor: pointer;
accent-color: #0ba7ff;
border-radius: 3px;
appearance: none;
-webkit-appearance: none;
border: 2px solid rgba(150, 150, 160, 0.5);
background: rgba(70, 70, 80, 0.6);
position: relative;
}
.checkbox-group input[type="checkbox"]:checked {
background: #0ba7ff;
border-color: #0ba7ff;
}
.checkbox-group input[type="checkbox"]:checked::after {
content: '';
position: absolute;
left: 6px;
top: 2px;
width: 5px;
height: 10px;
border: solid white;
border-width: 0 2px 2px 0;
transform: rotate(45deg);
}
.checkbox-label {
color: #d0d0d0;
font-size: 15px;
}
/* Submit Button */
.submit-btn {
width: 100%;
padding: 16px;
border: none;
border-radius: 12px;
background: linear-gradient(135deg, #0ba7ff 0%, #0680d1 100%);
color: white;
font-size: 18px;
font-weight: bold;
cursor: pointer;
transition: all 0.3s ease;
letter-spacing: 2px;
box-shadow: 0 4px 15px rgba(11, 167, 255, 0.4);
font-family: 'Segoe UI', Tahoma, Geneva, Verdana, sans-serif;
}
.submit-btn:hover {
background: linear-gradient(135deg, #0c93e8 0%, #0572bd 100%);
box-shadow: 0 6px 20px rgba(11, 167, 255, 0.6);
transform: translateY(-2px);
}
.submit-btn:active {
transform: translateY(0);
box-shadow: 0 2px 10px rgba(11, 167, 255, 0.4);
}
/* Support Button */
.support-btn {
display: flex;
align-items: center;
justify-content: center;
gap: 10px;
padding: 14px 35px;
border: none;
border-radius: 12px;
background: linear-gradient(135deg, #0ba7ff 0%, #0680d1 100%);
color: white;
font-size: 17px;
font-weight: bold;
cursor: pointer;
transition: all 0.3s ease;
box-shadow: 0 4px 15px rgba(11, 167, 255, 0.4);
font-family: 'Segoe UI', Tahoma, Geneva, Verdana, sans-serif;
}
.support-btn:hover {
background: linear-gradient(135deg, #0c93e8 0%, #0572bd 100%);
box-shadow: 0 6px 20px rgba(11, 167, 255, 0.6);
transform: translateY(-2px);
}
.support-btn:active {
transform: translateY(0);
}
.support-btn svg {
width: 22px;
height: 22px;
}
.lobby-container {
position: relative;
z-index: 5;
width: 100%;
min-height: 100vh;
padding: 40px 80px 36px;
display: flex;
flex-direction: column;
justify-content: space-between;
color: #fff;
}
.lobby-header {
display: flex;
align-items: center;
justify-content: space-between;
margin-bottom: 20px;
position: relative;
}
.lobby-logo {
width: 260px;
height: auto;
}
.lobby-header-text {
position: absolute;
left: 50%;
top: 65px;
transform: translateX(-50%);
display: flex;
flex-direction: column;
align-items: center;
gap: 4px;
}
.lobby-title {
font-size: 30px;
font-weight: 600;
color: #ffd34f;
text-shadow: 0 0 10px rgba(0, 0, 0, 0.8);
}
.lobby-subtitle {
font-size: 30px;
color: #ffffff;
text-shadow: 0 0 10px rgba(0, 0, 0, 0.8);
}
.lobby-header-right {
display: flex;
align-items: center;
gap: 12px;
position: relative;
}
.lobby-icon-btn {
width: 44px;
height: 44px;
border-radius: 999px;
background: radial-gradient(circle at 30% 30%, #8de2ff, #1d78ff);
box-shadow: 0 0 15px rgba(0, 0, 0, 0.65);
display: flex;
align-items: center;
justify-content: center;
color: #fff;
font-size: 20px;
}
.header-menu {
position: absolute;
top: 52px;
right: 0;
min-width: 220px;
padding: 14px 18px;
background: rgba(54, 56, 68, 0.96);
border-radius: 20px;
border: 2px solid #1e9bff;
box-shadow: 0 16px 40px rgba(0, 0, 0, 0.9);
display: none;
z-index: 90;
}
.header-menu.is-open {
display: block;
}
.header-menu-item {
display: flex;
align-items: center;
gap: 14px;
width: 100%;
padding: 8px 0;
border: none;
background: none;
color: #ffffff;
font-size: 14px;
cursor: pointer;
text-align: left;
}
.header-menu-item + .header-menu-item {
border-top: 1px solid rgba(255, 255, 255, 0.06);
margin-top: 4px;
padding-top: 12px;
}
.header-menu-item:hover {
color: #bfe0ff;
}
.header-menu-icon {
width: 32px;
height: 32px;
border-radius: 12px;
background: linear-gradient(135deg, #35c5ff, #0b7fe5);
display: flex;
align-items: center;
justify-content: center;
box-shadow: 0 4px 10px rgba(0, 0, 0, 0.6);
color: #ffffff;
}
body.live-body {
overflow-x: hidden;
overflow-y: auto;
}
.live-wrapper {
position: relative;
z-index: 5;
width: 100%;
min-height: 100vh;
padding: 18px 18px 22px;
display: flex;
flex-direction: column;
gap: 12px;
}
.live-topbar {
width: 100%;
display: flex;
justify-content: space-between;
align-items: center;
gap: 12px;
}
.live-topbar-left {
display: flex;
align-items: center;
gap: 10px;
}
.live-topbar-right {
display: flex;
align-items: center;
gap: 10px;
position: relative;
}
.live-circle-btn {
width: 44px;
height: 44px;
border-radius: 999px;
border: none;
background: radial-gradient(circle at 30% 30%, #8de2ff, #1d78ff);
box-shadow: 0 0 15px rgba(0, 0, 0, 0.65);
display: flex;
align-items: center;
justify-content: center;
color: #fff;
font-size: 20px;
}
.live-balance {
display: flex;
align-items: center;
gap: 10px;
padding: 6px 10px;
border-radius: 999px;
background: rgba(255, 255, 255, 0.9);
border: 2px solid rgba(255, 255, 255, 0.7);
box-shadow: 0 10px 22px rgba(0, 0, 0, 0.8);
}
.live-balance-coin {
width: 34px;
height: 34px;
border-radius: 999px;
background: radial-gradient(circle at 30% 20%, #ffe9a7, #ffb100);
display: flex;
align-items: center;
justify-content: center;
color: #4a2a00;
}
.live-balance-text {
display: flex;
flex-direction: column;
gap: 2px;
color: #111827;
}
.live-balance-id {
font-size: 12px;
font-weight: 700;
}
.live-balance-amount {
font-size: 14px;
font-weight: 800;
color: #e11d48;
}
.live-refresh {
width: 38px;
height: 38px;
font-size: 18px;
}
.live-pill-btn {
height: 44px;
padding: 0 18px;
border-radius: 999px;
border: 2px solid rgba(255, 255, 255, 0.75);
background: linear-gradient(135deg, #35c5ff, #0b7fe5);
color: #ffffff;
font-size: 14px;
font-weight: 800;
letter-spacing: 1px;
text-transform: uppercase;
box-shadow: 0 14px 30px rgba(0, 0, 0, 0.85);
}
.live-layout {
width: 100%;
display: grid;
grid-template-columns: 1.1fr 1fr;
gap: 14px;
}
.live-panel {
background: rgba(0, 0, 0, 0.6);
border: 2px solid #1e9bff;
border-radius: 18px;
box-shadow: 0 18px 40px rgba(0, 0, 0, 0.9);
overflow: hidden;
}
.live-left {
display: flex;
flex-direction: column;
gap: 10px;
}
.live-right {
display: flex;
flex-direction: column;
gap: 10px;
}
.live-stream {
min-height: 360px;
}
.live-stream-main {
position: relative;
background: #000;
overflow: hidden;
width: 100%;
height: 100%;
min-height: 360px;
}
/* 隐藏播放器控制条 */
.live-stream-main .ck-bar,
.live-stream-main .ck-center-play {
display: none !important;
}
.live-stream-main-panel {
min-height: 500px;
}
.live-player {
width: 100%;
height: 100%;
}
/* 播放器右上角Logo */
.live-player-logo {
position: absolute;
top: 16px;
right: 16px;
z-index: 100;
max-width: 120px;
max-height: 60px;
pointer-events: none;
}
.live-player-logo img {
width: 100%;
height: 100%;
object-fit: contain;
display: block;
}
/* 播放器右下角期号和日期 */
.live-player-info {
position: absolute;
bottom: 16px;
right: 16px;
z-index: 100;
pointer-events: none;
text-align: right;
font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', 'Roboto', 'Helvetica Neue', Arial, sans-serif;
line-height: 1.3;
}
.live-player-period {
color: #ffffff;
font-size: 13px;
font-weight: 300;
letter-spacing: 0.3px;
margin-bottom: 3px;
text-shadow: 0 1px 2px rgba(0, 0, 0, 0.7);
white-space: nowrap;
}
.live-player-datetime {
display: flex;
align-items: center;
justify-content: flex-end;
gap: 6px;
font-size: 13px;
font-weight: 300;
letter-spacing: 0.3px;
text-shadow: 0 1px 2px rgba(0, 0, 0, 0.7);
white-space: nowrap;
}
.live-player-date {
color: #ffffff;
}
.live-player-time {
color: #ff0000;
font-weight: 400;
}
/* 兼容旧的类名 */
.live-main-logo {
position: absolute;
top: 16px;
right: 16px;
z-index: 100;
max-width: 120px;
max-height: 60px;
pointer-events: none;
}
.live-main-logo img {
width: 100%;
height: 100%;
object-fit: contain;
display: block;
}
/* 主播放器右下角信息 */
.live-main-info {
position: absolute;
bottom: 16px;
right: 16px;
z-index: 10;
background: rgba(0, 0, 0, 0.7);
padding: 8px 12px;
border-radius: 8px;
color: #fff;
text-align: right;
font-size: 12px;
}
.live-main-id {
font-weight: 700;
margin-bottom: 4px;
}
.live-main-time {
font-size: 11px;
opacity: 0.9;
}
/* 底部频道标签样式调整 */
.live-channel-tabs {
margin-top: 10px;
}
.live-tab {
position: relative;
}
.live-tab-dot {
display: inline-block;
width: 8px;
height: 8px;
border-radius: 50%;
background: #22c55e;
margin-right: 6px;
vertical-align: middle;
}
.live-channel-tabs {
display: flex;
gap: 10px;
padding-left: 6px;
}
.live-tab {
height: 34px;
padding: 0 14px;
border: none;
border-radius: 10px;
background: rgba(53, 197, 255, 0.25);
color: #dbeafe;
font-weight: 800;
}
.live-tab.is-active {
background: rgba(53, 197, 255, 0.9);
color: #0b1020;
}
.live-history {
min-height: 210px;
display: grid;
grid-template-columns: 1fr 160px;
}
.live-roadmap {
background: rgba(255, 255, 255, 0.92);
margin: 12px;
border-radius: 12px;
}
.live-mini-table {
margin: 12px 12px 12px 0;
border-radius: 8px;
background: rgba(255, 255, 255, 0.92);
display: flex;
flex-direction: column;
overflow: visible;
position: relative;
padding: 2px;
background-clip: padding-box;
}
.live-mini-table::before {
content: '';
position: absolute;
top: -2px;
left: -2px;
right: -2px;
bottom: -2px;
border: 2px solid #dc2626;
border-radius: 8px;
background-image:
repeating-linear-gradient(0deg, transparent, transparent 6px, #dc2626 6px, #dc2626 8px),
repeating-linear-gradient(90deg, transparent, transparent 6px, #dc2626 6px, #dc2626 8px);
background-size: 100% 8px, 8px 100%;
pointer-events: none;
z-index: -1;
}
.live-mini-table-header {
display: grid;
grid-template-columns: repeat(5, 1fr);
background: transparent;
color: #111827;
font-weight: 800;
font-size: 12px;
padding: 8px 6px;
border-bottom: 1px solid rgba(0, 0, 0, 0.1);
}
.live-mini-table-body {
display: flex;
flex-direction: column;
padding: 6px;
gap: 4px;
color: #111827;
font-weight: 700;
background: rgba(255, 255, 255, 0.92);
border-radius: 0 0 6px 6px;
}
.live-mini-row {
display: grid;
grid-template-columns: repeat(5, 1fr);
padding: 4px 6px;
align-items: center;
font-size: 13px;
}
.live-mini-row span {
text-align: center;
padding: 2px 4px;
}
.live-mini-row span:nth-child(4) {
font-weight: 900;
padding: 4px 8px;
border-radius: 4px;
display: inline-block;
}
.live-mini-row span:nth-child(4).blue {
background-color: rgba(173, 216, 230, 0.5);
color: #2563eb;
}
.live-mini-row span:nth-child(4).red {
background-color: rgba(255, 182, 193, 0.5);
color: #dc2626;
}
.live-mini-row span:nth-child(4) {
font-weight: 900;
padding: 4px 8px;
border-radius: 4px;
}
.live-mini-row span:nth-child(4).blue {
background-color: rgba(173, 216, 230, 0.6);
color: #2563eb;
}
.live-mini-row span:nth-child(4).red {
background-color: rgba(255, 182, 193, 0.6);
color: #dc2626;
}
.live-mini-row span:nth-child(4).green {
background-color: rgba(144, 238, 144, 0.6);
color: #16a34a;
}
.bet-panel {
background: rgba(255, 255, 255, 0.92);
padding: 10px;
}
.bet-panel-v2 {
border-radius: 20px;
background: linear-gradient(135deg, rgba(255, 255, 255, 0.98) 0%, rgba(248, 250, 252, 0.95) 100%);
border: 3px solid transparent;
background-clip: padding-box;
box-shadow:
0 20px 50px rgba(0, 0, 0, 0.85),
0 0 0 3px rgba(30, 155, 255, 0.3),
inset 0 1px 0 rgba(255, 255, 255, 0.8);
position: relative;
overflow: hidden;
}
.bet-panel-v2::before {
content: '';
position: absolute;
top: 0;
left: 0;
right: 0;
height: 3px;
background: linear-gradient(90deg, #1e9bff, #00d4ff, #1e9bff);
background-size: 200% 100%;
animation: shimmer 3s ease-in-out infinite;
}
@keyframes shimmer {
0%, 100% { background-position: 0% 50%; }
50% { background-position: 100% 50%; }
}
.bet-top {
display: grid;
grid-template-columns: 120px 1fr 120px;
gap: 10px;
align-items: stretch;
}
.bet-side {
border-radius: 14px;
padding: 12px 10px;
display: flex;
flex-direction: column;
justify-content: space-between;
align-items: center;
text-transform: uppercase;
font-weight: 900;
position: relative;
transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
overflow: hidden;
cursor: pointer;
}
.bet-side::after {
content: '';
position: absolute;
top: 0;
left: -100%;
width: 100%;
height: 100%;
background: linear-gradient(90deg, transparent, rgba(255, 255, 255, 0.3), transparent);
transition: left 0.5s ease;
}
.bet-side:hover::after {
left: 100%;
}
.bet-side:hover {
transform: translateY(-2px);
box-shadow: 0 8px 20px rgba(0, 0, 0, 0.4);
}
.bet-xiu {
background: linear-gradient(135deg, #1647d4 0%, #0d3ba8 100%);
color: #fff;
box-shadow:
0 4px 15px rgba(22, 71, 212, 0.4),
inset 0 1px 0 rgba(255, 255, 255, 0.2);
}
.bet-tai {
background: linear-gradient(135deg, #a20f2b 0%, #7a0a20 100%);
color: #fff;
box-shadow:
0 4px 15px rgba(162, 15, 43, 0.4),
inset 0 1px 0 rgba(255, 255, 255, 0.2);
}
.bet-side-decoration {
position: absolute;
width: 22px;
height: 22px;
background: linear-gradient(135deg, #ffd700 0%, #ffed4e 50%, #ffd700 100%);
box-shadow:
0 3px 8px rgba(255, 215, 0, 0.5),
inset 0 1px 0 rgba(255, 255, 255, 0.6),
inset 0 -1px 0 rgba(0, 0, 0, 0.2);
animation: pulse-gold 2s ease-in-out infinite;
}
@keyframes pulse-gold {
0%, 100% { opacity: 1; transform: scale(1); }
50% { opacity: 0.8; transform: scale(0.95); }
}
.bet-side-decoration-top-left {
top: 4px;
left: 4px;
clip-path: polygon(0 0, 100% 0, 0 100%);
border-radius: 0 0 100% 0;
}
.bet-side-decoration-top-right {
top: 4px;
right: 4px;
clip-path: polygon(100% 0, 100% 100%, 0 0);
border-radius: 0 0 0 100%;
}
.bet-side-decoration-bottom-left {
bottom: 4px;
left: 4px;
clip-path: polygon(0 0, 0 100%, 100% 100%);
border-radius: 0 100% 0 0;
}
.bet-side-decoration-bottom-right {
bottom: 4px;
right: 4px;
clip-path: polygon(100% 0, 100% 100%, 0 100%);
border-radius: 100% 0 0 0;
}
.bet-side-title {
font-size: 30px;
letter-spacing: 2px;
color: #ffd700;
text-shadow:
0 2px 8px rgba(0, 0, 0, 0.5),
0 0 20px rgba(255, 215, 0, 0.4),
0 0 30px rgba(255, 215, 0, 0.2);
position: relative;
z-index: 2;
font-weight: 900;
}
.bet-side-odds {
font-size: 13px;
opacity: 1;
color: #ffd700;
position: relative;
z-index: 2;
font-weight: 800;
text-shadow: 0 1px 4px rgba(0, 0, 0, 0.5);
background: rgba(0, 0, 0, 0.2);
padding: 2px 8px;
border-radius: 10px;
border: 1px solid rgba(255, 215, 0, 0.3);
}
.bet-side {
position: relative;
}
.bet-dice-history {
border-radius: 14px;
background: linear-gradient(135deg, #f3f4f6 0%, #e5e7eb 100%);
padding: 10px;
display: grid;
grid-template-columns: repeat(2, 1fr);
grid-template-rows: repeat(3, 1fr);
gap: 10px;
box-shadow: inset 0 2px 8px rgba(0, 0, 0, 0.1);
border: 1px solid rgba(0, 0, 0, 0.08);
}
.bet-dice-combo {
display: flex;
flex-direction: column;
align-items: center;
gap: 5px;
background: linear-gradient(135deg, #ffffff 0%, #f9fafb 100%);
border-radius: 10px;
padding: 8px 6px;
border: 2px solid rgba(17, 24, 39, 0.12);
cursor: pointer;
position: relative;
transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
box-shadow: 0 2px 8px rgba(0, 0, 0, 0.08);
}
.bet-dice-combo:hover {
transform: translateY(-3px);
border-color: rgba(30, 155, 255, 0.4);
box-shadow:
0 6px 20px rgba(0, 0, 0, 0.15),
0 0 0 3px rgba(30, 155, 255, 0.1);
background: linear-gradient(135deg, #ffffff 0%, #f0f9ff 100%);
}
.bet-dice-combo-dices {
display: flex;
gap: 4px;
align-items: center;
justify-content: center;
}
.bet-dice-combo-total {
font-size: 14px;
font-weight: 900;
color: #111827;
}
.bet-dice-combo-odds {
font-size: 11px;
font-weight: 700;
color: #666;
}
.bet-dice-row {
display: grid;
grid-template-columns: repeat(3, 34px) 1fr;
gap: 6px;
align-items: center;
}
.bet-dice-cell {
width: 34px;
height: 34px;
border-radius: 8px;
background: #ffffff;
border: 1px solid rgba(17, 24, 39, 0.15);
display: flex;
align-items: center;
justify-content: center;
}
.bet-dice-cell-red {
border-color: #dc2626;
background: rgba(220, 38, 38, 0.1);
}
.bet-dice-cell img {
width: 26px;
height: 26px;
object-fit: contain;
}
.bet-dice-time {
font-size: 12px;
font-weight: 700;
color: #111827;
text-align: right;
padding-right: 4px;
}
.bet-grid {
margin-top: 10px;
display: grid;
grid-template-columns: repeat(8, 1fr);
gap: 8px;
}
.bet-grid-v2 {
grid-template-columns: repeat(7, 1fr) 1.25fr;
gap: 10px;
}
.bet-cell {
border: 1px solid rgba(17, 24, 39, 0.18);
border-radius: 10px;
background: #ffffff;
height: 58px;
display: flex;
flex-direction: column;
justify-content: center;
align-items: center;
font-weight: 900;
color: #111827;
position: relative;
overflow: visible;
}
.bet-grid-v2 .bet-cell {
border: 2px solid rgba(17, 24, 39, 0.18);
height: 64px;
border-radius: 14px;
transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
background: linear-gradient(135deg, #ffffff 0%, #fafafa 100%);
box-shadow: 0 2px 8px rgba(0, 0, 0, 0.08);
cursor: pointer;
}
.bet-grid-v2 .bet-cell:hover {
transform: translateY(-2px);
border-color: rgba(30, 155, 255, 0.5);
box-shadow:
0 6px 20px rgba(0, 0, 0, 0.15),
0 0 0 3px rgba(30, 155, 255, 0.1);
background: linear-gradient(135deg, #ffffff 0%, #f0f9ff 100%);
}
.bet-cell-red {
color: #dc2626;
background: linear-gradient(135deg, #fef2f2 0%, #fee2e2 100%) !important;
}
.bet-cell-red:hover {
background: linear-gradient(135deg, #fee2e2 0%, #fecaca 100%) !important;
}
.bet-cell-green {
color: #16a34a;
background: linear-gradient(135deg, #f0fdf4 0%, #dcfce7 100%) !important;
}
.bet-cell-green:hover {
background: linear-gradient(135deg, #dcfce7 0%, #bbf7d0 100%) !important;
}
.bet-cell-outline-red {
border: 3px solid #dc2626;
color: #111827;
grid-column: 8 / 9;
grid-row: 1 / 2;
height: 58px;
background: linear-gradient(135deg, #ffffff 0%, #fef2f2 100%);
box-shadow: 0 2px 8px rgba(220, 38, 38, 0.2);
}
.bet-cell-outline-red:hover {
background: linear-gradient(135deg, #fee2e2 0%, #fecaca 100%);
box-shadow: 0 6px 20px rgba(220, 38, 38, 0.3);
}
.bet-cell-outline-green {
border: 3px solid #16a34a;
color: #111827;
grid-column: 8 / 9;
grid-row: 2 / 3;
height: 58px;
background: linear-gradient(135deg, #ffffff 0%, #f0fdf4 100%);
box-shadow: 0 2px 8px rgba(22, 163, 74, 0.2);
}
.bet-cell-outline-green:hover {
background: linear-gradient(135deg, #dcfce7 0%, #bbf7d0 100%);
box-shadow: 0 6px 20px rgba(22, 163, 74, 0.3);
}
.bet-grid-v2 .bet-cell-outline-red,
.bet-grid-v2 .bet-cell-outline-green {
height: 62px;
font-size: 14px;
background: #ffffff;
}
.bet-odds-mini {
font-size: 11px;
font-weight: 800;
opacity: 0.85;
color: #6b7280;
background: rgba(0, 0, 0, 0.04);
padding: 2px 6px;
border-radius: 8px;
margin-top: 4px;
transition: all 0.2s ease;
}
.bet-cell:hover .bet-odds-mini {
opacity: 1;
background: rgba(30, 155, 255, 0.1);
color: #1e9bff;
}
.bet-actions {
margin-top: 10px;
display: flex;
gap: 10px;
justify-content: center;
}
.bet-actions-v2 {
margin-top: 14px;
}
.bet-action {
height: 48px;
border-radius: 999px;
border: none;
padding: 0 28px;
font-weight: 900;
color: #fff;
letter-spacing: 1.5px;
transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
cursor: pointer;
position: relative;
overflow: hidden;
box-shadow: 0 4px 15px rgba(0, 0, 0, 0.2);
}
.bet-action::before {
content: '';
position: absolute;
top: 50%;
left: 50%;
width: 0;
height: 0;
border-radius: 50%;
background: rgba(255, 255, 255, 0.3);
transform: translate(-50%, -50%);
transition: width 0.6s, height 0.6s;
}
.bet-action:hover::before {
width: 300px;
height: 300px;
}
.bet-action:hover {
transform: translateY(-2px);
box-shadow: 0 8px 25px rgba(0, 0, 0, 0.3);
}
.bet-action:active {
transform: translateY(0);
box-shadow: 0 2px 10px rgba(0, 0, 0, 0.2);
}
.bet-action-green {
background: linear-gradient(135deg, #16a34a 0%, #15803d 50%, #0f766e 100%);
box-shadow: 0 4px 15px rgba(22, 163, 74, 0.4);
}
.bet-action-green:hover {
box-shadow: 0 8px 25px rgba(22, 163, 74, 0.5);
}
.bet-action-red {
background: linear-gradient(135deg, #b91c1c 0%, #991b1b 50%, #7f1d1d 100%);
box-shadow: 0 4px 15px rgba(185, 28, 28, 0.4);
}
.bet-action-red:hover {
box-shadow: 0 8px 25px rgba(185, 28, 28, 0.5);
}
.bet-chips {
margin-top: 12px;
display: flex;
gap: 10px;
align-items: center;
justify-content: center;
flex-wrap: wrap;
}
.bet-chips-v2 {
margin-top: 14px;
gap: 12px;
}
.chip-img {
width: 58px;
height: 58px;
border: none;
background: transparent;
padding: 0;
}
.chip-img img {
width: 100%;
height: 100%;
object-fit: contain;
display: block;
}
.bet-dice-row-v2 {
margin-top: 10px;
display: grid;
grid-template-columns: repeat(6, 1fr);
gap: 10px;
justify-content: center;
}
.bet-dice-single {
display: flex;
flex-direction: column;
align-items: center;
gap: 6px;
background: transparent;
border: none;
padding: 4px;
cursor: pointer;
border-radius: 12px;
transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
}
.bet-dice-single:hover {
background: rgba(30, 155, 255, 0.08);
transform: translateY(-2px);
}
.bet-dice-single:hover .bet-dice-cell-gray {
border-color: rgba(30, 155, 255, 0.5);
box-shadow: 0 4px 12px rgba(30, 155, 255, 0.3);
}
.bet-dice-single-odds {
font-size: 11px;
font-weight: 700;
color: #666;
}
.bet-dice-cell-gray {
background: rgba(17, 24, 39, 0.08);
border: 2px solid rgba(17, 24, 39, 0.18);
}
.bet-dice-cell-gray.bet-dice-cell-red {
border-color: #dc2626;
background: rgba(220, 38, 38, 0.15);
}
.bet-dice-cell-gray img {
width: 28px;
height: 28px;
}
/* 筹码按钮样式 */
.bet-chip-btn {
background: transparent;
border: none;
padding: 0;
cursor: pointer;
position: relative;
}
.bet-chip-display {
width: 60px;
height: 60px;
border-radius: 50%;
display: flex;
align-items: center;
justify-content: center;
border: 3px solid rgba(255, 255, 255, 0.9);
box-shadow:
0 8px 20px rgba(0, 0, 0, 0.5),
inset 0 2px 4px rgba(255, 255, 255, 0.3),
inset 0 -2px 4px rgba(0, 0, 0, 0.2);
font-weight: 900;
font-size: 12px;
color: #fff;
transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
position: relative;
overflow: hidden;
}
.bet-chip-display::before {
content: '';
position: absolute;
top: -50%;
left: -50%;
width: 200%;
height: 200%;
background: repeating-conic-gradient(
from 0deg at 50% 50%,
transparent 0deg 15deg,
rgba(255, 255, 255, 0.1) 15deg 30deg
);
animation: chip-rotate 10s linear infinite;
}
@keyframes chip-rotate {
from { transform: rotate(0deg); }
to { transform: rotate(360deg); }
}
.bet-chip-display i {
font-size: 18px;
color: #4b5563;
}
.bet-chip-btn {
transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
}
.bet-chip-btn:hover .bet-chip-display {
transform: scale(1.08);
box-shadow:
0 10px 25px rgba(0, 0, 0, 0.4),
inset 0 2px 4px rgba(255, 255, 255, 0.3),
inset 0 -2px 4px rgba(0, 0, 0, 0.2);
}
.bet-chip-btn.chip-selected .bet-chip-display {
transform: scale(1.2);
box-shadow:
0 0 30px rgba(255, 215, 0, 0.9),
0 12px 30px rgba(0, 0, 0, 0.6),
0 0 50px rgba(255, 215, 0, 0.4),
inset 0 2px 4px rgba(255, 255, 255, 0.4),
inset 0 -2px 4px rgba(0, 0, 0, 0.3);
border-color: #ffd700;
border-width: 4px;
animation: chip-selected-pulse 1.5s ease-in-out infinite;
}
@keyframes chip-selected-pulse {
0%, 100% {
box-shadow:
0 0 30px rgba(255, 215, 0, 0.9),
0 12px 30px rgba(0, 0, 0, 0.6),
0 0 50px rgba(255, 215, 0, 0.4),
inset 0 2px 4px rgba(255, 255, 255, 0.4),
inset 0 -2px 4px rgba(0, 0, 0, 0.3);
}
50% {
box-shadow:
0 0 40px rgba(255, 215, 0, 1),
0 12px 40px rgba(0, 0, 0, 0.7),
0 0 70px rgba(255, 215, 0, 0.6),
inset 0 2px 4px rgba(255, 255, 255, 0.5),
inset 0 -2px 4px rgba(0, 0, 0, 0.4);
}
}
/* 下注记录区域 */
.bet-records-section {
margin-top: 14px;
padding: 12px;
background: rgba(243, 244, 246, 0.5);
border-radius: 12px;
max-height: 300px;
overflow-y: auto;
}
.bet-records-header {
display: flex;
align-items: center;
gap: 8px;
font-size: 14px;
font-weight: 900;
color: #111827;
margin-bottom: 10px;
padding-bottom: 8px;
border-bottom: 2px solid rgba(17, 24, 39, 0.1);
}
.bet-records-header i {
font-size: 16px;
color: #1e9bff;
}
.bet-records-list {
display: flex;
flex-direction: column;
gap: 10px;
}
.bet-records-empty {
text-align: center;
padding: 20px;
color: #6b7280;
font-size: 13px;
}
.bet-record-item {
display: flex;
align-items: center;
justify-content: space-between;
padding: 10px;
background: rgba(173, 216, 230, 0.3);
border-radius: 10px;
gap: 8px;
animation: slideIn 0.3s ease;
}
@keyframes slideIn {
from {
opacity: 0;
transform: translateX(-20px);
}
to {
opacity: 1;
transform: translateX(0);
}
}
.bet-record-dice {
width: 40px;
height: 40px;
display: flex;
align-items: center;
justify-content: center;
background: #ffffff;
border-radius: 8px;
border: 2px solid rgba(17, 24, 39, 0.2);
}
.bet-record-dice.dice-red {
border-color: #dc2626;
background: rgba(220, 38, 38, 0.1);
}
.bet-record-dice img {
width: 32px;
height: 32px;
object-fit: contain;
}
.bet-record-chip {
flex: 1;
height: 50px;
border-radius: 50%;
display: flex;
align-items: center;
justify-content: center;
position: relative;
border: 3px solid #ffffff;
box-shadow: 0 4px 8px rgba(0, 0, 0, 0.3);
}
.bet-record-chip::before {
content: '';
position: absolute;
top: 0;
left: 0;
right: 0;
bottom: 0;
border-radius: 50%;
border: 2px solid rgba(255, 255, 255, 0.8);
background: repeating-conic-gradient(
from 0deg at 50% 50%,
transparent 0deg 10deg,
rgba(255, 255, 255, 0.3) 10deg 20deg
);
}
.bet-record-chip-amount {
position: relative;
z-index: 1;
font-size: 14px;
font-weight: 900;
color: #ffd700;
text-shadow: 0 1px 2px rgba(0, 0, 0, 0.5);
}
.bet-record-odds {
font-size: 12px;
font-weight: 700;
color: #ffffff;
background: rgba(17, 24, 39, 0.7);
padding: 4px 8px;
border-radius: 6px;
}
/* 选中状态 */
.bet-selected {
border: 3px solid #ffd700 !important;
box-shadow: 0 0 15px rgba(255, 215, 0, 0.6) !important;
transform: scale(1.05);
transition: all 0.2s ease;
}
.bet-action i {
margin-right: 6px;
}
/* 下注记录样式 */
.bet-records-container {
margin-top: 14px;
padding: 12px;
background: rgba(243, 244, 246, 0.5);
border-radius: 12px;
max-height: 300px;
overflow-y: auto;
}
.bet-records-header {
font-size: 14px;
font-weight: 900;
color: #111827;
margin-bottom: 10px;
text-align: center;
}
.bet-records-list {
display: flex;
flex-direction: column;
gap: 10px;
}
.bet-record-item {
display: flex;
align-items: center;
justify-content: space-between;
padding: 10px;
background: rgba(173, 216, 230, 0.3);
border-radius: 10px;
gap: 8px;
}
.bet-record-dice {
width: 40px;
height: 40px;
display: flex;
align-items: center;
justify-content: center;
background: #ffffff;
border-radius: 8px;
border: 2px solid rgba(17, 24, 39, 0.2);
}
.bet-record-dice.dice-red {
border-color: #dc2626;
background: rgba(220, 38, 38, 0.1);
}
.bet-record-dice img {
width: 32px;
height: 32px;
object-fit: contain;
}
.bet-record-chip {
flex: 1;
height: 50px;
border-radius: 50%;
display: flex;
align-items: center;
justify-content: center;
position: relative;
border: 3px solid #ffffff;
box-shadow: 0 4px 8px rgba(0, 0, 0, 0.3);
}
.bet-record-chip::before {
content: '';
position: absolute;
top: 0;
left: 0;
right: 0;
bottom: 0;
border-radius: 50%;
border: 2px solid rgba(255, 255, 255, 0.8);
background: repeating-conic-gradient(
from 0deg at 50% 50%,
transparent 0deg 10deg,
rgba(255, 255, 255, 0.3) 10deg 20deg
);
}
.bet-record-chip.chip-red {
background: radial-gradient(circle at 30% 30%, #ff97a6, #e11d48);
}
.bet-record-chip.chip-purple {
background: radial-gradient(circle at 30% 30%, #d8b4fe, #7c3aed);
}
.bet-record-chip.chip-blue {
background: radial-gradient(circle at 30% 30%, #93c5fd, #2563eb);
}
.bet-record-chip-amount {
position: relative;
z-index: 1;
font-size: 14px;
font-weight: 900;
color: #ffd700;
text-shadow: 0 1px 2px rgba(0, 0, 0, 0.5);
}
.bet-record-odds {
font-size: 12px;
font-weight: 700;
color: #ffffff;
background: rgba(17, 24, 39, 0.7);
padding: 4px 8px;
border-radius: 6px;
}
/* 选中状态 */
.bet-selected {
border: 3px solid #ffd700 !important;
box-shadow:
0 0 20px rgba(255, 215, 0, 0.8),
0 0 40px rgba(255, 215, 0, 0.4),
inset 0 0 20px rgba(255, 215, 0, 0.1) !important;
transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
animation: selected-pulse 2s ease-in-out infinite;
}
@keyframes selected-pulse {
0%, 100% {
box-shadow:
0 0 20px rgba(255, 215, 0, 0.8),
0 0 40px rgba(255, 215, 0, 0.4),
inset 0 0 20px rgba(255, 215, 0, 0.1);
}
50% {
box-shadow:
0 0 30px rgba(255, 215, 0, 1),
0 0 60px rgba(255, 215, 0, 0.6),
inset 0 0 30px rgba(255, 215, 0, 0.2);
}
}
.chip-selected {
transform: scale(1.1);
box-shadow: 0 0 15px rgba(255, 215, 0, 0.8) !important;
transition: all 0.2s ease;
}
/* 投注金额显示 */
.bet-amount-display {
position: absolute;
top: 50%;
left: 50%;
transform: translate(-50%, -50%);
display: none;
flex-direction: column;
align-items: center;
justify-content: center;
gap: 4px;
z-index: 10;
pointer-events: none;
}
.bet-chip-wrapper {
display: flex;
align-items: center;
justify-content: center;
}
.bet-chip-icon {
width: 32px;
height: 32px;
border-radius: 50%;
border: 3px solid rgba(255, 255, 255, 0.9);
box-shadow: 0 4px 8px rgba(0, 0, 0, 0.4);
position: relative;
}
.bet-chip-icon::before {
content: '';
position: absolute;
top: 0;
left: 0;
right: 0;
bottom: 0;
border-radius: 50%;
border: 1px solid rgba(255, 255, 255, 0.8);
background: repeating-conic-gradient(
from 0deg at 50% 50%,
transparent 0deg 10deg,
rgba(255, 255, 255, 0.3) 10deg 20deg
);
}
.bet-chip-icon.chip-red { background: radial-gradient(circle at 30% 20%, #ff97a6, #e11d48); }
.bet-chip-icon.chip-purple { background: radial-gradient(circle at 30% 20%, #d8b4fe, #7c3aed); }
.bet-chip-icon.chip-blue { background: radial-gradient(circle at 30% 20%, #93c5fd, #2563eb); }
.bet-chip-icon.chip-gold { background: radial-gradient(circle at 30% 20%, #ffe29a, #f59e0b); }
.bet-chip-icon.chip-orange { background: radial-gradient(circle at 30% 20%, #fdba74, #ea580c); }
.bet-chip-icon.chip-green { background: radial-gradient(circle at 30% 20%, #86efac, #16a34a); }
.bet-chip-icon.chip-lime { background: radial-gradient(circle at 30% 20%, #bef264, #65a30d); }
.bet-chip-icon.chip-custom { background: radial-gradient(circle at 30% 20%, #e5e7eb, #6b7280); }
.bet-chip-count {
font-size: 10px;
font-weight: 900;
color: #ffffff;
text-shadow: 0 1px 2px rgba(0, 0, 0, 0.8);
margin-left: 2px;
}
.bet-amount-text {
font-size: 14px;
font-weight: 900;
color: #ffd700;
text-shadow: 0 1px 3px rgba(0, 0, 0, 0.8);
white-space: nowrap;
margin-top: 2px;
}
/* bet-side中的金额显示需要特殊处理 */
.bet-side .bet-amount-display {
position: absolute;
top: 50%;
left: 50%;
transform: translate(-50%, -50%);
z-index: 3;
background: rgba(0, 0, 0, 0.6);
padding: 4px 8px;
border-radius: 8px;
backdrop-filter: blur(4px);
}
.bet-cell .bet-amount-display {
position: absolute;
top: 50%;
left: 50%;
transform: translate(-50%, -50%);
z-index: 5;
background: rgba(255, 255, 255, 0.95);
padding: 2px 6px;
border-radius: 6px;
box-shadow: 0 2px 8px rgba(0, 0, 0, 0.3);
}
.bet-dice-single {
position: relative;
}
.bet-dice-single .bet-amount-display {
position: absolute;
top: -8px;
left: 50%;
transform: translateX(-50%);
z-index: 5;
background: rgba(0, 0, 0, 0.8);
padding: 2px 6px;
border-radius: 6px;
}
.bet-dice-combo .bet-amount-display {
position: absolute;
top: 50%;
left: 50%;
transform: translate(-50%, -50%);
z-index: 5;
background: rgba(0, 0, 0, 0.8);
padding: 4px 8px;
border-radius: 8px;
backdrop-filter: blur(4px);
}
.live-channel-tabs-v2 {
align-items: center;
}
.live-hot {
width: 38px;
height: 22px;
border-radius: 999px;
background: linear-gradient(135deg, #ff4b66, #ff9b3f);
color: #ffffff;
font-weight: 900;
font-size: 12px;
display: flex;
align-items: center;
justify-content: center;
}
.live-history-v2 {
border-radius: 18px;
}
.live-roadmap-v2 {
background: rgba(255, 255, 255, 0.94);
margin: 12px;
border-radius: 12px;
overflow: hidden;
}
.road-grid {
width: 100%;
height: 100%;
min-height: 180px;
display: grid;
grid-template-columns: repeat(15, 1fr);
grid-template-rows: repeat(10, 1fr);
gap: 0;
padding: 12px;
background: #ffffff;
border: 1px solid rgba(173, 216, 230, 0.5);
}
.road-cell {
display: flex;
align-items: center;
justify-content: center;
border: 1px solid rgba(173, 216, 230, 0.3);
min-height: 20px;
}
.road-dot {
width: 18px;
height: 18px;
border-radius: 999px;
display: flex;
align-items: center;
justify-content: center;
font-size: 10px;
font-weight: 900;
color: #ffffff;
}
.road-dot.blue { background: #2563eb; }
.road-dot.red { background: #dc2626; }
.chip {
width: 52px;
height: 52px;
border-radius: 999px;
border: 3px solid rgba(255, 255, 255, 0.85);
color: #fff;
font-weight: 900;
font-size: 12px;
box-shadow: 0 10px 20px rgba(0, 0, 0, 0.55);
}
.chip-red { background: radial-gradient(circle at 30% 20%, #ff97a6, #e11d48); }
.chip-purple { background: radial-gradient(circle at 30% 20%, #d8b4fe, #7c3aed); }
.chip-blue { background: radial-gradient(circle at 30% 20%, #93c5fd, #2563eb); }
.chip-gold { background: radial-gradient(circle at 30% 20%, #ffe29a, #f59e0b); color: #4a2a00; }
.chip-orange { background: radial-gradient(circle at 30% 20%, #fdba74, #ea580c); }
.chip-green { background: radial-gradient(circle at 30% 20%, #86efac, #16a34a); }
.chip-lime { background: radial-gradient(circle at 30% 20%, #bef264, #65a30d); color: #20310a; }
.chip-add { background: radial-gradient(circle at 30% 20%, #e5e7eb, #6b7280); }
@media (max-width: 1024px) {
body.live-body {
overflow-y: auto;
}
.live-layout {
grid-template-columns: 1fr;
}
.live-stream {
grid-template-columns: 1fr;
}
.live-thumb-grid {
grid-template-columns: repeat(4, 1fr);
}
.live-thumb {
height: 62px;
}
.live-stream-main {
min-height: 260px;
}
.live-history {
grid-template-columns: 1fr;
}
.live-mini-table {
margin: 0 12px 12px;
}
.bet-top {
grid-template-columns: 110px 1fr 110px;
}
.bet-grid {
grid-template-columns: repeat(5, 1fr);
}
.bet-cell-outline-red,
.bet-cell-outline-green {
grid-column: auto;
grid-row: auto;
}
}
/* 手机端适配 */
@media (max-width: 768px) {
.live-wrapper {
padding: 12px;
gap: 10px;
}
.live-topbar {
flex-wrap: wrap;
gap: 8px;
}
.live-topbar-left {
flex-wrap: wrap;
gap: 6px;
flex: 1;
min-width: 0;
}
.live-topbar-right {
gap: 6px;
flex-wrap: wrap;
}
.live-circle-btn {
width: 38px;
height: 38px;
font-size: 18px;
}
.live-balance {
padding: 5px 8px;
gap: 6px;
flex: 1;
min-width: 0;
}
.live-balance-coin {
width: 30px;
height: 30px;
font-size: 14px;
}
.live-balance-id {
font-size: 11px;
}
.live-balance-amount {
font-size: 12px;
}
.live-refresh {
width: 32px;
height: 32px;
font-size: 16px;
}
.live-pill-btn {
height: 38px;
padding: 0 14px;
font-size: 12px;
letter-spacing: 0.5px;
}
.lobby-icon-btn {
width: 38px;
height: 38px;
font-size: 18px;
}
.live-layout {
gap: 10px;
}
.live-panel {
border-radius: 14px;
}
.live-stream-main {
min-height: 300px;
}
.live-player-logo {
top: 10px;
right: 10px;
max-width: 80px;
max-height: 40px;
}
.live-player-info {
bottom: 10px;
right: 10px;
}
.live-player-period {
font-size: 12px;
}
.live-player-datetime {
font-size: 12px;
gap: 5px;
}
.road-grid {
min-height: 150px;
padding: 8px;
grid-template-columns: repeat(15, 1fr);
grid-template-rows: repeat(10, 1fr);
}
.road-cell {
min-height: 14px;
}
.road-dot {
width: 14px;
height: 14px;
font-size: 9px;
}
.live-mini-table-header {
padding: 8px;
font-size: 11px;
}
.live-mini-table-body {
padding: 6px;
}
.live-mini-row {
padding: 6px 8px;
font-size: 12px;
}
.bet-top {
grid-template-columns: 80px 1fr 80px;
gap: 6px;
padding: 10px;
}
.bet-side {
padding: 12px 8px;
}
.bet-side-title {
font-size: 20px;
}
.bet-side-odds {
font-size: 10px;
}
.bet-dice-history {
gap: 6px;
padding: 6px;
}
.bet-dice-combo {
padding: 4px;
}
.bet-dice-cell {
width: 24px;
height: 24px;
}
.bet-dice-cell img {
width: 20px;
height: 20px;
}
.bet-dice-combo-total {
font-size: 12px;
}
.bet-dice-combo-odds {
font-size: 10px;
}
.bet-grid-v2 {
grid-template-columns: repeat(4, 1fr) !important;
gap: 6px;
padding: 10px;
}
.bet-grid-v2 .bet-cell-outline-red,
.bet-grid-v2 .bet-cell-outline-green {
grid-column: span 2;
}
.bet-cell {
padding: 10px 6px;
font-size: 14px;
min-height: 45px;
}
.bet-odds-mini {
font-size: 9px;
margin-top: 3px;
}
.bet-dice-row-v2 {
gap: 6px;
padding: 0 10px;
margin-top: 8px;
}
.bet-dice-single {
gap: 4px;
}
.bet-dice-cell-gray {
width: 36px;
height: 36px;
}
.bet-dice-cell-gray img {
width: 28px;
height: 28px;
}
.bet-dice-single-odds {
font-size: 10px;
}
.bet-actions {
gap: 8px;
padding: 10px;
margin-top: 8px;
}
.bet-action {
padding: 12px 20px;
font-size: 14px;
border-radius: 12px;
}
.bet-chips {
gap: 8px;
padding: 10px;
margin-top: 8px;
flex-wrap: wrap;
justify-content: center;
}
.bet-chip-display {
width: 48px;
height: 48px;
font-size: 11px;
}
.bet-chip-display i {
font-size: 16px;
}
.bet-records-section {
margin-top: 10px;
padding: 10px;
max-height: 200px;
}
.bet-records-header {
font-size: 13px;
margin-bottom: 8px;
padding-bottom: 6px;
}
.bet-records-header i {
font-size: 14px;
}
.bet-record-item {
padding: 8px;
gap: 6px;
}
.bet-record-dice {
width: 32px;
height: 32px;
}
.bet-record-dice img {
width: 26px;
height: 26px;
}
.bet-record-chip {
height: 40px;
}
.bet-record-chip-amount {
font-size: 12px;
}
.bet-record-odds {
font-size: 11px;
padding: 3px 6px;
}
.header-menu {
top: 48px;
right: 8px;
min-width: 180px;
padding: 12px 14px;
}
}
/* 小屏手机适配 */
@media (max-width: 480px) {
.live-wrapper {
padding: 10px;
gap: 8px;
}
.live-topbar {
gap: 6px;
}
.live-circle-btn {
width: 36px;
height: 36px;
font-size: 16px;
}
.live-balance {
padding: 4px 6px;
gap: 5px;
}
.live-balance-coin {
width: 28px;
height: 28px;
font-size: 12px;
}
.live-balance-id {
font-size: 10px;
}
.live-balance-amount {
font-size: 11px;
}
.live-refresh {
width: 30px;
height: 30px;
font-size: 14px;
}
.live-pill-btn {
height: 36px;
padding: 0 12px;
font-size: 11px;
}
.lobby-icon-btn {
width: 36px;
height: 36px;
font-size: 16px;
}
.live-stream-main {
min-height: 250px;
}
.live-player-logo {
max-width: 70px;
max-height: 35px;
}
.live-player-info {
bottom: 8px;
right: 8px;
}
.live-player-period {
font-size: 11px;
margin-bottom: 2px;
}
.live-player-datetime {
font-size: 11px;
gap: 4px;
}
.road-grid {
min-height: 120px;
padding: 6px;
}
.road-cell {
min-height: 12px;
}
.road-dot {
width: 12px;
height: 12px;
font-size: 8px;
}
.live-mini-table-header {
padding: 6px;
font-size: 10px;
}
.live-mini-row {
padding: 5px 6px;
font-size: 11px;
}
.bet-top {
grid-template-columns: 70px 1fr 70px;
gap: 5px;
padding: 8px;
}
.bet-side {
padding: 10px 6px;
}
.bet-side-title {
font-size: 18px;
}
.bet-side-odds {
font-size: 9px;
}
.bet-dice-history {
gap: 5px;
padding: 5px;
}
.bet-dice-cell {
width: 22px;
height: 22px;
}
.bet-dice-cell img {
width: 18px;
height: 18px;
}
.bet-grid-v2 {
grid-template-columns: repeat(4, 1fr) !important;
gap: 5px;
padding: 8px;
}
.bet-grid-v2 .bet-cell-outline-red,
.bet-grid-v2 .bet-cell-outline-green {
grid-column: span 2;
}
.bet-cell {
padding: 8px 4px;
font-size: 13px;
min-height: 40px;
}
.bet-odds-mini {
font-size: 8px;
margin-top: 2px;
}
.bet-dice-row-v2 {
gap: 5px;
padding: 0 8px;
margin-top: 6px;
}
.bet-dice-cell-gray {
width: 32px;
height: 32px;
}
.bet-dice-cell-gray img {
width: 24px;
height: 24px;
}
.bet-dice-single-odds {
font-size: 9px;
}
.bet-actions {
gap: 6px;
padding: 8px;
margin-top: 6px;
}
.bet-action {
padding: 10px 16px;
font-size: 13px;
}
.bet-chips {
gap: 6px;
padding: 8px;
margin-top: 6px;
}
.bet-chip-display {
width: 44px;
height: 44px;
font-size: 10px;
}
.bet-chip-display i {
font-size: 14px;
}
.bet-records-section {
padding: 8px;
max-height: 180px;
}
.bet-record-item {
padding: 6px;
gap: 5px;
}
.bet-record-dice {
width: 28px;
height: 28px;
}
.bet-record-dice img {
width: 22px;
height: 22px;
}
.bet-record-chip {
height: 36px;
}
.bet-record-chip-amount {
font-size: 11px;
}
.bet-record-odds {
font-size: 10px;
padding: 2px 5px;
}
}
.lobby-main {
display: flex;
flex-direction: column;
align-items: center;
gap: 28px;
}
.game-list {
display: flex;
gap: 26px;
overflow-x: auto;
padding-bottom: 8px;
scroll-snap-type: x mandatory;
}
.game-card {
flex: 0 0 auto;
width: 260px;
height: 390px;
border-radius: 26px;
position: relative;
box-shadow: 0 18px 40px rgba(0, 0, 0, 0.9);
overflow: hidden;
scroll-snap-align: center;
display: block;
text-decoration: none;
transition: transform 0.2s ease, box-shadow 0.2s ease;
}
.game-card:hover {
transform: translateY(-5px);
box-shadow: 0 22px 50px rgba(0, 0, 0, 1);
}
.game-card-inner {
width: 100%;
border-radius: 22px;
overflow: hidden;
}
.game-card-inner img {
width: 100%;
height: 100%;
object-fit: cover;
display: block;
}
.live-badge {
position: absolute;
top: 16px;
right: 18px;
padding: 4px 12px;
border-radius: 999px;
background: linear-gradient(135deg, #ff4b66, #ff9b3f);
color: #fff;
font-weight: 700;
font-size: 13px;
}
.lobby-footer {
display: flex;
align-items: center;
justify-content: flex-start;
gap: 80px;
}
.user-panel {
display: flex;
align-items: center;
gap: 16px;
}
.user-avatar {
width: 70px;
height: 70px;
border-radius: 18px;
background: #ffffff;
display: flex;
align-items: center;
justify-content: center;
position: relative;
box-shadow: 0 10px 20px rgba(0, 0, 0, 0.85);
}
.user-avatar-circle {
width: 56px;
height: 56px;
border-radius: 999px;
background: radial-gradient(circle at 30% 20%, #baf1ff, #0b88ff);
display: flex;
align-items: center;
justify-content: center;
color: #ffffff;
font-size: 26px;
}
.user-avatar-badge {
position: absolute;
bottom: -6px;
left: 50%;
transform: translateX(-50%);
width: 26px;
height: 26px;
border-radius: 999px;
border: 3px solid #ffffff;
background: radial-gradient(circle at 30% 20%, #c8ffb0, #0cc341);
display: flex;
align-items: center;
justify-content: center;
color: #ffffff;
font-size: 13px;
}
.user-info {
display: flex;
flex-direction: column;
gap: 4px;
}
.user-balance {
display: flex;
align-items: center;
gap: 8px;
font-size: 16px;
}
.user-balance-amount {
font-weight: 700;
color: #ffd34f;
}
.user-id {
font-size: 13px;
color: #ffffff;
}
.withdraw-btn {
padding: 16px 48px;
border-radius: 999px;
border: 3px solid #ffffff;
background: linear-gradient(135deg, #35c5ff, #0b7fe5);
color: #ffffff;
font-size: 20px;
font-weight: 800;
letter-spacing: 2px;
text-transform: uppercase;
text-shadow: 0 2px 0 rgba(0, 0, 0, 0.35);
box-shadow: 0 14px 30px rgba(0, 0, 0, 0.85);
}
.tm68-help-badge {
position: fixed;
right: 28px;
bottom: 22px;
width: 90px;
}
@media (max-width: 1024px) {
.lobby-container {
padding: 20px 16px 24px;
}
.lobby-header {
flex-direction: column;
align-items: flex-start;
gap: 12px;
}
.lobby-header-text {
position: static;
transform: none;
align-items: flex-start;
}
.lobby-main {
align-items: flex-start;
}
.game-list {
width: 100%;
overflow-x: auto;
padding-bottom: 8px;
}
.game-card {
flex: 0 0 70vw;
max-width: 260px;
height: auto;
aspect-ratio: 260 / 390;
}
.lobby-footer {
flex-direction: column;
align-items: flex-start;
gap: 16px;
}
.tm68-help-badge {
right: 12px;
bottom: 12px;
width: 70px;
}
.header-menu {
position: fixed;
top: 64px;
right: 16px;
left: auto;
min-width: 220px;
max-width: calc(100% - 32px);
}
}
@media (max-width: 640px) {
.lobby-header {
gap: 8px;
}
.lobby-logo {
width: 200px;
}
.lobby-title {
font-size: 16px;
}
.lobby-subtitle {
font-size: 12px;
}
.user-avatar {
width: 52px;
height: 52px;
}
.withdraw-btn {
padding: 12px 32px;
font-size: 16px;
}
}
.announcement-overlay {
position: fixed;
inset: 0;
background: rgba(0, 0, 0, 0.72);
display: flex;
align-items: center;
justify-content: center;
z-index: 80;
opacity: 0;
pointer-events: none;
transition: opacity 0.25s ease-out;
}
.announcement-overlay.is-visible {
opacity: 1;
pointer-events: auto;
}
.announcement-modal {
width: 620px;
background: linear-gradient(180deg, #14151b, #050608);
border-radius: 32px;
border: 2px solid #1e9bff;
box-shadow: 0 22px 60px rgba(0, 0, 0, 0.9);
padding: 40px 40px 32px;
position: relative;
}
.announcement-header {
position: relative;
margin-bottom: 18px;
}
.announcement-header-bar {
position: absolute;
margin-top: -72px;
left: 50%;
transform: translateX(-50%);
padding: 10px 80px;
border-radius: 0 0 26px 26px;
background: #1f74d8;
color: #fff;
font-weight: 700;
letter-spacing: 1px;
text-transform: uppercase;
box-shadow: 0 6px 12px rgba(0, 0, 0, 0.45);
}
.announcement-title {
margin-top: 32px;
font-size: 20px;
font-weight: 800;
text-align: center;
color: #ffd34f;
}
.announcement-body {
margin-top: 16px;
font-size: 14px;
line-height: 1.65;
color: #ffffff;
}
.announcement-body strong {
font-size: 15px;
}
.announcement-footer {
margin-top: 22px;
display: flex;
justify-content: center;
}
.announcement-btn {
min-width: 140px;
padding: 10px 30px;
border-radius: 999px;
border: none;
background: linear-gradient(135deg, #25b5ff, #0772c8);
color: #fff;
font-size: 16px;
font-weight: 700;
box-shadow: 0 10px 26px rgba(0, 0, 0, 0.85);
}
/* Unity Container (Hidden by default) */
#unity-container {
position: fixed;
width: 100%;
height: 100%;
}
#unity-canvas {
width: 100%;
height: 100%;
position: relative;
z-index: 1;
background-color: transparent !important;
}
#unity-loading-bar {
position: absolute;
left: 50%;
top: 50%;
transform: translate(-50%, -50%);
display: none;
}
#unity-logo {
width: 400px;
height: 200px;
background-size: contain;
margin-left: auto;
margin-right: auto;
}
#unity-progress-bar-empty {
margin-left: auto;
margin-right: auto;
width: 220px;
height: 13px;
margin-top: 20px;
background-color: white;
border-radius: 4px;
}
#unity-progress-bar-full {
width: 0%;
height: 13px;
margin-top: 10px;
background: linear-gradient(to right, #507eb2, #78a6da);
border-radius: 4px;
}
#unity-warning {
position: absolute;
left: 50%;
top: 5%;
transform: translate(-50%);
background: white;
padding: 10px;
display: none;
}
/* Responsive Design */
@media (max-width: 768px) {
body {
overflow: hidden;
}
/* 手机端Logo和登录框整体居中 */
.header-logo {
position: fixed;
top: 50%;
left: 50%;
transform: translate(-50%, -50%);
margin-top: -240px;
}
.header-logo img {
width: 200px;
}
/* 登录框垂直居中 */
.auth-container {
position: fixed;
top: 50%;
left: 50%;
transform: translate(-50%, -50%);
margin-top: 50px;
}
.auth-box {
width: 90vw;
max-width: 480px;
border-radius: 18px;
border-width: 2.5px;
}
.tab-btn:first-child {
border-top-left-radius: 15px;
}
.tab-btn:last-child {
border-top-right-radius: 15px;
}
.form-content {
padding: 30px 32px 35px;
}
.tab-btn {
padding: 16px 28px;
font-size: 17px;
letter-spacing: 1px;
}
.input-group {
margin-bottom: 18px;
}
.input-group input {
padding: 16px 18px 16px 50px;
font-size: 16px;
border-radius: 10px;
border-width: 1.5px;
}
.input-icon {
left: 18px;
width: 20px;
height: 20px;
}
.checkbox-group {
margin-bottom: 24px;
margin-top: 10px;
}
.checkbox-group input[type="checkbox"] {
width: 20px;
height: 20px;
}
.checkbox-group input[type="checkbox"]:checked::after {
left: 6px;
top: 2px;
width: 5px;
height: 10px;
}
.checkbox-label {
font-size: 15px;
}
.submit-btn {
padding: 16px;
font-size: 18px;
letter-spacing: 2px;
border-radius: 10px;
}
.support-btn {
padding: 14px 35px;
font-size: 16px;
border-radius: 10px;
}
.support-btn svg {
width: 22px;
height: 22px;
}
}
@media (max-width: 480px) {
.header-logo {
margin-top: -220px;
}
.header-logo img {
width: 180px;
}
.auth-container {
margin-top: 45px;
}
.auth-box {
width: 92vw;
max-width: 440px;
}
.form-content {
padding: 28px 30px 32px;
}
.tab-btn {
padding: 15px 25px;
font-size: 16px;
}
.input-group {
margin-bottom: 16px;
}
.input-group input {
padding: 15px 16px 15px 48px;
font-size: 15px;
}
.input-icon {
left: 16px;
width: 19px;
height: 19px;
}
.submit-btn {
padding: 15px;
font-size: 17px;
}
.support-btn {
padding: 13px 32px;
font-size: 15px;
}
.support-btn svg {
width: 20px;
height: 20px;
}
}
@media (max-width: 400px) {
.header-logo {
margin-top: -210px;
}
.header-logo img {
width: 170px;
}
.auth-container {
margin-top: 40px;
}
.auth-box {
width: 94vw;
}
.form-content {
padding: 26px 28px 30px;
}
.tab-btn {
padding: 14px 22px;
font-size: 15px;
}
.input-group input {
padding: 14px 14px 14px 46px;
font-size: 14px;
}
.input-icon {
left: 14px;
width: 18px;
height: 18px;
}
.checkbox-group input[type="checkbox"] {
width: 18px;
height: 18px;
}
.checkbox-group input[type="checkbox"]:checked::after {
left: 5px;
top: 1px;
width: 4px;
height: 9px;
}
.checkbox-label {
font-size: 14px;
}
.submit-btn {
padding: 14px;
font-size: 16px;
}
.support-btn {
padding: 12px 28px;
font-size: 14px;
}
.support-btn svg {
width: 19px;
height: 19px;
}
}