/* 组件样式 */ /* 消息提示样式 */ #ant-message-container { position: fixed; top: 20px; left: 50%; transform: translateX(-50%); z-index: 9999; width: fit-content; max-width: 80%; } .ant-message { background: #fff2f0; border: 1px solid #ffccc7; border-radius: 4px; padding: 10px 16px; margin-bottom: 10px; box-shadow: 0 4px 12px rgba(0,0,0,0.15); display: flex; align-items: center; animation: antMessageFadeIn 0.3s ease-in-out; font-size: 14px; line-height: 1.5; } .ant-message-success { background: #f6ffed; border-color: #b7eb8f; } .ant-message-warning { background: #fffbe6; border-color: #ffe58f; } .ant-message-info { background: #e6f7ff; border-color: #91d5ff; } .ant-message-error { background: #fff2f0; border-color: #ffccc7; } .ant-message-icon { margin-right: 8px; font-weight: bold; font-size: 16px; } .ant-message-success .ant-message-icon { color: #52c41a; } .ant-message-warning .ant-message-icon { color: #faad14; } .ant-message-info .ant-message-icon { color: #1890ff; } .ant-message-error .ant-message-icon { color: #ff4d4f; } @keyframes antMessageFadeIn { from { opacity: 0; transform: translateY(-100%); } to { opacity: 1; transform: translateY(0); } } @keyframes antMessageFadeOut { from { opacity: 1; transform: translateY(0); } to { opacity: 0; transform: translateY(-100%); } } /* 按钮样式 */ .btn-primary { background-color: #2563eb; color: white; font-weight: 600; padding: 0.5rem 1rem; border-radius: 0.5rem; border: none; cursor: pointer; transition: background-color 150ms cubic-bezier(0.4, 0, 0.2, 1); } .btn-primary:hover { background-color: #1d4ed8; } .btn-secondary { background-color: #e5e7eb; color: #374151; font-weight: 500; padding: 0.5rem 1rem; border-radius: 0.5rem; border: 1px solid #d1d5db; cursor: pointer; transition: background-color 150ms cubic-bezier(0.4, 0, 0.2, 1); } .btn-secondary:hover { background-color: #f3f4f6; } /* 输入框样式 */ .input-field { flex: 1; background-color: transparent; padding: 0.5rem 0.5rem; outline: none; } .input-container { display: flex; align-items: center; border: 1px solid #d1d5db; border-radius: 0.25rem; /* padding: 0.25rem 0.5rem; */ background-color: #f3f4f6; margin-top: 10px; } .input-container:focus-within { border-color: #3b82f6; } .company-list-container { padding: 0 !important; margin: 0 !important; border: 0 !important; border-radius: unset !important; border-color: unset !important; } .company-item { padding: 8px 10px !important; margin-top: 6px !important; font-size: 16px !important; background-color: unset !important; cursor: pointer; } .company-item:hover { background-color: #466bb5 !important; } /* .selected-company 样式已移至app.py中的custom_css */ /* 卡片样式 */ .card { background-color: white; border: 1px solid #d1d5db; border-radius: 0.5rem; /* padding: 1rem; */ } .card-title { font-weight: 500; color: #111827; /* margin: 0 0 0.75rem 0; */ padding: 5px 7px; } /* 表格样式 */ .data-table { width: 100%; font-size: 0.875rem; } .data-table th { text-align: left; padding: 0.5rem 0; color: #6b7280; border-bottom: 1px solid #e5e7eb; } .data-table td { padding: 0.5rem 0; border-bottom: 1px solid #e5e7eb; } .data-table tr:last-child td { border-bottom: none; } .text-right { text-align: right; } .text-green { color: #16a34a; } .text-red { color: #dc2626; } /* 进度条样式 */ .progress-container { width: 100%; background-color: #e5e7eb; border-radius: 0.5rem; height: 0.5rem; margin-top: 0.25rem; } .progress-bar { height: 100%; border-radius: 0.5rem; } .progress-bar.blue { background-color: #3b82f6; } .progress-bar.green { background-color: #22c55e; } .progress-bar.purple { background-color: #a855f7; } .progress-bar.red { background-color: #ef4444; } /* PDF预览样式 */ .pdf-preview { border: 1px solid #d1d5db; border-radius: 0.5rem; overflow: hidden; } .pdf-header { display: flex; align-items: center; gap: 0.25rem; padding: 0.5rem; border-bottom: 1px solid #d1d5db; font-size: 0.875rem; } .pdf-pages { display: flex; padding: 0.5rem; } .pdf-page { height: 6rem; border: 1px solid #d1d5db; border-radius: 0.25rem; cursor: pointer; margin-right: 0.5rem; } .pdf-page:hover { border-color: #93c5fd; } .pdf-page.active { border-color: #93c5fd; border-width: 2px; } .pdf-viewer { height: 100%; border: 1px solid #e5e7eb; background-color: #f3f4f6; display: flex; align-items: center; justify-content: center; } .pdf-footer { padding: 0.5rem; background-color: #f3f4f6; display: flex; align-items: center; justify-content: space-between; font-size: 0.875rem; color: #6b7280; margin-top: 0 !important; } /* 图标按钮 */ .icon-button { cursor: pointer; padding: 0.25rem; border-radius: 0.25rem; } .icon-button:hover { background-color: #f3f4f6; color: #2563eb; } .custom-add-input { position: relative; padding-left: 32px !important; } .custom-add-input textarea::before { content: "+"; position: absolute; left: 8px; top: 50%; transform: translateY(-50%); color: #007bff; font-weight: bold; font-size: 16px; } .report-list-box { height: 300px; display: unset !important; overflow-y: auto !important; } .report-item-content { display: flex; align-items: center; justify-content: space-between; } .report-item { height: fit-content; padding: 4px 6px; } .report-item-content span:hover { color: #e1853e !important; } .metric-card-item-current-ratio { height: 109px !important; padding-top: 15px !important; } .metric-card-item-current-ratio .slider_input_container { padding-top: 15px !important; } .chat-content-box { height: 500px !important; overflow-y: auto !important; } /* .chat-content-box .message-wrap { height: 400px !important; } */ .company-input-box { width: 100% !important; } .company-input-box label { width: 100% !important; min-width: 100% !important; } .company-input-box div { width: 100% !important; } .company-input-box textarea { width: 100% !important; } .left-card-title { background: #fff !important; } .home-company-list { width: 100%; padding: 10px; background: #f9fafb !important; } .home-company-item-box { display: flex; justify-content: space-between; align-items: center; padding: 10px 0; gap: 10px; } /* 单个元素时居中对齐 */ .home-company-item-box.single-item { justify-content: center; } .home-company-item { border: 2px solid rgb(217 217 217); padding: 8px 12px; border-radius: 8px; font-size: 16px; flex: 1; min-width: 0; color: rgb(142 143 143); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; text-align: center; cursor: pointer; transition: all 0.2s ease; } .home-company-item:hover { background-color: #e5e7eb; border-color: rgb(156 163 175); color: rgb(55 65 81); transform: translateY(-1px); box-shadow: 0 2px 4px rgba(0, 0, 0, 0.1); } .news-list-box .news-item { padding: 5px; } .news-list-box .news-item-content span:hover { color: rgb(225, 133, 62) !important } .invest-suggest-md-box, .analysis-report-md-box { padding: 10px 20px !important; /* border-left: 1px solid #d0d5dc !important; */ } .metric-card-col-left { max-width: 250px !important; height: 300px !important; } .metric-card-col-middle { max-width: 450px !important; height: 300px !important; } .metric-card-col-right { max-width: 600px !important; height: 300px !important; } [class*="generating"] { display: none !important; }