Files
aitsc/wechat-miniprogram/pages/meal-planning/meal-planning.wxss
2025-09-10 23:48:47 +08:00

344 lines
5.4 KiB
Plaintext

/* 智能饭菜规划页面样式 */
.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;
}
}