* { margin: 0; padding: 0; box-sizing: border-box; } body { font-family: 'Segoe UI', Tahoma, Geneva, Verdana, sans-serif; background-color: #f5f5f5; color: #333; } .container { width: 100%; min-height: 100vh; background: white; border-radius: 0; overflow: hidden; } .header { background: linear-gradient(135deg, #4caf50, #66bb6a); color: white; padding: 16px; text-align: center; } .header h1 { font-size: 18px; font-weight: 600; } .search-section { padding: 16px; border-bottom: 1px solid #eee; background: #fafafa; } .search-form { display: flex; gap: 8px; } #keyword-input { flex: 1; padding: 10px 12px; border: 2px solid #ddd; border-radius: 6px; font-size: 14px; outline: none; transition: border-color 0.3s ease; } #keyword-input:focus { border-color: #4caf50; } #search-btn { padding: 10px 16px; background: linear-gradient(135deg, #4caf50, #66bb6a); color: white; border: none; border-radius: 6px; cursor: pointer; font-size: 14px; font-weight: 500; transition: all 0.3s ease; min-width: 80px; } #search-btn:hover { background: linear-gradient(135deg, #45a049, #5db85d); transform: translateY(-1px); box-shadow: 0 4px 12px rgba(76, 175, 80, 0.3); } #search-btn:active { transform: translateY(0); } .region-row { display: flex; align-items: center; gap: 8px; margin-top: 10px; } .region-row label { font-size: 13px; font-weight: 500; color: #333; white-space: nowrap; } #region-select { flex: 1; padding: 8px 10px; border: 2px solid #ddd; border-radius: 6px; font-size: 13px; background: #fff; color: #333; outline: none; cursor: pointer; transition: border-color 0.3s ease; } #region-select:focus { border-color: #4caf50; } .region-custom-input { width: 100%; margin-top: 8px; padding: 8px 12px; border: 2px solid #ddd; border-radius: 6px; font-size: 13px; outline: none; transition: border-color 0.3s ease; } .region-custom-input:focus { border-color: #4caf50; } .region-custom-input[hidden] { display: none; } .region-hint { display: block; margin-top: 6px; color: #888; font-size: 11px; line-height: 1.4; } .auto-click-controls { margin-top: 12px; text-align: center; } .auto-click-btn { padding: 8px 16px; background: linear-gradient(135deg, #4caf50, #66bb6a); color: white; border: none; border-radius: 6px; cursor: pointer; font-size: 13px; font-weight: 500; transition: all 0.3s ease; width: 100%; } .auto-click-btn:hover { background: linear-gradient(135deg, #45a049, #5db85d); transform: translateY(-1px); box-shadow: 0 4px 12px rgba(76, 175, 80, 0.3); } .auto-click-btn:active { transform: translateY(0); } .test-btn { padding: 8px 16px; background: linear-gradient(135deg, #2196f3, #42a5f5); color: white; border: none; border-radius: 6px; cursor: pointer; font-size: 13px; font-weight: 500; transition: all 0.3s ease; width: 100%; margin-top: 8px; } .test-btn:hover { background: linear-gradient(135deg, #1976d2, #1e88e5); transform: translateY(-1px); box-shadow: 0 4px 12px rgba(33, 150, 243, 0.3); } .test-btn:active { transform: translateY(0); } .click-mode-selector { margin-top: 12px; padding: 12px; background: #f8f9fa; border-radius: 6px; border: 1px solid #e9ecef; } .click-mode-selector label { display: flex; align-items: center; gap: 8px; font-size: 13px; font-weight: 500; color: #333; cursor: pointer; } .click-mode-selector input[type="checkbox"] { width: 16px; height: 16px; accent-color: #4caf50; } .click-mode-selector small { display: block; margin-top: 6px; color: #666; font-size: 11px; line-height: 1.4; } /* 评论间隔配置 */ .delay-config { margin-top: 12px; padding: 12px; background: #f8f9fa; border-radius: 6px; border: 1px solid #e9ecef; } .delay-label { display: block; font-size: 13px; font-weight: 500; color: #333; margin-bottom: 8px; } .delay-inputs { display: flex; align-items: center; gap: 8px; } .delay-input { flex: 1; min-width: 0; padding: 8px 10px; border: 1px solid #ddd; border-radius: 6px; font-size: 13px; outline: none; text-align: center; } .delay-input:focus { border-color: #4caf50; } .delay-sep { color: #999; font-size: 13px; } .delay-unit { font-size: 12px; color: #666; white-space: nowrap; } .delay-config small { display: block; margin-top: 6px; color: #666; font-size: 11px; line-height: 1.4; } .mode-selector { margin-top: 12px; padding: 12px; background: #f8f9fa; border-radius: 6px; border: 1px solid #e9ecef; } .mode-label { font-size: 13px; font-weight: 500; color: #333; margin-bottom: 8px; } .mode-options { display: flex; flex-wrap: wrap; gap: 8px; } .mode-option { flex: 1 1 calc(50% - 8px); display: flex; align-items: center; justify-content: center; gap: 6px; padding: 8px 6px; border: 1px solid #ddd; border-radius: 6px; background: #fff; font-size: 13px; color: #555; cursor: pointer; user-select: none; transition: all 0.2s ease; } .mode-option input { accent-color: #4caf50; } .mode-option:has(input:checked) { border-color: #4caf50; background: #e8f5e9; color: #2e7d32; font-weight: 600; } .mode-selector small { display: block; margin-top: 8px; color: #666; font-size: 11px; line-height: 1.5; } .mode-selector small.warn { color: #e65100; background: #fff3e0; border-left: 3px solid #ff9800; padding: 4px 6px; border-radius: 3px; } .comment-config { margin-top: 12px; padding: 12px; background: #f8f9fa; border-radius: 6px; border: 1px solid #e9ecef; } .comment-config label { display: block; font-size: 13px; font-weight: 500; color: #333; margin-bottom: 8px; } .comment-config input[type="text"] { width: 100%; padding: 8px 12px; border: 1px solid #ddd; border-radius: 4px; font-size: 13px; margin-top: 4px; } .comment-config input[type="text"]:focus { border-color: #4caf50; outline: none; } .ai-config { display: flex; gap: 8px; margin-top: 8px; } .api-key-input { flex: 1; padding: 8px 12px; border: 1px solid #ddd; border-radius: 4px; font-size: 13px; } .api-key-input:focus { border-color: #4caf50; outline: none; } .test-ai-btn { padding: 8px 12px; background: linear-gradient(135deg, #9c27b0, #ba68c8); color: white; border: none; border-radius: 4px; cursor: pointer; font-size: 12px; transition: all 0.3s ease; white-space: nowrap; } .test-ai-btn:hover { background: linear-gradient(135deg, #7b1fa2, #9c27b0); transform: translateY(-1px); } .test-result-row { display: flex; align-items: center; min-height: 16px; margin-top: 4px; } .action-status-row { display: flex; align-items: center; min-height: 16px; margin-top: 6px; text-align: left; } .action-status { font-size: 12px; line-height: 1.4; word-break: break-all; } .action-status.ok { color: #2e7d32; } .action-status.fail { color: #c62828; } .test-ai-result { font-size: 12px; line-height: 1.4; word-break: break-all; } .test-ai-result.ok { color: #2e7d32; } .test-ai-result.fail { color: #c62828; } .ai-status { display: flex; align-items: center; gap: 8px; margin-top: 8px; padding: 8px; background: #f8f9fa; border-radius: 4px; font-size: 12px; } .status-indicator { font-size: 14px; } .status-text { color: #666; } .comment-config small { display: block; margin-top: 6px; color: #666; font-size: 11px; line-height: 1.4; } /* Prompt config styles */ .prompt-config { margin-top: 12px; padding: 12px; background: #f8f9fa; border-radius: 6px; border: 1px solid #e9ecef; } .prompt-config label { display: block; font-size: 13px; font-weight: 500; color: #333; margin-bottom: 8px; } .prompt-textarea { width: 100%; padding: 8px 12px; border: 1px solid #ddd; border-radius: 4px; font-size: 13px; font-family: inherit; resize: vertical; } .prompt-textarea:focus { border-color: #4caf50; outline: none; } .prompt-actions { display: flex; gap: 8px; margin-top: 8px; } .save-prompt-btn { padding: 8px 12px; background: linear-gradient(135deg, #4caf50, #66bb6a); color: white; border: none; border-radius: 4px; cursor: pointer; font-size: 12px; transition: all 0.3s ease; white-space: nowrap; } .save-prompt-btn:hover { background: linear-gradient(135deg, #45a049, #5db85d); transform: translateY(-1px); } .reset-prompt-btn { padding: 8px 12px; background: #f0f0f0; color: #333; border: none; border-radius: 4px; cursor: pointer; font-size: 12px; transition: all 0.3s ease; white-space: nowrap; } .reset-prompt-btn:hover { background: #e0e0e0; } .info-section { padding: 16px; background: white; } /* 自定义文字库面板 */ .text-comment-config, .text-comment-config label, .text-comment-config small, .panel-count { font-size: 12px; color: #666; align-self: center; } /* 免费获取模型 KEY 引导横幅 */ .ai-key-guide { display: block; margin-top: 12px; padding: 10px 12px; background: linear-gradient(135deg, #ff6f00, #ff9800); color: #fff; border-radius: 6px; font-size: 13px; font-weight: 600; text-decoration: none; text-align: center; box-shadow: 0 2px 8px rgba(255, 152, 0, 0.4); transition: all 0.2s ease; animation: ai-guide-glow 2s ease-in-out infinite; } .ai-key-guide:hover { background: linear-gradient(135deg, #e65100, #ff6f00); transform: translateY(-1px); box-shadow: 0 4px 12px rgba(255, 111, 0, 0.5); color: #fff; } .ai-key-guide-cta { display: inline-block; padding: 1px 8px; margin: 0 2px; background: #fff; color: #e65100; border-radius: 10px; font-weight: 700; } @keyframes ai-guide-glow { 0%, 100% { box-shadow: 0 2px 8px rgba(255, 152, 0, 0.4); } 50% { box-shadow: 0 2px 16px rgba(255, 111, 0, 0.7); } } /* 评论记录面板 */ .log-section { padding: 16px; border-bottom: 1px solid #eee; background: #fff; } .log-header { display: flex; align-items: center; justify-content: space-between; margin-bottom: 10px; } .log-header h3 { color: #4caf50; font-size: 16px; } .log-refresh-btn { padding: 4px 12px; background: #f0f0f0; color: #333; border: none; border-radius: 4px; font-size: 12px; cursor: pointer; transition: background 0.2s ease; } .log-refresh-btn:hover { background: #e0e0e0; } .log-stats { display: flex; gap: 12px; margin-bottom: 10px; } .log-stat { flex: 1; text-align: center; padding: 8px 4px; background: #f8f9fa; border: 1px solid #e9ecef; border-radius: 6px; font-size: 12px; color: #666; } .log-stat strong { display: block; font-size: 18px; color: #2e7d32; margin-bottom: 2px; } .log-list { max-height: 320px; overflow-y: auto; border: 1px solid #eee; border-radius: 6px; } .log-empty { padding: 20px 12px; text-align: center; color: #999; font-size: 12px; } .log-item { display: flex; align-items: center; gap: 10px; padding: 10px 12px; border-bottom: 1px solid #f2f2f2; cursor: pointer; transition: background 0.15s ease; } .log-item:last-child { border-bottom: none; } .log-item:hover { background: #f1f8e9; } .log-item.no-url { cursor: default; opacity: 0.75; } .log-item.no-url:hover { background: #fff; } .log-thumb { width: 40px; height: 40px; border-radius: 4px; object-fit: cover; flex-shrink: 0; border: 1px solid #eee; background: #fafafa; } .log-item-body { flex: 1; min-width: 0; } .log-item-title { font-size: 13px; font-weight: 500; color: #333; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; } .log-item-comment { font-size: 12px; color: #666; margin-top: 2px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; } .log-item-meta { font-size: 11px; color: #999; margin-top: 2px; } .log-mode-tag { display: inline-block; padding: 0 5px; border-radius: 3px; background: #e8f5e9; color: #2e7d32; font-size: 10px; margin-right: 4px; } .log-open-icon { flex-shrink: 0; color: #4caf50; font-size: 14px; } /* 授权区块 */ .auth-section { padding: 12px 16px; background: #fff; border-bottom: 1px solid #eee; } .auth-status-row { display: flex; align-items: center; gap: 8px; margin-bottom: 10px; } .auth-badge { flex-shrink: 0; padding: 2px 10px; border-radius: 10px; font-size: 12px; font-weight: 600; background: #eee; color: #666; } .auth-badge.authorized { background: #e8f5e9; color: #2e7d32; } .auth-badge.trial { background: #fff3e0; color: #e65100; } .auth-badge.locked { background: #ffebee; color: #c62828; } .auth-badge.grace { background: #fff8e1; color: #f57f17; border: 1px solid #ffca28; } .coupon-bar { display: flex; align-items: center; justify-content: space-between; gap: 8px; margin-top: 8px; padding: 8px 10px; border: 1px dashed #ffab40; background: #fff8e1; border-radius: 8px; font-size: 12px; color: #7a4b00; line-height: 1.5; } .coupon-bar .coupon-text { flex: 1; min-width: 0; } .coupon-bar b { color: #e65100; } .coupon-copy-btn { flex-shrink: 0; border: none; background: #ff9800; color: #fff; font-size: 12px; font-weight: 600; padding: 5px 12px; border-radius: 6px; cursor: pointer; } .coupon-copy-btn:active { transform: scale(.96); } .auth-detail { font-size: 12px; color: #666; line-height: 1.4; word-break: break-all; } .auth-actions { display: flex; gap: 8px; } .card-key-input { flex: 1; min-width: 0; padding: 8px 10px; border: 1px solid #ddd; border-radius: 6px; font-size: 12px; outline: none; } .card-key-input:focus { border-color: #4caf50; } .activate-btn, .buy-btn { padding: 8px 12px; border: none; border-radius: 6px; font-size: 12px; font-weight: 500; cursor: pointer; white-space: nowrap; transition: all 0.2s ease; } .activate-btn { background: linear-gradient(135deg, #4caf50, #66bb6a); color: #fff; } .activate-btn:hover { background: linear-gradient(135deg, #45a049, #5db85d); } .buy-btn { background: linear-gradient(135deg, #ff9800, #ffb74d); color: #fff; } .buy-btn:hover { background: linear-gradient(135deg, #f57c00, #ff9800); } .pay-select-row { display: flex; align-items: center; gap: 8px; margin-top: 8px; } .pay-select-label { font-size: 12px; color: #666; } .pay-btn { padding: 6px 12px; border: 1px solid #ddd; border-radius: 6px; background: #fff; font-size: 12px; cursor: pointer; transition: all 0.2s ease; } .pay-btn:hover { border-color: #4caf50; color: #2e7d32; } .pay-cancel { color: #999; } .order-status { margin-top: 6px; font-size: 12px; line-height: 1.5; color: #555; word-break: break-all; } .order-status.ok { color: #2e7d32; } .order-status.fail { color: #c62828; } .announcement-box { margin-top: 10px; padding: 8px 10px; background: #f1f8e9; border: 1px solid #c5e1a5; border-radius: 6px; max-height: 140px; overflow-y: auto; } .announcement-title { font-size: 12px; font-weight: 600; color: #33691e; margin-bottom: 4px; } .announcement-item { font-size: 12px; color: #555; line-height: 1.5; padding: 4px 0; border-bottom: 1px dashed #dcedc8; word-break: break-all; } .announcement-item:last-child { border-bottom: none; } .announcement-item .announcement-time { color: #999; font-size: 11px; margin-right: 6px; } .info-content h3 { color: #4caf50; margin-bottom: 12px; font-size: 16px; } .info-content ul, .info-content ol { margin-left: 20px; margin-bottom: 16px; } .info-content li { margin-bottom: 8px; line-height: 1.5; } .info-content strong { color: #333; } .footer { padding: 16px; background: #f8f9fa; border-top: 1px solid #eee; text-align: center; } .version-info { display: flex; justify-content: space-between; color: #666; font-size: 12px; } /* 底部「获取最新版本」按钮 */ .latest-version-bar { padding: 16px; background: #fff; border-top: 1px solid #eee; text-align: center; } .latest-version-btn { display: block; padding: 14px 16px; background: linear-gradient(135deg, #ff2442, #ff5c57); color: #fff; border-radius: 10px; font-size: 17px; font-weight: 700; text-decoration: none; text-align: center; letter-spacing: 1px; box-shadow: 0 4px 14px rgba(255, 36, 66, 0.45); transition: all 0.2s ease; animation: latest-version-pulse 2.2s ease-in-out infinite; } .latest-version-btn:hover { background: linear-gradient(135deg, #e01030, #ff2442); transform: translateY(-2px); box-shadow: 0 6px 18px rgba(255, 36, 66, 0.55); color: #fff; } .latest-version-btn:active { transform: translateY(0); } .latest-version-tip { margin-top: 8px; font-size: 11px; color: #999; } @keyframes latest-version-pulse { 0%, 100% { box-shadow: 0 4px 14px rgba(255, 36, 66, 0.45); } 50% { box-shadow: 0 4px 22px rgba(255, 36, 66, 0.75); } }