@property --glass-bg{syntax: "<color>"; inherits: true; initial-value: rgb(10 24 31 / 66%);}@property --glass-bg-strong{syntax: "<color>"; inherits: true; initial-value: rgb(8 20 27 / 84%);}@property --glass-bg-soft{syntax: "<color>"; inherits: true; initial-value: rgb(28 46 54 / 48%);}@property --glass-border{syntax: "<color>"; inherits: true; initial-value: rgb(255 255 255 / 12%);}@property --glass-highlight{syntax: "<color>"; inherits: true; initial-value: rgb(255 255 255 / 8%);}@property --accent{syntax: "<color>"; inherits: true; initial-value: #65c4ed;}@property --accent-soft{syntax: "<color>"; inherits: true; initial-value: rgb(101 196 237 / 16%);}@property --map-tint{syntax: "<color>"; inherits: true; initial-value: rgb(5 17 24 / 18%);}@property --atmospheric-tint{syntax: "<color>"; inherits: true; initial-value: rgb(76 128 145 / 18%);}@property --glass-blur{syntax: "<length>"; inherits: true; initial-value: 20px;}@property --glass-saturation{syntax: "<percentage>"; inherits: true; initial-value: 125%;}:root{color:var(--text-primary);background:#101b21;font-family:SF Pro Display,PingFang SC,Microsoft YaHei,system-ui,sans-serif;font-synthesis:none;--text-base: 238 244 245;--text-primary: rgb(var(--text-base) / 96%);--text-secondary: rgb(var(--text-base) / 72%);--text-muted: rgb(var(--text-base) / 54%);--text-disabled: rgb(var(--text-base) / 38%);--glass-bg: rgb(10 24 31 / 66%);--glass-bg-strong: rgb(8 20 27 / 84%);--glass-bg-soft: rgb(28 46 54 / 48%);--glass-bg-opaque: rgb(9 22 29 / 97%);--glass-border: rgb(255 255 255 / 12%);--glass-highlight: rgb(255 255 255 / 8%);--glass-blur: 20px;--glass-saturation: 125%;--glass-shadow: 0 18px 48px rgb(2 10 15 / 28%);--effective-glass-blur: var(--glass-blur);--effective-glass-saturation: var(--glass-saturation);--effective-glass-shadow: var(--glass-shadow);--accent: #65c4ed;--accent-soft: rgb(101 196 237 / 16%);--warning: #f0ba3c;--warning-soft: rgb(240 186 60 / 16%);--danger: #f36d72;--danger-soft: rgb(243 109 114 / 16%);--success: #72d6a3;--success-soft: rgb(114 214 163 / 16%);--map-tint: rgb(5 17 24 / 18%);--atmospheric-tint: rgb(76 128 145 / 18%);--theme-transition-duration: .9s;--theme-transition-easing: cubic-bezier(.2, .8, .2, 1);--surface: var(--glass-bg);--surface-strong: var(--glass-bg-strong);--surface-soft: var(--glass-bg-soft);--line: var(--glass-border);--text: var(--text-primary);--muted: var(--text-muted);--radius: 8px}*{box-sizing:border-box}html,body,#root{width:100%;min-width:320px;height:100%;margin:0;overflow:hidden}button,input{font:inherit}button{color:inherit;touch-action:manipulation}.app-shell{position:relative;width:100%;min-height:100dvh;overflow:clip;color:var(--text-primary);background:#17262d;transition:--glass-bg var(--theme-transition-duration) var(--theme-transition-easing),--glass-bg-strong var(--theme-transition-duration) var(--theme-transition-easing),--glass-bg-soft var(--theme-transition-duration) var(--theme-transition-easing),--glass-border var(--theme-transition-duration) var(--theme-transition-easing),--glass-highlight var(--theme-transition-duration) var(--theme-transition-easing),--glass-blur var(--theme-transition-duration) var(--theme-transition-easing),--glass-saturation var(--theme-transition-duration) var(--theme-transition-easing),--accent var(--theme-transition-duration) var(--theme-transition-easing),--accent-soft var(--theme-transition-duration) var(--theme-transition-easing),--map-tint var(--theme-transition-duration) var(--theme-transition-easing),--atmospheric-tint var(--theme-transition-duration) var(--theme-transition-easing)}.map-stage,.map-canvas,.map-fallback,.workspace-layout,.workspace-map-pane,.workspace-weather-pane,.weather-overview-map{position:absolute;inset:0}.workspace-map-pane{overflow:hidden}.workspace-layout--weather .workspace-weather-pane{top:64px}.workspace-layout--split .workspace-map-pane{top:64px;left:50%}.workspace-layout--split .workspace-weather-pane{top:64px;right:50%}.workspace-weather-pane{z-index:4;overflow:hidden;background:#12242b}.weather-overview-map{color:var(--text-primary);background:linear-gradient(rgb(126 172 181 / 5%) 1px,transparent 1px),linear-gradient(90deg,rgb(126 172 181 / 5%) 1px,transparent 1px),#12242b;background-size:36px 36px}.weather-overview-state{z-index:4;display:grid;place-content:center;justify-items:center;gap:10px;color:var(--text-secondary)}.weather-overview-state svg{color:var(--accent)}.weather-overview-state .lucide-loader-circle{animation:route-risk-spin .9s linear infinite}.weather-overview-state button{padding:7px 12px;color:var(--text-primary);border:1px solid var(--glass-border);border-radius:5px;background:var(--glass-bg-soft);cursor:pointer}.weather-grid-toolbar{position:absolute;z-index:3;top:14px;right:18px;left:18px;display:flex;align-items:center;gap:14px;min-height:38px;pointer-events:none}.weather-grid-title{display:grid;min-width:132px;gap:2px}.weather-grid-title strong{font-size:14px}.weather-grid-title span{color:var(--text-muted);font-size:9px}.weather-grid-layers{display:flex;overflow:hidden;border:1px solid var(--glass-border);border-radius:6px;background:var(--glass-bg-strong);pointer-events:auto}.weather-grid-layers button,.weather-grid-reset{display:flex;align-items:center;justify-content:center;height:32px;gap:5px;padding:0 10px;color:var(--text-muted);font-size:10px;border:0;background:transparent;cursor:pointer}.weather-grid-layers button+button{border-left:1px solid var(--line)}.weather-grid-layers button:hover,.weather-grid-layers button:focus-visible,.weather-grid-layers button.is-active,.weather-grid-reset:hover,.weather-grid-reset:focus-visible{color:var(--text-primary);background:var(--glass-highlight)}.weather-grid-layers button.is-active{box-shadow:inset 0 -2px 0 var(--accent)}.weather-grid-reset{margin-left:auto;border:1px solid var(--glass-border);border-radius:5px;background:var(--glass-bg-strong);pointer-events:auto}.weather-grid-chart{position:absolute;inset:0}.weather-field-canvas{position:absolute;z-index:2;inset:0;width:100%;height:100%;pointer-events:none}.radar-tile-canvas{position:absolute;z-index:1;inset:0;width:100%;height:100%;pointer-events:none}.weather-grid-layer-spinner{animation:route-risk-spin .9s linear infinite}.wind-field-canvas{mix-blend-mode:screen}.pressure-field-canvas{filter:drop-shadow(0 1px 2px rgb(4 17 22 / 70%))}.weather-grid-timeline{position:absolute;z-index:3;right:20px;bottom:16px;left:20px;display:grid;grid-template-columns:34px minmax(120px,1fr) auto auto;align-items:center;gap:10px;min-height:42px;padding:6px 10px;color:var(--text-secondary);border:1px solid var(--glass-border);border-radius:6px;background:var(--glass-bg-strong);-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px)}.weather-grid-timeline button{display:grid;place-items:center;width:30px;height:30px;padding:0;color:var(--text-primary);border:0;border-radius:50%;background:var(--glass-highlight);cursor:pointer}.weather-grid-timeline input{width:100%;accent-color:var(--accent)}.weather-grid-timeline time,.weather-grid-timeline span{font-size:10px;font-variant-numeric:tabular-nums;white-space:nowrap}.app-shell:not([data-workspace-view="3d"])>.weather-panel,.app-shell:not([data-workspace-view="3d"])>.weather-timeline,.app-shell:not([data-workspace-view="3d"])>.measurement-panel,.app-shell:not([data-workspace-view="3d"])>.route-library-panel,.app-shell[data-workspace-view=weather]>.compass-control,.app-shell[data-workspace-view=weather]>.map-tools{display:none}.map-stage{background:#1a2b32}.map-fallback{overflow:hidden;background:radial-gradient(circle at 68% 46%,rgb(120 155 157 / 32%),transparent 5%),radial-gradient(circle at 52% 58%,rgb(119 141 137 / 22%),transparent 18%),linear-gradient(165deg,#344b52,#263a40 35%,#1b3036 67%,#13262d)}.fallback-grid{position:absolute;inset:-20%;transform:perspective(700px) rotateX(58deg) rotate(-10deg) scale(1.2);transform-origin:50% 55%;opacity:.58;background-image:linear-gradient(rgb(159 189 181 / 20%) 1px,transparent 1px),linear-gradient(90deg,rgb(159 189 181 / 18%) 1px,transparent 1px),repeating-linear-gradient(27deg,transparent 0 47px,rgb(109 149 143 / 16%) 48px 50px);background-size:38px 38px,38px 38px,82px 82px}.fallback-river{position:absolute;width:35%;height:140%;top:-25%;left:53%;transform:rotate(17deg);border:38px solid rgb(20 53 64 / 78%);border-top:0;border-bottom:0;border-radius:48%;filter:blur(3px)}.map-status{position:absolute;top:96px;left:50%;display:grid;gap:5px;min-width:280px;padding:13px 18px;transform:translate(-50%);text-align:center;color:var(--text-primary);border:1px solid var(--glass-border);border-radius:var(--radius);background:var(--glass-bg-strong);-webkit-backdrop-filter:blur(var(--effective-glass-blur)) saturate(var(--effective-glass-saturation));backdrop-filter:blur(var(--effective-glass-blur)) saturate(var(--effective-glass-saturation));box-shadow:var(--effective-glass-shadow);transition:color var(--theme-transition-duration) var(--theme-transition-easing),background-color var(--theme-transition-duration) var(--theme-transition-easing),border-color var(--theme-transition-duration) var(--theme-transition-easing),box-shadow var(--theme-transition-duration) var(--theme-transition-easing)}.map-status strong{font-size:13px}.map-status span{color:var(--text-secondary);font-size:11px}.terrain-map-canvas .cesium-widget,.terrain-map-canvas .cesium-widget canvas{width:100%;height:100%}.terrain-map-canvas .cesium-widget-credits{right:8px;bottom:6px;left:auto;max-width:min(48vw,620px);color:#ffffffb8;font-size:10px;text-align:right}.amap-map-canvas .amap-logo,.amap-map-canvas .amap-copyright{z-index:2}.amap-selection-marker{display:block;width:12px;height:12px;border:2px solid #fff;border-radius:50%;background:#7bd5ef;box-shadow:0 0 0 5px #28a1c43d,0 3px 10px #00000061}.amap-measurement-marker{display:block;width:9px;height:9px;border:1px solid #fff;border-radius:50%;background:#efbd4f;box-shadow:0 0 0 4px #efbd4f3d}.amap-route-highlight{display:block;width:13px;height:13px;border:2px solid #fff;border-radius:50%;background:#83d0e3;box-shadow:0 0 0 5px #83d0e33d}.amap-route-risk{display:block;width:11px;height:11px;border:2px solid #fff;border-radius:50%;box-shadow:0 2px 8px #0000006b}.amap-route-risk--low{background:#72d6a3}.amap-route-risk--moderate{background:#efbd4f}.amap-route-risk--high{background:#f28a55}.amap-route-risk--extreme{width:13px;height:13px;background:#f36d72;box-shadow:0 0 0 4px #f36d7238,0 2px 8px #0000006b}.map-stage[data-measurement-mode=distance] .map-canvas,.map-stage[data-measurement-mode=area] .map-canvas{cursor:crosshair}.amap-map-stage[data-map-layer=satellite]{--satellite-period-brightness: 1;--satellite-weather-contrast: 1.06;--satellite-weather-saturation: 1.05}.amap-map-stage[data-map-layer=satellite][data-terrain-period=dawn]{--satellite-period-brightness: .92}.amap-map-stage[data-map-layer=satellite][data-terrain-period=dusk]{--satellite-period-brightness: .84}.amap-map-stage[data-map-layer=satellite][data-terrain-period=night]{--satellite-period-brightness: .64}.amap-map-stage[data-map-layer=satellite][data-terrain-weather=rain]{--satellite-weather-contrast: 1.12;--satellite-weather-saturation: .78}.amap-map-stage[data-map-layer=satellite][data-terrain-weather=snow]{--satellite-weather-contrast: .98;--satellite-weather-saturation: .68}.amap-map-stage[data-map-layer=satellite][data-terrain-weather=fog]{--satellite-weather-contrast: .92;--satellite-weather-saturation: .62}.amap-map-stage[data-map-layer=satellite][data-terrain-weather=storm]{--satellite-weather-contrast: 1.16;--satellite-weather-saturation: .64}.amap-map-stage[data-map-layer=satellite] .amap-layer{filter:brightness(var(--satellite-period-brightness)) contrast(var(--satellite-weather-contrast)) saturate(var(--satellite-weather-saturation));transition:filter var(--theme-transition-duration) var(--theme-transition-easing)}.terrain-status{position:absolute;z-index:9;top:74px;left:50%;display:grid;gap:4px;min-width:240px;padding:11px 16px;transform:translate(-50%);color:var(--text-primary);text-align:center;border:1px solid var(--glass-border);border-radius:var(--radius);background:var(--glass-bg-strong);-webkit-backdrop-filter:blur(var(--effective-glass-blur)) saturate(var(--effective-glass-saturation));backdrop-filter:blur(var(--effective-glass-blur)) saturate(var(--effective-glass-saturation));box-shadow:var(--effective-glass-shadow)}.terrain-status strong{font-size:13px}.terrain-status span{color:var(--text-secondary);font-size:11px}.imagery-status{position:absolute;z-index:19;top:134px;left:50%;padding:7px 11px;transform:translate(-50%);color:var(--text-secondary);white-space:nowrap;font-size:11px;border:1px solid var(--glass-border);border-radius:5px;background:var(--glass-bg-strong);-webkit-backdrop-filter:blur(var(--effective-glass-blur));backdrop-filter:blur(var(--effective-glass-blur));box-shadow:var(--effective-glass-shadow)}.imagery-status--slow,.imagery-status--fallback{color:var(--warning)}.weather-atmosphere{position:absolute;inset:56px 0 0;overflow:hidden;contain:paint;isolation:isolate;pointer-events:none}.weather-grade,.sky-light-layer,.cloud-layer,.storm-cloud-layer,.mist-layer,.wind-layer,.precipitation-canvas,.surface-haze-layer,.lens-rain-layer,.lightning-layer{position:absolute;inset:0}.weather-grade{z-index:0;background:linear-gradient(180deg,var(--atmospheric-tint),transparent 42%,var(--map-tint));transition:opacity var(--theme-transition-duration) var(--theme-transition-easing),background var(--theme-transition-duration) var(--theme-transition-easing)}.sky-light-layer{z-index:1;inset:-16% -8% 28% 28%;background:radial-gradient(ellipse at 72% 18%,rgb(255 226 154 / 44%),rgb(145 205 225 / 12%) 24%,transparent 58%);filter:blur(18px);transform:translateZ(0);transition:opacity 1.1s cubic-bezier(.2,.8,.2,1)}.weather-atmosphere.is-night .sky-light-layer{background:radial-gradient(ellipse at 74% 18%,rgb(166 202 255 / 32%),rgb(75 116 172 / 10%) 22%,transparent 56%)}.cloud-layer{z-index:2;inset:-10% -15% 40%;filter:blur(20px);background:radial-gradient(ellipse at 24% 36%,rgb(221 230 229 / 65%) 0 12%,transparent 29%),radial-gradient(ellipse at 63% 28%,rgb(189 205 205 / 72%) 0 16%,transparent 36%),radial-gradient(ellipse at 88% 68%,rgb(222 231 229 / 55%) 0 11%,transparent 31%);animation:cloud-drift 28s ease-in-out infinite alternate;transition:opacity 1s cubic-bezier(.2,.8,.2,1);will-change:transform,opacity}.storm-cloud-layer{z-index:3;inset:-18% -18% 34%;filter:blur(24px);background:radial-gradient(ellipse at 16% 48%,rgb(22 35 43 / 86%) 0 16%,transparent 42%),radial-gradient(ellipse at 54% 25%,rgb(36 48 55 / 88%) 0 22%,transparent 48%),radial-gradient(ellipse at 87% 58%,rgb(18 31 40 / 82%) 0 18%,transparent 45%);animation:storm-cloud-drift 18s ease-in-out infinite alternate;transition:opacity .85s cubic-bezier(.2,.8,.2,1);will-change:transform,opacity}.mist-layer{z-index:4;top:25%;bottom:4%;filter:blur(28px);background:radial-gradient(ellipse at 30% 32%,rgb(218 228 226 / 55%),transparent 30%),radial-gradient(ellipse at 75% 65%,rgb(205 218 216 / 42%),transparent 28%);animation:mist-drift 20s ease-in-out infinite alternate;transition:opacity .95s cubic-bezier(.2,.8,.2,1);will-change:transform,opacity}.wind-layer{z-index:5;inset:-40%;overflow:hidden;transform-origin:center;transition:opacity .8s ease,transform 1.1s cubic-bezier(.2,.8,.2,1)}.wind-layer>div{position:absolute;inset:20% -30%;opacity:.5;background:repeating-linear-gradient(90deg,transparent 0 74px,rgb(202 231 240 / 16%) 76px 77px,transparent 79px 142px);-webkit-mask-image:linear-gradient(90deg,transparent,#000 22%,#000 78%,transparent);mask-image:linear-gradient(90deg,transparent,#000 22%,#000 78%,transparent);animation:wind-sweep 3s ease-in-out infinite;will-change:transform}.precipitation-canvas{z-index:6;width:100%;height:100%}.surface-haze-layer{z-index:7;top:48%;background:radial-gradient(ellipse at 32% 100%,rgb(146 194 207 / 34%),transparent 46%),linear-gradient(0deg,rgb(109 165 184 / 18%),transparent 62%);filter:blur(14px);transition:opacity .9s cubic-bezier(.2,.8,.2,1)}.weather-atmosphere--snow .surface-haze-layer{background:linear-gradient(0deg,rgb(217 233 239 / 30%),transparent 68%)}.lens-rain-layer{z-index:8;inset:-8% -4%;background-image:radial-gradient(ellipse at 18% 12%,transparent 0 3px,rgb(208 235 244 / 28%) 4px,transparent 6px),radial-gradient(ellipse at 72% 36%,transparent 0 4px,rgb(203 232 243 / 22%) 5px,transparent 8px),radial-gradient(ellipse at 43% 72%,transparent 0 2px,rgb(208 235 244 / 24%) 3px,transparent 5px);background-size:190px 250px,260px 330px,150px 210px;filter:blur(.35px);animation:lens-rain-fall 7s ease-in infinite;transition:opacity .85s ease;will-change:transform}.lightning-layer{z-index:9;opacity:0;background:radial-gradient(circle at 76% 12%,rgb(250 252 226 / 82%),transparent 11%),linear-gradient(115deg,transparent 42%,rgb(223 239 247 / 22%) 53%,transparent 66%);animation:lightning 9s steps(1,end) infinite}.lightning-layer:after{position:absolute;top:0;left:72%;width:24px;height:42%;content:"";background:#f7fcffe0;clip-path:polygon(42% 0,72% 0,53% 35%,78% 35%,25% 100%,40% 53%,18% 53%);filter:drop-shadow(0 0 8px rgb(202 233 255 / 80%));transform:rotate(8deg)}.topbar{position:absolute;z-index:30;top:0;left:0;right:0;display:grid;grid-template-columns:180px minmax(260px,400px) minmax(252px,286px) 1fr auto;align-items:center;gap:24px;height:64px;padding:0 26px;color:var(--text-primary);border-bottom:1px solid var(--glass-border);background:var(--glass-bg-strong);-webkit-backdrop-filter:blur(var(--effective-glass-blur)) saturate(var(--effective-glass-saturation));backdrop-filter:blur(var(--effective-glass-blur)) saturate(var(--effective-glass-saturation));box-shadow:var(--effective-glass-shadow);transition:color var(--theme-transition-duration) var(--theme-transition-easing),background-color var(--theme-transition-duration) var(--theme-transition-easing),border-color var(--theme-transition-duration) var(--theme-transition-easing),box-shadow var(--theme-transition-duration) var(--theme-transition-easing),backdrop-filter var(--theme-transition-duration) var(--theme-transition-easing)}.workspace-view-switch{display:grid;grid-template-columns:repeat(3,1fr);overflow:hidden;height:34px;border:1px solid var(--glass-border);border-radius:6px;background:var(--glass-bg-soft)}.workspace-view-switch button{display:flex;align-items:center;justify-content:center;min-width:0;gap:5px;padding:0 8px;color:var(--text-muted);font-size:10px;border:0;background:transparent;cursor:pointer;white-space:nowrap}.workspace-view-switch button+button{border-left:1px solid var(--line)}.workspace-view-switch button:hover,.workspace-view-switch button:focus-visible,.workspace-view-switch button.is-active{color:var(--text-primary);background:var(--glass-highlight)}.workspace-view-switch button.is-active{box-shadow:inset 0 -2px 0 var(--accent)}.workspace-layout--split .weather-grid-layers button span{display:none}.workspace-layout--split .weather-grid-layers button{width:34px;padding:0}.brand{display:flex;align-items:center;gap:10px;letter-spacing:0}.brand-mark{display:grid;place-items:center;width:26px;height:26px;color:var(--text-primary);font-weight:800;font-style:italic;border:1px solid var(--glass-border);transform:skew(-10deg)}.brand strong{font-size:20px;font-weight:650}.search-box{position:relative;display:grid;grid-template-columns:20px 1fr 28px;align-items:center;height:36px;padding:0 8px 0 13px;color:var(--text-secondary);border:1px solid var(--glass-border);border-radius:var(--radius);background:var(--glass-bg-soft);transition:color var(--theme-transition-duration) var(--theme-transition-easing),background-color var(--theme-transition-duration) var(--theme-transition-easing),border-color var(--theme-transition-duration) var(--theme-transition-easing),box-shadow .18s ease}.search-box:focus-within{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft)}.search-box input{min-width:0;padding:0 8px;color:var(--text-primary);border:0;outline:0;background:transparent}.search-box button,.top-actions button,.map-tools button{display:grid;place-items:center;padding:0;border:0;background:transparent;cursor:pointer}.search-box button{width:28px;height:28px;color:var(--text-secondary)}.search-results{position:absolute;z-index:40;top:calc(100% + 8px);right:0;left:0;max-height:280px;overflow:auto;padding:5px;color:var(--text-primary);border:1px solid var(--glass-border);border-radius:var(--radius);background:var(--glass-bg-strong);box-shadow:var(--effective-glass-shadow);-webkit-backdrop-filter:blur(var(--effective-glass-blur)) saturate(var(--effective-glass-saturation));backdrop-filter:blur(var(--effective-glass-blur)) saturate(var(--effective-glass-saturation));transition:color var(--theme-transition-duration) var(--theme-transition-easing),background-color var(--theme-transition-duration) var(--theme-transition-easing),border-color var(--theme-transition-duration) var(--theme-transition-easing),box-shadow var(--theme-transition-duration) var(--theme-transition-easing),backdrop-filter var(--theme-transition-duration) var(--theme-transition-easing)}.search-results button{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:14px;width:100%;min-height:42px;padding:0 10px;text-align:left;border:0;border-radius:5px;background:transparent;cursor:pointer}.search-results button:hover,.search-results button.is-highlighted{background:var(--accent-soft)}.search-results strong,.search-results span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.search-results strong{color:var(--text-primary);font-size:13px;font-weight:550}.search-results span,.search-result-state{color:var(--text-muted);font-size:11px}.search-result-state{display:grid;place-items:center;min-height:42px}.top-actions{display:flex;justify-content:flex-end;gap:4px}.top-actions button{width:36px;height:36px;color:var(--text-secondary);border-radius:6px}.top-actions button:hover,.top-actions button:focus-visible,.map-tools button:hover,.map-tools button:focus-visible{outline:none;color:var(--text-primary);background:var(--glass-highlight)}.top-actions button.is-active{color:var(--accent);background:var(--accent-soft)}.top-actions button[data-planned],.map-tools button[data-planned]{position:relative;cursor:not-allowed;opacity:.46}.top-actions button[data-planned]:after,.map-tools button[data-planned]:after{position:absolute;top:5px;right:5px;width:4px;height:4px;border-radius:50%;background:var(--warning);content:""}.top-actions button:disabled{cursor:wait;opacity:.72}.top-actions button.is-locating svg{animation:locating-pulse 1.1s ease-in-out infinite}.top-actions svg,.map-tools svg{width:19px;height:19px;stroke-width:1.7}.forecast-time-control,.data-quality-panel{position:absolute;z-index:29;top:72px;color:var(--text-primary);border:1px solid var(--glass-border);border-radius:8px;background:var(--glass-bg-strong);-webkit-backdrop-filter:blur(var(--effective-glass-blur)) saturate(var(--effective-glass-saturation));backdrop-filter:blur(var(--effective-glass-blur)) saturate(var(--effective-glass-saturation));box-shadow:var(--effective-glass-shadow)}.forecast-time-control{left:50%;display:grid;width:min(620px,calc(100vw - 40px));padding:12px;gap:10px;transform:translate(-50%)}.forecast-time-control header,.data-quality-panel header{display:flex;align-items:center;min-width:0;gap:9px}.forecast-time-control header>svg,.data-quality-panel header>svg{flex:0 0 auto;color:var(--accent)}.forecast-time-control header div,.data-quality-panel header div{display:grid;min-width:0;gap:2px}.forecast-time-control header strong,.data-quality-panel header strong{font-size:12px}.forecast-time-control header span,.data-quality-panel header span{color:var(--text-muted);font-size:9px}.forecast-time-control header>button,.data-quality-panel header>button{display:grid;place-items:center;width:26px;height:26px;margin-left:auto;padding:0;color:var(--text-muted);border:0;background:transparent;cursor:pointer}.forecast-time-main{display:grid;grid-template-columns:32px 28px minmax(120px,1fr) 28px 28px;align-items:center;gap:6px}.forecast-time-main button{display:grid;place-items:center;width:100%;height:28px;padding:0;color:var(--text-secondary);border:1px solid var(--line);border-radius:5px;background:var(--glass-bg-soft);cursor:pointer}.forecast-time-main button:first-child{color:var(--text-primary);border-radius:50%}.forecast-time-main button:hover,.forecast-time-main button:focus-visible{color:var(--accent)}.forecast-time-main button:disabled{opacity:.35;cursor:default}.forecast-time-main input{width:100%;accent-color:var(--accent)}.forecast-time-control footer{display:flex;justify-content:space-between;color:var(--text-secondary);font-size:10px;font-variant-numeric:tabular-nums}.data-quality-panel{right:24px;display:grid;width:min(390px,calc(100vw - 32px));padding:12px;gap:8px}.data-quality-panel>header{padding-bottom:4px}.data-quality-source{display:grid;grid-template-columns:8px minmax(90px,1fr) auto 28px;align-items:center;min-height:48px;gap:9px;border-top:1px solid var(--line)}.data-quality-source>div:not(.quality-status){display:grid;min-width:0;gap:3px}.data-quality-source>div:nth-child(3){max-width:156px;text-align:right}.data-quality-source strong{overflow:hidden;font-size:11px;text-overflow:ellipsis;white-space:nowrap}.data-quality-source span,.data-quality-panel footer{color:var(--text-muted);font-size:9px}.data-quality-source span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.data-quality-source>button{display:grid;place-items:center;width:28px;height:28px;padding:0;color:var(--text-muted);border:0;border-radius:5px;background:transparent;cursor:pointer}.data-quality-source>button:hover,.data-quality-source>button:focus-visible{color:var(--accent);background:var(--glass-highlight)}.data-quality-source>button:disabled svg{animation:route-risk-spin .9s linear infinite}.quality-status{width:7px;height:7px;border-radius:50%;background:var(--text-disabled)}.quality-status.is-ready,.quality-status.is-high{background:var(--success);box-shadow:0 0 0 3px var(--success-soft)}.quality-status.is-warning,.quality-status.is-moderate{background:var(--warning);box-shadow:0 0 0 3px var(--warning-soft)}.quality-status.is-error,.quality-status.is-low{background:var(--danger);box-shadow:0 0 0 3px var(--danger-soft)}.data-quality-panel footer{padding-top:8px;border-top:1px solid var(--line)}.updated-at{color:var(--text-secondary);font-size:12px;white-space:nowrap}.action-status{position:absolute;z-index:35;top:68px;right:22px;min-width:92px;padding:9px 12px;color:var(--text-primary);font-size:12px;text-align:center;border:1px solid var(--glass-border);border-radius:6px;background:var(--glass-bg-strong);-webkit-backdrop-filter:blur(var(--effective-glass-blur)) saturate(var(--effective-glass-saturation));backdrop-filter:blur(var(--effective-glass-blur)) saturate(var(--effective-glass-saturation));box-shadow:var(--effective-glass-shadow);transition:color var(--theme-transition-duration) var(--theme-transition-easing),background-color var(--theme-transition-duration) var(--theme-transition-easing),border-color var(--theme-transition-duration) var(--theme-transition-easing),box-shadow var(--theme-transition-duration) var(--theme-transition-easing)}.action-status--copy-error,.action-status--location-error{color:var(--warning)}.action-status--located{color:var(--success)}.weather-panel{position:absolute;z-index:20;top:82px;bottom:150px;left:22px;width:350px;overflow:auto;color:var(--text-primary);border:1px solid var(--glass-border);border-radius:var(--radius);background:var(--glass-bg);-webkit-backdrop-filter:blur(var(--effective-glass-blur)) saturate(var(--effective-glass-saturation));backdrop-filter:blur(var(--effective-glass-blur)) saturate(var(--effective-glass-saturation));box-shadow:var(--effective-glass-shadow);scrollbar-width:thin;scrollbar-color:var(--text-disabled) transparent;transition:color var(--theme-transition-duration) var(--theme-transition-easing),background-color var(--theme-transition-duration) var(--theme-transition-easing),border-color var(--theme-transition-duration) var(--theme-transition-easing),box-shadow var(--theme-transition-duration) var(--theme-transition-easing),backdrop-filter var(--theme-transition-duration) var(--theme-transition-easing)}.weather-panel--loading{display:grid;place-items:center;align-content:center;gap:12px;color:var(--text-secondary);font-size:13px}.weather-panel--loading button{min-height:34px;padding:0 14px;color:var(--text-primary);border:1px solid var(--glass-border);border-radius:6px;background:var(--glass-bg-soft);cursor:pointer}.mobile-sheet-handle{display:none}.weather-summary{display:flex;justify-content:space-between;min-height:210px;padding:25px 27px 20px}.location-name,.condition{margin:0}.location-name{font-size:24px;font-weight:520}.temperature{margin-top:20px;font-size:68px;font-weight:350;line-height:.94}.condition{margin-top:14px;color:var(--text-secondary);font-size:19px}.summary-icon{width:48px;height:48px;margin-top:44px;color:var(--accent)}.metric-grid{display:grid;grid-template-columns:repeat(3,1fr);border-top:1px solid var(--line);border-bottom:1px solid var(--line)}.metric-grid div{min-width:0;padding:15px 13px;border-right:1px solid var(--line);border-bottom:1px solid var(--line)}.metric-grid div:nth-child(3n){border-right:0}.metric-grid div:nth-last-child(-n+3){border-bottom:0}.metric-grid span,.metric-grid strong{display:flex;align-items:center;gap:5px;min-width:0}.metric-grid span{margin-bottom:8px;color:var(--muted);font-size:11px}.metric-grid strong{font-size:14px;font-weight:520;white-space:nowrap}.weather-alert{--alert-color: var(--warning);margin:12px;color:var(--alert-color);border:1px solid color-mix(in srgb,var(--alert-color) 24%,transparent);border-radius:6px;background:color-mix(in srgb,var(--alert-color) 14%,transparent);transition:color var(--theme-transition-duration) var(--theme-transition-easing),background-color var(--theme-transition-duration) var(--theme-transition-easing),border-color var(--theme-transition-duration) var(--theme-transition-easing)}.weather-alert--blue{--alert-color: var(--accent)}.weather-alert--orange{--alert-color: color-mix(in srgb, var(--warning) 72%, var(--danger))}.weather-alert--red{--alert-color: var(--danger)}.alert-strip{display:grid;grid-template-columns:20px 1fr 18px;align-items:center;gap:9px;width:100%;min-height:42px;padding:0 12px;text-align:left;color:inherit;border:0;border-radius:5px;background:transparent;cursor:pointer}.alert-strip:hover,.alert-strip:focus-visible{outline:none;background:var(--glass-highlight)}.alert-strip:focus-visible{box-shadow:inset 0 0 0 2px currentColor}.alert-strip span{overflow:hidden;font-size:12px;text-overflow:ellipsis;white-space:nowrap}.alert-detail{padding:0 12px 12px 41px;animation:alert-detail-in .18s ease-out}.alert-detail strong{display:block;margin-bottom:5px;font-size:11px;font-weight:650}.alert-detail p{margin:0;color:var(--text-secondary);font-size:12px;line-height:1.55}.forecast-section,.effects-section{border-top:1px solid var(--line)}.section-heading,.daily-toggle{display:flex;align-items:center;justify-content:space-between;width:100%;height:45px;padding:0 18px;font-size:13px;font-weight:550}.daily-list{border-bottom:1px solid var(--line)}.daily-row{display:grid;grid-template-columns:42px 24px minmax(72px,1fr) 34px 34px;align-items:center;gap:8px;min-height:38px;padding:0 18px;color:var(--muted);font-size:11px}.daily-row+.daily-row{border-top:1px solid var(--glass-highlight)}.daily-row svg{color:var(--text-secondary)}.daily-row strong{color:var(--text-primary);font-size:12px;font-weight:550;text-align:right}.daily-row small{color:var(--text-muted);font-size:11px;text-align:right}.hourly-strip{display:grid;grid-template-columns:repeat(7,minmax(42px,1fr));padding:3px 11px 15px}.hour-cell{display:grid;justify-items:center;gap:7px;min-width:0;padding:5px 2px}.hour-cell time{color:var(--muted);font-size:10px}.weather-symbol{display:grid;place-items:center;height:24px;color:var(--text-secondary);line-height:24px}.weather-symbol svg{stroke-width:1.6}.hour-cell strong{font-size:11px;font-weight:500}.daily-toggle{color:var(--text-primary);border:0;border-top:1px solid var(--line);border-bottom:1px solid var(--line);background:transparent;cursor:pointer}.effects-section{padding-bottom:12px}.live-label{color:var(--accent);font-size:10px}.live-label:before{display:inline-block;width:6px;height:6px;margin-right:5px;border-radius:50%;background:currentColor;content:""}.live-label--cached{color:var(--text-secondary)}.live-label--mock{color:var(--warning)}.effect-control{display:grid;grid-template-columns:48px 1fr 30px;align-items:center;gap:8px;min-height:42px;padding:0 18px;color:var(--text-secondary);font-size:12px}.effect-control input,.timeline-range{accent-color:var(--accent)}.effect-control input{width:100%}.effect-control output{color:var(--text-muted);text-align:right;font-variant-numeric:tabular-nums}.map-tools{position:absolute;z-index:20;top:auto;right:22px;bottom:150px;display:grid;gap:8px}.compass-control{position:absolute;z-index:20;top:84px;right:22px;display:grid;place-items:center;width:54px;height:54px;padding:0;color:var(--text-primary);border:1px solid var(--glass-border);border-radius:50%;background:var(--glass-bg);-webkit-backdrop-filter:blur(var(--effective-glass-blur)) saturate(var(--effective-glass-saturation));backdrop-filter:blur(var(--effective-glass-blur)) saturate(var(--effective-glass-saturation));box-shadow:var(--effective-glass-shadow),inset 0 0 0 5px #ffffff08;cursor:pointer;transition:color .18s ease,background-color .18s ease,transform .18s ease}.compass-control:hover,.compass-control:focus-visible{outline:none;color:var(--accent);background:var(--glass-bg-strong);transform:rotate(-8deg)}.compass-control svg{width:27px;height:27px;stroke-width:1.45}.map-tools>button,.view-switch,.zoom-switch{width:46px;color:var(--text-secondary);border:1px solid var(--glass-border);border-radius:var(--radius);background:var(--glass-bg);-webkit-backdrop-filter:blur(var(--effective-glass-blur)) saturate(var(--effective-glass-saturation));backdrop-filter:blur(var(--effective-glass-blur)) saturate(var(--effective-glass-saturation));box-shadow:var(--effective-glass-shadow);transition:color var(--theme-transition-duration) var(--theme-transition-easing),background-color var(--theme-transition-duration) var(--theme-transition-easing),border-color var(--theme-transition-duration) var(--theme-transition-easing),box-shadow var(--theme-transition-duration) var(--theme-transition-easing),backdrop-filter var(--theme-transition-duration) var(--theme-transition-easing)}.map-tools>button{height:46px}.map-settings-panel{position:absolute;z-index:29;top:72px;right:104px;display:grid;grid-template-columns:1fr 1fr;align-items:center;gap:10px 12px;width:min(430px,calc(100vw - 44px));max-height:calc(100dvh - 86px);padding:13px;overflow-y:auto;box-sizing:border-box;overscroll-behavior:contain;color:var(--text-secondary);border:1px solid var(--glass-border);border-radius:var(--radius);background:var(--glass-bg);-webkit-backdrop-filter:blur(var(--effective-glass-blur)) saturate(var(--effective-glass-saturation));backdrop-filter:blur(var(--effective-glass-blur)) saturate(var(--effective-glass-saturation));box-shadow:var(--effective-glass-shadow);transition:color var(--theme-transition-duration) var(--theme-transition-easing),background-color var(--theme-transition-duration) var(--theme-transition-easing),border-color var(--theme-transition-duration) var(--theme-transition-easing),box-shadow var(--theme-transition-duration) var(--theme-transition-easing)}.bookmarks-panel{position:absolute;z-index:29;top:72px;right:104px;display:grid;gap:8px;width:min(330px,calc(100vw - 44px));max-height:min(430px,calc(100vh - 230px));padding:13px;overflow:auto;color:var(--text-secondary);border:1px solid var(--glass-border);border-radius:var(--radius);background:var(--glass-bg);-webkit-backdrop-filter:blur(var(--effective-glass-blur)) saturate(var(--effective-glass-saturation));backdrop-filter:blur(var(--effective-glass-blur)) saturate(var(--effective-glass-saturation));box-shadow:var(--effective-glass-shadow)}.route-library-panel{position:absolute;z-index:29;right:82px;bottom:150px;display:grid;gap:10px;width:min(330px,calc(100vw - 44px));max-height:min(430px,calc(100vh - 230px));padding:13px;overflow:auto;color:var(--text-secondary);border:1px solid var(--glass-border);border-radius:var(--radius);background:var(--glass-bg);-webkit-backdrop-filter:blur(var(--effective-glass-blur)) saturate(var(--effective-glass-saturation));backdrop-filter:blur(var(--effective-glass-blur)) saturate(var(--effective-glass-saturation));box-shadow:var(--effective-glass-shadow)}.route-library-panel header,.route-library-panel header>div,.route-library-current,.route-library-item{display:flex;align-items:center;justify-content:space-between;gap:8px}.route-library-panel header{padding-bottom:9px;color:var(--text-primary);font-size:12px;border-bottom:1px solid var(--line)}.route-library-panel header>div{justify-content:flex-start}.route-library-panel button{color:var(--text-secondary);border:1px solid var(--glass-border);border-radius:4px;background:var(--glass-bg-soft);font:inherit;cursor:pointer}.route-library-panel header>button{display:inline-flex;align-items:center;gap:5px;min-height:28px;padding:0 8px;font-size:10px}.route-file-input{display:none}.route-library-current{padding:4px 0 10px;border-bottom:1px solid var(--line)}.route-library-current>div,.route-library-item>button:first-child{display:grid;min-width:0;gap:3px}.route-library-current small,.route-library-current span,.route-library-item span{color:var(--text-muted);font-size:9px}.route-library-current strong,.route-library-item strong{overflow:hidden;color:var(--text-primary);text-overflow:ellipsis;white-space:nowrap}.route-library-current>button{min-height:28px;padding:0 10px;color:var(--accent);font-size:10px}.route-library-list{display:grid;gap:8px}.route-library-list>p{margin:8px 0;color:var(--text-muted);font-size:11px;text-align:center}.route-library-item{padding-top:8px;border-top:1px solid var(--line)}.route-library-item>button:first-child{flex:1;padding:7px 8px;text-align:left}.route-library-item>button:last-child{display:grid;place-items:center;width:30px;height:30px;padding:0}.route-library-panel button:hover,.route-library-panel button:focus-visible{color:var(--text-primary);background:var(--glass-highlight)}.bookmarks-panel header,.bookmark-item{display:flex;align-items:center;justify-content:space-between;gap:8px}.bookmarks-panel header{padding-bottom:9px;color:var(--text-primary);font-size:12px;border-bottom:1px solid var(--line)}.bookmarks-panel header button,.bookmark-item>button{color:var(--text-secondary);border:1px solid var(--glass-border);border-radius:4px;background:var(--glass-bg-soft);font:inherit;cursor:pointer}.bookmarks-panel header button{display:inline-flex;align-items:center;gap:5px;min-height:28px;padding:0 8px;font-size:10px}.bookmarks-panel>p{margin:8px 0;color:var(--text-muted);font-size:11px;text-align:center}.bookmark-item{padding-top:8px;border-top:1px solid var(--line)}.bookmark-item>button:first-child{display:grid;flex:1;gap:4px;min-width:0;padding:8px;text-align:left}.bookmark-item strong{overflow:hidden;color:var(--text-primary);text-overflow:ellipsis;white-space:nowrap}.bookmark-item span{color:var(--text-muted);font-size:9px}.bookmark-item>button:last-child{display:grid;place-items:center;width:30px;height:30px;padding:0}.map-settings-heading{display:flex;grid-column:1 / -1;align-items:center;justify-content:space-between;min-height:28px;padding-bottom:9px;color:var(--text-primary);font-size:12px;font-weight:600;border-bottom:1px solid var(--line)}.map-settings-heading small{color:var(--text-muted);font-size:10px;font-weight:500}.terrain-control-group,.base-layer-control,.map-source-select,.satellite-label-toggle,.terrain-camera-select,.terrain-readout{display:flex;align-items:center;gap:6px;white-space:nowrap;font-size:11px}.map-settings-panel .terrain-control-group,.map-settings-panel .terrain-readout,.map-settings-panel .radar-layer-control,.map-settings-panel .radar-opacity-control,.map-settings-panel .layer-preset-control{grid-column:1 / -1}.map-settings-panel .terrain-control-group{padding-top:2px}.map-settings-panel .terrain-segmented,.map-settings-panel .terrain-segmented button{flex:1}.layer-preset-control{display:grid;grid-template-columns:1fr repeat(3,minmax(0,.7fr));align-items:center;gap:6px;min-height:34px;padding-top:7px;color:var(--text-secondary);border-top:1px solid var(--line);font-size:11px}.layer-preset-control button{min-height:28px;padding:0 6px;color:var(--text-muted);border:1px solid var(--glass-border);border-radius:4px;background:var(--glass-bg-soft);font:inherit;cursor:pointer;transition:color .18s ease-out,background-color .18s ease-out,border-color .18s ease-out}.layer-preset-control button:hover,.layer-preset-control button:focus-visible{color:var(--text-primary);background:var(--glass-highlight)}.layer-preset-control button.is-active{color:var(--accent);border-color:var(--accent);background:var(--accent-soft)}.layer-preset-control button:disabled{cursor:not-allowed;opacity:.42}.radar-layer-control,.radar-opacity-control{display:flex;align-items:center;gap:8px;min-height:36px;font-size:11px}.radar-layer-control{padding-top:7px;border-top:1px solid var(--line)}.radar-layer-control>div{display:grid;flex:1;gap:2px}.radar-layer-control small{color:var(--text-muted);font-size:9px}.radar-layer-switch{position:relative;width:34px;height:20px}.radar-layer-switch input{position:absolute;width:1px;height:1px;opacity:0}.radar-layer-switch span{position:absolute;inset:0;border:1px solid var(--glass-border);border-radius:10px;background:var(--glass-bg-soft);cursor:pointer;transition:background-color .18s ease-out,border-color .18s ease-out}.radar-layer-switch span:after{position:absolute;top:3px;left:3px;width:12px;height:12px;border-radius:50%;background:var(--text-muted);content:"";transition:transform .18s ease-out,background-color .18s ease-out}.radar-layer-switch input:checked+span{border-color:var(--accent);background:var(--accent-soft)}.radar-layer-switch input:checked+span:after{background:var(--accent);transform:translate(14px)}.radar-layer-switch input:focus-visible+span{outline:2px solid var(--accent);outline-offset:2px}.radar-layer-switch input:disabled+span{cursor:not-allowed;opacity:.42}.radar-opacity-control span{min-width:68px}.radar-opacity-control input{flex:1;accent-color:var(--accent)}.radar-opacity-control strong{min-width:34px;color:var(--text-primary);font-size:10px;font-variant-numeric:tabular-nums;text-align:right}@media(prefers-reduced-motion:reduce){.radar-layer-switch span,.radar-layer-switch span:after,.layer-preset-control button{transition:none}}.terrain-segmented,.base-layer-control{display:inline-flex;overflow:hidden;border:1px solid var(--glass-border);border-radius:5px}.terrain-segmented button,.base-layer-control button,.map-source-select select,.terrain-camera-select select{min-height:30px;padding:0 9px;color:var(--text-secondary);border:0;background:transparent;font:inherit;cursor:pointer}.terrain-segmented button+button{border-left:1px solid var(--glass-border)}.base-layer-control button+button{border-left:1px solid var(--glass-border)}.terrain-segmented button:hover,.terrain-segmented button:focus-visible,.base-layer-control button:hover,.base-layer-control button:focus-visible,.map-source-select select:focus-visible,.terrain-camera-select select:focus-visible{color:var(--text-primary);background:var(--glass-highlight)}.terrain-segmented button.is-active,.base-layer-control button.is-active{color:var(--accent);background:var(--accent-soft)}.terrain-segmented button:disabled,.base-layer-control button:disabled{color:var(--text-muted);cursor:not-allowed;opacity:.42}.satellite-label-toggle{min-height:30px;padding:0 7px;border-left:1px solid var(--glass-border);cursor:pointer}.satellite-label-toggle input{width:14px;height:14px;margin:0;accent-color:var(--accent)}.satellite-label-toggle:has(input:disabled){cursor:not-allowed;opacity:.42}.map-source-select{color:var(--text-secondary)}.map-source-select select{min-width:104px;padding-right:3px;padding-left:3px;color:var(--text-primary)}.terrain-camera-select{padding-left:12px;border-left:1px solid var(--glass-border)}.terrain-camera-select select{min-width:54px;padding-right:3px;padding-left:3px;color:var(--text-primary)}.terrain-readout{gap:10px;padding-left:12px;border-left:1px solid var(--glass-border);font-variant-numeric:tabular-nums}.terrain-readout strong{color:var(--text-primary);font-weight:600}.map-tools .is-active{color:var(--accent);background:var(--accent-soft)}.map-viewport-readout{position:absolute;z-index:19;right:24px;bottom:132px;display:grid;justify-items:end;gap:5px;color:var(--text-muted);font-size:10px;font-variant-numeric:tabular-nums;pointer-events:none}.map-scale-bar{position:relative;height:8px;border-right:1px solid var(--text-secondary);border-bottom:1px solid var(--text-secondary);border-left:1px solid var(--text-secondary)}.map-scale-bar:before{position:absolute;right:0;bottom:0;left:0;height:3px;border-top:1px solid var(--text-secondary);content:""}.map-scale-bar span{position:absolute;right:-1px;bottom:7px;color:var(--text-secondary);font-size:10px}.measurement-panel{position:absolute;z-index:26;right:82px;bottom:212px;display:grid;gap:10px;width:220px;padding:13px;color:var(--text-secondary);border:1px solid var(--glass-border);border-radius:var(--radius);background:var(--glass-bg);-webkit-backdrop-filter:blur(var(--effective-glass-blur)) saturate(var(--effective-glass-saturation));backdrop-filter:blur(var(--effective-glass-blur)) saturate(var(--effective-glass-saturation));box-shadow:var(--effective-glass-shadow)}.screenshot-menu{position:absolute;z-index:27;right:82px;bottom:150px;display:grid;width:148px;overflow:hidden;color:var(--text-primary);border:1px solid var(--glass-border);border-radius:var(--radius);background:var(--glass-bg);-webkit-backdrop-filter:blur(var(--effective-glass-blur)) saturate(var(--effective-glass-saturation));backdrop-filter:blur(var(--effective-glass-blur)) saturate(var(--effective-glass-saturation));box-shadow:var(--effective-glass-shadow)}.screenshot-menu button{display:flex;align-items:center;gap:8px;min-height:38px;padding:0 12px;color:var(--text-secondary);border:0;background:transparent;font-size:11px;cursor:pointer}.screenshot-menu button+button{border-top:1px solid var(--line)}.screenshot-menu button:hover,.screenshot-menu button:focus-visible{color:var(--text-primary);background:var(--glass-highlight)}.measurement-panel header,.measurement-result,.measurement-actions,.measurement-mode-switch{display:flex;align-items:center;justify-content:space-between;gap:8px}.measurement-panel header{color:var(--text-primary);font-size:12px}.measurement-panel header button{width:24px;height:24px;padding:0;color:var(--text-muted);border:0;background:transparent;cursor:pointer}.measurement-mode-switch{overflow:hidden;border:1px solid var(--glass-border);border-radius:5px}.measurement-mode-switch button{flex:1;min-height:30px;color:var(--text-muted);border:0;background:transparent;font-size:11px;cursor:pointer}.measurement-mode-switch button+button{border-left:1px solid var(--glass-border)}.measurement-mode-switch button.is-active{color:var(--accent);background:var(--accent-soft)}.measurement-result{padding:9px 0;border-top:1px solid var(--line);border-bottom:1px solid var(--line);font-size:11px}.measurement-result strong{color:var(--text-primary);font-size:15px}.measurement-actions button{display:inline-flex;align-items:center;gap:5px;min-height:28px;padding:0 8px;color:var(--text-secondary);border:1px solid var(--glass-border);border-radius:4px;background:var(--glass-bg-soft);font:inherit;font-size:11px;cursor:pointer}.measurement-actions button:disabled{cursor:not-allowed;opacity:.4}.measurement-panel p{margin:0;color:var(--text-muted);font-size:10px}.view-switch,.zoom-switch{display:grid;overflow:hidden;margin-top:0}.view-switch button,.zoom-switch button{width:100%;height:43px;font-size:12px;border-radius:0}.zoom-switch{margin-top:0}.zoom-switch button+button,.view-switch button+button{border-top:1px solid var(--line)}.weather-timeline{position:absolute;z-index:20;right:88px;bottom:20px;left:392px;display:grid;grid-template-columns:48px minmax(0,1fr) 92px;align-items:center;gap:12px;height:112px;padding:10px 14px;color:var(--text-primary);border:1px solid var(--glass-border);border-radius:var(--radius);background:var(--glass-bg);-webkit-backdrop-filter:blur(var(--effective-glass-blur)) saturate(var(--effective-glass-saturation));backdrop-filter:blur(var(--effective-glass-blur)) saturate(var(--effective-glass-saturation));box-shadow:var(--effective-glass-shadow);transition:color var(--theme-transition-duration) var(--theme-transition-easing),background-color var(--theme-transition-duration) var(--theme-transition-easing),border-color var(--theme-transition-duration) var(--theme-transition-easing),box-shadow var(--theme-transition-duration) var(--theme-transition-easing),backdrop-filter var(--theme-transition-duration) var(--theme-transition-easing)}.topbar,.search-results,.action-status,.weather-panel,.map-tools>button,.view-switch,.zoom-switch,.weather-timeline,.map-status{-webkit-backdrop-filter:blur(var(--effective-glass-blur)) saturate(var(--effective-glass-saturation))}.timeline-play{display:grid;place-items:center;width:43px;height:43px;color:var(--text-primary);border:1px solid var(--glass-border);border-radius:50%;background:var(--glass-bg-soft);cursor:pointer}.timeline-chart-wrap{position:relative;min-width:0;height:90px}.timeline-echart{width:100%;height:100%}.timeline-legend{position:absolute;z-index:2;top:1px;left:8px;display:flex;gap:12px;color:var(--text-muted);font-size:9px;pointer-events:none}.timeline-legend span{display:inline-flex;align-items:center;gap:4px}.timeline-legend i{display:inline-block;width:10px;height:2px;background:var(--accent)}.timeline-legend .precipitation-key{height:6px;opacity:.55}.timeline-range{position:absolute;right:0;bottom:2px;left:0;width:100%;height:16px;margin:0;opacity:.01;cursor:pointer}.timeline-time{display:grid;gap:5px;color:var(--warning);font-variant-numeric:tabular-nums;text-align:right}.timeline-time strong{font-size:13px;font-weight:650}.timeline-time span{color:var(--text-muted);font-size:10px;white-space:nowrap}.elevation-profile{grid-template-columns:132px minmax(240px,1fr) minmax(260px,.9fr);gap:14px;padding-right:38px}.elevation-profile-heading{display:flex;align-items:center;gap:9px;min-width:0;color:var(--accent)}.elevation-profile-heading div{display:grid;min-width:0;gap:4px}.elevation-profile-heading strong{color:var(--text-primary);font-size:13px}.elevation-profile-heading span{color:var(--text-muted);font-size:10px;white-space:nowrap}.elevation-profile-chart{width:100%;height:90px}.elevation-profile-stats{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px 12px}.elevation-profile-stats span{display:grid;min-width:0;gap:3px}.elevation-profile-stats small{color:var(--text-muted);font-size:9px}.elevation-profile-stats strong{overflow:hidden;color:var(--text-primary);font-size:11px;font-variant-numeric:tabular-nums;text-overflow:ellipsis;white-space:nowrap}.elevation-profile-close{position:absolute;top:8px;right:8px;display:grid;place-items:center;width:26px;height:26px;padding:0;color:var(--text-muted);border:0;background:transparent;cursor:pointer}.elevation-profile-actions{position:absolute;top:8px;right:40px;display:flex;overflow:hidden;border:1px solid var(--glass-border);border-radius:5px;background:var(--glass-bg-soft)}.elevation-profile-actions button{display:grid;place-items:center;width:27px;height:25px;padding:0;color:var(--text-muted);border:0;background:transparent;cursor:pointer}.elevation-profile-actions button+button{border-left:1px solid var(--line)}.elevation-profile-actions button:hover,.elevation-profile-actions button:focus-visible{color:var(--text-primary);background:var(--glass-highlight)}.elevation-profile-actions button:disabled{color:var(--text-dim);cursor:wait}.elevation-profile-actions .is-loading svg{animation:route-risk-spin .9s linear infinite}.elevation-profile-actions .is-active{color:var(--text-primary);background:var(--glass-highlight)}.route-weather-setup{position:absolute;right:40px;bottom:calc(100% + 8px);z-index:12;display:grid;grid-template-columns:minmax(164px,1fr) 92px auto;width:min(460px,calc(100vw - 32px));padding:12px;gap:10px;color:var(--text-primary);border:1px solid var(--glass-border);border-radius:8px;background:#08161df0;box-shadow:0 12px 32px #00000047;-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px)}.route-weather-setup-heading{display:grid;grid-column:1 / -1;gap:2px}.route-weather-setup-heading strong{font-size:12px}.route-weather-setup-heading span,.route-weather-setup small{color:var(--text-muted);font-size:9px}.route-weather-setup label{display:grid;min-width:0;gap:4px;color:var(--text-muted);font-size:9px}.route-weather-setup input{box-sizing:border-box;width:100%;height:30px;padding:0 8px;color:var(--text-primary);color-scheme:dark;border:1px solid var(--line);border-radius:5px;outline:none;background:#ffffff0d}.route-weather-setup input:focus{border-color:var(--accent)}.route-weather-setup>button{align-self:end;height:30px;padding:0 12px;color:#07151b;font-size:11px;font-weight:650;border:0;border-radius:5px;background:var(--accent);cursor:pointer}.route-weather-setup>button:disabled{opacity:.5;cursor:wait}.route-weather-setup>small{grid-column:1 / -1}@keyframes route-risk-spin{to{transform:rotate(360deg)}}.elevation-profile-close:hover,.elevation-profile-close:focus-visible{color:var(--text-primary)}@keyframes cloud-drift{0%{translate:-2% 0;scale:1}to{translate:5% 3%;scale:1.05}}@keyframes storm-cloud-drift{0%{transform:translate3d(-3%,0,0) scale(1.02)}to{transform:translate3d(4%,3%,0) scale(1.08)}}@keyframes mist-drift{0%{translate:-3% 0}to{translate:4% 1%}}@keyframes wind-sweep{0%{transform:translate3d(-9%,0,0)}55%{transform:translate3d(5%,1%,0)}to{transform:translate3d(11%,0,0)}}@keyframes lens-rain-fall{0%{transform:translate3d(0,-4%,0)}to{transform:translate3d(1%,8%,0)}}@keyframes lightning{0%,85.7%,86.5%,87.4%,to{opacity:0}85.9%{opacity:.94}86.2%{opacity:.16}86.8%{opacity:.72}}@keyframes locating-pulse{0%,to{opacity:.5;transform:scale(.88)}50%{opacity:1;transform:scale(1.08)}}@keyframes alert-detail-in{0%{opacity:0;transform:translateY(-4px)}to{opacity:1;transform:translateY(0)}}@media(max-width:980px){.topbar{grid-template-columns:auto minmax(180px,1fr) auto;gap:12px;padding:0 16px}.workspace-view-switch{position:absolute;z-index:31;top:72px;left:50%;width:270px;transform:translate(-50%)}.workspace-layout--weather .workspace-weather-pane,.workspace-layout--split .workspace-weather-pane,.workspace-layout--split .workspace-map-pane{top:64px}.workspace-layout--split .workspace-weather-pane{right:45%}.workspace-layout--split .workspace-map-pane{left:55%}.top-actions button:nth-child(3),.top-actions button:nth-child(5),.updated-at{display:none}.brand strong{font-size:17px}.weather-panel{width:320px}.weather-timeline{left:360px}.elevation-profile{grid-template-columns:112px minmax(220px,1fr)}.elevation-profile-stats{display:none}.map-settings-panel{right:72px;width:min(400px,calc(100vw - 92px))}.bookmarks-panel{top:60px;right:10px;left:10px;width:auto;max-height:260px}.route-library-panel{right:72px}}@media(min-width:981px)and (max-width:1180px){.topbar{grid-template-columns:160px minmax(220px,1fr) 240px auto;gap:12px;padding:0 16px}.updated-at{display:none}.workspace-view-switch button{padding:0 5px}}@media(max-width:720px){html,body,#root{overflow:hidden}.app-shell{--effective-glass-blur: 13px;--effective-glass-saturation: 112%;--effective-glass-shadow: 0 12px 28px rgb(2 10 15 / 22%)}.topbar{grid-template-columns:auto 1fr auto;height:52px;padding:0 12px}.forecast-time-control,.data-quality-panel{top:102px;right:10px;left:10px;width:auto;transform:none}.data-quality-source{grid-template-columns:8px minmax(82px,1fr) auto 28px}.data-quality-source>div:nth-child(3){max-width:132px}.workspace-view-switch{top:60px;width:132px}.workspace-view-switch button{padding:0}.workspace-view-switch button span,.workspace-view-switch button{font-size:0}.workspace-view-switch button svg{width:15px;height:15px}.workspace-layout--weather .workspace-weather-pane,.workspace-layout--split .workspace-weather-pane,.workspace-layout--split .workspace-map-pane{top:52px}.workspace-layout--split .workspace-weather-pane{right:0;bottom:50%}.workspace-layout--split .workspace-map-pane{top:50%;left:0}.weather-grid-toolbar{top:48px;right:10px;left:10px;gap:8px}.workspace-layout--split .weather-grid-toolbar{top:48px}.app-shell[data-workspace-view=split] .compass-control{top:calc(50% + 14px)}.app-shell[data-workspace-view=split] .map-tools{bottom:12px}.weather-grid-title{min-width:0}.weather-grid-title span,.weather-grid-layers button span{display:none}.weather-grid-layers{margin-left:auto}.weather-grid-layers button{width:32px;padding:0}.weather-grid-timeline{right:8px;bottom:8px;left:8px;grid-template-columns:30px minmax(80px,1fr) auto;gap:6px}.weather-grid-timeline span{display:none}.brand-mark{width:25px;height:25px}.brand strong,.top-actions button:nth-child(n+3){display:none}.search-box{height:34px}.weather-atmosphere{top:52px}.sky-light-layer{filter:blur(12px)}.cloud-layer{inset:-8% -28% 42%;filter:blur(14px)}.storm-cloud-layer{inset:-12% -30% 36%;filter:blur(17px)}.mist-layer{filter:blur(19px)}.wind-layer>div{opacity:.36;background-size:auto 100%}.lens-rain-layer{background-size:150px 210px,210px 280px,120px 180px}.lightning-layer:after{left:68%;height:34%}.map-tools{top:auto;right:12px;bottom:270px;grid-template-columns:repeat(5,42px);align-items:start;transition:opacity .18s ease,transform .18s ease}.compass-control{top:66px;right:12px;width:44px;height:44px}.map-settings-panel{top:60px;right:62px;left:10px;grid-template-columns:1fr 1fr;width:auto;gap:8px;padding:10px}.terrain-control-group{min-width:0}.base-layer-control button{min-height:26px}.satellite-label-toggle{min-height:26px;padding-right:3px;padding-left:6px}.map-source-select select{min-width:82px;max-width:94px;padding-right:1px;padding-left:1px}.terrain-control-group>span,.terrain-readout{display:none}.terrain-segmented{width:100%}.terrain-segmented button{flex:1;padding:0 6px}.terrain-camera-select{padding-left:8px}.terrain-camera-select span{display:none}.imagery-status{top:152px}.app-shell:has(.weather-panel.is-sheet-open) .map-tools{opacity:0;pointer-events:none;transform:translateY(-6px)}.app-shell:has(.measurement-panel) .map-tools,.app-shell:has(.elevation-profile) .map-tools{opacity:0;pointer-events:none;transform:translateY(-6px)}.map-tools>button,.view-switch,.zoom-switch{width:42px}.map-tools>button{height:42px}.map-tools>button:last-child{display:none}.map-tools button[data-planned],.zoom-switch{display:none}.route-library-panel{inset:60px 10px auto;width:auto;max-height:310px}.measurement-panel{right:62px;bottom:270px;width:min(210px,calc(100vw - 82px))}.map-viewport-readout{right:auto;bottom:270px;left:14px;justify-items:start}.app-shell:has(.measurement-panel) .map-viewport-readout{opacity:0}.view-switch button{height:38px}.weather-panel{inset:auto 10px -380px;width:auto;height:540px;border-radius:8px 8px 0 0;transition:transform .28s cubic-bezier(.2,.8,.2,1),color var(--theme-transition-duration) var(--theme-transition-easing),background-color var(--theme-transition-duration) var(--theme-transition-easing),border-color var(--theme-transition-duration) var(--theme-transition-easing),box-shadow var(--theme-transition-duration) var(--theme-transition-easing),backdrop-filter var(--theme-transition-duration) var(--theme-transition-easing)}.weather-panel.is-sheet-open{transform:translateY(-340px)}.mobile-sheet-handle{position:sticky;z-index:3;top:0;display:grid;grid-template-columns:1fr auto;align-items:center;width:100%;height:24px;padding:0 12px;color:var(--text-secondary);border:0;border-bottom:1px solid var(--glass-border);background:var(--glass-bg-strong);cursor:pointer}.mobile-sheet-handle span{justify-self:center;width:38px;height:3px;margin-left:16px;border-radius:2px;background:var(--text-disabled)}.weather-summary{min-height:142px;padding:18px 20px 12px}.temperature{margin-top:12px;font-size:54px}.condition{margin-top:8px;font-size:15px}.summary-icon{margin-top:24px}.weather-timeline{right:10px;bottom:180px;left:10px;grid-template-columns:38px minmax(0,1fr);height:82px;min-height:82px;padding:6px 8px;transition:transform .28s cubic-bezier(.2,.8,.2,1),color var(--theme-transition-duration) var(--theme-transition-easing),background-color var(--theme-transition-duration) var(--theme-transition-easing),border-color var(--theme-transition-duration) var(--theme-transition-easing),box-shadow var(--theme-transition-duration) var(--theme-transition-easing),backdrop-filter var(--theme-transition-duration) var(--theme-transition-easing)}.elevation-profile{grid-template-columns:minmax(0,1fr);height:140px;min-height:140px;padding:30px 34px 6px 8px}.elevation-profile-heading{display:none}.elevation-profile-chart{height:104px}.elevation-profile-actions{top:4px;right:38px}.elevation-profile-close{top:4px;right:7px}.route-weather-setup{right:0;grid-template-columns:minmax(0,1fr) 86px;width:min(340px,calc(100vw - 20px))}.route-weather-setup>button{grid-column:1 / -1}.app-shell:has(.weather-panel.is-sheet-open) .weather-timeline{transform:translateY(-340px)}.timeline-time{display:none}.timeline-chart-wrap{height:68px}.timeline-legend{display:none}.map-status{top:72px;max-width:calc(100% - 100px);min-width:0}}@media(max-width:900px)and (max-height:500px){.map-settings-panel{top:62px;right:12px;left:12px;width:min(420px,calc(100vw - 24px))}.map-tools{top:66px;bottom:auto;right:12px;display:flex;align-items:flex-start;gap:6px}.map-tools>button,.view-switch,.zoom-switch{width:42px}.map-tools>button{height:42px}.view-switch,.zoom-switch{grid-template-columns:repeat(2,42px);width:84px;margin-top:0}.view-switch button,.zoom-switch button{height:42px}}@media(prefers-reduced-motion:reduce){.app-shell{--theme-transition-duration: 1ms}.cloud-layer,.storm-cloud-layer,.mist-layer,.wind-layer>div,.lens-rain-layer,.rain-layer i,.lightning-layer,.alert-detail{animation:none}.precipitation-canvas,.wind-field-canvas,.wind-layer,.lens-rain-layer,.lightning-layer{display:none}.weather-grade,.sky-light-layer,.cloud-layer,.storm-cloud-layer,.mist-layer,.surface-haze-layer,.map-tools,.weather-panel,.weather-timeline{transition-duration:1ms}}@media(prefers-reduced-transparency:reduce){.topbar,.search-results,.action-status,.weather-panel,.map-tools>button,.view-switch,.zoom-switch,.weather-timeline,.map-status{background:var(--glass-bg-opaque);backdrop-filter:none;-webkit-backdrop-filter:none}.search-box,.mobile-sheet-handle{background:var(--glass-bg-strong)}}
