.gis-transit-public { gap: var(--space-5); min-width: 0; }
.gis-transit-public h1, .gis-transit-public h2, .gis-transit-public h3, .gis-transit-public p { margin: 0; }
.gis-transit-public-head, .gis-transit-main-head, .gis-transit-detail-head { display: flex; align-items: start; justify-content: space-between; gap: var(--space-3); }
.gis-transit-public-head-actions { display: flex; flex-wrap: wrap; justify-content: flex-end; gap: var(--space-2); }
.gis-transit-public-head p { margin-top: var(--space-2); }
.gis-transit-public-layout { display: grid; grid-template-columns: minmax(14rem, 17rem) minmax(0, 1fr); gap: var(--space-4); align-items: start; }
.gis-transit-line-panel, .gis-transit-main { min-width: 0; }
.gis-transit-line-panel { border: 1px solid var(--border); background: var(--card); border-radius: var(--radius-md); padding: var(--space-3); display: grid; gap: var(--space-3); }
.gis-transit-line-panel h2, .gis-transit-main h2 { font-size: var(--fs-h3); }
.gis-transit-line-list { display: grid; max-height: 64vh; overflow-y: auto; }
.gis-transit-line-row { display: grid; gap: var(--space-1); padding: var(--space-3); border-bottom: 1px solid var(--border); border-left: var(--space-1) solid transparent; text-decoration: none; color: var(--foreground); }
.gis-transit-line-row[aria-current="true"] { background: var(--muted); border-left-color: var(--primary); }
.gis-transit-line-row:hover { border-left-color: var(--primary); }
.gis-transit-line-row strong { font-size: var(--fs-sm); }
.gis-transit-line-row small { color: var(--muted-foreground); font-size: var(--fs-xs); overflow-wrap: anywhere; }
.gis-transit-line-row[aria-current="true"] small, .gis-transit-line-row:hover small { color: var(--foreground); }
.gis-transit-main { display: grid; gap: var(--space-3); container-type: inline-size; }
.gis-transit-controls, .gis-transit-period, .gis-transit-view-switch { display: flex; flex-wrap: wrap; align-items: end; gap: var(--space-2); }
.gis-transit-controls { display: grid; grid-template-columns: minmax(18rem, 1fr) minmax(8rem, .5fr) auto; align-items: end; gap: var(--space-3); }
.gis-transit-controls label { display: grid; gap: var(--space-1); font-size: var(--fs-sm); }
.gis-transit-controls label { min-width: 0; }
.gis-transit-controls .input, .gis-transit-controls .select { width: 100%; min-width: 0; }
.gis-transit-date-group { display: grid; grid-template-columns: minmax(0, 1fr) auto; align-items: end; gap: var(--space-2); min-width: 0; }
.gis-transit-date-group .transit-workspace-actions { flex-wrap: nowrap; gap: var(--space-1); }
.gis-transit-corridor { display: grid; grid-template-columns: minmax(0, 1fr) auto minmax(0, 1fr) auto; align-items: end; gap: var(--space-2); font-size: var(--fs-sm); }
.gis-transit-corridor > strong { align-self: center; }
.gis-transit-corridor label { display: grid; gap: var(--space-1); min-width: 0; }
.gis-transit-corridor .select { width: 100%; min-width: 0; }
.gis-transit-corridor > span { grid-column: 1 / -1; color: var(--muted-foreground); font-size: var(--fs-xs); }
.gis-transit-result-bar { display: flex; align-items: center; justify-content: space-between; flex-wrap: wrap; gap: var(--space-2); }
.gis-transit-result-bar > p { flex: 1 1 12rem; }
.gis-transit-period [aria-pressed="true"], .gis-transit-view-switch [aria-pressed="true"] { background: var(--muted); border-color: var(--foreground); color: var(--foreground); }
.gis-transit-status { min-height: 1.5rem; color: var(--muted-foreground); font-size: var(--fs-sm); }
.gis-transit-table { max-height: 34rem; overflow: auto; }
.gis-transit-table table { width: 100%; table-layout: fixed; }
.gis-transit-col-time { width: 5.25rem; }
.gis-transit-col-number { width: 5.75rem; }
.gis-transit-table th, .gis-transit-table td { padding: var(--space-2) var(--space-3); }
.gis-transit-table td:nth-child(3) { overflow: hidden; text-overflow: ellipsis; }
.gis-transit-table thead th { position: sticky; top: 0; z-index: 1; background: var(--card); }
.gis-transit-table td { white-space: nowrap; font-variant-numeric: tabular-nums; }
.gis-transit-trip-button { border: 0; background: transparent; color: var(--transit-link); font: inherit; font-weight: 600; cursor: pointer; font-variant-numeric: tabular-nums; }
.gis-transit-trip-button:focus-visible, .gis-transit-line-row:focus-visible { outline: 2px solid var(--ring); outline-offset: 2px; }
.gis-transit-empty { padding: calc(var(--space-6) + var(--space-1)) var(--space-4); color: var(--muted-foreground); }
.gis-transit-diagram-toolbar { flex-wrap: wrap; gap: var(--space-2); }
.gis-transit-diagram-actions { display: flex; align-items: center; gap: var(--space-1); margin-inline-start: auto; }
.gis-transit-diagram-actions .btn[aria-label] { min-width: 2rem; }
.gis-transit-diagram-toolbar h3 { font-size: var(--fs-body); }
.gis-transit-diagram-toolbar output { white-space: nowrap; font-variant-numeric: tabular-nums; }
.gis-transit-diagram-hint { padding: var(--space-2) var(--space-3); }
.gis-transit-diagram { overflow: hidden; max-height: 36rem; background: var(--card); touch-action: none; cursor: grab; user-select: none; }
.gis-transit-diagram:active { cursor: grabbing; }
.gis-transit-diagram:focus-visible { outline: 2px solid var(--ring); outline-offset: -2px; }
.gis-transit-plot { display: block; max-width: none; font-family: inherit; font-size: var(--fs-xs); fill: var(--foreground); }
.gis-transit-plot-bg { fill: var(--card); }
.gis-transit-grid { stroke: var(--border); stroke-width: 1; }
.gis-transit-train { fill: none; stroke: var(--primary); stroke-width: 1.7; }
.gis-transit-train.is-reverse { stroke: var(--foreground); stroke-dasharray: 6 4; }
.gis-transit-train-hit { fill: none; stroke: transparent; stroke-width: 12; cursor: pointer; }
.gis-transit-plot [role="button"]:focus-visible .gis-transit-train, .gis-transit-plot [role="button"].is-selected .gis-transit-train { stroke-width: 3; }
.gis-transit-plot [role="button"]:focus { outline: none; }
.gis-transit-trip-detail { border-top: 1px solid var(--border); padding-top: var(--space-3); display: grid; gap: var(--space-3); }
.gis-transit-trip-detail[hidden] { display: none; }
.gis-transit-trip-detail .table-wrapper { max-height: 16rem; overflow: auto; }
@media (max-width: 900px) { .gis-transit-public-layout { grid-template-columns: minmax(0, 1fr); } .gis-transit-line-list { max-height: 14rem; } }
@media (max-width: 1024px) { body.gis-body.gis-transit-public-page .gis-content { padding-top: calc(var(--header-height) + var(--space-4)); } }
@container (max-width: 52rem) { .gis-transit-controls { grid-template-columns: minmax(0, 1fr) auto; } .gis-transit-date-group { grid-column: 1 / -1; } }
@container (max-width: 34rem) { .gis-transit-corridor { grid-template-columns: minmax(0, 1fr) auto minmax(0, 1fr); } .gis-transit-corridor .checkbox-label { grid-column: 1 / -1; } }
@media (max-width: 600px) { .gis-transit-main-head, .gis-transit-public-head { flex-wrap: wrap; } .gis-transit-col-time { width: 4rem; } .gis-transit-col-number { width: 3.25rem; } .gis-transit-table th, .gis-transit-table td { padding-inline: var(--space-1); font-size: var(--fs-xs); } .gis-transit-table td:nth-child(3) { white-space:normal; word-break:keep-all; overflow-wrap:anywhere; } }
@media (max-width: 600px) { .gis-transit-diagram-actions { margin-inline-start: 0; flex-wrap: wrap; } }
.gis-transit-access { gap: var(--space-4); }
.gis-transit-access h1, .gis-transit-access h2, .gis-transit-access p { margin: 0; }
.gis-transit-access-body { display: grid; gap: var(--space-4); padding: var(--space-4); }
.gis-transit-access-form { display: flex; flex-wrap: wrap; align-items: end; gap: var(--space-3); }
.gis-transit-access-form > label { display: grid; gap: var(--space-1); min-width: 12rem; flex: 1 1 12rem; font-size: var(--fs-sm); }
.gis-transit-access-user-results { display: flex; flex-wrap: wrap; gap: var(--space-1); width: 100%; }
.gis-transit-access-form > p { width: 100%; }
.gis-transit-access .table-wrapper { max-height: 24rem; overflow: auto; }
.gis-transit-access thead th { position: sticky; top: 0; background: var(--card); }
.gis-transit-access .datatable-toolbar > label { display: flex; align-items: center; gap: var(--space-2); font-size: var(--fs-sm); }
.gis-transit-region-search { display: grid; gap: var(--space-1); max-width: 20rem; font-size: var(--fs-sm); }
.gis-transit-region-lines { display: grid; grid-template-columns: repeat(auto-fill, minmax(14rem, 1fr)); gap: var(--space-2); max-height: 19rem; overflow-y: auto; border-block: 1px solid var(--border); padding-block: var(--space-2); }
.gis-transit-region-lines .checkbox-label { display: flex; align-items: center; gap: var(--space-2); min-width: 0; }
.gis-transit-region-lines .checkbox-label[hidden] { display: none; }
.gis-transit-region-actions { display: flex; align-items: center; justify-content: space-between; gap: var(--space-2); }
.gis-transit-legacy { display: grid; gap: var(--space-3); }
.gis-transit-legacy > summary { cursor: pointer; font-weight: 600; padding: var(--space-3) 0; }
.gis-transit-legacy > section { margin-block: var(--space-3); }
