| |
| |
| |
| |
|
|
| |
| :root { |
| --bg-primary: #0a0a0f; |
| --bg-secondary: #111118; |
| --bg-card: rgba(20, 20, 30, 0.85); |
| --bg-glass: rgba(255, 255, 255, 0.05); |
| --border-glass: rgba(255, 255, 255, 0.1); |
| --text-primary: #e8e8f0; |
| --text-secondary: #a0a0b0; |
| --text-muted: #666680; |
| --accent-fire: #ff6b35; |
| --accent-fire-glow: rgba(255, 107, 53, 0.3); |
| --accent-blue: #4fc3f7; |
| --accent-green: #00e676; |
| --accent-yellow: #ffeb3b; |
| --accent-red: #f44336; |
| --accent-purple: #b388ff; |
| --gradient-fire: linear-gradient(135deg, #ff6b35 0%, #ff8a60 100%); |
| --gradient-danger: linear-gradient(135deg, #f44336 0%, #ff5252 100%); |
| --gradient-safe: linear-gradient(135deg, #00c853 0%, #00e676 100%); |
| --radius: 12px; |
| --shadow: 0 8px 32px rgba(0, 0, 0, 0.4); |
| --transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1); |
| } |
|
|
| |
| .gradio-container { |
| background: var(--bg-primary) !important; |
| font-family: 'Inter', 'Segoe UI', -apple-system, sans-serif !important; |
| max-width: 100% !important; |
| } |
|
|
| .dark { |
| --background-fill-primary: var(--bg-primary) !important; |
| } |
|
|
| |
| .dashboard-header { |
| text-align: center; |
| padding: 24px 20px; |
| background: linear-gradient(135deg, rgba(255, 107, 53, 0.1) 0%, rgba(79, 195, 247, 0.1) 100%); |
| border-bottom: 1px solid var(--border-glass); |
| border-radius: var(--radius); |
| margin-bottom: 16px; |
| } |
|
|
| .dashboard-header h1 { |
| font-size: 28px; |
| font-weight: 700; |
| background: linear-gradient(135deg, var(--accent-fire), var(--accent-blue)); |
| -webkit-background-clip: text; |
| -webkit-text-fill-color: transparent; |
| margin: 0; |
| letter-spacing: -0.5px; |
| } |
|
|
| .dashboard-header p { |
| color: var(--text-secondary); |
| font-size: 14px; |
| margin-top: 6px; |
| } |
|
|
| |
| .risk-badge { |
| display: inline-flex; |
| align-items: center; |
| gap: 8px; |
| padding: 10px 20px; |
| border-radius: 50px; |
| font-weight: 700; |
| font-size: 16px; |
| letter-spacing: 0.5px; |
| text-transform: uppercase; |
| box-shadow: var(--shadow); |
| transition: var(--transition); |
| } |
|
|
| .risk-low { |
| background: var(--gradient-safe); |
| color: #003300; |
| } |
|
|
| .risk-medium { |
| background: linear-gradient(135deg, #ffd600, #ffeb3b); |
| color: #333300; |
| } |
|
|
| .risk-high { |
| background: var(--gradient-fire); |
| color: white; |
| } |
|
|
| .risk-extreme { |
| background: var(--gradient-danger); |
| color: white; |
| animation: pulse-danger 2s ease-in-out infinite; |
| } |
|
|
| @keyframes pulse-danger { |
| 0%, 100% { box-shadow: 0 0 0 0 rgba(244, 67, 54, 0.5); } |
| 50% { box-shadow: 0 0 20px 4px rgba(244, 67, 54, 0.3); } |
| } |
|
|
| |
| .map-container { |
| border-radius: var(--radius); |
| overflow: hidden; |
| border: 1px solid var(--border-glass); |
| box-shadow: var(--shadow); |
| min-height: 500px; |
| } |
|
|
| .map-container iframe { |
| border: none !important; |
| border-radius: var(--radius); |
| } |
|
|
| |
| .panel-card { |
| background: var(--bg-card); |
| backdrop-filter: blur(20px); |
| border: 1px solid var(--border-glass); |
| border-radius: var(--radius); |
| padding: 16px; |
| transition: var(--transition); |
| } |
|
|
| .panel-card:hover { |
| border-color: rgba(255, 255, 255, 0.15); |
| box-shadow: 0 12px 40px rgba(0, 0, 0, 0.5); |
| } |
|
|
| |
| .status-bar { |
| display: flex; |
| align-items: center; |
| justify-content: center; |
| gap: 24px; |
| padding: 12px 20px; |
| background: var(--bg-glass); |
| border: 1px solid var(--border-glass); |
| border-radius: var(--radius); |
| font-size: 13px; |
| color: var(--text-secondary); |
| } |
|
|
| .status-item { |
| display: flex; |
| align-items: center; |
| gap: 6px; |
| } |
|
|
| .status-dot { |
| width: 8px; |
| height: 8px; |
| border-radius: 50%; |
| background: var(--accent-green); |
| animation: blink 2s ease-in-out infinite; |
| } |
|
|
| @keyframes blink { |
| 0%, 100% { opacity: 1; } |
| 50% { opacity: 0.4; } |
| } |
|
|
| |
| .analyze-btn { |
| background: var(--gradient-fire) !important; |
| border: none !important; |
| color: white !important; |
| font-weight: 600 !important; |
| font-size: 15px !important; |
| padding: 12px 24px !important; |
| border-radius: 8px !important; |
| cursor: pointer !important; |
| transition: var(--transition) !important; |
| text-transform: uppercase !important; |
| letter-spacing: 1px !important; |
| } |
|
|
| .analyze-btn:hover { |
| transform: translateY(-2px) !important; |
| box-shadow: 0 8px 24px var(--accent-fire-glow) !important; |
| } |
|
|
| |
| .loading-overlay { |
| display: flex; |
| align-items: center; |
| justify-content: center; |
| padding: 40px; |
| } |
|
|
| .loading-spinner { |
| width: 40px; |
| height: 40px; |
| border: 3px solid var(--border-glass); |
| border-top: 3px solid var(--accent-fire); |
| border-radius: 50%; |
| animation: spin 1s linear infinite; |
| } |
|
|
| @keyframes spin { |
| to { transform: rotate(360deg); } |
| } |
|
|
| |
| .output-tabs .tab-nav button { |
| color: var(--text-secondary) !important; |
| border-bottom: 2px solid transparent !important; |
| transition: var(--transition) !important; |
| } |
|
|
| .output-tabs .tab-nav button.selected { |
| color: var(--accent-fire) !important; |
| border-bottom-color: var(--accent-fire) !important; |
| } |
|
|
| |
| .data-table { |
| width: 100%; |
| border-collapse: collapse; |
| font-size: 13px; |
| } |
|
|
| .data-table th { |
| background: var(--bg-glass); |
| color: var(--text-primary); |
| padding: 10px 12px; |
| text-align: left; |
| font-weight: 600; |
| border-bottom: 1px solid var(--border-glass); |
| } |
|
|
| .data-table td { |
| padding: 8px 12px; |
| border-bottom: 1px solid rgba(255, 255, 255, 0.03); |
| color: var(--text-secondary); |
| } |
|
|
| .data-table tr:hover td { |
| background: rgba(255, 255, 255, 0.02); |
| } |
|
|
| |
| @media (max-width: 768px) { |
| .dashboard-header h1 { |
| font-size: 22px; |
| } |
|
|
| .status-bar { |
| flex-direction: column; |
| gap: 8px; |
| } |
| } |
|
|