feat: add Radiation Watch with seeded anomaly intelligence, map layers, and country exposure (#1735)

This commit is contained in:
Elie Habib
2026-03-17 09:18:06 +04:00
committed by GitHub
parent ffae59f50e
commit 3897f8263d
44 changed files with 2379 additions and 14 deletions

View File

@@ -8554,6 +8554,186 @@ a.prediction-link:hover {
text-align: right;
}
.radiation-panel-content {
display: flex;
flex-direction: column;
gap: 8px;
}
.radiation-summary {
display: grid;
grid-template-columns: repeat(auto-fit, minmax(92px, 1fr));
gap: 8px;
padding: 0 8px;
}
.radiation-summary-card {
display: flex;
flex-direction: column;
gap: 2px;
padding: 8px;
border: 1px solid var(--border);
background: var(--overlay-subtle);
}
.radiation-summary-card-spike {
border-color: rgba(239, 68, 68, 0.35);
background: rgba(239, 68, 68, 0.08);
}
.radiation-summary-card-confirmed {
border-color: rgba(34, 197, 94, 0.35);
background: rgba(34, 197, 94, 0.08);
}
.radiation-summary-card-low-confidence {
border-color: rgba(245, 158, 11, 0.35);
background: rgba(245, 158, 11, 0.08);
}
.radiation-summary-card-conflict {
border-color: rgba(125, 211, 252, 0.35);
background: rgba(125, 211, 252, 0.08);
}
.radiation-summary-label {
font-size: 9px;
text-transform: uppercase;
letter-spacing: 0.08em;
color: var(--text-dim);
}
.radiation-summary-value {
font-size: 18px;
font-weight: 600;
color: var(--accent);
}
.radiation-table {
width: 100%;
border-collapse: collapse;
font-size: 11px;
}
.radiation-table th,
.radiation-table td {
padding: 6px 8px;
border-bottom: 1px solid var(--border);
text-align: left;
}
.radiation-row {
cursor: pointer;
}
.radiation-row:hover {
background: rgba(255, 255, 255, 0.03);
}
.radiation-reading {
color: var(--accent);
font-weight: 600;
white-space: nowrap;
}
.radiation-location-name {
font-weight: 600;
color: var(--text-secondary);
}
.radiation-location-meta {
margin-top: 2px;
font-size: 10px;
color: var(--text-dim);
}
.radiation-location-flags {
display: flex;
flex-wrap: wrap;
gap: 4px;
margin-top: 4px;
}
.radiation-delta {
white-space: nowrap;
color: var(--text-secondary);
}
.radiation-freshness,
.radiation-severity,
.radiation-badge {
display: inline-flex;
padding: 2px 6px;
border: 1px solid var(--border);
border-radius: 999px;
font-size: 10px;
}
.radiation-confidence-high {
color: var(--semantic-normal);
border-color: rgba(34, 197, 94, 0.35);
background: rgba(34, 197, 94, 0.08);
}
.radiation-confidence-medium {
color: var(--semantic-elevated);
border-color: rgba(245, 158, 11, 0.35);
background: rgba(245, 158, 11, 0.08);
}
.radiation-confidence-low {
color: #7dd3fc;
border-color: rgba(125, 211, 252, 0.35);
background: rgba(125, 211, 252, 0.08);
}
.radiation-flag-confirmed {
color: var(--semantic-normal);
}
.radiation-flag-conflict {
color: #7dd3fc;
}
.radiation-flag-converted {
color: var(--text-dim);
}
.radiation-severity-normal {
color: var(--text-dim);
}
.radiation-severity-elevated {
color: var(--semantic-elevated);
border-color: rgba(234, 179, 8, 0.35);
background: rgba(234, 179, 8, 0.08);
}
.radiation-severity-spike {
color: var(--semantic-critical);
border-color: rgba(239, 68, 68, 0.35);
background: rgba(239, 68, 68, 0.08);
}
.radiation-freshness-live {
color: var(--semantic-normal);
}
.radiation-freshness-recent {
color: var(--semantic-elevated);
}
.radiation-freshness-historical {
color: var(--text-dim);
}
.radiation-footer {
padding: 0 8px 8px 8px;
color: var(--text-dim);
font-size: 10px;
text-align: right;
}
.economic-source {
font-size: 9px;
color: var(--text-dim);