* {
            margin: 0;
            padding: 0;
            box-sizing: border-box;
        }

        .top-banner {
            width: 100%;
            max-width: 480px;
            display: block;
            margin: 0 auto;
        }

        body {
            font-family: 'Microsoft YaHei', Arial, Helvetica, sans-serif;
            background-color: #f5f5f5;
            min-height: 100vh;
            display: flex;
            justify-content: center;
        }

        .container {
            width: 480px;
            max-width: 480px;
            background-image: url('/images/bg-content.jpg');
            background-size: 480px auto;
            background-position: center top;
            background-repeat: repeat-y;
            min-height: 100vh;
            position: relative;
            padding-bottom: 20px;
            box-shadow: 0 0 10px rgba(0,0,0,0.3);
        }

        /* 顶部通告栏轮播 - 参考10331133.com样式 */

        .notice-carousel {
            padding: 10px 16px;
            background: url('/images/notice-bg.jpg') center top no-repeat;
            background-size: 100% 100%;
            border-bottom: 1px solid #8b7355;
            position: relative;
            height: 48px;
            overflow: hidden;
        }

        .notice-wrapper {
            height: 100%;
            position: relative;
            display: flex;
            align-items: center;
            overflow: hidden;
        }

        .notice-item {
            height: 28px;
            line-height: 28px;
            font-size: 16px;
            color: #ffffff;
            white-space: nowrap;
            overflow: hidden;
            text-overflow: ellipsis;
            display: flex;
            align-items: center;
            padding-left: 50px;
            padding-right: 50px;
            font-weight: bold;
        }

        .notice-dots {
            position: absolute;
            right: 16px;
            top: 50%;
            transform: translateY(-50%);
            display: flex;
            gap: 4px;
        }

        .notice-dot {
            width: 6px;
            height: 6px;
            border-radius: 50%;
            background-color: #ccc;
            cursor: pointer;
        }

        .notice-dot.active {
            background-color: #f7e9dc;
        }

        /* 分栏切换区 - 参考10331133.com样式 */
        .half-switch-container {
            display: flex;
            padding: 20px 8px 0 8px;
            margin-bottom: 0;
            gap: 6px;
        }

        .half-column, .macau-tab {
            flex: 1;
            text-align: center;
            padding: 10px 0;
            color: #7a573e;
            background-color: #f7e9dc;
            cursor: pointer;
            position: relative;
            transition: all 0.3s ease;
            border: none;
            border-radius: 8px 8px 0 0;
            display: flex;
            flex-direction: column;
            justify-content: center;
            align-items: center;
            gap: 2px;
            font-weight: bold;
        }

        .tab-title {
            font-size: 15px;
            font-weight: bold;
        }

        .tab-sub {
            font-size: 12px;
            color: #7a573e;
        }

        .half-column.active .tab-title,
        .half-column.active .tab-sub {
            color: #f7e9dc;
        }

        .half-column:hover {
            background-color: #e8d9cc;
        }

        .half-column.active {
            color: #f7e9dc !important;
            font-weight: bold;
            background-color: #7a573e;
            border-radius: 8px 8px 0 0;
        }

        .half-column .time {
            font-size: 13px;
            margin-top: 0;
            opacity: 1;
            color: #333333;
        }

        .half-column.active .time {
            color: #FFFFFF !important;
            opacity: 1;
        }

        /* 内容区域 */
        .content-container {
            display: none;
        }

        .content-container.active {
            display: block;
        }

        /* 开奖结果卡片 - 与资料预测区卡片一致 */
        .result-card {
            margin: 0 8px 8px 8px;
            border: solid 2px #6b635e;
            border-radius: 0;
            overflow: hidden;
            background-color: rgba(253, 236, 225, 0.95);
            box-shadow: 0 0 10px 0 rgba(65, 60, 53, 0.48);
        }

        .card-header {
            display: flex;
            justify-content: space-between;
            align-items: center;
            padding: 12px 16px;
            background: url('/images/bg-title.jpg') center top no-repeat;
            background-size: 100% 100%;
            border-bottom: 1px solid #5a524a;
        }

        .period-info {
            display: flex;
            flex-direction: column;
        }

        .period-number {
            color: #ffffff;
            font-size: 15px;
            font-weight: bold;
        }

        .history-link {
            color: #ffffff;
            font-size: 14px;
            text-decoration: none;
        }

        /* 头部倒计时 */
        .header-countdown {
            display: flex;
            align-items: center;
            gap: 5px;
            padding: 4px 8px;
            background-color: #fff5f5;
            border-radius: 4px;
            border: 1px solid #ffcccc;
        }

        .header-countdown .countdown-label {
            font-size: 11px;
            color: #666666;
        }

        .header-countdown .countdown-time {
            font-size: 13px;
            font-weight: bold;
            color: #ff0000;
        }

        /* 号码球区域 */
        .balls-container {
            padding: 12px 4px;
            background-color: #f7e9dc;
            min-height: auto;
        }

        .balls-wrapper {
            display: flex;
            justify-content: space-around;
            align-items: flex-start;
            gap: 4px;
            visibility: hidden;
        }

        .ball-item {
            display: flex;
            flex-direction: column;
            align-items: center;
            flex: 1;
            min-width: 0;
        }

        .ball-item.show {
            opacity: 1;
            transform: scale(1);
        }

        .ball {
            border-radius: 50%;
            background-color: #ffffff;
            display: flex;
            justify-content: center;
            align-items: center;
            font-weight: 700;
            color: #666666;
            position: relative;
            box-shadow: none;
            text-indent: -3px;
            /* 删除预设尺寸，让 JS 完全控制 */
        }

        /* 红球背景图 - 使用参考网站的图片 */
        .ball.red {
            background-image: url(data:image/png;base64,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);
            background-size: 100% 100%;
        }

        /* 蓝球背景图 - 使用参考网站的图片 */
        .ball.blue {
background-image: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAEQAAABECAYAAAA4E5OyAAALDUlEQVR4XtVce5BT5RX//W4Wl5cyrSTZBR+QG4RqnSkqtrW+2/HRVqtToWNHUGvVKpW2IrkRX1uLuDcI6PYxrdVpqfbhYh2tKDKW6kh9dVCrTLVobtb6YMnNCsXF3QU23+nc7IPdbDa59yabpfe/3Zxzfuf75Xucc+75QlTp0e+0o0KeSE3NpsJ00TgNSuqgcQJEJgB0POkA5BOQrYC8B8ASJa9hTGBzanHw7Wq4mvNiJJ4pDdvGjx0fOJeC8wCcCyBUDo4ArRQ8TfLx7s7guncb2FWOveF0K05INJE5TqCugsLFIA4ZCacB7gKxVin5WUs8/HolMSpGSKTRPhkabqHIWZV0sKgtUgDZqMDbW2KhTZXALZuQSMKeQcFqQL5WCYf82iC4TtVwcbl7jX9CmiUQabFvJnAjgFq/A6mkngAdGrSbkp2Tm9BA5ce2L0Ki5keHCbr/AOAUP6BV0NlE4vJkLGx5xfJMSHRF5jxR6jcADvUKVmX5dpDzrFjoKS+4ngiJmulrBfgpAM0LyOjJch+Ba5JG6H63PrgmJNJox6lhOURc67h1YkTlnJNIZJllhG91g+NqcHqjfQcoS90YrIoMKYT8UYG/11T2P90BTtREOwbAORT1DYAH5ftBwe3JePi2Uv6VJCRqtl0ryP68lKFqfk5gYdII/6IQ5rSEXRcAlkJwDSA1/TIOiYIrSy2fooREzLYvE2o9IGOqOeASWK9aRvj4Uv5EV9qzpVvWAtAHyHZDeL4VD60fTn9YQpyACyIvEfh0KfBqfi7AqpQRXuwGM9K4YxK17kchcvoA+XYSs4c7kgsTMrc5oM85/UWIzHED7FOmC+AeABMGTe0SxgiaSSMUd4vpJJnjxtc8MYgUcpPVETy9UPBWkJBoY+Z6oVrpFrSE3G6AmwB5RhGvQ8tuPXJ3/YfPNrC7Ty/YYE+cOKEmEsh2z1LEFwE5k8Cx6K0JDLJPPGbFwhd48W3q8g8OrQ2M2UxgWp8eBYuT8fCqIZtv/j+OXLF9ekBxC3PfXBmP4G8a5P5PutSj2xqmdHi1FE2kdSWYT/BKQKYM2Bz/29nRPdWrzWgic5qIemYAyZ0K2uwWI7h1oG9DZohu2uvKTNQ2KARubTEm/8MrCYXko01SqzrbLgfkVkLqczLUrrZiwXu92o+Y9lpCLhpA7pNWLDQoKR1ESOTO1jkMBF72FXyRH4rIopQRfsSro27ko00fHSJd2WUQWQjQFmmflYrru9zo9sk4JQpSBpUJqGlnJJcEn+1fSgMN6on0IxBc6AWkR5brA4HuBW/fMKXNu643DT1hnwOR3wH4q2WEv+1NW6ibdiYvD9toGeGvDCEk2th6jFB7w2ueQvDuZCx4PXLFmuo80+5snRagtoEa1yRjoeVeUHUz/dyQLF1pJ1g3Bl/JfbX908m07yPkCi/GhdptqVjwdi86lZKNLm8NSkDbCPAhywjd4daubtrPAZJXtuB9lhG6sp+Q3Fk9NtDqqQZK3mPFQj9068hIyB1uZqaMgXqexIsfd/CqTENodzGcw1a9P652X20akIPz5Np3a1KfXlL3SW6GRBP2XBFp9uD0BisWOreay2Q43/QVOz4rat/LBHcIGUt1TH5ouGqZbqbvAlAwylXg3BYj9HCOEN1MO5vUfHeEcBuz2c8ll9Y7m9MB8UQTme+KqF87zgjQAmANhBuzWVpjOLYbNV1HQ+T7MvDIzfNciAdTsfD8HkISdhoirt6bkJyXjIWcpOmAevREeiMEZ5bhVNoywnWMrMwcxW41KForYnTQEVUGeMVVZ5htn1FQb3jJi/KdkBptJvVEegEEa1x5SJxsxcLPu5IdBaFIIvMARV3iF5rAAuqJjAlRsVJGBNiUMsKnlpIbzc+jjR8dI1p2i69I23GcSFA3048BOL/0QHiZZYTczaTSxkZMIpJIv0TB530C/MUhxInQjithoLMGWnirEWz3CVQ1NT1hXweRJl+A5CtObP/hoPS6sKUDdjPNdzeyPHMUA64PiTx1bqPemG4HMbEooyK3WPG6Zb5YHwUlPWF/AJGpPqDbnSWzD8D+6nQBK0rk/JZ43eM+AEZFRTftJwD5qmdwcp9DiNN4UvRltWS1maml1eng8TyIAgoRc/tqgn7yrD0OIU4IPrmYI7UTQwe/uZBFE6dKDKRSNnQzswRQCR/22hg17ZRApg+vTGXFgjUHQiLndoCRxvQ1JAq+yCpmg2CLc8q8CsjsIoJ7LSN8QPR/uCVkumlfoUHucys/QO41RhrTzSTmFl0ynaHaNxu41wfAqKhEEvYPKHK3V3ARrKXeaP8ElJuLKmsStpbU2V4BRks+YqZvI9DgGV+4jNEV6UtE4YGia0vDSckl4Rc9A4ySgp6w10BkgVd4aphPp6EWmrxTTFnA76SMkNM19H/xRM30ywKc6NlZxRm9FbPt7wE8vMhJ01+E9QxSZYVcfXictrNQj0hxV+R9y6g7oq+E+FsAlxZRSFlGeGBbQZWH6R5ueiJ9libY4F6jT5JrLCN0WY6QSCL9TQoeLmYkS85+Nxb6p3eg6mroifQvIbjaK6oQF6Vi4T/3VN2b3qmVzklOw/2nhjPkpS/DqzOVknfeA0tnpug4CmNxJ8cF65OLuKf/RVUpZgXYMQbatAO5JjKw+u6JZOJXViz8PUenn5Cepn3ZXKz8JmA8ZYRMT2DVEm6WgN6S+TcgUU+QuQY+npCMBV8dRIjzh26mnd6rc4ZfNtxJTc06EIM03bQXAXKPJzJywnzKMkLO9ZWevwYaKNQuUADgAcsIew56vDvqXuPI1Zn6mr3qLQCT3Gv1SEqAp6RuCP29ICE9s8R+EpB+xgoCiHaxFQ/+ySv4iMg3iKaPt5/295KK6y0jNKiQNLSDqCdy3QJg7LADEHxMqJOS8fp/jcggPRgto6m4C4rHWjeGkgPhCjbdRcx0A4FSXb8fiGS/lIpPce7GjcrT23vvq6lYgB+njPCQBLAgIUc3yEF7xmdegEipBlmLxNl+rmGUy2A0YS9UIk30cxGBfKW2I3hSoZLGsI27ThegCJx3NsU3KkGagZoLk0sOrU42PLc5EJlz6jIKXfeq5pG/i8Tx3hp3ey30hPRsBqTUdRCncn+T1Rla6fcmk5sZc9SqtqnZbvVgXmeyG9W+Q1UJZZ4Tog+nVLr5P5H5kYga0uBa2CA3K2QXthj1FWnJ7Me4avOYaOTw64S5ok9+949rQkjt+mQsuLqYQklCHOWoub1RQMMlsgi5jkoarXj4BZc6BcWcVH78+IMuFck6L+P7u5D92CTETBp1JZeZK0J8kNI3Rd8i8aBkucHaM/k1N8vJadgX7j0tAO2C3o4f3zNif7DljgxH3jUhOVJyy0fucrGnFPgSuVOALYRsJbBNoLWDspeCiQpqEkSLkDJLgKMJBPzMgqE6VCRvKLVMSsYhxZzprZ04d9g8h8mVGaRrK7uEuKLYBlrIkqcZ0mcgdySDD7mIU1x7X1FBp60B8i0/8ZEvQhznneCta5y9lICz2Q4f5ld0pCWNdQlgju0MLff7Hsk3IX2u9VTt0VQyISw5lnIFuB4Ki/JzE69WyyakD7C3dHATyLN993h59j53BXWDCO9Ixfen8F7NlLWplgLr/7kM4bxiNdpSdop/zp2gNBPavX2VrvLs7deu2AzJd8gpXKuuQ77e+4MqZwA4okynnaz6GSEe18Z+vC65aIZzX6/iz4gRku+ps9ewRr4gWc4UyEyS0d4Z5LRz9QVfTlOfc0dvp4gkCW5lQLZKN18qd29wy9z/ADL0L3WM/Qe7AAAAAElFTkSuQmCC);
            background-size: 100% 100%;
        }

        /* 绿球背景图 - 使用参考网站的图片 */
        .ball.green {
            background-image: url(data:image/png;base64,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);
            background-size: 100% 100%;
        }
        
        /* 灰色闪烁球样式（开奖动画用） */
        .ball.gray-blink {
            border-color: #cccccc;
            color: #cccccc;
            animation: ballBlink 0.5s ease-in-out infinite alternate;
        }
        
        @keyframes ballBlink {
            0% {
                transform: translateY(-3px);
                opacity: 0.6;
            }
            100% {
                transform: translateY(3px);
                opacity: 1;
            }
        }
        
        /* 已揭晓的球 */
        .ball-item.revealed .ball {
            animation: ballReveal 0.3s ease-out;
        }
        
        @keyframes ballReveal {
            0% {
                transform: scale(1.2);
                opacity: 0;
            }
            50% {
                transform: scale(1.1);
            }
            100% {
                transform: scale(1);
                opacity: 1;
            }
        }

        .ball-info {
            margin-top: 8px;
            text-align: center;
            font-size: 18px;
            color: #666666;
            line-height: 1.4;
            font-weight: 600;
        }

        .plus-sign {
            font-size: 32px;
            color: #00c250;
            margin-top: 2px;
            padding: 0 2px;
        }

        /* 等待开奖状态 */
        .waiting-state {
            padding: 10px;
            text-align: center;
        }

        .waiting-text {
            font-size: 16px;
            color: #666666;
            margin-bottom: 10px;
        }

        .waiting-countdown {
            font-size: 28px;
            color: #ff0000;
            font-weight: bold;
        }

        /* 底部提示 */
        .card-footer {
            padding: 10px 12px;
            background-color: rgba(253, 236, 225, 0.9);
            border-top: 1px solid #d6a17f;
            font-size: 12px;
            color: #7a573e;
            text-align: center;
            font-weight: bold;
        }

        /* 移动端适配 - 保持默认，自适应由JS处理 */
        @media (max-width: 400px) {
            .plus-sign {
                font-size: 26px;
            }
        }

        /* 移动端适配 */
        @media (max-width: 720px) {
            .container {
                max-width: 100%;
                box-shadow: none;
            }
        }
        @media (max-width: 480px) {
            /* 开奖区卡片标题左边距 */
            .card-header {
                padding: 12px 6px;
            }
        }
        @media (max-width: 360px) {
        }

        /* ========== 开奖动画样式 ========== */
        
        /* 球的基样式 */
        .ball.gray-blink {
            border-color: #cccccc !important;
            animation: emptyBallBlink 0.6s ease-in-out infinite alternate;
        }

        @keyframes emptyBallBlink {
            0% {
                transform: scale(1);
                box-shadow: 0 0 8px rgba(180, 180, 180, 0.4);
                border-width: 5px;
            }
            100% {
                transform: scale(1.08);
                box-shadow: 0 0 20px rgba(180, 180, 180, 0.7);
                border-width: 6px;
            }
        }

        /* 灰色空球闪烁状态 */
        .ball.blink-empty {
            border-color: #cccccc !important;
            animation: emptyBallBlink 0.6s ease-in-out infinite alternate;
        }

        .ball.blink-empty::after {
            content: '?';
            font-size: 18px;
            color: #cccccc;
            font-weight: bold;
            animation: questionPulse 0.8s ease-in-out infinite alternate;
        }

        @keyframes questionPulse {
            0% { 
                opacity: 0.4;
                transform: scale(0.9);
            }
            100% { 
                opacity: 1;
                transform: scale(1.1);
            }
        }

        /* 即将开奖急促闪烁 */
        .ball.blink-coming {
            animation: comingBlink 0.25s ease-in-out infinite alternate !important;
        }

        @keyframes comingBlink {
            0% {
                transform: scale(1.05);
                box-shadow: 0 0 10px rgba(255, 200, 0, 0.5);
                border-color: #cccccc;
            }
            100% {
                transform: scale(1.15);
                box-shadow: 0 0 25px rgba(255, 200, 0, 0.9);
                border-color: #ffcc00;
            }
        }

        /* 数字显现动画 */
        .ball.reveal-number {
            animation: revealPulse 1s ease-out forwards !important;
        }

        @keyframes revealPulse {
            0% {
                transform: scale(1.1);
                box-shadow: 0 0 5px rgba(200, 200, 200, 0.3);
            }
            25% {
                transform: scale(1.2);
                box-shadow: 0 0 30px rgba(255, 255, 255, 0.9);
            }
            50% {
                transform: scale(1.15);
                box-shadow: 0 0 22px rgba(255, 255, 255, 0.7);
            }
            75% {
                transform: scale(1.1);
                box-shadow: 0 0 18px rgba(255, 255, 255, 0.5);
            }
            100% {
                transform: scale(1);
                box-shadow: 0 4px 15px rgba(0, 0, 0, 0.3);
            }
        }

        .ball.reveal-number .ball-number {
            animation: numberReveal 1s ease-out forwards;
        }

        @keyframes numberReveal {
            0% {
                opacity: 0;
                filter: blur(12px);
                transform: scale(0.5);
            }
            30% {
                opacity: 0.4;
                filter: blur(8px);
                transform: scale(0.7);
            }
            50% {
                opacity: 0.7;
                filter: blur(4px);
                transform: scale(0.85);
            }
            70% {
                opacity: 0.9;
                filter: blur(2px);
                transform: scale(0.95);
            }
            100% {
                opacity: 1;
                filter: blur(0);
                transform: scale(1);
            }
        }

        /* 号码球弹出动画 */
        .ball-item.animate-in {
            animation: ballPopIn 0.6s cubic-bezier(0.34, 1.56, 0.64, 1) forwards;
        }

        @keyframes ballPopIn {
            0% {
                opacity: 0;
                transform: scale(0.3) translateY(30px);
            }
            50% {
                opacity: 1;
                transform: scale(1.15) translateY(-5px);
            }
            70% {
                transform: scale(0.95) translateY(2px);
            }
            100% {
                opacity: 1;
                transform: scale(1) translateY(0);
            }
        }

        /* +号显示动画 */
        .plus-sign.animate-in {
            animation: plusFadeIn 0.3s ease forwards;
        }

        @keyframes plusFadeIn {
            from {
                opacity: 0;
                transform: scale(0);
            }
            to {
                opacity: 1;
                transform: scale(1);
            }
        }

        /* 动画状态栏 */
        .animation-status-bar {
            display: none;
            background: rgba(255, 255, 255, 0.1);
            border-radius: 8px;
            padding: 10px 20px;
            margin-bottom: 10px;
            text-align: center;
        }

        .animation-status-bar.active {
            display: block;
        }

        .animation-status-text {
            color: #00c250;
            font-size: 16px;
            font-weight: bold;
        }

            padding: 4px 8px;
            background: rgba(255,255,255,0.2);
            color: #fff;
            border: none;
            border-radius: 4px;
            font-size: 11px;
            cursor: pointer;
            transition: background 0.2s;
        }