/* 智能饭菜规划页面样式 */ .container { padding: 20rpx; background: linear-gradient(135deg, #f5f7fa 0%, #c3cfe2 100%); min-height: 100vh; } /* 页面标题 */ .page-header { background: linear-gradient(135deg, #667eea 0%, #764ba2 100%); color: white; padding: 40rpx 30rpx; margin: -20rpx -20rpx 30rpx -20rpx; border-radius: 0 0 40rpx 40rpx; text-align: center; } .page-title { display: flex; align-items: center; justify-content: center; margin-bottom: 20rpx; } .title-icon { font-size: 60rpx; margin-right: 20rpx; } .title-text { font-size: 48rpx; font-weight: bold; } .page-subtitle { font-size: 28rpx; opacity: 0.9; } /* 表单容器 */ .form-container { background: white; border-radius: 30rpx; padding: 40rpx; margin-bottom: 30rpx; box-shadow: 0 8rpx 40rpx rgba(0, 0, 0, 0.1); } .form-section { width: 100%; } .section-title { font-size: 36rpx; font-weight: bold; color: #333; margin-bottom: 40rpx; text-align: center; } /* 表单项 */ .form-item { margin-bottom: 40rpx; } .form-label { font-size: 28rpx; color: #333; margin-bottom: 20rpx; font-weight: 500; } .required { color: #ff4757; margin-left: 10rpx; } /* 选择器样式 */ .picker-display { background: #f8f9fa; border: 2rpx solid #e9ecef; border-radius: 20rpx; padding: 24rpx 30rpx; font-size: 28rpx; color: #333; position: relative; } .picker-display::after { content: '▼'; position: absolute; right: 30rpx; top: 50%; transform: translateY(-50%); color: #667eea; font-size: 24rpx; } /* 输入框样式 */ .form-input { background: #f8f9fa; border: 2rpx solid #e9ecef; border-radius: 20rpx; padding: 24rpx 30rpx; font-size: 28rpx; color: #333; width: 100%; box-sizing: border-box; } .form-input:focus { border-color: #667eea; background: white; } /* 文本域样式 */ .form-textarea { background: #f8f9fa; border: 2rpx solid #e9ecef; border-radius: 20rpx; padding: 24rpx 30rpx; font-size: 28rpx; color: #333; width: 100%; min-height: 120rpx; box-sizing: border-box; } .form-textarea:focus { border-color: #667eea; background: white; } /* 生成按钮 */ .generate-btn { background: linear-gradient(135deg, #667eea 0%, #764ba2 100%); color: white; border: none; border-radius: 25rpx; padding: 30rpx 60rpx; font-size: 32rpx; font-weight: bold; width: 100%; margin-top: 40rpx; box-shadow: 0 8rpx 30rpx rgba(102, 126, 234, 0.3); } .generate-btn:active { transform: translateY(2rpx); box-shadow: 0 4rpx 15rpx rgba(102, 126, 234, 0.3); } .generate-btn[disabled] { opacity: 0.6; transform: none; } /* 结果容器 */ .result-container { background: white; border-radius: 30rpx; padding: 40rpx; margin-bottom: 30rpx; box-shadow: 0 8rpx 40rpx rgba(0, 0, 0, 0.1); } .result-header { display: flex; justify-content: space-between; align-items: center; margin-bottom: 30rpx; flex-wrap: wrap; } .result-title { font-size: 36rpx; font-weight: bold; color: #333; flex: 1; } .result-actions { display: flex; gap: 20rpx; } .action-btn { background: #f8f9fa; border: 2rpx solid #e9ecef; border-radius: 20rpx; padding: 16rpx 24rpx; font-size: 24rpx; color: #333; min-width: 120rpx; } .copy-btn:active { background: #e3f2fd; border-color: #2196f3; color: #2196f3; } .save-btn:active { background: #e8f5e8; border-color: #4caf50; color: #4caf50; } /* 结果内容 */ .result-content { background: #f8f9fa; border-radius: 20rpx; padding: 30rpx; border-left: 8rpx solid #667eea; font-size: 28rpx; line-height: 1.6; color: #333; } .result-content h1, .result-content h2, .result-content h3 { color: #333; margin: 30rpx 0 20rpx 0; font-weight: bold; } .result-content h1:first-child, .result-content h2:first-child, .result-content h3:first-child { margin-top: 0; } .result-content strong { color: #667eea; font-weight: bold; } .result-content ul, .result-content ol { padding-left: 40rpx; } .result-content li { margin-bottom: 10rpx; } /* 历史记录入口 */ .history-entry { background: white; border-radius: 30rpx; padding: 30rpx; box-shadow: 0 8rpx 40rpx rgba(0, 0, 0, 0.1); } .history-link { display: flex; align-items: center; justify-content: center; text-decoration: none; color: #667eea; } .history-icon { font-size: 40rpx; margin-right: 20rpx; } .history-text { font-size: 32rpx; font-weight: 500; } /* 加载遮罩 */ .loading-overlay { position: fixed; top: 0; left: 0; right: 0; bottom: 0; background: rgba(0, 0, 0, 0.5); display: flex; align-items: center; justify-content: center; z-index: 9999; } .loading-content { background: white; border-radius: 30rpx; padding: 60rpx 40rpx; text-align: center; max-width: 500rpx; margin: 0 40rpx; } .loading-spinner { width: 80rpx; height: 80rpx; border: 6rpx solid #f3f3f3; border-top: 6rpx solid #667eea; border-radius: 50%; animation: spin 1s linear infinite; margin: 0 auto 30rpx; } @keyframes spin { 0% { transform: rotate(0deg); } 100% { transform: rotate(360deg); } } .loading-text { font-size: 28rpx; color: #666; line-height: 1.5; } /* 响应式适配 */ @media (max-width: 750rpx) { .container { padding: 15rpx; } .form-container, .result-container, .history-entry { padding: 30rpx; } .page-header { padding: 30rpx 20rpx; } .title-text { font-size: 40rpx; } .page-subtitle { font-size: 24rpx; } }