| | |
| | main_styles = """ |
| | <style> |
| | |
| | /* Headers */ |
| | h1 { |
| | color: #1a237e; |
| | font-size: 32px; |
| | font-weight: 600; |
| | margin-bottom: 24px; |
| | } |
| | |
| | h2 { |
| | color: #1565c0; |
| | font-size: 24px; |
| | font-weight: 500; |
| | margin-top: 32px; |
| | margin-bottom: 16px; |
| | } |
| | |
| | h3 { |
| | color: #1976d2; |
| | font-size: 20px; |
| | font-weight: 500; |
| | margin-top: 24px; |
| | margin-bottom: 12px; |
| | } |
| | |
| | /* Content */ |
| | p { |
| | color: #333; |
| | font-size: 16px; |
| | line-height: 1.6; |
| | margin-bottom: 16px; |
| | } |
| | |
| | /* Expandable sections */ |
| | .streamlit-expanderHeader { |
| | font-size: 18px; |
| | font-weight: 500; |
| | color: #1565c0; |
| | } |
| | |
| | /* Warning/Info boxes */ |
| | .stAlert { |
| | font-size: 16px; |
| | padding: 16px; |
| | margin: 16px 0; |
| | border-radius: 8px; |
| | } |
| | |
| | /* Download button */ |
| | .stDownloadButton { |
| | background-color: #1976d2; |
| | color: white; |
| | padding: 12px 24px; |
| | font-weight: 500; |
| | border-radius: 8px; |
| | margin-top: 32px; |
| | border: none; |
| | } |
| | |
| | .stDownloadButton:hover { |
| | background-color: #1565c0; |
| | } |
| | |
| | /* Sources list */ |
| | .source-item { |
| | padding: 8px 12px; |
| | margin: 4px 0; |
| | background-color: #f5f5f5; |
| | border-radius: 4px; |
| | font-size: 14px; |
| | } |
| | /* General Report Styling */ |
| | .report-container { |
| | max-width: 1200px; |
| | margin: 0 auto; |
| | padding: 20px; |
| | background: white; |
| | border-radius: 10px; |
| | box-shadow: 0 2px 4px rgba(0,0,0,0.1); |
| | } |
| | |
| | /* Section Styling */ |
| | .report-section { |
| | margin: 30px 0; |
| | padding: 25px; |
| | background: white; |
| | border-radius: 8px; |
| | border-left: 4px solid #2196F3; |
| | box-shadow: 0 2px 10px rgba(0,0,0,0.05); |
| | } |
| | |
| | .executive-summary { |
| | border-left-color: #1976D2; |
| | background: linear-gradient(to right, #f8f9fa, white); |
| | } |
| | |
| | .market-analysis { |
| | border-left-color: #4CAF50; |
| | } |
| | |
| | .future-outlook { |
| | border-left-color: #FF9800; |
| | } |
| | |
| | .sources-section { |
| | border-left-color: #9C27B0; |
| | } |
| | |
| | /* Headings */ |
| | .section-heading { |
| | color: #1a237e; |
| | font-size: 24px; |
| | font-weight: 600; |
| | margin-bottom: 20px; |
| | padding-bottom: 10px; |
| | border-bottom: 2px solid #e0e0e0; |
| | } |
| | |
| | .subsection-heading { |
| | color: #1565C0; |
| | font-size: 20px; |
| | font-weight: 500; |
| | margin: 20px 0 15px 0; |
| | } |
| | |
| | /* Content Styling */ |
| | .content-block { |
| | line-height: 1.6; |
| | color: #333; |
| | margin: 15px 0; |
| | font-size: 16px; |
| | } |
| | |
| | /* Metrics Display */ |
| | .metrics-container { |
| | display: grid; |
| | grid-template-columns: repeat(auto-fit, minmax(250px, 1fr)); |
| | gap: 20px; |
| | margin: 20px 0; |
| | } |
| | |
| | .metric-card { |
| | padding: 20px; |
| | background: white; |
| | border-radius: 8px; |
| | box-shadow: 0 2px 4px rgba(0,0,0,0.1); |
| | transition: transform 0.2s ease; |
| | } |
| | |
| | .metric-card:hover { |
| | transform: translateY(-2px); |
| | } |
| | |
| | /* Source List */ |
| | .source-item { |
| | padding: 10px 15px; |
| | margin: 5px 0; |
| | background: #f8f9fa; |
| | border-radius: 4px; |
| | font-size: 14px; |
| | color: #666; |
| | } |
| | |
| | /* Disclaimer */ |
| | .disclaimer { |
| | padding: 15px; |
| | background: #fff3e0; |
| | border-left: 4px solid #ff9800; |
| | margin: 20px 0; |
| | font-size: 14px; |
| | color: #795548; |
| | } |
| | |
| | /* Download Button */ |
| | .download-button { |
| | background: #1976D2; |
| | color: white; |
| | padding: 12px 24px; |
| | border-radius: 6px; |
| | border: none; |
| | font-weight: 500; |
| | cursor: pointer; |
| | transition: background 0.3s ease; |
| | margin-top: 20px; |
| | text-align: center; |
| | } |
| | |
| | .download-button:hover { |
| | background: #1565C0; |
| | } |
| | /* Progress Bar */ |
| | .progress-container { |
| | width: 100%; |
| | background: #f0f0f0; |
| | border-radius: 8px; |
| | margin: 20px 0; |
| | } |
| | |
| | .progress-bar { |
| | height: 24px; |
| | background: linear-gradient(90deg, #4caf50, #81c784); |
| | border-radius: 8px; |
| | text-align: center; |
| | line-height: 24px; |
| | color: white; |
| | transition: width 0.5s ease; |
| | } |
| | |
| | /* Report Sections */ |
| | .exec-summary { |
| | background: white; |
| | padding: 25px; |
| | border-radius: 15px; |
| | margin-bottom: 30px; |
| | box-shadow: 0 4px 15px rgba(0, 0, 0, 0.1); |
| | } |
| | |
| | .detailed-section { |
| | background: white; |
| | padding: 30px; |
| | border-radius: 15px; |
| | margin: 20px 0; |
| | box-shadow: 0 4px 15px rgba(0, 0, 0, 0.1); |
| | } |
| | </style> |
| | """ |