/* App-wide theme tokens Keep Open Props' sizing/spacing, but pin semantic colors to a readable light theme so pages do not inherit low-contrast dark-mode surfaces. */ :root { color-scheme: light; --surface-1: #ffffff; --surface-2: #f8fafc; --surface-3: #eef2f7; --surface-4: #cbd5e1; --text-1: #17202a; --text-2: #3d4b5c; --muted-text: #64748b; --app-border: #cbd5e1; --app-focus: #3157d5; } body { background: var(--gray-0); color: var(--text-1); } input, select, textarea, button { color: var(--text-1); } input[type="file"] { background: var(--surface-2); color: var(--text-1); } input[type="file"]::file-selector-button { border: 1px solid var(--app-border); border-radius: 6px; background: var(--surface-1); color: var(--text-1); padding: 0.35rem 0.7rem; margin-right: 0.75rem; cursor: pointer; } input[type="file"]::file-selector-button:hover { background: var(--surface-3); } input:focus, select:focus, textarea:focus { outline: 2px solid var(--app-focus); outline-offset: 2px; } /* Mobile-first approach */ .map-container { height: 100vh; width: 100%; } /* Tablet and larger */ @media (min-width: 768px) { .sidebar { width: 350px; } } /* Journey timeline styles */ .journey-timeline { padding: 20px; max-width: 800px; margin: 0 auto; } .timeline-event { border-left: 3px solid #3498db; padding: 15px 20px; margin: 20px 0; background-color: #f9f9f9; } .timeline-event .date { color: #7f8c8d; font-style: italic; } .timeline-event .location { font-size: 0.9em; color: #2c3e50; } .images-container { display: flex; gap: 10px; flex-wrap: wrap; } .images-container img { max-width: 100px; height: auto; }