Add files via upload

This commit is contained in:
公明
2026-07-17 16:51:35 +08:00
committed by GitHub
parent 217f8f9648
commit 9f092388e1
13 changed files with 1913 additions and 255 deletions
+380 -67
View File
@@ -3957,11 +3957,61 @@ html[data-theme="dark"] .new-chat-btn:focus-visible {
}
.process-details-content .progress-timeline.expanded {
max-height: 2000px;
max-height: min(70vh, 760px);
overflow-x: hidden;
overflow-y: auto;
opacity: 1;
margin-top: 12px;
scroll-behavior: smooth;
/* 详情内部可滚动时优先滚详情到达边界或运行中取消内层滚动时
继续把滚轮自然传给外层 #chat-messages避免鼠标悬停卡片后滚不动 */
overscroll-behavior: auto;
scrollbar-gutter: stable;
}
.process-details-auto-sentinel {
display: block;
width: 100%;
min-height: 34px;
margin: 6px 0 10px;
border: 0;
border-radius: 8px;
background: transparent;
color: var(--text-secondary);
font-size: 12px;
cursor: default;
}
.process-details-auto-sentinel.is-error {
color: var(--danger-color, #dc2626);
background: rgba(220, 38, 38, 0.08);
cursor: pointer;
}
.process-details-jump-latest {
position: sticky;
bottom: 12px;
z-index: 4;
display: block;
width: max-content;
max-width: calc(100% - 24px);
margin: -42px 12px 10px auto;
padding: 7px 12px;
border: 1px solid rgba(59, 130, 246, 0.35);
border-radius: 999px;
background: var(--bg-primary);
color: var(--primary-color, #2563eb);
box-shadow: 0 4px 14px rgba(15, 23, 42, 0.14);
opacity: 0;
pointer-events: none;
transform: translateY(6px);
transition: opacity 0.18s ease, transform 0.18s ease;
}
.process-details-jump-latest.visible {
opacity: 1;
pointer-events: auto;
transform: translateY(0);
}
.chat-input-container {
@@ -5555,6 +5605,7 @@ html[data-theme="dark"] .login-card .login-submit:disabled {
max-height: none;
overflow-x: hidden;
overflow-y: visible;
overscroll-behavior: auto;
}
.timeline-item {
@@ -9142,6 +9193,10 @@ html[data-theme="dark"] .robot-binding-service-hint-icon {
flex-shrink: 0;
}
.tool-item > .theme-checkbox {
--theme-checkbox-size: 18px;
}
.tool-item-info {
flex: 1;
min-width: 0;
@@ -9177,6 +9232,11 @@ html[data-theme="dark"] .robot-binding-service-hint-icon {
margin: 0;
}
.tool-resident-toggle .theme-checkbox {
--theme-checkbox-size: 14px;
border-radius: 3px;
}
.external-tool-badge {
display: inline-flex;
align-items: center;
@@ -12932,35 +12992,33 @@ html[data-theme="dark"] .robot-binding-service-hint-icon {
display: flex;
gap: 6px;
min-width: 0;
overflow-x: auto;
overflow-y: hidden;
flex: 1 1 auto;
flex-wrap: nowrap;
flex-wrap: wrap;
padding: 1px 1px 3px;
scrollbar-width: thin;
scrollbar-color: rgba(148, 163, 184, 0.45) transparent;
}
.mcp-stats-timeline-moment {
display: inline-flex;
align-items: center;
gap: 6px;
min-width: 156px;
max-width: none;
width: fit-content;
min-width: 0;
max-width: 100%;
padding: 4px 8px;
border-radius: 999px;
background: rgba(59, 130, 246, 0.08);
color: #1d4ed8;
font-size: 0.6875rem;
font-weight: 600;
flex: 1 0 156px;
flex: 0 0 auto;
box-sizing: border-box;
overflow: hidden;
}
.mcp-stats-timeline-moment__time {
min-width: 0;
flex: 1 1 auto;
max-width: 10rem;
flex: 0 1 auto;
overflow: hidden;
text-overflow: ellipsis;
white-space: nowrap;
@@ -13718,6 +13776,7 @@ tr.mcp-stats-tool-row[data-tool-name]:focus-visible {
}
.monitor-execution-checkbox {
--theme-checkbox-size: 18px;
cursor: pointer;
width: 18px;
height: 18px;
@@ -13736,6 +13795,7 @@ tr.mcp-stats-tool-row[data-tool-name]:focus-visible {
/* 统一表头复选框大小 */
#monitor-select-all {
--theme-checkbox-size: 18px;
width: 18px;
height: 18px;
cursor: pointer;
@@ -16839,6 +16899,10 @@ tr.mcp-stats-tool-row[data-tool-name]:focus-visible {
cursor: pointer;
}
.batch-table-col-checkbox .theme-checkbox {
--theme-checkbox-size: 16px;
}
.batch-footer-actions {
display: flex;
gap: 12px;
@@ -22222,16 +22286,21 @@ tr.mcp-stats-tool-row[data-tool-name]:focus-visible {
/* 关键提醒条 */
.dashboard-alert-banner {
--dashboard-alert-accent: #3b82f6;
--dashboard-alert-accent-soft: rgba(59, 130, 246, 0.07);
--dashboard-alert-accent-border: rgba(59, 130, 246, 0.18);
position: relative;
overflow: hidden;
display: flex;
align-items: center;
gap: 14px;
padding: 14px 18px;
border-radius: 14px;
padding: 14px 16px;
border-radius: 12px;
margin-bottom: 18px;
background: linear-gradient(135deg, #fff5f5 0%, #fee2e2 100%);
border: 1px solid rgba(239, 68, 68, 0.25);
color: #7f1d1d;
box-shadow: 0 2px 8px rgba(239, 68, 68, 0.08);
background: linear-gradient(105deg, var(--dashboard-alert-accent-soft) 0%, rgba(255, 255, 255, 0.98) 28%, #fff 100%);
border: 1px solid var(--dashboard-alert-accent-border);
color: var(--text-primary, #111827);
box-shadow: 0 5px 18px rgba(15, 23, 42, 0.045), inset 0 1px 0 rgba(255, 255, 255, 0.68);
animation: dashboard-alert-slide-in 0.3s ease-out;
}
@@ -22243,30 +22312,34 @@ tr.mcp-stats-tool-row[data-tool-name]:focus-visible {
.dashboard-alert-banner[hidden] { display: none; }
.dashboard-alert-banner.is-warning {
background: linear-gradient(135deg, #fffbeb 0%, #fef3c7 100%);
border-color: rgba(245, 158, 11, 0.3);
color: #78350f;
--dashboard-alert-accent: #f59e0b;
--dashboard-alert-accent-soft: rgba(245, 158, 11, 0.07);
--dashboard-alert-accent-border: rgba(245, 158, 11, 0.18);
}
.dashboard-alert-banner.is-danger {
background: linear-gradient(135deg, #fff5f5 0%, #fee2e2 100%);
border-color: rgba(239, 68, 68, 0.3);
color: #7f1d1d;
--dashboard-alert-accent: #ef4444;
--dashboard-alert-accent-soft: rgba(239, 68, 68, 0.07);
--dashboard-alert-accent-border: rgba(239, 68, 68, 0.18);
}
.dashboard-alert-icon {
width: 36px;
height: 36px;
border-radius: 10px;
background: rgba(255, 255, 255, 0.7);
background: var(--dashboard-alert-accent-soft);
color: var(--dashboard-alert-accent);
box-shadow: inset 0 0 0 1px var(--dashboard-alert-accent-border);
display: inline-flex;
align-items: center;
justify-content: center;
flex-shrink: 0;
}
.dashboard-alert-banner.is-danger .dashboard-alert-icon { color: #dc2626; }
.dashboard-alert-banner.is-warning .dashboard-alert-icon { color: #d97706; }
.dashboard-alert-icon svg {
width: 19px;
height: 19px;
}
.dashboard-alert-content {
flex: 1;
@@ -22274,16 +22347,17 @@ tr.mcp-stats-tool-row[data-tool-name]:focus-visible {
}
.dashboard-alert-title {
font-size: 0.9375rem;
font-size: 0.9rem;
font-weight: 700;
line-height: 1.3;
margin-bottom: 2px;
line-height: 1.35;
margin-bottom: 3px;
letter-spacing: 0.01em;
}
.dashboard-alert-desc {
font-size: 0.8125rem;
font-size: 0.8rem;
line-height: 1.45;
opacity: 0.92;
color: var(--text-secondary, #64748b);
}
.dashboard-alert-actions {
@@ -22294,28 +22368,35 @@ tr.mcp-stats-tool-row[data-tool-name]:focus-visible {
.dashboard-alert-btn {
appearance: none;
border: 1px solid currentColor;
background: rgba(255, 255, 255, 0.85);
color: inherit;
border: 1px solid var(--dashboard-alert-accent-border);
background: var(--dashboard-alert-accent-soft);
color: var(--dashboard-alert-accent);
font-size: 0.8125rem;
font-weight: 600;
padding: 6px 14px;
border-radius: 8px;
padding: 6px 12px;
border-radius: 7px;
cursor: pointer;
transition: background 0.2s, transform 0.15s;
box-shadow: none;
transition: background 0.16s, border-color 0.16s, color 0.16s, filter 0.16s;
white-space: nowrap;
}
.dashboard-alert-btn:hover {
background: #fff;
transform: translateY(-1px);
filter: saturate(1.15) brightness(0.98);
border-color: var(--dashboard-alert-accent);
}
.dashboard-alert-btn:focus-visible,
.dashboard-alert-close:focus-visible {
outline: 2px solid var(--dashboard-alert-accent);
outline-offset: 2px;
}
.dashboard-alert-btn-secondary {
background: transparent;
border-color: rgba(0, 0, 0, 0.15);
color: inherit;
opacity: 0.85;
border-color: var(--dashboard-alert-accent-border);
color: var(--dashboard-alert-accent);
box-shadow: none;
}
/* 告警条「× 忽略」按钮:低权重,hover 时才显形 */
@@ -22630,9 +22711,20 @@ tr.mcp-stats-tool-row[data-tool-name]:focus-visible {
@media (max-width: 720px) {
.dashboard-alert-banner {
flex-wrap: wrap;
align-items: flex-start;
padding: 14px;
}
.dashboard-alert-actions {
width: 100%;
padding-left: 52px;
}
.dashboard-alert-close {
position: absolute;
top: 10px;
right: 10px;
}
.dashboard-alert-content {
padding-right: 28px;
}
.dashboard-recommend-list {
grid-template-columns: 1fr;
@@ -28769,9 +28861,14 @@ html[data-theme="dark"] .skills-management-page .skill-card-actions .btn-seconda
}
.info-collect-results-table-wrap {
--table-scroll-header-height: 41px;
overflow: auto;
max-height: 60vh;
position: relative;
scrollbar-gutter: stable;
background: var(--bg-primary);
scrollbar-width: thin;
scrollbar-color: color-mix(in srgb, var(--text-muted, #94a3b8) 52%, transparent) var(--bg-primary);
}
.info-collect-table {
@@ -28898,6 +28995,10 @@ html[data-theme="dark"] .skills-management-page .skill-card-actions .btn-seconda
text-align: center;
}
.info-collect-col-select .theme-checkbox {
--theme-checkbox-size: 16px;
}
.info-collect-table thead th.info-collect-col-select,
.info-collect-table tbody td.info-collect-col-select {
position: sticky;
@@ -31406,6 +31507,23 @@ html[data-theme="dark"] .chat-files-toast.chat-toast--error {
overscroll-behavior: contain;
-webkit-overflow-scrolling: touch;
}
.projects-panel-pagination {
flex: 0 0 auto;
border-top: 0;
border-radius: 0 0 12px 12px;
}
#project-panel-assets .projects-table-wrap--with-pagination {
border-radius: 12px 12px 0 0;
}
#project-panel-assets .projects-panel-pagination.pagination-fixed {
border-color: var(--border-color, #e2e8f0);
border-top: 0;
box-shadow: none;
}
#project-panel-assets .projects-panel-pagination.pagination-fixed .pagination {
border-top: 1px solid var(--border-color, #e2e8f0);
border-radius: 0 0 12px 12px;
}
#project-panel-conversations .projects-table-wrap,
#project-panel-assets .projects-table-wrap,
#project-panel-vulns .projects-table-wrap {
@@ -31434,6 +31552,7 @@ html[data-theme="dark"] .chat-files-toast.chat-toast--error {
margin: 0;
}
.projects-panel-count { flex-shrink: 0; padding: 4px 9px; border-radius: 999px; color: #2563eb; background: #eff6ff; font-size: .75rem; font-weight: 600; }
html[data-theme="dark"] .projects-panel-count { color: var(--accent-color); background: rgba(96, 165, 250, 0.14); }
.projects-asset-target { display: block; max-width: 100%; padding: 0; border: 0; background: transparent; color: #2563eb; font: inherit; font-weight: 600; cursor: pointer; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.projects-asset-target:hover { text-decoration: underline; }
#project-panel-assets .data-table--projects th:nth-child(1), #project-panel-assets .data-table--projects td:nth-child(1) { width: 24%; }
@@ -33944,17 +34063,51 @@ html[data-theme="dark"] .dashboard-overview-status {
border-color: rgba(96, 165, 250, 0.24);
}
html[data-theme="dark"] .dashboard-alert-banner,
html[data-theme="dark"] .dashboard-alert-banner.is-warning,
html[data-theme="dark"] .dashboard-alert-banner.is-danger {
background: linear-gradient(135deg, rgba(127, 29, 29, 0.32) 0%, rgba(120, 53, 15, 0.24) 100%);
color: #fecaca;
border-color: rgba(248, 113, 113, 0.35);
html[data-theme="dark"] .dashboard-alert-banner {
--dashboard-alert-accent: #60a5fa;
--dashboard-alert-accent-soft: rgba(96, 165, 250, 0.07);
--dashboard-alert-accent-border: rgba(96, 165, 250, 0.16);
background: linear-gradient(105deg, var(--dashboard-alert-accent-soft) 0%, rgba(17, 27, 45, 0.98) 30%, rgba(15, 24, 40, 0.98) 100%);
color: #f1f5f9;
border-color: var(--dashboard-alert-accent-border);
box-shadow: 0 6px 20px rgba(2, 6, 23, 0.18), inset 0 1px 0 rgba(255, 255, 255, 0.025);
}
html[data-theme="dark"] .dashboard-alert-banner.is-warning {
--dashboard-alert-accent: #fbbf24;
--dashboard-alert-accent-soft: rgba(251, 191, 36, 0.07);
--dashboard-alert-accent-border: rgba(251, 191, 36, 0.17);
}
html[data-theme="dark"] .dashboard-alert-banner.is-danger {
--dashboard-alert-accent: #f87171;
--dashboard-alert-accent-soft: rgba(248, 113, 113, 0.075);
--dashboard-alert-accent-border: rgba(248, 113, 113, 0.18);
}
html[data-theme="dark"] .dashboard-alert-desc {
color: #aebbd0;
}
html[data-theme="dark"] .dashboard-alert-icon {
background: var(--dashboard-alert-accent-soft);
}
html[data-theme="dark"] .dashboard-alert-icon,
html[data-theme="dark"] .dashboard-alert-btn {
background: rgba(15, 23, 42, 0.72);
color: var(--dashboard-alert-accent);
background: var(--dashboard-alert-accent-soft);
border-color: var(--dashboard-alert-accent-border);
box-shadow: none;
}
html[data-theme="dark"] .dashboard-alert-btn:hover {
filter: saturate(1.1) brightness(1.18);
border-color: var(--dashboard-alert-accent);
}
html[data-theme="dark"] .dashboard-alert-btn-secondary {
color: var(--dashboard-alert-accent);
background: transparent;
}
html[data-theme="dark"] .dashboard-recommend-item.lvl-urgent {
@@ -40064,49 +40217,146 @@ html[data-theme="dark"] .workflow-toolbar #workflow-connect-btn[aria-pressed="tr
.asset-bar-row strong,.asset-bar-row small { text-align: right; }
.asset-bar-row strong { font-size: 11px; }
.asset-bar-row small { color: var(--text-secondary, #6b7280); font-size: 11px; }
.asset-toolbar { display: flex; align-items: center; gap: 10px; flex-wrap: wrap; padding: 14px; border: 1px solid var(--border-color, #e5e7eb); border-radius: 12px; background: var(--card-bg, #fff); }
.asset-toolbar input { min-width: 300px; flex: 1; }
.asset-toolbar { display: flex; align-items: stretch; gap: 12px; flex-direction: column; padding: 14px; border: 1px solid var(--border-color, #e5e7eb); border-radius: 12px; background: var(--card-bg, #fff); }
.asset-toolbar-main { display: flex; align-items: center; gap: 10px; flex-wrap: wrap; }
.asset-toolbar-main > input { min-width: 300px; flex: 1; }
.asset-toolbar select { min-width: 130px; }
.asset-toolbar input,.asset-toolbar select { height: 38px; padding: 0 12px; border: 1px solid var(--border-color, #d8dee8); border-radius: 8px; background: var(--input-bg, #fff); color: var(--text-primary, #111827); }
.asset-advanced-filters { display: grid; grid-template-columns: repeat(5,minmax(140px,1fr)); gap: 12px; padding-top: 14px; border-top: 1px solid var(--border-color,#e5e7eb); }
.asset-advanced-filters[hidden] { display: none; }
.asset-advanced-filters label { display: flex; min-width: 0; flex-direction: column; gap: 6px; color: var(--text-secondary,#64748b); font-size: 11px; font-weight: 600; }
.asset-advanced-filters input,.asset-advanced-filters select { box-sizing: border-box; width: 100%; min-width: 0; font-size: 12px; font-weight: 400; }
.asset-saved-views { display: flex; align-items: center; gap: 9px; padding-top: 12px; border-top: 1px dashed var(--border-color,#e5e7eb); }
.asset-saved-views select { min-width: 220px; }
.asset-custom-select { width: 100%; min-width: 0; font-weight: 400; }
.asset-custom-select--filter { width: auto; min-width: 150px; flex: 0 0 auto; }
.asset-custom-select .settings-custom-select-trigger { height: 42px; min-height: 42px; border-radius: 8px; background: var(--input-bg, #fff); font-size: 13px; font-weight: 400; }
.asset-advanced-filters .asset-custom-select--filter { width: 100%; min-width: 0; }
.asset-custom-select--saved-view { width: 220px; min-width: 220px; flex: 0 0 220px; }
.asset-custom-select .settings-custom-select-trigger { height: 42px; min-height: 42px; border-color: var(--border-color, #d8dee8); border-radius: 8px; background: var(--input-bg, #fff); color: var(--text-primary, #111827); font-size: 13px; font-weight: 400; }
.asset-custom-select .settings-custom-select-caret { width: 16px; height: 16px; color: var(--text-secondary, #64748b); font-size: 0; }
.asset-custom-select .settings-custom-select-caret::before { display: block; width: 7px; height: 7px; margin: 2px auto 0; border-right: 1.5px solid currentColor; border-bottom: 1.5px solid currentColor; content: ''; transform: rotate(45deg); }
.asset-custom-select.open .settings-custom-select-caret { transform: rotate(180deg); }
.asset-custom-select .settings-custom-select-menu { min-width: 100%; padding: 5px; border-radius: 9px; background: var(--card-bg, #fff); box-shadow: 0 12px 28px rgba(15,23,42,.16); }
.asset-custom-select .settings-custom-select-option { min-height: 34px; border-radius: 6px; font-size: 13px; }
.asset-custom-select .settings-custom-select-menu { min-width: 100%; padding: 5px; border-color: var(--border-color, #d8dee8); border-radius: 9px; background: var(--input-bg, #fff); color: var(--text-primary, #111827); box-shadow: 0 12px 28px rgba(15,23,42,.16); }
.asset-custom-select .settings-custom-select-option { min-height: 34px; border-radius: 6px; color: var(--text-primary, #111827); font-size: 13px; }
.asset-custom-select .settings-custom-select-option:hover:not(:disabled) { background: var(--bg-secondary, #f4f6f8); }
.asset-custom-select .settings-custom-select-option.is-selected { background: rgba(59,130,246,.12); color: var(--accent-color,#2563eb); }
.asset-custom-select--filter .settings-custom-select-trigger { height: 38px; min-height: 38px; padding: 7px 11px; }
.asset-custom-select--pagination { width: 76px; flex: 0 0 76px; }
.asset-custom-select--pagination .settings-custom-select-trigger { height: 32px; min-height: 32px; padding: 5px 9px; }
.asset-custom-select--pagination .settings-custom-select-menu { top: auto; bottom: calc(100% + 6px); }
.asset-batch-actions { display: flex; align-items: center; gap: 10px; padding: 10px 14px; border: 1px solid rgba(37,99,235,.32); border-radius: 10px; background: rgba(37,99,235,.07); }
.asset-batch-actions { position: relative; z-index: 4; display: flex; align-items: center; justify-content: space-between; gap: 14px; padding: 10px 12px; border: 1px solid rgba(37,99,235,.32); border-radius: 10px; background: rgba(37,99,235,.07); }
.asset-batch-actions[hidden] { display: none; }
.asset-batch-actions > span { margin-right: auto; color: var(--text-primary, #111827); font-size: 13px; font-weight: 650; }
.asset-batch-selection { display: flex; min-width: 0; align-items: center; gap: 9px; color: var(--text-primary, #111827); font-size: 13px; }
.asset-batch-selection-mark { position: relative; width: 20px; height: 20px; flex: 0 0 20px; border-radius: 6px; background: var(--accent-color, #2563eb); }
.asset-batch-selection-mark::after { position: absolute; top: 4px; left: 7px; width: 5px; height: 9px; border: solid #fff; border-width: 0 2px 2px 0; content: ''; transform: rotate(45deg); }
.asset-batch-selection strong { flex: 0 0 auto; font-size: 13px; font-weight: 700; white-space: nowrap; }
.asset-batch-text-action { padding: 2px 0; border: 0; background: transparent; color: var(--text-secondary, #64748b); cursor: pointer; font: inherit; font-size: 12px; white-space: nowrap; }
.asset-batch-text-action:hover { color: var(--accent-color, #2563eb); }
.asset-batch-text-action:focus-visible { border-radius: 4px; outline: 2px solid rgba(37,99,235,.45); outline-offset: 2px; }
.asset-batch-select-all { padding-left: 10px; border-left: 1px solid rgba(37,99,235,.22); color: var(--accent-color, #2563eb); font-weight: 600; }
.asset-batch-all-selected { overflow: hidden; color: var(--accent-color, #2563eb); font-size: 12px; font-weight: 600; text-overflow: ellipsis; white-space: nowrap; }
.asset-batch-primary-actions { display: flex; flex: 0 0 auto; align-items: center; gap: 8px; }
.asset-batch-more { position: relative; }
.asset-batch-more > summary { display: inline-flex; min-width: 72px; align-items: center; justify-content: center; gap: 8px; box-sizing: border-box; list-style: none; cursor: pointer; user-select: none; }
.asset-batch-more > summary::-webkit-details-marker { display: none; }
.asset-batch-more > summary::after { width: 6px; height: 6px; margin-top: -3px; border-right: 1.5px solid currentColor; border-bottom: 1.5px solid currentColor; content: ''; transform: rotate(45deg); transition: transform .15s ease; }
.asset-batch-more[open] > summary::after { margin-top: 3px; transform: rotate(225deg); }
.asset-batch-more[open] > summary { border-color: var(--accent-color, #2563eb); color: var(--accent-color, #2563eb); }
.asset-batch-menu { position: absolute; top: calc(100% + 8px); right: 0; width: 210px; padding: 6px; border: 1px solid var(--border-color, #d8dee8); border-radius: 10px; background: var(--card-bg, #fff); box-shadow: 0 16px 36px rgba(15,23,42,.18); }
.asset-batch-menu button { display: flex; box-sizing: border-box; width: 100%; min-height: 36px; align-items: center; padding: 8px 10px; border: 0; border-radius: 7px; background: transparent; color: var(--text-primary, #111827); cursor: pointer; font: inherit; font-size: 13px; text-align: left; }
.asset-batch-menu button:hover:not(:disabled),.asset-batch-menu button:focus-visible { outline: none; background: var(--bg-secondary, #f4f6f8); }
.asset-batch-menu button:disabled { cursor: not-allowed; opacity: .42; }
.asset-batch-menu-label { padding: 5px 10px 3px; color: var(--text-muted, #94a3b8); font-size: 10px; font-weight: 700; letter-spacing: .07em; text-transform: uppercase; }
.asset-batch-menu-separator { height: 1px; margin: 5px 4px; background: var(--border-color, #e5e7eb); }
.asset-batch-menu .asset-batch-menu-danger { color: #dc2626; }
.asset-batch-menu .asset-batch-menu-danger:hover:not(:disabled),.asset-batch-menu .asset-batch-menu-danger:focus-visible { background: rgba(220,38,38,.08); }
.asset-batch-permission-action { display: contents; }
.asset-list-meta { margin-left: auto; }
.asset-list-card { overflow: hidden; border: 1px solid var(--border-color, #e5e7eb); border-radius: 12px; background: var(--card-bg, #fff); box-shadow: 0 1px 3px rgba(15,23,42,.03); }
#page-asset-library .asset-list-card { flex: 1 1 auto; min-height: 0; display: flex; flex-direction: column; }
.asset-table-wrap { overflow: auto; border: 1px solid var(--border-color, #e5e7eb); border-radius: 12px; background: var(--card-bg, #fff); }
.asset-list-card .asset-table-wrap { border: 0; border-radius: 0; }
#page-asset-library .asset-list-card .asset-table-wrap { flex: 1 1 auto; min-height: 0; overflow-y: auto; overflow-x: hidden; }
#page-asset-library .asset-list-card .asset-table-wrap { --table-scroll-header-height: 41px; flex: 1 1 auto; min-height: 0; overflow-y: auto; overflow-x: hidden; scrollbar-gutter: stable; }
#page-asset-library .asset-list-card .asset-table-wrap::-webkit-scrollbar,
.info-collect-results-table-wrap::-webkit-scrollbar { width: 10px; }
#page-asset-library .asset-list-card .asset-table-wrap::-webkit-scrollbar-track { margin-top: var(--table-scroll-header-height); background: transparent; }
.info-collect-results-table-wrap::-webkit-scrollbar-track {
background: linear-gradient(
to bottom,
var(--bg-secondary) 0 var(--table-scroll-header-height),
var(--bg-primary) var(--table-scroll-header-height) 100%
);
}
#page-asset-library .asset-list-card .asset-table-wrap::-webkit-scrollbar-thumb,
.info-collect-results-table-wrap::-webkit-scrollbar-thumb {
border: 3px solid transparent;
border-radius: 999px;
background: color-mix(in srgb, var(--text-muted, #94a3b8) 62%, transparent);
background-clip: content-box;
}
#page-asset-library .asset-list-card .asset-table-wrap::-webkit-scrollbar-thumb:hover,
.info-collect-results-table-wrap::-webkit-scrollbar-thumb:hover {
background: color-mix(in srgb, var(--text-secondary, #64748b) 82%, transparent);
background-clip: content-box;
}
.asset-list-card #asset-pagination.pagination-fixed { border: 0; border-top: 1px solid var(--border-color, #e5e7eb); border-radius: 0; box-shadow: none; }
#page-asset-library .asset-list-card #asset-pagination { flex: 0 0 auto; }
.asset-list-card #asset-pagination.pagination-fixed .pagination { border-radius: 0; }
.asset-table { width: 100%; min-width: 0; table-layout: fixed; border-collapse: collapse; }
.asset-table th,.asset-table td { padding: 13px 14px; border-bottom: 1px solid var(--border-color, #edf0f4); text-align: left; vertical-align: middle; }
.asset-table th { position: sticky; top: 0; background: var(--card-bg, #fff); color: var(--text-secondary, #64748b); font-size: 12px; font-weight: 600; z-index: 1; }
.asset-table th { position: sticky; top: 0; box-sizing: border-box; height: var(--table-scroll-header-height, auto); background: var(--card-bg, #fff); color: var(--text-secondary, #64748b); font-size: 12px; font-weight: 600; z-index: 1; }
.asset-table td { font-size: 13px; }
.asset-table td:nth-child(2) { width: 220px; max-width: 280px; }
.asset-table th:nth-child(2),.asset-table td:nth-child(2) { width: auto; }
.asset-table th:nth-child(3),.asset-table td:nth-child(3) { width: 112px; }
.asset-table th:nth-child(4),.asset-table td:nth-child(4) { width: 140px; }
.asset-table th:nth-child(5),.asset-table td:nth-child(5) { width: 180px; }
.asset-table th:nth-child(6),.asset-table td:nth-child(6) { width: 96px; }
.asset-table th:nth-child(7),.asset-table td:nth-child(7) { width: 84px; }
.asset-table th:nth-child(4),.asset-table td:nth-child(4) { width: 126px; }
.asset-table th:nth-child(5),.asset-table td:nth-child(5) { width: 132px; }
.asset-table th:nth-child(6),.asset-table td:nth-child(6) { width: 160px; }
.asset-table th:nth-child(7),.asset-table td:nth-child(7) { width: 96px; }
.asset-table th:nth-child(8),.asset-table td:nth-child(8) { width: 84px; }
.asset-table th:nth-child(9),.asset-table td:nth-child(9) { width: 176px; }
.asset-table th:nth-child(9),.asset-table td:nth-child(9) { width: 84px; }
.asset-table th:nth-child(10),.asset-table td:nth-child(10) { width: 166px; }
.asset-ownership { display: flex; min-width: 0; flex-direction: column; gap: 3px; line-height: 1.2; }
.asset-ownership__primary,.asset-ownership__secondary { display: block; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.asset-ownership__primary { color: var(--text-primary, #111827); font-weight: 600; }
.asset-ownership__secondary { color: var(--text-secondary, #64748b); font-size: 11px; }
.asset-ownership-empty { color: var(--text-muted, #94a3b8); }
.asset-check-cell { width: 42px; min-width: 42px; text-align: center !important; }
.asset-check-cell input { width: 15px; height: 15px; cursor: pointer; accent-color: #2563eb; }
.theme-checkbox {
width: var(--theme-checkbox-size, 16px);
height: var(--theme-checkbox-size, 16px);
margin: 0;
border: 1px solid var(--border-color, #cbd5e1);
border-radius: 4px;
appearance: none;
-webkit-appearance: none;
background-color: var(--bg-primary, #fff);
background-position: center;
background-repeat: no-repeat;
cursor: pointer;
vertical-align: middle;
transition: background-color .15s, border-color .15s, box-shadow .15s;
}
.theme-checkbox:hover { border-color: var(--accent-color, #2563eb); }
.theme-checkbox:focus-visible {
outline: none;
border-color: var(--accent-color, #2563eb);
box-shadow: 0 0 0 3px rgba(37,99,235,.18);
}
.theme-checkbox:checked {
border-color: var(--accent-color, #2563eb);
background-color: var(--accent-color, #2563eb);
background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Cpath d='m3.5 8.2 2.8 2.8 6.2-6.2' fill='none' stroke='%23fff' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");
}
.theme-checkbox:indeterminate {
border-color: var(--accent-color, #2563eb);
background-color: var(--accent-color, #2563eb);
background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Cpath d='M4 8h8' fill='none' stroke='%23fff' stroke-width='2' stroke-linecap='round'/%3E%3C/svg%3E");
}
input.theme-checkbox:disabled {
opacity: .5;
cursor: not-allowed;
}
.asset-table td strong,.asset-table td small { display: block; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.asset-target-link { display: block; max-width: 100%; padding: 0; border: 0; background: transparent; color: #2563eb; font: inherit; font-weight: 650; text-align: left; cursor: pointer; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.asset-target-link:hover { text-decoration: underline; }
@@ -40129,6 +40379,38 @@ html[data-theme="dark"] .workflow-toolbar #workflow-connect-btn[aria-pressed="tr
.asset-vulnerability-link { min-width: 28px; padding: 3px 8px; border: 1px solid rgba(239,68,68,.28); border-radius: 999px; background: rgba(239,68,68,.10); color: #dc2626; font-weight: 700; cursor: pointer; }
.asset-scan-content { width: min(700px, calc(100vw - 32px)); }
.asset-project-content { width: min(500px, calc(100vw - 32px)); }
.asset-bulk-edit-content { width: min(760px, calc(100vw - 32px)); }
.asset-import-content { width: min(920px, calc(100vw - 32px)); max-height: calc(100vh - 48px); margin: 24px auto; }
.asset-import-body { display: flex; flex-direction: column; gap: 14px; }
.asset-import-step { padding: 16px; border: 1px solid var(--border-color, #e5e7eb); border-radius: 12px; background: var(--card-bg, #fff); }
.asset-import-step-heading { display: flex; align-items: center; gap: 11px; margin-bottom: 13px; }
.asset-import-step-heading > span { display: grid; width: 25px; height: 25px; flex: 0 0 25px; place-items: center; border-radius: 50%; background: rgba(37,99,235,.11); color: #2563eb; font-size: 12px; font-weight: 700; }
.asset-import-step-heading > div { display: flex; min-width: 0; flex-direction: column; gap: 3px; }
.asset-import-step-heading strong { color: var(--text-primary, #111827); font-size: 13px; }
.asset-import-step-heading small { color: var(--text-secondary, #64748b); font-size: 12px; font-weight: 400; }
.asset-import-template-actions { display: flex; align-items: center; gap: 12px; padding-left: 36px; }
.asset-import-dropzone { display: flex; box-sizing: border-box; width: 100%; min-height: 118px; align-items: center; justify-content: center; flex-direction: column; gap: 6px; border: 1.5px dashed var(--border-color, #cbd5e1); border-radius: 10px; background: var(--bg-secondary, #f8fafc); color: var(--text-primary, #111827); cursor: pointer; transition: border-color .15s, background .15s, box-shadow .15s; }
.asset-import-dropzone:hover,.asset-import-dropzone.is-dragging { border-color: #2563eb; background: rgba(37,99,235,.055); box-shadow: 0 0 0 3px rgba(37,99,235,.08); }
.asset-import-dropzone:disabled { cursor: wait; opacity: .65; }
.asset-import-dropzone-icon { display: grid; width: 30px; height: 30px; place-items: center; border-radius: 9px; background: rgba(37,99,235,.11); color: #2563eb; font-size: 18px; font-weight: 700; }
.asset-import-dropzone strong { font-size: 13px; }
.asset-import-dropzone small { max-width: 90%; overflow: hidden; color: var(--text-secondary, #64748b); font-size: 12px; text-overflow: ellipsis; white-space: nowrap; }
.asset-import-preview-section { min-height: 0; }
.asset-import-preview-wrap { max-height: 260px; overflow: auto; border: 1px solid var(--border-color, #e5e7eb); border-radius: 9px; }
.asset-import-preview-table { width: 100%; table-layout: fixed; border-collapse: collapse; }
.asset-import-preview-table th,.asset-import-preview-table td { padding: 9px 11px; border-bottom: 1px solid var(--border-color, #edf0f4); text-align: left; font-size: 12px; }
.asset-import-preview-table th { position: sticky; top: 0; z-index: 1; background: var(--card-bg, #fff); color: var(--text-secondary, #64748b); font-weight: 650; }
.asset-import-preview-table th:first-child,.asset-import-preview-table td:first-child { width: 52px; text-align: center; }
.asset-import-preview-table th:nth-child(2),.asset-import-preview-table td:nth-child(2) { width: 30%; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.asset-import-preview-table th:nth-child(3),.asset-import-preview-table td:nth-child(3) { width: 18%; }
.asset-import-preview-table th:nth-child(4),.asset-import-preview-table td:nth-child(4) { width: 72px; }
.asset-import-preview-table tr.has-error td { background: rgba(220,38,38,.035); }
.asset-import-result { display: inline-flex; max-width: 100%; align-items: center; gap: 5px; font-size: 12px; overflow-wrap: anywhere; }
.asset-import-result::before { flex: 0 0 auto; font-weight: 800; content: '✓'; }
.asset-import-result--ok { color: #059669; }
.asset-import-result--error { color: #dc2626; }
.asset-import-result--error::before { content: '!'; }
.asset-import-preview-section .form-hint { margin: 9px 0 0; color: var(--text-secondary, #64748b); font-size: 11px; }
.asset-project-content .form-hint { margin: 10px 0 0; color: var(--text-secondary, #64748b); font-size: 12px; line-height: 1.5; }
.asset-project-content .settings-custom-select-trigger { height: 42px; border-radius: 8px; background: var(--input-bg, var(--bg-primary)); }
.asset-project-content .settings-custom-select-menu { z-index: 2700; }
@@ -40212,6 +40494,8 @@ html[data-theme="dark"] .asset-list-card,
html[data-theme="dark"] .asset-table-wrap,
html[data-theme="dark"] .asset-table th,
html[data-theme="dark"] .asset-scan-targets,
html[data-theme="dark"] .asset-import-step,
html[data-theme="dark"] .asset-import-preview-table th,
html[data-theme="dark"] .asset-detail-item {
background: var(--card-bg);
border-color: var(--border-color);
@@ -40306,11 +40590,35 @@ html[data-theme="dark"] .asset-row-actions .asset-delete {
}
html[data-theme="dark"] .asset-batch-actions { border-color: rgba(96,165,250,.36); background: rgba(37,99,235,.13); }
html[data-theme="dark"] .asset-batch-selection-mark::after { border-color: #0b1120; }
html[data-theme="dark"] .asset-batch-menu { background: #0f172a; border-color: var(--border-color); box-shadow: 0 16px 36px rgba(0,0,0,.38); }
html[data-theme="dark"] .asset-batch-menu button:hover:not(:disabled),html[data-theme="dark"] .asset-batch-menu button:focus-visible { background: rgba(30,41,59,.9); }
html[data-theme="dark"] .asset-batch-menu .asset-batch-menu-danger:hover:not(:disabled),html[data-theme="dark"] .asset-batch-menu .asset-batch-menu-danger:focus-visible { background: rgba(248,113,113,.1); }
html[data-theme="dark"] .asset-import-dropzone { border-color: var(--border-color); background: rgba(15,23,42,.38); color: var(--text-primary); }
html[data-theme="dark"] .asset-import-dropzone:hover,
html[data-theme="dark"] .asset-import-dropzone.is-dragging { border-color: #60a5fa; background: rgba(37,99,235,.12); }
html[data-theme="dark"] .asset-import-preview-table tr.has-error td { background: rgba(248,113,113,.055); }
html[data-theme="dark"] .asset-scan-prompt { background: var(--input-bg); border-color: var(--border-color); color: var(--text-primary); }
html[data-theme="dark"] .asset-vulnerability-link { color: #fca5a5; border-color: rgba(248,113,113,.35); background: rgba(248,113,113,.12); }
html[data-theme="dark"] .asset-custom-select .settings-custom-select-trigger,
html[data-theme="dark"] .asset-custom-select .settings-custom-select-menu { background: var(--input-bg); border-color: var(--border-color); color: var(--text-primary); }
html[data-theme="dark"] .asset-custom-select .settings-custom-select-menu { background: #0f172a; border-color: var(--border-color); color: var(--text-primary); }
html[data-theme="dark"] .asset-custom-select .settings-custom-select-menu { box-shadow: 0 14px 32px rgba(0,0,0,.34); }
html[data-theme="dark"] .asset-custom-select .settings-custom-select-option:hover:not(:disabled) { background: rgba(30,41,59,.78); }
html[data-theme="dark"] .asset-custom-select .settings-custom-select-option.is-selected { background: rgba(59,130,246,.18); color: #93c5fd; }
html[data-theme="dark"] .theme-checkbox {
background-color: var(--bg-primary);
}
html[data-theme="dark"] .theme-checkbox:focus-visible {
box-shadow: 0 0 0 3px rgba(96,165,250,.22);
}
html[data-theme="dark"] .theme-checkbox:checked {
background-color: var(--accent-color);
background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Cpath d='m3.5 8.2 2.8 2.8 6.2-6.2' fill='none' stroke='%230b1120' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");
}
html[data-theme="dark"] .theme-checkbox:indeterminate {
background-color: var(--accent-color);
background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Cpath d='M4 8h8' fill='none' stroke='%230b1120' stroke-width='2' stroke-linecap='round'/%3E%3C/svg%3E");
}
html[data-theme="dark"] .asset-detail-grid {
border-color: var(--border-color);
@@ -40342,7 +40650,11 @@ html[data-theme="dark"] .asset-form-error { color: #fca5a5; }
@media (max-width: 820px) {
.asset-table th:nth-child(3),.asset-table td:nth-child(3) { display: none; }
.asset-table th:nth-child(5),.asset-table td:nth-child(5) { width: 145px; }
.asset-table th:nth-child(9),.asset-table td:nth-child(9) { width: 150px; }
.asset-table th:nth-child(10),.asset-table td:nth-child(10) { width: 150px; }
.asset-batch-actions { align-items: stretch; flex-direction: column; }
.asset-batch-selection { min-height: 30px; }
.asset-batch-primary-actions { width: 100%; }
.asset-batch-primary-actions > button { flex: 1 1 auto; }
}
@media (max-width: 760px) {
.asset-overview-summary { grid-template-columns: 1fr; }
@@ -40351,4 +40663,5 @@ html[data-theme="dark"] .asset-form-error { color: #fca5a5; }
.asset-coverage-layout { grid-template-columns: 1fr; }
.asset-recent-card { min-height: 230px; }
}
@media (max-width: 640px) { .asset-editor-grid,.asset-detail-grid { grid-template-columns: 1fr; } .asset-total-card,.asset-recent-card,.asset-panel { padding: 18px; } .asset-type-grid,.asset-coverage-metrics { grid-template-columns: 1fr; } .asset-type-item + .asset-type-item,.asset-coverage-metrics > div + div,.asset-coverage-metrics > div:nth-child(4) { border-top: 1px solid var(--border-color,#e5e7eb); border-left: 0; } .asset-trend-header { grid-template-columns: 1fr auto; grid-template-areas: "heading summary"; column-gap: 12px; } .asset-chart-legend { display: none; } .asset-chart-summary { justify-content: flex-end; padding: 0; } .asset-chart-summary span { display: none; } .asset-protocol-summary { box-sizing: border-box; width: 100%; } .asset-protocol-summary__main { align-items: flex-start; flex-direction: column; } .asset-protocol-top-list { grid-template-columns: 1fr; } .asset-bar-row,.asset-protocol-columns { grid-template-columns: 20px 64px 1fr 36px; gap: 8px; padding-right: 4px; padding-left: 4px; } .asset-bar-row small,.asset-protocol-columns span:last-child { display: none; } .asset-editor-content { width: 100%; max-height: 100vh; min-height: 100vh; margin: 0; border-radius: 0; } .asset-editor-content .modal-header,.asset-editor-body,.asset-editor-content .modal-footer { padding-left: 16px; padding-right: 16px; } .asset-editor-subtitle { max-width: 270px; } .asset-editor-primary { padding: 14px; } .asset-editor-group-heading { align-items: flex-start; flex-wrap: wrap; gap: 3px 8px; } .asset-editor-group-heading p { width: 100%; } .asset-editor-section-group + .asset-editor-section-group { margin-top: 20px; padding-top: 20px; } .asset-editor-wide,.asset-detail-item--wide { grid-column: auto; } .asset-toolbar input { min-width: 100%; } }
@media (max-width: 1100px) { .asset-advanced-filters { grid-template-columns: repeat(3,minmax(140px,1fr)); } }
@media (max-width: 640px) { .asset-editor-grid,.asset-detail-grid { grid-template-columns: 1fr; } .asset-total-card,.asset-recent-card,.asset-panel { padding: 18px; } .asset-type-grid,.asset-coverage-metrics { grid-template-columns: 1fr; } .asset-type-item + .asset-type-item,.asset-coverage-metrics > div + div,.asset-coverage-metrics > div:nth-child(4) { border-top: 1px solid var(--border-color,#e5e7eb); border-left: 0; } .asset-trend-header { grid-template-columns: 1fr auto; grid-template-areas: "heading summary"; column-gap: 12px; } .asset-chart-legend { display: none; } .asset-chart-summary { justify-content: flex-end; padding: 0; } .asset-chart-summary span { display: none; } .asset-protocol-summary { box-sizing: border-box; width: 100%; } .asset-protocol-summary__main { align-items: flex-start; flex-direction: column; } .asset-protocol-top-list { grid-template-columns: 1fr; } .asset-bar-row,.asset-protocol-columns { grid-template-columns: 20px 64px 1fr 36px; gap: 8px; padding-right: 4px; padding-left: 4px; } .asset-bar-row small,.asset-protocol-columns span:last-child { display: none; } .asset-editor-content,.asset-import-content,.asset-bulk-edit-content { width: 100%; max-height: 100vh; min-height: 100vh; margin: 0; border-radius: 0; } .asset-editor-content .modal-header,.asset-editor-body,.asset-editor-content .modal-footer { padding-left: 16px; padding-right: 16px; } .asset-editor-subtitle { max-width: 270px; } .asset-editor-primary { padding: 14px; } .asset-editor-group-heading { align-items: flex-start; flex-wrap: wrap; gap: 3px 8px; } .asset-editor-group-heading p { width: 100%; } .asset-editor-section-group + .asset-editor-section-group { margin-top: 20px; padding-top: 20px; } .asset-editor-wide,.asset-detail-item--wide { grid-column: auto; } .asset-toolbar-main > input { min-width: 100%; } .asset-advanced-filters { grid-template-columns: 1fr 1fr; } .asset-saved-views { align-items: stretch; flex-direction: column; } .asset-saved-views select { width: 100%; min-width: 0; } .asset-custom-select--saved-view { width: 100%; min-width: 0; flex-basis: auto; } .asset-import-template-actions { align-items: flex-start; flex-direction: column; padding-left: 0; } .asset-import-preview-table th:nth-child(3),.asset-import-preview-table td:nth-child(3),.asset-import-preview-table th:nth-child(4),.asset-import-preview-table td:nth-child(4) { display: none; } .asset-batch-selection { flex-wrap: wrap; } .asset-batch-primary-actions { display: grid; grid-template-columns: 1fr 1fr; } .asset-batch-primary-actions > .btn-primary { grid-column: 1 / -1; grid-row: 1; } .asset-batch-more { width: 100%; } .asset-batch-more > summary { width: 100%; } .asset-batch-menu { right: auto; left: 0; width: min(260px,calc(100vw - 48px)); } }