body {
    font-family: 'Noto Sans SC', -apple-system, BlinkMacSystemFont, sans-serif;
    padding-bottom: 96px;
}
.st { position: relative; padding-left: 12px; }
.st::before { content: ''; position: absolute; left: 0; top: 50%; transform: translateY(-50%); width: 4px; height: 16px; border-radius: 2px; }
.st.blue::before { background: linear-gradient(180deg, #0052d9, #5b9cf8); }
.st.green::before { background: linear-gradient(180deg, #00a870, #4cd964); }
.st.orange::before { background: linear-gradient(180deg, #ed7b2f, #ffc107); }
.st.pink::before { background: linear-gradient(180deg, #e851a4, #f5a0c0); }
.st.purple::before { background: linear-gradient(180deg, #7c3aed, #a78bfa); }
.st.teal::before { background: linear-gradient(180deg, #0d9488, #5eead4); }
.pv { font-variant-numeric: tabular-nums; }
.progress-sm { height: 6px; border-radius: 3px; background: #e7e7e7; overflow: hidden; }
.progress-sm .fill { height: 100%; border-radius: 3px; }

/* 任务类型标签圆圈 — 与 task-list.html 一致 */
.task-dot { width: 8px; height: 8px; border-radius: 50%; flex-shrink: 0; }
.task-dot.high-priority { background: linear-gradient(135deg, #dc2626, #ef4444); }
.task-dot.priority { background: linear-gradient(135deg, #ea580c, #f97316); }
.task-dot.relationship { background: linear-gradient(135deg, #db2777, #ec4899); }
.task-dot.callback { background: linear-gradient(135deg, #0d9488, #14b8a6); }

/* 任务标签文字 */
.task-tag-text { font-size: 11px; font-weight: 500; }
.task-tag-text.high-priority { color: #dc2626; }
.task-tag-text.priority { color: #ea580c; }
.task-tag-text.relationship { color: #db2777; }
.task-tag-text.callback { color: #0d9488; }

/* 收入明细 Tab */
.income-tab { color: #8b8b8b; font-size: 12px; padding: 4px 12px; border-radius: 6px; cursor: pointer; transition: all 0.2s; }
.income-tab.active { color: #0052d9; background: #ecf2fe; font-weight: 500; }

/* 近期服务卡片 */
.service-card {
    background: #fff;
    border-radius: 12px;
    border: 1px solid #eeeeee;
    padding: 14px;
    transition: box-shadow 0.2s;
}
.service-card:active { box-shadow: 0 2px 8px rgba(0,0,0,0.08); }
