:root { --amily2-bg-color: #2C2C2C; --amily2-button-color: #4A4A4A; --amily2-text-color: #E0E0E0; --amily2-bg-image: url('https://cdn.jsdelivr.net/gh/Wx-2025/ST-Amily2-images@main/images2/guigubahuang_2024-09-27_11-20-00_v2.png'); --amily2-bg-opacity: 0.85; } #amily2_drawer_content .flex-container { width: 100%; height: 100%; display: flex; flex-direction: column; } #amily2_chat_optimiser { position: relative; background: var(--amily2-bg-image) no-repeat center center !important; background-size: cover !important; z-index: 0; width: 100%; flex-grow: 1; overflow-y: auto; padding: 15px 20px; box-sizing: border-box; color: var(--amily2-text-color) !important; } #amily2_chat_optimiser::before { content: ''; position: absolute; top: 0; left: 0; right: 0; bottom: 0; background-color: var(--amily2-bg-color); opacity: var(--amily2-bg-opacity); z-index: -1; pointer-events: none; } #amily2_chat_optimiser #auth_panel { position: relative; background: transparent !important; z-index: 0; padding: 20px; border-radius: 12px; margin-bottom: 20px; backdrop-filter: blur(5px); } #auth_panel .auth-header { text-align: center; margin-bottom: 20px; } #auth_panel .auth-title { font-size: 1.8rem; background: linear-gradient(to right, #ff9800, #ff5722); -webkit-background-clip: text; background-clip: text; color: transparent; } #auth_panel .auth-subtitle { color: var(--amily2-text-color); margin-top: 5px; } #auth_panel .auth-code-input { display: flex; margin-bottom: 15px; } #auth_panel #amily2_auth_code { flex: 1; padding: 10px; border-radius: 8px 0 0 8px; border: 1px solid #7e57c2; background: rgba(0,0,0,0.3); color: var(--amily2-text-color); } #auth_panel #auth_submit { padding: 10px 15px; border: none; background: var(--amily2-button-color); color: var(--amily2-text-color); border-radius: 0 8px 8px 0; cursor: pointer; } #auth_panel .auth-footer { text-align: center; font-size: 0.8em; color: var(--amily2-text-color); } .auth-status { padding: 10px; border-radius: 8px; text-align: center; margin-top: 15px; } .auth-status.valid { background-color: rgba(76, 175, 80, 0.2); border: 1px solid #4CAF50; } .auth-status.expired { background-color: rgba(244, 67, 54, 0.2); border: 1px solid #f44336; } #amily2_chat_optimiser .amily2_settings_block { position: relative; background: transparent !important; z-index: 0; border: 1px solid rgba(255, 255, 255, 0.2); padding: 8px; margin: 0; border-radius: 8px; backdrop-filter: blur(3px); } .amily2_settings_block label { color: var(--amily2-text-color) !important; margin-right: 10px; font-weight: bold; } .amily2_settings_block input[type="color"] { width: 50px; height: 30px; border: none; border-radius: 4px; margin-right: 15px; cursor: pointer; } .amily2_settings_block .menu_button { margin-top: 10px; background: var(--amily2-button-color) !important; color: var(--amily2-text-color) !important; border: 1px solid rgba(255, 255, 255, 0.2) !important; } .amily2_settings_block .menu_button:hover { background: rgba(74, 74, 74, 0.8) !important; border-color: rgba(255, 255, 255, 0.4) !important; } #amily2_chat_optimiser .main-toggle { margin: 0; } #amily2_chat_optimiser .main-toggle label { font-size: 1.2em; color: var(--amily2-text-color) !important; } #amily2_chat_optimiser .update-section { position: relative; display: flex; align-items: center; min-height: 50px; } #amily2_update_button { background: var(--amily2-button-color) !important; border: 1px solid rgba(255,255,255,0.2); padding: 5px 8px; color: var(--amily2-text-color) !important; } #amily2_update_button:hover { background: rgba(74, 74, 74, 0.8) !important; } .update-indicator { position: absolute; top: -3px; right: -3px; width: 10px; height: 10px; background-color: #ff4d4d; border-radius: 50%; border: 1px solid var(--amily2-bg-color); } hr.header-divider { border: none; border-top: 1px solid rgba(255,255,255,0.1); margin: 0 0 10px 0; } #amily2_chat_optimiser .settings-group { position: relative; background: transparent !important; z-index: 0; border: 1px solid rgba(255, 255, 255, 0.2); border-radius: 8px; padding: 8px 12px; margin: 0; display: flex; flex-direction: column; gap: 5px; backdrop-filter: blur(3px); } .settings-group legend { font-size: 1.1em; font-weight: bold; color: var(--amily2-text-color) !important; padding: 0 10px; margin-left: 10px; } .settings-group legend > i { margin-right: 8px; color: #7e57c2; } .settings-group legend > i.fa-palette { color: #ff9800; } /* === Collapsible Legend Fix === */ .collapsible-legend { position: relative; /* Establish a stacking context */ z-index: 2; /* Ensure it's above sibling content */ cursor: pointer; /* Indicate it's clickable */ } #amily2_chat_optimiser .color-controls-container { flex-direction: row !important; align-items: center !important; justify-content: space-between !important; gap: 15px !important; flex-wrap: wrap; } #amily2_chat_optimiser .color-picker-group { display: flex; align-items: center; gap: 15px; flex-grow: 1; flex-wrap: wrap; } #amily2_chat_optimiser .color-picker-item { display: flex; align-items: center; gap: 5px; } /* === 可变透明度容器背景 === */ #amily2_chat_optimiser .settings-group::before, #amily2_chat_optimiser .amily2_settings_block::before, #amily2_chat_optimiser #auth_panel::before, #amily2_chat_optimiser .extension_block::before, #amily2_chat_optimiser .plugin-features::before, #amily2_chat_optimiser .amily2_extension_frame::before { content: ''; position: absolute; top: 0; left: 0; right: 0; bottom: 0; background-color: var(--amily2-bg-color); opacity: var(--amily2-bg-opacity); z-index: -1; pointer-events: none; } #amily2_chat_optimiser .settings-group::before, #amily2_chat_optimiser .amily2_settings_block::before, #amily2_chat_optimiser .extension_block::before, #amily2_chat_optimiser .plugin-features::before, #amily2_chat_optimiser .amily2_extension_frame::before { border-radius: 8px; } #amily2_chat_optimiser #auth_panel::before { border-radius: 12px; } #amily2_chat_optimiser .settings-group { margin-bottom: 5px; } #amily2_chat_optimiser .settings-group:last-child { margin-bottom: 0; } /* === 扩展卡片和面板样式 === */ #amily2_chat_optimiser .extension_settings { background: var(--amily2-bg-color) !important; color: var(--amily2-text-color) !important; } #amily2_chat_optimiser #extensions_settings2, #amily2_chat_optimiser .extension_block, #amily2_chat_optimiser .plugin-features, #amily2_chat_optimiser .amily2_extension_frame { position: relative; background: transparent !important; z-index: 0; color: var(--amily2-text-color) !important; } /* === 按钮统一样式 (已限定作用域) === */ #amily2_chat_optimiser .amily2_extension_frame .menu_button, #amily2_chat_optimiser .extension_block .menu_button, #amily2_chat_optimiser #amily2_drawer_content .menu_button { background: var(--amily2-button-color) !important; color: var(--amily2-text-color) !important; border: 1px solid rgba(255, 255, 255, 0.2) !important; } #amily2_chat_optimiser .amily2_extension_frame .menu_button:hover, #amily2_chat_optimiser .extension_block .menu_button:hover, #amily2_chat_optimiser #amily2_drawer_content .menu_button:hover { background: rgba(74, 74, 74, 0.8) !important; border-color: rgba(255, 255, 255, 0.4) !important; } /* === 输入框样式 (已限定作用域) === */ #amily2_chat_optimiser .amily2_extension_frame input, #amily2_chat_optimiser .amily2_extension_frame textarea, #amily2_chat_optimiser .amily2_extension_frame select, #amily2_chat_optimiser #amily2_drawer_content input, #amily2_chat_optimiser #amily2_drawer_content textarea, #amily2_chat_optimiser #amily2_drawer_content select { background: rgba(74, 74, 74, 0.6) !important; color: var(--amily2-text-color) !important; border: 1px solid rgba(255, 255, 255, 0.2) !important; } /* === 抽屉容器样式 === */ #amily2_main_drawer { /* 顶栏的父容器应保持透明,不应有背景或边框 */ background: transparent !important; border: none !important; } #amily2_drawer_content { /* 父容器应保持透明,让子元素的背景得以显示 */ background: transparent !important; color: var(--amily2-text-color) !important; } /* === 开关样式 === */ #amily2_chat_optimiser .toggle-switch { position: relative; display: inline-block; width: 50px; height: 26px; flex-shrink: 0; } .toggle-switch input { opacity: 0; width: 0; height: 0; } .toggle-switch .slider { position: absolute; cursor: pointer; top: 0; left: 0; right: 0; bottom: 0; background-color: var(--amily2-bg-color); border-radius: 26px; transition: .4s; border: 1px solid #555; } .toggle-switch .slider:before { position: absolute; content: ""; height: 20px; width: 20px; left: 2px; bottom: 2px; background-color: var(--amily2-text-color); border-radius: 50%; transition: .4s; } .toggle-switch input:checked + .slider { background: linear-gradient(to right, #7e57c2, #5e35b1); box-shadow: 0 0 8px rgba(126, 87, 194, 0.7); } .toggle-switch input:checked + .slider:before { transform: translateX(24px); } /* === 单选按钮组样式 === */ #amily2_chat_optimiser .radio-toggle-group { display: flex; border: 1px solid #555; border-radius: 8px; overflow: hidden; } .radio-toggle-group input[type="radio"] { display: none; } .radio-toggle-group label { flex: 1; text-align: center; padding: 8px 10px; cursor: pointer; background-color: var(--amily2-bg-color); color: var(--amily2-text-color); transition: all 0.3s ease; border-left: 1px solid #555; margin: 0 !important; } .radio-toggle-group label:first-of-type { border-left: none; } .radio-toggle-group input[type="radio"]:checked + label { background-color: #7e57c2; color: var(--amily2-text-color); font-weight: bold; } /* === 控制对容器样式 === */ #amily2_chat_optimiser .control-pair-container { display: flex; justify-content: space-around; align-items: center; gap: 10px; } .control-pair-container .amily2_settings_block { flex: 1; display: flex; flex-direction: column; align-items: center; gap: 5px; } .control-pair-container .amily2_settings_block label:first-of-type { margin-bottom: 0; } #amily2_chat_optimiser .amily2_settings_block { display: flex; flex-direction: column; gap: 8px; } .amily2_settings_block label { font-weight: bold; color: var(--amily2-text-color) !important; } .amily2_settings_block .notes { font-size: 0.8em; color: var(--amily2-text-color); opacity: 0.9; font-style: italic; align-self: flex-start; padding-left: 5px; } .control-pair-container .amily2_settings_block .notes { align-self: center; } .label-with-button { display: flex; justify-content: space-between; align-items: center; } /* === Lore配置样式 === */ #amily2_chat_optimiser .amily2_lore_config_wrapper { display: flex; gap: 15px; } .amily2_lore_config_section { flex: 1; display: flex; flex-direction: column; gap: 15px; } .amily2_vertical_divider { width: 1px; background-color: rgba(255, 255, 255, 0.2); align-self: stretch; } #amily2_save_lore_settings { width: 100%; background: linear-gradient(135deg, #7e57c2, #5e35b1) !important; border: 1px solid #4527a0 !important; color: var(--amily2-text-color) !important; } #amily2_save_lore_settings:hover { background: linear-gradient(135deg, #5e35b1, #7e57c2) !important; box-shadow: 0 0 8px rgba(126, 87, 194, 0.6); } #amily2_lore_save_status { color: #66bb6a; font-weight: bold; opacity: 0; transition: opacity 0.5s ease-in-out; padding-top: 5px; } /* === New Lore Config Grid Layout === */ #amily2_chat_optimiser .lore-config-grid { display: grid; grid-template-columns: 1fr 1.5fr; gap: 15px; align-items: start; } #amily2_chat_optimiser .grid-left-col { display: flex; flex-direction: column; gap: 8px; height: 100%; } #amily2_chat_optimiser .grid-right-col { display: flex; flex-direction: column; gap: 10px; } #amily2_chat_optimiser .grid-right-col .amily2_settings_block { padding: 10px; /* Add some padding for better spacing */ } #amily2_chat_optimiser .grid-right-col .amily2_settings_block:last-child { margin-top: auto; /* Pushes the button to the bottom */ } #amily2_chat_optimiser .radio-group.vertical { display: flex; flex-direction: column; gap: 10px; align-items: flex-start; } #amily2_chat_optimiser .radio-group.vertical label { margin: 0; } /* === 通用样式 === */ #amily2_chat_optimiser hr { border: none; border-top: 1px solid rgba(255,255,255,0.1); margin: 0; } #amily2_chat_optimiser .text_pole, #amily2_chat_optimiser select { width: 100%; box-sizing: border-box; } #amily2_chat_optimiser .button-pair { flex-direction: row; justify-content: space-between; gap: 15px; } .button-pair .menu_button { flex-grow: 1; } #amily2_chat_optimiser .flex-container .primary { background-color: #2196F3 !important; } #amily2_chat_optimiser .flex-container .accent { background-color: #FF5722 !important; } /* === 抽屉图标状态 === */ #amily2_drawer_icon.closedIcon { opacity: 0.5; } #amily2_drawer_icon.openIcon { opacity: 1; } #amily2_drawer_icon.interactable:hover { opacity: 1; } /* 强制保护顶栏图标不受主题颜色影响 */ #amily2_drawer_icon { background: none !important; color: inherit !important; } /* === 特殊功能开关样式 === */ #amily2_optimization_enabled:checked + .slider { background: linear-gradient(to right, #28a745, #20c997) !important; box-shadow: 0 0 10px rgba(40, 167, 69, 0.7); } #amily2_summarization_enabled:checked + .slider { background: linear-gradient(to right, #007bff, #17a2b8) !important; box-shadow: 0 0 10px rgba(0, 123, 255, 0.7); } /* === 位置选择按钮样式 === */ #amily2_icon_location_topbar:checked + label { background: linear-gradient(135deg, #0d6efd, #0dcaf0) !important; color: white !important; font-weight: bold; box-shadow: inset 0 0 8px rgba(255, 255, 255, 0.5), 0 0 12px rgba(13, 110, 253, 0.6); transform: translateY(-2px); border-color: #0dcaf0; } #amily2_icon_location_extensions:checked + label { background: linear-gradient(135deg, #ffc107, #fd7e14) !important; color: #492000 !important; font-weight: bold; text-shadow: 0 0 1px rgba(255,255,255,0.7); box-shadow: inset 0 0 8px rgba(255, 255, 255, 0.6), 0 0 12px rgba(255, 193, 7, 0.6); transform: translateY(-2px); border-color: #ffc107; } .radio-toggle-group label { transition: all 0.4s cubic-bezier(0.175, 0.885, 0.32, 1.275); } #amily2_mode_intercept:checked + label { background: linear-gradient(135deg, #00bfa5, #00acc1) !important; color: white !important; text-shadow: 0 0 3px rgba(0,0,0,0.4); box-shadow: inset 0 0 8px rgba(255, 255, 255, 0.4), 0 0 10px rgba(0, 191, 165, 0.6); transform: translateY(-2px); } #amily2_mode_refresh:checked + label { background: linear-gradient(135deg, #3f51b5, #2196f3) !important; color: white !important; text-shadow: 0 0 3px rgba(0,0,0,0.4); box-shadow: inset 0 0 8px rgba(255, 255, 255, 0.4), 0 0 10px rgba(63, 81, 181, 0.6); transform: translateY(-2px); } /* === 特殊按钮样式 === */ #amily2_refresh_models { background: linear-gradient(to right, #2196F3, #1976D2) !important; border: 1px solid #1565C0 !important; transition: all 0.3s ease; } #amily2_refresh_models:hover { background: linear-gradient(to right, #1976D2, #2196F3) !important; box-shadow: 0 0 8px rgba(33, 150, 243, 0.7); transform: scale(1.03); } #amily2_unified_restore_button.secondary { background: linear-gradient(to right, #ffb300, #fb8c00) !important; border: 1px solid #f57c00 !important; color: #4d2c00 !important; transition: all 0.3s ease; } #amily2_unified_restore_button.secondary:hover { background: linear-gradient(to right, #fb8c00, #ffb300) !important; box-shadow: 0 0 8px rgba(255, 179, 0, 0.7); transform: scale(1.03); } /* === 头部动作组 === */ #amily2_chat_optimiser .header-actions-group { display: flex; flex-direction: column; align-items: flex-end; gap: 10px; } /* === 密室按钮 === */ #amily2_chat_optimiser .secret-chamber-button { display: flex; align-items: center; justify-content: center; width: 100%; padding: 6px 10px; font-size: 14px; font-weight: bold; color: var(--amily2-text-color) !important; background-color: var(--amily2-bg-color) !important; border: 1px solid var(--border_color) !important; border-radius: 8px; cursor: pointer; transition: all 0.2s ease-in-out; } .secret-chamber-button i { margin-right: 8px; } .secret-chamber-button:hover { background-color: var(--background_tertiary) !important; border-color: var(--text_color_half) !important; color: var(--primary_color) !important; } /* === 响应式按钮组 === */ #amily2_chat_optimiser .button-group { display: flex; gap: 8px; } @media (max-width: 768px) { .button-group { flex-direction: row; justify-content: space-between; gap: 3px; align-items: stretch; } .button-group .menu_button.wide_button { flex: 1; height: 50px; padding: 2px; text-align: center; line-height: 1.1; min-width: 0; display: flex; flex-direction: column; align-items: center; justify-content: center; overflow: hidden; font-size: clamp(8px, 2.5vw, 14px); } .button-group .menu_button.wide_button i { display: block; margin-bottom: 2px; } } @media (min-width: 769px) { .button-group { flex-direction: row; justify-content: space-between; flex-wrap: wrap; } .button-group .menu_button.wide_button { flex: 1; min-width: 0; } } /* === 面板可见性 === */ #amily2_chat_optimiser .amily2-panel-visible { display: flex !important; flex-direction: column; flex-grow: 1; gap: 15px; } #amily2_chat_optimiser .header-left-panel { display: flex; flex-direction: column; align-items: flex-start; gap: 10px; } #amily2_chat_optimiser .rag-palace-entry-container { width: auto; } #amily2_chat_optimiser #rag_palace_panel { display: none; } #amily2_chat_optimiser .amily2-panel-visible { display: flex; flex-direction: column; flex-grow: 1; } /* === 统一提示词编辑器按钮布局 === */ #amily2_chat_optimiser .prompt-editor-area { display: flex; flex-direction: row; align-items: flex-start; gap: 10px; } #amily2_chat_optimiser .prompt-editor-area textarea { flex: 1; } #amily2_test_api_connection { margin-left: 10px; } /* === 消息高亮样式 === */ .highlight_message { animation: highlight-pulse 2s ease-out; border: 2px solid #ff9800 !important; box-shadow: 0 0 15px rgba(255, 152, 0, 0.5); } @keyframes highlight-pulse { 0% { background-color: rgba(255, 152, 0, 0.3); transform: scale(1.02); } 50% { background-color: rgba(255, 152, 0, 0.1); transform: scale(1); } 100% { background-color: transparent; transform: scale(1); } } /* === Profile 表单(details 折叠) === */ .amily2-profile-form > summary { cursor: pointer; user-select: none; list-style: none; display: flex; align-items: center; gap: 6px; font-weight: bold; } .amily2-profile-form > summary::-webkit-details-marker { display: none; } .amily2-profile-form[open] > summary { margin-bottom: 4px; padding-bottom: 8px; border-bottom: 1px solid var(--SmartThemeBorderColor); } /* 图标在上、文字在下的垂直按钮 */ .amily2-vbtn { display: inline-flex; flex-direction: column; align-items: center; justify-content: center; gap: 3px; padding: 8px 12px; min-width: 56px; text-align: center; line-height: 1; } .amily2-vbtn .vbtn-icon { font-size: 1.15em; } .amily2-vbtn .vbtn-label { font-size: 0.82em; white-space: nowrap; }