html, body { margin: 0; } .app-layout { height: 100vh; overflow: hidden; } .app-header { display: flex; align-items: center; justify-content: space-between; padding: 0 var(--ant-padding-lg); background: var(--ant-color-bg-container); border-bottom: 1px solid var(--ant-color-border-secondary); } .app-header-left { display: inline-flex; align-items: center; gap: var(--ant-margin-lg); } .app-header-right { display: inline-flex; align-items: center; gap: var(--ant-margin-sm); } .app-brand-group { display: inline-flex; align-items: baseline; gap: var(--ant-margin-sm); } .app-brand { margin: 0; color: var(--ant-color-text); font-size: calc(var(--ant-font-size-heading-1) - 6px); font-weight: 700; line-height: 1; } .app-version { color: var(--ant-color-text-quaternary); font-size: var(--ant-font-size-sm); font-weight: 400; line-height: 1; } .app-content { overflow: auto; padding: var(--ant-padding) var(--ant-padding-lg); } .app-chat-page { display: flex; height: 100%; overflow: hidden; } .app-console-title { color: var(--ant-color-text-secondary); font-size: var(--ant-font-size); font-weight: 400; } .app-unavailable { display: flex; align-items: center; justify-content: center; min-height: 60vh; } .app-loading { display: flex; align-items: center; justify-content: center; min-height: 60vh; } .ant-layout-sider { border-right: none; } .ant-layout-sider-trigger { border-right: 1px solid var(--ant-color-border-secondary); } .ant-menu { height: 100%; } .app-sidebar-list { display: flex; flex-direction: column; border: 1px solid var(--ant-color-border-secondary); border-radius: var(--ant-border-radius-lg); background: var(--ant-color-bg-container); } .app-sidebar-list-header { display: flex; flex-direction: column; gap: var(--ant-margin-sm); padding: var(--ant-padding-sm); border-bottom: 1px solid var(--ant-color-border-secondary); } .app-sidebar-list-body { display: flex; flex: 1; flex-direction: column; min-height: 0; } .app-sidebar-list-item { border: none; margin: var(--ant-margin-xxs) var(--ant-margin-xxs); padding: var(--ant-padding-xs) var(--ant-padding-sm); border-radius: var(--ant-border-radius-lg); cursor: pointer; transition: background 0.15s ease; } .app-sidebar-list-item:hover { background: var(--ant-color-bg-text-hover); } .app-sidebar-list-item--selected { background: var(--ant-color-primary); color: var(--ant-color-text-light-solid); } .app-sidebar-list-item--selected .ant-typography { color: var(--ant-color-text-light-solid); } .app-sidebar-list-item--selected:hover { background: var(--ant-color-primary); } .app-sidebar-item-actions { opacity: 0; transition: opacity 0.15s ease; } .app-sidebar-list-item:hover .app-sidebar-item-actions { opacity: 1; } .app-sidebar-group { margin-top: var(--ant-margin-xs); } .app-sidebar-group-header { display: flex; align-items: center; gap: var(--ant-margin-xxs); padding: var(--ant-padding-xs) var(--ant-padding-xs); cursor: pointer; user-select: none; border-radius: var(--ant-border-radius-sm); transition: background 0.15s ease; } .app-sidebar-group-header:hover { background: var(--ant-color-fill-tertiary); } .app-sidebar-group-arrow { display: inline-flex; align-items: center; font-size: var(--ant-font-size-sm); color: var(--ant-color-text-quaternary); width: 14px; } .app-sidebar-group-label { font-size: var(--ant-font-size-sm); font-weight: 500; } .app-sidebar-group-count { font-size: var(--ant-font-size-sm); } .app-chat-panel { display: flex; flex: 1; flex-direction: column; min-height: 0; min-width: 0; position: relative; } .chat-welcome-area { display: flex; flex: 1; align-items: center; justify-content: center; padding: var(--ant-padding-xl); } .app-chat-panel-loading { display: flex; align-items: center; justify-content: center; flex: 1; } .chat-sender-area { flex-shrink: 0; margin-left: var(--ant-padding-sm); margin-top: var(--ant-padding-sm); } .message-body { margin-top: 8px; } .chat-scroll-area { flex: 1; min-height: 0; overflow-anchor: auto; margin-left: var(--ant-padding-sm); border-radius: var(--ant-border-radius-lg); height: 100%; } .chat-loading-indicator { padding: 8px; } .message-body-text { margin-bottom: 0; } .step-divider { margin: 4px 0; } .tool-result-pre { font-size: 12px; margin: 0; } .msg-title-ai { color: var(--ant-color-primary); } .part-body { padding: 0 var(--ant-padding-sm); } .icon-primary { color: var(--ant-color-primary); } .icon-success { color: var(--ant-color-success); } .icon-error { color: var(--ant-color-error); } .welcome-icon { color: var(--ant-color-primary); font-size: 48px; } .welcome-title { margin: 0; } .chat-model-select { width: 180px; } .chat-sender-box { background: var(--ant-color-bg-container); } .card-extra-actions .btn-dimmed, .code-block-header .ant-btn.btn-dimmed { color: var(--ant-color-text-quaternary); } .card-extra-actions .btn-dimmed:hover, .code-block-header .ant-btn.btn-dimmed:hover { color: var(--ant-color-text-secondary); } .chat-scroll-bottom-btn { position: absolute; bottom: 140px; left: 50%; transform: translateX(-50%); display: flex; align-items: center; justify-content: center; z-index: 10; box-shadow: 0 2px 8px rgba(0, 0, 0, 0.15); } .app-page-flex { flex: 1; } .os-theme-custom { --os-size: 8px; --os-padding-perpendicular: 2px; --os-padding-axis: 2px; --os-track-border-radius: 10px; --os-handle-border-radius: 10px; --os-handle-bg: var(--ant-color-border-secondary); --os-handle-bg-hover: var(--ant-color-text-quaternary); --os-handle-bg-active: var(--ant-color-text-tertiary); --os-handle-min-size: 33px; --os-handle-max-size: none; --os-handle-interactive-area-offset: 4px; } .app-inbox-page { display: flex; height: 100%; overflow: hidden; } .app-inbox-content { display: flex; flex: 1; flex-direction: column; min-height: 0; min-width: 0; padding: var(--ant-padding-xl); overflow-y: auto; } .app-inbox-datepicker { width: 100%; } .material-item-right { position: relative; display: inline-flex; align-items: center; flex-shrink: 0; } .material-item-tag, .material-item-actions { transition: opacity 0.15s ease; } .material-item-tag { opacity: 1; } .material-item-actions { position: absolute; top: 50%; right: 0; transform: translateY(-50%); opacity: 0; } .app-sidebar-list-item:hover .material-item-tag { opacity: 0; } .app-sidebar-list-item:hover .material-item-actions { opacity: 1; } .app-inbox-filter-count { margin-left: 4px; font-size: var(--ant-font-size-sm); } /* Markdown 代码块 */ .code-block { margin: var(--ant-margin-sm) 0; border: 1px solid var(--ant-color-border-secondary); border-radius: var(--ant-border-radius-lg); overflow: hidden; font-family: var(--ant-font-family-code, monospace); font-size: var(--ant-font-size-sm); } .code-block-header { display: flex; align-items: center; justify-content: space-between; padding: var(--ant-padding-xxs) var(--ant-padding-sm); background: var(--ant-color-bg-container); border-bottom: 1px solid var(--ant-color-border-secondary); } .code-block-lang { color: var(--ant-color-text-quaternary); font-size: var(--ant-font-size-xs); text-transform: lowercase; } .code-block-body { margin: 0; } .code-block-body > pre { padding: var(--ant-padding-sm); margin: 0; overflow-x: auto; } .code-block-body code { font-family: inherit; font-size: inherit; } /* Markdown 表格 */ .markdown-table { width: 100%; margin: var(--ant-margin-sm) 0; border-collapse: separate; border-spacing: 0; border: 1px solid var(--ant-color-border-secondary); border-radius: var(--ant-border-radius-lg); overflow: hidden; font-size: var(--ant-font-size); } .markdown-table th, .markdown-table td { padding: var(--ant-padding-xs) var(--ant-padding-sm); border-bottom: 1px solid var(--ant-color-border-secondary); text-align: left; } .markdown-table thead th { background: var(--ant-color-bg-container); color: var(--ant-color-text); font-weight: 600; border-bottom: 1px solid var(--ant-color-border-secondary); } .markdown-table tbody tr:last-child td { border-bottom: none; } .markdown-table tbody tr:hover td { background: var(--ant-color-fill-quaternary); }