:root {
  --color-main-bg: #202022;
  --color-main-text: #feffdd;
  --color-main-accent: #545558;
  --color-main-card: #25282d;
  --color-accent-green: #4CAF50;
  --color-accent-red: #ff6b6b;
}

.theme-mibai {
  --color-main-bg: #FDF6E3;
  --color-main-text: #4C0202;
  --color-main-accent: #D3AB88;
  --color-main-card: #E5D5B7;
  --color-accent-green: #4CAF50;
  --color-accent-red: #E57373;
}

.theme-bogreen {
  --color-main-bg: #AACC97;
  --color-main-text: #3F543B;
  --color-main-accent: #77AF7A;
  --color-main-card: #F2E4D6;
  --color-accent-green: #388E3C;
  --color-accent-red: #D32F2F;
}

/* 确保各主题下的"已阅"按钮和其他按钮保持统一样式 */
.theme-mibai .modal-close,
.theme-mibai .write-wish-btn,
.theme-bogreen .modal-close,
.theme-bogreen .write-wish-btn,
.modal-close,
.write-wish-btn {
  background-color: #97c188 !important;
  color: #202022 !important;
  border-radius: 8px !important;
  box-shadow: 0 2px 8px rgba(0,0,0,0.1) !important;
  border: none !important;
}

/* 为米白色主题添加特定的已阅按钮样式 */
.theme-mibai .modal-close {
  background-color: #C4A661 !important;
  color: #3E2F1C !important;
  padding: 14px 0;
  font-weight: bold;
}

/* 薄绿主题按钮样式 */
.theme-bogreen .modal-close {
  background-color: #77AF7A !important;
  color: #3F543B !important;
  padding: 14px 0;
  font-weight: bold;
}

        /* 添加思源宋体字体声明 */
        @font-face {
            font-family: 'Source Han Serif';
            src: url('https://cdn.jsdelivr.net/npm/source-han-serif@2.0.0/OTF/SimplifiedChinese/SourceHanSerifSC-Regular.otf') format('opentype');
            font-weight: normal;
            font-style: normal;
            font-display: swap;
        }
        @font-face {
            font-family: 'Source Han Serif';
            src: url('https://cdn.jsdelivr.net/npm/source-han-serif@2.0.0/OTF/SimplifiedChinese/SourceHanSerifSC-Bold.otf') format('opentype');
            font-weight: bold;
            font-style: normal;
            font-display: swap;
        }

        * {
            margin: 0;
            padding: 0;
            box-sizing: border-box;
            font-family: "华文中宋" !important;
            -webkit-tap-highlight-color: transparent;
            -webkit-touch-callout: none;
            -webkit-user-select: none;
            user-select: none;
        }
        body {
            background-color: var(--color-main-bg);
            color: var(--color-main-text);
            height: 100vh;
            display: flex;
            flex-direction: column;
            overflow: hidden;
            -webkit-font-smoothing: antialiased;
            -moz-osx-font-smoothing: grayscale;
        }
        .content {
            flex: 1;
            display: flex;
            flex-direction: column;
            padding: 10px;
            height: 100%;
            overflow: hidden;
        }
        .header {
            text-align: center;
            margin-bottom: 15px;
            font-size: 20px;
            font-weight: bold;
            color: var(--color-main-accent);
        }
        .header-bar {
            background: var(--color-main-bg) !important;
            border-bottom: none !important;
        }
        .divination-line {
            background-color: var(--color-main-accent);
            height: 40px;
            margin-bottom: 8px;
            position: relative;
            display: flex;
            align-items: center;
            padding: 0 10px;
        }
        .line-content {
            display: grid;
            grid-template-columns: 1fr 2fr 2fr 2fr;
            align-items: center;
            justify-items: center;
            gap: 0;
            width: 100%;
        }
        .line-number, .line-symbol, .line-trigram, .line-change {
            flex: unset;
            min-width: 38px;
            text-align: center;
            font-size: 16px;
            padding: 0 4px;
        }
        .line-number {
            max-width: 40px;
        }
        .circle-icon {
            width: 40px;
            height: 40px;
            border-radius: 50%;
            display: flex;
            align-items: center;
            justify-content: center;
            font-size: 16px;
            background-color: var(--color-main-card);
            color: var(--color-main-text);
            border: 2.0px solid var(--color-main-card);
        }
        
        .circle-icon[data-result] {
            font-size: 24px;
            background-color: var(--color-main-accent);
        }
        
        @keyframes flip {
            0% { transform: rotateY(0deg); }
            100% { transform: rotateY(180deg); }
        }
        
        .flipping {
            animation: flip 0.15s linear alternate infinite;
            transform-style: preserve-3d;
            perspective: 1000px;
        }
        
        .question-container {
            margin: 10px 0;
            padding: 0;
            border: none;
            text-align: center;
            position: relative;
        }
        .question-input {
            font-size: 16px;
            background-color: var(--color-main-bg);
            color: var(--color-main-text);
            border: 2px solid var(--color-main-card);
            border-radius: 8px;
            width: 100%;
            padding: 10px 15px;
            text-align: center;
            outline: none;
            -webkit-user-select: text;
            user-select: text;
            -webkit-appearance: none;
            -moz-appearance: none;
            appearance: none;
        }
        
        .question-input:read-only {
            opacity: 1;
            cursor: not-allowed;
        }
        .action-row {
            display: flex;
            justify-content: center;
            gap: 15px;
            padding: 10px 0;
            position: relative;
        }
        .action-button {
            width: 120px;
            height: 120px;
            border-radius: 50%;
            border: none !important;
            background-color: var(--color-main-card);
            color: var(--color-main-text);
            display: flex;
            align-items: center;
            justify-content: center;
            font-size: 48px;
            cursor: pointer;
            transition: all 0.3s ease;
            position: relative;
            overflow: visible;
            outline: none !important;
        }
        .action-button:hover {
            background-color: var(--color-main-card);
            border-color: var(--color-main-card);
        }
        .action-button:active {
            transform: scale(0.95);
            background-color: var(--color-main-card);
            border-color: var(--color-main-card);
        }
        .action-button:disabled,
        .action-button.is-disabled {
            opacity: 1;
            cursor: not-allowed;
            pointer-events: none;
            border-color: var(--color-main-card);
            color: #888a7a;
            background-color: var(--color-main-card);
            box-shadow: none;
        }
        .input-control-area {
            display: flex;
            flex-direction: row;
            align-items: center;
            margin: 4px 0 0 0;
            justify-content: center;
            gap: 10px;
        }
        .icons-group {
            display: flex;
            justify-content: center;
            gap: 10px;
        }
        .interpret-button {
            width: 120px;
            height: 120px;
            border-radius: 50%;
            border: none !important;
            outline: none !important;
            background-color: var(--color-main-accent);
            color: var(--color-main-text);
            font-size: 24px;
            cursor: pointer;
            transition: background-color 0.3s, transform 0.2s;
            display: flex;
            align-items: center;
            justify-content: center;
            position: absolute;
            left: 50%;
            transform: translateX(-50%);
            visibility: hidden;
            opacity: 0;
            transition: visibility 0s linear 0.3s, opacity 0.3s ease-in-out;
            box-shadow: none !important;
            -webkit-box-shadow: none !important;
            -moz-box-shadow: none !important;
        }
        .interpret-button.visible {
            visibility: visible;
            opacity: 1;
            transition-delay: 0s;
            background-color: var(--color-main-accent);
        }
        .interpret-button:hover {
            background-color: var(--color-main-accent);
        }
        .interpret-button:active {
            transform: translateX(-50%) scale(0.95);
            background-color: var(--color-main-accent);
        }
        .hexagram-display {
            position: fixed;
            top: 0;
            left: 0;
            right: 0;
            bottom: 0;
            background-color: var(--color-main-bg);
            padding: 10px;
            z-index: 1000;
            display: none;
            color: var(--color-main-text);
            overflow-y: auto;
            -webkit-overflow-scrolling: touch;
            padding-top: 56px;
        }
        .hexagram-inner {
            max-width: 600px;
            margin: 0 auto;
            padding: 0 24px;
            box-sizing: border-box;
        }
        .result-title,
        .result-section {
            padding: 0;
            box-sizing: border-box;
        }
        .result-title {
            position: static;
            width: auto;
            left: auto;
            right: auto;
            top: auto;
            background: none;
            margin-top: 0;
            margin-bottom: 20px;
            text-align: left;
            font-size: 16px;
            font-weight: bold;
            letter-spacing: 1px;
            color: var(--color-main-text);
        }
        .hexagram-box, .analysis-box, .conclusion-box {
            background-color: var(--color-main-card);
            padding: 15px;
            margin-bottom: 15px;
        }
        .hexagram-content, .analysis-content, .conclusion-content {
            font-size: 16px;
            line-height: 1.8;
            color: var(--color-main-text);
            padding: 10px 18px;
        }
        .analysis-content h2, .conclusion-content h2 {
            font-size: 20px;
            font-weight: bold;
            margin: 18px 0 10px 0;
            color: var(--color-main-text);
        }
        .analysis-content .point, .conclusion-content .point {
            margin: 8px 0;
            padding-left: 1.2em;
            text-indent: -1.2em;
            position: relative;
        }
        .analysis-content .point::before, .conclusion-content .point::before {
            content: '• ';
            color: var(--color-main-text);
            font-size: 18px;
            font-weight: bold;
        }
        .error-message {
            color: var(--color-main-text);
            padding: 20px;
            text-align: center;
            font-size: 16px;
        }
        @keyframes shake {
            0%, 100% { transform: translateX(0); }
            10%, 30%, 50%, 70%, 90% { transform: translateX(-5px); }
            20%, 40%, 60%, 80% { transform: translateX(5px); }
        }
        
        .shake {
            animation: shake 0.5s cubic-bezier(.36,.07,.19,.97) both;
        }
        
        .question-error {
            border-width: 2.0px;
            border-color: var(--color-main-accent);
        }
        h2 {
            font-size: 20px;
            margin-bottom: 15px;
            color: var(--color-main-text);
        }
        .coin-square {
            width: 20px;
            height: 20px;
            background: var(--color-main-text);
            border-radius: 2px;
            margin: auto;
        }
        /* 进度条样式 */
        .global-progress-container {
            width: 100%;
            height: 4px;
            background: rgba(var(--color-main-text,254,255,221),0.1);
            border-radius: 2px;
            margin-bottom: 16px;
            overflow: hidden;
        }
        .global-progress-bar {
            height: 100%;
            background: var(--color-main-text);
            border-radius: 2px;
            width: 0%;
            transition: width 0.4s cubic-bezier(.4,1,.7,1);
        }
        hr {
            border: none;
            border-top: 2.0px solid var(--color-main-text);
            margin: 24px 0;
            opacity: 0.7;
        }
        .result-section {
            margin-top: 32px;
        }
        /* 美化月建日辰样式 */
        .usage-lunar-row {
            display: flex;
            justify-content: space-between;
            align-items: baseline;
            width: 100%;
            margin-bottom: 8px;
            position: relative;
            flex-wrap: nowrap;
        }
        .usage-indicator {
            display: block;
            margin: 0;
            font-size: 16px;
            color: var(--color-main-accent);
            font-family: inherit;
            font-weight: normal;
            opacity: 1;
            flex-shrink: 1;
            min-width: 0;
            white-space: nowrap;
            overflow: hidden;
            text-overflow: ellipsis;
        }
        .auto-lunar-info {
            display: block;
            margin: 0;
            font-size: 16px;
            color: var(--color-main-accent);
            font-family: inherit;
            font-weight: normal;
            opacity: 1;
            min-width: 0;
            max-width: 70vw;
            margin-left: auto;
            white-space: nowrap;
            overflow: hidden;
            text-overflow: ellipsis;
            text-align: right;
        }
        .analysis-content p {
            margin-bottom: 1.2em;
            line-height: 1.7;
        }
        .analysis-content ol li,
        .analysis-content ul li {
            margin-bottom: 0.8em;
        }
        .analysis-content span[style*='font-weight:bold'] {
            margin-top: 1.5em !important;
            margin-bottom: 0.8em !important;
            display: block;
        }
        .tips-carousel {
            color: var(--color-main-text);
            font-size: 16px;
            text-align: center;
            margin: 0;
            min-height: 0;
            transition: opacity 0.3s;
            opacity: 1;
            letter-spacing: 1px;
            margin-bottom: 24px;
            background: var(--color-main-card);
        }
        .analysis-content ol {
            margin-left: 1.5em;
            margin-bottom: 1em;
            list-style: decimal inside;
        }
        .analysis-content ol li {
            margin-bottom: 0.8em;
            line-height: 1.7;
        }
        /* 新增：右上角剩余次数图标 */
        .usage-indicator:hover {
            background: var(--color-main-accent);
        }
        /* 激活码弹窗 */
        #activation-modal {
            position: fixed;
            top: 0; left: 0; right: 0; bottom: 0;
            background: rgba(0,0,0,0.45);
            z-index: 9999;
            display: flex;
            align-items: center;
            justify-content: center;
        }
        #activation-modal .modal-content {
            background: var(--color-main-card);
            border-radius: 12px;
            padding: 32px 28px 24px 28px;
            min-width: 320px;
            box-shadow: 0 4px 24px rgba(0,0,0,0.18);
            text-align: center;
        }
        #activation-modal input {
            width: 80%;
            padding: 8px 12px;
            border-radius: 6px;
            border: 2.0px solid var(--color-main-accent);
            background: var(--color-main-bg);
            color: var(--color-main-text);
            font-size: 16px;
            margin-bottom: 18px;
        }
        #activation-modal button {
            background: var(--color-main-accent);
            color: var(--color-main-text);
            border: none;
            border-radius: 6px;
            padding: 8px 24px;
            font-size: 16px;
            margin: 0 8px;
            cursor: pointer;
            transition: background 0.2s;
        }
        #activation-modal button:hover {
            background: var(--color-main-accent);
        }
        #activation-modal .modal-title {
            color: var(--color-main-text);
            font-size: 16px;
            margin-bottom: 18px;
            font-weight: bold;
        }
        #activation-modal .modal-tip {
            color: var(--color-main-text);
            font-size: 16px;
            margin-bottom: 18px;
        }
        /* 新增flex容器样式 */
        .usage-lunar-row {
            display: flex;
            justify-content: space-between;
            align-items: baseline;
            width: 100%;
            margin-bottom: 8px;
            position: relative;
            flex-wrap: wrap;
        }
        .usage-indicator, .auto-lunar-info {
            display: inline-block;
            margin: 0;
            text-align: left;
            font-size: 16px;
            width: auto;
            color: var(--color-main-accent);
            font-family: inherit;
            font-weight: normal;
            opacity: 1;
            background: none;
            border-radius: 0;
            box-shadow: none;
            min-width: 0;
        }
        @media (max-width: 600px) {
            .usage-lunar-row {
                flex-direction: column;
                align-items: center;
                margin-bottom: 8px;
            }
            .usage-indicator, .auto-lunar-info {
                position: static !important;
                margin: 0 0 2px 0 !important;
                text-align: center !important;
                font-size: 16px !important;
                width: 100%;
                display: block;
            }
            .usage-lunar-center-wrap {
                width: 100%;
                justify-content: center;
            }
        }
        .question-input::placeholder {
            color: var(--color-main-accent);
            opacity: 1;
        }
        .analysis-content ul {
            margin-left: 1.5em;
            margin-bottom: 1em;
            list-style: disc inside;
        }
        .analysis-content ul li {
            margin-bottom: 0.5em;
        }
        
        /* 弹窗样式 */
        .modal-overlay {
            position: fixed;
            top: 0;
            left: 0;
            right: 0;
            bottom: 0;
            background-color: rgba(0, 0, 0, 0.8);
            display: flex;
            align-items: center;
            justify-content: center;
            z-index: 1000;
        }
        
        .modal-content {
            position: relative;
            max-width: 90%;
            width: 600px;
            background: var(--color-main-bg);
            border: none !important;
            border-radius: 12px;
            box-shadow: 0 2px 16px rgba(0,0,0,0.18);
            padding: 0;
            color: var(--color-main-text);
            font-family: 'Source Han Serif', 'SimSun', '宋体', 'STSong', '华文宋体', 'NSimSun', '新宋体', 'Times New Roman', 'Times', 'serif' !important;
            font-size: 16px;
        }
        
        .modal-body {
            max-height: 65vh;
            height: auto;
            overflow-y: auto;
            padding: 20px;
            border-radius: 12px 12px 0 0;
            font-family: 'Source Han Serif', 'SimSun', '宋体', 'STSong', '华文宋体', 'NSimSun', '新宋体', 'Times New Roman', 'Times', 'serif' !important;
            /* 简约滚动条样式 */
            scrollbar-width: thin;
            scrollbar-color: var(--color-main-card) transparent;
            font-size: 16px;
        }
        .modal-body::-webkit-scrollbar {
            width: 3px;
            background: transparent;
        }
        .modal-body::-webkit-scrollbar-thumb {
            background: rgba(71, 71, 65, 1);
            border-radius: 8px;
            border: 2.0px solid var(--color-main-card);
            transition: background 0.2s;
        }
        .modal-body::-webkit-scrollbar-thumb:hover {
            background: rgba(71, 71, 65, 1);
        }
        .modal-body::-webkit-scrollbar-track {
            background: transparent;
        }
        .modal-body::-webkit-scrollbar-button {
            display: none;
            height: 0;
            width: 0;
        }
        
        .modal-text {
            font-family: 'Source Han Serif', 'SimSun', '宋体', 'STSong', '华文宋体', 'NSimSun', '新宋体', 'Times New Roman', 'Times', 'serif' !important;
            font-size: 16px;
        }
        
        .modal-text > div[style*='font-weight:bold'] {
            font-size: 16px !important;
        }
        
        .modal-close {
            position: sticky;
            position: -webkit-sticky;
            bottom: 0;
            left: 0;
            width: 100%;
            border-radius: 0 0 12px 12px;
            background: var(--color-main-accent);
            color: var(--color-main-text);
            border: none;
            padding: 14px 0;
            font-size: 18px;
            cursor: pointer;
            margin: 0;
            z-index: 2;
            text-align: center;
            transition: all 0.3s;
            font-family: 'Source Han Serif', 'SimSun', '宋体', 'STSong', '华文宋体', 'NSimSun', '新宋体', 'Times New Roman', 'Times', 'serif' !important;
            font-weight: bold;
            letter-spacing: 2px;
        }
        
        .modal-close:hover {
            background: var(--color-main-accent);
            transform: translateY(-2px);
            box-shadow: 0 4px 10px rgba(0,0,0,0.15);
        }
        #help-fab {
            position: fixed;
            right: 18px;
            top: 18px;
            width: auto;
            height: auto;
            padding: 0;
            border: none;
            background: none;
            color: var(--color-main-accent);
            font-size: 16px;
            z-index: 100;
            cursor: pointer;
            box-shadow: none;
            display: flex;
            align-items: center;
            justify-content: center;
            transition: color 0.2s;
        }
        #help-fab:hover {
            color: var(--color-main-text);
        }
        #usage-indicator-fixed,
        #help-fab {
            color: var(--color-main-accent);
        }
        /* 1. 硬币翻转5圈动画 */
        .circle-icon.flipping {
            animation: flip-bounce-5 0.9s linear;
            will-change: transform;
        }
        @keyframes flip-bounce-5 {
            0% { transform: rotateY(0deg) translateY(0); }
            13% { transform: rotateY(390deg) translateY(-23px); }
            17% { transform: rotateY(510deg) translateY(-25px); } /* 顶端缓动 */
            21% { transform: rotateY(630deg) translateY(-23px); }
            30% { transform: rotateY(900deg) translateY(0); }
            38% { transform: rotateY(1140deg) translateY(-10px); }
            42% { transform: rotateY(1260deg) translateY(-11px); } /* 顶端缓动 */
            46% { transform: rotateY(1380deg) translateY(-10px); }
            50% { transform: rotateY(1500deg) translateY(0); }
            53% { transform: rotateY(1590deg) translateY(-2px); }
            57% { transform: rotateY(1710deg) translateY(-3px); } /* 顶端缓动 */
            61% { transform: rotateY(1830deg) translateY(-2px); }
            65% { transform: rotateY(1950deg) translateY(0); }
            100% { transform: rotateY(2700deg) translateY(0); }
        }

        /* 2. 卦爻线生成上下翻转动画 */
        .divination-line.new-line {
            animation: line-flip-in 0.22s ease-in;
            perspective: 600px;
            transform-style: preserve-3d;
        }
        @keyframes line-flip-in {
            0% { transform: rotateX(-90deg) scaleY(0.7); opacity: 0; }
            60% { transform: rotateX(20deg) scaleY(1.08); opacity: 0.7; }
            100% { transform: rotateX(0deg) scaleY(1); opacity: 1; }
        }

        /* 3. 卜按钮动画（去掉ripple光圈）
        const buBtn = document.getElementById('btn-bu');
        buBtn.addEventListener('click', function(e) {
            buBtn.classList.add('animate-press');
            setTimeout(() => {
                buBtn.classList.remove('animate-press');
            }, 350);
        }); */

        /* 4. 全局氛围光晕 */
        #divine-overlay {
            position: fixed;
            left: 0; top: 0; right: 0; bottom: 0;
            background: radial-gradient(circle at 50% 40%, #ffe06622 0%, var(--color-main-bg) 80%);
            pointer-events: none;
            opacity: 0;
            transition: opacity 0.5s cubic-bezier(.4,1,.7,1);
            z-index: 999;
        }
        #divine-overlay.active {
            opacity: 1;
        }

        .ripple {
            position: absolute;
            top: 50%;
            left: 50%;
            transform: translate(-50%, -50%);
            width: 120px;
            height: 120px;
            border-radius: 50%;
            border: 1.6px solid var(--color-main-card);
            animation: ripple-effect 0.8s ease-out;
            pointer-events: none;
        }

        .ripple.invalid {
            border-color: var(--color-main-card);
            animation: ripple-effect-invalid 0.8s ease-out;
        }

        @keyframes ripple-effect {
            0% {
                width: 120px;
                height: 120px;
                opacity: 1;
                border-width: 2px;
            }
            100% {
                width: 280px;
                height: 280px;
                opacity: 0;
                border-width: 1px;
            }
        }

        @keyframes ripple-effect-invalid {
            0% {
                width: 120px;
                height: 120px;
                opacity: 1;
                border-width: 2px;
            }
            100% {
                width: 240px;
                height: 240px;
                opacity: 0;
                border-width: 1px;
            }
        }
        .divination-line.line-pending {
            background-color: var(--color-main-card) !important;
            color: #888a7a !important;
            opacity: 1;
        }
        #usage-indicator-fixed.usage-indicator-warning {
            color: var(--color-main-bg) !important;
            background: var(--color-main-text) !important;
            font-weight: normal;
            text-shadow: none;
            border-radius: 8px;
            padding: 2px 12px;
            transition: background 0.2s, color 0.2s;
        }
        @keyframes btn-shake {
            0%, 100% { transform: scale(0.45) translateX(0); }
            10%, 30%, 50%, 70%, 90% { transform: scale(0.45) translateX(-6px); }
            20%, 40%, 60%, 80% { transform: scale(0.45) translateX(6px); }
        }
        .btn-shaking {
            animation: btn-shake 0.4s infinite linear;
        }
        @keyframes btn-shake-light {
            0%, 100% { --shake-x: 0; }
            20%, 60% { --shake-x: calc(-1 * var(--shake-amp, 2.5px)); }
            40%, 80% { --shake-x: var(--shake-amp, 2.5px); }
        }
        .btn-shaking-light {
            animation: btn-shake-light 0.5s infinite linear;
        }
        @keyframes btn-shake-strong {
            0%, 100% { --shake-x: 0; }
            10%, 30%, 50%, 70%, 90% { --shake-x: calc(-1 * var(--shake-amp, 8px)); }
            20%, 40%, 60%, 80% { --shake-x: var(--shake-amp, 8px); }
        }
        .btn-shaking-strong {
            animation: btn-shake-strong 0.18s infinite linear;
        }
        #btn-bu {
            transform: scale(1) translateX(var(--shake-x, 0));
        }
        /* 硬币动画 */
        @keyframes coin-jump {
            0%   { transform: translateY(0); }
            10%  { transform: translateY(calc(var(--jump-scale,1) * -28px)); }
            17%  { transform: translateY(calc(var(--jump-scale,1) * -28px)); }
            21%  { transform: translateY(calc(var(--jump-scale,1) * -28px)); } /* 第一次顶端缓动更久 */
            25%  { transform: translateY(0); }
            30%  { transform: translateY(calc(var(--jump-scale,1) * -9.8px)); }
            37%  { transform: translateY(calc(var(--jump-scale,1) * -9.8px)); }
            41%  { transform: translateY(calc(var(--jump-scale,1) * -9.8px)); } /* 第二次顶端缓动更久 */
            45%  { transform: translateY(0); }
            50%  { transform: translateY(calc(var(--jump-scale,1) * -3.43px)); }
            57%  { transform: translateY(calc(var(--jump-scale,1) * -3.43px)); }
            61%  { transform: translateY(calc(var(--jump-scale,1) * -3.43px)); } /* 第三次顶端缓动更久 */
            65%  { transform: translateY(0); }
            70%  { transform: translateY(calc(var(--jump-scale,1) * -1.20px)); }
            72%  { transform: translateY(calc(var(--jump-scale,1) * -1.20px)); } /* 第四次顶端缓动更久 */
            74%  { transform: translateY(0); }
            100% { transform: translateY(0); }
        }

        @keyframes coin-spin {
            0% { transform: rotateY(0deg); }
            100% { transform: rotateY(var(--spin-deg,3600deg)); }
        }

        .coin-anim-spin {
            animation: coin-spin var(--spin-duration,1.6s) cubic-bezier(.7,1,1,1) forwards;
        }

        /* 消除冗余动画定义 */
        .coin-anim-spin1 { --spin-duration: 1.6s; animation: coin-spin var(--spin-duration) cubic-bezier(.7,1,1,1) forwards; }
        .coin-anim-spin2 { --spin-duration: 1.9s; animation: coin-spin var(--spin-duration) cubic-bezier(.7,1,1,1) forwards; }
        .coin-anim-spin3 { --spin-duration: 2.2s; animation: coin-spin var(--spin-duration) cubic-bezier(.7,1,1,1) forwards; }

        .coin-anim-jump {
            animation: coin-jump 0.8s cubic-bezier(.85,0,.15,1) 0s 1 both;
        }
        /* 硬币动画相关样式 */
        .coin-wrapper {
            position: relative;
            width: 40px;
            height: 40px;
            perspective: 1000px;
        }

        .circle-icon {
            width: 40px;
            height: 40px;
            border-radius: 50%;
            display: flex;
            align-items: center;
            justify-content: center;
            font-size: 16px;
            background-color: var(--color-main-card);
            color: var(--color-main-text);
            border: 2.0px solid var(--color-main-card);
            transform-style: preserve-3d;
            backface-visibility: hidden;
            position: relative;
        }

        /* 添加硬币正面和背面 */
        .circle-icon::before,
        .circle-icon::after {
            content: '';
            position: absolute;
            width: 100%;
            height: 100%;
            border-radius: 50%;
            background-color: var(--color-main-accent);
            border: 2.0px solid var(--color-main-accent);
            backface-visibility: hidden;
            display: flex;
            align-items: center;
            justify-content: center;
            font-size: 24px;
            transition: opacity 0.3s ease;
        }

        .circle-icon::before {
            transform: translateZ(2px);
            content: '阳';
        }

        .circle-icon::after {
            transform: translateZ(-2px) rotateY(180deg);
            content: '阴';
        }

        /* 添加硬币侧面 */
        .circle-icon .coin-edge {
            position: absolute;
            width: 100%;
            height: 4px;
            background-color: var(--color-main-accent);
            border: 2.0px solid var(--color-main-accent);
            left: 0;
            top: 50%;
            transform: translateY(-50%) rotateX(90deg);
            transform-origin: center center;
        }

        .circle-icon[data-result] {
            font-size: 24px;
            background-color: var(--color-main-accent);
        }

        /* 确保文字在正面 */
        .circle-icon span {
            position: relative;
            z-index: 1;
            transform: translateZ(3px);
        }

        /* 修改旋转动画，添加字符透明度变化 */
        @keyframes coin-spin {
            0% { 
                transform: rotateY(0deg);
            }
            100% { 
                transform: rotateY(var(--spin-deg,3600deg));
            }
        }

        .coin-anim-spin {
            animation: coin-spin var(--spin-duration,1.6s) cubic-bezier(.7,1,1,1) forwards;
        }

        /* 添加旋转时字符透明度变化 */
        .coin-anim-spin::before,
        .coin-anim-spin::after {
            opacity: 0.5;
        }

        /* 旋转结束后恢复透明度 */
        .circle-icon[data-result]::before,
        .circle-icon[data-result]::after {
            opacity: 1;
        }

        .action-button-wrapper {
            position: relative;
            display: inline-block;
            height: 120px;
            border: none !important;
            outline: none !important;
        }
        #simple-hexagram-lines {
            font-family: 'Consolas', 'Courier New', monospace !important;
            text-align: center;
        }
        /* 新增：按钮不可用样式（不再用disabled属性） */
        .action-button.is-disabled {
            opacity: 0.22 !important;
            cursor: not-allowed;
            pointer-events: auto;
            border-color: var(--color-main-card) !important;
            color: #888a7a !important;
            background-color: var(--color-main-card) !important;
            box-shadow: none;
        }

        .action-button.is-disabled:hover {
            background-color: rgba(var(--color-main-text,254,255,221), 0.05) !important;
        }

        .action-button.is-disabled:active {
            transform: scale(0.95);
            background-color: rgba(var(--color-main-text,254,255,221), 0.1) !important;
        }
        /* 新增：长按弹起更明显的涟漪动画 */
        .ripple.longpress {
            animation: ripple-effect-long 1.2s ease-out;
        }
        @keyframes ripple-effect-long {
            0% {
                width: 120px;
                height: 120px;
                opacity: 1;
                border-width: 2px;
            }
            100% {
                width: 400px;
                height: 400px;
                opacity: 0;
                border-width: 1px;
            }
        }
        /* 全局滚动条美化 */
        ::-webkit-scrollbar {
            width: 8px;
            background: var(--color-main-card);
        }
        ::-webkit-scrollbar-thumb {
            background: rgba(71, 71, 65, 1);
            border-radius: 8px;
            border: 2px solid var(--color-main-card);
            transition: background 0.2s;
        }
        ::-webkit-scrollbar-thumb:hover {
            background: rgba(71, 71, 65, 1);
        }
        ::-webkit-scrollbar-corner {
            background: var(--color-main-card);
        }
        /* Firefox */
        html {
            scrollbar-width: thin;
            scrollbar-color: var(--color-main-accent)var(--color-main-card);
        }
        .analysis-content, .conclusion-content {
            text-align: justify;
            text-justify: inter-ideograph;
            line-height: 1.8;
        }
        .question-container:focus-within .question-input {
    border-color: var(--color-main-accent) !important;
}

        .tab-active {
            background: none !important;
            color: var(--color-main-text) !important;
            font-weight: bold;
            border-radius: 0;
            text-decoration: none;
            transition: none;
        }

        /* 主题选择按钮样式 */
        .theme-selector-button {
            padding: 12px 20px; /* 调整内边距以适应更多按钮 */
            border-radius: 8px;
            border: none;
            font-size: 16px;
            cursor: pointer;
            transition: transform 0.2s ease-out, background-color 0.2s ease-out, color 0.2s ease-out;
            min-width: 70px; /* 给按钮一个最小宽度 */
            text-align: center;
            font-weight: bold;
            box-shadow: 0 2px 8px rgba(0,0,0,0.1);
        }

        .theme-btn-default {
            background-color: #545558; /* 深灰主题强调色 */
            color: #feffdd; /* 深灰主题文本色 */
        }
        .theme-btn-default:hover {
            filter: brightness(1.1);
        }

        .theme-btn-mibai {
            background-color: #EADDC5; /* 米白主题卡片色 */
            color: #3E2F1C;       /* 米白主题文本色 */
        }
        .theme-btn-mibai:hover {
            filter: brightness(1.05);
        }

        .theme-btn-bogreen {
            background-color: #77AF7A; /* 薄绿主题强调色 */
            color: #FFFFFF;       /* 薄绿主题用白色文本以保证对比度 */
        }
        .theme-btn-bogreen:hover {
            filter: brightness(1.1);
        }

        .theme-button-active {
            transform: scale(1.1);
            box-shadow: 0 0 12px rgba(0,0,0,0.3);
        }

        /* 调整标签页容器样式 */
        .modal-content > div:first-child {
            padding: 8px 20px; /* 增加左右内边距 */
            border-bottom: 1.6px solid var(--color-main-accent);
            display: flex;
            flex-direction: row;
            align-items: center; /* 确保标签页垂直居中 */
            justify-content: space-between;
        }
        
        /* 调整标签页样式 */
        .modal-content > div:first-child > div {
            flex: 1;
            text-align: center;
            font-size: 17px; /* 微调字体大小 */
            font-weight: bold;
            cursor: pointer;
            padding: 10px 0; /* 增加垂直内边距 */
            background: none;
            border: none;
            transition: color 0.2s;
        }

        /* 调整活动标签页样式 */
        .modal-content > div:first-child > div.tab-active {
            color: var(--color-main-text) !important;
            font-weight: bold;
        }

        /* 确保弹窗内容区域的内边距 */
        #intro-tab-content, #history-list {
             padding: 5px;
             transition: all 0.3s ease;
        }

        /* 确保历史记录和留言列表项的内边距 */
        #history-list > div, .wishes-list > div {
             padding: 12px 8px !important; /* 保持列表项内边距 */
             margin-bottom: 14px !important;
        }

        /* 调整历史记录和留言列表的容器样式 */
        #history-list, .wishes-list {
             margin-top: 0 !important;
        }

        /* 增加弹窗内容的页边距 */
        #intro-tab-content, .modal-body {
            padding: 30px 32px !important;
            line-height: 1.8;
            letter-spacing: 0.5px;
        }

        .modal-content {
            max-width: 94vw !important;
            width: 580px !important;
        }

        /* 增加文本区域内容的页边距和行距 */
        #intro-tab-content p, .modal-body p, #analysis-content p {
            margin-bottom: 15px;
            line-height: 1.8;
        }

        .analysis-box {
            padding: 15px 25px;
            text-align: left;
        }

        /* 修改文本大小 */
        #intro-tab-content, .modal-body, #analysis-content {
            font-size: 16px;
        }

        /* 为米白主题增加特殊样式覆盖 */
        .theme-mibai .action-button {
            background-color: #E5D5B7 !important;
            color: #4C0202 !important;
            border-color: #D3AB88 !important;
        }

        /* 特别为分享和再卜一卦按钮添加样式 */
        .theme-mibai #btn-share,
        .theme-mibai #btn-again,
        .theme-mibai #again-row .action-button {
            background-color: #E5D5B7 !important;
            color: #4C0202 !important;
            border: none !important;
            outline: none !important;
        }

        /* 增加米白主题下的文字对比度 */
        .theme-mibai #intro-tab-content, 
        .theme-mibai .modal-body {
            color: #3E2F1C !important;
        }

        /* 增加按钮的边距，使其不会太靠近文本底部 */
        #intro-tab-content + div {
            margin-top: 25px !important;
        }

        /* 专门为米白主题下的已阅按钮添加特殊样式，确保与内容区域有足够的对比度 */
        .theme-mibai .modal-content .modal-close {
            background-color: #A6834D !important;
            color: #FDF6E3 !important;
            font-weight: bold;
            box-shadow: 0 3px 8px rgba(0,0,0,0.2) !important;
            letter-spacing: 4px;
            transition: all 0.3s ease;
        }

        .theme-mibai .modal-close:hover {
            background-color: #C4A661 !important;
            transform: translateY(-3px);
            box-shadow: 0 5px 12px rgba(0,0,0,0.25) !important;
        }

        /* 专门为米白主题下的写留言按钮添加样式 */
        .theme-mibai .write-wish-btn {
            background-color: #A6834D !important;
            color: #FDF6E3 !important;
            font-weight: bold;
            border-radius: 8px !important;
            box-shadow: 0 3px 8px rgba(0,0,0,0.2) !important;
            transition: all 0.3s ease;
            letter-spacing: 2px;
            border: none !important;
        }

        .theme-mibai .write-wish-btn:hover {
            background-color: #C4A661 !important;
            transform: translateY(-3px);
            box-shadow: 0 5px 12px rgba(0,0,0,0.25) !important;
        }

        /* 薄绿主题写留言按钮样式 */
        .theme-bogreen .write-wish-btn {
            background-color: #77AF7A !important;
            color: #3F543B !important;
            font-weight: bold;
            border-radius: 8px !important;
            border: none !important;
        }

        /* 强制所有write-wish-btn按钮没有边框 */
        .write-wish-btn, 
        button.write-wish-btn,
        #add-wish-fab {
            border: none !important;
            outline: none !important;
        }

        .analysis-content ol,
        .conclusion-content ol {
            list-style-type: none;
            margin-left: 0;
            padding-left: 0;
        }

        .analysis-content ol li::before,
        .conclusion-content ol li::before {
            display: none;
        }

        .analysis-content .point::before,
        .conclusion-content .point::before {
            display: none;
        }

        .analysis-content span[style*='font-weight:bold'] ~ ol,
        .conclusion-content span[style*='font-weight:bold'] ~ ol {
            padding-left: 0;
            margin-left: 0;
        }

        /* 移除数字序号显示 */
        .analysis-content ol > li,
        .conclusion-content ol > li {
            list-style: none;
            text-indent: 0;
        }

        /* 特别处理带序号的段落 */
        .analysis-content p:has(> span:first-child) span:first-child,
        .conclusion-content p:has(> span:first-child) span:first-child {
            display: none;
        }

        /* 处理带圆圈数字的内容 */
        .analysis-content span:has(> strong:first-child),
        .conclusion-content span:has(> strong:first-child) {
            display: none;
        }

        .analysis-content strong:first-child,
        .conclusion-content strong:first-child {
            display: none;
        }

        /* 隐藏①②③等序号符号 */
        .analysis-content span.circle-number,
        .conclusion-content span.circle-number,
        .hexagram-content span.circle-number {
            display: none;
        }

        /* 隐藏特定格式的序号 */
        .conclusion-content strong,
        .hexagram-content strong,
        .analysis-content strong {
            font-weight: normal;
        }

        /* 隐藏序号和括号 */
        .conclusion-content span,
        .analysis-content span {
            font-weight: normal;
        }

        /* 移除序号的更通用方法 */
        .conclusion-content,
        .analysis-content {
            counter-reset: item;
        }

        .conclusion-content ol li,
        .analysis-content ol li {
            position: relative;
            padding-left: 0;
            margin-bottom: 10px;
            counter-increment: item;
            list-style: none;
        }

        /* 隐藏带圆括号的序号 */
        .conclusion-content p,
        .analysis-content p {
            position: relative;
        }

        .conclusion-content div > span:first-child,
        .analysis-content div > span:first-child {
            font-weight: normal !important;
        }

        /* 直接处理序号 */
        .conclusion-content span:first-child,
        .analysis-content span:first-child {
            display: inline-block;
        }

        /* 移除圆圈数字样式并隐藏 */
        .conclusion-content span:first-child strong,
        .analysis-content span:first-child strong {
            display: none;
        }

        /* 添加专门针对①②③的处理 */
        .conclusion-content span,
        .analysis-content span {
            font-size: inherit;
        }

        /* 这个规则将隐藏起始位置的①②③等字符 */
        .conclusion-content p:first-child,
        .analysis-content p:first-child {
            position: relative;
        }

        /* 特别处理带序号的文字 */
        .analysis-content div, 
        .conclusion-content div {
            text-indent: 0;
        }

        /* 直接通过JavaScript处理文本内容, 添加必要的钩子样式 */
        .digit-number-hook {
            display: none !important;
        }

        /* 删除这个选择器，不受支持 */
        .conclusion-content span:first-child:contains("①"),
        .conclusion-content span:first-child:contains("②"),
        .conclusion-content span:first-child:contains("③"),
        .analysis-content span:first-child:contains("①"),
        .analysis-content span:first-child:contains("②"),
        .analysis-content span:first-child:contains("③") {
            visibility: hidden;
            display: none;
        }

        /* 直接通过CSS隐藏常见的序号格式 */
        .conclusion-content span,
        .analysis-content span,
        .hexagram-content span {
            position: relative;
        }

        /* 隐藏圆圈数字 */
        .conclusion-content span:first-child,
        .analysis-content span:first-child,
        .hexagram-content span:first-child {
            color: transparent;
        }

        /* 隐藏带格式的数字序号 */
        .conclusion-content p > strong:first-child,
        .analysis-content p > strong:first-child,
        .hexagram-content p > strong:first-child {
            opacity: 0;
            font-size: 0;
        }

        /* 隐藏开头的数字和点 */
        .conclusion-content p,
        .analysis-content p,
        .hexagram-content p {
            text-indent: 0;
        }

        /* 优化显示效果，增加段落间距 */
        .conclusion-content p,
        .analysis-content p,
        .hexagram-content p {
            margin-bottom: 1.2em;
        }

        /* 处理红框标记的特定区域 */
        .analysis-content p span,
        .conclusion-content p span {
            display: inline;
            font-weight: normal !important;
        }

        /* 为红框中数字专门设置规则 - 移除:has选择器 */
        .analysis-content p span > strong,
        .conclusion-content p span > strong {
            display: none;
        }

        .analysis-content p span:first-child,
        .conclusion-content p span:first-child {
            color: transparent;
            font-size: 0;
            display: inline-block;
            width: 0;
            height: 0;
            overflow: hidden;
        }

        /* 特别针对圆圈序号的处理 */
        .conclusion-content p:nth-child(1),
        .conclusion-content p:nth-child(2),
        .conclusion-content p:nth-child(3) {
            position: relative;
            padding-left: 0;
        }

        /* 专门处理红框中的分点内容 */
        .conclusion-content {
            position: relative;
        }

        /* 禁用CircleNumber样式 */
        span[class*="circle-number"],
        span[class*="circleNumber"] {
            display: none !important;
            visibility: hidden !important;
        }

        /* 清除段落前的所有特殊符号和序号 */
        .conclusion-content p::before {
            content: none !important;
        }

        /* 禁用所有在<p>标签开头可能的序号 */
        .conclusion-content p > *:first-child::before {
            content: none !important;
        }

        /* 强制清除红框区域内的序号样式 */
        .conclusion-content p strong,
        .conclusion-content p b,
        .conclusion-content p span {
            font-weight: normal !important;
        }

        /* 调整内容间距，使其更美观 */
        .conclusion-content p {
            margin-top: 0.8em;
            text-indent: 0 !important;
        }

        /* 全局输入框样式，修复边框问题 */
input[type="text"]:not(.question-input),
input[type="password"],
input[type="email"],
input[type="number"],
textarea {
    border: 2px solid var(--color-main-accent) !important;
    outline: none !important;
    box-shadow: none !important;
    -webkit-appearance: none !important;
    -moz-appearance: none !important;
    appearance: none !important;
    background-color: var(--color-main-bg) !important;
    color: var(--color-main-text) !important;
    border-radius: 8px !important;
}

        /* 激活码输入框特殊样式 */
        #activation-input {
            width: 100%;
            padding: 10px 15px;
            font-size: 16px;
            margin-bottom: 20px;
            border: 2px solid var(--color-main-accent) !important;
            outline: none !important;
            box-shadow: none !important;
            background-color: var(--color-main-bg) !important;
            color: var(--color-main-text) !important;
            -webkit-appearance: none !important;
            -moz-appearance: none !important;
            appearance: none !important;
            border-radius: 8px !important;
        }

        /* 修复激活码模态框中的输入背景色 */
        #activation-modal input {
            background-color: var(--color-main-bg) !important;
            border: 2px solid var(--color-main-accent) !important;
            outline: none !important;
            box-shadow: none !important;
            -webkit-appearance: none !important;
            -moz-appearance: none !important;
            appearance: none !important;
            color: var(--color-main-text) !important;
        }

        /* 为米白主题特别处理激活码输入框 */
        .theme-mibai #activation-input,
        .theme-mibai #activation-modal input {
            background-color: #FDF6E3 !important;
            border-color: #D3AB88 !important;
            color: #4C0202 !important;
        }

        /* 为薄绿主题特别处理激活码输入框 */
        .theme-bogreen #activation-input,
        .theme-bogreen #activation-modal input {
            background-color: #AACC97 !important;
            border-color: #77AF7A !important;
            color: #3F543B !important;
        }

        /* 主题特定的问题输入框样式 */
        .theme-mibai .question-input {
            border-color: var(--color-main-accent) !important;
            background-color: var(--color-main-bg) !important;
            color: var(--color-main-text) !important;
        }

        .theme-bogreen .question-input {
            border-color: var(--color-main-accent) !important;
            background-color: var(--color-main-bg) !important;
            color: var(--color-main-text) !important;
        }

        .question-input:focus {
            border-color: var(--color-main-accent) !important;
        }

        /* 为激活码错误信息添加主题特定样式 */
        #activation-msg {
            margin-top: 18px;
            font-size: 15px;
            text-align: center;
            transition: color 0.3s;
        }

        /* 默认主题下的错误信息 */
        #activation-msg.error-message {
            color: var(--color-accent-red) !important;
        }

        #activation-msg.success-message {
            color: var(--color-accent-green) !important;
        }

        /* 为米白主题特别处理错误信息颜色 */
        .theme-mibai #activation-msg.error-message {
            color: #E57373 !important;
        }

        .theme-mibai #activation-msg.success-message {
            color: #4CAF50 !important;
        }

        /* 为薄绿主题特别处理错误信息颜色 */
        .theme-bogreen #activation-msg.error-message {
            color: #D32F2F !important;
        }

        .theme-bogreen #activation-msg.success-message {
            color: #388E3C !important;
        }

