@use '@/styles/variables.scss' as *; .roomsPage { min-height: 100vh; background: $color-bg-page; padding: $spacing-md $spacing-lg; padding-bottom: $spacing-xl; } .roomList { display: flex; flex-direction: column; gap: $spacing-md; } .roomCard { background: $color-bg-card; border-radius: $radius-md; padding: $spacing-lg; box-shadow: $shadow-card; transition: all $transition-base; &:active { transform: scale(0.98); opacity: 0.95; } } .roomCardHeader { display: flex; justify-content: space-between; align-items: flex-start; margin-bottom: $spacing-md; } .roomNameRow { display: flex; align-items: center; gap: $spacing-sm; flex: 1; min-width: 0; } .roomIcon { font-size: 36rpx; flex-shrink: 0; } .roomName { font-size: $font-size-lg; font-weight: $font-weight-semibold; color: $color-text-primary; @include text-ellipsis; } .roomStatus { font-size: $font-size-xs; padding: 4rpx $spacing-sm; border-radius: $radius-xs; white-space: nowrap; flex-shrink: 0; margin-left: $spacing-sm; } .statusActive { background: rgba(0, 180, 42, 0.1); color: $color-success; } .statusAlarm { background: rgba(245, 63, 63, 0.1); color: $color-error; } .statusMaintenance { background: rgba(255, 125, 0, 0.1); color: $color-warning; } .statusInactive { background: rgba(134, 144, 156, 0.1); color: $color-text-tertiary; } .roomInfo { display: flex; flex-wrap: wrap; gap: $spacing-md; margin-bottom: $spacing-md; } .infoItem { display: flex; align-items: center; gap: 4rpx; } .infoIcon { font-size: 24rpx; } .infoText { font-size: $font-size-sm; color: $color-text-secondary; } .roomDesc { font-size: $font-size-sm; color: $color-text-tertiary; line-height: $line-height-loose; @include text-ellipsis-multi(2); } .roomCode { font-size: $font-size-xs; color: $color-text-tertiary; margin-top: $spacing-sm; } .loadingWrap { display: flex; align-items: center; justify-content: center; padding: $spacing-xl 0; } .loadingText { font-size: $font-size-sm; color: $color-text-tertiary; } .errorWrap { display: flex; flex-direction: column; align-items: center; justify-content: center; padding: $spacing-xl 0; } .errorIcon { font-size: 56rpx; margin-bottom: $spacing-sm; } .errorText { font-size: $font-size-sm; color: $color-text-tertiary; } .retryBtn { margin-top: $spacing-md; padding: $spacing-xs $spacing-lg; border-radius: $radius-button; background: $color-primary; color: $color-text-white; font-size: $font-size-sm; } .emptyWrap { display: flex; flex-direction: column; align-items: center; justify-content: center; padding: 120rpx 0; } .emptyIcon { font-size: 80rpx; margin-bottom: $spacing-md; } .emptyText { font-size: $font-size-md; color: $color-text-tertiary; }