/* Modal Styles */ .modal-overlay { position: fixed; top: 0; left: 0; right: 0; bottom: 0; background: rgba(0, 0, 0, 0.6); display: flex; align-items: center; justify-content: center; z-index: 1000; } .modal { background: var(--bg-card); border-radius: 16px; width: 90%; max-width: 480px; max-height: 80vh; display: flex; flex-direction: column; box-shadow: 0 20px 60px rgba(0, 0, 0, 0.3); } .modal.wide { max-width: 700px; } .modal.extra-wide { max-width: 1000px; } .modal-header { display: flex; justify-content: space-between; align-items: center; padding: 20px 24px; border-bottom: 1px solid var(--border); } .modal-title { font-size: 16px; font-weight: 600; display: flex; align-items: center; gap: 10px; } .modal-title i { color: var(--primary); } .modal-close { width: 32px; height: 32px; background: var(--bg-hover); border: none; border-radius: 8px; color: var(--text-secondary); cursor: pointer; display: flex; align-items: center; justify-content: center; } .modal-close:hover { background: var(--danger); color: white; } .modal-body { flex: 1; overflow-y: auto; padding: 24px; } .modal-footer { display: flex; justify-content: flex-end; gap: 12px; padding: 16px 24px; border-top: 1px solid var(--border); } .form-group { margin-bottom: 16px; } .form-label { display: block; font-size: 13px; font-weight: 500; margin-bottom: 8px; color: var(--text-primary); } .form-input, .form-select, .form-textarea { width: 100%; padding: 10px 14px; background: var(--bg-dark); border: 1px solid var(--border); border-radius: 8px; color: var(--text-primary); font-size: 13px; } .form-input:focus, .form-select:focus, .form-textarea:focus { outline: none; border-color: var(--primary); } .form-textarea { resize: vertical; min-height: 80px; } .password-hint { font-size: 12px; color: var(--text-muted); padding: 12px; background: var(--bg-hover); border-radius: 8px; display: flex; align-items: center; gap: 8px; } .password-hint i { color: var(--primary); } /* Model Fine Tune Modal */ .model-info-card { padding: 20px; background: linear-gradient(135deg, rgba(99, 102, 241, 0.1), rgba(139, 92, 246, 0.1)); border-radius: 12px; margin-bottom: 20px; } .model-header { display: flex; align-items: center; gap: 14px; margin-bottom: 16px; } .model-icon { width: 48px; height: 48px; background: var(--primary); border-radius: 12px; display: flex; align-items: center; justify-content: center; color: white; font-size: 20px; } .model-title h4 { font-size: 16px; margin-bottom: 4px; } .model-status { font-size: 11px; padding: 2px 8px; background: var(--success); color: white; border-radius: 10px; } .model-stats { display: flex; gap: 24px; } .model-stat { display: flex; flex-direction: column; } .model-stat .stat-label { font-size: 11px; color: var(--text-muted); } .model-stat .stat-value { font-size: 14px; font-weight: 600; } .fine-tune-section { padding: 16px; background: var(--bg-hover); border-radius: 10px; } .fine-tune-section h5 { font-size: 14px; margin-bottom: 16px; display: flex; align-items: center; gap: 8px; } .fine-tune-section h5 i { color: var(--primary); } /* Data Source Modal */ .data-source-list { display: flex; flex-direction: column; gap: 10px; } .data-source-item { display: flex; align-items: center; gap: 14px; padding: 14px; background: var(--bg-hover); border-radius: 10px; cursor: pointer; transition: all 0.2s; } .data-source-item:hover { background: rgba(99, 102, 241, 0.1); } .source-icon { width: 40px; height: 40px; border-radius: 10px; display: flex; align-items: center; justify-content: center; font-size: 16px; } .source-icon.trade { background: rgba(99, 102, 241, 0.2); color: var(--primary); } .source-icon.linkedin { background: rgba(10, 102, 194, 0.2); color: #0A66C2; } .source-icon.maps { background: rgba(16, 185, 129, 0.2); color: var(--success); } .source-icon.company { background: rgba(139, 92, 246, 0.2); color: var(--secondary); } .source-icon.exhibition { background: rgba(245, 158, 11, 0.2); color: var(--warning); } .source-icon.procurement { background: rgba(6, 182, 212, 0.2); color: var(--info); } .source-icon.social { background: rgba(236, 72, 153, 0.2); color: #EC4899; } .source-icon.association { background: rgba(107, 114, 128, 0.2); color: var(--text-muted); } .source-info { flex: 1; } .source-name { font-size: 14px; font-weight: 500; margin-bottom: 4px; } .source-meta { display: flex; gap: 16px; font-size: 12px; color: var(--text-muted); } .source-meta i { margin-right: 4px; } .source-desc { font-size: 11px; color: var(--text-muted); margin-top: 6px; } .source-status i { margin-right: 4px; } /* Overview Cards */ .sources-overview, .email-overview { display: grid; grid-template-columns: repeat(3, 1fr); gap: 12px; margin-bottom: 24px; } .overview-card { display: flex; align-items: center; gap: 14px; padding: 18px; background: var(--bg-hover); border-radius: 12px; } .overview-icon { width: 48px; height: 48px; background: rgba(99, 102, 241, 0.2); border-radius: 12px; display: flex; align-items: center; justify-content: center; font-size: 20px; color: var(--primary); } .overview-icon.email { background: rgba(99, 102, 241, 0.2); } .overview-info { flex: 1; } .overview-value { font-size: 22px; font-weight: 700; } .overview-label { font-size: 12px; color: var(--text-muted); } /* Quick Source Grid */ .foreign-trade-section { margin-top: 24px; padding: 20px; background: linear-gradient(135deg, rgba(99, 102, 241, 0.05), rgba(139, 92, 246, 0.05)); border-radius: 12px; border: 1px solid rgba(99, 102, 241, 0.1); } .foreign-trade-section h4 { font-size: 14px; margin-bottom: 16px; display: flex; align-items: center; gap: 8px; } .foreign-trade-section h4 i { color: var(--primary); } .quick-source-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 12px; } .quick-source-card { display: flex; flex-direction: column; align-items: center; gap: 10px; padding: 16px; background: var(--bg-card); border-radius: 10px; text-align: center; } .quick-source-card i { font-size: 24px; color: var(--primary); } .quick-source-card span { font-size: 12px; font-weight: 500; } .quick-source-card .btn { margin-top: auto; } /* Add Data Source & Quick Source Modal */ .required { color: var(--danger); margin-left: 4px; } .test-connection { margin-top: 16px; padding-top: 16px; border-top: 1px solid var(--border); } .test-connection .btn { width: 100%; justify-content: center; } .quick-config-section { margin-bottom: 20px; padding: 16px; background: var(--bg-hover); border-radius: 10px; } .quick-config-section h5 { font-size: 14px; margin-bottom: 14px; display: flex; align-items: center; gap: 8px; } .quick-config-section h5 i { color: var(--primary); } .checkbox-group { display: flex; flex-wrap: wrap; gap: 12px; } .checkbox-item { display: flex; align-items: center; gap: 6px; font-size: 13px; cursor: pointer; } .checkbox-item input { width: 16px; height: 16px; } /* Email Tab Content */ .email-tab-content { padding: 16px 0; } .stats-overview { display: grid; grid-template-columns: repeat(4, 1fr); gap: 12px; margin-bottom: 20px; } .stat-card { display: flex; align-items: center; gap: 14px; padding: 18px; background: var(--bg-hover); border-radius: 12px; } .stat-card .stat-icon { width: 44px; height: 44px; background: rgba(99, 102, 241, 0.2); border-radius: 10px; display: flex; align-items: center; justify-content: center; color: var(--primary); font-size: 18px; } .stat-card .stat-info { flex: 1; } .stat-card .stat-value { font-size: 22px; font-weight: 700; } .stat-card .stat-label { font-size: 12px; color: var(--text-muted); } .chart-section, .top-performers { margin-top: 20px; } .chart-section h5, .top-performers h5 { font-size: 14px; margin-bottom: 14px; display: flex; align-items: center; gap: 8px; } .chart-section h5 i, .top-performers h5 i { color: var(--primary); } .simple-chart { display: flex; align-items: flex-end; gap: 12px; height: 160px; padding: 30px 20px; background: var(--bg-hover); border-radius: 12px; } .chart-bar { flex: 1; background: linear-gradient(to top, var(--primary), var(--secondary)); border-radius: 6px 6px 0 0; position: relative; min-height: 20px; display: flex; align-items: flex-end; justify-content: center; padding-bottom: 8px; } .chart-bar span { font-size: 11px; color: var(--text-muted); position: absolute; bottom: -24px; } .template-list { display: flex; flex-direction: column; gap: 10px; } .template-item { display: flex; justify-content: space-between; align-items: center; padding: 14px; background: var(--bg-hover); border-radius: 10px; } .template-name { font-size: 14px; font-weight: 500; } .template-stats { font-size: 12px; color: var(--text-muted); } /* Domain Config */ .domain-config-section { margin-bottom: 20px; } .domain-config-section h5 { font-size: 14px; margin-bottom: 14px; display: flex; align-items: center; gap: 8px; } .domain-config-section h5 i { color: var(--primary); } .domain-list { display: flex; flex-direction: column; gap: 10px; } .domain-item { display: flex; align-items: center; gap: 14px; padding: 14px; background: var(--bg-hover); border-radius: 10px; } .domain-icon { width: 44px; height: 44px; background: rgba(99, 102, 241, 0.2); border-radius: 10px; display: flex; align-items: center; justify-content: center; color: var(--primary); font-size: 18px; } .domain-info { flex: 1; } .domain-name { font-size: 14px; font-weight: 500; margin-bottom: 4px; } .domain-meta { display: flex; gap: 16px; font-size: 12px; color: var(--text-muted); } .domain-status { display: inline-flex; align-items: center; gap: 4px; } .domain-status.active { color: var(--success); } .config-guide { display: flex; flex-direction: column; gap: 14px; } .guide-step { display: flex; gap: 14px; padding: 14px; background: var(--bg-hover); border-radius: 10px; } .step-num { width: 28px; height: 28px; background: var(--primary); color: white; border-radius: 50%; display: flex; align-items: center; justify-content: center; font-size: 14px; font-weight: 600; flex-shrink: 0; } .step-content { flex: 1; } .step-title { font-size: 14px; font-weight: 500; margin-bottom: 4px; } .step-desc { font-size: 12px; color: var(--text-muted); } /* Security */ .security-overview { margin-bottom: 20px; } .security-card { padding: 24px; background: linear-gradient(135deg, rgba(16, 185, 129, 0.1), rgba(99, 102, 241, 0.1)); border-radius: 12px; text-align: center; } .security-header { display: flex; align-items: center; justify-content: center; gap: 8px; margin-bottom: 12px; font-size: 14px; color: var(--text-secondary); } .security-header i { color: var(--success); } .security-score { font-size: 36px; font-weight: 700; color: var(--success); margin-bottom: 8px; } .security-desc { font-size: 13px; color: var(--text-muted); } .security-section { margin-bottom: 20px; } .security-section h5 { font-size: 14px; margin-bottom: 14px; display: flex; align-items: center; gap: 8px; } .security-section h5 i { color: var(--primary); } .security-list { display: flex; flex-direction: column; gap: 10px; } .security-item { display: flex; justify-content: space-between; align-items: center; padding: 14px; background: var(--bg-hover); border-radius: 10px; } .security-item-info { display: flex; flex-direction: column; } .security-item-title { font-size: 14px; font-weight: 500; } .security-item-desc { font-size: 12px; color: var(--text-muted); } .security-logs { display: flex; flex-direction: column; gap: 8px; } .log-item { display: flex; align-items: center; gap: 16px; padding: 10px; background: var(--bg-hover); border-radius: 8px; font-size: 12px; } .log-item .log-time { color: var(--text-muted); min-width: 120px; } .log-item .log-event { flex: 1; } .log-item .log-status { padding: 2px 8px; border-radius: 10px; } .log-status.success { background: rgba(16, 185, 129, 0.2); color: var(--success); } /* Email Enhanced */ .email-account-item.selected { border: 2px solid var(--primary); background: rgba(99, 102, 241, 0.05); } .account-auth { display: flex; flex-direction: column; gap: 4px; } .auth-badge { display: inline-flex; align-items: center; gap: 4px; font-size: 10px; padding: 2px 6px; background: var(--bg-dark); border-radius: 4px; color: var(--text-muted); } .auth-badge.active { background: rgba(16, 185, 129, 0.2); color: var(--success); } .detail-tabs { display: flex; gap: 8px; margin-bottom: 16px; padding-bottom: 12px; border-bottom: 1px solid var(--border); } .detail-tab { padding: 8px 14px; background: transparent; border: none; color: var(--text-secondary); font-size: 12px; cursor: pointer; border-radius: 8px; } .detail-tab:hover { background: var(--bg-hover); } .detail-tab.active { background: var(--primary); color: white; } .config-grid-2col { display: grid; grid-template-columns: 1fr 1fr; gap: 16px; } .config-card { background: var(--bg-card); border-radius: 10px; overflow: hidden; } .config-card-header { padding: 12px 16px; background: var(--bg-hover); font-size: 13px; font-weight: 600; display: flex; align-items: center; gap: 8px; } .config-card-body { padding: 16px; } .config-card-body .config-row { background: var(--bg-hover); padding: 10px; border-radius: 6px; margin-bottom: 8px; } .config-card-body .config-row:last-child { margin-bottom: 0; } .auth-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 12px; } .auth-card { display: flex; align-items: center; gap: 12px; padding: 16px; background: var(--bg-card); border-radius: 10px; border: 1px solid var(--border); } .auth-card.pass { border-color: rgba(16, 185, 129, 0.3); } .auth-card.fail { border-color: rgba(239, 68, 68, 0.3); } .auth-card .auth-icon { width: 40px; height: 40px; border-radius: 50%; display: flex; align-items: center; justify-content: center; font-size: 18px; } .auth-card.pass .auth-icon { background: rgba(16, 185, 129, 0.2); color: var(--success); } .auth-card.fail .auth-icon { background: rgba(239, 68, 68, 0.2); color: var(--danger); } .auth-card .auth-info { flex: 1; } .auth-card .auth-name { font-size: 14px; font-weight: 600; } .auth-card .auth-desc { font-size: 11px; color: var(--text-muted); } .auth-card .auth-status { font-size: 11px; padding: 3px 8px; border-radius: 10px; } .auth-card.pass .auth-status { background: rgba(16, 185, 129, 0.2); color: var(--success); } .auth-card.fail .auth-status { background: rgba(239, 68, 68, 0.2); color: var(--danger); } .config-row-flex { display: flex; gap: 24px; margin-bottom: 16px; } .config-row-flex .config-item { flex: 1; } .signature-preview { margin-bottom: 12px; padding: 16px; background: var(--bg-card); border-radius: 10px; border-left: 4px solid var(--primary); } .signature-label { font-size: 11px; color: var(--text-muted); margin-bottom: 8px; } .signature-content pre { font-size: 12px; white-space: pre-wrap; font-family: inherit; margin: 0; } .usage-label { font-size: 11px; color: var(--text-muted); margin-bottom: 4px; } /* Email Modal */ .email-accounts-list { display: flex; flex-direction: column; gap: 12px; margin-bottom: 16px; } .email-account-item { display: flex; align-items: center; gap: 14px; padding: 16px; background: var(--bg-hover); border-radius: 10px; } .account-icon { width: 44px; height: 44px; background: rgba(99, 102, 241, 0.2); border-radius: 10px; display: flex; align-items: center; justify-content: center; color: var(--primary); font-size: 18px; } .account-info { flex: 1; } .account-email { font-size: 14px; font-weight: 500; margin-bottom: 2px; } .account-name { font-size: 12px; color: var(--text-muted); margin-bottom: 6px; } .account-stats { display: flex; gap: 16px; font-size: 11px; color: var(--text-muted); } .add-account-btn { width: 100%; } /* LinkedIn & WeChat Modal */ .connect-prompt { text-align: center; padding: 40px 20px; } .connect-icon { width: 80px; height: 80px; background: rgba(10, 102, 194, 0.2); border-radius: 50%; display: flex; align-items: center; justify-content: center; margin: 0 auto 20px; font-size: 36px; color: #0A66C2; } .connect-icon.wechat { background: rgba(7, 193, 96, 0.2); color: #07C160; } .connect-prompt h4 { font-size: 18px; margin-bottom: 10px; } .connect-prompt p { font-size: 13px; color: var(--text-muted); margin-bottom: 24px; } .wechat-btn { background: #07C160; } .linkedin-connected, .wechat-connected { padding: 20px; background: var(--bg-hover); border-radius: 12px; } .linkedin-stats, .wechat-stats { display: flex; gap: 24px; margin-top: 20px; padding-top: 16px; border-top: 1px solid var(--border); } .stat-item { display: flex; flex-direction: column; align-items: center; flex: 1; } .stat-item .stat-label { font-size: 11px; color: var(--text-muted); margin-bottom: 4px; } .stat-item .stat-value { font-size: 18px; font-weight: 600; } /* Data Source Detail Modal */ .source-detail-header { margin-bottom: 20px; } .source-detail-status { margin-bottom: 10px; } .status-badge { display: inline-flex; align-items: center; gap: 6px; padding: 6px 14px; border-radius: 20px; font-size: 13px; } .status-badge.active { background: rgba(16, 185, 129, 0.2); color: var(--success); } .status-badge.inactive { background: rgba(107, 114, 128, 0.2); color: var(--text-muted); } .source-description { font-size: 13px; color: var(--text-muted); } .source-stats-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 12px; margin-bottom: 24px; } .source-stat-card { display: flex; align-items: center; gap: 12px; padding: 16px; background: var(--bg-hover); border-radius: 10px; } .source-stat-card .stat-icon { width: 40px; height: 40px; background: rgba(99, 102, 241, 0.2); border-radius: 10px; display: flex; align-items: center; justify-content: center; color: var(--primary); font-size: 16px; } .source-stat-card .stat-info { flex: 1; } .source-stat-card .stat-value { font-size: 16px; font-weight: 600; } .source-stat-card .stat-label { font-size: 11px; color: var(--text-muted); } .detail-section { margin-bottom: 20px; } .detail-section h5 { font-size: 14px; margin-bottom: 12px; display: flex; align-items: center; gap: 8px; } .detail-section h5 i { color: var(--primary); } .config-grid { display: flex; gap: 16px; flex-wrap: wrap; } .config-item { display: flex; flex-direction: column; gap: 6px; min-width: 120px; } .config-item label { font-size: 12px; color: var(--text-muted); } .config-item .form-select { padding: 8px 12px; font-size: 12px; } .fields-list { display: flex; flex-direction: column; gap: 8px; } .field-item { display: flex; align-items: center; gap: 12px; padding: 10px; background: var(--bg-hover); border-radius: 8px; font-size: 13px; } .field-name { color: var(--primary); font-weight: 500; } .field-item i { color: var(--text-muted); } .field-target { color: var(--text-secondary); font-family: monospace; } .sync-logs { display: flex; flex-direction: column; gap: 8px; } .sync-log-item { display: flex; align-items: center; gap: 16px; padding: 10px; background: var(--bg-hover); border-radius: 8px; font-size: 12px; } .log-time { color: var(--text-muted); min-width: 140px; } .log-status { padding: 2px 8px; border-radius: 10px; } .log-status.success { background: rgba(16, 185, 129, 0.2); color: var(--success); } .log-count { color: var(--text-secondary); } /* Email Modal Enhanced */ .email-tabs { display: flex; gap: 8px; margin-bottom: 16px; padding-bottom: 12px; border-bottom: 1px solid var(--border); } .email-tab { padding: 8px 16px; background: transparent; border: none; color: var(--text-secondary); font-size: 13px; cursor: pointer; border-radius: 8px; } .email-tab:hover { background: var(--bg-hover); } .email-tab.active { background: var(--primary); color: white; } .account-usage { display: flex; flex-direction: column; gap: 4px; min-width: 100px; } .usage-bar { height: 6px; background: var(--bg-dark); border-radius: 3px; overflow: hidden; } .usage-fill { height: 100%; background: var(--primary); border-radius: 3px; } .usage-text { font-size: 10px; color: var(--text-muted); text-align: right; } .email-detail-panel { margin-top: 20px; padding: 20px; background: var(--bg-hover); border-radius: 12px; } .email-detail-panel .detail-header { margin-bottom: 16px; } .email-detail-panel .detail-header h4 { font-size: 14px; display: flex; align-items: center; gap: 8px; } .config-table { display: flex; flex-direction: column; gap: 8px; } .config-row { display: flex; justify-content: space-between; padding: 10px; background: var(--bg-card); border-radius: 8px; font-size: 12px; } .config-label { color: var(--text-muted); } .config-value { font-weight: 500; } .auth-status-grid { display: flex; gap: 12px; } .auth-status-item { display: flex; align-items: center; gap: 8px; padding: 10px 16px; background: var(--bg-card); border-radius: 8px; font-size: 12px; } .auth-status-item.active { color: var(--success); } .auth-status-item.inactive { color: var(--danger); } .auth-status-item i { font-size: 16px; } .auto-reply-config { display: flex; flex-direction: column; gap: 12px; } .auto-reply-config .config-item { flex-direction: row; align-items: center; justify-content: space-between; } .auto-reply-config textarea { min-height: 60px; } .signature-textarea { font-family: monospace; font-size: 12px; } .toggle-switch { width: 44px; height: 24px; background: var(--bg-dark); border-radius: 12px; position: relative; cursor: pointer; transition: all 0.2s; } .toggle-switch.active { background: var(--primary); } .toggle-slider { width: 20px; height: 20px; background: white; border-radius: 50%; position: absolute; top: 2px; left: 2px; transition: all 0.2s; } .toggle-switch.active .toggle-slider { left: 22px; } .settings-page { flex: 1; display: flex; flex-direction: column; padding: 24px; overflow-y: auto; background: var(--bg-dark); } .settings-header { display: flex; justify-content: space-between; align-items: flex-start; margin-bottom: 24px; } .header-left { display: flex; flex-direction: column; gap: 4px; } .data-title { font-size: 20px; font-weight: 600; } .header-desc { font-size: 13px; color: var(--text-secondary); } .header-actions { display: flex; gap: 12px; } /* Settings Grid */ .settings-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 24px; } .settings-column { display: flex; flex-direction: column; gap: 24px; } /* Settings Section */ .settings-section { background: var(--bg-card); border: 1px solid var(--border); border-radius: 16px; overflow: hidden; } .section-header { display: flex; align-items: center; gap: 14px; padding: 20px; background: var(--bg-hover); border-bottom: 1px solid var(--border); } .section-icon { width: 44px; height: 44px; border-radius: 12px; display: flex; align-items: center; justify-content: center; font-size: 18px; } .section-title h3 { font-size: 15px; font-weight: 600; margin-bottom: 2px; } .section-title p { font-size: 12px; color: var(--text-secondary); } /* Settings List */ .settings-list { padding: 8px; } .settings-item { display: flex; align-items: center; gap: 14px; padding: 14px; border-radius: 10px; cursor: pointer; transition: background 0.2s; } .settings-item:hover { background: var(--bg-hover); } .item-icon { width: 40px; height: 40px; border-radius: 10px; display: flex; align-items: center; justify-content: center; font-size: 16px; flex-shrink: 0; } .item-content { flex: 1; min-width: 0; } .item-title { font-size: 14px; font-weight: 500; margin-bottom: 2px; } .item-desc { font-size: 12px; color: var(--text-secondary); } .item-action { display: flex; align-items: center; gap: 8px; flex-shrink: 0; } .item-value { font-size: 13px; color: var(--text-secondary); } .item-value.success { color: var(--success); } .item-value.warning { color: var(--warning); } .item-action i { color: var(--text-muted); font-size: 12px; } /* Profile Card */ .profile-card { display: flex; align-items: center; gap: 16px; padding: 20px; margin: 8px; background: var(--bg-hover); border-radius: 12px; } .profile-avatar { width: 64px; height: 64px; background: var(--gradient-1); border-radius: 50%; display: flex; align-items: center; justify-content: center; font-size: 24px; font-weight: 600; color: white; position: relative; } .avatar-edit { position: absolute; bottom: 0; right: 0; width: 24px; height: 24px; background: var(--primary); border: 2px solid var(--bg-hover); border-radius: 50%; display: flex; align-items: center; justify-content: center; font-size: 10px; color: white; cursor: pointer; } .profile-info { flex: 1; } .profile-name { font-size: 16px; font-weight: 600; margin-bottom: 2px; } .profile-role { font-size: 13px; color: var(--text-secondary); margin-bottom: 2px; } .profile-email { font-size: 12px; color: var(--text-muted); } /* Toggle Switch */ .toggle-switch { width: 44px; height: 24px; background: var(--bg-dark); border-radius: 12px; position: relative; cursor: pointer; transition: all 0.2s; flex-shrink: 0; } .toggle-switch.active { background: var(--primary); } .toggle-slider { position: absolute; top: 2px; left: 2px; width: 20px; height: 20px; background: white; border-radius: 50%; transition: all 0.2s; box-shadow: 0 2px 4px rgba(0,0,0,0.2); } .toggle-switch.active .toggle-slider { transform: translateX(20px); } /* Global Toggle Fix - Override inline styles */ .settings-item .toggle-switch, .channel-item .toggle-switch, .item-action .toggle-switch, .settings-modal .toggle-switch, .modal .toggle-switch, .detail-section .toggle-switch, .config-item .toggle-switch, .auto-reply-config .toggle-switch { margin-left: auto; background: var(--bg-dark) !important; } .settings-item .toggle-switch.active, .channel-item .toggle-switch.active, .item-action .toggle-switch.active, .settings-modal .toggle-switch.active, .modal .toggle-switch.active, .detail-section .toggle-switch.active, .config-item .toggle-switch.active, .auto-reply-config .toggle-switch.active { background: var(--primary) !important; } /* Mini Select */ .mini-select { padding: 6px 12px; background: var(--bg-hover); border: 1px solid var(--border); border-radius: 8px; color: var(--text-primary); font-size: 13px; cursor: pointer; } .mini-select:focus { outline: none; border-color: var(--primary); } /* Channel List */ .channel-list { padding: 8px; } .channel-item { display: flex; align-items: center; gap: 14px; padding: 14px; border-radius: 10px; border: 1px solid var(--border); margin-bottom: 8px; background: var(--bg-dark); transition: all 0.2s; } .channel-item:last-child { margin-bottom: 0; } .channel-item.connected { border-color: rgba(16, 185, 129, 0.3); } .channel-icon { width: 40px; height: 40px; border-radius: 10px; display: flex; align-items: center; justify-content: center; font-size: 18px; flex-shrink: 0; } .channel-content { flex: 1; } .channel-title { font-size: 14px; font-weight: 500; margin-bottom: 2px; } .channel-desc { font-size: 12px; color: var(--text-secondary); } .channel-action { flex-shrink: 0; } .status-badge { display: inline-flex; align-items: center; gap: 4px; padding: 4px 10px; border-radius: 12px; font-size: 11px; font-weight: 500; } .status-badge.success { background: rgba(16, 185, 129, 0.2); color: var(--success); } /* Toast */ .toast { position: fixed; bottom: 24px; right: 24px; padding: 12px 20px; background: var(--bg-card); border: 1px solid var(--border); border-radius: 10px; display: flex; align-items: center; gap: 10px; font-size: 13px; box-shadow: 0 4px 20px rgba(0, 0, 0, 0.3); z-index: 2000; } .toast.success { border-color: var(--success); } .toast.success i { color: var(--success); } .toast-enter-active, .toast-leave-active { transition: all 0.3s ease; } .toast-enter-from, .toast-leave-to { opacity: 0; transform: translateY(20px); } /* Responsive */ @media (max-width: 1200px) { .settings-grid { grid-template-columns: 1fr; } } @media (max-width: 768px) { .settings-header { flex-direction: column; gap: 16px; } .header-actions { width: 100%; } .header-actions .btn { flex: 1; } }