:root{--bg-primary:#0f1117;--bg-secondary:#161822;--bg-tertiary:#1e2030;--wt-return-bg:#28243e;--bg-glass:#161822d9;--bg-glass-hover:#1e2030e6;--text-primary:#e8eaf0;--text-secondary:#9ca3af;--text-muted:#6b7280;--accent-primary:#00ff7f;--accent-secondary:#007bff;--accent-gradient:linear-gradient(135deg, #00ff7f 0%, #007bff 100%);--accent-gradient-subtle:linear-gradient(135deg, #00ff7f26 0%, #007bff26 100%);--danger:#f87171;--warning:#fbbf24;--success:#34d399;--info:#60a5fa;--border:#ffffff0f;--border-hover:#ffffff1f;--shadow-sm:0 2px 8px #0000004d;--shadow-md:0 4px 16px #0006;--shadow-lg:0 8px 32px #00000080;--shadow-glow:0 0 20px #6ee7b726;--radius-sm:8px;--radius-md:12px;--radius-lg:16px;--radius-xl:20px;--panel-width:380px;--toolbar-height:56px;--bottom-panel-height:190px;--transition-fast:.15s ease;--transition-normal:.25s ease;--transition-smooth:.35s cubic-bezier(.4, 0, .2, 1);--bg-soft:#ffffff08;--bg-soft-hover:#ffffff0f;--bg-overlay:#ffffff0d;--bg-glass-sub:#ffffff0a;--border-color:#ffffff1a;--border-color-strong:#fff3}html{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}html.light-theme{--bg-primary:#f8fafc;--bg-secondary:#fff;--bg-tertiary:#f1f5f9;--wt-return-bg:#eceaf9;--bg-glass:#ffffffd9;--bg-glass-hover:#fffffff2;--text-primary:#0f172a;--text-secondary:#475569;--text-muted:#94a3b8;--accent-primary:#00d16b;--accent-secondary:#007bff;--accent-gradient:linear-gradient(135deg, #00d16b 0%, #007bff 100%);--accent-gradient-subtle:linear-gradient(135deg, #00d16b1a 0%, #007bff1a 100%);--danger:#ef4444;--warning:#f59e0b;--success:#10b981;--info:#3b82f6;--border:#0000001a;--border-hover:#00000026;--shadow-sm:0 1px 3px #0000001a;--shadow-md:0 4px 12px #00000014;--shadow-lg:0 8px 24px #0000001f;--shadow-glow:0 0 20px #10b98126;--bg-soft:#00000008;--bg-soft-hover:#0000000f;--bg-overlay:#0000000d;--bg-glass-sub:#0000000a;--border-color:#0000001a;--border-color-strong:#0003;--lightningcss-light:initial;--lightningcss-dark: ;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}*,:before,:after{box-sizing:border-box;margin:0;padding:0}html,body{width:100%;height:100%;color:var(--text-primary);background:var(--bg-primary);-webkit-font-smoothing:antialiased;transition:background-color var(--transition-normal), color var(--transition-normal);font-family:Inter,Noto Sans TC,-apple-system,BlinkMacSystemFont,sans-serif;font-size:14px;overflow:hidden}input,select,textarea,button{color:inherit;font-family:inherit}select option{background-color:var(--bg-secondary);color:var(--text-primary)}html.light-theme ::-webkit-calendar-picker-indicator{filter:invert(0)}html:not(.light-theme) ::-webkit-calendar-picker-indicator{filter:invert(.8)}::-webkit-scrollbar{width:6px}::-webkit-scrollbar-track{background:0 0}::-webkit-scrollbar-thumb{background:#ffffff1a;border-radius:3px}::-webkit-scrollbar-thumb:hover{background:#fff3}.loading-screen{z-index:10000;background:var(--bg-primary);justify-content:center;align-items:center;transition:opacity .5s,visibility .5s;display:flex;position:fixed;inset:0}.loading-screen.hidden{opacity:0;visibility:hidden;pointer-events:none}.loading-content{text-align:center}.loading-icon{margin-bottom:16px;animation:1.5s ease-in-out infinite pulse}.loading-icon img{margin:0 auto;display:block}.app-logo-icon{display:block}.loading-content h2{background:var(--accent-gradient);-webkit-text-fill-color:transparent;-webkit-background-clip:text;background-clip:text;margin-bottom:8px;font-size:28px;font-weight:700}.loading-content p{color:var(--text-secondary);margin-bottom:20px}.loading-bar{background:var(--bg-tertiary);border-radius:2px;width:200px;height:3px;margin:0 auto;overflow:hidden}.loading-bar-fill{background:var(--accent-gradient);border-radius:2px;width:40%;height:100%;animation:1.2s ease-in-out infinite loadingSlide}.app-busy-overlay{--busy-overlay-edge:12px;--busy-overlay-zoom-reserve:62px;top:calc(var(--toolbar-height) + env(safe-area-inset-top,0px) + 10px);left:var(--busy-overlay-zoom-reserve);right:var(--busy-overlay-edge);z-index:10020;-webkit-backdrop-filter:none;backdrop-filter:none;pointer-events:none;background:0 0;justify-content:center;height:auto;min-height:0;padding:0;display:flex;position:fixed;bottom:auto}.app-busy-overlay .loading-content{z-index:1;text-align:left;background:#0f172ae6;border:1px solid #94a3b847;border-radius:8px;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:4px 12px;width:min(520px,100%);min-width:0;margin:0 auto;padding:7px 12px 8px;display:grid;position:relative;box-shadow:0 8px 26px #00000047}.route-busy-center-brand{z-index:2;text-align:center;pointer-events:none;width:min(100vw,360px);position:fixed;top:50%;left:50%;transform:translate(-50%,-50%)}.route-busy-brand-logo{margin-bottom:0}.route-busy-brand-logo img{width:256px;height:256px}.route-busy-brand-text{background:var(--accent-gradient);-webkit-text-fill-color:transparent;max-width:min(80vw,360px);color:var(--text-primary);text-shadow:0 2px 12px #0000002e;overflow-wrap:anywhere;-webkit-background-clip:text;background-clip:text;margin:.83em auto 8px;font-size:28px;font-weight:700;line-height:normal}.route-busy-brand-reserve{visibility:hidden}.route-busy-brand-reserve p{color:var(--text-secondary);margin:1em 0 20px}html.light-theme .app-busy-overlay .loading-content{background:#fffffff0;border-color:#64748b38;box-shadow:0 8px 26px #0f172a24}.app-busy-overlay .loading-content h2{text-overflow:ellipsis;white-space:nowrap;min-width:0;color:var(--text-primary);-webkit-text-fill-color:currentColor;background:0 0;margin:0;font-size:12px;line-height:1.2;overflow:hidden}.app-busy-overlay .loading-content p{text-overflow:ellipsis;white-space:nowrap;grid-column:1/-1;min-width:0;margin:0;font-size:11px;line-height:1.2;overflow:hidden}.app-busy-overlay .loading-bar{grid-column:1/-1;width:100%;max-width:none;margin:0}.app-busy-overlay .loading-bar-fill.is-determinate{width:var(--busy-progress,0%);transition:width .2s;animation:none}.loading-progress-text{color:var(--text-muted);grid-area:1/2;margin:0;font-size:12px;font-weight:700}body.route-weather-busy .weather-popup .weather-card,body.route-weather-busy .wp-weather-card-slot .weather-card,body.weather-card-busy .weather-popup .weather-card,body.weather-card-busy .wp-weather-card-slot .weather-card{filter:saturate(.75);opacity:.72}body.route-weather-busy .route-edit-control:disabled,body.route-weather-busy .weather-edit-control:disabled,body.weather-card-busy .weather-edit-control:disabled{cursor:wait}@keyframes pulse{0%,to{opacity:1;transform:scale(1)}50%{opacity:.7;transform:scale(1.05)}}@keyframes loadingSlide{0%{transform:translate(-100%)}to{transform:translate(350%)}}.toolbar{height:var(--toolbar-height);z-index:1000;background:var(--bg-glass);-webkit-backdrop-filter:blur(20px)saturate(1.5);border-bottom:1px solid var(--border);box-shadow:var(--shadow-sm);justify-content:space-between;align-items:center;padding:0 16px;display:flex;position:fixed;top:0;left:0;right:0}.toolbar-left,.toolbar-right{align-items:center;gap:8px;display:flex}.toolbar-center{align-items:center;display:flex}.app-logo{align-items:center;gap:10px;display:flex}.app-title{background:var(--accent-gradient);-webkit-text-fill-color:transparent;letter-spacing:-.02em;-webkit-background-clip:text;background-clip:text;font-size:18px;font-weight:700}.layer-switcher{background:var(--bg-tertiary);border-radius:var(--radius-md);border:1px solid var(--border);gap:2px;padding:3px;display:flex}.layer-btn{color:var(--text-secondary);border-radius:var(--radius-sm);cursor:pointer;transition:all var(--transition-fast);background:0 0;border:none;align-items:center;gap:6px;padding:6px 14px;font-family:inherit;font-size:12px;font-weight:500;display:flex}.layer-btn:hover{color:var(--text-primary);background:var(--bg-overlay)}.layer-btn.active{color:var(--bg-primary);background:var(--accent-gradient);box-shadow:0 2px 8px #6ee7b74d}.tool-btn{border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--bg-tertiary);width:38px;height:38px;color:var(--text-secondary);cursor:pointer;transition:all var(--transition-fast);justify-content:center;align-items:center;display:flex}.tool-btn:hover{color:var(--text-primary);border-color:var(--border-hover);background:var(--bg-glass-hover);box-shadow:var(--shadow-sm);transform:translateY(-1px)}.tool-btn.accent{background:var(--accent-gradient);color:var(--bg-primary);border:none;font-weight:600}.tool-btn.accent:hover{box-shadow:var(--shadow-glow);transform:translateY(-1px)}.language-switcher{border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--bg-tertiary);height:38px;color:var(--text-secondary);align-items:center;gap:6px;padding:0 8px;display:flex}.language-switcher-icon{color:var(--accent-primary);font-size:13px;font-weight:700;line-height:1}.language-switcher select{width:76px;min-width:0;color:var(--text-primary);cursor:pointer;background:0 0;border:0;outline:none;padding:0;font-size:12px;font-weight:600}.map-container{top:var(--toolbar-height);left:0;right:0;bottom:var(--bottom-panel-height);z-index:1;transition:bottom .3s;position:fixed}.map-action-btns{left:10px;bottom:calc(var(--bottom-panel-height) + 10px);z-index:600;flex-direction:column;gap:6px;display:flex;position:fixed}.map-action-btn{border:1px solid var(--border);background:var(--bg-glass);-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);width:36px;height:36px;color:var(--text-primary);box-shadow:var(--shadow-md);cursor:pointer;transition:all var(--transition-fast);border-radius:8px;justify-content:center;align-items:center;padding:0;display:flex}.map-action-btn:hover{background:var(--bg-glass-hover);color:var(--accent-primary);transform:scale(1.08)}.map-action-btn:active{transform:scale(.95)}.leaflet-control-zoom{box-shadow:var(--shadow-md)!important;border:none!important}.leaflet-control-zoom a{background:var(--bg-glass)!important;-webkit-backdrop-filter:blur(16px)!important;backdrop-filter:blur(16px)!important;color:var(--text-primary)!important;border:1px solid var(--border)!important;width:36px!important;height:36px!important;transition:all var(--transition-fast)!important;font-size:18px!important;line-height:36px!important}.leaflet-control-zoom a:hover{background:var(--bg-glass-hover)!important;color:var(--accent-primary)!important}.leaflet-control-attribution{-webkit-backdrop-filter:blur(8px)!important;backdrop-filter:blur(8px)!important;color:var(--text-muted)!important;border-radius:var(--radius-sm) 0 0 0!important;background:#0f1117b3!important;padding:2px 8px!important;font-size:10px!important}.leaflet-control-attribution a{color:var(--accent-primary)!important}.leaflet-layer.map-tiles .leaflet-tile{transition:opacity var(--transition-fast);will-change:transform, opacity}.map-container.is-map-zooming .leaflet-layer.map-tiles .leaflet-tile{transition:none!important}.map-container.is-map-zooming .marker-external-label,.map-container.is-map-zooming .wp-weather-badge{visibility:hidden}.map-container.is-map-zooming .custom-waypoint-icon,.map-container.is-map-zooming .intermediate-point-icon,.map-container.is-map-zooming .wp-icon-inner,.map-container.is-map-zooming .intermediate-point-inner{box-shadow:none!important;transition:none!important;animation:none!important}.leaflet-overlay-pane path.route-hit-line{pointer-events:stroke}.leaflet-layer.map-tiles-streets-dark .leaflet-tile{filter:invert(.72)hue-rotate(200deg)brightness(1.2)contrast(1.86)saturate(.88)}.leaflet-layer.map-tiles-streets-light .leaflet-tile{filter:brightness(.84)contrast(1.26)saturate(.86)}.leaflet-layer.map-tiles-outdoor-dark .leaflet-tile,.leaflet-layer.map-tiles-topo-dark .leaflet-tile{filter:invert(.76)hue-rotate(180deg)brightness(1.14)contrast(1.62)saturate(1.12)}.leaflet-layer.map-tiles-outdoor-light .leaflet-tile,.leaflet-layer.map-tiles-topo-light .leaflet-tile{filter:brightness(.88)contrast(1.24)saturate(1.02)}.leaflet-layer.map-tiles-satellite-dark .leaflet-tile{filter:brightness(.68)contrast(1.24)saturate(.95)}.leaflet-layer.map-tiles-satellite-light .leaflet-tile{filter:brightness(.88)contrast(1.12)saturate(1.02)}.custom-waypoint-icon{cursor:pointer;transition:opacity var(--transition-fast);backface-visibility:hidden;touch-action:none;-webkit-user-select:none;user-select:none;-webkit-touch-callout:none;-webkit-tap-highlight-color:transparent;font-size:13px;font-weight:700;overflow:visible;box-shadow:none!important;box-sizing:content-box!important;background:0 0!important;border:none!important}.custom-waypoint-icon,.custom-waypoint-icon *{-webkit-user-select:none;user-select:none;-webkit-touch-callout:none;-webkit-user-drag:none}.wp-pin-shell{transform-origin:50% 100%;width:100%;height:100%;position:absolute;top:0;left:0}.wp-pin-shell:after{content:"";opacity:0;pointer-events:none;width:9px;height:5px;transition:opacity var(--transition-fast), transform var(--transition-fast);background:#fbbf248c;border-radius:999px;position:absolute;bottom:-1px;left:50%;transform:translate(-50%,50%)scale(.75);box-shadow:0 0 9px #fbbf248c}.wp-icon-inner{--wp-pin-fill:#ef4444;--wp-pin-outline:#ffffffe6;--wp-pin-glow-color:#6ee7b7a6;width:70%;height:60%;filter:drop-shadow(0 2px 5px #0000006b) drop-shadow(0 0 5px var(--wp-pin-glow-color));color:#0f172a;transform-origin:50% 100%;transition:transform var(--transition-fast), filter var(--transition-fast);position:absolute;bottom:0;left:15%;box-sizing:border-box!important}.wp-pin-svg{width:100%;height:100%;position:absolute;inset:0;overflow:visible}.wp-pin-highlight-ring{fill:none;stroke:#fbbf24;stroke-linejoin:round;stroke-width:5.6px;opacity:0;pointer-events:none;transition:opacity var(--transition-fast)}.wp-pin-body{fill:var(--wp-pin-fill);stroke:var(--wp-pin-outline);stroke-width:2.4px;stroke-linejoin:round}.wp-pin-dot{fill:#fffffff0;stroke:#0f172a29;stroke-width:1px}.custom-waypoint-icon.is-selected .wp-icon-inner{--wp-pin-outline:#fbbf24;--wp-pin-glow-color:#fbbf24f2;transform:scale(1.1)}.custom-waypoint-icon.is-selected .wp-pin-highlight-ring{opacity:1}.custom-waypoint-icon.is-dragging .wp-icon-inner{--wp-pin-outline:#fbbf24;--wp-pin-glow-color:#fbbf24f2;animation:.8s ease-in-out infinite alternate waypointPinLift}.custom-waypoint-icon.is-dragging .wp-pin-shell:after{opacity:1;transform:translate(-50%,50%)scale(1)}.custom-waypoint-icon.start .wp-icon-inner{--wp-pin-fill:#34d399}.custom-waypoint-icon.end .wp-icon-inner{--wp-pin-fill:#f87171}.custom-waypoint-icon .wp-icon-inner>span{z-index:1;pointer-events:none;-webkit-user-select:none;user-select:none;font-size:9px;line-height:1;position:absolute;top:34.5%;left:50%;transform:translate(-50%,-50%)}.custom-waypoint-icon:hover .wp-icon-inner{transform:scale(1.2)}.custom-waypoint-icon.is-selected{z-index:5000!important}.leaflet-marker-icon.has-weather-card{z-index:2100!important}.leaflet-marker-icon.has-highlighted-weather-card{z-index:2300!important}.leaflet-marker-icon.custom-waypoint-icon.is-selected{z-index:5000!important}.custom-waypoint-icon.has-weather-card:hover .wp-icon-inner{transform:none}.wp-weather-badge{pointer-events:auto;cursor:pointer;white-space:nowrap;width:30px;height:30px;transition:filter var(--transition-fast), transform var(--transition-fast);z-index:10;line-height:1;position:absolute;top:-22px;left:50%;transform:translate(-50%)}.custom-waypoint-icon .wp-weather-badge{top:-10px}.wp-weather-badge:hover:not(.is-card-open):not(.is-card-closing){filter:drop-shadow(0 2px 6px #ffffff80);transform:translate(-50%)scale(1.25)}.wp-weather-badge-face{transform-origin:50%;place-items:center;transition:opacity .18s,transform .18s;display:inline-grid;position:absolute;inset:0}.wp-weather-badge.is-placeholder .weather-round-icon{color:#e2e8f0;background:#0f172a99;box-shadow:0 2px 10px #00000052,inset 0 0 0 2px #94a3b8b8,inset 0 0 0 1px #ffffff5c}.wp-weather-badge.is-card-open{filter:drop-shadow(0 0 10px #6ee7b7a6);transform:translate(-50%)}.wp-weather-badge.is-card-open .wp-weather-badge-face,.wp-weather-badge.is-card-closing .wp-weather-badge-face{opacity:0;transform:scale(.32)}.wp-weather-card-slot{pointer-events:none;z-index:1;position:absolute;bottom:0;left:50%;transform:translate(-50%)}.wp-weather-card-slot .weather-card{pointer-events:auto}.mobile-weather-card-layer{display:none}.wp-weather-card-slot .weather-card,.wp-weather-card-slot .weather-card *{-webkit-user-select:text;user-select:text;-webkit-touch-callout:default;pointer-events:auto}.wp-weather-card-slot .weather-card button,.wp-weather-card-slot .weather-card select,.wp-weather-card-slot .weather-card input,.wp-weather-card-slot .weather-card a{-webkit-user-select:none;user-select:none}@keyframes waypointPinLift{0%{filter:drop-shadow(0 2px 5px #0000006b)drop-shadow(0 0 8px #fbbf24e0);transform:translateY(0)scale(1.08)}to{filter:drop-shadow(0 10px 8px #00000047)drop-shadow(0 0 14px #fbbf24f2);transform:translateY(-10px)scale(1.12)}}.waypoint-trash-zone{top:var(--toolbar-height);width:var(--panel-width);color:#f87171;z-index:10005;pointer-events:none;-webkit-backdrop-filter:blur(12px);background:#f8717126;border-bottom:2px dashed #f8717180;flex-direction:column;justify-content:center;align-items:center;gap:4px;height:72px;transition:all .2s;animation:.25s ease-out trashZoneIn;display:flex;position:fixed;right:0;box-shadow:0 4px 20px #0003}.waypoint-drop-target{flex-direction:column;justify-content:center;align-items:center;gap:4px;width:100%;min-width:0;height:100%;transition:background .2s,color .2s,transform .2s;display:flex}.waypoint-drop-cancel{color:#60a5fa;background:#60a5fa1f;border-right:1px dashed #ffffff47;display:none}.waypoint-drop-delete{color:#f87171}.waypoint-trash-zone.is-map-drag,.waypoint-trash-zone.is-list-drag,.waypoint-trash-zone.is-table-drag{flex-direction:row;justify-content:stretch;align-items:stretch;gap:0;padding:0;left:0;right:auto}.waypoint-trash-zone.is-map-drag{width:calc(100% - var(--panel-width))}.waypoint-trash-zone.is-map-drag .waypoint-drop-target,.waypoint-trash-zone.is-list-drag .waypoint-drop-target,.waypoint-trash-zone.is-table-drag .waypoint-drop-target{flex:50%}.waypoint-trash-zone.is-map-drag .waypoint-drop-cancel,.waypoint-trash-zone.is-list-drag .waypoint-drop-cancel,.waypoint-trash-zone.is-table-drag .waypoint-drop-cancel{display:flex}.side-panel:not(.open)~.waypoint-trash-zone.is-map-drag{width:100%}@media (width<=1024px){.waypoint-trash-zone.is-map-drag{width:100%!important}}.waypoint-trash-zone.is-list-drag{width:var(--panel-width);left:auto;right:0}.waypoint-trash-zone.hidden{display:none}.waypoint-trash-zone .waypoint-trash-label{letter-spacing:.05em;text-transform:uppercase;white-space:nowrap;opacity:.9;font-size:11px;font-weight:600;line-height:1}.waypoint-trash-zone.is-hover:not(.is-map-drag):not(.is-list-drag):not(.is-table-drag){color:#fff;background:#f87171b3;border-bottom-style:solid;border-bottom-color:#fff;height:84px;box-shadow:0 8px 32px #f8717166}.waypoint-trash-zone.is-hover:not(.is-map-drag):not(.is-list-drag):not(.is-table-drag) .waypoint-trash-label{opacity:1;transform:scale(1.1)}.waypoint-trash-zone.is-map-drag.is-hover,.waypoint-trash-zone.is-map-drag.is-cancel-hover,.waypoint-trash-zone.is-list-drag.is-hover,.waypoint-trash-zone.is-list-drag.is-cancel-hover,.waypoint-trash-zone.is-table-drag.is-hover,.waypoint-trash-zone.is-table-drag.is-cancel-hover{border-bottom-style:solid;border-bottom-color:#fff;height:84px}.waypoint-trash-zone.is-map-drag .waypoint-drop-target.is-hover,.waypoint-trash-zone.is-list-drag .waypoint-drop-target.is-hover,.waypoint-trash-zone.is-table-drag .waypoint-drop-target.is-hover{color:#fff;transform:scale(1.03)}.waypoint-trash-zone.is-map-drag .waypoint-drop-cancel.is-hover,.waypoint-trash-zone.is-list-drag .waypoint-drop-cancel.is-hover,.waypoint-trash-zone.is-table-drag .waypoint-drop-cancel.is-hover{background:#60a5fab8;box-shadow:inset 0 -4px #ffffff70}.waypoint-trash-zone.is-map-drag .waypoint-drop-delete.is-hover,.waypoint-trash-zone.is-list-drag .waypoint-drop-delete.is-hover,.waypoint-trash-zone.is-table-drag .waypoint-drop-delete.is-hover{background:#f87171b8;box-shadow:inset 0 -4px #ffffff70}@keyframes trashZoneIn{0%{opacity:0;transform:translateY(-20px)}to{opacity:1;transform:translateY(0)}}html.light-theme .waypoint-trash-zone{color:#ef4444;background:#ef44441a;border-bottom-color:#ef444466}html.light-theme .waypoint-trash-zone.is-hover:not(.is-map-drag):not(.is-list-drag):not(.is-table-drag){color:#fff;background:#ef4444b3}html.light-theme .waypoint-drop-cancel{color:#2563eb;background:#2563eb1a}html.light-theme .waypoint-trash-zone.is-map-drag .waypoint-drop-cancel.is-hover,html.light-theme .waypoint-trash-zone.is-list-drag .waypoint-drop-cancel.is-hover,html.light-theme .waypoint-trash-zone.is-table-drag .waypoint-drop-cancel.is-hover{color:#fff;background:#2563ebad}.waypoint-trash-zone.is-table-drag{border-top:2px dashed #f8717180;border-bottom:none}.waypoint-trash-zone.is-table-drag.is-hover,.waypoint-trash-zone.is-table-drag.is-cancel-hover{border-top-style:solid;border-top-color:#fff}.wt-col-head.wt-drop-target{box-shadow:inset 4px 0 0 var(--accent-primary)}.wt-col-head.wt-drop-target.wt-drop-target-after{box-shadow:inset -4px 0 0 var(--accent-primary)}.wt-col-head.wt-col-dragging{opacity:.4}.map-cursor-icon{pointer-events:none}.map-cursor-icon .map-cursor-ring,.map-cursor-icon .map-cursor-cross,.map-cursor-icon .map-cursor-pulse{position:absolute;top:50%;left:50%}.map-cursor-icon .map-cursor-pin{width:36px;height:36px;color:var(--accent-primary,#00ff7f);filter:drop-shadow(0 2px 4px #0006);cursor:pointer;pointer-events:auto;transform-origin:bottom;transition:transform .2s cubic-bezier(.175,.885,.32,1.275);position:absolute;top:0;left:0}.map-cursor-icon:hover .map-cursor-pin{transform:scale(1.15)translateY(-2px)}.map-cursor-icon .map-cursor-pulse{border:2px solid var(--accent-primary,#00ff7f);opacity:.7;pointer-events:none;z-index:-1;border-radius:50%;width:20px;height:20px;margin-top:-10px;margin-left:-10px;animation:1.6s ease-out infinite mapCursorPulse;position:absolute;top:100%;left:50%}@keyframes mapCursorPulse{0%{opacity:.85;transform:scale(.6)}80%{opacity:0;transform:scale(2)}to{opacity:0;transform:scale(2)}}.leaflet-popup.map-cursor-popup .leaflet-popup-content-wrapper{background:var(--bg-glass,#161822eb);color:var(--text-primary,#e8eaf0);border:1px solid var(--border,#ffffff14);border-radius:var(--radius-md,12px);box-shadow:var(--shadow-lg,0 8px 32px #00000080);-webkit-backdrop-filter:blur(10px);padding:6px}.leaflet-popup.map-cursor-popup .leaflet-popup-content{margin:0;width:auto!important}.leaflet-popup.map-cursor-popup .leaflet-popup-tip{background:var(--bg-glass,#161822eb);border:1px solid var(--border,#ffffff14)}.map-cursor-menu{flex-direction:column;gap:2px;min-width:168px;display:flex}.map-cursor-menu .map-cursor-coords{color:var(--text-secondary,#9ca3af);border-bottom:1px solid var(--border,#ffffff14);text-align:center;letter-spacing:.02em;margin-bottom:4px;padding:4px 8px 6px;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:11px}.map-cursor-menu .cursor-menu-btn{border-radius:var(--radius-sm,8px);width:100%;color:var(--text-primary,#e8eaf0);text-align:left;cursor:pointer;transition:background var(--transition-fast,.15s ease), color var(--transition-fast,.15s ease);background:0 0;border:none;align-items:center;gap:8px;padding:8px 10px;font-size:13px;font-weight:500;display:flex}.map-cursor-menu .cursor-menu-btn svg{color:var(--accent-primary,#00ff7f);flex-shrink:0}.map-cursor-menu .cursor-menu-btn:hover,.map-cursor-menu .cursor-menu-btn:focus-visible{background:var(--bg-glass-hover,#1e2030f2);outline:none}.map-cursor-menu .cursor-menu-btn:active{transform:translateY(1px)}.map-cursor-menu .cursor-menu-cancel{border-top:1px solid var(--border,#ffffff14);border-radius:0 0 var(--radius-sm,8px) var(--radius-sm,8px);color:var(--text-secondary,#9ca3af);margin-top:4px;padding:6px 10px;font-size:12px}.map-cursor-menu .cursor-menu-cancel svg{color:var(--text-muted,#6b7280)}.custom-waypoint-icon.return-leg .wp-icon-inner{--wp-pin-outline:#fffffff0}.custom-waypoint-icon.return-leg .wp-pin-body{stroke-dasharray:4 3}.custom-waypoint-icon.return-leg.is-selected .wp-icon-inner{--wp-pin-outline:#fbbf24;--wp-pin-glow-color:#fbbf24f2}.custom-waypoint-icon.return-leg:hover .wp-icon-inner{transform:scale(1.18)}.map-container.hide-wp-weather .custom-waypoint-icon .wp-weather-badge,.map-container.hide-im-weather .intermediate-point-icon .wp-weather-badge{display:none!important}.intermediate-point-icon{cursor:pointer;backface-visibility:hidden;overflow:visible;box-shadow:none!important;box-sizing:content-box!important;background:0 0!important;border:none!important}.intermediate-point-inner{color:#111827;border:1.5px solid #ffffffa6;border-radius:50%;justify-content:center;align-items:center;width:100%;height:100%;font-size:8px;font-weight:700;display:flex;position:absolute;top:0;left:0;box-shadow:0 1px 5px #00000059;box-sizing:border-box!important}.elevation-hover-marker{background:#fbbf24;border:1.5px solid #fff;border-radius:50%;width:10px;height:10px;box-shadow:0 0 9px #fbbf2480}.marker-external-label{color:var(--text-primary);background:var(--bg-glass);-webkit-backdrop-filter:blur(8px);white-space:nowrap;pointer-events:none;text-shadow:none;border:1px solid var(--border);box-shadow:var(--shadow-sm);border-radius:6px;margin-top:4px;padding:3px 6px;font-size:11px;position:absolute;top:100%;left:50%;transform:translate(-50%)}.marker-external-label[data-label]:before{content:attr(data-label)}.side-panel{top:var(--toolbar-height);right:0;bottom:var(--bottom-panel-height);width:var(--panel-width);z-index:500;background:var(--bg-glass);-webkit-backdrop-filter:blur(24px)saturate(1.5);border-left:1px solid var(--border);transition:transform var(--transition-smooth), bottom .3s ease;box-shadow:var(--shadow-lg);position:fixed;overflow:hidden auto;transform:translate(100%)}.side-panel.open{transform:translate(0)}.panel-section{border-bottom:1px solid var(--border);padding:16px}.panel-section:last-child{border-bottom:none}.section-header{justify-content:space-between;align-items:center;margin-bottom:14px;display:flex}.section-header h3{color:var(--text-primary);align-items:center;gap:8px;font-size:14px;font-weight:600;display:flex}.section-header h3 svg{color:var(--accent-primary)}.section-actions{gap:4px;display:flex}#search-toggle-header h3,#pace-toggle-header h3,#waypoint-settings-toggle-header h3,#file-management-toggle-header h3,#settings-toggle-header h3{white-space:nowrap;flex:none}.collapsible-header .h3-label{white-space:nowrap}.search-header-actions,.pace-header-actions,.waypoint-header-actions,.weather-header-actions,.file-header-actions{flex:auto;justify-content:flex-end;align-items:center;min-width:0;margin-left:8px;margin-right:8px;overflow:hidden}.search-header-actions .search-input{border-radius:var(--radius-sm);background:var(--bg-overlay);border:1px solid var(--border);min-width:0;height:28px;color:var(--text-primary);flex:auto;padding:4px 8px;font-size:12px}.search-header-actions .icon-btn{flex-shrink:0;width:28px;height:28px}.file-header-actions{gap:4px}.file-header-btn{flex:0 0 28px;width:28px;height:28px}.file-header-btn.accent{background:var(--accent-gradient);color:var(--bg-primary)}.file-header-btn.accent:hover{color:var(--bg-primary);box-shadow:var(--shadow-glow)}.pace-header-actions .speed-activity-compact,.weather-header-actions select{border-radius:var(--radius-sm);background:var(--bg-overlay);border:1px solid var(--border);min-width:0;max-width:100px;height:28px;color:var(--text-primary);text-overflow:ellipsis;flex:auto;padding:2px 18px 2px 6px;font-size:11px}.weather-header-actions .windy-favicon{flex-shrink:0}.waypoint-header-actions .interval-mode-controls{flex-wrap:nowrap;align-items:center;gap:3px;min-width:0;font-size:11px;display:flex;overflow:hidden}.waypoint-header-actions .imode-opt{white-space:nowrap;flex-shrink:0;gap:2px;padding:2px 4px;font-size:11px}.waypoint-header-actions .segment-interval-input{flex-shrink:1;width:36px;min-width:28px;height:24px;padding:2px 4px;font-size:11px}.waypoint-header-actions .segment-interval-unit{color:var(--text-muted);flex-shrink:0;font-size:10px}.icon-btn{border-radius:var(--radius-sm);background:var(--bg-overlay);width:30px;height:30px;color:var(--text-secondary);cursor:pointer;transition:all var(--transition-fast);border:none;justify-content:center;align-items:center;display:flex}.icon-btn:disabled{opacity:.3;cursor:not-allowed}.icon-btn:hover{color:var(--text-primary);background:#ffffff1a}.icon-btn.danger:hover{color:var(--danger);background:#f8717126}.icon-btn:disabled,.icon-btn[disabled]{opacity:.35;cursor:not-allowed}.icon-btn:disabled:hover,.icon-btn[disabled]:hover{background:var(--bg-overlay);color:var(--text-secondary)}.is-frozen{opacity:.5;pointer-events:none;filter:grayscale(.2);transition:opacity var(--transition-normal)}.is-resizing .map-container,.is-resizing .side-panel{transition:none!important}body.route-list-dragging{overscroll-behavior:none;touch-action:none;overflow:hidden}.waypoint-list{max-height:200px;overflow-y:auto}.empty-state{text-align:center;color:var(--text-muted);flex-direction:column;align-items:center;padding:20px;display:flex}.empty-state p{color:var(--text-secondary);margin-top:8px;font-size:13px}.empty-state .hint{margin-top:4px;font-size:11px}.waypoint-item{border-radius:var(--radius-sm);background:var(--bg-soft);transition:background var(--transition-fast);cursor:pointer;align-items:center;gap:10px;margin-bottom:6px;padding:8px 10px;animation:.3s fadeSlideIn;display:flex}.waypoint-item:hover{background:var(--bg-soft-hover)}.waypoint-item.wp-highlight{background:#fbbf241f;outline:1px solid #fbbf2459}.waypoint-item .wp-index{background:var(--accent-gradient);width:24px;height:24px;color:var(--bg-primary);border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;font-size:11px;font-weight:700;display:flex}.waypoint-item .wp-index.start{background:var(--success)}.waypoint-item .wp-index.end{background:var(--danger)}.waypoint-item .wp-coords{flex-direction:column;flex:1;gap:1px;min-width:0;display:flex;overflow:hidden}.waypoint-item .wp-place-name{font-family:var(--font-sans,sans-serif);color:var(--text-primary);white-space:nowrap;text-overflow:ellipsis;font-size:12px;font-weight:500;overflow:hidden}.waypoint-item .wp-cum-dist{color:var(--text-secondary,#888);white-space:nowrap;font-family:SF Mono,Cascadia Code,monospace;font-size:10px}.waypoint-item .wp-actions{gap:4px;display:flex}.waypoint-item .wp-action{background:var(--bg-overlay);width:22px;height:22px;color:var(--text-muted);cursor:pointer;transition:all var(--transition-fast);border:none;border-radius:4px;justify-content:center;align-items:center;font-size:13px;display:flex}.waypoint-item .wp-action:hover:not(:disabled){background:var(--bg-soft-hover);color:var(--text-primary)}.waypoint-item .wp-action[disabled]{opacity:.3;cursor:not-allowed}.waypoint-item .wp-remove:hover:not(:disabled){color:var(--danger);background:#f8717126}@keyframes fadeSlideIn{0%{opacity:0;transform:translate(10px)}to{opacity:1;transform:translate(0)}}.waypoint-placeholder{border:2px dashed var(--accent-primary);border-radius:var(--radius-sm);background:#6ee7b71a;margin-bottom:6px;animation:1.5s infinite pulse}.drag-ghost{border:1px solid var(--accent-primary);pointer-events:none;background:var(--bg-tertiary);box-shadow:0 10px 40px #00000080;opacity:.9!important;display:flex!important}.drag-ghost.drag-to-remove{border-color:var(--danger);filter:grayscale(.5)contrast(.8);background:#f8717133}.drag-ghost.drag-to-remove:after{content:"移除";background:var(--danger);color:#fff;border-radius:20px;padding:4px 12px;font-size:12px;font-weight:700;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);box-shadow:0 2px 8px #0000004d}.drag-ghost.drag-to-cancel{border-color:var(--info);filter:saturate(.8);background:#60a5fa33}.drag-ghost.drag-to-cancel:after{content:"取消";background:var(--info);color:#fff;border-radius:20px;padding:4px 12px;font-size:12px;font-weight:700;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);box-shadow:0 2px 8px #0000004d}.segment-interval-row{justify-content:space-between;align-items:center;gap:8px;padding:6px 12px 4px;display:flex}.segment-interval-label{color:var(--text-secondary);white-space:nowrap;align-items:center;gap:5px;font-size:12px;display:flex}.segment-interval-controls{align-items:center;gap:6px;display:flex}.segment-interval-check{width:15px;height:15px;accent-color:var(--accent-primary);cursor:pointer;flex-shrink:0}.segment-interval-input{border:1px solid var(--border);background:var(--bg-tertiary);width:60px;color:var(--text-primary);text-align:center;-moz-appearance:textfield;border-radius:6px;outline:none;padding:3px 6px;font-size:12px}.segment-interval-input::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}.segment-interval-input::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}.segment-interval-input:focus{border-color:var(--accent-primary)}.segment-interval-input:disabled{opacity:.35;cursor:not-allowed}.settings-group-label{color:var(--text-muted);text-transform:uppercase;letter-spacing:.08em;margin-top:4px;margin-bottom:8px;font-size:10px;font-weight:700}.settings-actions-btn-row{gap:8px;margin-bottom:12px;display:flex}.file-management-actions{flex-wrap:wrap}.file-management-footer{margin-top:10px;margin-bottom:0}.file-action-btn{gap:6px;min-width:84px}.file-action-btn.accent{background:var(--accent-gradient);color:var(--bg-primary);border-color:#0000}.file-action-btn.accent:hover{color:var(--bg-primary);box-shadow:var(--shadow-glow)}.file-import-options{flex-wrap:wrap;margin-bottom:12px}.file-import-options .pace-check-opt{min-width:132px}.btn-secondary{background:var(--bg-tertiary);border:1px solid var(--border);border-radius:var(--radius-sm);color:var(--text-secondary);cursor:pointer;transition:all var(--transition-fast);white-space:nowrap;flex:1;justify-content:center;align-items:center;padding:6px 8px;font-size:12px;font-weight:500;display:flex}.btn-secondary:hover{background:var(--bg-glass-hover);color:var(--text-primary);border-color:var(--border-hover)}.btn-secondary:active{transform:scale(.98)}.settings-divider{background:var(--border);width:100%;height:1px;margin:12px 0}.pace-formula-note{border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--bg-tertiary);color:var(--text-secondary);margin-top:10px;padding:10px 12px;font-size:12px;line-height:1.5}.pace-note-title{color:var(--text-primary);margin-bottom:5px;font-size:12px;font-weight:700}.pace-formula-note p{margin:0 0 6px}.pace-formula-note p:last-child{margin-bottom:0}.pace-calibration-panel{flex-direction:column;gap:10px;display:flex}.pace-calibration-toggle{margin-bottom:0}.pace-calibration-factor{color:var(--accent-primary);font-size:13px;font-weight:700}.pace-calibration-factor.disabled{color:var(--text-muted)}.pace-calibration-hint,.pace-calibration-empty,.pace-calibration-meta{color:var(--text-muted);font-size:12px;line-height:1.4}.pace-calibration-list{flex-direction:column;gap:8px;display:flex}.pace-calibration-item{border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--bg-tertiary);grid-template-columns:minmax(0,1fr) 88px 56px;align-items:center;gap:8px;padding:8px;display:grid}.pace-calibration-name{color:var(--text-primary);text-overflow:ellipsis;white-space:nowrap;font-size:12px;font-weight:600;overflow:hidden}.pace-calibration-hours{color:var(--text-muted);flex-direction:column;gap:3px;font-size:10px;display:flex}.pace-calibration-hours input{box-sizing:border-box;border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--bg-primary);width:100%;min-width:0;color:var(--text-primary);padding:5px 6px;font-size:12px}.pace-calibration-remove{flex:none;height:30px}.segment-interval-unit{color:var(--text-muted);font-size:12px}.interval-mode-controls{flex-wrap:wrap;align-items:center;gap:6px;display:flex}.imode-opt{color:var(--text-secondary);cursor:pointer;white-space:nowrap;align-items:center;gap:3px;font-size:12px;display:flex}.imode-opt input[type=radio]{width:13px;height:13px;accent-color:var(--accent-primary);cursor:pointer;flex-shrink:0;margin:0}.speed-activity-select{border:1px solid var(--border);background:var(--bg-tertiary);color:var(--text-primary);cursor:pointer;border-radius:6px;outline:none;padding:3px 6px;font-size:12px}.speed-activity-select:disabled{opacity:.35;cursor:not-allowed}.speed-activity-select:focus{border-color:var(--accent-primary)}.stat-icon.time-icon{color:#818cf8;background:#6366f126}.pace-header-actions{align-items:center;gap:6px;display:flex}.btn-pace-reset{background:var(--bg-overlay);border:1px solid var(--border);border-radius:var(--radius-sm);height:28px;color:var(--text-primary);cursor:pointer;transition:all var(--transition-fast);white-space:nowrap;justify-content:center;align-items:center;gap:4px;width:auto;padding:0 8px;font-size:11px;font-weight:500;display:flex}.btn-pace-reset:hover{background:var(--accent-gradient-subtle);border-color:var(--accent-primary);color:var(--accent-primary);box-shadow:var(--shadow-sm)}.btn-pace-reset svg{flex-shrink:0}.pace-section-header{margin-bottom:10px}.pace-grid{grid-template-columns:1fr 1fr;gap:8px 12px;margin-bottom:8px;display:grid}.pace-field-full{grid-column:1/-1}.pace-field{align-items:center;gap:4px;min-width:0;display:flex}.pace-label{color:var(--text-secondary);white-space:nowrap;flex-shrink:0;font-size:11px}.pace-input{border:1px solid var(--border);background:var(--bg-tertiary);min-width:0;max-width:58px;color:var(--text-primary);text-align:center;-moz-appearance:textfield;border-radius:5px;outline:none;flex:1;padding:4px 5px;font-size:12px}.pace-input::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}.pace-input::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}.pace-input:focus{border-color:var(--accent-primary)}.pace-unit{color:var(--text-muted);white-space:nowrap;flex-shrink:0;font-size:11px}.pace-unit-select{border:1px solid var(--border);background:var(--bg-tertiary);color:var(--text-secondary);cursor:pointer;appearance:none;text-align:center;border-radius:5px;outline:none;flex-shrink:0;padding:2px 4px;font-size:11px}.pace-unit-select:focus{border-color:var(--accent-primary)}.pace-fatigue-row{border-top:1px solid var(--border);justify-content:space-between;align-items:center;gap:8px;margin-top:4px;padding:4px 12px 6px;display:flex}.pace-fatigue-row-label{color:var(--text-secondary);white-space:nowrap;flex-shrink:0;align-items:center;gap:6px;font-size:12px;display:flex}.pace-fatigue-select{background:var(--bg-secondary);min-width:0;color:var(--text-primary);border:1px solid var(--border);cursor:pointer;border-radius:4px;flex:1;padding:2px 4px;font-size:12px}.pace-fatigue-select:focus{border-color:var(--accent-primary);outline:none}.pace-per-segment-row{border-top:1px solid var(--border);margin-top:4px;padding:4px 12px 6px}.pace-per-segment-label{color:var(--text-secondary);cursor:pointer;-webkit-user-select:none;user-select:none;align-items:center;gap:8px;font-size:12px;display:flex}.pace-per-segment-label input[type=checkbox]{width:14px;height:14px;accent-color:var(--accent-primary);cursor:pointer;flex-shrink:0}.pace-per-segment-label span{align-items:center;gap:4px;display:flex}.wt-elapsed-badge{color:var(--accent-primary);vertical-align:middle;white-space:nowrap;background:#6ee7b71f;border-radius:4px;margin-left:4px;padding:1px 4px;font-size:9px;display:inline-block}.roundtrip-row{justify-content:space-between;align-items:center;gap:8px;padding:6px 12px 4px;display:flex}.roundtrip-label{color:var(--text-secondary);white-space:nowrap;align-items:center;gap:5px;font-size:12px;display:flex}.toggle-switch{flex-shrink:0;width:36px;height:20px;display:inline-block;position:relative}.toggle-switch input{opacity:0;width:0;height:0;position:absolute}.toggle-track{background:var(--bg-tertiary);border:1px solid var(--border-hover);cursor:pointer;border-radius:10px;transition:background .2s,border-color .2s;position:absolute;inset:0}.toggle-track:before{content:"";background:var(--text-muted);border-radius:50%;width:14px;height:14px;transition:transform .2s,background .2s;position:absolute;top:2px;left:2px}.toggle-switch input:checked+.toggle-track{border-color:var(--accent-primary);background:#6ee7b733}.toggle-switch input:checked+.toggle-track:before{background:var(--accent-primary);transform:translate(16px)}.nav-mode-row{gap:6px;margin-bottom:10px;display:flex}.nav-mode-opt{border:1px solid var(--border);background:var(--bg-tertiary);cursor:pointer;color:var(--text-secondary);-webkit-user-select:none;user-select:none;border-radius:6px;flex:1;justify-content:center;align-items:center;gap:5px;padding:5px 4px;font-size:12px;transition:border-color .15s,background .15s,color .15s;display:flex}.nav-mode-opt input[type=radio]{display:none}.nav-mode-opt:has(input:checked){border-color:var(--accent-primary);color:var(--accent-primary);background:#6ee7b71f}.pace-top-grid{grid-template-columns:1fr 1fr;gap:8px 12px;margin-bottom:8px;display:grid}.pace-fatigue-select{border:1px solid var(--border);background:var(--bg-tertiary);min-width:0;color:var(--text-primary);border-radius:5px;outline:none;flex:1;padding:4px 5px;font-size:11px}.pace-fatigue-select:focus{border-color:var(--accent-primary)}.pace-checks-row{gap:8px;margin-top:8px;margin-bottom:8px;display:flex}.pace-check-opt{border:1px solid var(--border);background:var(--bg-tertiary);cursor:pointer;color:var(--text-secondary);-webkit-user-select:none;user-select:none;border-radius:6px;flex:1;align-items:center;gap:5px;padding:5px 8px;font-size:12px;transition:border-color .15s,background .15s;display:flex}.pace-check-opt input[type=checkbox]{accent-color:var(--accent-primary);cursor:pointer;flex-shrink:0;width:13px;height:13px}.pace-check-opt:has(input:checked){border-color:var(--accent-primary);color:var(--text-primary);background:#6ee7b714}.collapsible-header{cursor:pointer;-webkit-user-select:none;user-select:none;justify-content:space-between;align-items:center;margin-bottom:0;display:flex!important}.collapsible-header h3{flex:1;align-items:center;gap:8px;display:flex}.chevron-icon{color:var(--text-muted);flex-shrink:0;transition:transform .25s cubic-bezier(.4,0,.2,1);transform:rotate(180deg)}.collapsible-header.collapsed .chevron-icon{transform:rotate(0)}.collapsible-body{opacity:1;max-height:2000px;padding-top:10px;transition:max-height .3s ease-out,opacity .2s,padding .2s;overflow:hidden}.collapsible-body.collapsed{pointer-events:none;opacity:0!important;max-height:0!important;padding-top:0!important;padding-bottom:0!important}.settings-row{align-items:center;gap:6px;display:flex}.settings-row select{border:1px solid var(--border);background:var(--bg-tertiary);min-width:0;color:var(--text-primary);border-radius:5px;outline:none;flex:1;padding:4px 5px;font-size:12px}.settings-row select:focus{border-color:var(--accent-primary)}.weather-cache-settings{padding:0 14px 12px}.weather-cache-settings-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;display:grid}.weather-cache-toggle,.weather-cache-field{min-width:0;min-height:34px}.weather-cache-field{border:1px solid var(--border);background:var(--bg-tertiary);color:var(--text-secondary);border-radius:6px;justify-content:space-between;align-items:center;gap:8px;padding:5px 8px;font-size:12px;display:flex}.weather-cache-field-label{min-width:0;line-height:1.25}.weather-cache-input-wrap{color:var(--text-muted);flex-shrink:0;align-items:center;gap:4px;display:inline-flex}.weather-cache-input-wrap input{border:1px solid var(--border);background:var(--bg-primary);width:68px;min-width:0;color:var(--text-primary);text-align:right;border-radius:5px;outline:none;padding:4px 5px;font-size:12px}.weather-cache-input-wrap input:focus{border-color:var(--accent-primary)}.weather-cache-input-wrap input:disabled{opacity:.45;cursor:not-allowed}.weather-cache-note{color:var(--text-muted);margin-top:8px;font-size:11px;line-height:1.45}.route-mode-selector{gap:6px;margin-top:12px;display:flex}.mode-option{cursor:pointer;flex:1}.mode-option input[type=radio]{display:none}.mode-label{border-radius:var(--radius-sm);color:var(--text-secondary);background:var(--bg-soft);border:1px solid var(--border);transition:all var(--transition-fast);justify-content:center;align-items:center;gap:5px;padding:8px;font-size:12px;font-weight:500;display:flex}.mode-option input:checked+.mode-label{color:var(--bg-primary);background:var(--accent-gradient);border-color:#0000;box-shadow:0 2px 8px #6ee7b740}.mode-label:hover{background:var(--bg-soft-hover);border-color:var(--border-hover)}.mode-option input:checked+.mode-label:hover{background:var(--accent-gradient)}.stats-grid{grid-template-columns:1fr 1fr;gap:8px;display:grid}.stat-card{border-radius:var(--radius-md);background:var(--bg-soft);border:1px solid var(--border);transition:all var(--transition-fast);align-items:center;gap:10px;padding:12px;display:flex}.stat-card:hover{background:var(--bg-overlay);border-color:var(--border-hover)}.stat-icon{border-radius:var(--radius-sm);flex-shrink:0;justify-content:center;align-items:center;width:36px;height:36px;display:flex}.stat-icon.distance{color:var(--info);background:#3b82f626}.stat-icon.ascent{color:var(--success);background:#34d39926}.stat-icon.descent{color:var(--danger);background:#f8717126}.stat-icon.elevation{color:var(--warning);background:#fbbf2426}.stat-icon.min-elevation{color:var(--info);background:#3b82f626}.stat-icon.start-elev,.stat-icon.end-elev{color:#a78bfa;background:#a78bfa26}.stat-info{flex-direction:column;gap:2px;display:flex}.stat-label{color:var(--text-muted);text-transform:uppercase;letter-spacing:.03em;font-size:11px}.stat-value{color:var(--text-primary);font-size:16px;font-weight:700}.elevation-chart-container{border-radius:var(--radius-md);background:var(--bg-soft);border:1px solid var(--border);width:100%;height:160px;transition:height .3s;position:relative;overflow:hidden}.elevation-chart-container.collapsed{height:32px}.chart-toggle-btn{color:#a1a1aa;cursor:pointer;z-index:10;width:20px;height:20px;transition:all var(--transition-fast);background:#0f111799;border:1px solid #ffffff1a;border-radius:4px;justify-content:center;align-items:center;display:flex;position:absolute;top:6px;left:6px;right:auto}.chart-toggle-btn:hover{background:var(--bg-soft-hover);color:#fff}.elevation-chart-container.collapsed .chart-toggle-btn svg{transform:rotate(180deg)}.elevation-chart-container canvas{touch-action:none;width:100%!important;height:100%!important}.chart-empty-state{color:var(--text-muted);justify-content:center;align-items:center;font-size:13px;display:flex;position:absolute;inset:0}.chart-empty-state.hidden{display:none}.weather-controls{align-items:flex-end;gap:8px;margin-bottom:12px;display:flex}.date-picker-wrap{flex-direction:column;flex:1;gap:4px;display:flex}.date-picker-wrap label{color:var(--text-muted);text-transform:uppercase;letter-spacing:.03em;font-size:11px}.date-picker-wrap input[type=date]{border-radius:var(--radius-sm);border:1px solid var(--border);background:var(--bg-tertiary);width:100%;color:var(--text-primary);transition:border-color var(--transition-fast);outline:none;padding:8px 12px;font-family:inherit;font-size:13px}.date-picker-wrap input[type=date]:focus{border-color:var(--accent-primary);box-shadow:0 0 0 2px #6ee7b726}.btn-primary{border-radius:var(--radius-sm);background:var(--accent-gradient);color:var(--bg-primary);cursor:pointer;transition:all var(--transition-fast);white-space:nowrap;border:none;align-items:center;gap:6px;padding:8px 16px;font-family:inherit;font-size:13px;font-weight:600;display:flex}.btn-primary:hover{box-shadow:var(--shadow-glow);transform:translateY(-1px)}.btn-primary:active{transform:translateY(0)}.btn-secondary{border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--bg-soft);color:var(--text-secondary);cursor:pointer;transition:all var(--transition-fast);padding:8px 16px;font-family:inherit;font-size:13px;font-weight:500}.btn-secondary:hover{background:var(--bg-soft-hover);border-color:var(--border-hover);color:var(--text-primary)}.search-controls{flex-direction:column;gap:8px;display:flex}.search-input-row{gap:6px;display:flex}.search-input{background:var(--bg-tertiary);border:1px solid var(--border);border-radius:var(--radius-sm);min-width:0;color:var(--text-primary);transition:border-color var(--transition-fast);flex:1;padding:8px 12px;font-family:inherit;font-size:13px}.search-input:focus{border-color:var(--accent-primary);outline:none;box-shadow:0 0 0 2px #6ee7b726}.search-results{background:var(--bg-tertiary);border:1px solid var(--border);border-radius:var(--radius-sm);max-height:240px;overflow-y:auto}.search-result-item{border-bottom:1px solid var(--border);cursor:pointer;transition:background var(--transition-fast);justify-content:space-between;align-items:center;gap:8px;padding:8px 10px;display:flex}.search-result-item:last-child{border-bottom:none}.search-result-item:hover{background:var(--bg-glass-hover)}.search-result-text{flex:1;min-width:0}.search-result-name{color:var(--text-primary);white-space:nowrap;text-overflow:ellipsis;font-size:13px;overflow:hidden}.search-result-coord{color:var(--text-muted);margin-top:2px;font-size:11px}.search-result-add{color:var(--bg-primary);background:var(--accent-gradient);border-radius:var(--radius-sm);cursor:pointer;border:none;flex-shrink:0;padding:4px 8px;font-size:11px;font-weight:600}.search-result-add:hover{box-shadow:var(--shadow-glow)}.search-result-empty,.search-result-loading{text-align:center;color:var(--text-muted);padding:10px;font-size:12px}.search-tools{border-top:1px solid var(--border);flex-direction:column;gap:6px;padding-top:4px;display:flex}.search-gmaps-link{color:var(--accent-primary);border-radius:var(--radius-sm);transition:background var(--transition-fast);align-items:center;gap:6px;padding:6px 8px;font-size:12px;text-decoration:none;display:inline-flex}.search-gmaps-link:hover{background:var(--bg-glass-hover);text-decoration:underline}.search-coord-row{align-items:center;gap:6px;display:flex}.search-coord-row .search-input{padding:6px 10px;font-size:12px}.weather-cards{flex-direction:column;gap:8px;display:flex}.weather-empty-state{text-align:center;color:var(--text-muted);padding:16px;font-size:13px}.weather-card{border-radius:var(--radius-md);background:var(--accent-gradient-subtle);border:1px solid var(--border);padding:14px;animation:.3s fadeSlideIn}.weather-card-header{justify-content:space-between;align-items:center;margin-bottom:10px;display:flex}.weather-card-header .location{color:var(--text-secondary);font-family:SF Mono,Cascadia Code,monospace;font-size:12px}.weather-icon{font-size:28px}.weather-card-body{grid-template-columns:1fr 1fr;gap:8px;display:grid}.weather-detail{flex-direction:column;gap:2px;display:flex}.weather-detail .wd-label{color:var(--text-muted);text-transform:uppercase;letter-spacing:.04em;font-size:10px}.weather-detail .wd-value{color:var(--text-primary);font-size:14px;font-weight:600}.weather-temp{background:var(--accent-gradient);-webkit-text-fill-color:transparent;-webkit-background-clip:text;background-clip:text;font-size:32px;font-weight:700}.offline-controls{flex-direction:column;gap:10px;display:flex}.offline-status{color:var(--text-secondary);align-items:center;gap:8px;font-size:13px;display:flex}.status-dot{border-radius:50%;flex-shrink:0;width:8px;height:8px}.status-dot.online{background:var(--success);animation:2s infinite statusPulse;box-shadow:0 0 8px #34d39980}.status-dot.offline{background:var(--warning);box-shadow:0 0 8px #fbbf2480}.cache-info{color:var(--text-muted);font-size:12px}@keyframes statusPulse{0%,to{opacity:1}50%{opacity:.5}}.notifications{z-index:9999;pointer-events:none;flex-direction:column;gap:8px;display:flex;position:fixed;bottom:20px;left:50%;transform:translate(-50%)}.notification{border-radius:var(--radius-md);background:var(--bg-glass);-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);border:1px solid var(--border);box-shadow:var(--shadow-lg);color:var(--text-primary);white-space:nowrap;pointer-events:all;align-items:center;gap:10px;padding:12px 20px;font-size:13px;animation:.35s notifyIn;display:flex}.notification.success{border-left:3px solid var(--success)}.notification.error{border-left:3px solid var(--danger)}.notification.info{border-left:3px solid var(--info)}.notification.warning{border-left:3px solid var(--warning)}.notification.leaving{animation:.3s forwards notifyOut}@keyframes notifyIn{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}@keyframes notifyOut{to{opacity:0;transform:translateY(20px)}}@media (width<=1024px){:root{--panel-width:330px}}@media (width<=768px){:root{--panel-width:100%;--toolbar-height:50px}.app-busy-overlay{top:calc(var(--toolbar-height) + env(safe-area-inset-top,0px) + 8px);left:56px;right:56px}.app-busy-overlay .loading-content{gap:3px 8px;width:min(300px,100%);padding:6px 8px 7px}.app-busy-overlay .loading-content h2,.app-busy-overlay .loading-progress-text{font-size:11px}.app-busy-overlay .loading-content p{font-size:10px}.toolbar{padding:0 10px}.app-title{font-size:15px}.layer-switcher{touch-action:pan-y;gap:0;padding:2px}.layer-switcher .layer-btn{gap:3px;padding:5px 6px}.layer-switcher .layer-btn span,.layer-switcher .layer-btn:not(.active){display:none}.layer-switcher .layer-btn.active:after{content:"⇄";opacity:.75;font-size:11px;line-height:1}.tool-btn{width:34px;height:34px}.language-switcher{gap:4px;height:34px;padding:0 6px}.language-switcher select{width:56px;font-size:11px}.side-panel{top:var(--toolbar-height);border-left:none;border-top:1px solid var(--border);border-radius:0;width:100%;max-height:none;bottom:0;left:0;right:0;transform:translate(100%)}.side-panel.open{transform:translate(0)}.panel-width-btn{display:none}.waypoint-list{flex:1;max-height:none}.map-container{bottom:0}.map-action-btns{z-index:490}#map,#map .leaflet-container,#map .leaflet-pane,#map .leaflet-marker-icon,#map .leaflet-marker-icon *,#map .leaflet-interactive,.waypoint-item,.waypoint-item *,.wt-col-head,.wt-col-head *,.wt-data-cell,.wt-data-cell *,.chartjs-render-monitor{-webkit-user-select:none;user-select:none;-webkit-touch-callout:none;-webkit-user-drag:none;-webkit-tap-highlight-color:transparent}#map .weather-card,#map .weather-card *{-webkit-user-select:none;user-select:none;-webkit-touch-callout:none}#map input,#map textarea,#map select,.waypoint-item input,.wt-data-cell input,.wt-data-cell textarea,.wt-data-cell select{-webkit-user-select:text;user-select:text;-webkit-touch-callout:default}.bp-chart-row .elevation-chart-container{height:100px}.bp-weather-header{padding:5px 10px}.stats-grid{grid-template-columns:1fr 1fr;gap:6px}.stat-card{padding:10px}}@media (height<=500px) and (orientation:landscape){:root{--panel-width:320px;--toolbar-height:46px}.app-busy-overlay{top:calc(var(--toolbar-height) + env(safe-area-inset-top,0px) + 6px);left:56px;right:56px}.app-busy-overlay .loading-content{width:min(320px,100%)}.side-panel{top:var(--toolbar-height);width:var(--panel-width);border-left:1px solid var(--border);border-top:none;bottom:0;left:auto;right:0;transform:translate(100%)}.side-panel.open{transform:translate(0)}.bp-chart-row .elevation-chart-container{height:80px}#bottom-panel{max-height:100vh}}.leaflet-popup-content-wrapper{background:var(--bg-glass)!important;-webkit-backdrop-filter:blur(16px)!important;backdrop-filter:blur(16px)!important;border:1px solid var(--border)!important;border-radius:var(--radius-md)!important;box-shadow:var(--shadow-lg)!important;color:var(--text-primary)!important;font-family:Inter,Noto Sans TC,sans-serif!important}.leaflet-popup-tip{background:var(--bg-glass)!important;border:1px solid var(--border)!important}.leaflet-popup-content{margin:10px 14px!important;font-size:13px!important}.alternatives-count{color:var(--text-muted);background:#ffffff0f;border-radius:10px;padding:2px 8px;font-size:11px}.alternatives-list{flex-flow:wrap;gap:8px;margin-bottom:12px;display:flex}.alt-card{border-radius:var(--radius-xl);border:1px solid var(--border);cursor:pointer;transition:all var(--transition-fast);background:#ffffff08;align-items:center;min-height:32px;padding:6px 12px;animation:.3s fadeSlideIn;display:flex;position:relative}.alt-card:before{display:none}.alt-card[data-color="0"]:before{background:#6ee7b7}.alt-card[data-color="1"]:before{background:#60a5fa}.alt-card[data-color="2"]:before{background:#f59e0b}.alt-card[data-color="3"]:before{background:#f87171}.alt-card:hover{border-color:var(--border-hover);background:#ffffff0f;transform:translate(2px)}.alt-card.selected{background:var(--accent-gradient-subtle);border-color:var(--accent-primary);box-shadow:0 0 12px #6ee7b726}.alt-card.selected:after{content:"";display:none}.alt-card-header{align-items:center;gap:8px;margin-bottom:8px;display:flex}.alt-color-dot{border-radius:50%;flex-shrink:0;width:10px;height:10px;box-shadow:0 0 6px}.alt-card[data-color="0"] .alt-color-dot{color:#6ee7b7;background:#6ee7b7}.alt-card[data-color="1"] .alt-color-dot{color:#60a5fa;background:#60a5fa}.alt-card[data-color="2"] .alt-color-dot{color:#f59e0b;background:#f59e0b}.alt-card[data-color="3"] .alt-color-dot{color:#f87171;background:#f87171}.alt-card-label{color:var(--text-primary);font-size:13px;font-weight:600}.alt-badge{color:var(--accent-primary);text-transform:uppercase;letter-spacing:.05em;background:#6ee7b726;border-radius:6px;padding:2px 6px;font-size:9px;font-weight:600}.alt-stats{grid-template-columns:1fr 1fr 1fr;gap:6px;display:grid}.alt-stat{flex-direction:column;gap:1px;display:flex}.alt-stat-label{color:var(--text-muted);text-transform:uppercase;letter-spacing:.03em;font-size:9px}.alt-stat-value{color:var(--text-primary);font-size:13px;font-weight:600}.route-tooltip{background:var(--bg-glass)!important;-webkit-backdrop-filter:blur(12px)!important;backdrop-filter:blur(12px)!important;border:1px solid var(--border)!important;border-radius:var(--radius-sm)!important;color:var(--text-primary)!important;box-shadow:var(--shadow-md)!important;padding:4px 10px!important;font-family:Inter,Noto Sans TC,sans-serif!important;font-size:12px!important;font-weight:500!important}.route-tooltip:before{border-top-color:var(--bg-glass)!important}.leaflet-container{cursor:crosshair!important}.leaflet-dragging .leaflet-container{cursor:grabbing!important}.weather-segment-card{border-radius:var(--radius-md);background:var(--bg-tertiary);border:1px solid var(--border);margin-bottom:8px;padding:12px;animation:.3s fadeSlideIn}.ws-header{justify-content:space-between;align-items:center;margin-bottom:8px;display:flex}.ws-title{color:var(--accent-primary);font-size:13px;font-weight:600}.ws-dist{color:var(--text-muted);background:#ffffff0d;border-radius:4px;padding:2px 6px;font-size:11px}.ws-controls{gap:6px;margin-bottom:10px;display:flex}.ws-controls input[type=date]{border-radius:var(--radius-sm);border:1px solid var(--border);color:var(--text-primary);background:#ffffff08;outline:none;flex:1;padding:6px 10px;font-size:12px}.ws-controls .btn-primary{padding:6px 12px;font-size:12px}.ws-result{border-radius:var(--radius-sm);border:1px dashed var(--border);background:#ffffff05;align-items:center;gap:10px;padding:8px;display:flex}.ws-result.empty{color:var(--text-muted);justify-content:center;font-size:12px}.ws-icon{font-size:24px}.ws-info{flex-direction:column;display:flex}.ws-temp{color:var(--text-primary);font-weight:700}.ws-desc{color:var(--text-secondary);font-size:11px}body.is-resizing .map-container,body.is-resizing .side-panel,body.is-resizing .map-action-btns,body.is-resizing #bottom-panel{will-change:height, bottom;transition:none!important}body.is-resizing{-webkit-user-select:none;user-select:none;cursor:ns-resize!important}#bottom-panel{z-index:200;background:var(--bg-secondary);-webkit-backdrop-filter:blur(16px);border-top:1px solid var(--border);-webkit-user-select:none;user-select:none;flex-direction:column;min-height:0;max-height:100vh;display:flex;position:fixed;bottom:0;left:0;right:0;overflow:visible;box-shadow:0 -4px 24px #0000004d}.bp-resize-handle{cursor:ns-resize;touch-action:none;z-index:10;flex-shrink:0;justify-content:center;align-items:center;height:18px;display:flex;position:relative}.bp-resize-handle:before{content:"";z-index:1;position:absolute;inset:-12px 0}.bp-resize-handle:after{content:"";background:var(--border);border-radius:2px;width:44px;height:4px;transition:background .15s,width .15s}.bp-resize-handle:hover:after,.bp-resize-handle.dragging:after{background:var(--accent-primary);width:60px}.bp-chart-row{flex-shrink:0;padding:10px 16px 6px}.bp-chart-row .elevation-chart-container{height:140px;transition:height .3s}.bp-chart-row .elevation-chart-container.collapsed{height:32px}.bp-weather-header{border-top:1px solid var(--border);flex-shrink:0;align-items:center;gap:8px;padding:5px 16px;display:flex}.wt-label-cell.wt-th{padding:4px}.wt-ctrl-collapse{z-index:40;background:color-mix(in srgb, var(--bg-tertiary) 86%, transparent);width:30px;height:30px;color:var(--accent-primary);cursor:pointer;box-shadow:var(--shadow-sm);opacity:.78;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);border:1px solid #6ee7b76b;border-radius:3px;justify-content:center;align-items:center;margin:0 auto -30px 8px;display:flex;position:sticky;top:100px;left:8px}.wt-ctrl-collapse svg{width:18px;height:18px}.wt-ctrl-collapse:hover{border-color:var(--accent-primary);color:var(--accent-primary);opacity:.95}.wt-label-cell .wt-ctrl-collapse{display:none!important}.wt-ctrl-fetch{border:1px solid var(--accent-primary);height:26px;color:var(--accent-primary);cursor:pointer;white-space:nowrap;text-align:center;background:#6ee7b714;border-radius:3px;flex-direction:row;flex:none;justify-content:center;align-items:center;gap:3px;margin-bottom:3px;padding:0 4px;font-size:11px;font-weight:600;transition:background .15s;display:flex}.wt-ctrl-fetch-icon{flex-shrink:0;width:12px;height:12px;display:block}.wt-ctrl-fetch:hover{background:#6ee7b733}.wt-ctrl-fetch:disabled{opacity:.5;cursor:default}.wt-ctrl-adj-row{justify-content:center;align-items:center;gap:2px;height:24px;display:flex}.wt-ctrl-adj-row+.wt-ctrl-adj-row{margin-top:3px}.wt-ctrl-unit{text-align:center;color:var(--text-muted);flex:1;font-size:9px}.wt-ctrl-now{border:1px solid var(--border);background:var(--bg-tertiary);min-width:0;height:18px;color:var(--text-secondary);cursor:pointer;white-space:nowrap;text-align:center;border-radius:3px;flex:1;padding:0 2px;font-size:10px;line-height:1;transition:background .15s,color .15s}.wt-ctrl-now:hover{background:var(--accent-primary);color:#000;border-color:var(--accent-primary)}.wt-ctrl-adj{border:1px solid var(--border);background:var(--bg-tertiary);width:18px;height:18px;color:var(--text-secondary);cursor:pointer;text-align:center;border-radius:3px;padding:0;font-size:13px;line-height:1;transition:background .15s,color .15s}.wt-ctrl-adj:hover{background:var(--accent-primary);color:#000;border-color:var(--accent-primary)}.bp-date-controls{gap:4px;display:flex}.btn-date-adj{border:1px solid var(--border);background:var(--bg-tertiary);color:var(--text-secondary);cursor:pointer;white-space:nowrap;border-radius:4px;padding:3px 8px;font-size:11px;transition:background .15s,color .15s}.btn-date-adj:hover{background:var(--accent-primary);color:#fff;border-color:var(--accent-primary)}.bp-weather-title{color:var(--text-secondary);align-items:center;gap:6px;font-size:12px;font-weight:600;display:flex}.bp-weather-title svg{color:var(--accent-primary)}#btn-fetch-weather{white-space:nowrap;padding:5px 12px;font-size:12px}.bp-weather-scroll{flex:1;min-height:0;overflow:auto}#weather-table-container{min-width:100%;position:relative}.weather-table{border-collapse:collapse;table-layout:fixed;font-size:12px}.weather-table th,.weather-table td{border:1px solid var(--border);text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.weather-table.is-collapsed .wt-label-cell{text-align:right;padding-left:1px;padding-right:2px;font-size:9px;line-height:1.05}.weather-table.is-collapsed .wt-ctrl-fetch{width:20px;height:20px;margin-left:auto;margin-right:auto;padding:0}.weather-table.is-collapsed .wt-ctrl-fetch span,.weather-table.is-collapsed .wt-ctrl-adj,.weather-table.is-collapsed .wt-adj-btn{display:none}.weather-table.is-collapsed .wt-col-label{margin:0;padding:0;font-size:10px;line-height:1.05}.weather-table.is-collapsed .wt-col-head{padding:0 1px}.weather-table.is-collapsed .wt-adj-wrap,.weather-table.is-collapsed .wt-time-row{justify-content:center;margin:0}.weather-table.is-collapsed .wt-adj-wrap{gap:0;margin-bottom:0}.weather-table.is-collapsed .wt-date-input{color:#0000;text-indent:-999px;opacity:0;width:18px;height:17px;padding:0}.weather-table.is-collapsed .wt-time-select{color:#0000;width:18px;height:17px;text-shadow:0 0 0 var(--text-primary);opacity:0;padding:0}.weather-table.is-collapsed .wt-data-cell{padding:0 1px;font-size:9px;line-height:1.02}.weather-table.is-collapsed .wt-cell-value,.weather-table.is-collapsed .wt-data-cell{text-overflow:ellipsis;overflow:hidden}.weather-table.is-collapsed .wt-cell-value{vertical-align:middle;max-width:100%;display:inline-block;-webkit-mask-image:linear-gradient(90deg,#000 70%,#0000);mask-image:linear-gradient(90deg,#000 70%,#0000)}.weather-table.is-collapsed .wt-data-cell[data-key=coords] .wt-cell-value{max-width:2.8em}.weather-table.is-collapsed .wt-cell-number{font-weight:650}.weather-table.is-collapsed .wt-cell-unit{opacity:.62;-webkit-mask-image:linear-gradient(90deg,#000 45%,#0000);mask-image:linear-gradient(90deg,#000 45%,#0000)}.weather-table.is-collapsed .wt-td.wt-label-cell{text-overflow:clip;overflow:hidden;-webkit-mask-image:linear-gradient(90deg,#000 62%,#0000);mask-image:linear-gradient(90deg,#000 62%,#0000)}.weather-table.is-collapsed .row-windy-link{display:none}.weather-table.is-collapsed .wt-windy-row td{padding-top:1px;padding-bottom:1px}.weather-table.is-collapsed .wt-windy-link{opacity:.85}.weather-table.is-collapsed .wt-windy-link .windy-favicon{width:11px;height:11px}.weather-table.is-collapsed .wt-windy-link svg{display:none}.wt-weather-icon-trigger{cursor:pointer;transition:all var(--transition-fast);vertical-align:middle;justify-content:center;align-items:center;padding:0;display:inline-flex}.wt-weather-icon-trigger:hover{transform:scale(1.2)}.weather-round-icon{--weather-icon-bg:#64748b3d;--weather-icon-ring:#94a3b8;background:var(--weather-icon-bg);width:24px;height:24px;box-shadow:0 2px 10px #00000042, inset 0 0 0 2px var(--weather-icon-ring), inset 0 0 0 1px #ffffff73;text-align:center;text-shadow:none;border-radius:999px;place-items:center;font-family:Apple Color Emoji,Segoe UI Emoji,Noto Color Emoji,sans-serif;font-size:15px;font-weight:800;line-height:1;display:inline-grid}.weather-round-icon--sun{--weather-icon-bg:#f59e0b47;--weather-icon-ring:#f59e0b}.weather-round-icon--partly{--weather-icon-bg:#38bdf847;--weather-icon-ring:#38bdf8}.weather-round-icon--cloud,.weather-round-icon--fog{--weather-icon-bg:#94a3b84d;--weather-icon-ring:#cbd5e1}.weather-round-icon--rain,.weather-round-icon--shower{--weather-icon-bg:#2563eb4d;--weather-icon-ring:#60a5fa}.weather-round-icon--snow{--weather-icon-bg:#e0f2fe6b;--weather-icon-ring:#7dd3fc}.weather-round-icon--storm{--weather-icon-bg:#7c3aed57;--weather-icon-ring:#a78bfa}.weather-round-icon--unknown{--weather-icon-bg:#47556947;--weather-icon-ring:#94a3b8}.wp-weather-badge .weather-round-icon{width:30px;height:30px;font-size:17px}.wt-label-cell{color:var(--text-muted);text-align:right;background:var(--bg-secondary);z-index:2;isolation:isolate;padding:3px 8px 3px 4px;font-size:11px;position:sticky;left:0}.wt-th.wt-label-cell{background:var(--bg-tertiary);z-index:5}.wt-col-head{text-align:center;vertical-align:middle;background:var(--bg-tertiary);border-bottom:1px solid var(--border);z-index:2;padding:4px;position:sticky}.wt-header-row-label th{top:0}.wt-header-row-date th{top:38px}.wt-header-row-time th{top:70px}.wt-header-row-label .wt-label-cell{top:0}.wt-header-row-date .wt-label-cell{top:38px}.wt-header-row-time .wt-label-cell{top:70px}.wt-header-row-time .wt-col-head{border-bottom:2px solid #6ee7b733}.wt-interval-col{opacity:.95;background:var(--bg-primary)!important;border-bottom-color:var(--border)!important}.wt-interval-col .wt-col-label{color:#4b5563;font-size:10.5px;font-weight:500}.wt-interval-col .wt-date-input:disabled,.wt-interval-col .wt-time-select:disabled{opacity:.5;cursor:default;pointer-events:none;border-color:var(--border);background:0 0}.wt-label-cell.wt-th{z-index:10;background:var(--bg-tertiary);position:sticky;left:0}.wt-col-label{color:var(--accent-primary);white-space:nowrap;text-overflow:ellipsis;cursor:pointer;-webkit-user-select:none;user-select:none;margin-bottom:3px;padding:4px 2px;font-size:12px;font-weight:600;overflow:hidden}.wt-label-edit-input{width:100%;color:var(--accent-primary);background:var(--bg-primary);border:1px solid var(--accent-primary);border-radius:3px;outline:none;min-width:0;padding:1px 4px;font-size:12px;font-weight:600}.wp-name-edit-input{width:100%;color:var(--text-primary);background:var(--bg-primary);border:1px solid var(--accent-primary);border-radius:3px;outline:none;min-width:0;padding:1px 4px;font-size:12px;font-weight:500}.wt-date-input{border:1px solid var(--border);background:var(--bg-secondary);min-width:0;color:var(--text-primary);box-sizing:border-box;border-radius:3px;outline:none;flex:1;padding:2px 3px;font-size:11px}.wt-date-picker.has-day-first{min-width:58px;min-height:27px}.wt-date-picker.has-day-first .wt-date-input{opacity:0;cursor:pointer;width:100%;height:100%;position:absolute;inset:0}.wt-date-picker.has-day-first .wt-date-input:focus{opacity:1;z-index:2}.wt-date-display{border:1px solid var(--border);background:var(--bg-secondary);width:100%;min-height:25px;color:var(--text-primary);box-sizing:border-box;pointer-events:none;border-radius:5px;justify-content:center;align-items:baseline;gap:3px;padding:2px 4px;display:inline-flex}.wt-date-day{font-size:15px;font-weight:800;line-height:1}.wt-date-meta{color:var(--text-muted);font-size:9px;font-weight:600;line-height:1}.wt-date-picker.has-day-first .wt-date-input:focus+.wt-date-display,.wt-date-picker.has-day-first:focus-within .wt-date-display{opacity:0}.wt-date-input,.wc-date-input{text-align:right;padding-right:2px;-webkit-mask-image:linear-gradient(90deg,#0000 0,#000 14px 100%);mask-image:linear-gradient(90deg,#0000 0,#000 14px 100%)}.wt-date-input::-webkit-calendar-picker-indicator{width:0;min-width:0;margin:0;padding:0;display:none}.wc-date-input::-webkit-calendar-picker-indicator{width:0;min-width:0;margin:0;padding:0;display:none}.wt-date-input::-webkit-datetime-edit{padding:0}.wc-date-input::-webkit-datetime-edit{padding:0}.wt-date-input:focus,.wc-date-input:focus{-webkit-mask-image:none;mask-image:none}.wt-picker-icon{flex:1;justify-content:center;align-items:center;min-width:0;display:inline-flex;position:relative}.weather-table.is-collapsed .wt-picker-icon{flex:0 0 18px;width:18px;height:17px}.weather-table.is-collapsed .wt-picker-icon:before{border:1px solid var(--border);background:var(--bg-secondary);color:var(--text-secondary);pointer-events:none;border-radius:3px;place-items:center;font-size:11px;line-height:1;display:grid;position:absolute;inset:0}.weather-table.is-collapsed .wt-date-picker:before{content:"▦"}.weather-table.is-collapsed .wt-time-picker:before{content:"◷"}html:not(.light-theme) .wt-date-input{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}html.light-theme .wt-date-input{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}.wt-adj-wrap{align-items:center;gap:2px;width:100%;margin-bottom:3px;display:flex}.wt-adj-btn{border:1px solid var(--border);background:var(--bg-tertiary);width:18px;height:20px;color:var(--text-secondary);cursor:pointer;text-align:center;border-radius:3px;flex-shrink:0;justify-content:center;align-items:center;padding:0;font-size:14px;line-height:1;transition:background .15s,color .15s,opacity .15s;display:flex}.wt-adj-btn:hover:not(:disabled){background:var(--accent-primary);color:#000;border-color:var(--accent-primary)}.wt-adj-btn:disabled{opacity:.3;cursor:default}.wt-time-row{align-items:center;gap:3px;margin-top:1px;display:flex}.wt-time-select{border:1px solid var(--border);background:var(--bg-secondary);min-width:0;color:var(--text-primary);box-sizing:border-box;cursor:pointer;border-radius:3px;outline:none;flex:1;padding:2px 3px;font-size:11px}.wt-time-select:focus,.wt-date-input:focus{border-color:#6ee7b780;box-shadow:0 0 0 2px #6ee7b71a}.wt-data-cell{text-align:center;color:var(--text-primary);padding:3px 6px;font-size:12px}.wt-col-highlight{transition:background .2s;background:#6ee7b721!important}.wt-return-col{background:var(--wt-return-bg)!important}.wt-return-start{border-left:2px solid #a855f78c!important}.wt-data-cell.loading{color:var(--text-muted)}.wt-data-cell.error{color:var(--danger)}.wt-windy-row td{text-align:center;padding:4px 6px}.wt-windy-link{color:var(--accent-primary,#6ee7b7);opacity:.65;align-items:center;transition:opacity .15s;display:inline-flex}.wt-windy-link:hover{opacity:1}.wt-name-peek{z-index:10020;border:1px solid var(--border-hover);background:var(--bg-glass);max-width:min(92vw,520px);color:var(--text-primary);box-shadow:var(--shadow-lg);white-space:normal;opacity:0;pointer-events:none;border-radius:6px;padding:8px 10px;font-size:12px;line-height:1.45;transition:opacity .18s,transform .18s;position:fixed;transform:translate(-50%,-100%)translateY(-8px)}.wt-name-peek.show{opacity:1;transform:translate(-50%,-100%)translateY(-14px)}.wt-name-peek.below{transform:translate(-50%)translateY(8px)}.wt-name-peek.below.show{transform:translate(-50%)translateY(14px)}.wt-name-peek-single{text-align:center;overflow-wrap:anywhere;max-width:min(72vw,260px);font-weight:650}.windy-selects{align-items:center;gap:4px;display:flex}.windy-favicon{vertical-align:middle;border-radius:2px;flex-shrink:0;display:inline-block}.windy-selects select{border:1px solid var(--border);background:var(--bg-tertiary);color:var(--text-primary);cursor:pointer;border-radius:4px;padding:3px 5px;font-size:11px}.weather-controls-bar{align-items:flex-end;gap:6px;margin-bottom:12px;display:flex}.wcb-date{flex-direction:column;flex:1;gap:3px;min-width:0;display:flex}.wcb-time{flex-direction:column;gap:3px;display:flex}.wcb-date label,.wcb-time label{color:var(--text-muted);text-transform:uppercase;letter-spacing:.04em;font-size:10px}.wcb-date input[type=date]{border-radius:var(--radius-sm);border:1px solid var(--border);background:var(--bg-tertiary);width:100%;color:var(--text-primary);transition:border-color var(--transition-fast);outline:none;padding:6px 8px;font-size:12px}.wcb-date input[type=date]:focus{border-color:var(--accent-primary)}.wcb-time select{border-radius:var(--radius-sm);border:1px solid var(--border);background:var(--bg-tertiary);width:82px;color:var(--text-primary);transition:border-color var(--transition-fast);outline:none;padding:6px 8px;font-size:12px}.wcb-time select:focus{border-color:var(--accent-primary)}#btn-fetch-weather{white-space:nowrap;align-self:flex-end;padding:6px 12px;font-size:12px}.weather-point-card{background:var(--bg-tertiary);border:1px solid var(--border);border-radius:var(--radius-md);margin-bottom:10px;animation:.3s fadeSlideIn;overflow:hidden}.wpc-header{border-bottom:1px solid var(--border);background:#6ee7b70d;justify-content:space-between;align-items:center;padding:7px 12px;display:flex}.wpc-label{color:var(--accent-primary);font-size:12px;font-weight:600}.wpc-status{color:var(--text-muted);font-size:11px}.wpc-body{padding:10px 12px}.wpc-idle{text-align:center;color:var(--text-muted);padding:10px 12px;font-size:11px}.wpc-main{border-bottom:1px solid var(--border);align-items:center;gap:10px;margin-bottom:8px;padding-bottom:8px;display:flex}.wpc-icon{font-size:26px;line-height:1}.wpc-temps{flex-direction:column;gap:1px;display:flex}.wpc-temp-cur{color:var(--text-primary);font-size:17px;font-weight:700}.wpc-temp-range{color:var(--text-secondary);font-size:11px}.wpc-grid{grid-template-columns:1fr 1fr;gap:4px 8px;display:grid}.wpc-item{justify-content:space-between;align-items:baseline;padding:1px 0;display:flex}.wpc-lbl{color:var(--text-muted);font-size:11px}.wpc-item>span:last-child{color:var(--text-primary);font-size:12px;font-weight:500}.modal-overlay{-webkit-backdrop-filter:blur(6px);z-index:2000;background:#00000073;justify-content:center;align-items:center;animation:.15s fadeIn;display:flex;position:fixed;inset:0}body.modal-open{overflow:hidden}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}.modal-box{background:var(--bg-secondary);border:1px solid var(--border);border-radius:var(--radius-md);width:90%;min-width:280px;max-width:360px;box-shadow:var(--shadow-lg);padding:24px}.modal-title{color:var(--text-primary);margin:0 0 16px;font-size:15px;font-weight:600}.export-options{flex-direction:column;gap:10px;margin-bottom:20px;display:flex}.export-option{cursor:pointer;color:var(--text-primary);align-items:flex-start;gap:10px;font-size:13px;display:flex}.export-option input[type=radio]{accent-color:var(--accent-primary);flex-shrink:0;margin-top:2px}.export-option small{color:var(--text-muted);font-size:11px}.bottom-panel{transition:height .3s ease, transform var(--transition-smooth)}.modal-actions{justify-content:flex-end;gap:8px;display:flex}.hidden{display:none!important}.flex-1{flex:1}.mt-2{margin-top:8px}.favorites-list{flex-direction:column;gap:8px;max-height:300px;margin:12px 0;display:flex;overflow-y:auto}.favorite-item{border:1px solid var(--border-color);background:var(--bg-glass-sub);cursor:pointer;-webkit-user-select:none;user-select:none;touch-action:pan-y;border-radius:8px;justify-content:space-between;align-items:center;gap:8px;padding:10px 12px;transition:background .15s,border-color .15s,transform .15s;display:flex}.favorite-item:hover{background:var(--bg-glass-hover);border-color:var(--border-color-strong)}.favorite-item.dragging{z-index:1000;opacity:.92;cursor:grabbing;transition:none;position:relative;box-shadow:0 8px 20px #00000059}.favorite-item.drag-over-delete{background:#e5484d38;border-color:#e5484db3}.fav-info{pointer-events:none;flex:1;min-width:0}.fav-name{text-overflow:ellipsis;white-space:nowrap;color:var(--text-primary);font-size:14px;font-weight:600;overflow:hidden}.fav-meta{color:var(--text-secondary);margin-top:2px;font-size:12px}.favorites-hint{color:var(--text-secondary);margin:4px 2px 0;font-size:12px}.empty-hint{text-align:center;color:var(--text-secondary);padding:24px 0;font-size:13px}.favorites-replace-list{flex-direction:column;gap:6px;margin:8px 0 12px;display:flex}.favorites-replace-list .replace-target{text-align:left;cursor:pointer;width:100%;padding:10px 12px;display:block}.replace-target-name{font-size:13px;font-weight:600}.replace-target-meta{color:var(--text-secondary);margin-top:2px;font-size:11px}.weather-popup .leaflet-popup-content-wrapper{box-shadow:none!important;background:0 0!important;border-radius:0!important;padding:0!important;overflow:visible!important}.weather-popup .leaflet-popup-content{min-width:0;width:auto!important;max-height:none!important;margin:0!important;overflow:visible!important}.weather-popup .leaflet-popup-tip-container,.weather-popup .leaflet-popup-close-button{display:none!important}.weather-popup .weather-card,.wp-weather-card-slot .weather-card{background:var(--bg-glass);-webkit-backdrop-filter:blur(24px)saturate(1.5);border:1px solid var(--border-hover);border-radius:var(--radius-md);width:240px;box-shadow:var(--shadow-lg), 0 0 0 1px #ffffff0d;transform-origin:50% calc(100% + 22px);touch-action:none;-webkit-user-select:none;user-select:none;will-change:transform, opacity, clip-path, border-radius;padding:0;transition:transform .18s,box-shadow .18s,border-color .18s;animation:.28s cubic-bezier(.16,1,.3,1) both weatherCardExpandFromBadge;position:relative;overflow:hidden}.weather-popup.is-closing .weather-card,.wp-weather-badge.is-card-closing .weather-card{pointer-events:none;animation:.22s cubic-bezier(.4,0,1,1) both weatherCardCollapseToBadge}.weather-popup .weather-card:before,.wp-weather-card-slot .weather-card:before{content:"";background:var(--wc-accent,transparent);border-top-left-radius:inherit;border-top-right-radius:inherit;pointer-events:none;z-index:2;height:3px;position:absolute;top:0;left:0;right:0}.weather-popup .weather-card.full,.wp-weather-card-slot .weather-card.full{width:min(280px, calc(100vw - var(--panel-width) - 80px));max-height:calc(100vh - var(--toolbar-height) - var(--bottom-panel-height) - 80px);overflow-y:auto}@media (width<=768px){.weather-popup .weather-card.full,.wp-weather-card-slot .weather-card.full{width:min(280px,100vw - 48px);max-height:clamp(220px, calc(100vh - var(--toolbar-height) - var(--bottom-panel-height) - 24px), 68vh);overscroll-behavior:contain}.mobile-weather-card-layer{top:calc(var(--toolbar-height) + env(safe-area-inset-top,0px) + 10px);z-index:1000;pointer-events:none;width:auto;display:block;position:fixed;bottom:auto;left:50%;transform:translate(-50%)}.mobile-weather-card-layer .weather-card.full{width:min(300px,100vw - 24px);max-height:calc(100vh - var(--toolbar-height) - env(safe-area-inset-top,0px) - 24px);background:var(--bg-glass-hover);transform-origin:top;animation:.18s both weatherCardIn}}.weather-popup .weather-card:hover,.wp-weather-card-slot .weather-card:hover{z-index:1001;box-shadow:0 12px 32px #00000080, 0 0 0 1px #ffffff59, 0 0 18px var(--wc-accent,#ffffff40);border-color:#ffffff8c;transform:translateY(-2px)scale(1.04)}.leaflet-popup.weather-popup:has(.weather-card:hover){z-index:1001!important}.weather-popup .weather-card.is-highlighted,.wp-weather-card-slot .weather-card.is-highlighted{border-color:var(--accent-primary);box-shadow:var(--shadow-lg), 0 0 15px #6ee7b766;transform:scale(1.02);z-index:1000!important}.weather-card.compact{background:linear-gradient(135deg, var(--wc-accent-soft,#ffffff1a), var(--wc-accent-wash,#ffffff0a)), var(--bg-glass);border-color:var(--wc-accent,var(--border-hover));width:clamp(126px,22vw,188px);min-width:126px;max-width:min(188px,100vw - 32px);box-shadow:0 8px 22px #0000005c, 0 0 0 1px var(--wc-accent-soft,#ffffff1f);border-radius:999px}.weather-popup .weather-card.compact:before,.wp-weather-card-slot .weather-card.compact:before{display:none}.weather-popup .weather-card.compact:hover,.wp-weather-card-slot .weather-card.compact:hover{border-color:var(--wc-accent,#ffffff8c);box-shadow:0 10px 24px #0000006b, 0 0 0 1px var(--wc-accent-soft,#ffffff38);transform:translateY(-1px)}.weather-card.compact .wc-body{padding:3px}.wc-compact{align-items:center;gap:5px;min-width:0;display:flex}.wc-compact-icon,.wc-compact-data{color:var(--text-primary);cursor:pointer;font:inherit;min-width:0;transition:background-color var(--transition-fast), transform var(--transition-fast);background:0 0;border:0;padding:0}.wc-compact-icon{border-radius:999px;flex:0 0 30px;place-items:center;width:30px;height:30px;display:inline-grid}.wc-compact-icon:hover,.wc-compact-icon:focus-visible{transform:scale(1.06)}.wc-compact-weather-icon{width:30px;height:30px;box-shadow:0 2px 10px #00000047, inset 0 0 0 2px var(--wc-accent,var(--weather-icon-ring)), inset 0 0 0 1px #ffffff7a;font-size:17px}.wc-compact-data{text-align:left;border-radius:999px;flex:auto;align-items:center;height:30px;padding:0 8px 0 1px;display:flex;overflow:hidden}.wc-compact-data:hover,.wc-compact-data:focus-visible{background:#ffffff12;outline:none}.wc-compact-data-viewport{width:100%;min-width:0;display:block;overflow:hidden;-webkit-mask-image:linear-gradient(90deg,#000 0 calc(100% - 8px),#0000 100%);mask-image:linear-gradient(90deg,#000 0 calc(100% - 8px),#0000 100%)}.wc-compact-marquee{white-space:nowrap;align-items:center;gap:18px;width:max-content;display:flex;transform:translate(0)}.wc-compact-value-set{align-items:center;gap:8px;display:flex}.wc-compact-value-set[aria-hidden=true]{display:none}.weather-card.has-compact-marquee .wc-compact-value-set[aria-hidden=true]{display:flex}.weather-card.has-compact-marquee .wc-compact-marquee{animation:weatherCardCompactMarquee var(--wc-marquee-duration,10s) linear infinite;animation-delay:1.2s}.weather-card.has-compact-marquee .wc-compact-data:hover .wc-compact-marquee,.weather-card.has-compact-marquee .wc-compact-data:focus-visible .wc-compact-marquee{animation-play-state:paused}.wc-compact-value{color:var(--text-primary);flex:none;font-size:11px;font-weight:700;line-height:1}.wc-compact-value+.wc-compact-value{border-left:1px solid var(--wc-accent-soft,var(--border));padding-left:8px}@keyframes weatherCardCompactMarquee{0%{transform:translate(0)}to{transform:translateX(calc(-1 * var(--wc-marquee-distance,80px)))}}@keyframes weatherCardIn{0%{opacity:0;transform:translateY(8px)scale(.95)}to{opacity:1;transform:translateY(0)scale(1)}}@keyframes weatherCardExpandFromBadge{0%{opacity:.85;clip-path:circle(16px at 50% calc(100% - 16px));border-radius:999px;transform:translateY(24px)scale(.18)}52%{opacity:1;clip-path:inset(0 0 55% round 18px);border-radius:18px;transform:translateY(0)scale(1.03)}to{opacity:1;border-radius:var(--radius-md);clip-path:inset(0 0 0 0 round var(--radius-md));transform:translateY(0)scale(1)}}@keyframes weatherCardCollapseToBadge{0%{opacity:1;border-radius:var(--radius-md);clip-path:inset(0 0 0 0 round var(--radius-md));transform:translateY(0)scale(1)}42%{opacity:.95;clip-path:inset(0 0 55% round 18px);border-radius:18px;transform:translateY(0)scale(.96)}to{opacity:0;clip-path:circle(16px at 50% calc(100% - 16px));border-radius:999px;transform:translateY(24px)scale(.18)}}@media (prefers-reduced-motion:reduce){.weather-popup .weather-card,.weather-popup.is-closing .weather-card,.wp-weather-card-slot .weather-card,.wp-weather-badge.is-card-closing .weather-card{animation-duration:.01ms}.weather-card.has-compact-marquee .wc-compact-marquee{animation:none;transform:translate(0)}}.wc-header{background:var(--bg-tertiary);border-bottom:1px solid var(--border);align-items:center;gap:4px;padding:5px 8px;display:flex}.wc-title{color:var(--text-primary);white-space:nowrap;flex:1;min-width:0;font-size:12px;font-weight:600;overflow:hidden;-webkit-mask-image:linear-gradient(90deg,#000 calc(100% - 16px),#0000 100%);mask-image:linear-gradient(90deg,#000 calc(100% - 16px),#0000 100%)}.wc-btn{width:24px;height:24px;color:var(--text-secondary);cursor:pointer;transition:all var(--transition-fast);background:#ffffff0f;border:none;border-radius:6px;flex-shrink:0;justify-content:center;align-items:center;padding:0;font-size:13px;display:flex}.wc-btn:hover{color:var(--text-primary);background:#ffffff24}.wc-btn:active{transform:scale(.9)}.wc-btn svg{width:14px;height:14px}.wc-btn:disabled{opacity:.3;cursor:not-allowed}.wc-body{padding:8px 10px}.wc-row{border-bottom:1px solid var(--border);justify-content:space-between;align-items:center;padding:4px 0;font-size:12px;display:flex}.wc-row:last-child{border-bottom:none}.wc-row-label{color:var(--text-secondary);flex-shrink:0;font-weight:500}.wc-row-value{color:var(--text-primary);text-align:right;text-overflow:ellipsis;white-space:nowrap;min-width:0;font-weight:600;overflow:hidden}.wc-weather-main{border-bottom:1px solid var(--border);align-items:center;gap:6px;padding:6px 0 8px;display:flex}.wc-weather-icon{justify-content:center;align-items:center;line-height:1;display:inline-flex}button.wc-weather-icon{appearance:none;color:inherit;cursor:pointer;transition:transform var(--transition-fast);background:0 0;border:0;border-radius:999px;padding:0}button.wc-weather-icon:hover,button.wc-weather-icon:focus-visible{outline:none;transform:scale(1.06)}.wc-main-weather-icon{width:36px;height:36px;font-size:21px}.wc-title-weather-icon{vertical-align:-4px;width:22px;height:22px;margin-right:2px;font-size:13px}.wc-weather-desc{color:var(--text-primary);font-size:13px;font-weight:600}.wc-weather-temp{color:var(--text-primary);letter-spacing:-.02em;align-items:center;gap:6px;margin-left:auto;font-size:18px;font-weight:700;display:inline-flex}.wc-info-grid{grid-template-columns:1fr 1fr;gap:2px 12px;margin-top:6px;display:grid}.wc-time-grid{grid-template-columns:minmax(0,1.28fr) minmax(0,1fr);gap:2px 6px;margin-top:8px}.wc-time-item{align-items:center;gap:0}.wc-info-item{border-bottom:1px solid var(--border);justify-content:space-between;gap:8px;padding:3px 0;font-size:11px;display:flex}.wc-info-item.is-wide{padding:5px 0}.wc-info-item:last-child{border-bottom:none}.wc-info-label{color:var(--text-muted);align-items:center;gap:4px;display:inline-flex}.row-windy-link{opacity:.6;vertical-align:middle;align-items:center;text-decoration:none;transition:opacity .15s;display:inline-flex}.row-windy-link:hover{opacity:1}.wt-cell-with-icon{white-space:nowrap}.wt-cell-with-icon .row-windy-link{margin-right:4px}.wc-info-value{color:var(--text-primary);text-align:right;overflow-wrap:anywhere;min-width:0;font-weight:500}.wc-time-edit-wrap{justify-content:center;align-items:center;gap:4px;width:100%;min-width:0;display:flex}.wc-time-adj-btn{border:1px solid var(--border);width:20px;height:22px;color:var(--text-secondary);cursor:pointer;transition:all var(--transition-fast);background:#ffffff0d;border-radius:4px;flex:0 0 20px;font-size:12px;font-weight:700;line-height:1}.wc-time-adj-btn:hover:not(:disabled){border-color:var(--accent-primary);color:var(--accent-primary);background:#6ee7b71a}.wc-info-item .wc-date-input,.wc-info-item .wc-time-select{border:1px solid var(--border);color:var(--text-primary);transition:all var(--transition-fast);background:#ffffff0d;border-radius:4px;outline:none;padding:2px 4px;font-family:inherit;font-size:11px}.wc-info-item .wc-date-input:hover,.wc-info-item .wc-time-select:hover{border-color:var(--border-hover);background:#ffffff1a}.wc-info-item .wc-date-input:focus,.wc-info-item .wc-time-select:focus{border-color:var(--accent-primary);background:var(--bg-tertiary);box-shadow:0 0 0 2px #6ee7b726}.wc-info-item .wc-date-input{width:94px;max-width:94px}.wc-info-item .wc-time-select{width:64px;max-width:64px}.wc-info-item .wc-date-input:disabled,.wc-info-item .wc-time-select:disabled,.wc-time-adj-btn:disabled{opacity:.55;cursor:not-allowed}html:not(.light-theme) .wc-date-input,html:not(.light-theme) .wc-time-select{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}html.light-theme .wc-date-input,html.light-theme .wc-time-select{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}.wc-info-value.clickable-coords{cursor:pointer;transition:color var(--transition-fast), transform var(--transition-fast);position:relative}.wc-info-value.clickable-coords:hover{color:var(--accent-primary);transform:scale(1.02)}.wc-info-value.clickable-coords:active{transform:scale(.96)}.wc-windy-btn{border:1px solid var(--border-hover);width:100%;color:var(--text-secondary);cursor:pointer;transition:all var(--transition-fast);background:#ffffff0a;border-radius:8px;justify-content:center;align-items:center;gap:6px;margin-top:8px;padding:7px 0;font-family:inherit;font-size:12px;font-weight:500;text-decoration:none;display:flex}.wc-windy-btn:hover{color:var(--text-primary);border-color:var(--accent-primary);background:#ffffff1a}.wc-windy-btn img{width:14px;height:14px}.instr-badge{background:var(--bg-tertiary);border:1px solid var(--border);color:var(--text-primary);vertical-align:middle;border-bottom-width:2px;border-radius:4px;margin:0 2px;padding:1px 5px;font-size:.75rem;font-weight:600;display:inline-block;box-shadow:0 1px #0000001a}[data-theme=dark] .instr-badge{background:#374151;border-color:#4b5563;box-shadow:0 1px #0000004d}.instr-label{background:color-mix(in srgb, var(--accent-primary) 13%, transparent);color:var(--text-primary);border-radius:3px;padding:0 .16em;font-weight:650;display:inline}.instr-key{background:color-mix(in srgb, var(--accent-primary) 11%, transparent);color:color-mix(in srgb, var(--accent-primary) 82%, var(--text-primary));border-radius:3px;padding:0 .14em;font-weight:650;display:inline}[data-theme=dark] .instr-label{background:color-mix(in srgb, var(--accent-primary) 16%, transparent)}[data-theme=dark] .instr-key{background:color-mix(in srgb, var(--accent-primary) 14%, transparent);color:color-mix(in srgb, var(--accent-primary) 86%, var(--text-primary))}.instr-title svg{opacity:.8}.about-me-section{border-top:1px solid var(--border);background:#0000000d;margin-top:auto;padding:16px 14px}.about-me-content{flex-direction:column;gap:12px;display:flex}.about-me-title{color:var(--text-muted);text-transform:uppercase;letter-spacing:.08em;font-size:11px;font-weight:700}.about-me-identity{align-items:center;gap:10px;display:flex}.about-me-logo{opacity:.9;width:24px;height:24px}.about-me-name{color:var(--text-primary);letter-spacing:.02em;font-size:14px;font-weight:700}.about-me-version{color:var(--text-muted);margin-left:auto;margin-right:-6px;font-size:10px;font-weight:600;line-height:1}.about-me-quote{flex-direction:column;gap:4px;display:flex}.about-me-quote p{margin:0;line-height:1.4}.quote-zh{color:var(--text-secondary);font-size:13px;font-weight:500}.quote-en{color:var(--text-muted);font-size:11px;font-style:italic}.quote-source{color:var(--text-muted);text-align:right;opacity:.8;font-size:10px;margin-top:2px!important}.about-me-social{flex-wrap:wrap;align-items:center;gap:12px;margin-top:4px;display:flex}.social-link{color:var(--text-muted);transition:all var(--transition-fast);justify-content:center;align-items:center;display:flex}.social-link:hover{color:var(--accent-primary);transform:translateY(-2px)}.feedback-link{gap:6px;font-size:12px;font-weight:600;text-decoration:none}.feedback-link span{line-height:1}.about-me-visitor-count{min-height:20px;color:var(--text-muted);align-items:center;gap:8px;font-size:11px;font-weight:600;display:flex}.about-me-visitor-count span{flex:none}.about-me-visitor-count img{border:0;max-width:150px;height:20px;display:block}.panel-bottom-logo{opacity:.15;filter:grayscale(.5);pointer-events:none;-webkit-user-select:none;user-select:none;justify-content:center;padding:16px 0 8px;display:flex}.panel-bottom-logo img{object-fit:contain;width:140px;height:140px}.github-link:hover{color:#24292f!important}.linkedin-link:hover{color:#0077b5!important}.demo-link img{border-radius:4px;width:20px;height:20px;display:block}.demo-link:hover{color:#14b8a6!important}html.light-theme .github-link{color:#24292f}html.light-theme .linkedin-link{color:#0077b5}html.light-theme .about-me-section{background:#f1f5f9;border-top:1px solid #0000000d}html.light-theme .about-me-name{color:#0f172a}html.light-theme .about-me-title{color:#64748b}html.light-theme .quote-zh{color:#334155}html.light-theme .quote-en{color:#64748b}html.light-theme .quote-source{color:#94a3b8}html.light-theme .panel-bottom-logo{opacity:.1}.clickable-coords{cursor:pointer;transition:color var(--transition-fast), transform var(--transition-fast);position:relative}.clickable-coords:hover{color:var(--accent-primary)!important}.clickable-coords:active{transform:scale(.98)}
