/* Public city pages and guides only; app styles stay intact. */
.city-times { width: 100%; border-collapse: separate; border-spacing: 0; border: 1px solid var(--line); border-radius: 1rem; background: var(--surface); }
.city-times caption { text-align: start; color: var(--muted); padding-block: 0.5rem 1rem; }
.city-times th, .city-times td { padding: 0.85rem; text-align: start; vertical-align: top; }
.city-times tbody th { font-weight: 600; }
.city-times tbody th, .city-times tbody td { border-top: 1px solid var(--line); }
.city-times small { display: block; margin-top: 0.25rem; color: var(--muted); font-weight: 400; }
.city-times td { white-space: nowrap; font-variant-numeric: tabular-nums; font-weight: 700; }
.city-times td:has(time) { direction: ltr; }
.city-times thead th:last-child { white-space: nowrap; }
.city-times th { overflow-wrap: anywhere; }
.city-times td:not(:has(time)) { white-space: normal; }
.public-guide .card { padding: 1rem; border: 1px solid var(--line); border-radius: 1rem; background: var(--surface); }
.public-guide .topic + .topic { border-top: 1px solid var(--line); margin-top: 0.75rem; padding-top: 0.75rem; }
.public-guide summary { cursor: pointer; font-weight: 600; min-height: 2.75rem; }
.public-guide summary small { display: block; color: var(--muted); font-weight: 400; }
.public-guide .topic p { margin-block: 0.75rem; }
.public-guide .sources { font-size: 0.9rem; overflow-wrap: anywhere; }
@media (max-width: 30rem) {
  .city-times th, .city-times td { padding: 0.65rem; }
  .city-times small { font-size: 0.8rem; }
}
