|
12 | 12 | --color-bg-panel: #ffffff; |
13 | 13 | --color-border: #e0e0e0; |
14 | 14 | --color-overlay: rgba(0, 0, 0, 0.4); |
| 15 | + --color-callout-placeholder-bg: #fffbea; |
| 16 | + --color-callout-placeholder-border: #e8b84b; |
| 17 | + --color-callout-placeholder-text: #6b4c00; |
| 18 | + --color-callout-unconfirmed-bg: #e8f0fe; |
| 19 | + --color-callout-unconfirmed-border: #7baaf7; |
| 20 | + --color-callout-unconfirmed-text: #1a3a6b; |
15 | 21 |
|
16 | 22 | --spacing-xs: 0.25rem; |
17 | 23 | --spacing-sm: 0.5rem; |
@@ -110,7 +116,7 @@ body { |
110 | 116 | } |
111 | 117 |
|
112 | 118 | #burger-btn:hover { |
113 | | - background: #f5f5f5; |
| 119 | + background: var(--color-border); |
114 | 120 | } |
115 | 121 |
|
116 | 122 | /* ─── Leaflet Popup Overrides ───────────────────────────────── */ |
@@ -142,25 +148,25 @@ body { |
142 | 148 | } |
143 | 149 |
|
144 | 150 | .popup-content .popup-placeholder { |
145 | | - background: #fffbea; |
146 | | - border: 1px solid #e8b84b; |
| 151 | + background: var(--color-callout-placeholder-bg); |
| 152 | + border: 1px solid var(--color-callout-placeholder-border); |
147 | 153 | border-radius: 4px; |
148 | 154 | padding: 0.5rem 0.625rem; |
149 | 155 | font-size: 0.8125rem; |
150 | 156 | line-height: 1.4; |
151 | 157 | margin-bottom: 0.625rem; |
152 | | - color: #6b4c00; |
| 158 | + color: var(--color-callout-placeholder-text); |
153 | 159 | } |
154 | 160 |
|
155 | 161 | .popup-content .popup-unconfirmed { |
156 | | - background: #e8f0fe; |
157 | | - border: 1px solid #7baaf7; |
| 162 | + background: var(--color-callout-unconfirmed-bg); |
| 163 | + border: 1px solid var(--color-callout-unconfirmed-border); |
158 | 164 | border-radius: 4px; |
159 | 165 | padding: 0.5rem 0.625rem; |
160 | 166 | font-size: 0.8125rem; |
161 | 167 | line-height: 1.4; |
162 | 168 | margin-bottom: 0.625rem; |
163 | | - color: #1a3a6b; |
| 169 | + color: var(--color-callout-unconfirmed-text); |
164 | 170 | } |
165 | 171 |
|
166 | 172 | .popup-content .popup-unconfirmed a { |
@@ -261,6 +267,38 @@ body { |
261 | 267 | text-decoration: underline; |
262 | 268 | } |
263 | 269 |
|
| 270 | +/* ─── Dark Mode Tokens ──────────────────────────────────────── */ |
| 271 | +[data-theme="dark"] { |
| 272 | + --color-focus: #79b8ff; |
| 273 | + --color-text: #e8e8e8; |
| 274 | + --color-text-muted: #999; |
| 275 | + --color-bg: #1a1a1a; |
| 276 | + --color-bg-panel: #242424; |
| 277 | + --color-border: #3a3a3a; |
| 278 | + --color-overlay: rgba(0, 0, 0, 0.6); |
| 279 | + --color-callout-placeholder-bg: #2d2510; |
| 280 | + --color-callout-placeholder-border: #7a5f18; |
| 281 | + --color-callout-placeholder-text: #f0c96a; |
| 282 | + --color-callout-unconfirmed-bg: #0f1e3a; |
| 283 | + --color-callout-unconfirmed-border: #2c5099; |
| 284 | + --color-callout-unconfirmed-text: #8ab4f8; |
| 285 | +} |
| 286 | + |
| 287 | +/* ─── Leaflet Popup Dark Mode ───────────────────────────────── */ |
| 288 | +[data-theme="dark"] { |
| 289 | + .leaflet-popup-content-wrapper, |
| 290 | + .leaflet-popup-tip { |
| 291 | + background: var(--color-bg-panel); |
| 292 | + color: var(--color-text); |
| 293 | + } |
| 294 | + .leaflet-popup-close-button { |
| 295 | + color: var(--color-text-muted) !important; |
| 296 | + } |
| 297 | + .leaflet-popup-close-button:hover { |
| 298 | + color: var(--color-text) !important; |
| 299 | + } |
| 300 | +} |
| 301 | + |
264 | 302 | /* ─── Marker Cluster Overrides ──────────────────────────────── */ |
265 | 303 | /* Custom clusters are rendered via iconCreateFunction in MapView.vue */ |
266 | 304 | .marker-cluster-custom { |
|
0 commit comments