/* Global styles */ body { font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", "Microsoft YaHei", "WenQuanYi Micro Hei", sans-serif; color: #333; background-color: #f7f9fc; } /* Heading styles */ h1 { color: #2c3e50; font-weight: 700; margin-bottom: 1rem; } h2, h3, h4 { color: #3498db; font-weight: 600; } /* Button styles */ button.primary { background: linear-gradient(135deg, #3498db, #2980b9); border: none; box-shadow: 0 4px 6px rgba(52, 152, 219, 0.3); } button.secondary { background: #ecf0f1; color: #2980b9; border: 1px solid #bdc3c7; } button:hover { transform: translateY(-2px); box-shadow: 0 6px 8px rgba(0, 0, 0, 0.1); transition: all 0.3s ease; } /* Input fields enhancement */ input, textarea, select { border: 1px solid #ddd; border-radius: 8px; padding: 10px; box-shadow: inset 0 1px 3px rgba(0, 0, 0, 0.05); transition: all 0.3s ease; } input:focus, textarea:focus, select:focus { border-color: #3498db; box-shadow: 0 0 0 2px rgba(52, 152, 219, 0.25); } /* Tab styles */ .tabs { border-bottom: 2px solid #e0e0e0; } .tab-selected { color: #3498db; border-bottom: 2px solid #3498db; } /* Concept card styles */ .concept-card { transition: all 0.3s ease; border: 1px solid #e0e0e0; border-radius: 12px; padding: 16px; margin-bottom: 16px; cursor: pointer; background-color: #fff; box-shadow: 0 2px 5px rgba(0,0,0,0.05); } .concept-card:hover { box-shadow: 0 5px 15px rgba(0,0,0,0.1); transform: translateY(-3px); border-color: #bdc3c7; } .selected-card { border-color: #3498db; background-color: rgba(52, 152, 219, 0.05); box-shadow: 0 0 0 2px rgba(52, 152, 219, 0.3); } .concept-title { font-weight: bold; margin-bottom: 8px; color: #2c3e50; font-size: 1.1em; } .concept-desc { font-size: 0.95em; color: #7f8c8d; line-height: 1.5; } /* Knowledge graph styles */ #concept-graph { background-color: #fff; border-radius: 12px; padding: 16px; box-shadow: 0 2px 10px rgba(0,0,0,0.05); } #concept-graph img { max-width: 100%; height: auto; border-radius: 8px; box-shadow: 0 4px 15px rgba(0,0,0,0.1); transition: all 0.3s ease; } #concept-graph img:hover { box-shadow: 0 8px 25px rgba(0,0,0,0.15); } /* Example box styles */ .example-box { background-color: #f1f8fe; border-left: 4px solid #3498db; padding: 15px; margin: 15px 0; border-radius: 0 8px 8px 0; } .example-box h4 { margin-top: 0; color: #2980b9; } /* Resource item styles */ .resource-item { padding: 12px; margin: 10px 0; border-bottom: 1px dashed #e0e0e0; transition: all 0.2s ease; } .resource-item:hover { background-color: #f9f9f9; } /* Details and answers styles */ details { margin: 10px 0; padding: 10px; border: 1px solid #e0e0e0; border-radius: 8px; background-color: #f9f9f9; } summary { cursor: pointer; color: #3498db; font-weight: 600; padding: 5px; } summary:hover { color: #2980b9; } /* Layout container styles */ .container { background-color: #fff; border-radius: 12px; padding: 20px; box-shadow: 0 4px 6px rgba(0,0,0,0.05); margin-bottom: 20px; } /* Responsive adjustments */ @media (max-width: 768px) { .concept-card { padding: 12px; } .example-box { padding: 12px; } } /* Answer box styles */ .answer-box { background-color: #f8f9fa; border-radius: 12px; padding: 20px; margin: 15px 0; border: 1px solid #e9ecef; box-shadow: 0 2px 4px rgba(0,0,0,0.05); } .answer-content { margin-bottom: 15px; line-height: 1.6; color: #2c3e50; } .answer-content h4 { color: #3498db; margin-top: 0; margin-bottom: 10px; } .main-concept { background-color: #e3f2fd; padding: 10px 15px; border-radius: 8px; color: #1976d2; font-size: 0.95em; } .main-concept strong { color: #1565c0; } /* Answer section styles */ .answer-section { margin-top: 20px; background: white; border-radius: 15px; padding: 20px; } .answer-box { background-color: #f8f9fa; border-radius: 12px; padding: 20px; margin: 15px 0; border: 1px solid #e9ecef; box-shadow: 0 2px 4px rgba(0,0,0,0.05); transition: all 0.3s ease; } .answer-box:hover { box-shadow: 0 4px 8px rgba(0,0,0,0.1); } .answer-content { margin-bottom: 15px; line-height: 1.6; color: #2c3e50; font-size: 1.1em; } .main-concept { background-color: #e3f2fd; padding: 12px 16px; border-radius: 8px; color: #1976d2; font-size: 0.95em; margin-top: 15px; border: 1px solid rgba(25, 118, 210, 0.1); } .main-concept strong { color: #1565c0; font-weight: 600; } /* Loading animation styles */ .loading { padding: 20px; text-align: center; color: #666; font-size: 1.1em; position: relative; } .loading:after { content: '...'; position: absolute; animation: dots 1.5s steps(5, end) infinite; } @keyframes dots { 0%, 20% { content: '.'; } 40% { content: '..'; } 60% { content: '...'; } 80%, 100% { content: ''; } } .loading::before { content: ''; display: block; width: 30px; height: 30px; border: 3px solid #3498db; border-top-color: transparent; border-radius: 50%; margin: 0 auto 10px; animation: spin 1s linear infinite; } @keyframes spin { to { transform: rotate(360deg); } } /* 概念详解面板样式 */ .concept-explanation { padding: 20px; background: white; border-radius: 12px; box-shadow: 0 2px 8px rgba(0,0,0,0.1); } .explanation-content { line-height: 1.6; margin: 15px 0; color: #2c3e50; } .examples-section { margin-top: 20px; } .example-box { background: #f8f9fa; border-left: 4px solid #3498db; padding: 15px; margin: 15px 0; border-radius: 0 8px 8px 0; } .example-problem { margin-bottom: 10px; color: #2c3e50; } .example-solution { color: #34495e; padding: 10px; background: rgba(52, 152, 219, 0.05); border-radius: 4px; } /* 加载动画样式 */ .loading { text-align: center; padding: 20px; } .loading-spinner { border: 3px solid #f3f3f3; border-top: 3px solid #3498db; border-radius: 50%; width: 30px; height: 30px; animation: spin 1s linear infinite; margin: 0 auto 10px; } @keyframes spin { 0% { transform: rotate(0deg); } 100% { transform: rotate(360deg); } } .loading-text { color: #666; font-size: 0.9em; } /* 新增的样式 */ .concept-explanation-container { margin-top: 20px; padding: 15px; background: white; border-radius: 12px; box-shadow: 0 2px 8px rgba(0,0,0,0.1); transition: all 0.3s ease; max-height: 600px; /* 固定最大高度 */ overflow-y: auto; /* 添加垂直滚动条 */ /* 自定义滚动条样式 */ scrollbar-width: thin; scrollbar-color: #3498db #f1f1f1; } /* Webkit浏览器的滚动条样式 */ .concept-explanation-container::-webkit-scrollbar { width: 8px; } .concept-explanation-container::-webkit-scrollbar-track { background: #f1f1f1; border-radius: 4px; } .concept-explanation-container::-webkit-scrollbar-thumb { background: #3498db; border-radius: 4px; } .concept-explanation-container::-webkit-scrollbar-thumb:hover { background: #2980b9; } .concept-explanation-container h3 { color: #2c3e50; margin-bottom: 15px; position: sticky; top: 0; background: white; padding: 10px 0; z-index: 1; } /* 内容区域样式 */ .card-explanation { padding: 20px; background: white; border-radius: 12px; } .explanation-section, .key-points-section, .examples-section, .practice-section, .resources-section { margin-top: 20px; padding: 15px; background: #f8f9fa; border-radius: 8px; } .explanation-section h4, .key-points-section h4, .examples-section h4, .practice-section h4, .resources-section h4 { color: #2c3e50; margin-bottom: 10px; } /* 修改generate_card_explanation函数中的标题文本 */ .explanation-section h4:before { content: "📚 Concept Explanation"; } .key-points-section h4:before { content: "🎯 Key Points"; } .examples-section h4:before { content: "📝 Example Analysis"; } .practice-section h4:before { content: "✍️ Practice Problems"; } .resources-section h4:before { content: "📚 Learning Resources"; } /* 加载动画容器 */ .loading-container { display: flex; flex-direction: column; align-items: center; justify-content: center; padding: 40px; background: white; border-radius: 12px; box-shadow: 0 2px 8px rgba(0,0,0,0.1); } /* 加载动画旋转器 */ .loading-spinner { width: 50px; height: 50px; border: 4px solid #f3f3f3; border-top: 4px solid #3498db; border-radius: 50%; animation: spin 1s linear infinite; margin-bottom: 20px; } /* 加载文本 */ .loading-text { color: #666; font-size: 1.1em; margin-top: 10px; } /* 旋转动画 */ @keyframes spin { 0% { transform: rotate(0deg); } 100% { transform: rotate(360deg); } }