* { 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; } }