
    ::-webkit-scrollbar { width: 4px; height: 4px; }
    ::-webkit-scrollbar-track { background: #0f172a; }
    ::-webkit-scrollbar-thumb { background: #334155; border-radius: 2px; }
    @keyframes flash-green {
      0% { background-color: rgba(16,185,129,.4); border-color: #10b981; }
      100% { background-color: transparent; }
    }
    @keyframes flash-red {
      0% { background-color: rgba(239,68,68,.4); border-color: #ef4444; }
      100% { background-color: transparent; }
    }
    @keyframes marquee {
      0% { transform: translateX(0%); }
      100% { transform: translateX(-50%); }
    }
    .odds-up { animation: flash-green 1.2s ease-out; }
    .odds-down { animation: flash-red 1.2s ease-out; }
    .animate-marquee {
      display: flex;
      align-items: center;
      gap: 1.5rem;
      width: max-content;
      animation: marquee 18s linear infinite;
      white-space: nowrap;
      will-change: transform;
    }
    #win-ticker-text, #win-ticker-amount {
      transition: opacity .18s ease;
    }
    .scrollbar-none { -ms-overflow-style: none; scrollbar-width: none; }
    .scrollbar-none::-webkit-scrollbar { display: none; }
    /* 投注单收起：只露出标题栏（约 3rem），可点击展开 */
    #quick-betslip.slip-collapsed {
      transform: translateY(calc(100% - 3rem));
    }
    #quick-betslip.slip-hidden {
      transform: translateY(100%);
      visibility: hidden;
      pointer-events: none;
      display: none;
    }
    #quick-betslip.slip-open {
      transform: translateY(0);
      visibility: visible;
      pointer-events: auto;
    }
    @keyframes live-pulse {
      0%, 100% { opacity: 1; box-shadow: 0 0 0 0 rgba(244,63,94,.45); }
      50% { opacity: .85; box-shadow: 0 0 0 4px rgba(244,63,94,0); }
    }
    @keyframes ai-glow {
      0%, 100% { box-shadow: 0 0 0 1px rgba(245,158,11,.55), 0 0 10px rgba(245,158,11,.35); }
      50% { box-shadow: 0 0 0 1px rgba(251,191,36,.85), 0 0 16px rgba(245,158,11,.55); }
    }
    @keyframes attack-fade {
      0%, 100% { opacity: .75; }
      50% { opacity: 1; }
    }
    .live-tv-btn { animation: live-pulse 1.6s ease-in-out infinite; }
    .ai-glow-btn {
      background: linear-gradient(135deg, rgba(245,158,11,.18), rgba(16,185,129,.12));
      border: 1px solid rgba(245,158,11,.45);
      animation: ai-glow 2.4s ease-in-out infinite;
    }
    .attack-line { animation: attack-fade 2s ease-in-out infinite; }
    @keyframes shimmer-x {
      0% { transform: translateX(-40%); opacity: .35; }
      50% { opacity: .7; }
      100% { transform: translateX(40%); opacity: .35; }
    }
    .super-boost-banner .shimmer-orb {
      animation: shimmer-x 3.2s ease-in-out infinite;
    }
    @keyframes wave-right {
      0% { opacity: .35; transform: translateX(-8%); }
      50% { opacity: .9; transform: translateX(0); }
      100% { opacity: .35; transform: translateX(6%); }
    }
    @keyframes wave-left {
      0% { opacity: .35; transform: translateX(8%); }
      50% { opacity: .9; transform: translateX(0); }
      100% { opacity: .35; transform: translateX(-6%); }
    }
    .attack-wave-right {
      animation: wave-right 1.4s ease-in-out infinite;
      background: linear-gradient(90deg, transparent, rgba(245,158,11,.18), rgba(245,158,11,.42));
    }
    .attack-wave-left {
      animation: wave-left 1.4s ease-in-out infinite;
      background: linear-gradient(270deg, transparent, rgba(16,185,129,.18), rgba(16,185,129,.42));
    }
    .football-node .ball-core {
      animation: live-pulse 1.2s ease-in-out infinite;
    }
    button, a, div { -webkit-tap-highlight-color: transparent; }
    .badge-crest {
      width: 28px; height: 28px; border-radius: 9999px; display: flex; align-items: center; justify-content: center;
      font-size: 9px; font-weight: 800; letter-spacing: .02em; color: #fff; flex-shrink: 0;
      box-shadow: inset 0 0 0 1px rgba(255,255,255,.12);
    }
    .team-logo {
      width: 28px; height: 28px; border-radius: 9999px; object-fit: contain; background: #fff;
      padding: 2px; flex-shrink: 0; box-shadow: inset 0 0 0 1px rgba(255,255,255,.08);
    }
    .filter-row { scrollbar-width: none; }
    .filter-row::-webkit-scrollbar { display: none; }
    #mini-player.dragging { opacity: .92; cursor: grabbing; }
    .safe-pb { padding-bottom: max(0.5rem, env(safe-area-inset-bottom)); }

    /* ===== Stake 极致黑底 / 毛玻璃 / 霓虹发光 ===== */
    .bet-dark-bg { background-color: #090d16 !important; }
    .bet-card-glass {
      background-color: rgba(15, 23, 42, 0.85) !important;
      backdrop-filter: blur(12px);
      -webkit-backdrop-filter: blur(12px);
    }
    .neon-glow-emerald { box-shadow: 0 0 16px rgba(16, 185, 129, 0.35) !important; }
    .neon-glow-amber { box-shadow: 0 0 16px rgba(245, 158, 11, 0.35) !important; }
    .neon-glow-sky { box-shadow: 0 0 16px rgba(14, 165, 233, 0.35) !important; }
    .odds-box {
      background: #090d16 !important;
      border: 1px solid rgba(245, 158, 11, 0.3) !important;
      color: #f59e0b !important;
      font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, monospace;
      font-weight: 900;
      box-shadow: inset 0 0 8px rgba(0,0,0,0.5);
    }
    .odds-box .odds-live,
    .odds-box .text-emerald-400 { color: #f59e0b !important; }
    .odds-box:hover { border-color: rgba(16, 185, 129, 0.55) !important; }
    .no-scrollbar::-webkit-scrollbar { display: none; }
    .no-scrollbar { -ms-overflow-style: none; scrollbar-width: none; }
    .dice-track-wrap { position: relative; }
    .dice-track-wrap input[type="range"] {
      position: absolute;
      inset: 0;
      width: 100%;
      height: 100%;
      margin: 0;
      opacity: 0;
      cursor: pointer;
      z-index: 5;
    }
  
