.gd-main-grid { grid-template-columns: minmax(0, 1.45fr) minmax(320px, .9fr) minmax(270px, .75fr); }
.gd-card { min-height: 445px; }
.gd-map-loading { height: 350px; padding: 4px; overflow: hidden; background: #fbfcfe; }
.gd-map-loading svg { display: block; width: 100%; height: 100%; max-height: 350px; }
.gd-territories header { align-items: center; }
.gd-territory-counts { grid-template-columns: 1fr 1fr; margin-top: 12px; }
.gd-territory-counts div { min-height: 25px; padding: 3px 6px; border-radius: 7px; background: #f8fafc; }
.gd-evolution { padding: 18px 18px 15px; }
.gd-chart { height: 315px; margin-top: 14px; overflow: visible; }
.gd-chart svg { overflow: visible; }
.gd-chart path.candidate, .gd-chart path.rival { fill: none; vector-effect: non-scaling-stroke; stroke-linecap: round; stroke-linejoin: round; }
.gd-chart path.candidate { stroke: #2563eb; stroke-width: 3.5; }
.gd-chart path.rival { stroke: #ef4444; stroke-width: 3; stroke-dasharray: none; }
.gd-chart .value-label { fill: #334155; font-size: 10px; font-weight: 800; }
.gd-chart .date-label { fill: #64748b; font-size: 9px; font-weight: 650; }
.gd-chart .event-mark circle { fill: #94a3b8; }
.gd-chart-point circle { stroke: #fff; stroke-width: 2.5; transition: r .15s ease; }
.gd-chart-point:hover circle { r: 7px; }
#gdChartLegend { flex-wrap: wrap; align-items: center; }
#gdChartLegend span { padding: 5px 8px; border: 1px solid #e5eaf0; border-radius: 999px; background: #fff; }
#gdChartLegend small { width: 100%; margin-top: 5px; color: #94a3b8; font-size: 8px; }
.gd-alert-item > i { font-size: 13px; font-weight: 900; }
.gd-alert-item[data-alert^="derived-risk"] > i, .gd-alert-item[data-alert^="derived-crisis"] > i { color: #dc2626; background: #fef2f2; }
.gd-alert-item[data-alert^="derived-poll"] > i { color: #2563eb; background: #eff6ff; }
.gd-alert-item[data-alert^="derived-data"] > i { color: #d97706; background: #fffbeb; }
.gd-drawer .gd-detail-grid { grid-template-columns: 1fr 1fr; }
.gd-drawer .gd-detail-grid div { min-height: 67px; }
.gd-drawer .gd-detail-grid strong { display: block; margin-top: 5px; font-size: 13px; line-height: 1.3; }
@media (max-width: 1220px) { .gd-main-grid { grid-template-columns: 1.2fr 1fr; } .gd-alerts { grid-column: 1 / -1; min-height: auto; } }
@media (max-width: 760px) { .gd-main-grid { grid-template-columns: 1fr; } .gd-card { min-height: auto; } .gd-map-loading { height: 390px; } .gd-chart { height: 270px; overflow-x: auto; } .gd-chart svg { min-width: 620px; } }
