| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714 |
- /* 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;
- }
- }
|