/* 页面容器 */ .page { min-height:100vh; background:var(--color-bg-subtle); } /* 欢迎区 */ .header { background:linear-gradient(135deg, var(--color-primary) 0%, var(--color-primary-light) 100%); padding:48rpx 32rpx 60rpx; color:var(--color-text-inverse); position:relative; } .header-top { display:flex; align-items:center; gap:24rpx; } .avatar { width:88rpx; height:88rpx; background:rgba(255,255,255,0.25); border-radius:50%; display:flex; align-items:center; justify-content:center; font-size:44rpx; } .greeting { font-size:38rpx; font-weight:700; margin-bottom:6rpx; } .date { font-size:24rpx; opacity:0.85; } .header-badge { margin:12rpx 0 0 112rpx; background:rgba(255,255,255,0.25); padding:6rpx 20rpx; border-radius:20rpx; font-size:22rpx; color:var(--color-text-inverse); display:inline-block; background:rgba(255,255,255,0.2); padding:8rpx 24rpx; border-radius:24rpx; font-size:22rpx; } /* 数据概览 - 2x2 紧凑网格(原高度 ~234rpx → 压缩到 ~80rpx,约 1/3) */ .stats-container { display:flex; flex-wrap:wrap; padding:0 24rpx; margin-top:24rpx; position:relative; z-index:10; } .stat-card { width:calc(50% - 16rpx); margin:0 8rpx 16rpx 8rpx; background:var(--color-bg-card); border-radius:20rpx; padding:16rpx 20rpx; display:flex; align-items:center; gap:16rpx; box-shadow:0 4rpx 16rpx rgba(0,0,0,0.08); box-sizing:border-box; } .stat-icon { font-size:36rpx; flex:none; width:64rpx; height:64rpx; display:flex; align-items:center; justify-content:center; background:var(--color-primary-light); border-radius:16rpx; } .stat-card .stat-icon.progress { background:#FFF6E6; } .stat-card .stat-icon.completed { background:#EDF8F1; } .stat-card .stat-icon.today { background:#EEF5FF; } .stat-info { flex:1; min-width:0; display:flex; flex-direction:column; } .stat-value { font-size:40rpx; font-weight:700; color:var(--color-text-strong); line-height:1.2; } .stat-label { font-size:22rpx; color:var(--color-text-tertiary); margin-top:4rpx; } /* 列表区块 */ .section { margin:0 24rpx 24rpx; background:var(--color-bg-card); border-radius:24rpx; padding:32rpx; box-shadow:0 2rpx 12rpx rgba(0,0,0,0.04); } .section-header { display:flex; justify-content:space-between; align-items:center; margin-bottom:24rpx; } .section-title-wrap { display:flex; align-items:center; gap:12rpx; } .section-dot { width:6rpx; height:28rpx; background:linear-gradient(180deg, var(--color-primary) 0%, var(--color-primary-light) 100%); border-radius:3rpx; } .section-title { font-size:30rpx; font-weight:600; color:var(--color-text-strong); } .section-count { font-size:22rpx; color:var(--color-text-tertiary); background:var(--color-bg-subtle); padding:4rpx 14rpx; border-radius:12rpx; } /* 服务列表 */ .service-list { display:flex; flex-direction:column; gap:16rpx; } .service-card { display:flex; align-items:center; justify-content:space-between; padding:24rpx; background:var(--color-bg-subtle); border-radius:16rpx; border:1rpx solid var(--color-divider); } .detail-btn{flex:none;margin:0;background:#2f7df6;color:#fff;font-size:22rpx;padding:8rpx 16rpx;line-height:1.6;border-radius:8rpx} .service-left { flex:1; min-width:0; margin-right:20rpx; } .service-header { display:flex; align-items:center; justify-content:space-between; margin-bottom:8rpx; } .service-tag { font-size:24rpx; font-weight:600; color:var(--color-primary-strong); background:rgba(233, 107, 107, 0.08); padding:4rpx 12rpx; border-radius:6rpx; } .service-time { font-size:24rpx; color:var(--color-text-disabled); } .service-desc { font-size:26rpx; color:var(--color-text-primary); overflow:hidden; text-overflow:ellipsis; white-space:nowrap; } .btn-claim { background:linear-gradient(135deg, var(--color-primary) 0%, var(--color-primary-light) 100%); color:var(--color-text-inverse); font-size:24rpx; font-weight:600; padding:12rpx 32rpx; border-radius:24rpx; border:none; box-shadow:0 4rpx 12rpx rgba(233, 107, 107, 0.25); } /* 空状态 */ .empty-state { text-align:center; padding:80rpx 40rpx; } .empty-illustration { font-size:88rpx; margin-bottom:16rpx; opacity:0.5; } .empty-text { font-size:26rpx; color:var(--color-text-tertiary); margin-bottom:6rpx; } .empty-hint { font-size:24rpx; color:var(--color-text-disabled); } /* 紧凑区块:仅“我的服务对象分配 / 转介任务”两栏,垂直高度约为原来的一半 */ .section-compact { padding:24rpx 32rpx; } .section-compact .section-header { margin-bottom:12rpx; } .empty-compact { padding:12rpx 40rpx; } .empty-compact .empty-illustration { font-size:48rpx; margin-bottom:4rpx; } .empty-compact .empty-text { margin-bottom:2rpx; } .section-compact .referral-open-btn { margin-top:8rpx; } /* 加载中 */ .loading-wrap { display:flex; flex-direction:column; align-items:center; padding:120rpx 0; gap:20rpx; } .loading-spinner { width:44rpx; height:44rpx; border:4rpx solid var(--color-divider); border-top-color:var(--color-primary); border-radius:50%; animation:spin 0.8s linear infinite; } @keyframes spin { to { transform:rotate(360deg); } } .loading-text { font-size:24rpx; color:var(--color-text-tertiary); } /* 底部退出 */ .footer { padding:40rpx 32rpx 20rpx; } .logout-btn { width:100%; min-height:var(--tap-min); line-height:var(--tap-min); background:var(--color-bg-card); color:var(--color-text-tertiary); font-size:28rpx; border-radius:42rpx; border:2rpx solid var(--color-border); min-width:var(--tap-min);} /* ===== 联系授权(ZC-MM-003 / B1) ===== */ .contact-form { background: #fff; border-radius: 16rpx; padding: 24rpx; margin-bottom: 20rpx; } .form-row { display: flex; align-items: center; padding: 16rpx 0; border-bottom: 1rpx solid #f0f0f0; } .form-label { width: 160rpx; color: #909399; font-size: 26rpx; flex-shrink: 0; } .form-value { color: #303133; font-size: 26rpx; flex: 1; } .form-input { flex: 1; font-size: 26rpx; color: #303133; } .form-hint { font-size: 22rpx; color: #b0b3b8; margin-top: 12rpx; line-height: 1.5; } .submit-btn { margin-top: 16rpx; background: #2f7df6; color: #fff; } .auth-list { margin-top: 8rpx; } .auth-card { background: #fff; border-radius: 16rpx; padding: 20rpx 24rpx; margin-bottom: 14rpx; } .auth-row { display: flex; justify-content: space-between; align-items: center; } .auth-channel { font-size: 28rpx; font-weight: 600; color: #1f2d3d; } .auth-status { font-size: 24rpx; color: #909399; } .auth-purpose { font-size: 26rpx; color: #5e6d82; margin-top: 8rpx; word-break: break-all; } .auth-meta { font-size: 22rpx; color: #b0b3b8; margin-top: 8rpx; } .revoke-btn { margin-top: 12rpx; background: #f4f4f5; color: #606266; } .referral-open-btn{margin-top:20rpx;width:100%} .dialog-mask{position:fixed;z-index:99;left:0;right:0;top:0;bottom:0;background:rgba(0,0,0,.45);display:flex;align-items:center;justify-content:center;padding:32rpx;box-sizing:border-box} .dialog-card{width:100%;background:#fff;border-radius:20rpx;padding:28rpx;box-sizing:border-box} .dialog-title{font-size:32rpx;font-weight:600;color:#20243a;margin-bottom:20rpx} .dialog-actions{display:flex;justify-content:flex-end;gap:16rpx;margin-top:20rpx}