/* Public shelter registry dashboard. Data is rendered from data/shelter_registry_manifest.json. */

.shelter-hero {
  padding: calc(var(--nav-height) + 5rem) 0 4rem;
  background:
    radial-gradient(circle at 20% 15%, rgba(56, 189, 248, 0.16), transparent 36rem),
    linear-gradient(145deg, var(--bg-primary), var(--bg-secondary));
}

.shelter-hero h1 {
  max-width: 820px;
  margin: var(--space-md) 0;
  font-size: clamp(2.2rem, 5vw, 4.4rem);
  line-height: 1.04;
}

.shelter-hero p {
  max-width: 760px;
  color: var(--text-secondary);
  font-size: 1.08rem;
  line-height: 1.75;
}

.shelter-live-note,
.shelter-notice {
  display: flex;
  gap: var(--space-sm);
  align-items: flex-start;
  max-width: 860px;
  margin-top: var(--space-xl);
  padding: var(--space-md) var(--space-lg);
  border: 1px solid rgba(245, 158, 11, 0.35);
  border-radius: var(--radius-md);
  background: rgba(245, 158, 11, 0.09);
  color: var(--text-secondary);
  line-height: 1.6;
}

.shelter-live-note strong { color: var(--amber); }

.shelter-section { padding: var(--space-4xl) 0; }

.shelter-stats-grid {
  display: grid;
  grid-template-columns: repeat(5, minmax(0, 1fr));
  gap: var(--space-md);
  margin: var(--space-2xl) 0 var(--space-xl);
}

.shelter-stat-card,
.shelter-source-card {
  min-width: 0;
  padding: var(--space-lg);
  border: 1px solid var(--border-glass);
  border-radius: var(--radius-lg);
  background: var(--bg-card);
  box-shadow: var(--shadow-sm);
}

.shelter-stat-value {
  display: block;
  margin-bottom: var(--space-xs);
  color: var(--cyan);
  font-family: var(--font-mono);
  font-size: clamp(1.55rem, 3vw, 2.2rem);
  font-weight: 700;
}

.shelter-stat-label,
.shelter-source-card p {
  color: var(--text-secondary);
  font-size: 0.88rem;
  line-height: 1.45;
}

.shelter-source-grid {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: var(--space-md);
  margin: var(--space-xl) 0 var(--space-2xl);
}

.shelter-source-card h3 { margin-bottom: var(--space-xs); font-size: 1rem; }
.shelter-source-card strong { color: var(--cyan); font-family: var(--font-mono); }
.shelter-source-card--osm { border-color: rgba(245, 158, 11, 0.35); }
.shelter-source-card--osm strong { color: var(--amber); }

.shelter-toolbar {
  display: flex;
  flex-wrap: wrap;
  gap: var(--space-md);
  align-items: center;
  justify-content: space-between;
  margin-bottom: var(--space-md);
}

.shelter-filter {
  min-width: min(100%, 320px);
  padding: 0.75rem 0.9rem;
  border: 1px solid var(--border-glass);
  border-radius: var(--radius-md);
  background: var(--bg-card);
  color: var(--text-primary);
  font: inherit;
}

.shelter-filter:focus { outline: 2px solid var(--cyan); outline-offset: 2px; }
.shelter-result-count { color: var(--text-secondary); font-size: 0.9rem; }

.shelter-table-wrap {
  overflow-x: auto;
  border: 1px solid var(--border-glass);
  border-radius: var(--radius-lg);
  background: rgba(18, 27, 40, 0.56);
}

.shelter-table { width: 100%; min-width: 760px; border-collapse: collapse; }
.shelter-table th,
.shelter-table td { padding: 0.95rem 1rem; border-bottom: 1px solid var(--border-glass); text-align: left; }
.shelter-table th { color: var(--text-muted); font-size: 0.75rem; letter-spacing: 0.06em; text-transform: uppercase; }
.shelter-table td { color: var(--text-secondary); font-size: 0.92rem; }
.shelter-table tr:last-child td { border-bottom: 0; }
.shelter-table td:first-child { color: var(--text-primary); font-weight: 600; }
.shelter-table .numeric { color: var(--cyan); font-family: var(--font-mono); text-align: right; }
.shelter-status { display: inline-flex; padding: 0.3rem 0.55rem; border-radius: var(--radius-full); font-size: 0.75rem; line-height: 1.2; }
.shelter-status--official { background: var(--green-dim); color: var(--cyan-light); }
.shelter-status--osm { background: var(--amber-dim); color: #fbbf24; }

.shelter-method-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: var(--space-lg);
  margin-top: var(--space-2xl);
}

.shelter-method-card { height: 100%; }
.shelter-method-card h3 { margin-bottom: var(--space-sm); }
.shelter-method-card p,
.shelter-method-card li { color: var(--text-secondary); line-height: 1.65; }
.shelter-method-card ul { padding-left: 1.25rem; }
.shelter-links { display: flex; flex-wrap: wrap; gap: var(--space-md); margin-top: var(--space-xl); }
.shelter-loading { color: var(--text-secondary); }
.shelter-error { color: #fca5a5; }

@media (max-width: 1050px) {
  .shelter-stats-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .shelter-source-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

@media (max-width: 640px) {
  .shelter-hero { padding-top: calc(var(--nav-height) + 3rem); }
  .shelter-section { padding: var(--space-3xl) 0; }
  .shelter-stats-grid,
  .shelter-source-grid,
  .shelter-method-grid { grid-template-columns: 1fr; }
  .shelter-toolbar { align-items: stretch; }
  .shelter-filter { width: 100%; }
}
