aboutsummaryrefslogtreecommitdiff
path: root/src/frontend/app/components/TimetableTable.css
diff options
context:
space:
mode:
Diffstat (limited to 'src/frontend/app/components/TimetableTable.css')
-rw-r--r--src/frontend/app/components/TimetableTable.css187
1 files changed, 187 insertions, 0 deletions
diff --git a/src/frontend/app/components/TimetableTable.css b/src/frontend/app/components/TimetableTable.css
new file mode 100644
index 0000000..52bd9ae
--- /dev/null
+++ b/src/frontend/app/components/TimetableTable.css
@@ -0,0 +1,187 @@
+.timetable-container {
+ margin-top: 2rem;
+}
+
+.timetable-caption {
+ font-weight: bold;
+ margin-bottom: 1rem;
+ text-align: left;
+ font-size: 1.1rem;
+ color: var(--text-primary, #333);
+}
+
+.timetable-cards {
+ display: flex;
+ flex-direction: column;
+ gap: 1rem;
+ margin-bottom: 1rem;
+}
+
+.timetable-card {
+ background: var(--surface-future, #fff);
+ border: 1px solid var(--card-border, #e0e0e0);
+ border-radius: 10px;
+ padding: 1.25rem;
+ transition: background 0.2s ease, border 0.2s ease;
+}
+
+.timetable-card.timetable-past {
+ background: var(--surface-past, #f3f3f3);
+ color: var(--text-secondary, #aaa);
+ border: 1px solid #e0e0e0;
+}
+
+.card-header {
+ display: flex;
+ justify-content: space-between;
+ align-items: center;
+ margin-bottom: 1rem;
+}
+
+.line-info {
+ flex-shrink: 0;
+}
+
+.destination-info {
+ flex: 1;
+ text-align: left;
+ margin: 0 1rem;
+ color: var(--text-primary, #333);
+}
+
+.destination-info strong {
+ font-size: 0.95rem;
+}
+
+.timetable-card.timetable-past .destination-info {
+ color: var(--text-secondary, #aaa);
+}
+
+.time-info {
+ display: flex;
+ flex-direction: column;
+ align-items: flex-end;
+ flex-shrink: 0;
+}
+
+.departure-time {
+ font-weight: bold;
+ font-family: monospace;
+ font-size: 1.1rem;
+ color: var(--text-primary, #333);
+}
+
+.timetable-card.timetable-past .departure-time {
+ color: var(--text-secondary, #aaa);
+}
+
+.card-body {
+ line-height: 1.4;
+}
+
+.route-streets {
+ font-size: 0.85rem;
+ color: var(--text-secondary, #666);
+ line-height: 1.8;
+ word-break: break-word;
+}
+
+.service-id {
+ font-family: monospace;
+ font-size: 0.8rem;
+ color: var(--text-secondary, #666);
+ background: var(--service-background, #f0f0f0);
+ padding: 0.15rem 0.4rem;
+ border-radius: 3px;
+ font-weight: 500;
+ display: inline;
+ margin-right: 0.2em;
+}
+
+.timetable-card.timetable-past .service-id {
+ color: var(--text-secondary, #bbb);
+ background: #e8e8e8;
+}
+
+.no-data {
+ text-align: center;
+ color: var(--text-secondary, #666);
+ font-style: italic;
+ padding: 2rem;
+ background: var(--card-background, #f8f9fa);
+ border-radius: 8px;
+ border: 1px solid var(--card-border, #e0e0e0);
+}
+
+/* Responsive design */
+@media (max-width: 768px) {
+ .timetable-cards {
+ gap: 0.5rem;
+ }
+ .timetable-card {
+ padding: 0.75rem;
+ }
+ .card-header {
+ margin-bottom: 0.5rem;
+ }
+ .destination-info {
+ margin: 0 0.5rem;
+ }
+ .destination-info strong {
+ font-size: 0.9rem;
+ }
+ .departure-time {
+ font-size: 1rem;
+ }
+ .service-id {
+ font-size: 0.8rem;
+ padding: 0.2rem 0.4rem;
+ }
+}
+
+@media (max-width: 480px) {
+ .card-header {
+ flex-direction: column;
+ align-items: stretch;
+ gap: 0.5rem;
+ }
+
+ .destination-info {
+ text-align: left;
+ margin: 0;
+ order: 2;
+ }
+
+ .time-info {
+ align-items: flex-start;
+ order: 1;
+ align-self: flex-end;
+ }
+
+ .line-info {
+ order: 0;
+ align-self: flex-start;
+ }
+
+ /* Create a flex container for line and time on mobile */
+ .card-header {
+ position: relative;
+ }
+
+ .line-info {
+ position: absolute;
+ left: 0;
+ top: 0;
+ }
+
+ .time-info {
+ position: absolute;
+ right: 0;
+ top: 0;
+ }
+
+ .destination-info {
+ margin-top: 2rem;
+ text-align: left;
+ }
+}