@import '../../style/theme.less'; page { min-height: 100%; background: @bg-header; } .ccm-page { min-height: 100vh; padding: 24rpx; padding-bottom: 160rpx; background: @bg-header; box-sizing: border-box; } // ── Category Selector ── .ccm-page__categories { white-space: nowrap; padding-bottom: 8rpx; } .ccm-pill { display: inline-flex; align-items: center; padding: 16rpx 28rpx; margin-right: 16rpx; background: @bg-white; border-radius: 999rpx; border: 2rpx solid transparent; box-shadow: @shadow; } .ccm-pill--active { background: @brand-light; border-color: @brand; } .ccm-pill__icon { font-size: 28rpx; margin-right: 8rpx; } .ccm-pill__text { font-size: 26rpx; font-weight: 600; color: @text-title; white-space: nowrap; } // ── Stats ── .ccm-page__stats { display: flex; margin-top: 24rpx; } .ccm-stat { flex: 1; padding: 24rpx 16rpx; background: @bg-white; border-radius: @radius-xl; text-align: center; box-shadow: @shadow; } .ccm-stat + .ccm-stat { margin-left: 16rpx; } .ccm-stat__num { display: block; font-size: 36rpx; font-weight: 800; color: @text-title; } .ccm-stat__label { display: block; margin-top: 8rpx; font-size: 22rpx; color: @text-secondary; } // ── Loading / Empty ── .ccm-page__loading, .ccm-page__empty { margin-top: 24rpx; padding: 24rpx 28rpx; background: @bg-white; border-radius: @radius; font-size: 24rpx; line-height: 1.6; color: @text-secondary; box-shadow: @shadow; } // ── Worksheet List ── .ccm-page__list { margin-top: 24rpx; } .ws-card { padding: 28rpx; margin-bottom: 20rpx; background: @bg-white; border-radius: @radius-xl; box-shadow: @shadow; border: 2rpx solid transparent; } .ws-card--active { border-color: fade(#93d333, 30%); } .ws-card--draft { border-color: fade(#ffb703, 40%); } .ws-card--hidden { border-color: fade(#8a8478, 25%); } .ws-card__header { display: flex; align-items: flex-start; } .ws-card__img { width: 120rpx; height: 120rpx; border-radius: @radius; flex-shrink: 0; background: @bg-gray; } .ws-card__img--placeholder { display: flex; align-items: center; justify-content: center; font-size: 22rpx; color: @text-gray; } .ws-card__info { flex: 1; min-width: 0; margin-left: 20rpx; } .ws-card__title { display: block; font-size: 28rpx; font-weight: 700; color: @text-title; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; } .ws-card__subtitle { display: block; margin-top: 6rpx; font-size: 22rpx; color: @text-secondary; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; } .ws-card__meta { display: flex; margin-top: 10rpx; gap: 12rpx; } .ws-card__tag { padding: 4rpx 14rpx; border-radius: 999rpx; font-size: 20rpx; color: @text-secondary; background: @bg-gray; } .ws-card__id { display: block; margin-top: 8rpx; font-size: 20rpx; color: @text-gray; } .ws-card__footer { display: flex; align-items: center; margin-top: 20rpx; padding-top: 20rpx; border-top: @border; } .ws-card__badge { padding: 6rpx 16rpx; border-radius: 999rpx; font-size: 22rpx; font-weight: 700; } .ws-card__badge--active { background: fade(#93d333, 18%); color: #4a7a12; } .ws-card__badge--draft { background: fade(#ffb703, 18%); color: #8a6d00; } .ws-card__badge--hidden { background: fade(#8a8478, 15%); color: #605b50; } .ws-card__sort { flex: 1; margin-left: 16rpx; font-size: 22rpx; color: @text-gray; } // ── Build Button ── .ccm-page__build { position: fixed; left: 0; right: 0; bottom: 0; padding: 24rpx 40rpx; padding-bottom: calc(24rpx + env(safe-area-inset-bottom)); background: @bg-header; box-shadow: 0 -4rpx 16rpx rgba(50, 46, 37, 0.06); }