* { box-sizing: border-box; }
.el-input__inner {padding: 0 8px;}
.el-textarea__inner {padding: 5px 8px;}
html, body { height: 100%; overflow: hidden; }
body { margin: 0; background: #f5f7fb; color: #303133; font-family: "Microsoft YaHei", "PingFang SC", Arial, sans-serif; }
.tool-page { height: 100vh; min-height: 0; display: grid; grid-template-rows: 52px minmax(0, 1fr); overflow: hidden; }
.tool-header { display: flex; align-items: center; gap: 24px; padding: 0 20px; background: #fff; border-bottom: 1px solid #e4e7ed; }
.brand { display: flex; align-items: center; gap: 10px; min-width: 155px; }
.brand-logo { width: 28px; height: 28px; border-radius: 6px; display: grid; place-items: center; background: #409eff; color: #fff; font-weight: 700; font-size: 16px; }
.brand-name { color: #172033; font-size: 15px; font-weight: 700; }
.tool-body { min-height: 0; overflow: hidden; display: grid; grid-template-columns: 180px minmax(0, 1fr); }
.tool-sidebar { min-height: 0; overflow: hidden; background: #fff; border-right: 1px solid #e4e7ed; padding: 12px 0; }
.menu-item { height: 40px; display: flex; align-items: center; gap: 8px; padding: 0 18px; color: #606266; font-size: 14px; cursor: pointer; border-left: 3px solid transparent; }
.menu-item.is-active { color: #409eff; background: #ecf5ff; border-left-color: #409eff; font-weight: 600; }
.tool-content { min-width: 0; min-height: 0; overflow: auto; padding: 18px; }
.content-panel { min-height: calc(100vh - 88px); background: #fff; border: 1px solid #e4e7ed; border-radius: 4px; }
.content-header { height: 54px; display: flex; align-items: center; justify-content: space-between; padding: 0 18px; border-bottom: 1px solid #ebeef5; }
.content-title { font-size: 16px; font-weight: 700; color: #303133; }
.list-auth-filter { flex: 1 1 auto; display: none; align-items: center; justify-content: flex-start; gap: 8px; margin-left: 18px; }
.list-auth-filter .el-select { width: 500px; max-width: 52vw; }
.content-panel.is-list-filter #listAuthFilterApp { display: flex !important; }
.finance-tabs { min-width: 260px; }
.finance-tabs .el-tabs__header { margin: 0; }
.finance-tabs .el-tabs__nav-wrap::after { display: none; }
.finance-tabs .el-tabs__item { height: 52px; line-height: 52px; font-size: 14px; }
.content-actions { display: flex; align-items: center; gap: 8px; }
.finance-report-toolbar { display: flex; align-items: center; flex-wrap: wrap; gap: 12px; }
.finance-date-range .el-date-editor { width: 350px; }
.content-main { padding: 18px; color: #606266; font-size: 14px; }
.status { padding: 34px 12px; color: #909399; text-align: center; }
.status.is-error { color: #f56c6c; }
.account-info-name { color: #172033; font-size: 13px; line-height: 20px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.account-info-id { color: #909399; font-size: 12px; line-height: 20px; }
.status-dot { display: inline-block; width: 8px; height: 8px; border-radius: 50%; margin-right: 6px; background: #67c23a; vertical-align: middle; }
.follow-heart { border: 0; background: transparent; cursor: pointer; color: #dcdfe6; font-size: 20px; padding: 0; line-height: 1; }
.follow-heart.is-active { color: #f56c6c; }
.remark-cell { display: flex; align-items: flex-start; gap: 8px; min-width: 0; }
.remark-text { flex: 1; min-width: 0; color: #606266; white-space: normal; overflow-wrap: anywhere; word-break: break-word; line-height: 18px; }
.pager-wrap { display: flex; padding-top: 14px; }
.hide { display: none !important; }
.auth-url { margin-top: 14px; padding: 10px 12px; border: 1px solid #dcdfe6; border-radius: 4px; background: #f8fafc; color: #606266; font-size: 12px; line-height: 1.5; word-break: break-all; text-align: left; }
.toolbar-hint { color: #909399; font-size: 12px; }
.finance-dashboard { display: flex; flex-direction: column; gap: 16px; }
.content-panel.is-finance { height: calc(100vh - 88px); overflow: hidden; }
.content-panel.is-finance .content-main { height: calc(100% - 54px); overflow: hidden; }
.content-panel.is-finance .finance-dashboard,
.content-panel.is-finance .finance-tab-panel { min-height: 0; }
.content-panel.is-finance .finance-application-panel,
.content-panel.is-finance .finance-account-records,
.content-panel.is-finance .finance-report-table { min-height: 0; }
.finance-tab-panel { display: flex; flex-direction: column; gap: 12px; }
.finance-filter-panel { background: transparent; padding: 0; }
.finance-filter-row { display: flex; flex-wrap: wrap; gap: 12px; align-items: center; margin-bottom: 12px; }
.finance-filter-row > .el-date-editor { flex: 0 0 350px; }
.finance-filter-row > .my-select-name { flex: 0 0 260px; }
.finance-filter-row > .my-select-name[style*="300px"] { flex-basis: 300px; }
.finance-filter-actions { display: flex; align-items: center; gap: 10px; }
.finance-filter-actions .my-select-name { width: 260px; }
.finance-report-toolbar .finance-ebpid-select { width: 260px; }
.finance-report-toolbar .finance-user-select { width: 300px; }
.my-select-name { display: inline-flex; width: 100%; vertical-align: middle; }
.my-select-name__label { flex: 0 0 auto; display: inline-flex; align-items: center; justify-content: center; min-width: 1px; height: 32px; padding: 0 10px; color: #909399; background-color: #fff; border: 1px solid #dcdfe6; border-right: 0; border-radius: 4px 0 0 4px; font-size: 13px; white-space: nowrap; }
.my-select-name .el-select { flex: 1 1 auto; min-width: 0; }
.my-select-name .el-select .el-input__inner { border-top-left-radius: 0; border-bottom-left-radius: 0; }
.my-select-name.is-small .my-select-name__label { height: 32px; }
.finance-application-panel { background: transparent; padding: 0; }
.finance-application-panel .el-tabs__header { margin-bottom: 10px; }
.finance-application-panel .el-tabs__nav-wrap::after { display: none; }
.finance-application-panel .el-tabs__item { height: 52px; line-height: 52px; font-size: 14px; }
.finance-record-tabs-bar { min-height: 38px; display: flex; align-items: stretch; justify-content: space-between; gap: 16px; border-bottom: 1px solid #ebeef5; margin-bottom: 10px; }
.finance-record-tabs-left { display: flex; align-items: stretch; gap: 40px; }
.finance-record-tabs-actions { display: flex; align-items: center; gap: 8px; padding-bottom: 5px; }
.finance-record-tab { position: relative; height: 38px; padding: 0; border: 0; background: transparent; color: #303133; font-size: 14px; line-height: 38px; cursor: pointer; }
.finance-record-tab:disabled { color: #c0c4cc; cursor: not-allowed; }
.finance-record-tab.is-active { color: #409eff; }
.finance-record-tab.is-active::after { content: ""; position: absolute; left: 0; right: 0; bottom: 0; height: 2px; background: #409eff; }
.finance-account-lines { display: grid; gap: 4px; }
.finance-account-line { display: flex; align-items: center; gap: 5px; min-width: 0; line-height: 18px; }
.finance-dialog-account-row { display: flex; align-items: flex-start; gap: 8px; white-space: nowrap; }
.finance-dialog-account-row .finance-account-lines { min-width: 0; }
.finance-dialog-account-row .finance-account-line { white-space: nowrap; }
.finance-account-mini-tag { flex: 0 0 auto; display: inline-flex; align-items: center; height: 16px; padding: 0 5px; border-radius: 3px; border: 1px solid #d9ecff; background: #ecf5ff; color: #409eff; font-size: 9px; line-height: 14px; font-weight: 400; }
.finance-account-mini-tag.is-out { border-color: #fbc4c4; background: #fef0f0; color: #f56c6c; }
.finance-account-mini-tag.is-in { border-color: #b7ebc6; background: #f0f9eb; color: #67c23a; }
.finance-account-line-name { min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.finance-reason-lines { display: grid; gap: 4px; }
.finance-reason-line { display: flex; align-items: flex-start; gap: 5px; min-width: 0; line-height: 18px; }
.finance-reason-tag { flex: 0 0 auto; display: inline-flex; align-items: center; height: 16px; padding: 0 5px; border-radius: 3px; border: 1px solid #79bcff; background: #ecf5ff; color: #409eff; font-size: 9px; line-height: 14px; font-weight: 400; }
.finance-reason-tag.is-reject { border-color: #ffd4d4; background: #fef0f0; color: #f56c6c; }
.finance-reason-text,
.finance-wrap-text { min-width: 0; white-space: normal; overflow-wrap: anywhere; word-break: break-word; line-height: 18px; }
.finance-amount-text { font-weight: 700; }
.finance-amount-text.is-income { color: #f56c6c; }
.finance-amount-text.is-expense { color: #67c23a; }
.finance-actual-amount-text { font-weight: 400; }
.finance-actual-amount-text.is-confirmed { font-weight: 700; }
.finance-status-tag { display: inline-flex; align-items: center; height: 22px; padding: 0 7px; border-radius: 3px; font-size: 12px; line-height: 20px; border: 1px solid transparent; }
.finance-status-tag.is-pending { color: #f56c6c; background: #fef0f0; border-color: #fbc4c4; }
.finance-status-tag.is-wait-confirm { color: #e6a23c; background: #fdf6ec; border-color: #f5dab1; }
.finance-status-tag.is-confirmed { color: #409eff; background: #ecf5ff; border-color: #b3d8ff; }
.finance-status-tag.is-rejected { color: #909399; background: #f4f4f5; border-color: #d3d4d6; }
.finance-type-tag { display: inline-flex; align-items: center; height: 22px; padding: 0 7px; border-radius: 3px; font-size: 11px; line-height: 20px; border: 1px solid transparent; }
.finance-type-tag.is-expense,
.finance-type-tag.is-type-1 { color: #2f9e44; background: #ebfbee; border-color: #b7ebc6; }
.finance-type-tag.is-income,
.finance-type-tag.is-type-2 { color: #e03131; background: #fff5f5; border-color: #ffc9c9; }
.finance-type-tag.is-transfer,
.finance-type-tag.is-type-3 { color: #1c7ed6; background: #e7f5ff; border-color: #a5d8ff; }
.finance-type-tag.is-invest,
.finance-type-tag.is-type-4 { color: #e67700; background: #fff4e6; border-color: #ffd8a8; }
.finance-type-tag.is-type-5 { color: #087f5b; background: #e6fcf5; border-color: #96f2d7; }
.finance-type-tag.is-type-6 { color: #7048e8; background: #f3f0ff; border-color: #d0bfff; }
.finance-type-tag.is-type-7 { color: #212529; background: #f1f3f5; border-color: #adb5bd; }
.finance-type-tag.is-type-8 { color: #e67700; background: #fff4e6; border-color: #ffd8a8; }
.finance-type-tag.is-type-9 { color: #0b5d1e; background: #eaf7ee; border-color: #8fd19e; }
.finance-type-tag.is-other { color: #409eff; background: #ecf5ff; border-color: #b3d8ff; }
.finance-filter-panel .el-select,
.finance-filter-panel .el-date-editor { width: 100%; }
.finance-empty-panel { min-height: 260px; border: 1px solid #e4e7ed; border-radius: 6px; background: #fff; display: grid; place-items: center; color: #909399; }
.finance-chart-panel { background: #fff; padding: 10px 0; }
.finance-chart-title { display: flex; align-items: center; justify-content: space-between; height: 18px; margin-bottom: 0; }
.finance-chart-title strong { color: #172033; font-size: 15px; }
.finance-chart-title span { color: #909399; font-size: 12px; }
.finance-chart { width: 100%; height: 500px; }
.finance-account-grid { display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); gap: 12px; }
.finance-account-card { position: relative; min-height: 106px; border: 1px solid #e4e7ed; border-radius: 6px; background: #fff; padding: 12px 14px; display: flex; flex-direction: column; gap: 10px; cursor: pointer; text-align: left; user-select: text; }
.finance-account-card:hover { border-color: #b3d8ff; box-shadow: 0 8px 22px rgba(23, 32, 51, .08); }
.finance-account-card.is-active { border-color: #409eff; box-shadow: 0 8px 22px rgba(64, 158, 255, .15); }
.finance-account-card-head { display: flex; align-items: flex-start; justify-content: space-between; gap: 8px; }
.finance-account-transfer-btn { position: absolute; top: 8px; right: 8px; z-index: 2; flex: 0 0 auto; width: 24px; height: 24px; border: 0; border-radius: 4px; background: rgba(255,255,255,.92); color: #409eff; cursor: pointer; display: inline-flex; align-items: center; justify-content: center; }
.finance-account-transfer-btn:hover { background: #ecf5ff; }
.finance-account-name { color: #172033; font-size: 14px; font-weight: 700; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.finance-account-name-edit { margin-left: 6px; width: 18px; height: 18px; border: 0; background: transparent; color: #dadada; cursor: pointer; vertical-align: 1px; padding: 0; }
.finance-account-name-edit:hover { color: #409eff; }
.finance-account-meta { display: flex; align-items: center; gap: 6px; min-width: 0; }
.finance-account-type { display: inline-flex; align-items: center; width: fit-content; margin-top: 5px; padding: 0 8px; border-radius: 3px; background: #ecf5ff; color: #2f80ed; border: 1px solid #c6e2ff; font-size: 10px; line-height: 18px; font-weight: 400; }
.finance-account-adjusted { margin-top: 5px; color: #909399; font-size: 10px; line-height: 18px; white-space: nowrap; }
.finance-account-deposit-toggle { margin-top: 5px; padding: 0; border: 0; background: transparent; color: #909399; font-size: 10px; line-height: 18px; cursor: pointer; white-space: nowrap; }
.finance-account-deposit-toggle.is-active { color: #409eff; text-decoration: underline; }
.finance-account-balance { color: #172033; font-size: 22px; font-weight: 700; letter-spacing: 0; }
.finance-account-balance small { color: #909399; font-size: 12px; font-weight: 400; margin-right: 4px; }
#financeTabAccount .finance-filter-panel { margin-bottom: 12px; }
.finance-report-table { background: #fff; padding: 0; }
.finance-report-table .el-table__header th,
.finance-report-table .el-table__fixed-header-wrapper th {
  background: #fff;
}
.finance-report-metric-cell { display: flex; flex-direction: column; align-items: flex-start; gap: 2px; line-height: 1.35; }
.finance-report-metric-cell .metric-extra { color: #8bbcff; font-size: 10px; line-height: 14px; }
.finance-profit-trigger { cursor: pointer; }
.el-popover.finance-profit-popover { max-width: 390px; text-align: left !important; text-align-last: left !important; }
.el-popover.finance-profit-popover .finance-profit-formula { color: #303133; font-size: 12px; line-height: 20px; white-space: normal; word-break: normal; text-align: left !important; text-align-last: left !important; }
.el-popover.finance-profit-popover .finance-profit-formula-item { white-space: nowrap; text-align: left !important; text-align-last: left !important; }
.el-popover.finance-profit-popover .finance-profit-formula-result { display: inline-block; margin-top: 4px; white-space: nowrap; text-align: left !important; text-align-last: left !important; }
.finance-account-records { background: transparent; padding: 0; }
.finance-account-records-header { display: flex; align-items: center; justify-content: space-between; margin-bottom: 10px; color: #172033; font-size: 14px; font-weight: 700; }
.finance-account-records-tools { display: flex; align-items: center; gap: 10px; }
.finance-account-records .finance-record-tabs-bar { justify-content: flex-start; gap: 40px; }
.finance-account-records .finance-amount-text { font-weight: 400; }
.finance-promotion-record-id { display: inline-flex; align-items: center; gap: 6px; }
.finance-promotion-record-id.is-void { color: #f56c6c; }
.finance-promotion-record-id .void-toggle { border: 0; background: transparent; color: #c0c4cc; padding: 0; font-size: 12px; line-height: 1; cursor: pointer; }
.finance-promotion-record-id.is-void .void-toggle { color: #f56c6c; }
.finance-promotion-void-text { color: #ccc !important; }
.finance-record-filter { border: 0; background: transparent; padding: 0; color: #409eff; text-decoration: underline; cursor: pointer; font-size: 12px; }
.finance-confirm-btn { margin-left: 6px; padding: 0 6px; height: 20px; border-radius: 3px; border: 1px solid #f5c2c7; background: #fff5f5; color: #d93025; font-size: 12px; cursor: default; }
.finance-confirm-btn:not(.is-confirmed):not(.is-confirming) { cursor: pointer; }
.finance-confirm-btn.is-confirmed { border-color: #b7ebc6; background: #f0f9eb; color: #389e0d; }
.finance-confirm-btn.is-confirming { border-color: #f5dab1; background: #fdf6ec; color: #e6a23c; }
.finance-two-line { display: flex; flex-direction: column; gap: 3px; line-height: 1.35; }
.finance-two-line .is-muted { color: #909399; font-size: 10px; }
.purchase-import-dialog { display: grid; gap: 12px; }
.purchase-import-toolbar { display: flex; align-items: center; gap: 12px; }
.purchase-import-file { color: #909399; font-size: 12px; }
.purchase-import-summary { color: #303133; font-size: 13px; }
.purchase-import-order-cell { display: grid; gap: 2px; line-height: 1.35; }
.purchase-import-goods-name { color: #aaa; font-size: 10px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.purchase-import-money-cell { display: grid; gap: 2px; line-height: 1.35; }
.purchase-import-status-unknown { color: #aaa; }
.purchase-import-error { color: #f56c6c; }
.purchase-import-warn { color: #e6a23c; }
.el-input.is-disabled .el-input__inner, .el-textarea.is-disabled .el-textarea__inner {color: #3b3b3b;font-family: "Microsoft YaHei", "PingFang SC", Arial, sans-serif;}
.el-textarea__inner {font-family: "Microsoft YaHei", "PingFang SC", Arial, sans-serif;}
.el-table__empty-block {border-bottom: 1px solid #EBEEF5;}
.el-input-group__append, .el-input-group__prepend {padding: 0 10px;background-color: #fff;}
.web-login-page { position: fixed; left: 0; top: 0; z-index: 9999; width: 100vw; height: 100vh; display: none; align-items: center; justify-content: center; background: #f5f7fb; padding: 12px; overflow: auto; }
.is-web-login .tool-page { display: none; }
.is-web-login .web-login-page { display: flex; }
.web-login-card { width: 320px; max-width: calc(100vw - 24px); background: #fff; border: 1px solid #e4e7ed; border-radius: 6px; padding: 22px 24px 20px; box-shadow: 0 10px 30px rgba(23, 32, 51, .08); }
.web-login-title { color: #172033; font-size: 20px; font-weight: 700; margin: 0 0 22px; }
.web-login-form { display: grid; gap: 16px; }
.web-login-input { width: 100%; height: 40px; padding: 0 12px; border: 1px solid #dcdfe6; border-radius: 4px; outline: none; color: #303133; font-size: 14px; font-family: "Microsoft YaHei", "PingFang SC", Arial, sans-serif; }
.web-login-input:focus { border-color: #409eff; }
.web-login-error { min-height: 18px; color: #f56c6c; font-size: 12px; line-height: 18px; }
.web-login-submit { width: 100%; height: 40px; border: 0; border-radius: 4px; background: #409eff; color: #fff; font-size: 14px; cursor: pointer; }
.web-login-submit.is-loading { opacity: .65; cursor: not-allowed; }
.el-button--small .el-icon-loading {font-size: 11px;}
.el-table .cell {line-height: 16px;}
