Files

277 lines
4.7 KiB
Plaintext

@import '../../style/theme.less';
page {
min-height: 100%;
background: @bg-header;
}
.hcm-page {
min-height: 100vh;
padding: 24rpx;
padding-bottom: 160rpx;
background: @bg-header;
box-sizing: border-box;
}
// ── Loading ──
.hcm-page__loading {
padding: 24rpx 28rpx;
background: @bg-white;
border-radius: @radius;
font-size: 24rpx;
color: @text-secondary;
box-shadow: @shadow;
}
// ── Section ──
.hcm-timer-card {
display: flex;
align-items: center;
justify-content: space-between;
margin-bottom: 24rpx;
padding: 28rpx;
background: @bg-white;
border-radius: @radius-xl;
box-shadow: @shadow;
}
.hcm-timer-card__info {
flex: 1;
min-width: 0;
}
.hcm-timer-card__title {
display: block;
font-size: 28rpx;
font-weight: 700;
color: @text-title;
}
.hcm-timer-card__desc {
display: block;
margin-top: 8rpx;
font-size: 22rpx;
color: @text-secondary;
}
.hcm-timer-card__right {
display: flex;
flex-direction: column;
align-items: center;
gap: 12rpx;
flex-shrink: 0;
margin-left: 20rpx;
}
.hcm-timer-card__badge {
padding: 6rpx 16rpx;
border-radius: 999rpx;
font-size: 22rpx;
font-weight: 700;
}
.hcm-timer-card__badge--on {
background: fade(#93d333, 18%);
color: #4a7a12;
}
.hcm-timer-card__badge--off {
background: fade(#8a8478, 15%);
color: #605b50;
}
.hcm-section {
margin-bottom: 24rpx;
padding: 28rpx;
background: @bg-white;
border-radius: @radius-xl;
box-shadow: @shadow;
&.last {
margin-bottom: 60rpx;
}
}
.hcm-section__header {
display: flex;
align-items: center;
justify-content: space-between;
margin-bottom: 20rpx;
}
.hcm-section__title {
font-size: 30rpx;
font-weight: 700;
color: @text-title;
}
.hcm-section__count {
font-size: 22rpx;
color: @text-gray;
}
.hcm-section__hint {
margin-left: 12rpx;
font-size: 22rpx;
color: @text-gray;
}
.hcm-section__empty {
padding: 20rpx 0;
font-size: 24rpx;
color: @text-gray;
margin-bottom: 16rpx;
}
// ── Item List ──
.hcm-item-list {
margin-bottom: 16rpx;
}
.hcm-item {
display: flex;
align-items: center;
padding: 16rpx 0;
border-bottom: @border;
}
.hcm-item:last-child {
border-bottom: none;
}
.hcm-item__img {
width: 80rpx;
height: 80rpx;
border-radius: @radius-sm;
flex-shrink: 0;
background: @bg-gray;
}
.hcm-item__info {
flex: 1;
min-width: 0;
margin-left: 16rpx;
display: flex;
flex-direction: column;
gap: 6rpx;
}
.hcm-item__title {
font-size: 26rpx;
font-weight: 600;
color: @text-title;
overflow: hidden;
text-overflow: ellipsis;
white-space: nowrap;
}
.hcm-item__id {
font-size: 20rpx;
color: @text-gray;
}
// ── Build Button ──
.hcm-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);
}
// ── Selector Popup ──
.hcm-selector-mask {
position: fixed;
top: 0;
left: 0;
right: 0;
bottom: 0;
background: rgba(0, 0, 0, 0.45);
z-index: 100;
display: flex;
align-items: flex-end;
}
.hcm-selector {
width: 100%;
max-height: 70vh;
background: @bg-white;
border-radius: @radius-xl @radius-xl 0 0;
display: flex;
flex-direction: column;
}
.hcm-selector__header {
display: flex;
align-items: center;
justify-content: space-between;
padding: 28rpx 32rpx;
border-bottom: @border;
}
.hcm-selector__title {
font-size: 30rpx;
font-weight: 700;
color: @text-title;
}
.hcm-selector__close {
font-size: 26rpx;
color: @text-secondary;
padding: 8rpx 16rpx;
}
.hcm-selector__list {
flex: 1;
max-height: 60vh;
padding: 0 32rpx;
}
.hcm-selector__empty {
padding: 40rpx 0;
text-align: center;
font-size: 24rpx;
color: @text-gray;
}
.hcm-selector-item {
display: flex;
align-items: center;
padding: 20rpx 0;
border-bottom: @border;
}
.hcm-selector-item:last-child {
border-bottom: none;
}
.hcm-selector-item__img {
width: 80rpx;
height: 80rpx;
border-radius: @radius-sm;
flex-shrink: 0;
background: @bg-gray;
}
.hcm-selector-item__info {
flex: 1;
min-width: 0;
margin-left: 16rpx;
display: flex;
flex-direction: column;
gap: 6rpx;
}
.hcm-selector-item__title {
font-size: 26rpx;
font-weight: 600;
color: @text-title;
}
.hcm-selector-item__sub {
font-size: 22rpx;
color: @text-secondary;
}