1238 lines
20 KiB
Plaintext
1238 lines
20 KiB
Plaintext
/* 财务看板页样式 — 忠于 H5 原型,87.5% 缩放 */
|
||
|
||
/* ===== 三态 ===== */
|
||
.page-loading,
|
||
.page-empty {
|
||
display: flex;
|
||
justify-content: center;
|
||
align-items: center;
|
||
height: 60vh;
|
||
}
|
||
|
||
/* ===== 看板 Tab 导航 ===== */
|
||
.board-tabs {
|
||
display: flex;
|
||
background: #ffffff;
|
||
border-bottom: 2rpx solid #eeeeee;
|
||
position: sticky;
|
||
top: 0;
|
||
z-index: 20;
|
||
}
|
||
|
||
.board-tab {
|
||
flex: 1;
|
||
text-align: center;
|
||
padding: 24rpx 0;
|
||
font-size: 26rpx;
|
||
font-weight: 500;
|
||
color: #8b8b8b;
|
||
position: relative;
|
||
}
|
||
|
||
.board-tab--active {
|
||
color: #0052d9;
|
||
font-weight: 600;
|
||
}
|
||
|
||
.board-tab--active::after {
|
||
content: '';
|
||
position: absolute;
|
||
bottom: 0;
|
||
left: 50%;
|
||
transform: translateX(-50%);
|
||
width: 42rpx;
|
||
height: 5rpx;
|
||
background: linear-gradient(90deg, #0052d9, #5b9cf8);
|
||
border-radius: 3rpx;
|
||
}
|
||
|
||
/* ===== 筛选区域 ===== */
|
||
.filter-bar {
|
||
background: #f3f3f3;
|
||
padding: 16rpx 28rpx;
|
||
position: sticky;
|
||
top: 70rpx;
|
||
z-index: 15;
|
||
}
|
||
|
||
.filter-bar-inner {
|
||
display: flex;
|
||
align-items: center;
|
||
gap: 14rpx;
|
||
background: #ffffff;
|
||
border-radius: 14rpx;
|
||
padding: 10rpx;
|
||
border: 2rpx solid #eeeeee;
|
||
}
|
||
|
||
.toc-btn {
|
||
width: 70rpx;
|
||
height: 70rpx;
|
||
background: linear-gradient(135deg, #0052d9 0%, #5b9cf8 100%);
|
||
border-radius: 14rpx;
|
||
display: flex;
|
||
align-items: center;
|
||
justify-content: center;
|
||
flex-shrink: 0;
|
||
}
|
||
|
||
.toc-btn:active {
|
||
opacity: 0.85;
|
||
}
|
||
|
||
.filter-item {
|
||
flex: 1;
|
||
min-width: 0;
|
||
}
|
||
|
||
.compare-switch {
|
||
display: flex;
|
||
align-items: center;
|
||
gap: 8rpx;
|
||
padding: 0 8rpx;
|
||
flex-shrink: 0;
|
||
}
|
||
|
||
.compare-label {
|
||
font-size: 24rpx;
|
||
color: #8b8b8b;
|
||
}
|
||
|
||
.compare-toggle {
|
||
width: 78rpx;
|
||
height: 42rpx;
|
||
background: #dcdcdc;
|
||
border-radius: 22rpx;
|
||
position: relative;
|
||
transition: background 0.3s;
|
||
}
|
||
|
||
.compare-toggle--active {
|
||
background: #0052d9;
|
||
}
|
||
|
||
.compare-toggle-dot {
|
||
position: absolute;
|
||
width: 36rpx;
|
||
height: 36rpx;
|
||
background: #ffffff;
|
||
border-radius: 50%;
|
||
top: 3rpx;
|
||
left: 3rpx;
|
||
transition: left 0.3s;
|
||
box-shadow: 0 2rpx 8rpx rgba(0, 0, 0, 0.2);
|
||
}
|
||
|
||
.compare-toggle--active .compare-toggle-dot {
|
||
left: 39rpx;
|
||
}
|
||
|
||
/* ===== 滚动内容区 ===== */
|
||
.board-content {
|
||
height: calc(100vh - 70rpx - 98rpx);
|
||
}
|
||
|
||
/* ===== 板块卡片通用 ===== */
|
||
.card-section {
|
||
margin: 0 28rpx 28rpx;
|
||
background: #ffffff;
|
||
border-radius: 14rpx;
|
||
overflow: hidden;
|
||
border: 2rpx solid #e7e7e7;
|
||
}
|
||
|
||
.card-section:first-child {
|
||
margin-top: 28rpx;
|
||
}
|
||
|
||
/* 深色板块(经营一览) */
|
||
.section-dark {
|
||
background: #3a3a3a;
|
||
color: #ffffff;
|
||
border-color: transparent;
|
||
}
|
||
|
||
/* ===== 板块头 - 深色 ===== */
|
||
.card-header-dark {
|
||
display: flex;
|
||
align-items: flex-start;
|
||
gap: 22rpx;
|
||
padding: 28rpx 28rpx;
|
||
background: #1a1a1a;
|
||
}
|
||
|
||
.card-header-emoji {
|
||
font-size: 32rpx;
|
||
line-height: 1;
|
||
flex-shrink: 0;
|
||
}
|
||
|
||
.card-header-text {
|
||
flex: 1;
|
||
}
|
||
|
||
.card-header-title-dark {
|
||
font-size: 28rpx;
|
||
font-weight: 600;
|
||
color: #ffffff;
|
||
display: block;
|
||
}
|
||
|
||
.card-header-desc-dark {
|
||
font-size: 20rpx;
|
||
color: rgba(255, 255, 255, 0.5);
|
||
display: block;
|
||
margin-top: 6rpx;
|
||
}
|
||
|
||
/* ===== 板块头 - 浅色(拟物灰色渐变) ===== */
|
||
.card-header-light {
|
||
display: flex;
|
||
align-items: flex-start;
|
||
gap: 18rpx;
|
||
margin: -2rpx -2rpx 0 -2rpx;
|
||
padding: 22rpx 28rpx;
|
||
background: linear-gradient(to bottom, #e8e8e8, #d8d8d8);
|
||
border-bottom: 2rpx solid #c8c8c8;
|
||
}
|
||
|
||
.card-header-title-light {
|
||
font-size: 24rpx;
|
||
font-weight: 600;
|
||
color: #222222;
|
||
display: block;
|
||
}
|
||
|
||
.card-header-desc-light {
|
||
font-size: 20rpx;
|
||
color: #666666;
|
||
display: block;
|
||
margin-top: 4rpx;
|
||
}
|
||
|
||
/* ===== 板块正文容器 ===== */
|
||
.section-body {
|
||
padding: 32rpx 28rpx;
|
||
}
|
||
|
||
/* ===== 子标题 ===== */
|
||
.sub-section-label {
|
||
display: flex;
|
||
align-items: center;
|
||
gap: 14rpx;
|
||
padding: 0rpx 28rpx 24rpx;
|
||
}
|
||
|
||
/* header-dark 后第一个子标题需要顶部间距(H5 summary-content padding-top=16px) */
|
||
.card-header-dark + .sub-section-label {
|
||
padding-top: 28rpx;
|
||
}
|
||
|
||
.sub-label-text {
|
||
font-size: 22rpx;
|
||
color: rgba(255, 255, 255, 0.7);
|
||
font-weight: 500;
|
||
}
|
||
|
||
.sub-label-desc {
|
||
font-size: 20rpx;
|
||
color: rgba(255, 255, 255, 0.4);
|
||
}
|
||
|
||
/* ===== 经营一览 - 3列网格 ===== */
|
||
.overview-grid-3 {
|
||
display: grid;
|
||
grid-template-columns: 1fr 1fr 1fr;
|
||
gap: 22rpx;
|
||
padding: 0 28rpx 24rpx;
|
||
}
|
||
|
||
.overview-cell {
|
||
text-align: center;
|
||
}
|
||
|
||
.cell-label-row {
|
||
display: flex;
|
||
align-items: center;
|
||
justify-content: center;
|
||
gap: 4rpx;
|
||
margin-bottom: 8rpx;
|
||
}
|
||
|
||
.cell-label-light {
|
||
font-size: 22rpx;
|
||
color: rgba(255, 255, 255, 0.6);
|
||
}
|
||
|
||
.help-icon-light {
|
||
display: inline-flex;
|
||
align-items: center;
|
||
justify-content: center;
|
||
width: 28rpx;
|
||
height: 28rpx;
|
||
background: rgba(255, 255, 255, 0.2);
|
||
border-radius: 50%;
|
||
font-size: 18rpx;
|
||
color: rgba(255, 255, 255, 0.7);
|
||
flex-shrink: 0;
|
||
}
|
||
|
||
.cell-value-white {
|
||
font-size: 36rpx;
|
||
font-weight: 700;
|
||
color: #ffffff;
|
||
display: block;
|
||
}
|
||
|
||
.cell-value-red {
|
||
font-size: 36rpx;
|
||
font-weight: 700;
|
||
color: rgba(227, 77, 89, 0.85);
|
||
display: block;
|
||
}
|
||
|
||
.cell-value-gray {
|
||
font-size: 36rpx;
|
||
font-weight: 700;
|
||
color: #c5c5c5;
|
||
display: block;
|
||
}
|
||
|
||
/* ===== 环比数据行 ===== */
|
||
.compare-row {
|
||
display: flex;
|
||
align-items: center;
|
||
justify-content: center;
|
||
gap: 4rpx;
|
||
margin-top: 6rpx;
|
||
}
|
||
|
||
.compare-text-up { font-size: 22rpx; color: #e34d59; }
|
||
.compare-text-down { font-size: 22rpx; color: #00a870; }
|
||
.compare-text-up-sm { font-size: 22rpx; color: #e34d59; }
|
||
.compare-text-down-sm { font-size: 22rpx; color: #00a870; }
|
||
.compare-text-up-xs { font-size: 20rpx; color: #e34d59; }
|
||
.compare-text-down-xs { font-size: 20rpx; color: #00a870; }
|
||
.compare-text-flat-xs { font-size: 20rpx; color: #a6a6a6; }
|
||
|
||
.compare-row-inline {
|
||
display: flex;
|
||
align-items: center;
|
||
gap: 2rpx;
|
||
}
|
||
|
||
/* ===== 确认收入行 ===== */
|
||
.confirmed-row {
|
||
display: flex;
|
||
justify-content: space-between;
|
||
align-items: center;
|
||
margin: 0 28rpx 24rpx;
|
||
padding: 24rpx 24rpx;
|
||
background: rgba(255, 255, 255, 0.1);
|
||
border-radius: 22rpx;
|
||
}
|
||
|
||
.confirmed-left {
|
||
display: flex;
|
||
align-items: center;
|
||
gap: 8rpx;
|
||
}
|
||
|
||
.confirmed-label {
|
||
font-size: 26rpx;
|
||
color: rgba(255, 255, 255, 0.7);
|
||
}
|
||
|
||
.confirmed-right {
|
||
display: flex;
|
||
align-items: center;
|
||
gap: 12rpx;
|
||
}
|
||
|
||
.confirmed-value {
|
||
font-size: 36rpx;
|
||
font-weight: 700;
|
||
color: #f0f0f0;
|
||
}
|
||
|
||
.section-divider-light {
|
||
height: 1rpx;
|
||
background: rgba(255, 255, 255, 0.1);
|
||
margin: 28rpx 28rpx 32rpx;
|
||
}
|
||
|
||
/* ===== 经营一览 - 2列网格 ===== */
|
||
.overview-grid-2 {
|
||
display: grid;
|
||
grid-template-columns: 1fr 1fr;
|
||
gap: 22rpx;
|
||
padding: 0 28rpx 30rpx;
|
||
}
|
||
|
||
.overview-cell-bg {
|
||
text-align: center;
|
||
background: rgba(255, 255, 255, 0.05);
|
||
border-radius: 22rpx;
|
||
padding: 24rpx 16rpx;
|
||
}
|
||
|
||
.cell-value-white-sm {
|
||
font-size: 32rpx;
|
||
font-weight: 700;
|
||
color: #f0f0f0;
|
||
display: block;
|
||
}
|
||
|
||
.cell-value-gray-sm {
|
||
font-size: 32rpx;
|
||
font-weight: 700;
|
||
color: #c5c5c5;
|
||
display: block;
|
||
}
|
||
|
||
/* ===== AI 洞察 ===== */
|
||
.ai-insight-section {
|
||
margin: 0 -2rpx -2rpx -2rpx;
|
||
padding: 28rpx 28rpx;
|
||
background: #505050;
|
||
border-top: 1rpx dashed rgba(255, 255, 255, 0.25);
|
||
}
|
||
|
||
.ai-insight-header {
|
||
display: flex;
|
||
align-items: center;
|
||
gap: 14rpx;
|
||
margin-bottom: 22rpx;
|
||
}
|
||
|
||
.ai-insight-icon {
|
||
width: 42rpx;
|
||
height: 42rpx;
|
||
background: linear-gradient(135deg, #667eea, #764ba2);
|
||
border-radius: 14rpx;
|
||
display: flex;
|
||
align-items: center;
|
||
justify-content: center;
|
||
font-size: 24rpx;
|
||
}
|
||
|
||
.ai-insight-title {
|
||
font-size: 24rpx;
|
||
font-weight: 500;
|
||
color: rgba(255, 255, 255, 0.8);
|
||
}
|
||
|
||
.ai-insight-body {
|
||
display: flex;
|
||
flex-direction: column;
|
||
gap: 14rpx;
|
||
}
|
||
|
||
.ai-insight-line {
|
||
font-size: 24rpx;
|
||
color: rgba(255, 255, 255, 0.85);
|
||
line-height: 1.5;
|
||
}
|
||
|
||
.ai-insight-dim {
|
||
color: rgba(255, 255, 255, 0.5);
|
||
}
|
||
|
||
/* ===== 通用表格边框容器 ===== */
|
||
.table-bordered {
|
||
border: 2rpx solid #e7e7e7;
|
||
border-radius: 14rpx;
|
||
overflow: hidden;
|
||
}
|
||
|
||
/* ===== 板块小标题 ===== */
|
||
.card-section-title {
|
||
font-size: 24rpx;
|
||
font-weight: 600;
|
||
color: #393939;
|
||
margin-bottom: 16rpx;
|
||
display: block;
|
||
}
|
||
|
||
.card-section-title-sub {
|
||
font-size: 22rpx;
|
||
color: #8b8b8b;
|
||
font-weight: 400;
|
||
}
|
||
|
||
/* ===== 预收资产 - 储值卡统计 ===== */
|
||
.table-row {
|
||
display: flex;
|
||
justify-content: space-between;
|
||
align-items: center;
|
||
padding: 20rpx 28rpx;
|
||
border-bottom: 2rpx solid #f3f3f3;
|
||
}
|
||
|
||
.table-row:last-child {
|
||
border-bottom: none;
|
||
}
|
||
|
||
.table-row--highlight {
|
||
background: #fafafa;
|
||
}
|
||
|
||
.table-row--footer {
|
||
background: #f0f0f0;
|
||
}
|
||
|
||
.table-row-left {
|
||
display: flex;
|
||
align-items: center;
|
||
gap: 8rpx;
|
||
}
|
||
|
||
.table-row-right {
|
||
display: flex;
|
||
align-items: center;
|
||
gap: 12rpx;
|
||
text-align: right;
|
||
}
|
||
|
||
.table-row-label-bold {
|
||
font-size: 26rpx;
|
||
font-weight: 500;
|
||
color: #4b4b4b;
|
||
}
|
||
|
||
.table-row-value-lg {
|
||
font-size: 32rpx;
|
||
font-weight: 700;
|
||
color: #242424;
|
||
}
|
||
|
||
/* 帮助图标 - 深色版 */
|
||
.help-icon-dark {
|
||
display: inline-flex;
|
||
align-items: center;
|
||
justify-content: center;
|
||
width: 28rpx;
|
||
height: 28rpx;
|
||
background: rgba(0, 0, 0, 0.08);
|
||
border-radius: 50%;
|
||
font-size: 18rpx;
|
||
color: #777777;
|
||
flex-shrink: 0;
|
||
}
|
||
|
||
.help-icon-dark-sm {
|
||
display: inline-flex;
|
||
align-items: center;
|
||
justify-content: center;
|
||
width: 24rpx;
|
||
height: 24rpx;
|
||
background: rgba(0, 0, 0, 0.08);
|
||
border-radius: 50%;
|
||
font-size: 16rpx;
|
||
color: #777777;
|
||
flex-shrink: 0;
|
||
}
|
||
|
||
/* 储值卡 3列网格行 */
|
||
.table-row-grid3 {
|
||
display: grid;
|
||
grid-template-columns: 1fr 1fr 1fr;
|
||
gap: 12rpx;
|
||
padding: 20rpx 28rpx;
|
||
background: #ffffff;
|
||
border-bottom: 2rpx solid #f3f3f3;
|
||
}
|
||
|
||
.grid-cell {
|
||
text-align: center;
|
||
}
|
||
|
||
.cell-label-row-sm {
|
||
display: flex;
|
||
align-items: center;
|
||
justify-content: center;
|
||
gap: 4rpx;
|
||
margin-bottom: 6rpx;
|
||
}
|
||
|
||
.cell-label-sm {
|
||
font-size: 22rpx;
|
||
color: #8b8b8b;
|
||
}
|
||
|
||
.cell-value-sm {
|
||
font-size: 26rpx;
|
||
font-weight: 500;
|
||
color: #4b4b4b;
|
||
display: block;
|
||
}
|
||
|
||
/* ===== 赠送卡表格 ===== */
|
||
.gift-table-header {
|
||
display: grid;
|
||
grid-template-columns: 1.2fr 1fr 1fr 1fr;
|
||
gap: 4rpx;
|
||
padding: 14rpx 28rpx;
|
||
background: #f0f0f0;
|
||
}
|
||
|
||
.gift-col {
|
||
text-align: right;
|
||
font-size: 24rpx;
|
||
color: #4b4b4b;
|
||
}
|
||
|
||
.gift-col--name {
|
||
text-align: left;
|
||
font-weight: 500;
|
||
}
|
||
|
||
.gift-table-header .gift-col {
|
||
font-weight: 500;
|
||
color: #393939;
|
||
}
|
||
|
||
.gift-table-row {
|
||
display: grid;
|
||
grid-template-columns: 1.2fr 1fr 1fr 1fr;
|
||
gap: 4rpx;
|
||
padding: 18rpx 28rpx;
|
||
border-bottom: 2rpx solid #f3f3f3;
|
||
align-items: start;
|
||
}
|
||
|
||
.gift-table-row:last-child {
|
||
border-bottom: none;
|
||
background: #fafafa;
|
||
}
|
||
|
||
.gift-row-label {
|
||
font-size: 24rpx;
|
||
font-weight: 500;
|
||
color: #4b4b4b;
|
||
display: block;
|
||
}
|
||
|
||
.gift-row-total {
|
||
font-size: 24rpx;
|
||
font-weight: 600;
|
||
color: #393939;
|
||
display: block;
|
||
margin-top: 4rpx;
|
||
}
|
||
|
||
.gift-col-val {
|
||
font-size: 24rpx;
|
||
color: #8b8b8b;
|
||
display: block;
|
||
}
|
||
|
||
.gift-table-row:last-child .gift-row-label {
|
||
font-weight: 600;
|
||
color: #242424;
|
||
}
|
||
|
||
.gift-table-row:last-child .gift-row-total {
|
||
font-weight: 700;
|
||
color: #242424;
|
||
}
|
||
|
||
.gift-table-row:last-child .gift-col-val {
|
||
font-weight: 700;
|
||
color: #242424;
|
||
}
|
||
|
||
/* ===== 全类别余额合计 ===== */
|
||
.total-balance-row {
|
||
display: flex;
|
||
justify-content: space-between;
|
||
align-items: center;
|
||
margin-top: 24rpx;
|
||
padding: 20rpx 28rpx;
|
||
background: #f0f0f0;
|
||
border-radius: 14rpx;
|
||
border: 2rpx solid #e7e7e7;
|
||
}
|
||
|
||
.total-balance-left {
|
||
display: flex;
|
||
flex-direction: column;
|
||
gap: 4rpx;
|
||
}
|
||
|
||
.total-balance-label {
|
||
font-size: 26rpx;
|
||
font-weight: 500;
|
||
color: #4b4b4b;
|
||
display: flex;
|
||
align-items: center;
|
||
gap: 8rpx;
|
||
}
|
||
|
||
.total-balance-note {
|
||
font-size: 18rpx;
|
||
color: #a6a6a6;
|
||
}
|
||
|
||
.total-balance-right {
|
||
display: flex;
|
||
align-items: center;
|
||
gap: 12rpx;
|
||
text-align: right;
|
||
}
|
||
|
||
.total-balance-value {
|
||
font-size: 36rpx;
|
||
font-weight: 700;
|
||
color: #242424;
|
||
}
|
||
|
||
/* ===== 应计收入 - 子标题行 ===== */
|
||
.sub-title-row {
|
||
display: flex;
|
||
align-items: center;
|
||
gap: 12rpx;
|
||
margin-bottom: 16rpx;
|
||
}
|
||
|
||
.sub-title-text {
|
||
font-size: 26rpx;
|
||
font-weight: 600;
|
||
color: #4b4b4b;
|
||
}
|
||
|
||
.sub-title-desc {
|
||
font-size: 22rpx;
|
||
color: #a6a6a6;
|
||
}
|
||
|
||
/* ===== 收入结构表格 ===== */
|
||
.rev-table-header {
|
||
display: grid;
|
||
grid-template-columns: 1.3fr 1fr 1fr 1fr;
|
||
gap: 4rpx;
|
||
padding: 14rpx 28rpx;
|
||
background: #f0f0f0;
|
||
}
|
||
|
||
.rev-table-header .rev-col {
|
||
font-size: 22rpx;
|
||
color: #5e5e5e;
|
||
font-weight: 500;
|
||
}
|
||
|
||
.rev-col {
|
||
text-align: right;
|
||
}
|
||
|
||
.rev-col--name {
|
||
text-align: left;
|
||
}
|
||
|
||
.rev-table-row {
|
||
display: grid;
|
||
grid-template-columns: 1.3fr 1fr 1fr 1fr;
|
||
gap: 4rpx;
|
||
padding: 18rpx 28rpx;
|
||
border-bottom: 2rpx solid #f3f3f3;
|
||
align-items: start;
|
||
}
|
||
|
||
.rev-table-row:last-child {
|
||
border-bottom: none;
|
||
}
|
||
|
||
.rev-table-row--sub {
|
||
background: rgba(255, 255, 255, 0.5);
|
||
}
|
||
|
||
.rev-name {
|
||
font-size: 26rpx;
|
||
font-weight: 600;
|
||
color: #393939;
|
||
}
|
||
|
||
.rev-name-sub {
|
||
font-size: 24rpx;
|
||
color: #8b8b8b;
|
||
padding-left: 24rpx;
|
||
}
|
||
|
||
.rev-name-desc {
|
||
font-size: 20rpx;
|
||
color: #a6a6a6;
|
||
display: block;
|
||
margin-top: 2rpx;
|
||
}
|
||
|
||
.rev-val {
|
||
font-size: 26rpx;
|
||
color: #4b4b4b;
|
||
}
|
||
|
||
.rev-val--bold {
|
||
font-weight: 600;
|
||
color: #393939;
|
||
}
|
||
|
||
.rev-val--red {
|
||
color: rgba(227, 77, 89, 0.85);
|
||
}
|
||
|
||
.rev-val--muted {
|
||
color: #c5c5c5;
|
||
}
|
||
|
||
/* ===== 损益链流程 ===== */
|
||
.flow-header {
|
||
padding: 16rpx 28rpx;
|
||
background: #fafafa;
|
||
}
|
||
|
||
.flow-header--deduct {
|
||
border-top: 2rpx solid #f3f3f3;
|
||
}
|
||
|
||
.flow-header-title {
|
||
font-size: 26rpx;
|
||
font-weight: 600;
|
||
color: #4b4b4b;
|
||
display: block;
|
||
}
|
||
|
||
.flow-header-desc {
|
||
font-size: 20rpx;
|
||
color: #8b8b8b;
|
||
display: block;
|
||
margin-top: 2rpx;
|
||
}
|
||
|
||
.flow-detail-list {
|
||
padding: 16rpx 28rpx;
|
||
margin: 8rpx 28rpx;
|
||
border-left: 4rpx solid #c5c5c5;
|
||
}
|
||
|
||
.flow-detail-item {
|
||
display: flex;
|
||
justify-content: space-between;
|
||
align-items: center;
|
||
padding: 8rpx 0;
|
||
}
|
||
|
||
.flow-detail-name {
|
||
font-size: 24rpx;
|
||
color: #5e5e5e;
|
||
}
|
||
|
||
.flow-detail-name-group {
|
||
display: flex;
|
||
flex-direction: column;
|
||
}
|
||
|
||
.flow-detail-name-desc {
|
||
font-size: 20rpx;
|
||
color: #a6a6a6;
|
||
margin-top: 2rpx;
|
||
}
|
||
|
||
.flow-detail-right {
|
||
display: flex;
|
||
align-items: center;
|
||
gap: 8rpx;
|
||
}
|
||
|
||
.flow-detail-val {
|
||
font-size: 24rpx;
|
||
font-weight: 500;
|
||
color: #4b4b4b;
|
||
}
|
||
|
||
.flow-detail-val--red {
|
||
color: rgba(227, 77, 89, 0.85);
|
||
}
|
||
|
||
.flow-total-row {
|
||
display: flex;
|
||
justify-content: space-between;
|
||
align-items: center;
|
||
padding: 20rpx 28rpx;
|
||
background: #f0f0f0;
|
||
}
|
||
|
||
.flow-total-row--accent {
|
||
background: #e8f0fe;
|
||
}
|
||
|
||
.flow-total-left {
|
||
display: flex;
|
||
flex-direction: column;
|
||
}
|
||
|
||
.flow-total-label {
|
||
font-size: 26rpx;
|
||
font-weight: 600;
|
||
color: #4b4b4b;
|
||
}
|
||
|
||
.flow-total-desc {
|
||
font-size: 20rpx;
|
||
color: #8b8b8b;
|
||
}
|
||
|
||
.flow-total-right {
|
||
display: flex;
|
||
align-items: center;
|
||
gap: 12rpx;
|
||
}
|
||
|
||
.flow-total-value {
|
||
font-size: 32rpx;
|
||
font-weight: 600;
|
||
color: #242424;
|
||
}
|
||
|
||
/* ===== 现金流入 - 流水项 ===== */
|
||
.flow-group-label {
|
||
font-size: 22rpx;
|
||
font-weight: 500;
|
||
color: #8b8b8b;
|
||
display: block;
|
||
margin-bottom: 8rpx;
|
||
}
|
||
|
||
.flow-item-list {
|
||
/* 无额外样式 */
|
||
}
|
||
|
||
.flow-item {
|
||
display: flex;
|
||
justify-content: space-between;
|
||
align-items: center;
|
||
padding: 16rpx 0;
|
||
border-bottom: 2rpx solid #f3f3f3;
|
||
}
|
||
|
||
.flow-item:last-child {
|
||
border-bottom: none;
|
||
}
|
||
|
||
.flow-item-left {
|
||
display: flex;
|
||
flex-direction: column;
|
||
}
|
||
|
||
.flow-item-name {
|
||
font-size: 26rpx;
|
||
font-weight: 500;
|
||
color: #4b4b4b;
|
||
}
|
||
|
||
.flow-item-desc {
|
||
font-size: 20rpx;
|
||
color: #a6a6a6;
|
||
margin-top: 4rpx;
|
||
}
|
||
|
||
.flow-item-right {
|
||
display: flex;
|
||
flex-direction: column;
|
||
align-items: flex-end;
|
||
}
|
||
|
||
.flow-item-value {
|
||
font-size: 28rpx;
|
||
font-weight: 600;
|
||
color: #242424;
|
||
}
|
||
|
||
/* 合计行 */
|
||
.flow-sum-row {
|
||
display: flex;
|
||
justify-content: space-between;
|
||
align-items: center;
|
||
margin-top: 16rpx;
|
||
padding: 20rpx 28rpx;
|
||
background: #f0f0f0;
|
||
border-radius: 14rpx;
|
||
border-top: 2rpx solid #e7e7e7;
|
||
}
|
||
|
||
.flow-sum-label {
|
||
font-size: 26rpx;
|
||
font-weight: 600;
|
||
color: #4b4b4b;
|
||
}
|
||
|
||
.flow-sum-right {
|
||
display: flex;
|
||
align-items: center;
|
||
gap: 12rpx;
|
||
}
|
||
|
||
.flow-sum-value {
|
||
font-size: 32rpx;
|
||
font-weight: 700;
|
||
color: #242424;
|
||
}
|
||
|
||
/* ===== 现金流出 - 网格 ===== */
|
||
.expense-group-label {
|
||
font-size: 26rpx;
|
||
font-weight: 500;
|
||
color: #4b4b4b;
|
||
display: block;
|
||
margin-bottom: 12rpx;
|
||
margin-top: 24rpx;
|
||
}
|
||
|
||
.expense-group-label:first-child {
|
||
margin-top: 0;
|
||
}
|
||
|
||
.expense-group-note {
|
||
font-size: 20rpx;
|
||
color: #a6a6a6;
|
||
display: block;
|
||
margin-top: -8rpx;
|
||
margin-bottom: 12rpx;
|
||
}
|
||
|
||
.expense-grid-3 {
|
||
display: grid;
|
||
grid-template-columns: 1fr 1fr 1fr;
|
||
gap: 12rpx;
|
||
margin-bottom: 8rpx;
|
||
}
|
||
|
||
.expense-grid-2 {
|
||
display: grid;
|
||
grid-template-columns: 1fr 1fr;
|
||
gap: 12rpx;
|
||
margin-bottom: 8rpx;
|
||
}
|
||
|
||
.expense-cell {
|
||
background: #fafafa;
|
||
border: 2rpx solid #e7e7e7;
|
||
border-radius: 14rpx;
|
||
padding: 18rpx 16rpx;
|
||
text-align: center;
|
||
}
|
||
|
||
.expense-cell-label {
|
||
font-size: 22rpx;
|
||
color: #8b8b8b;
|
||
display: block;
|
||
margin-bottom: 6rpx;
|
||
}
|
||
|
||
.expense-cell-value {
|
||
font-size: 28rpx;
|
||
font-weight: 600;
|
||
color: #242424;
|
||
display: block;
|
||
}
|
||
|
||
/* ===== 助教分析表格 ===== */
|
||
.coach-fin-header {
|
||
display: grid;
|
||
grid-template-columns: 1fr 1.2fr 1.2fr 1fr;
|
||
gap: 4rpx;
|
||
padding: 14rpx 24rpx;
|
||
background: #f0f0f0;
|
||
}
|
||
|
||
.coach-fin-header .coach-fin-col {
|
||
font-size: 22rpx;
|
||
color: #5e5e5e;
|
||
font-weight: 500;
|
||
}
|
||
|
||
.coach-fin-col {
|
||
text-align: right;
|
||
}
|
||
|
||
.coach-fin-col--name {
|
||
text-align: left;
|
||
font-size: 24rpx;
|
||
color: #5e5e5e;
|
||
}
|
||
|
||
.coach-fin-row {
|
||
display: grid;
|
||
grid-template-columns: 1fr 1.2fr 1.2fr 1fr;
|
||
gap: 4rpx;
|
||
padding: 16rpx 24rpx;
|
||
border-bottom: 2rpx solid #f3f3f3;
|
||
align-items: start;
|
||
}
|
||
|
||
.coach-fin-row:last-child {
|
||
border-bottom: none;
|
||
}
|
||
|
||
.coach-fin-row--total {
|
||
background: #fafafa;
|
||
border-bottom: 2rpx solid #e7e7e7;
|
||
}
|
||
|
||
.coach-fin-bold {
|
||
font-size: 26rpx;
|
||
font-weight: 600;
|
||
color: #242424;
|
||
display: block;
|
||
}
|
||
|
||
.coach-fin-val {
|
||
font-size: 26rpx;
|
||
color: #5e5e5e;
|
||
display: block;
|
||
}
|
||
|
||
.coach-fin-val-sm {
|
||
font-size: 24rpx;
|
||
color: #8b8b8b;
|
||
display: block;
|
||
}
|
||
|
||
/* ===== 目录导航 ===== */
|
||
.toc-overlay {
|
||
position: fixed;
|
||
top: 0;
|
||
left: 0;
|
||
right: 0;
|
||
bottom: 0;
|
||
background: rgba(0, 0, 0, 0.3);
|
||
z-index: 1000;
|
||
}
|
||
|
||
.toc-panel {
|
||
position: fixed;
|
||
top: 200rpx;
|
||
left: 32rpx;
|
||
right: 32rpx;
|
||
background: #ffffff;
|
||
border-radius: 24rpx;
|
||
box-shadow: 0 16rpx 64rpx rgba(0, 0, 0, 0.15);
|
||
z-index: 1001;
|
||
overflow: hidden;
|
||
transform: scale(0.9);
|
||
opacity: 0;
|
||
pointer-events: none;
|
||
transition: all 0.25s ease-out;
|
||
}
|
||
|
||
.toc-panel--show {
|
||
transform: scale(1);
|
||
opacity: 1;
|
||
pointer-events: auto;
|
||
}
|
||
|
||
.toc-header {
|
||
background: linear-gradient(135deg, #f8faff 0%, #ecf2fe 100%);
|
||
padding: 24rpx 28rpx;
|
||
border-bottom: 2rpx solid #e7e7e7;
|
||
}
|
||
|
||
.toc-header-text {
|
||
font-size: 28rpx;
|
||
font-weight: 600;
|
||
color: #393939;
|
||
}
|
||
|
||
.toc-list {
|
||
padding: 12rpx 0;
|
||
}
|
||
|
||
.toc-item {
|
||
display: flex;
|
||
align-items: center;
|
||
gap: 20rpx;
|
||
padding: 20rpx 28rpx;
|
||
}
|
||
|
||
.toc-item:active {
|
||
background: #f8faff;
|
||
}
|
||
|
||
.toc-item--active {
|
||
background: #ecf2fe;
|
||
}
|
||
|
||
.toc-item-emoji {
|
||
font-size: 32rpx;
|
||
flex-shrink: 0;
|
||
}
|
||
|
||
.toc-item-text {
|
||
font-size: 26rpx;
|
||
color: #4b4b4b;
|
||
}
|
||
|
||
.toc-item--active .toc-item-text {
|
||
color: #0052d9;
|
||
font-weight: 500;
|
||
}
|
||
|
||
/* ===== 指标说明弹窗 ===== */
|
||
.tip-overlay {
|
||
position: fixed;
|
||
top: 0;
|
||
left: 0;
|
||
right: 0;
|
||
bottom: 0;
|
||
background: rgba(0, 0, 0, 0.3);
|
||
z-index: 1999;
|
||
}
|
||
|
||
.tip-toast {
|
||
position: fixed;
|
||
bottom: 200rpx;
|
||
left: 32rpx;
|
||
right: 32rpx;
|
||
background: #ffffff;
|
||
border-radius: 24rpx;
|
||
padding: 28rpx;
|
||
box-shadow: 0 16rpx 64rpx rgba(0, 0, 0, 0.25);
|
||
z-index: 2000;
|
||
transform: translateY(120%);
|
||
opacity: 0;
|
||
transition: all 0.3s ease;
|
||
}
|
||
|
||
.tip-toast--show {
|
||
transform: translateY(0);
|
||
opacity: 1;
|
||
}
|
||
|
||
.tip-toast-header {
|
||
display: flex;
|
||
justify-content: space-between;
|
||
align-items: center;
|
||
margin-bottom: 16rpx;
|
||
}
|
||
|
||
.tip-toast-title {
|
||
font-size: 30rpx;
|
||
font-weight: 600;
|
||
color: #242424;
|
||
}
|
||
|
||
.tip-toast-close {
|
||
padding: 8rpx;
|
||
}
|
||
|
||
.tip-toast-content {
|
||
font-size: 24rpx;
|
||
color: #4b4b4b;
|
||
line-height: 1.6;
|
||
white-space: pre-wrap;
|
||
}
|
||
|
||
/* ===== 底部安全区 ===== */
|
||
.safe-bottom {
|
||
height: 200rpx;
|
||
padding-bottom: env(safe-area-inset-bottom);
|
||
}
|