feat: 新增风险图谱算法与系统仪表盘及操作反馈体系

后端新增风险图谱算法模块、风险观察与反馈服务、规则 DSL
校验器和可解释性引擎,完善系统仪表盘和财务仪表盘统计,
优化 agent 运行和编排执行链路,清理旧开发文档,前端新增
系统趋势、负载热力图等多种仪表盘图表组件,完善操作反馈
对话框和工作台日期选择器,优化报销创建和审批详情交互,
补充单元测试覆盖。
This commit is contained in:
caoxiaozhu
2026-05-30 15:46:51 +08:00
parent 4c59941ec6
commit 7989f3a159
314 changed files with 30073 additions and 20626 deletions

View File

@@ -456,6 +456,11 @@ td:first-child {
text-align: left;
}
.audit-asset-table th:first-child,
.audit-asset-table td:first-child {
text-align: left;
}
tbody tr:hover {
background: #f8fbff;
}
@@ -474,6 +479,13 @@ tbody tr.is-disabled:hover {
grid-template-columns: 38px minmax(0, 1fr);
gap: 10px;
align-items: center;
justify-items: start;
text-align: left;
}
.skill-name-cell > div {
min-width: 0;
text-align: left;
}
.skill-avatar {

View File

@@ -71,8 +71,6 @@
.agent-answer-markdown :deep(th) { background: var(--theme-primary-light-9); color: #0f172a; font-weight: 800; }
.agent-answer-markdown :deep(td) { color: #334155; font-weight: 650; }
.agent-answer-markdown :deep(tbody tr:last-child td) { border-bottom: 0; }
.agent-meta-row { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 8px; max-width: 760px; }
.agent-meta-chip { min-height: 26px; display: inline-flex; align-items: center; padding: 0 10px; border-radius: 999px; background: var(--theme-primary-light-9); color: var(--theme-primary-active); font-size: 12px; font-weight: 760; }
.agent-detail-block { max-width: 760px; margin-top: 10px; display: grid; gap: 8px; }
.agent-detail-block > strong { color: #0f172a; font-size: 12px; font-weight: 820; }
.agent-citation-disclosure { overflow: hidden; border: 1px solid #dce5ef; border-radius: 10px; background: #fff; }

View File

@@ -67,6 +67,41 @@
text-align: left;
}
.digital-skill-cell {
display: grid;
grid-template-columns: 38px minmax(0, 1fr);
gap: 10px;
align-items: center;
justify-items: start;
text-align: left;
}
.digital-skill-avatar {
width: 38px;
height: 38px;
display: grid;
place-items: center;
border-radius: 11px;
color: #fff;
font-size: 13px;
font-weight: 900;
}
.digital-skill-avatar.primary { background: var(--theme-gradient-primary); }
.digital-skill-avatar.rose { background: linear-gradient(135deg, #f43f5e, #e11d48); }
.digital-skill-avatar.violet { background: linear-gradient(135deg, #8b5cf6, #7c3aed); }
.digital-skill-avatar.blue {
background: linear-gradient(135deg, #3b82f6, #2563eb);
}
.digital-skill-avatar.amber { background: linear-gradient(135deg, #f59e0b, #ea580c); }
.digital-skill-cell .doc-id {
min-width: 0;
overflow: hidden;
text-align: left;
text-overflow: ellipsis;
}
.digital-employees-table .col-skill { width: 22%; }
.digital-employees-table .col-skill-type { width: 11%; }
.digital-employees-table .col-owner { width: 11%; }

View File

@@ -143,7 +143,9 @@
.donut-panel,
.bottleneck-panel,
.budget-panel {
.budget-panel,
.model-panel,
.feedback-panel {
grid-column: span 3;
}
@@ -183,8 +185,228 @@
text-align: center;
}
.card-subtitle {
margin: -8px 0 12px;
color: #64748b;
font-size: 12px;
font-weight: 550;
line-height: 1.55;
}
.system-observability-grid {
display: grid;
grid-template-columns: minmax(0, 1.18fr) minmax(320px, .9fr) minmax(320px, .9fr);
grid-template-areas:
"agent agent agent"
"token token token"
"accuracy accuracy side"
"tools tools side";
gap: 18px;
}
.system-agent-ratio-panel {
grid-area: agent;
}
.system-token-pie-panel {
grid-area: token;
}
.system-token-panel-grid {
display: grid;
grid-template-columns: minmax(0, 1.05fr) minmax(380px, .95fr);
gap: 18px;
align-items: stretch;
}
.system-accuracy-panel {
grid-area: accuracy;
}
.system-tool-detail-panel {
grid-area: tools;
}
.system-side-stack {
grid-area: side;
display: grid;
gap: 18px;
align-content: start;
}
.system-side-stack .dashboard-card {
grid-column: auto;
}
.system-side-card {
padding: 16px;
}
.system-side-card .card-head {
margin-bottom: 12px;
}
.system-side-card .card-subtitle {
margin: -6px 0 8px;
font-size: 11px;
}
.duration-summary {
display: flex;
align-items: flex-start;
justify-content: space-between;
gap: 12px;
margin-bottom: 12px;
}
.duration-summary strong {
display: block;
color: #0f172a;
font-size: 26px;
font-weight: 850;
line-height: 1;
letter-spacing: 0;
}
.duration-summary span {
display: block;
margin-top: 5px;
color: #64748b;
font-size: 11px;
font-weight: 650;
}
.duration-summary em {
padding: 2px 7px;
border-radius: 4px;
background: rgba(var(--success-rgb), 0.10);
color: var(--success);
font-size: 11px;
font-style: normal;
font-weight: 800;
white-space: nowrap;
}
.duration-meta {
display: grid;
grid-template-columns: repeat(2, minmax(0, 1fr));
gap: 8px;
margin-bottom: 12px;
}
.duration-meta span {
padding: 7px 8px;
border: 1px solid #e2e8f0;
border-radius: 4px;
background: #fbfdff;
color: #475569;
font-size: 11px;
font-weight: 750;
}
.duration-bars {
display: grid;
gap: 9px;
}
.duration-bar-row {
display: grid;
grid-template-columns: 72px minmax(0, 1fr) 44px;
align-items: center;
gap: 8px;
}
.duration-bar-row span,
.duration-bar-row strong {
color: #475569;
font-size: 11px;
font-weight: 750;
white-space: nowrap;
}
.duration-bar-row strong {
color: #0f172a;
text-align: right;
font-variant-numeric: tabular-nums;
}
.duration-bar-row i {
height: 7px;
overflow: hidden;
border-radius: 4px;
background: #eef2f7;
}
.duration-bar-row b {
display: block;
height: 100%;
border-radius: inherit;
}
.system-tool-table {
display: grid;
grid-template-columns: repeat(2, minmax(0, 1fr));
gap: 12px 14px;
}
.system-tool-row {
display: grid;
gap: 8px;
padding: 12px;
border: 1px solid #e2e8f0;
border-radius: 4px;
background: #fbfdff;
}
.system-tool-row-head,
.system-tool-row-meta {
display: flex;
align-items: center;
justify-content: space-between;
gap: 10px;
}
.system-tool-row-head strong {
min-width: 0;
color: #1e293b;
font-size: 13px;
font-weight: 750;
overflow: hidden;
text-overflow: ellipsis;
white-space: nowrap;
}
.system-tool-row-head span {
color: #0f172a;
font-size: 12px;
font-weight: 800;
white-space: nowrap;
}
.system-tool-meter {
height: 8px;
overflow: hidden;
border-radius: 4px;
background: #eef2f7;
}
.system-tool-meter i {
display: block;
height: 100%;
border-radius: inherit;
}
.system-tool-row-meta {
color: #64748b;
font-size: 11px;
flex-wrap: wrap;
justify-content: flex-start;
}
.bottleneck-panel,
.budget-panel {
.budget-panel,
.model-panel,
.feedback-panel {
display: flex;
flex-direction: column;
}
@@ -194,6 +416,67 @@
margin-top: auto;
}
.feedback-list {
flex: 1;
display: grid;
gap: 12px;
align-content: center;
}
.feedback-row {
display: flex;
align-items: center;
gap: 12px;
padding: 10px 0;
border-bottom: 1px solid #f1f5f9;
}
.feedback-row:last-child {
border-bottom: 0;
}
.feedback-icon {
width: 32px;
height: 32px;
display: grid;
place-items: center;
border-radius: 4px;
background: #eef2f7;
color: #64748b;
font-size: 16px;
flex: 0 0 auto;
}
.feedback-row.success .feedback-icon {
background: rgba(var(--success-rgb), .10);
color: var(--success);
}
.feedback-row.danger .feedback-icon {
background: rgba(239, 68, 68, .10);
color: #dc2626;
}
.feedback-row.info .feedback-icon {
background: rgba(var(--theme-primary-rgb, 58, 124, 165), .10);
color: var(--theme-primary-active);
}
.feedback-row strong {
display: block;
color: #1e293b;
font-size: 18px;
font-weight: 800;
line-height: 1;
}
.feedback-row span:not(.feedback-icon) {
display: block;
margin-top: 4px;
color: #64748b;
font-size: 12px;
}
.bottleneck-list {
flex: 1;
display: grid;
@@ -337,6 +620,15 @@
grid-template-columns: repeat(3, minmax(0, 1fr));
}
.system-observability-grid {
grid-template-columns: repeat(2, minmax(0, 1fr));
grid-template-areas:
"agent agent"
"token token"
"accuracy side"
"tools side";
}
.trend-panel,
.rank-panel {
grid-column: span 12;
@@ -344,7 +636,9 @@
.donut-panel,
.bottleneck-panel,
.budget-panel {
.budget-panel,
.model-panel,
.feedback-panel {
grid-column: span 6;
}
}
@@ -381,11 +675,31 @@
grid-template-columns: 1fr;
}
.system-observability-grid {
grid-template-columns: 1fr;
grid-template-areas:
"agent"
"token"
"accuracy"
"tools"
"side";
}
.system-tool-table {
grid-template-columns: 1fr;
}
.system-token-panel-grid {
grid-template-columns: 1fr;
}
.trend-panel,
.rank-panel,
.donut-panel,
.bottleneck-panel,
.budget-panel {
.budget-panel,
.model-panel,
.feedback-panel {
grid-column: span 1;
}

View File

@@ -11,26 +11,41 @@
.receipt-folder-detail {
min-height: 0;
overflow: hidden;
padding: 16px 18px;
}
.receipt-folder-list {
display: grid;
grid-template-rows: auto auto minmax(0, 1fr) auto;
padding: 16px 18px;
}
.receipt-detail-head,
.receipt-detail-foot,
.receipt-basic-panel header,
.receipt-preview-panel header,
.receipt-folder-list th:first-child,
.receipt-folder-list td:first-child {
text-align: left;
}
.receipt-folder-list td:first-child .doc-id {
display: block;
overflow: hidden;
text-overflow: ellipsis;
}
.col-file { width: 22%; }
.col-kind { width: 13%; }
.col-scene { width: 13%; }
.col-money { width: 10%; }
.col-date { width: 12%; }
.col-score { width: 10%; }
.col-status { width: 10%; }
.col-updated { width: 14%; }
.receipt-field-list-head {
display: flex;
align-items: center;
}
.receipt-form-grid input,
.receipt-form-grid textarea,
.receipt-field-row input {
.receipt-key-grid input,
.receipt-edit-field-row input {
width: 100%;
border: 1px solid #d7e0ea;
border-radius: 4px;
@@ -40,31 +55,21 @@
transition: border-color 160ms ease, box-shadow 160ms ease;
}
.receipt-form-grid input,
.receipt-field-row input {
.receipt-key-grid input,
.receipt-edit-field-row input {
height: 36px;
padding: 0 10px;
}
.receipt-form-grid textarea {
resize: vertical;
min-height: 78px;
padding: 9px 10px;
line-height: 1.55;
}
.receipt-form-grid input:focus,
.receipt-form-grid textarea:focus,
.receipt-field-row input:focus {
.receipt-key-grid input:focus,
.receipt-edit-field-row input:focus {
border-color: var(--theme-primary);
box-shadow: 0 0 0 3px rgba(58, 124, 165, 0.14);
outline: none;
}
.apply-btn,
.ghost-btn,
.danger-btn,
.back-btn {
.ghost-btn {
min-height: 36px;
display: inline-flex;
align-items: center;
@@ -76,8 +81,7 @@
white-space: nowrap;
}
.ghost-btn,
.back-btn {
.ghost-btn {
padding: 0 13px;
border: 1px solid #d7e0ea;
background: #fff;
@@ -91,68 +95,67 @@
color: #fff;
}
.danger-btn {
padding: 0 14px;
border: 1px solid #dc2626;
background: #dc2626;
color: #fff;
}
.apply-btn:disabled,
.danger-btn:disabled {
.ghost-btn:disabled {
opacity: .55;
cursor: not-allowed;
}
.receipt-folder-detail {
display: grid;
grid-template-rows: auto minmax(0, 1fr) auto;
grid-template-rows: minmax(0, 1fr) auto;
gap: 12px;
padding: 0;
}
.receipt-detail-head {
gap: 14px;
padding-bottom: 14px;
border-bottom: 1px solid #dbe4ee;
}
.receipt-detail-head h2 {
margin: 4px 0;
color: #0f172a;
font-size: 20px;
line-height: 1.25;
}
.receipt-detail-head p {
margin: 0;
color: #64748b;
font-size: 13px;
}
.assistant-badge {
display: inline-flex;
align-items: center;
min-height: 22px;
padding: 0 8px;
border-radius: 4px;
background: #eef6ff;
color: var(--theme-primary-active);
font-size: 12px;
font-weight: 850;
}
.detail-loading {
.receipt-folder-detail :deep(.detail-scroll) {
min-height: 0;
display: grid;
place-items: center;
align-content: start;
gap: 16px;
padding-right: 4px;
overflow: auto;
}
.receipt-detail-layout {
.receipt-folder-detail :deep(.detail-actions) {
margin-top: 10px;
padding-top: 10px;
}
.receipt-folder-detail :deep(.detail-grid) {
min-height: 0;
display: grid;
grid-template-columns: minmax(360px, 0.95fr) minmax(420px, 1.05fr);
gap: 16px;
padding: 16px 0;
overflow: hidden;
align-items: stretch;
overflow: visible;
}
.receipt-folder-detail :deep(.detail-main),
.receipt-folder-detail :deep(.detail-side) {
min-height: 0;
display: grid;
}
.receipt-folder-detail :deep(.enterprise-detail-card .card-head) {
display: flex;
align-items: center;
justify-content: space-between;
gap: 12px;
margin-bottom: 14px;
}
.receipt-folder-detail :deep(.enterprise-detail-card .card-head h3) {
margin: 0;
color: #0f172a;
font-size: 15px;
font-weight: 850;
}
.receipt-folder-detail :deep(.enterprise-detail-card .card-head p) {
margin: 4px 0 0;
color: #64748b;
font-size: 12px;
}
.receipt-basic-panel,
@@ -165,67 +168,122 @@
}
.receipt-basic-panel {
display: grid;
grid-template-rows: auto minmax(0, 1fr) auto;
display: block;
padding: 14px;
overflow-y: auto;
}
.receipt-basic-panel header,
.receipt-preview-panel header,
.receipt-field-list-head {
justify-content: space-between;
gap: 12px;
}
.receipt-basic-panel header strong,
.receipt-preview-panel header strong,
.receipt-field-list-head strong {
color: #0f172a;
font-size: 15px;
}
.receipt-form-grid {
.receipt-field-list-head small {
color: #64748b;
font-size: 12px;
font-weight: 750;
}
.receipt-key-grid {
display: grid;
grid-template-columns: repeat(2, minmax(0, 1fr));
gap: 12px;
margin-top: 14px;
}
.receipt-form-grid label {
.receipt-key-field,
.receipt-edit-field-row label {
display: grid;
gap: 6px;
}
.receipt-form-grid label span {
.receipt-key-field span,
.receipt-edit-field-row label span {
color: #64748b;
font-size: 12px;
font-weight: 750;
}
.field-wide {
grid-column: 1 / -1;
.receipt-other-info {
margin-top: 18px;
}
.receipt-field-list {
margin-top: 18px;
.receipt-other-collapse {
border-top: 1px solid #e5edf5;
border-bottom: 0;
}
.receipt-other-collapse :deep(.el-collapse-item__header) {
min-height: 42px;
height: auto;
border-bottom: 1px solid #e5edf5;
background: #fff;
color: #0f172a;
}
.receipt-other-collapse :deep(.el-collapse-item__wrap) {
border-bottom: 0;
}
.receipt-other-collapse :deep(.el-collapse-item__content) {
padding: 12px 0 0;
}
.receipt-collapse-title {
width: 100%;
display: flex;
align-items: center;
justify-content: space-between;
gap: 12px;
padding-right: 10px;
}
.receipt-collapse-title strong {
color: #0f172a;
font-size: 15px;
}
.receipt-collapse-title small {
color: #64748b;
font-size: 12px;
font-weight: 750;
}
.receipt-other-scroll {
max-height: 320px;
display: grid;
gap: 10px;
overflow-y: auto;
padding-right: 4px;
}
.receipt-field-row {
.receipt-edit-field-row {
display: grid;
grid-template-columns: minmax(100px, .6fr) minmax(160px, 1fr) 30px;
gap: 8px;
}
.receipt-field-row button {
display: grid;
place-items: center;
border: 1px solid #d7e0ea;
grid-template-columns: minmax(120px, .72fr) minmax(180px, 1.28fr);
gap: 10px;
padding: 10px;
border: 1px solid #e1e8f0;
border-radius: 4px;
background: #fff;
background: #f8fafc;
}
.receipt-field-empty {
min-height: 64px;
display: inline-flex;
align-items: center;
justify-content: center;
gap: 8px;
border: 1px dashed #d7e0ea;
border-radius: 4px;
background: #f8fafc;
color: #64748b;
font-size: 13px;
font-weight: 700;
}
.receipt-preview-panel {
@@ -233,20 +291,6 @@
grid-template-rows: auto minmax(0, 1fr);
}
.receipt-preview-panel header {
padding: 14px;
border-bottom: 1px solid #e5edf5;
}
.preview-source-btn {
border: 0;
background: transparent;
color: var(--theme-primary-active);
font-size: 13px;
font-weight: 750;
text-decoration: none;
}
.receipt-preview-box {
min-height: 0;
display: grid;
@@ -281,13 +325,6 @@
font-size: 34px;
}
.receipt-detail-foot {
justify-content: space-between;
gap: 12px;
padding-top: 14px;
border-top: 1px solid #dbe4ee;
}
.associate-step {
display: grid;
gap: 12px;
@@ -350,7 +387,7 @@
}
@media (max-width: 1120px) {
.receipt-detail-layout {
.receipt-folder-detail :deep(.detail-grid) {
grid-template-columns: 1fr;
overflow-y: auto;
}
@@ -361,12 +398,12 @@
}
@media (max-width: 760px) {
.receipt-folder-list,
.receipt-folder-detail {
.receipt-folder-list {
padding: 12px;
}
.receipt-form-grid {
.receipt-key-grid,
.receipt-edit-field-row {
grid-template-columns: 1fr;
}
}

View File

@@ -27,7 +27,7 @@
min-height: 36px;
padding: 0 10px;
border: 1px solid rgba(203, 213, 225, 0.92);
border-radius: 10px;
border-radius: 4px;
background: #fff;
color: #0f172a;
font-size: 12px;
@@ -53,14 +53,14 @@
grid-template-columns: repeat(2, minmax(0, 1fr));
gap: 8px;
padding: 4px;
border-radius: 12px;
border-radius: 4px;
background: rgba(241, 245, 249, 0.92);
}
.composer-date-mode-btn {
min-height: 34px;
border: 0;
border-radius: 10px;
border-radius: 4px;
background: transparent;
color: #64748b;
font-size: 12px;
@@ -101,7 +101,7 @@
min-height: 36px;
padding: 0 10px;
border: 1px solid rgba(203, 213, 225, 0.92);
border-radius: 10px;
border-radius: 4px;
background: #fff;
color: #0f172a;
font-size: 12px;
@@ -132,7 +132,7 @@
.composer-date-apply-btn {
min-height: 34px;
padding: 0 14px;
border-radius: 10px;
border-radius: 4px;
font-size: 12px;
font-weight: 800;
}
@@ -158,7 +158,7 @@
min-width: 0;
min-height: var(--composer-control-size, 44px);
border: 1px solid rgba(214, 225, 234, 0.95);
border-radius: 999px;
border-radius: 4px;
background: rgba(255, 255, 255, 0.98);
box-shadow:
0 10px 22px rgba(226, 232, 240, 0.24),
@@ -181,7 +181,7 @@
max-width: min(100%, 320px);
min-height: 28px;
padding: 0 8px 0 10px;
border-radius: 999px;
border-radius: 4px;
border: 1px solid rgba(var(--theme-primary-rgb, 58, 124, 165), 0.28);
background: linear-gradient(135deg, rgba(var(--theme-primary-rgb, 58, 124, 165), 0.14), rgba(var(--theme-primary-rgb, 58, 124, 165), 0.08));
color: var(--theme-primary-active);
@@ -209,7 +209,7 @@
place-items: center;
padding: 0;
border: 0;
border-radius: 999px;
border-radius: 4px;
background: rgba(255, 255, 255, 0.72);
color: #3b82f6;
flex: none;
@@ -224,8 +224,8 @@
gap: 10px;
padding: 14px;
border: 1px solid rgba(226, 232, 240, 0.9);
border-radius: 18px;
background: linear-gradient(180deg, rgba(248, 251, 255, 0.92) 0%, rgba(242, 247, 251, 0.78) 100%);
border-radius: 4px;
background: rgba(248, 251, 255, 0.92);
}
.composer-files-head {
@@ -299,7 +299,7 @@
place-items: center;
padding: 0;
border: 0;
border-radius: 999px;
border-radius: 4px;
background: rgba(255, 255, 255, 0.82);
color: inherit;
flex: none;
@@ -323,7 +323,7 @@
justify-content: space-between;
gap: 10px;
padding: 10px 12px;
border-radius: 14px;
border-radius: 4px;
border: 1px solid rgba(219, 230, 240, 0.92);
background: rgba(255, 255, 255, 0.88);
}
@@ -350,7 +350,7 @@
display: grid;
place-items: center;
border: 0;
border-radius: 10px;
border-radius: 4px;
background: rgba(248, 250, 252, 0.92);
color: #64748b;
}
@@ -404,7 +404,7 @@
display: grid;
place-items: center;
border: 0;
border-radius: 999px;
border-radius: 4px;
flex: none;
}
@@ -501,7 +501,7 @@
display: inline-flex;
align-items: center;
padding: 0 10px;
border-radius: 999px;
border-radius: 4px;
background: var(--theme-primary-soft);
color: var(--theme-primary-active);
font-size: 11px;
@@ -538,7 +538,7 @@
display: inline-flex;
align-items: center;
justify-content: center;
border-radius: 999px;
border-radius: 4px;
border: 1px solid rgba(203, 213, 225, 0.92);
background: rgba(248, 250, 252, 0.96);
color: #94a3b8;
@@ -606,7 +606,7 @@
display: inline-flex;
align-items: center;
padding: 0 13px;
border-radius: 999px;
border-radius: 4px;
font-size: var(--wb-fs-chip);
font-weight: 800;
}
@@ -654,7 +654,7 @@
.confidence-card {
min-width: 92px;
padding: 10px 12px;
border-radius: 14px;
border-radius: 4px;
background: rgba(250, 252, 252, 0.9);
border: 1px solid rgba(202, 213, 223, 0.9);
box-shadow: 0 8px 18px rgba(203, 213, 225, 0.3);
@@ -698,7 +698,7 @@
display: grid;
gap: 10px;
padding: 14px;
border-radius: 18px;
border-radius: 4px;
border: 1px solid rgba(197, 209, 221, 0.88);
background: rgba(249, 251, 251, 0.88);
box-shadow: 0 10px 20px rgba(226, 232, 240, 0.3);
@@ -745,7 +745,7 @@
gap: 8px;
align-items: start;
padding: 12px;
border-radius: 14px;
border-radius: 4px;
border: 1px solid rgba(206, 216, 226, 0.88);
background: rgba(251, 252, 252, 0.82);
position: relative;
@@ -776,7 +776,7 @@
height: 32px;
display: grid;
place-items: center;
border-radius: 8px;
border-radius: 4px;
background: #f1f5f9;
border: 1px solid transparent;
color: #64748b;
@@ -821,7 +821,7 @@
min-height: 34px;
padding: 0 10px;
border: 1px solid rgba(var(--theme-primary-rgb, 58, 124, 165), 0.2);
border-radius: 10px;
border-radius: 4px;
background: rgba(255, 255, 255, 0.96);
color: #0f172a;
font-size: 12px;
@@ -860,7 +860,7 @@
align-items: center;
justify-content: center;
padding: 0 10px;
border-radius: 999px;
border-radius: 4px;
border: 1px solid rgba(203, 213, 225, 0.92);
background: rgba(255, 255, 255, 0.96);
color: #475569;
@@ -889,7 +889,7 @@
display: inline-flex;
align-items: center;
padding: 0 6px;
border-radius: 999px;
border-radius: 4px;
background: rgba(255, 255, 255, 0.92);
border: 1px solid rgba(226, 232, 240, 0.92);
color: #94a3b8;
@@ -953,7 +953,7 @@
gap: 8px;
padding: 12px;
min-height: 66px;
border-radius: 14px;
border-radius: 4px;
border: 1px solid rgba(226, 232, 240, 0.94);
background: rgba(255, 255, 255, 0.68);
cursor: pointer;
@@ -1005,7 +1005,7 @@
align-items: center;
justify-content: center;
padding: 0 12px;
border-radius: 999px;
border-radius: 4px;
border: 1px solid rgba(203, 213, 225, 0.92);
background: rgba(255, 255, 255, 0.94);
color: #475569;
@@ -1045,7 +1045,7 @@
min-height: 66px;
padding: 10px;
border: 1px solid rgba(226, 232, 240, 0.95);
border-radius: 14px;
border-radius: 4px;
background: rgba(255, 255, 255, 0.76);
color: #334155;
text-align: left;
@@ -1063,7 +1063,7 @@
height: 30px;
display: grid;
place-items: center;
border-radius: 10px;
border-radius: 4px;
background: rgba(58, 124, 165, 0.12);
color: #2f6d95;
font-size: 16px;
@@ -1136,7 +1136,7 @@
gap: 8px;
padding: 14px;
border: 1px dashed rgba(203, 213, 225, 0.92);
border-radius: 16px;
border-radius: 4px;
background: rgba(255, 255, 255, 0.52);
}
@@ -1145,7 +1145,7 @@
height: 36px;
display: grid;
place-items: center;
border-radius: 12px;
border-radius: 4px;
background: rgba(240, 244, 248, 0.96);
color: #94a3b8;
font-size: 18px;
@@ -1174,7 +1174,7 @@
gap: 6px;
padding: 0 14px;
border: 1px solid rgba(var(--theme-primary-rgb, 58, 124, 165), 0.22);
border-radius: 999px;
border-radius: 4px;
background: rgba(255, 255, 255, 0.94);
color: var(--theme-primary-active);
font-size: 12px;
@@ -1208,7 +1208,7 @@
align-items: center;
gap: 8px;
padding: 4px;
border-radius: 999px;
border-radius: 4px;
background: rgba(255, 255, 255, 0.92);
border: 1px solid rgba(226, 232, 240, 0.92);
white-space: nowrap;
@@ -1226,7 +1226,7 @@
display: grid;
place-items: center;
border: 0;
border-radius: 999px;
border-radius: 4px;
background: rgba(241, 245, 249, 0.96);
color: #334155;
}
@@ -1269,7 +1269,7 @@
display: inline-flex;
align-items: center;
padding: 0 10px;
border-radius: 999px;
border-radius: 4px;
background: var(--theme-primary-soft);
color: var(--theme-primary-active);
font-size: 11px;
@@ -1287,7 +1287,7 @@
display: inline-flex;
align-items: center;
padding: 0 10px;
border-radius: 999px;
border-radius: 4px;
background: rgba(248, 250, 252, 0.94);
border: 1px solid rgba(226, 232, 240, 0.92);
color: #475569;
@@ -1313,9 +1313,9 @@
.review-document-preview-card {
min-height: 168px;
overflow: hidden;
border-radius: 16px;
border-radius: 4px;
border: 1px solid rgba(226, 232, 240, 0.94);
background: linear-gradient(180deg, #f8fafc 0%, #eef2f7 100%);
background: #f8fafc;
}
.review-document-preview-card.clickable {
@@ -1392,7 +1392,7 @@
.review-document-edit-field textarea {
width: 100%;
border: 1px solid rgba(219, 230, 240, 0.96);
border-radius: 14px;
border-radius: 4px;
background: rgba(255, 255, 255, 0.96);
color: #0f172a;
font-size: 13px;
@@ -1423,7 +1423,7 @@
gap: 8px;
align-items: start;
padding: 10px 12px;
border-radius: 14px;
border-radius: 4px;
background: rgba(255, 247, 237, 0.92);
border: 1px solid rgba(253, 186, 116, 0.6);
color: #c2410c;
@@ -1438,13 +1438,13 @@
.insight-card {
padding: 16px;
border: 1px solid #e7eef6;
border-radius: 20px;
border-radius: 4px;
background: rgba(255, 255, 255, 0.95);
box-shadow: 0 14px 24px rgba(241, 245, 249, 0.86);
}
.insight-card.primary {
background: linear-gradient(180deg, #ffffff 0%, #f9fbff 100%);
background: #ffffff;
}
.card-head {
@@ -1474,7 +1474,7 @@
gap: 10px;
padding: 12px 14px;
border: 1px solid rgba(226, 232, 240, 0.92);
border-radius: 16px;
border-radius: 4px;
background: rgba(248, 250, 252, 0.86);
color: #1e293b;
text-align: left;
@@ -1505,7 +1505,7 @@
display: inline-flex;
align-items: center;
justify-content: center;
border-radius: 999px;
border-radius: 4px;
background: rgba(226, 232, 240, 0.9);
color: #0f172a;
font-size: 12px;

View File

@@ -17,7 +17,7 @@
display: inline-flex;
align-items: center;
padding: 0 10px;
border-radius: 999px;
border-radius: 4px;
font-size: 12px;
font-weight: 800;
white-space: nowrap;
@@ -50,7 +50,7 @@
.metric-item {
padding: 12px 14px;
border-radius: 16px;
border-radius: 4px;
background: #f8fafc;
}
@@ -129,7 +129,7 @@
gap: 12px;
align-items: center;
padding: 12px 14px;
border-radius: 16px;
border-radius: 4px;
background: #f8fafc;
}
@@ -190,7 +190,7 @@
}
.review-flow-panel .flow-step-card {
border-radius: 14px;
border-radius: 4px;
box-shadow: none;
}
@@ -315,7 +315,7 @@
display: grid;
gap: 10px;
padding: 12px 14px;
border-radius: 16px;
border-radius: 4px;
border: 1px solid rgba(226, 232, 240, 0.92);
background: rgba(255, 255, 255, 0.76);
}
@@ -338,7 +338,7 @@
display: inline-flex;
align-items: center;
padding: 0 8px;
border-radius: 999px;
border-radius: 4px;
background: rgba(255, 255, 255, 0.92);
border: 1px solid #e2e8f0;
color: #475569;
@@ -377,7 +377,7 @@
gap: 10px;
align-items: center;
padding: 11px 12px;
border-radius: 14px;
border-radius: 4px;
background: rgba(255, 255, 255, 0.88);
border: 1px solid rgba(226, 232, 240, 0.92);
}
@@ -404,7 +404,7 @@
height: 36px;
display: grid;
place-items: center;
border-radius: 10px;
border-radius: 4px;
background: var(--theme-primary-soft);
color: var(--theme-primary-active);
font-size: 16px;
@@ -457,7 +457,7 @@
align-items: center;
justify-content: center;
padding: 0 10px;
border-radius: 999px;
border-radius: 4px;
font-size: 10px;
font-weight: 800;
white-space: nowrap;
@@ -500,7 +500,7 @@
align-items: center;
justify-content: center;
padding: 0 14px;
border-radius: 12px;
border-radius: 4px;
border: 1px solid #dbe6f0;
background: rgba(255, 255, 255, 0.92);
color: #334155;
@@ -545,7 +545,7 @@
align-items: center;
justify-content: center;
padding: 0 16px;
border-radius: 999px;
border-radius: 4px;
font-size: 12px;
font-weight: 800;
}
@@ -605,7 +605,7 @@
display: grid;
gap: 8px;
padding: 14px 16px;
border-radius: 18px;
border-radius: 4px;
border: 1px solid #dbeafe;
background: linear-gradient(180deg, #f8fbff 0%, #f0f7ff 100%);
}
@@ -626,7 +626,7 @@
display: inline-flex;
align-items: center;
padding: 0 10px;
border-radius: 999px;
border-radius: 4px;
background: rgba(255, 255, 255, 0.86);
color: #0f172a;
font-size: 12px;
@@ -638,7 +638,7 @@
display: grid;
gap: 10px;
padding: 14px 16px;
border-radius: 18px;
border-radius: 4px;
border: 1px solid #e2e8f0;
background: rgba(255, 255, 255, 0.88);
box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.66);
@@ -662,7 +662,7 @@
display: inline-flex;
align-items: center;
padding: 0 9px;
border-radius: 999px;
border-radius: 4px;
background: #fff;
color: #475569;
font-size: 11px;
@@ -693,7 +693,7 @@
display: inline-flex;
align-items: center;
padding: 0 12px;
border-radius: 999px;
border-radius: 4px;
background: #fff;
color: #0f172a;
font-size: 12px;
@@ -706,7 +706,7 @@
display: grid;
gap: 4px;
padding: 10px 12px;
border-radius: 14px;
border-radius: 4px;
border: 1px solid #e2e8f0;
background: #fff;
}
@@ -762,7 +762,7 @@
.review-claim-card,
.review-document-card {
border: 1px solid #e2e8f0;
border-radius: 16px;
border-radius: 4px;
background: #f8fbff;
}
@@ -829,7 +829,7 @@
.review-slot-meta-item {
padding: 9px 10px;
border-radius: 12px;
border-radius: 4px;
background: rgba(255, 255, 255, 0.82);
border: 1px solid rgba(226, 232, 240, 0.9);
}
@@ -886,8 +886,8 @@
.document-preview {
min-height: 124px;
overflow: hidden;
border-radius: 14px;
background: linear-gradient(180deg, #f8fafc 0%, #eef2f7 100%);
border-radius: 4px;
background: #f8fafc;
border: 1px dashed #dbe3ec;
}
@@ -941,7 +941,7 @@
display: grid;
gap: 8px;
padding: 14px;
border-radius: 16px;
border-radius: 4px;
background: #f8fafc;
}
@@ -978,15 +978,15 @@
display: grid;
gap: 10px;
padding: 16px 18px;
border-radius: 22px;
border-radius: 4px;
border: 1px solid rgba(191, 219, 254, 0.9);
background: linear-gradient(180deg, #ffffff 0%, #f5fbff 100%);
background: #ffffff;
box-shadow: 0 16px 28px rgba(241, 245, 249, 0.9);
}
.recognition-bubble.secondary {
border-color: #e2e8f0;
background: linear-gradient(180deg, #ffffff 0%, #f8fafc 100%);
background: #ffffff;
}
.recognition-bubble-label {
@@ -1028,8 +1028,8 @@
gap: 14px;
align-items: start;
padding: 16px;
border-radius: 22px;
background: linear-gradient(180deg, #ffffff 0%, #f7fafc 100%);
border-radius: 4px;
background: #ffffff;
border: 1px solid rgba(226, 232, 240, 0.95);
box-shadow: 0 16px 28px rgba(241, 245, 249, 0.92);
}
@@ -1065,10 +1065,8 @@
.review-confirm-modal {
width: min(720px, calc(100vw - 40px));
border-radius: 24px;
background:
radial-gradient(circle at top right, rgba(var(--theme-primary-rgb, 58, 124, 165), 0.08), transparent 28%),
linear-gradient(180deg, #fbfdff 0%, #f6f9fc 100%);
border-radius: 4px;
background: #fbfdff;
box-shadow:
0 24px 80px rgba(15, 23, 42, 0.22),
0 2px 12px rgba(15, 23, 42, 0.08);

View File

@@ -12,10 +12,8 @@
display: grid;
grid-template-rows: auto minmax(0, 1fr);
overflow: hidden;
border-radius: 24px;
background:
radial-gradient(circle at top right, rgba(var(--theme-primary-rgb, 58, 124, 165), 0.08), transparent 28%),
linear-gradient(180deg, #fbfdff 0%, #f6f9fc 100%);
border-radius: 4px;
background: #fbfdff;
box-shadow:
0 24px 80px rgba(15, 23, 42, 0.22),
0 2px 12px rgba(15, 23, 42, 0.08);
@@ -51,7 +49,7 @@
max-width: 100%;
max-height: calc(92vh - 170px);
display: block;
border-radius: 20px;
border-radius: 4px;
object-fit: contain;
box-shadow: 0 16px 34px rgba(148, 163, 184, 0.26);
}
@@ -60,7 +58,7 @@
width: 100%;
height: min(78vh, 820px);
border: 0;
border-radius: 18px;
border-radius: 4px;
background: #fff;
}
@@ -92,7 +90,7 @@
gap: 6px;
padding: 0 14px;
border: 1px solid #cbd5e1;
border-radius: 12px;
border-radius: 4px;
background: #ffffff;
color: #334155;
font-size: var(--wb-fs-chip);
@@ -131,7 +129,7 @@
.welcome-card {
padding: 14px;
border-radius: 18px;
border-radius: 4px;
background: #f8fafc;
}
@@ -329,7 +327,7 @@
.assistant-modal,
.assistant-modal-stage {
border-radius: 10px;
border-radius: 4px;
}
.assistant-header {
@@ -352,7 +350,7 @@
.close-btn {
width: 40px;
height: 40px;
border-radius: 14px;
border-radius: 4px;
font-size: 16px;
}

View File

@@ -24,7 +24,7 @@
display: flex;
flex-direction: column;
border: 0;
border-radius: 10px;
border-radius: 4px;
background: transparent;
box-shadow: none;
overflow: hidden;
@@ -142,7 +142,7 @@
background: transparent;
box-shadow: none;
border: 0;
border-radius: 10px;
border-radius: 4px;
backdrop-filter: none;
-webkit-backdrop-filter: none;
overflow: hidden;
@@ -179,9 +179,8 @@
display: grid;
grid-template-rows: auto minmax(0, 1fr);
transform: none;
border-radius: 10px;
background:
linear-gradient(180deg, #f8fbff 0%, #edf5ff 100%);
border-radius: 4px;
background: #f6f9fc;
box-shadow:
0 28px 72px rgba(15, 23, 42, 0.22),
0 10px 28px rgba(15, 23, 42, 0.09),
@@ -217,7 +216,7 @@
align-items: center;
justify-content: center;
padding: 0 14px;
border-radius: 999px;
border-radius: 4px;
background: linear-gradient(135deg, var(--theme-primary), var(--theme-primary-active));
color: #fff;
font-size: var(--wb-fs-badge);
@@ -290,7 +289,7 @@
place-items: center;
padding: 0;
border: 1px solid rgba(248, 113, 113, 0.28);
border-radius: 14px;
border-radius: 4px;
flex: none;
}
@@ -342,7 +341,7 @@
padding: 0;
flex: none;
border: 1px solid rgba(193, 204, 216, 0.92);
border-radius: 14px;
border-radius: 4px;
background: rgba(248, 251, 251, 0.94);
color: #475569;
font-size: 16px;
@@ -375,7 +374,7 @@
align-items: center;
justify-content: center;
padding: 0 10px;
border-radius: 999px;
border-radius: 4px;
background: #f1f5f9;
color: #64748b;
font-size: 11px;
@@ -405,7 +404,7 @@
place-items: center;
padding: 0;
border: 1px solid rgba(203, 213, 225, 0.86);
border-radius: 12px;
border-radius: 4px;
background: rgba(255, 255, 255, 0.92);
color: #475569;
font-size: 16px;
@@ -493,7 +492,7 @@
gap: 7px;
padding: 13px 14px;
border: 1px solid #e5edf5;
border-radius: 12px;
border-radius: 4px;
background: #fff;
box-shadow: 0 8px 22px rgba(226, 232, 240, 0.34);
}
@@ -531,7 +530,7 @@
display: inline-flex;
align-items: center;
padding: 0 9px;
border-radius: 999px;
border-radius: 4px;
background: #f1f5f9;
color: #64748b;
font-size: 11px;
@@ -563,7 +562,6 @@
font-variant-numeric: tabular-nums;
}
.flow-step-tool,
.flow-step-detail,
.flow-step-error {
margin: 0;
@@ -632,7 +630,7 @@
min-width: 0;
min-height: 0;
border: 1px solid rgba(189, 201, 214, 0.74);
border-radius: 16px;
border-radius: 4px;
background: #ffffff;
box-shadow:
0 14px 32px rgba(148, 163, 184, 0.16),
@@ -646,8 +644,7 @@
display: grid;
grid-template-rows: auto minmax(0, 1fr) auto;
overflow: hidden;
background:
linear-gradient(180deg, #ffffff 0%, #f8fbff 100%);
background: #ffffff;
transition:
transform 320ms cubic-bezier(0.22, 1, 0.36, 1),
box-shadow 320ms cubic-bezier(0.22, 1, 0.36, 1);
@@ -715,7 +712,7 @@
gap: 6px;
padding: 0 13px;
border: 1px solid rgba(219, 230, 240, 0.9);
border-radius: 8px;
border-radius: 4px;
background: rgba(255, 255, 255, 0.95);
color: #334155;
font-size: 13px;
@@ -812,7 +809,7 @@
max-width: min(100%, 720px);
padding: 12px 14px;
border: 1px solid rgba(210, 220, 230, 0.94);
border-radius: 20px;
border-radius: 4px;
background: rgba(253, 254, 254, 0.94);
color: #24324a;
font-size: var(--wb-fs-bubble);
@@ -940,7 +937,7 @@
margin-top: 12px;
overflow: hidden;
border: 1px solid #d7e4f2;
border-radius: 8px;
border-radius: 4px;
background: #ffffff;
color: #334155;
font-size: var(--wb-fs-bubble);
@@ -1113,7 +1110,7 @@
.message-answer-markdown :deep(blockquote) {
padding: 8px 10px;
border-left: 3px solid #cbd5e1;
border-radius: 0 10px 10px 0;
border-radius: 0 4px 4px 0;
background: rgba(248, 250, 252, 0.84);
color: #475569;
}
@@ -1123,7 +1120,7 @@
padding: 12px 14px;
border: 1px solid #dbe4ee;
border-left: 4px solid #2563eb;
border-radius: 8px;
border-radius: 4px;
background: #f8fafc;
color: #334155;
}
@@ -1152,7 +1149,7 @@
.message-answer-markdown :deep(code) {
padding: 2px 6px;
border-radius: 6px;
border-radius: 4px;
background: #e2e8f0;
font-size: 12px;
}
@@ -1160,7 +1157,7 @@
.message-answer-markdown :deep(pre) {
overflow-x: auto;
padding: 12px;
border-radius: 14px;
border-radius: 4px;
background: #0f172a;
color: #e2e8f0;
}
@@ -1218,7 +1215,7 @@
margin: 8px 0 10px;
overflow-x: auto;
border: 1px solid #dbe4ee;
border-radius: 10px;
border-radius: 4px;
background: #fff;
box-shadow: 0 8px 20px rgba(15, 23, 42, 0.05);
}
@@ -1262,13 +1259,6 @@
border-bottom: 0;
}
.message-meta-row {
display: flex;
flex-wrap: wrap;
gap: 8px;
margin-top: 10px;
}
.message-suggested-actions {
display: grid;
grid-template-columns: repeat(2, minmax(0, 1fr));
@@ -1276,7 +1266,7 @@
margin-top: 14px;
padding: 10px;
border: 1px solid rgba(203, 213, 225, 0.72);
border-radius: 14px;
border-radius: 4px;
background:
linear-gradient(180deg, rgba(248, 250, 252, 0.92), rgba(255, 255, 255, 0.98));
box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.78);
@@ -1291,7 +1281,7 @@
gap: 10px;
padding: 12px 11px;
border: 1px solid rgba(203, 213, 225, 0.8);
border-radius: 10px;
border-radius: 4px;
background: rgba(255, 255, 255, 0.9);
color: #0f172a;
text-align: left;
@@ -1309,7 +1299,7 @@
height: 34px;
display: grid;
place-items: center;
border-radius: 10px;
border-radius: 4px;
background: #f1f5f9;
color: var(--theme-primary-active);
font-size: 18px;
@@ -1396,7 +1386,6 @@
opacity: 1;
}
.message-meta-chip,
.capability-chip,
.risk-chip,
.message-risk-chip,
@@ -1405,35 +1394,16 @@
display: inline-flex;
align-items: center;
padding: 0 10px;
border-radius: 999px;
border-radius: 4px;
font-size: var(--wb-fs-chip);
font-weight: 800;
}
.message-meta-chip,
.capability-chip {
background: #eef6ff;
color: #1d4ed8;
}
.message-meta-chip.high {
background: #fef2f2;
color: #dc2626;
border: 1px solid #fecaca;
}
.message-meta-chip.medium {
background: #fffbeb;
color: #b45309;
border: 1px solid #fde68a;
}
.message-meta-chip.low {
background: #eff6ff;
color: #1d4ed8;
border: 1px solid #bfdbfe;
}
.risk-chip,
.message-risk-chip {
background: #fff1f2;
@@ -1460,7 +1430,7 @@
.message-citation-disclosure {
overflow: hidden;
border: 1px solid #dbe4ee;
border-radius: 16px;
border-radius: 4px;
background: #fbfdff;
}
@@ -1531,7 +1501,7 @@
display: inline-flex;
align-items: center;
padding: 0 10px;
border-radius: 999px;
border-radius: 4px;
font-size: 11px;
font-weight: 800;
background: #eef2ff;
@@ -1571,7 +1541,7 @@
gap: 10px;
padding: 10px 12px;
border: 1px solid #dbe4ee;
border-radius: 14px;
border-radius: 4px;
background: #fbfdff;
cursor: pointer;
font: inherit;
@@ -1646,7 +1616,7 @@
display: inline-flex;
align-items: center;
padding: 0 8px;
border-radius: 999px;
border-radius: 4px;
font-size: 10px;
font-weight: 800;
background: #f1f5f9;
@@ -1698,7 +1668,7 @@
gap: 5px;
padding: 0 8px;
border: 1px solid #fecaca;
border-radius: 999px;
border-radius: 4px;
background: #fff7ed;
color: #9a3412;
font: inherit;
@@ -1763,7 +1733,7 @@
align-items: center;
justify-content: center;
border: 1px solid #dbe4ee;
border-radius: 999px;
border-radius: 4px;
background: #fff;
color: #475569;
transition: border-color 0.2s ease, color 0.2s ease, background 0.2s ease;
@@ -1808,7 +1778,7 @@
gap: 10px;
padding: 0 14px;
border: 1px dashed #dbe4ee;
border-radius: 16px;
border-radius: 4px;
color: #64748b;
font-size: 12px;
font-weight: 700;
@@ -1845,7 +1815,7 @@
.action-card {
padding: 12px 14px;
border: 1px solid #e2e8f0;
border-radius: 16px;
border-radius: 4px;
background: #f8fbff;
}
@@ -1887,8 +1857,8 @@
margin-top: 12px;
padding: 12px 14px;
border: 1px solid #dbe3ec;
border-radius: 16px;
background: linear-gradient(180deg, #ffffff 0%, #f8fafc 100%);
border-radius: 4px;
background: #ffffff;
}
.draft-preview header {
@@ -1931,7 +1901,7 @@
gap: 6px;
padding: 0 10px;
border: 0;
border-radius: 999px;
border-radius: 4px;
background: #f1f5f9;
color: #475569;
font-size: 12px;
@@ -1990,7 +1960,7 @@
gap: 12px;
padding: 14px;
border: 1px solid rgba(203, 213, 225, 0.92);
border-radius: 16px;
border-radius: 4px;
background: rgba(255, 255, 255, 0.98);
box-shadow:
0 18px 40px rgba(15, 23, 42, 0.16),
@@ -2007,7 +1977,7 @@
gap: 12px;
padding: 14px;
border: 1px solid rgba(203, 213, 225, 0.92);
border-radius: 16px;
border-radius: 4px;
background: rgba(255, 255, 255, 0.98);
box-shadow:
0 18px 40px rgba(15, 23, 42, 0.16),

View File

@@ -653,6 +653,32 @@
font-weight: 850;
}
.related-application-facts {
margin-top: 0;
}
.related-application-empty {
display: grid;
gap: 6px;
padding: 13px 14px;
border: 1px solid #e2e8f0;
border-radius: 4px;
background: #f8fafc;
}
.related-application-empty strong {
color: #334155;
font-size: 13px;
font-weight: 850;
}
.related-application-empty p {
margin: 0;
color: #64748b;
font-size: 12px;
line-height: 1.6;
}
.detail-note-editor {
display: grid;
gap: 10px;