.action-link {display:inline-flex;align-items:center;justify-content:center;text-decoration:none; }
.spatial-filter-grid {padding:.8rem clamp(1rem, 3vw, 3rem) .65rem;display:grid;grid-template-columns:repeat(6, minmax(135px, 1fr));gap:.55rem;align-items:end; }
.module-two-main {max-width:1600px; }
.spatial-notice {display:grid;grid-template-columns:auto 1fr;gap:.8rem;align-items:start;margin:.35rem 0 1rem;padding:.85rem 1rem;border:1px solid var(--theme-line);border-radius:14px;background:var(--theme-subtle);color:var(--theme-text); }
.spatial-notice p {margin:.2rem 0 0;font-size:.84rem; }
.notice-icon {width:30px;height:30px;display:grid;place-items:center;border-radius:9px;background:var(--theme-primary);color:var(--theme-inverse);font-weight:900; }
.workspace-grid {display:grid;grid-template-columns:minmax(0, 2.15fr) minmax(320px, .72fr);gap:1rem;align-items:start; }
.workspace-grid.nonspatial {grid-template-columns:minmax(0, 1fr); }
.workspace-grid.nonspatial .distribution-panel {grid-column:1 / -1; }
.workspace-grid.nonspatial .map-fallback {margin-top:0; }
.workspace-grid .panel {margin-top:0; }
.selection-panel {min-height:420px; }
.module-two-map {margin-top:.85rem; }
.module-two-map .pd-map__canvas-shell {min-height:clamp(440px, 56vw, 650px); }
.map-reconciliation {margin:.65rem 0 0;padding:.65rem .75rem;border-radius:10px;background:var(--theme-subtle);color:var(--theme-text);font-size:.78rem;font-weight:760; }
.map-reconciliation.is-error {background:var(--theme-danger-soft);color:var(--theme-danger); }
.map-fallback {margin-top:1rem;border-top:1px solid var(--line);padding-top:.8rem; }
.map-fallback summary {cursor:pointer;color:var(--teal);font-weight:820; }
.map-fallback[open] summary {margin-bottom:.8rem; }
.map-insight-panel {position:sticky;top:5.5rem;max-height:calc(100vh - 7rem);overflow:auto; }
.map-insight-kpis {display:grid;grid-template-columns:1fr 1fr;gap:.55rem;margin:.85rem 0 1rem; }
.map-insight-kpis div {min-width:0;padding:.7rem;border-radius:10px;background:var(--theme-subtle); }
.map-insight-kpis small, .map-insight-kpis strong {display:block; }
.map-insight-kpis small {color:var(--muted);font-size:.7rem; }
.map-insight-kpis strong {margin-top:.25rem;color:var(--navy);font-size:1rem;overflow-wrap:anywhere; }
.selection-panel-inline {min-height:0; }
.table-tools {display:flex;flex-wrap:wrap;justify-content:flex-end;gap:.65rem; }
.table-tools .compact-label {min-width:210px; }
.legend {display:flex;flex-wrap:wrap;gap:.45rem .8rem;margin-bottom:.8rem; }
.legend-item {display:inline-flex;align-items:center;gap:.35rem;color:var(--muted);font-size:.75rem; }
.legend-swatch {width:12px;height:12px;border-radius:4px; }
.district-matrix {display:grid;grid-template-columns:repeat(5, minmax(0, 1fr));gap:.6rem;min-width:0; }
.district-tile {min-height:112px;padding:.75rem;border:1px solid color-mix(in srgb,var(--theme-line) 12.0%,transparent);border-radius:13px;background:var(--tile, var(--theme-panel));color:var(--tile-ink, var(--ink));cursor:pointer;text-align:left;box-shadow:0 5px 16px color-mix(in srgb,var(--theme-shadow-colour) 5.0%,transparent); }
.district-tile:hover, .district-tile:focus-visible {transform:translateY(-2px);box-shadow:0 10px 24px color-mix(in srgb,var(--theme-shadow-colour) 13.0%,transparent); }
.district-tile strong, .district-tile small {display:block; }
.district-tile strong {font-size:.9rem;overflow-wrap:anywhere; }
.district-tile .tile-value {margin-top:.5rem;font-size:1.25rem;font-weight:880; }
.district-tile small {margin-top:.15rem;opacity:.82; }
.spatial-kpi-grid {display:grid;grid-template-columns:repeat(6, minmax(0, 1fr));gap:.7rem; }
.spatial-kpi {min-height:118px;padding:.9rem;border:1px solid var(--line);border-radius:14px;background:var(--theme-panel);box-shadow:0 7px 20px color-mix(in srgb,var(--theme-shadow-colour) 4.0%,transparent); }
.spatial-kpi small {display:block;color:var(--muted);font-weight:720; }
.spatial-kpi strong {display:block;margin-top:.55rem;font-size:1.5rem;line-height:1.05; }
.spatial-kpi span {color:var(--muted);font-size:.74rem; }
.analysis-grid {display:grid;grid-template-columns:1fr 1fr;gap:1rem; }
.chart-card {min-width:0;padding:1rem;border:1px solid var(--line);border-radius:14px;background:var(--theme-subtle); }
.range-chart {display:grid;gap:.45rem;margin-top:.8rem; }
.range-row {display:grid;grid-template-columns:130px 1fr 42px;gap:.55rem;align-items:center;font-size:.75rem; }
.range-name {overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-weight:750; }
.range-track {position:relative;height:18px; }
.range-line {position:absolute;top:8px;height:3px;border-radius:99px;background:var(--theme-primary); }
.range-dot {position:absolute;top:3px;width:12px;height:12px;border:3px solid var(--theme-line);border-radius:50%;background:var(--teal);box-shadow:0 0 0 1px var(--teal); }
.range-value {text-align:right;font-weight:820; }
#scatterChart {width:100%;min-height:340px; }
.heatmap-wrap {margin-top:1rem; }
.heatmap {display:grid;grid-template-columns:minmax(130px, 1.2fr) repeat(6, minmax(72px, 1fr));gap:3px;min-width:760px; }
.heatmap-cell {min-height:42px;display:grid;place-items:center;padding:.35rem;border-radius:5px;font-size:.72rem;text-align:center; }
.heatmap-label {place-items:center start;background:var(--theme-subtle);font-weight:780; }
.heatmap-head {background:var(--navy);color:var(--theme-inverse);font-weight:760; }
.heatmap-wrap {overflow-x:auto; }
.cluster-grid {display:grid;grid-template-columns:repeat(5, minmax(0, 1fr));gap:.65rem;margin-top:1rem; }
.cluster-card {padding:.8rem;border-left:4px solid var(--cluster-color, var(--teal));border-radius:10px;background:var(--theme-subtle); }
.cluster-card strong {display:block; }
.cluster-card p {margin:.4rem 0 0;color:var(--muted);font-size:.76rem; }
.quadrant-summary {display:grid;grid-template-columns:repeat(4, 1fr);gap:.7rem;margin-bottom:.7rem; }
.quadrant-card {min-height:125px;padding:.9rem;border:1px solid var(--line);border-radius:14px;background:var(--theme-subtle); }
.quadrant-card strong {display:block;font-size:1.5rem; }
.quadrant-card span {display:block;color:var(--muted);font-size:.76rem; }
.selection-stack {display:grid;gap:.65rem; }
.selection-stat {padding:.65rem .75rem;border-radius:10px;background:var(--theme-subtle); }
.selection-stat small, .selection-stat strong {display:block; }
.selection-stat small {color:var(--muted); }
.selection-list {margin:.25rem 0 0;padding-left:1.1rem;color:var(--muted);font-size:.8rem; }
.category-chip {display:inline-flex;padding:.2rem .5rem;border-radius:999px;background:var(--theme-subtle);color:var(--theme-text);font-size:.7rem;font-weight:820; }
@media (max-width: 1250px) {
  .spatial-filter-grid {grid-template-columns:repeat(4, 1fr); }
  .district-matrix {grid-template-columns:repeat(4, 1fr); }
  .spatial-kpi-grid {grid-template-columns:repeat(3, 1fr); }
  .cluster-grid {grid-template-columns:repeat(3, 1fr); }
}
@media (max-width: 900px) {
  .workspace-grid, .analysis-grid {grid-template-columns:1fr; }
  .map-insight-panel {position:static;max-height:none; }
  .selection-panel {min-height:0; }
  .district-matrix {grid-template-columns:repeat(3, 1fr); }
  .quadrant-summary {grid-template-columns:repeat(2, 1fr); }
}
@media (max-width: 640px) {
  .spatial-filter-grid {grid-template-columns:repeat(2, 1fr); }
  .district-matrix {grid-template-columns:repeat(2, 1fr); }
  .spatial-kpi-grid {grid-template-columns:repeat(2, 1fr); }
  .cluster-grid {grid-template-columns:1fr; }
  .range-row {grid-template-columns:95px 1fr 38px; }
  .map-insight-kpis {grid-template-columns:1fr; }
  .table-tools {justify-content:stretch; }
  .table-tools .compact-label {min-width:100%; }
}
@media (max-width: 420px) {
  .spatial-filter-grid, .district-matrix, .spatial-kpi-grid, .quadrant-summary {grid-template-columns:1fr; }
}

.district-tile small {margin-top:.38rem;padding:.3rem .42rem;border:1px solid color-mix(in srgb,var(--theme-line) 12.0%,transparent);border-radius:7px;background:color-mix(in srgb,var(--theme-panel) 88.0%,transparent);color:var(--theme-muted);font-weight:800;line-height:1.35;opacity:1; }
