.budget-center-page { width: 100%; height: 100%; min-height: 0; display: grid; grid-template-rows: minmax(0, 1fr); color: #1f2937; overflow: hidden; } .budget-list { height: 100%; min-height: 0; display: grid; grid-template-rows: auto auto minmax(0, 1fr) auto; padding: 16px 18px; overflow: hidden; } .budget-scope-tabs small { min-width: 22px; height: 18px; display: inline-flex; align-items: center; justify-content: center; padding: 0 6px; border-radius: 4px; background: #edf2f7; color: #64748b; font-size: 11px; font-weight: 850; line-height: 1; } .budget-scope-tabs button.active small { background: var(--theme-primary-soft); color: var(--theme-primary-active); } .budget-toolbar { align-items: flex-start; } .budget-primary-btn, .budget-ghost-btn { min-height: 38px; border-radius: 4px; display: inline-flex; align-items: center; justify-content: center; gap: 7px; padding: 0 14px; font-size: 13px; font-weight: 850; white-space: nowrap; transition: background 160ms ease, border-color 160ms ease, color 160ms ease; } .budget-primary-btn { border: 0; background: var(--theme-primary-active); color: #fff; box-shadow: none; } .budget-primary-btn:hover { background: var(--theme-primary-hover); } .budget-ghost-btn { border: 1px solid #d7e0ea; background: #fff; color: #334155; } .budget-ghost-btn:hover { border-color: rgba(var(--theme-primary-rgb), .32); background: var(--theme-primary-soft); color: var(--theme-primary-active); } .budget-table-wrap { min-height: 0; border-radius: 4px; background: #fff; } .budget-list-table { width: 100%; border-collapse: collapse; table-layout: fixed; } .budget-list-table.all { min-width: 1210px; } .budget-list-table.review { min-width: 1240px; } .budget-list-table.archive { min-width: 1110px; } .budget-list-table tbody tr { cursor: pointer; } .budget-list-table tbody tr:hover td { background: var(--theme-primary-soft); } .budget-list-table td:nth-child(4), .budget-list-table td:nth-child(5), .budget-list-table td:nth-child(6), .budget-list-table td:nth-child(7) { font-variant-numeric: tabular-nums; } .budget-list-table th:first-child, .budget-list-table td:first-child { text-align: left; } .col-budget-no { width: 13%; } .col-department { width: 9%; } .col-period { width: 10%; } .col-money { width: 11%; } .col-rate { width: 10%; } .col-status { width: 8%; } .col-updated { width: 12%; } .col-person { width: 8%; } .col-submitted { width: 11%; } .col-change { width: 8%; } .col-score { width: 8%; } .col-version { width: 8%; } .budget-no { color: #0f172a; font-weight: 850; } .budget-rate { width: 100%; max-width: 116px; display: inline-flex; align-items: center; justify-content: center; gap: 8px; } .budget-rate div { flex: 1; min-width: 58px; height: 6px; border-radius: 4px; background: #e9edf3; overflow: hidden; } .budget-rate em { display: block; height: 100%; border-radius: inherit; } .budget-rate em.ok { background: var(--success); } .budget-rate em.reminder { background: var(--theme-primary); } .budget-rate em.alert { background: var(--warning); } .budget-rate em.risk { background: var(--danger); } .budget-rate span { min-width: 38px; color: #334155; font-size: 12px; font-weight: 800; text-align: right; font-variant-numeric: tabular-nums; } .budget-status-tag, .budget-score, .budget-change, .budget-threshold { min-width: 54px; min-height: 24px; padding: 4px 8px; border-radius: 4px; display: inline-flex; align-items: center; justify-content: center; color: #334155; background: #f1f5f9; font-size: 12px; line-height: 1.2; font-weight: 850; white-space: nowrap; } .budget-status-tag.ok, .budget-status-tag.archived { color: var(--success); background: var(--success-soft); } .budget-status-tag.reminder, .budget-status-tag.pending, .budget-score, .budget-threshold.reminder { color: var(--theme-primary-active); background: var(--theme-primary-soft); } .budget-status-tag.alert, .budget-threshold.alert { color: #b45309; background: rgba(245, 158, 11, .14); } .budget-status-tag.risk, .budget-threshold.risk { color: #7f1d1d; background: rgba(127, 29, 29, .1); } .budget-change { color: #b45309; background: rgba(245, 158, 11, .12); } .budget-detail-page { min-height: 0; padding: 16px 18px 0; } .budget-detail-page :deep(.detail-scroll) { min-height: 0; display: block; padding-right: 4px; overflow: auto; } .budget-detail-page :deep(.detail-scroll) > * + * { margin-top: 14px; } .budget-detail-page :deep(.detail-grid) { min-height: 0; display: grid; grid-template-columns: minmax(520px, 1fr) minmax(300px, 360px); gap: 14px; align-items: start; } .budget-detail-page :deep(.detail-main), .budget-detail-page :deep(.detail-side) { min-height: 0; display: grid; gap: 14px; } .budget-detail-page :deep(.detail-actions) { margin-top: 10px; padding: 10px 0 0; } .budget-period-card span, .budget-period-card p, .budget-status-explain-item p { margin: 0; color: #64748b; font-size: 12px; line-height: 1.5; } .budget-period-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 10px; } .budget-period-card { border: 1px solid #dbe4ee; border-radius: 4px; background: #fff; min-height: 94px; padding: 12px 14px; display: grid; gap: 5px; } .budget-period-card strong { color: #0f172a; font-size: 19px; line-height: 1.2; font-weight: 900; font-variant-numeric: tabular-nums; } .budget-detail-page :deep(.enterprise-detail-card) { min-height: 0; padding: 14px; border: 1px solid #dbe4ee; border-radius: 4px; background: #fff; overflow: hidden; } .budget-detail-page :deep(.enterprise-detail-card .card-head) { display: flex; align-items: flex-start; justify-content: space-between; gap: 12px; margin-bottom: 12px; } .budget-detail-page :deep(.enterprise-detail-card .card-head h3) { margin: 0; color: #111827; font-size: 15px; line-height: 1.35; font-weight: 850; } .budget-detail-page :deep(.enterprise-detail-card .card-head p) { margin: 4px 0 0; color: #64748b; font-size: 12px; line-height: 1.5; } .budget-chart-card :deep(.budget-trend-chart) { min-height: 260px; } .budget-detail-table-wrap { width: 100%; overflow-x: auto; } .budget-detail-table { width: 100%; min-width: 820px; border-collapse: collapse; table-layout: fixed; } .budget-detail-table th, .budget-detail-table td { padding: 11px 10px; border-bottom: 1px solid #edf1f6; color: #273142; font-size: 13px; line-height: 1.35; text-align: center; white-space: nowrap; } .budget-detail-table th { background: #f8fafc; color: #334155; font-weight: 850; } .budget-detail-table tbody tr:last-child td { border-bottom: 0; } .budget-status-explain-list { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; } .budget-status-explain-item { min-height: 72px; padding: 12px; border: 1px solid #edf1f6; border-radius: 4px; background: #f8fafc; display: grid; grid-template-columns: auto minmax(0, 1fr); align-items: flex-start; gap: 12px; } .budget-status-explain-item strong { display: block; margin-bottom: 4px; color: #0f172a; font-size: 13px; line-height: 1.35; font-weight: 850; } .budget-status-explain-item .budget-status-tag { margin-top: 1px; } @media (max-width: 1280px) { .budget-toolbar { align-items: stretch; flex-direction: column; } .budget-toolbar .document-actions { justify-content: flex-end; } .budget-detail-page :deep(.detail-grid) { grid-template-columns: minmax(0, 1fr); } .budget-detail-page :deep(.detail-main), .budget-detail-page :deep(.detail-side) { min-height: auto; } } @media (max-width: 760px) { .budget-center-page { height: auto; min-height: 100%; display: block; overflow: visible; } .budget-list { height: auto; min-height: 100%; display: block; overflow: visible; padding: 12px; } .budget-detail-page { padding: 12px 12px 0; } .budget-primary-btn, .budget-ghost-btn { width: 100%; } .budget-scope-tabs { gap: 18px; flex-wrap: nowrap; overflow-x: auto; scrollbar-width: thin; } .budget-scope-tabs button { flex: 0 0 auto; white-space: nowrap; } .budget-toolbar .document-actions { width: 100%; justify-content: stretch; } .budget-table-wrap { min-height: 0; max-height: none; display: block; overflow: visible; border: 0; border-radius: 0; background: transparent; } .budget-list-table, .budget-list-table thead, .budget-list-table tbody, .budget-list-table tr, .budget-list-table th, .budget-list-table td { display: block; } .budget-list-table, .budget-list-table.all, .budget-list-table.review, .budget-list-table.archive { width: 100%; min-width: 0; border-collapse: separate; } .budget-list-table thead, .budget-list-table colgroup { display: none; } .budget-list-table tbody { display: grid; gap: 10px; } .budget-list-table tr { padding: 12px; border: 1px solid #e2e8f0; border-radius: 4px; background: #fff; box-shadow: 0 6px 18px rgba(15, 23, 42, .05); } .budget-list-table td { display: grid; grid-template-columns: 86px minmax(0, 1fr); align-items: center; gap: 10px; min-height: 30px; padding: 7px 0; border-bottom: 1px dashed #edf2f7; color: #273142; font-size: 13px; line-height: 1.45; text-align: left; white-space: normal; overflow: visible; text-overflow: clip; } .budget-list-table td:last-child { border-bottom: 0; } .budget-list-table td::before { content: attr(data-label); color: #64748b; font-size: 12px; font-weight: 800; line-height: 1.6; } .budget-list-table td:first-child { grid-template-columns: 1fr; padding-top: 0; } .budget-list-table td:first-child::before { display: none; } .budget-rate { max-width: none; justify-content: flex-start; } .budget-detail-page :deep(.detail-scroll) { overflow: visible; padding-right: 0; } .budget-detail-page :deep(.detail-grid) { display: block; } .budget-period-grid { grid-template-columns: 1fr; } .budget-status-explain-list { grid-template-columns: minmax(0, 1fr); } .budget-detail-table-wrap { overflow: visible; } .budget-detail-table, .budget-detail-table thead, .budget-detail-table tbody, .budget-detail-table tr, .budget-detail-table th, .budget-detail-table td { display: block; } .budget-detail-table { min-width: 0; border-collapse: separate; } .budget-detail-table thead { display: none; } .budget-detail-table tbody { display: grid; gap: 10px; } .budget-detail-table tr { padding: 12px; border: 1px solid #e2e8f0; border-radius: 4px; background: #fff; } .budget-detail-table td { display: grid; grid-template-columns: 82px minmax(0, 1fr); align-items: center; gap: 10px; min-height: 30px; padding: 7px 0; border: 0; border-bottom: 1px dashed #edf2f7; text-align: left; white-space: normal; } .budget-detail-table td:last-child { border-bottom: 0; } .budget-detail-table td::before { content: attr(data-label); color: #64748b; font-size: 12px; font-weight: 800; } .budget-detail-table td:first-child { grid-template-columns: 1fr; padding-top: 0; } .budget-detail-table td:first-child::before { display: none; } }