/** pages/garden/add/index.wxss **/ page { height: 100%; overflow: hidden; } .add-plant-page { background-color: #FFFFFF; height: 100vh; display: flex; flex-direction: column; overflow: hidden; } .page-content { height: calc(100vh - 140rpx - env(safe-area-inset-bottom)); padding: 32rpx 40rpx; background: #FFFFFF; box-sizing: border-box; } /* Hide scrollbar - multiple approaches for compatibility */ .page-content::-webkit-scrollbar { display: none !important; width: 0 !important; height: 0 !important; background: transparent !important; } /* For scroll-view component */ ::-webkit-scrollbar { display: none !important; width: 0 !important; height: 0 !important; } scroll-view ::-webkit-scrollbar { display: none !important; width: 0 !important; height: 0 !important; } /* Upload Section */ .upload-section { margin: 0 0 40rpx; display: flex; justify-content: center; } .image-upload-area { width: 100%; height: 240rpx; border-radius: 32rpx; border: 4rpx dashed #ddd; /* Match prototype dashed border */ background: #fafafa; display: flex; flex-direction: column; align-items: center; justify-content: center; position: relative; overflow: hidden; transition: all 0.2s; } .uploaded-img { width: 100%; height: 100%; border-radius: 32rpx; /* Matches container */ object-fit: cover; } .image-upload-area:active { border-color: #558B2F; /* var(--primary) */ background: #F1F8E9; } .image-upload-area.has-image { border: none; height: 360rpx; /* Taller when has image */ } .upload-placeholder { display: flex; flex-direction: column; align-items: center; gap: 16rpx; } .upload-placeholder text { color: #BDBDBD; font-size: 26rpx; } /* Form Styles */ .form-group { margin-bottom: 40rpx; } .field-label { display: block; font-size: 28rpx; font-weight: 600; color: #263238; margin-bottom: 16rpx; } .custom-input-box { background: #f9f9f9; border: 2rpx solid #e0e0e0; border-radius: 24rpx; padding: 24rpx 32rpx; color: #263238; font-size: 30rpx; transition: all 0.2s; } .custom-input-box:active, .custom-input-box:focus-within { background: #FFFFFF; border-color: #558B2F; } .input-placeholder { color: #999; } .native-input { width: 100%; height: 100%; } .picker-box { display: flex; justify-content: space-between; align-items: center; } /* Care Section */ .care-section-group { margin-top: 24rpx; margin-bottom: 48rpx; } .section-header-row { display: flex; justify-content: space-between; align-items: center; margin-bottom: 24rpx; } .add-task-btn-small { font-size: 26rpx; color: #558B2F; background: #F1F8E9; border: 2rpx dashed #558B2F; padding: 12rpx 20rpx; border-radius: 16rpx; display: flex; align-items: center; gap: 8rpx; } .care-list-styled { display: flex; flex-direction: column; gap: 24rpx; } .care-row-styled { display: flex; align-items: center; gap: 16rpx; } .care-input-col.task-col { flex: 1; } .care-input-col.freq-col { flex-shrink: 0; } .small-box { padding: 24rpx; background: #f9f9f9; } .flex-row { display: flex; align-items: center; padding-right: 20rpx; } .center-text { text-align: center; } .suffix-text { color: #888; font-size: 28rpx; font-weight: 500; } .delete-btn-pink { width: 84rpx; height: 84rpx; background: #FFEBEE; border-radius: 24rpx; display: flex; align-items: center; justify-content: center; color: #EF5350; flex-shrink: 0; } /* Footer */ .page-footer { position: fixed; bottom: 0; left: 0; right: 0; padding: 32rpx 40rpx calc(32rpx + env(safe-area-inset-bottom)); background: white; z-index: 100; box-shadow: 0 -4rpx 16rpx rgba(0,0,0,0.02); } /* Footer Button */ .page-footer t-button { --td-button-font-weight: 600; --td-button-primary-bg-color: #558B2F; --td-button-primary-border-color: #558B2F; box-shadow: 0 8rpx 32rpx rgba(85, 139, 47, 0.3); } /* Care Icon Button */ .care-icon-btn { width: 84rpx; height: 84rpx; border-radius: 24rpx; display: flex; align-items: center; justify-content: center; flex-shrink: 0; transition: all 0.2s; } .care-icon-btn:active { transform: scale(0.95); } /* Icon Picker Popup */ .icon-picker-mask { position: fixed; top: 0; left: 0; right: 0; bottom: 0; background: rgba(0, 0, 0, 0.5); z-index: 1000; opacity: 0; visibility: hidden; transition: all 0.3s; } .icon-picker-mask.show { opacity: 1; visibility: visible; } .icon-picker-popup { position: fixed; left: 0; right: 0; bottom: 0; background: #fff; border-radius: 32rpx 32rpx 0 0; z-index: 1001; transform: translateY(100%); transition: transform 0.3s cubic-bezier(0.25, 1, 0.5, 1); padding-bottom: env(safe-area-inset-bottom); } .icon-picker-popup.show { transform: translateY(0); } .icon-picker-header { display: flex; justify-content: space-between; align-items: center; padding: 32rpx 40rpx; border-bottom: 2rpx solid #f5f5f5; } .icon-picker-title { font-size: 34rpx; font-weight: 600; color: #333; } .icon-picker-close { width: 64rpx; height: 64rpx; display: flex; align-items: center; justify-content: center; } .icon-picker-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 24rpx; padding: 32rpx 40rpx; max-height: 60vh; overflow-y: auto; } .icon-picker-item { display: flex; flex-direction: column; align-items: center; gap: 12rpx; padding: 20rpx 0; } .icon-picker-item:active { opacity: 0.7; } .icon-circle { width: 96rpx; height: 96rpx; border-radius: 50%; display: flex; align-items: center; justify-content: center; transition: all 0.2s; } .icon-name { font-size: 24rpx; color: #666; }