:root { /* 暗黑主题变量 */ --cn-dark-bg: #1a1b26; --cn-dark-fg: #c0caf5; --cn-dark-fg-secondary: #a9b1d6; --cn-dark-card: #24283b; --cn-dark-border: #414868; --cn-dark-accent: #7aa2f7; --cn-dark-accent-soft: rgba(122, 162, 247, 0.15); /* 明亮主题变量 */ --cn-light-bg: #fafafa; --cn-light-fg: #2c3e50; --cn-light-fg-secondary: #6b7280; --cn-light-card: #ffffff; --cn-light-border: #e0e0e0; --cn-light-accent: #1890ff; --cn-light-accent-soft: rgba(24, 144, 255, 0.12); /* 通用变量 */ --cn-radius: 12px; --cn-shadow: 0 4px 20px rgba(0, 0, 0, 0.1); --cn-transition: all 0.3s ease; /* 默认使用暗黑主题 */ --cn-bg: var(--cn-dark-bg); --cn-fg: var(--cn-dark-fg); --cn-fg-secondary: var(--cn-dark-fg-secondary); --cn-card: var(--cn-dark-card); --cn-border: var(--cn-dark-border); --cn-accent: var(--cn-dark-accent); --cn-accent-soft: var(--cn-dark-accent-soft); } body[data-theme="light"] { --cn-bg: var(--cn-light-bg); --cn-fg: var(--cn-light-fg); --cn-fg-secondary: var(--cn-light-fg-secondary); --cn-card: var(--cn-light-card); --cn-border: var(--cn-light-border); --cn-accent: var(--cn-light-accent); --cn-accent-soft: var(--cn-light-accent-soft); } .theme-cloud { background: var(--cn-bg); color: var(--cn-fg); font-family: "PingFang SC", "Microsoft YaHei", "Hiragino Sans GB", sans-serif; line-height: 1.6; } body.theme-cloud { min-height: 100vh; margin: 0; background: var(--cn-bg); color: var(--cn-fg); font-family: "PingFang SC", "Microsoft YaHei", "Hiragino Sans GB", sans-serif; transition: var(--cn-transition); } .theme-cloud .container { width: 92vw; max-width: 1400px; margin: 0 auto; padding: 16px 0 32px; } .cn-header { display: flex; align-items: center; justify-content: space-between; margin-bottom: 8px; } body.cn-fullscreen .cn-header { display: none; } .cn-header h2 { font-size: 20px; font-weight: 600; color: var(--cn-fg); margin: 0; display: flex; align-items: center; gap: 8px; } .logo-ico { display: inline-block; width: 24px; height: 24px; background: url('/icons/cloud.svg') no-repeat center / contain; filter: brightness(1.2); } .header-actions { display: flex; align-items: center; gap: 8px; } .icon-theme, .icon-toggle { width: 36px; height: 36px; border-radius: 10px; border: 1px solid var(--cn-border); background: var(--cn-card); color: var(--cn-fg); display: inline-flex; align-items: center; justify-content: center; cursor: pointer; transition: var(--cn-transition); font-size: 16px; } .icon-theme:hover, .icon-toggle:hover { background: var(--cn-accent-soft); border-color: var(--cn-accent); box-shadow: var(--cn-shadow); transform: translateY(-2px); } .icon-theme:active, .icon-toggle:active { transform: translateY(0); box-shadow: 0 8px 18px rgba(15, 23, 42, 0.65); } .status { margin-left: 12px; } .list-card a { color: #93c5fd; text-decoration: underline; } .theme-cloud #cn-login.card { background: radial-gradient(circle at 0 0, rgba(37, 99, 235, 0.16) 0, rgba(15, 23, 42, 0.8) 40%, rgba(15, 23, 42, 0.98) 100%); border-radius: 18px; border: 1px solid rgba(148, 163, 184, 0.6); padding: 18px 18px 16px; box-shadow: 0 32px 80px rgba(15, 23, 42, 0.9); backdrop-filter: blur(16px); } .theme-cloud #cn-login h3 { font-size: 18px; font-weight: 600; } .theme-cloud #cn-login .list-card { padding: 8px 0 0; } .theme-cloud .modal-row { margin-bottom: 10px; } .theme-cloud .modal-label { font-size: 13px; color: #cbd5e1; } .theme-cloud .modal-input { width: 100%; border-radius: 10px; border: 1px solid rgba(148, 163, 184, 0.6); background: rgba(15, 23, 42, 0.88); color: #e5e7eb; padding: 8px 10px; font-size: 14px; outline: none; transition: border-color 0.15s ease, box-shadow 0.15s ease, background 0.15s ease; } .theme-cloud .modal-input::placeholder { color: #64748b; } .theme-cloud .modal-input:focus { border-color: rgba(59, 130, 246, 0.9); box-shadow: 0 0 0 1px rgba(37, 99, 235, 0.7), 0 18px 40px rgba(15, 23, 42, 0.9); background: rgba(15, 23, 42, 1); } .theme-cloud .action-buttons { display: flex; align-items: center; } .theme-cloud .action-btn { border-radius: 999px; border: none; padding: 7px 14px; font-size: 14px; display: inline-flex; align-items: center; gap: 4px; background: radial-gradient(circle at top left, rgba(59, 130, 246, 0.5), rgba(37, 99, 235, 0.8)); color: #f9fafb; cursor: pointer; box-shadow: 0 18px 40px rgba(15, 23, 42, 0.9); transition: background 0.15s ease, transform 0.1s ease, box-shadow 0.15s ease; } .theme-cloud .action-btn:hover { background: radial-gradient(circle at top left, rgba(96, 165, 250, 0.6), rgba(37, 99, 235, 0.95)); transform: translateY(-1px); box-shadow: 0 24px 60px rgba(15, 23, 42, 1); } .theme-cloud .action-btn:active { transform: translateY(0); box-shadow: 0 14px 32px rgba(15, 23, 42, 0.9); } .cn-split { display: grid; grid-template-columns: 300px minmax(0, 1fr); gap: 20px; height: calc(100vh - 60px); /* 占满浏览器高度,减去顶部导航栏高度 */ margin-top: 0; } .cn-main-tabs { display: flex; align-items: center; gap: 8px; margin-bottom: 16px; padding-bottom: 12px; border-bottom: 1px solid var(--cn-border); } .cn-main-tab { padding: 8px 16px; font-size: 14px; border-radius: 8px; border: 1px solid var(--cn-border); background: transparent; color: var(--cn-fg); cursor: pointer; transition: var(--cn-transition); min-width: 60px; } .cn-main-tab.active { background: var(--cn-accent); border-color: var(--cn-accent); color: white; font-weight: 500; } .cn-left { background: var(--cn-card); border: 1px solid var(--cn-border); border-radius: var(--cn-radius); padding: 16px; box-shadow: var(--cn-shadow); backdrop-filter: blur(10px); } body.cn-fullscreen .cn-left { display: none; } body.cn-fullscreen .cn-split { grid-template-columns: minmax(0, 1fr); } body.cn-fullscreen #cn-editor-pane > .card:first-child { display: none; } body.cn-fullscreen #cn-editor-pane > .cn-tag-bar { display: none; } .cn-tags-filter { display: flex; flex-wrap: wrap; gap: 4px; margin-bottom: 8px; } .cn-tag-filter-btn { display: inline-flex; align-items: center; gap: 4px; padding: 2px 10px; border-radius: 999px; border: 1px solid rgba(148, 163, 184, 0.5); background: rgba(15, 23, 42, 0.9); color: #e5e7eb; font-size: 12px; cursor: pointer; } .cn-tag-filter-btn .dot { width: 8px; height: 8px; border-radius: 999px; background: rgba(148, 163, 184, 0.9); } .cn-tag-filter-btn.active { background: radial-gradient(circle at top left, rgba(96, 165, 250, 0.8), rgba(37, 99, 235, 0.95)); border-color: rgba(129, 140, 248, 0.95); color: #f9fafb; } .cn-right { display: flex; flex-direction: column; gap: 8px; } .cn-right-inner { display: flex; flex-direction: column; gap: 8px; flex: 1 1 auto; min-height: 0; } .cn-left-header, .cn-right-header { display: flex; align-items: center; justify-content: space-between; margin-bottom: 8px; } .cn-left .title, .cn-right .title { font-weight: 600; font-size: 13px; letter-spacing: 0.06em; text-transform: uppercase; color: #9ca3af; } .cn-left .actions, .cn-right .actions { display: inline-flex; align-items: center; gap: 4px; } .mini-btn { padding: 4px 9px; border: 1px solid rgba(148, 163, 184, 0.4); border-radius: 999px; background: rgba(15, 23, 42, 0.86); color: var(--cn-fg); cursor: pointer; font-size: 12px; transition: background 0.15s ease, border-color 0.15s ease, transform 0.1s ease, box-shadow 0.15s ease; } .mini-btn:hover { background: rgba(30, 64, 175, 0.9); border-color: rgba(129, 140, 248, 0.9); box-shadow: 0 14px 32px rgba(15, 23, 42, 0.9); transform: translateY(-0.5px); } .mini-btn:active { transform: translateY(0); box-shadow: 0 10px 24px rgba(15, 23, 42, 0.9); } .primary-btn { padding: 7px 18px; border-radius: 999px; border: none; background: radial-gradient(circle at top left, rgba(96, 165, 250, 0.8), rgba(37, 99, 235, 0.95)); color: #f9fafb; cursor: pointer; font-size: 14px; font-weight: 500; letter-spacing: 0.02em; display: inline-flex; align-items: center; gap: 4px; box-shadow: 0 20px 50px rgba(15, 23, 42, 1); transition: background 0.15s ease, transform 0.1s ease, box-shadow 0.15s ease; } .primary-btn:hover { background: radial-gradient(circle at top left, rgba(129, 140, 248, 0.85), rgba(37, 99, 235, 1)); transform: translateY(-1px); box-shadow: 0 26px 70px rgba(15, 23, 42, 1); } .primary-btn:active { transform: translateY(0); box-shadow: 0 16px 40px rgba(15, 23, 42, 0.95); } .cn-right .card { background: rgba(15, 23, 42, 0.92); border-radius: 12px; border: 1px solid rgba(51, 65, 85, 0.9); box-shadow: 0 14px 36px rgba(15, 23, 42, 0.95); } body.theme-cloud #cn-editor-pane { display: flex; flex-direction: column; gap: 8px; } body.theme-cloud .cn-editor-wrapper { flex: 1 1 auto; min-height: 0; display: flex; flex-direction: column; } .cn-list { list-style: none; padding: 0; margin: 0; max-height: calc(100vh - 220px); overflow: auto; } .cn-list li { display: flex; align-items: center; justify-content: space-between; padding: 6px 8px; border-radius: 8px; cursor: pointer; transition: background 0.12s ease, transform 0.08s ease, box-shadow 0.12s ease; } .cn-list li:hover { background: rgba(15, 23, 42, 0.92); box-shadow: 0 10px 28px rgba(15, 23, 42, 0.9); transform: translateY(-0.5px); } .cn-list li.active { background: linear-gradient(90deg, rgba(37, 99, 235, 0.3), rgba(15, 23, 42, 0.98)); box-shadow: 0 12px 32px rgba(15, 23, 42, 1); } .cn-list .name { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; font-size: 13px; } .cn-list .flags { display: flex; gap: 6px; font-size: 13px; } .cn-list .flag { color: #fbbf24; } .theme-cloud #cn-attachments { border-radius: 10px; border: 1px dashed rgba(148, 163, 184, 0.6); padding: 4px 6px; background: rgba(15, 23, 42, 0.86); max-height: 180px; overflow: auto; } body.cn-fullscreen #cn-attach-panel { display: none; } .cn-attach-card { border-radius: 8px; border: 1px solid rgba(51, 65, 85, 0.9); background: radial-gradient(circle at top left, rgba(37, 99, 235, 0.12), rgba(15, 23, 42, 0.96)); padding: 3px 6px; font-size: 11px; color: #e5e7eb; display: flex; flex-direction: row; align-items: center; gap: 8px; white-space: nowrap; } .cn-attach-card + .cn-attach-card { margin-top: 2px; } .cn-attach-card .row-top { display: flex; align-items: center; justify-content: flex-start; flex: 1 1 auto; min-width: 0; } .cn-attach-card .row-main { display: flex; align-items: center; gap: 6px; min-width: 0; } .cn-attach-card .file-ico { font-size: 14px; } .cn-attach-card .row-quick { display: flex; align-items: center; gap: 4px; } .cn-attach-card .icon-btn { border-radius: 999px; border: 1px solid rgba(148, 163, 184, 0.4); background: rgba(15, 23, 42, 0.9); color: #e5e7eb; cursor: pointer; padding: 1px 6px; font-size: 11px; text-decoration: none; } .cn-attach-card .icon-btn:hover { background: rgba(37, 99, 235, 0.9); border-color: rgba(191, 219, 254, 0.8); } .cn-attach-card .name { color: #bfdbfe; text-decoration: none; overflow: hidden; white-space: nowrap; text-overflow: ellipsis; } .cn-attach-card .name:hover { text-decoration: underline; } .cn-attach-card .row-meta { display: flex; align-items: center; gap: 4px; color: #94a3b8; flex: 0 0 auto; font-size: 10px; } .cn-attach-card .row-actions { display: flex; justify-content: flex-end; flex: 0 0 auto; margin-left: 4px; } .cn-attach-card .cn-attach-del { border-radius: 999px; border: 1px solid rgba(148, 163, 184, 0.5); background: rgba(15, 23, 42, 0.9); color: #fecaca; cursor: pointer; padding: 2px 8px; font-size: 11px; } .cn-attach-card .cn-attach-del:hover { background: rgba(220, 38, 38, 0.9); border-color: rgba(254, 202, 202, 0.9); color: #fef2f2; } .theme-cloud #cn-attachments:empty { padding: 6px; border-style: solid; border-color: rgba(51, 65, 85, 0.7); background: radial-gradient(circle at top left, rgba(37, 99, 235, 0.12), rgba(15, 23, 42, 0.9)); } .theme-cloud #cn-title.modal-input { border-radius: 999px; padding-left: 14px; padding-right: 14px; } .cn-tag-bar { margin-top: 8px; padding: 6px 10px; border-radius: 12px; border: 1px solid rgba(30, 64, 175, 0.6); background: radial-gradient(circle at top left, rgba(37, 99, 235, 0.16), rgba(15, 23, 42, 0.96)); } .cn-tag-bar-inner { display: flex; align-items: center; gap: 6px; } .cn-tag-ico { font-size: 15px; flex: 0 0 auto; } .cn-tag-chips { display: flex; flex-wrap: wrap; gap: 6px; flex: 1 1 auto; min-height: 22px; } .cn-tag-empty { font-size: 12px; color: #64748b; } .cn-tag-chip { display: inline-flex; align-items: center; gap: 4px; padding: 2px 10px; border-radius: 999px; border: 1px solid rgba(148, 163, 184, 0.7); background: rgba(15, 23, 42, 0.9); color: #e5e7eb; font-size: 12px; cursor: default; } .cn-tag-chip .label { max-width: 120px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; } .cn-tag-chip .close { cursor: pointer; font-size: 11px; opacity: 0.8; } .cn-tag-chip .close:hover { opacity: 1; } .cn-tag-add { flex: 0 0 auto; border-radius: 999px; border: 1px dashed rgba(148, 163, 184, 0.7); background: transparent; color: #e5e7eb; padding: 2px 10px; font-size: 12px; cursor: pointer; } .cn-tag-add:hover { background: rgba(37, 99, 235, 0.16); border-style: solid; } .cn-tag-picker { position: relative; margin-top: 6px; } .cn-tag-picker-menu { position: absolute; top: 0; left: 28px; min-width: 160px; max-height: 220px; overflow-y: auto; padding: 6px; border-radius: 10px; border: 1px solid rgba(148, 163, 184, 0.7); background: rgba(15, 23, 42, 0.98); box-shadow: 0 22px 60px rgba(15, 23, 42, 0.9); z-index: 30; } .cn-tag-picker-item { width: 100%; padding: 4px 8px; border-radius: 8px; border: 1px solid rgba(51, 65, 85, 0.8); background: transparent; color: #e5e7eb; font-size: 13px; text-align: left; cursor: pointer; } .cn-tag-picker-item + .cn-tag-picker-item { margin-top: 4px; } .cn-tag-picker-item:hover { background: rgba(37, 99, 235, 0.16); border-color: rgba(96, 165, 250, 0.9); } .cn-search-layer { position: fixed; inset: 0; display: flex; align-items: flex-start; justify-content: center; padding-top: 40px; z-index: 40; background: radial-gradient(circle at top, rgba(15, 23, 42, 0.96), rgba(15, 23, 42, 0.98)); } .cn-search-box { width: min(900px, 96vw); max-height: calc(100vh - 80px); background: rgba(15, 23, 42, 0.98); border-radius: 18px; border: 1px solid rgba(148, 163, 184, 0.7); box-shadow: 0 32px 80px rgba(15, 23, 42, 0.98); padding: 14px 14px 10px; display: flex; flex-direction: column; } .cn-search-header { display: grid; grid-template-columns: auto minmax(0, 1fr) auto; gap: 8px; align-items: center; } .cn-search-scope { font-size: 13px; color: #e5e7eb; } .cn-search-input-wrap { background: rgba(15, 23, 42, 0.95); border-radius: 999px; border: 1px solid rgba(148, 163, 184, 0.7); padding: 6px 10px; } .cn-search-input { width: 100%; border: none; outline: none; background: transparent; color: #e5e7eb; font-size: 14px; } .cn-search-input::placeholder { color: #64748b; } .cn-search-close { width: 30px; height: 30px; border-radius: 999px; border: 1px solid rgba(148, 163, 184, 0.6); background: rgba(15, 23, 42, 0.9); color: #e5e7eb; cursor: pointer; } .cn-search-toolbar { display: flex; align-items: center; justify-content: space-between; margin-top: 8px; margin-bottom: 6px; } .cn-search-count { font-size: 12px; color: #9ca3af; } .cn-search-sort-wrap { position: relative; } .cn-search-sort-btn { border-radius: 999px; border: 1px solid rgba(148, 163, 184, 0.7); background: rgba(15, 23, 42, 0.96); color: #e5e7eb; padding: 3px 12px; font-size: 12px; cursor: pointer; } .cn-search-sort-menu { position: absolute; right: 0; top: 120%; min-width: 120px; border-radius: 12px; border: 1px solid rgba(31, 41, 55, 0.9); background: rgba(15, 23, 42, 0.98); box-shadow: 0 22px 60px rgba(15, 23, 42, 0.98); padding: 4px; } .cn-search-sort-menu button { display: block; width: 100%; text-align: left; border: none; background: transparent; color: #e5e7eb; padding: 6px 10px; font-size: 12px; border-radius: 8px; cursor: pointer; } .cn-search-sort-menu button.active, .cn-search-sort-menu button:hover { background: rgba(37, 99, 235, 0.95); } .cn-search-results { flex: 1 1 auto; margin-top: 4px; border-radius: 10px; background: rgba(15, 23, 42, 0.96); border: 1px solid rgba(31, 41, 55, 0.95); overflow: auto; } .cn-search-item { padding: 8px 10px; cursor: pointer; border-bottom: 1px solid rgba(31, 41, 55, 0.9); } .cn-search-item:last-child { border-bottom: none; } .cn-search-item:hover { background: rgba(30, 64, 175, 0.9); } .cn-search-item-title { font-size: 13px; color: #e5e7eb; margin-bottom: 2px; } .cn-search-item-snippet { font-size: 12px; color: #9ca3af; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; } .cn-search-item-meta { font-size: 11px; color: #6b7280; margin-top: 2px; } .cn-search-item mark { background: rgba(252, 211, 77, 0.3); color: inherit; } .cn-spinner { width: 24px; height: 24px; border-radius: 50%; border: 3px solid #cbd5e1; border-top-color: #2563eb; animation: cnspin 1s linear infinite; } @keyframes cnspin { to { transform: rotate(360deg); } } .loading-log { background: #020617; color: #cbd5e1; border: 1px solid #1f2937; border-radius: 12px; padding: 8px; white-space: pre-wrap; max-height: 320px; overflow: auto; font-family: ui-monospace, Menlo, Consolas, monospace; font-size: 12px; } .tox .tox-toolbar__primary { border-top-left-radius: 12px; border-top-right-radius: 12px; } .tox-tinymce { border-radius: 12px; border-color: var(--cn-border); box-shadow: 0 18px 46px rgba(15, 23, 42, 0.95); } .tox-editor-header, .tox-toolbar, .tox-toolbar__overflow, .tox-statusbar { border-color: var(--cn-border); background: rgba(15, 23, 42, 0.96); } .tox .tox-edit-area__iframe { background: #020617; } #cn-settings-modal .modal-body.cn-settings-body { max-width: 520px; } .cn-settings-body { border-radius: 16px; border: 1px solid rgba(148, 163, 184, 0.7); background: radial-gradient(circle at top left, rgba(37, 99, 235, 0.9), rgba(15, 23, 42, 0.98)); box-shadow: 0 32px 80px rgba(15, 23, 42, 0.96); } .cn-settings-header { display: flex; align-items: center; justify-content: space-between; margin-bottom: 10px; } .cn-settings-title { font-size: 16px; font-weight: 600; } .cn-settings-tabs { display: inline-flex; align-items: center; gap: 4px; padding: 4px; border-radius: 999px; background: rgba(15, 23, 42, 0.96); margin-bottom: 10px; } .cn-settings-tab { border-radius: 999px; border: none; background: transparent; color: #9ca3af; font-size: 13px; padding: 4px 12px; cursor: pointer; } .cn-settings-tab.active { background: radial-gradient(circle at top left, rgba(96, 165, 250, 0.7), rgba(37, 99, 235, 0.9)); color: #f9fafb; } .cn-settings-panels { margin-top: 4px; } .cn-settings-panel { display: none; } .cn-settings-panel.active { display: block; } .cn-tags-settings-list { max-height: 260px; overflow-y: auto; margin-bottom: 10px; } .cn-tag-settings-row { display: grid; grid-template-columns: minmax(0, 1.6fr) minmax(0, 1.1fr) auto; gap: 6px; align-items: center; margin-bottom: 6px; } .cn-tag-settings-name, .cn-tag-settings-color { font-size: 13px; } .cn-tag-settings-color { text-align: left; } .cn-tag-settings-del { white-space: nowrap; } .cn-tag-settings-empty { font-size: 13px; color: #cbd5e1; } body.theme-cloud[data-theme="light"] .cn-settings-body { background: radial-gradient(circle at top left, rgba(191, 219, 254, 0.9), #ffffff); border-color: #d1d5db; box-shadow: 0 26px 60px rgba(148, 163, 184, 0.7); } body.theme-cloud[data-theme="light"] .cn-settings-tabs { background: #eff6ff; } body.theme-cloud[data-theme="light"] .cn-settings-tab { color: #6b7280; } body.theme-cloud[data-theme="light"] .cn-settings-tab.active { background: radial-gradient(circle at top left, rgba(59, 130, 246, 0.85), rgba(37, 99, 235, 0.98)); color: #f9fafb; } body.theme-cloud .cn-versions-body { width: min(1100px, 94vw); max-height: 86vh; overflow: hidden; border-radius: 16px; border: 1px solid rgba(148, 163, 184, 0.7); background: rgba(15, 23, 42, 0.98); display: flex; flex-direction: column; gap: 10px; } body.theme-cloud .cn-versions-header { display: flex; align-items: center; justify-content: space-between; } body.theme-cloud .cn-versions-title { font-size: 16px; font-weight: 600; } body.theme-cloud .cn-versions-toolbar { display: flex; align-items: center; justify-content: space-between; gap: 8px; } body.theme-cloud .cn-versions-summary { color: #94a3b8; font-size: 12px; } body.theme-cloud .cn-versions-main { display: grid; grid-template-columns: 320px minmax(0, 1fr); gap: 12px; min-height: 0; flex: 1 1 auto; } body.theme-cloud .cn-versions-list { overflow-y: auto; border-radius: 12px; border: 1px solid rgba(51, 65, 85, 0.8); background: rgba(2, 6, 23, 0.7); padding: 8px; } body.theme-cloud .cn-version-row { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 6px; align-items: center; padding: 8px; border-radius: 10px; border: 1px solid rgba(51, 65, 85, 0.8); background: rgba(15, 23, 42, 0.92); } body.theme-cloud .cn-version-row + .cn-version-row { margin-top: 8px; } body.theme-cloud .cn-version-main { display: flex; flex-direction: column; gap: 4px; } body.theme-cloud .cn-version-title { font-size: 13px; color: #e5e7eb; } body.theme-cloud .cn-version-time { font-size: 12px; color: #94a3b8; } body.theme-cloud .cn-version-actions { display: flex; flex-direction: column; gap: 6px; } body.theme-cloud .cn-versions-compare { display: flex; flex-direction: column; gap: 8px; min-height: 0; } body.theme-cloud .cn-compare-header { display: grid; grid-template-columns: 1fr 1fr; gap: 8px; } body.theme-cloud .cn-compare-title { font-size: 12px; color: #94a3b8; border: 1px solid rgba(51, 65, 85, 0.8); border-radius: 8px; padding: 6px 8px; background: rgba(2, 6, 23, 0.7); } body.theme-cloud .cn-compare-body { display: grid; grid-template-columns: 1fr 1fr; gap: 8px; min-height: 0; flex: 1 1 auto; } body.theme-cloud .cn-compare-pane { border: 1px solid rgba(51, 65, 85, 0.8); border-radius: 10px; background: rgba(2, 6, 23, 0.7); padding: 8px; overflow: auto; font-family: ui-monospace, SFMono-Regular, Menlo, Consolas, "Liberation Mono", monospace; font-size: 12px; line-height: 1.6; white-space: pre-wrap; } body.theme-cloud .cn-diff-line { display: block; padding: 0 6px; border-radius: 6px; } body.theme-cloud .cn-diff-line.add { background: rgba(16, 185, 129, 0.15); color: #86efac; } body.theme-cloud .cn-diff-line.del { background: rgba(248, 113, 113, 0.15); color: #fca5a5; } body.theme-cloud .cn-diff-line.empty { color: rgba(148, 163, 184, 0.35); } body.theme-cloud .cn-conflict-body { width: min(520px, 92vw); border-radius: 16px; border: 1px solid rgba(148, 163, 184, 0.7); background: radial-gradient(circle at top left, rgba(37, 99, 235, 0.9), rgba(15, 23, 42, 0.98)); box-shadow: 0 32px 80px rgba(15, 23, 42, 0.96); } body.theme-cloud .cn-conflict-title { font-size: 16px; font-weight: 600; margin-bottom: 8px; } body.theme-cloud .cn-conflict-desc { font-size: 13px; color: #e5e7eb; margin-bottom: 12px; } body.theme-cloud .cn-conflict-actions { display: flex; gap: 8px; flex-wrap: wrap; } body.theme-cloud[data-theme="light"] .cn-search-layer { background: radial-gradient(circle at top, rgba(229, 240, 255, 0.94), rgba(243, 244, 246, 0.98)); } body.theme-cloud[data-theme="light"] .cn-search-box { background: #ffffff; border-color: #d1d5db; box-shadow: 0 28px 70px rgba(148, 163, 184, 0.8); } body.theme-cloud[data-theme="light"] .cn-search-input-wrap { background: #f3f4f6; border-color: #cbd5e1; } body.theme-cloud[data-theme="light"] .cn-search-input { color: #111827; } body.theme-cloud[data-theme="light"] .cn-search-input::placeholder { color: #9ca3af; } body.theme-cloud[data-theme="light"] .cn-search-close { background: #ffffff; border-color: #cbd5e1; color: #111827; } body.theme-cloud[data-theme="light"] .cn-search-count { color: #6b7280; } body.theme-cloud[data-theme="light"] .cn-search-sort-btn { background: #f3f4f6; border-color: #cbd5e1; color: #111827; } body.theme-cloud[data-theme="light"] .cn-search-sort-menu { background: #ffffff; border-color: #e5e7eb; box-shadow: 0 20px 50px rgba(148, 163, 184, 0.7); } body.theme-cloud[data-theme="light"] .cn-search-sort-menu button { color: #111827; } body.theme-cloud[data-theme="light"] .cn-search-sort-menu button.active, body.theme-cloud[data-theme="light"] .cn-search-sort-menu button:hover { background: rgba(59, 130, 246, 0.9); color: #f9fafb; } body.theme-cloud[data-theme="light"] .cn-search-results { background: #f9fafb; border-color: #e5e7eb; } body.theme-cloud[data-theme="light"] .cn-search-item { border-bottom-color: #e5e7eb; } body.theme-cloud[data-theme="light"] .cn-search-item:hover { background: #e5f0ff; } body.theme-cloud[data-theme="light"] .cn-search-item-title { color: #111827; } body.theme-cloud[data-theme="light"] .cn-search-item-snippet { color: #4b5563; } body.theme-cloud[data-theme="light"] .cn-search-item-meta { color: #9ca3af; } body.theme-cloud[data-theme="light"] { background: radial-gradient(circle at top, #e5f0ff 0, #f3f4f6 42%, #e5e7eb 100%); color: #111827; } body.theme-cloud[data-theme="light"] .cn-header h2 { color: #111827; } body.theme-cloud[data-theme="light"] .icon-theme, body.theme-cloud[data-theme="light"] .icon-toggle { background: rgba(255, 255, 255, 0.9); border-color: rgba(148, 163, 184, 0.6); color: #0f172a; } body.theme-cloud[data-theme="light"] .icon-theme:hover, body.theme-cloud[data-theme="light"] .icon-toggle:hover { background: rgba(59, 130, 246, 0.1); border-color: rgba(59, 130, 246, 0.8); box-shadow: 0 0 0 1px rgba(148, 163, 184, 0.6), 0 18px 35px rgba(148, 163, 184, 0.4); } body.theme-cloud[data-theme="light"] #cn-login.card { background: radial-gradient(circle at 0 0, rgba(59, 130, 246, 0.14) 0, #ffffff 50%, #e5e7eb 100%); border-color: rgba(148, 163, 184, 0.8); box-shadow: 0 30px 60px rgba(148, 163, 184, 0.6); } body.theme-cloud[data-theme="light"] #cn-login h3 { color: #111827; } body.theme-cloud[data-theme="light"] .modal-label { color: #4b5563; } body.theme-cloud[data-theme="light"] .modal-input { background: #ffffff; border-color: #cbd5e1; color: #111827; } body.theme-cloud[data-theme="light"] .modal-input::placeholder { color: #9ca3af; } body.theme-cloud[data-theme="light"] .modal-input:focus { border-color: #3b82f6; box-shadow: 0 0 0 1px rgba(59, 130, 246, 0.7), 0 18px 40px rgba(148, 163, 184, 0.8); background: #ffffff; } body.theme-cloud[data-theme="light"] .cn-left { background: #ffffff; border-color: #e5e7eb; box-shadow: 0 22px 50px rgba(148, 163, 184, 0.6); } body.theme-cloud[data-theme="light"] .cn-right .card { background: #ffffff; border-color: #e5e7eb; box-shadow: 0 18px 40px rgba(148, 163, 184, 0.6); } body.theme-cloud[data-theme="light"] .cn-left .title, body.theme-cloud[data-theme="light"] .cn-right .title { color: #6b7280; } body.theme-cloud[data-theme="light"] .mini-btn { background: #f3f4f6; border-color: #cbd5e1; color: #111827; } body.theme-cloud[data-theme="light"] .mini-btn:hover { background: #e5e7eb; border-color: #93c5fd; box-shadow: 0 10px 24px rgba(148, 163, 184, 0.8); } body.theme-cloud[data-theme="light"] .primary-btn { box-shadow: 0 16px 40px rgba(59, 130, 246, 0.45); } body.theme-cloud[data-theme="light"] .primary-btn:hover { box-shadow: 0 22px 60px rgba(59, 130, 246, 0.55); } body.theme-cloud[data-theme="light"] #cn-attachments { background: #f9fafb; border-color: #cbd5e1; } body.theme-cloud[data-theme="light"] #cn-attachments:empty { background: radial-gradient(circle at top left, rgba(59, 130, 246, 0.08), #f9fafb); border-color: #d1d5db; } body.theme-cloud[data-theme="light"] .cn-attach-card { background: radial-gradient(circle at top left, rgba(59, 130, 246, 0.08), #ffffff); border-color: #e5e7eb; color: #111827; } body.theme-cloud[data-theme="light"] .cn-attach-card .row-meta { color: #6b7280; } body.theme-cloud[data-theme="light"] .cn-attach-card .name { color: #1d4ed8; } body.theme-cloud[data-theme="light"] .cn-attach-card .icon-btn { background: #eff6ff; border-color: #bfdbfe; color: #1f2937; } body.theme-cloud[data-theme="light"] .cn-attach-card .icon-btn:hover { background: #3b82f6; border-color: #bfdbfe; color: #f9fafb; } body.theme-cloud[data-theme="light"] .cn-attach-card .cn-attach-del { background: #fef2f2; border-color: #fecaca; color: #b91c1c; } body.theme-cloud[data-theme="light"] .cn-attach-card .cn-attach-del:hover { background: #dc2626; border-color: #fee2e2; color: #fef2f2; } body.theme-cloud[data-theme="light"] .cn-list li:hover { background: #f3f4f6; box-shadow: 0 8px 20px rgba(148, 163, 184, 0.6); } body.theme-cloud[data-theme="light"] .cn-list li.active { background: linear-gradient(90deg, rgba(59, 130, 246, 0.18), #e5f0ff); box-shadow: 0 10px 26px rgba(59, 130, 246, 0.5); } body.theme-cloud[data-theme="light"] .loading-log { background: #f9fafb; border-color: #e5e7eb; color: #111827; } body.theme-cloud[data-theme="light"] .cn-tag-bar { border-color: #d1d5db; background: linear-gradient(90deg, #f9fafb, #eef2ff); } body.theme-cloud[data-theme="light"] .cn-tag-chip { background: #e5f0ff; color: #111827; border-color: #bfdbfe; } body.theme-cloud[data-theme="light"] .cn-tag-add { color: #4b5563; border-color: #d1d5db; } body.theme-cloud[data-theme="light"] .cn-tag-add:hover { background: #e5e7eb; } body.theme-cloud[data-theme="light"] .cn-tags-filter { margin-bottom: 8px; } body.theme-cloud[data-theme="light"] .cn-tag-filter-btn { background: #e5f0ff; color: #111827; border-color: #bfdbfe; } body.theme-cloud[data-theme="light"] .cn-tag-filter-btn.active { background: linear-gradient(90deg, #60a5fa, #2563eb); color: #f9fafb; } body.theme-cloud[data-theme="light"] .cn-tag-picker-menu { background: #f9fafb; border-color: #e5e7eb; } body.theme-cloud[data-theme="light"] .cn-tag-picker-item { border-color: #e5e7eb; color: #111827; } body.theme-cloud[data-theme="light"] .cn-tag-picker-item:hover { background: #e0f2fe; border-color: #60a5fa; } body.theme-cloud[data-theme="light"] .tox-tinymce { box-shadow: 0 18px 40px rgba(148, 163, 184, 0.6); } body.theme-cloud[data-theme="light"] .tox-editor-header, body.theme-cloud[data-theme="light"] .tox-toolbar, body.theme-cloud[data-theme="light"] .tox-toolbar__overflow, body.theme-cloud[data-theme="light"] .tox-statusbar { background: #f3f4f6; border-color: #e5e7eb; } @media (max-width: 840px) { .cn-split { grid-template-columns: minmax(0, 1fr); } .cn-left { order: 2; } .cn-right { order: 1; } .cn-list { max-height: 220px; } } @media (max-width: 480px) { .theme-cloud .container { width: 96vw; } .cn-header { flex-direction: column; align-items: flex-start; gap: 8px; } .header-actions { width: 100%; flex-wrap: wrap; justify-content: flex-start; } .cn-main-tabs { flex-wrap: wrap; gap: 6px; } .cn-main-tab { padding: 6px 10px; font-size: 12px; min-width: 52px; } .cn-left, .cn-right { gap: 6px; } .cn-left-header, .cn-right-header { flex-wrap: wrap; gap: 6px; } .cn-left .actions, .cn-right .actions { flex-wrap: wrap; } .mini-btn, .primary-btn { padding: 4px 8px; font-size: 12px; } .cn-list { max-height: 180px; } .cn-dashboard { padding: 14px; } .cn-dashboard-grid { grid-template-columns: 1fr; gap: 12px; } .cn-dash-grid-card { padding: 14px; min-height: 160px; } .cn-search-layer { padding-top: 16px; } .cn-search-box { width: 94vw; max-height: calc(100vh - 32px); padding: 10px 10px 8px; } .cn-search-header { grid-template-columns: 1fr; gap: 8px; } .cn-search-toolbar { flex-wrap: wrap; gap: 8px; } .cn-search-sort-wrap { width: 100%; } .cn-search-sort-btn { width: 100%; } .cn-settings-body { width: min(92vw, 520px); padding: 14px; } .cn-settings-tabs { flex-wrap: wrap; gap: 6px; } } @media (max-width: 360px) { .cn-header h2 { font-size: 18px; } .icon-theme, .icon-toggle { width: 32px; height: 32px; font-size: 14px; } .cn-main-tab { padding: 5px 8px; font-size: 11px; } .mini-btn, .primary-btn { padding: 3px 6px; font-size: 11px; } .cn-list { max-height: 150px; } .cn-dashboard { padding: 12px; } .cn-dash-grid-title { font-size: 14px; } .cn-dash-grid-stat .value { font-size: 14px; } .cn-search-box { width: 92vw; } .cn-settings-body { width: 94vw; } } /* 驾驶舱网格布局 */ .cn-dashboard { padding: 20px; overflow-y: auto; } .cn-dashboard-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(300px, 1fr)); gap: 20px; margin-bottom: 20px; } .cn-dash-grid-card { background: var(--cn-card); border-radius: var(--cn-radius); padding: 20px; border: 1px solid var(--cn-border); transition: var(--cn-transition); display: flex; flex-direction: column; min-height: 200px; } .cn-dash-grid-card:hover { transform: translateY(-2px); box-shadow: var(--cn-shadow); border-color: var(--cn-accent); } .cn-dash-grid-card-wide { grid-column: span 2; } .cn-dash-grid-header { display: flex; align-items: center; gap: 8px; margin-bottom: 12px; } .cn-dash-grid-icon { font-size: 22px; flex: 0 0 auto; } .cn-dash-grid-title { font-size: 16px; font-weight: 600; color: var(--cn-fg); flex: 1 1 auto; } .cn-dash-grid-content { flex: 1; display: flex; flex-direction: column; } .cn-dash-grid-stats { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; } .cn-dash-grid-stat { text-align: center; padding: 12px; background: var(--cn-bg); border-radius: 8px; border: 1px solid var(--cn-border); } .cn-dash-grid-stat .label { font-size: 12px; color: var(--cn-fg-secondary); margin-bottom: 6px; } .cn-dash-grid-stat .value { font-size: 16px; font-weight: 600; color: var(--cn-fg); } .cn-dash-grid-actions { display: flex; flex-direction: column; gap: 10px; margin-bottom: 15px; } .cn-dash-grid-btn { background: var(--cn-accent-soft); border: 1px solid var(--cn-border); border-radius: 8px; padding: 10px 16px; color: var(--cn-accent); font-size: 14px; cursor: pointer; transition: var(--cn-transition); width: 100%; } .cn-dash-grid-btn:hover { background: var(--cn-accent); color: white; border-color: var(--cn-accent); } .cn-dash-grid-sub { font-size: 12px; color: var(--cn-fg-secondary); text-align: center; margin-top: auto; padding-top: 10px; border-top: 1px solid var(--cn-border); } .cn-dashboard-empty { text-align: center; color: var(--cn-fg-secondary); padding: 40px 20px; font-size: 14px; } .cn-dash-tag-row { display: flex; align-items: center; gap: 8px; padding: 4px 0; font-size: 13px; cursor: pointer; } .cn-dash-tag-row .dot { width: 8px; height: 8px; border-radius: 999px; background: var(--cn-accent-soft); flex: 0 0 auto; } .cn-dash-tag-row .name { flex: 1 1 auto; overflow: hidden; white-space: nowrap; text-overflow: ellipsis; } .cn-dash-tag-row .count { flex: 0 0 auto; min-width: 28px; padding: 2px 10px; border-radius: 999px; border: 1px solid var(--cn-border); background: var(--cn-bg); text-align: center; font-size: 12px; font-variant-numeric: tabular-nums; color: var(--cn-fg); } .cn-dash-tag-row.untagged .dot { background: transparent; border: 1px dashed var(--cn-border); }