// 山峡小程序壳层样式(对齐 mobile-ui/shanxia-mp-base.css 工作台 / Header / 占位) page { --mp-brand-green: #0a9f6d; --mp-brand-green-dark: #087f57; --mp-brand-green-soft: #e9f9f2; --mp-barley: #d6a343; --mp-bg: #f5f8f7; --mp-surface: #ffffff; --mp-text: #1f2a26; --mp-muted: #6b7b74; --mp-border: #dcebe4; --mp-border-light: #edf5f1; --mp-danger: #d14343; --mp-radius-lg: 32rpx; --mp-radius-xl: 44rpx; --mp-header-gradient: linear-gradient(145deg, #087f57 0%, #0a9f6d 72%, #d6a343 165%); background-color: var(--mp-bg); color: var(--mp-text); } .mp-page { min-height: 100vh; background: var(--mp-bg); box-sizing: border-box; } .mp-page--tab { padding-bottom: calc(24rpx + env(safe-area-inset-bottom, 0px)); } .mp-header { background: var(--mp-header-gradient); color: #fff; padding: calc(28rpx + var(--sq-safe-top, env(safe-area-inset-top, 0px))) calc(32rpx + var(--sq-capsule-right-safe, 96px)) 32rpx 32rpx; border-bottom-left-radius: var(--mp-radius-xl); border-bottom-right-radius: var(--mp-radius-xl); box-shadow: 0 16rpx 40rpx rgba(10, 159, 109, 0.12); box-sizing: border-box; } .mp-header--home { padding-top: calc(40rpx + var(--sq-safe-top, env(safe-area-inset-top, 0px))); padding-bottom: 48rpx; } /* 工作台:恢复绿色渐变大头;容器不预留胶囊,用户行可真正右对齐 */ .mp-header--workbench { padding-top: calc(72rpx + var(--sq-safe-top, env(safe-area-inset-top, 0px))); padding-right: 32rpx; padding-bottom: 56rpx; padding-left: 32rpx; min-height: calc(280rpx + var(--sq-safe-top, 0px)); box-sizing: border-box; } .mp-header__title-row { display: flex; flex-direction: row; align-items: center; gap: 20rpx; min-width: 0; padding-right: var(--sq-capsule-right-safe, 96px); box-sizing: border-box; } .mp-header__logo { width: 72rpx; height: 72rpx; flex-shrink: 0; border-radius: 12rpx; background: rgba(255, 255, 255, 0.18); } .mp-header__titles { flex: 1; min-width: 0; } .mp-header__main { flex: 1; min-width: 0; text-align: left; } .mp-header__title { display: block; font-size: 36rpx; font-weight: 700; line-height: 1.3; text-align: left; } .mp-header__meta { display: block; margin-top: 8rpx; font-size: 24rpx; opacity: 0.9; line-height: 1.4; text-align: left; } .mp-header__user-row { display: flex; flex-direction: row; align-items: center; justify-content: flex-end; width: 100%; margin-top: 28rpx; box-sizing: border-box; } .mp-header__user-stack { display: flex; flex-direction: column; align-items: flex-end; justify-content: center; gap: 8rpx; flex-shrink: 0; max-width: 70%; text-align: right; margin-left: auto; } .mp-header__welcome { font-size: 22rpx; line-height: 1.3; opacity: 0.9; text-align: right; } .mp-header__user-name { font-size: 28rpx; font-weight: 600; line-height: 1.3; max-width: 100%; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; text-align: right; } .mp-header__logout { margin-top: 4rpx; font-size: 22rpx; line-height: 1.3; padding: 6rpx 16rpx; border-radius: 999rpx; border: 1rpx solid rgba(255, 255, 255, 0.45); color: #fff; opacity: 0.95; flex-shrink: 0; } .mp-header__logout:active { background: rgba(255, 255, 255, 0.12); } .mp-header__logout--disabled { opacity: 0.55; pointer-events: none; } .mp-section { padding: 24rpx 32rpx; } .mp-module-block { background: var(--mp-surface); border: 1rpx solid var(--mp-border); border-radius: var(--mp-radius-lg); overflow: hidden; box-shadow: 0 8rpx 24rpx rgba(10, 159, 109, 0.06); } .mp-module-block + .mp-module-block { margin-top: 24rpx; } .mp-module-block__head { display: flex; align-items: center; gap: 20rpx; padding: 24rpx 28rpx; border-bottom: 1rpx solid var(--mp-border-light); background: #fafcfb; } .mp-module-block__icon { width: 64rpx; height: 64rpx; border-radius: 16rpx; color: #fff; font-size: 20rpx; font-weight: 700; display: flex; align-items: center; justify-content: center; flex-shrink: 0; } .mp-module-block--crm .mp-module-block__icon { background: linear-gradient(145deg, #0a9f6d, #11b37a); } .mp-module-block--bx .mp-module-block__icon { background: linear-gradient(145deg, #c9922f, #d6a343); } .mp-module-block--db .mp-module-block__icon { background: linear-gradient(145deg, #247a70, #2b8a7e); } .mp-module-block--pl .mp-module-block__icon { background: linear-gradient(145deg, #066b49, #087f57); } .mp-module-block__title-wrap { flex: 1; min-width: 0; } .mp-module-block__title { display: block; font-size: 30rpx; font-weight: 700; color: var(--mp-text); } .mp-module-block__desc { display: block; margin-top: 4rpx; font-size: 22rpx; color: var(--mp-muted); } .mp-menu-grid { display: flex; flex-wrap: wrap; background: var(--mp-border-light); } .mp-menu-card { width: 33.333%; box-sizing: border-box; min-height: 156rpx; background: var(--mp-surface); display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 12rpx; padding: 20rpx 12rpx; text-align: center; border-right: 1rpx solid var(--mp-border-light); border-bottom: 1rpx solid var(--mp-border-light); } .mp-menu-card:nth-child(3n) { border-right: none; } .mp-menu-card:active { background: #f4fbf8; } .mp-menu-card__icon { width: 60rpx; height: 60rpx; border-radius: 16rpx; background: linear-gradient(145deg, #e8f5ef, #d9efe5); display: flex; align-items: center; justify-content: center; font-size: 32rpx; line-height: 1; } .mp-module-block--bx .mp-menu-card__icon { background: linear-gradient(145deg, #faf0dc, #f3e4c4); } .mp-module-block--db .mp-menu-card__icon { background: linear-gradient(145deg, #dff0ee, #cce5e2); } .mp-module-block--pl .mp-menu-card__icon { background: linear-gradient(145deg, #dff1e8, #c8e8d8); } .mp-menu-card__name { font-size: 22rpx; color: #3f4f48; line-height: 1.35; } .mp-menu-card--disabled { opacity: 0.45; pointer-events: none; } .mp-menu-card--pad { pointer-events: none; } .mp-placeholder { min-height: 60vh; display: flex; flex-direction: column; align-items: center; justify-content: center; padding: 80rpx 48rpx; text-align: center; } .mp-placeholder__icon { width: 176rpx; height: 176rpx; border-radius: 50%; background: linear-gradient(145deg, #edf5f1, #dcebe4); margin-bottom: 32rpx; } .mp-placeholder__title { font-size: 32rpx; font-weight: 600; color: var(--mp-text); margin-bottom: 12rpx; } .mp-placeholder__desc { font-size: 26rpx; color: var(--mp-muted); line-height: 1.6; } .mp-profile-hero { background: var(--mp-header-gradient); color: #fff; padding: calc(40rpx + env(safe-area-inset-top, 0px)) 32rpx 48rpx; border-bottom-left-radius: var(--mp-radius-xl); border-bottom-right-radius: var(--mp-radius-xl); } .mp-profile-hero__user { display: flex; align-items: center; gap: 24rpx; } .mp-profile-hero__avatar { width: 112rpx; height: 112rpx; border-radius: 50%; background: rgba(255, 255, 255, 0.22); border: 4rpx solid rgba(255, 255, 255, 0.35); flex-shrink: 0; overflow: hidden; } .mp-profile-hero__avatar image { width: 100%; height: 100%; } .mp-profile-hero__name { font-size: 36rpx; font-weight: 700; } .mp-profile-hero__dept { margin-top: 8rpx; font-size: 24rpx; opacity: 0.9; } .mp-profile-panel { margin: 24rpx 32rpx; background: var(--mp-surface); border: 1rpx solid var(--mp-border); border-radius: var(--mp-radius-lg); overflow: hidden; } .mp-form-item { display: flex; align-items: center; justify-content: space-between; gap: 24rpx; padding: 28rpx 32rpx; border-bottom: 1rpx solid var(--mp-border-light); } .mp-form-item:last-child { border-bottom: none; } .mp-form-item__label { font-size: 28rpx; color: var(--mp-muted); flex-shrink: 0; } .mp-form-item__value { font-size: 28rpx; color: var(--mp-text); text-align: right; flex: 1; min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; } .mp-profile-actions { padding: 8rpx 32rpx 48rpx; display: flex; flex-direction: column; gap: 20rpx; } .mp-btn { height: 88rpx; line-height: 88rpx; border-radius: 16rpx; font-size: 30rpx; text-align: center; } .mp-btn--primary { background: var(--mp-brand-green); color: #fff; } .mp-btn--ghost { background: #fff; color: var(--mp-danger); border: 1rpx solid #fecaca; } .mp-btn--block { width: 100%; } .mp-hint { margin: 0 32rpx 24rpx; font-size: 22rpx; color: var(--mp-muted); text-align: center; }