@use '@/styles/variables.scss' as *; .page { min-height: 100vh; background: $color-bg-page; padding: $spacing-md $spacing-lg; box-sizing: border-box; } .uploadCard { background: $color-bg-card; border-radius: $radius-lg; padding: $spacing-lg; box-shadow: $shadow-card; } .preview { width: 100%; border-radius: $radius-md; } .placeholder { display: flex; flex-direction: column; align-items: center; justify-content: center; height: 360rpx; background: rgba(0, 0, 0, 0.03); border: 2rpx dashed rgba(0, 0, 0, 0.12); border-radius: $radius-md; } .placeholderIcon { font-size: 80rpx; margin-bottom: $spacing-sm; } .placeholderText { font-size: $font-size-sm; color: $color-text-tertiary; } .btnRow { display: flex; gap: $spacing-md; margin-top: $spacing-lg; } .btn { flex: 1; margin: 0; @include button-reset; } .btnPrimary { background: $color-primary; color: $color-text-white; border-radius: $radius-button; height: $button-height-md; font-size: $font-size-md; } .resultCard { border-radius: $radius-lg; padding: $spacing-lg; margin-top: $spacing-lg; } .resultOk { background: rgba(0, 180, 42, 0.1); } .resultWarn { background: rgba(255, 125, 0, 0.12); } .resultTitle { display: block; font-size: $font-size-lg; font-weight: $font-weight-semibold; color: $color-text-primary; margin-bottom: $spacing-sm; } .detectionList { display: flex; flex-direction: column; gap: $spacing-xs; } .detectionRow { display: flex; justify-content: space-between; align-items: center; } .detectionClass { font-size: $font-size-md; color: $color-text-primary; } .detectionConf { font-size: $font-size-sm; color: $color-text-secondary; } .resultTip { display: block; font-size: $font-size-xs; color: $color-warning; line-height: $line-height-normal; margin-top: $spacing-sm; } .sectionTitle { display: block; font-size: $font-size-md; font-weight: $font-weight-semibold; color: $color-text-primary; margin: $spacing-lg 0 $spacing-md; } .queueMeta { font-size: $font-size-xs; color: $color-text-tertiary; margin-bottom: $spacing-sm; } .offlineCard { background: #fff8e6; border-radius: $radius-md; padding: $spacing-md; margin-bottom: $spacing-sm; box-shadow: $shadow-card; } .offlineStatus { font-size: $font-size-xs; color: $color-warning; font-weight: $font-weight-semibold; } .offlineError { display: block; font-size: $font-size-xs; color: $color-error; margin-top: $spacing-xs; } .historyList { display: flex; flex-direction: column; gap: $spacing-md; } .historyCard { background: $color-bg-card; border-radius: $radius-md; padding: $spacing-lg; box-shadow: $shadow-card; } .historyHeader { display: flex; justify-content: space-between; align-items: center; margin-bottom: $spacing-xs; } .historyStatus { font-size: $font-size-xs; padding: 4rpx $spacing-sm; border-radius: $radius-round; } .statusOk { color: $color-success; background: rgba(0, 180, 42, 0.1); } .statusWarn { color: $color-warning; background: rgba(255, 125, 0, 0.12); } .historyTime { font-size: $font-size-xs; color: $color-text-tertiary; } .historyDetail { display: block; font-size: $font-size-sm; color: $color-text-secondary; } .emptyText { display: block; text-align: center; font-size: $font-size-sm; color: $color-text-tertiary; padding: $spacing-xl 0; }