.leaflet-image-layer,.leaflet-layer,.leaflet-marker-icon,.leaflet-marker-shadow,.leaflet-pane,.leaflet-pane>canvas,.leaflet-pane>svg,.leaflet-tile,.leaflet-tile-container,.leaflet-zoom-box{left:0;position:absolute;top:0}.leaflet-container{overflow:hidden}.leaflet-marker-icon,.leaflet-marker-shadow,.leaflet-tile{-webkit-user-select:none;-moz-user-select:none;user-select:none;-webkit-user-drag:none}.leaflet-tile::-moz-selection{background:transparent}.leaflet-tile::selection{background:transparent}.leaflet-safari .leaflet-tile{image-rendering:-webkit-optimize-contrast}.leaflet-safari .leaflet-tile-container{height:1600px;-webkit-transform-origin:0 0;width:1600px}.leaflet-marker-icon,.leaflet-marker-shadow{display:block}.leaflet-container .leaflet-overlay-pane svg{max-height:none!important;max-width:none!important}.leaflet-container .leaflet-marker-pane img,.leaflet-container .leaflet-shadow-pane img,.leaflet-container .leaflet-tile,.leaflet-container .leaflet-tile-pane img,.leaflet-container img.leaflet-image-layer{max-height:none!important;max-width:none!important;padding:0;width:auto}.leaflet-container img.leaflet-tile{mix-blend-mode:plus-lighter}.leaflet-container.leaflet-touch-zoom{touch-action:pan-x pan-y}.leaflet-container.leaflet-touch-drag{touch-action:none;touch-action:pinch-zoom}.leaflet-container.leaflet-touch-drag.leaflet-touch-zoom{touch-action:none}.leaflet-container{-webkit-tap-highlight-color:transparent}.leaflet-container a{-webkit-tap-highlight-color:rgba(51,181,229,.4)}.leaflet-tile{filter:inherit;visibility:hidden}.leaflet-tile-loaded{visibility:inherit}.leaflet-zoom-box{box-sizing:border-box;height:0;width:0;z-index:800}.leaflet-overlay-pane svg{-moz-user-select:none}.leaflet-pane{z-index:400}.leaflet-tile-pane{z-index:200}.leaflet-overlay-pane{z-index:400}.leaflet-shadow-pane{z-index:500}.leaflet-marker-pane{z-index:600}.leaflet-tooltip-pane{z-index:650}.leaflet-popup-pane{z-index:700}.leaflet-map-pane canvas{z-index:100}.leaflet-map-pane svg{z-index:200}.leaflet-vml-shape{height:1px;width:1px}.lvml{behavior:url(#default#VML);display:inline-block;position:absolute}.leaflet-control{pointer-events:visiblePainted;pointer-events:auto;position:relative;z-index:800}.leaflet-bottom,.leaflet-top{pointer-events:none;position:absolute;z-index:1000}.leaflet-top{top:0}.leaflet-right{right:0}.leaflet-bottom{bottom:0}.leaflet-left{left:0}.leaflet-control{clear:both;float:left}.leaflet-right .leaflet-control{float:right}.leaflet-top .leaflet-control{margin-top:10px}.leaflet-bottom .leaflet-control{margin-bottom:10px}.leaflet-left .leaflet-control{margin-left:10px}.leaflet-right .leaflet-control{margin-right:10px}.leaflet-fade-anim .leaflet-popup{opacity:0;transition:opacity .2s linear}.leaflet-fade-anim .leaflet-map-pane .leaflet-popup{opacity:1}.leaflet-zoom-animated{transform-origin:0 0}svg.leaflet-zoom-animated{will-change:transform}.leaflet-zoom-anim .leaflet-zoom-animated{transition:transform .25s cubic-bezier(0,0,.25,1)}.leaflet-pan-anim .leaflet-tile,.leaflet-zoom-anim .leaflet-tile{transition:none}.leaflet-zoom-anim .leaflet-zoom-hide{visibility:hidden}.leaflet-interactive{cursor:pointer}.leaflet-grab{cursor:grab}.leaflet-crosshair,.leaflet-crosshair .leaflet-interactive{cursor:crosshair}.leaflet-control,.leaflet-popup-pane{cursor:auto}.leaflet-dragging .leaflet-grab,.leaflet-dragging .leaflet-grab .leaflet-interactive,.leaflet-dragging .leaflet-marker-draggable{cursor:move;cursor:grabbing}.leaflet-image-layer,.leaflet-marker-icon,.leaflet-marker-shadow,.leaflet-pane>svg path,.leaflet-tile-container{pointer-events:none}.leaflet-image-layer.leaflet-interactive,.leaflet-marker-icon.leaflet-interactive,.leaflet-pane>svg path.leaflet-interactive,svg.leaflet-image-layer.leaflet-interactive path{pointer-events:visiblePainted;pointer-events:auto}.leaflet-container{background:#ddd;outline-offset:1px}.leaflet-container a{color:#0078a8}.leaflet-zoom-box{background:hsla(0,0%,100%,.5);border:2px dotted #38f}.leaflet-container{font-family:Helvetica Neue,Arial,Helvetica,sans-serif;font-size:12px;font-size:.75rem;line-height:1.5}.leaflet-bar{border-radius:4px;box-shadow:0 1px 5px rgba(0,0,0,.65)}.leaflet-bar a{background-color:#fff;border-bottom:1px solid #ccc;color:#000;display:block;height:26px;line-height:26px;text-align:center;-webkit-text-decoration:none;text-decoration:none;width:26px}.leaflet-bar a,.leaflet-control-layers-toggle{background-position:50% 50%;background-repeat:no-repeat;display:block}.leaflet-bar a:focus,.leaflet-bar a:hover{background-color:#f4f4f4}.leaflet-bar a:first-child{border-top-left-radius:4px;border-top-right-radius:4px}.leaflet-bar a:last-child{border-bottom:none;border-bottom-left-radius:4px;border-bottom-right-radius:4px}.leaflet-bar a.leaflet-disabled{background-color:#f4f4f4;color:#bbb;cursor:default}.leaflet-touch .leaflet-bar a{height:30px;line-height:30px;width:30px}.leaflet-touch .leaflet-bar a:first-child{border-top-left-radius:2px;border-top-right-radius:2px}.leaflet-touch .leaflet-bar a:last-child{border-bottom-left-radius:2px;border-bottom-right-radius:2px}.leaflet-control-zoom-in,.leaflet-control-zoom-out{font:700 18px Lucida Console,Monaco,monospace;text-indent:1px}.leaflet-touch .leaflet-control-zoom-in,.leaflet-touch .leaflet-control-zoom-out{font-size:22px}.leaflet-control-layers{background:#fff;border-radius:5px;box-shadow:0 1px 5px rgba(0,0,0,.4)}.leaflet-control-layers-toggle{background-image:url(/416d91365b44e4b4f477.png);height:36px;width:36px}.leaflet-retina .leaflet-control-layers-toggle{background-image:url(/8f2c4d11474275fbc161.png);background-size:26px 26px}.leaflet-touch .leaflet-control-layers-toggle{height:44px;width:44px}.leaflet-control-layers .leaflet-control-layers-list,.leaflet-control-layers-expanded .leaflet-control-layers-toggle{display:none}.leaflet-control-layers-expanded .leaflet-control-layers-list{display:block;position:relative}.leaflet-control-layers-expanded{background:#fff;color:#333;padding:6px 10px 6px 6px}.leaflet-control-layers-scrollbar{overflow-x:hidden;overflow-y:scroll;padding-right:5px}.leaflet-control-layers-selector{margin-top:2px;position:relative;top:1px}.leaflet-control-layers label{display:block;font-size:13px;font-size:1.08333em}.leaflet-control-layers-separator{border-top:1px solid #ddd;height:0;margin:5px -10px 5px -6px}.leaflet-default-icon-path{background-image:url(/2b3e1faf89f94a483539.png)}.leaflet-container .leaflet-control-attribution{background:#fff;background:hsla(0,0%,100%,.8);margin:0}.leaflet-control-attribution,.leaflet-control-scale-line{color:#333;line-height:1.4;padding:0 5px}.leaflet-control-attribution a{-webkit-text-decoration:none;text-decoration:none}.leaflet-control-attribution a:focus,.leaflet-control-attribution a:hover{-webkit-text-decoration:underline;text-decoration:underline}.leaflet-attribution-flag{display:inline!important;height:.6669em;vertical-align:baseline!important;width:1em}.leaflet-left .leaflet-control-scale{margin-left:5px}.leaflet-bottom .leaflet-control-scale{margin-bottom:5px}.leaflet-control-scale-line{background:hsla(0,0%,100%,.8);border:2px solid #777;border-top:none;box-sizing:border-box;line-height:1.1;padding:2px 5px 1px;text-shadow:1px 1px #fff;white-space:nowrap}.leaflet-control-scale-line:not(:first-child){border-bottom:none;border-top:2px solid #777;margin-top:-2px}.leaflet-control-scale-line:not(:first-child):not(:last-child){border-bottom:2px solid #777}.leaflet-touch .leaflet-bar,.leaflet-touch .leaflet-control-attribution,.leaflet-touch .leaflet-control-layers{box-shadow:none}.leaflet-touch .leaflet-bar,.leaflet-touch .leaflet-control-layers{background-clip:padding-box;border:2px solid rgba(0,0,0,.2)}.leaflet-popup{margin-bottom:20px;position:absolute;text-align:center}.leaflet-popup-content-wrapper{border-radius:12px;padding:1px;text-align:left}.leaflet-popup-content{font-size:13px;font-size:1.08333em;line-height:1.3;margin:13px 24px 13px 20px;min-height:1px}.leaflet-popup-content p{margin:1.3em 0}.leaflet-popup-tip-container{height:20px;left:50%;margin-left:-20px;margin-top:-1px;overflow:hidden;pointer-events:none;position:absolute;width:40px}.leaflet-popup-tip{height:17px;margin:-10px auto 0;padding:1px;pointer-events:auto;transform:rotate(45deg);width:17px}.leaflet-popup-content-wrapper,.leaflet-popup-tip{background:#fff;box-shadow:0 3px 14px rgba(0,0,0,.4);color:#333}.leaflet-container a.leaflet-popup-close-button{background:transparent;border:none;color:#757575;font:16px/24px Tahoma,Verdana,sans-serif;height:24px;position:absolute;right:0;text-align:center;-webkit-text-decoration:none;text-decoration:none;top:0;width:24px}.leaflet-container a.leaflet-popup-close-button:focus,.leaflet-container a.leaflet-popup-close-button:hover{color:#585858}.leaflet-popup-scrolled{overflow:auto}.leaflet-oldie .leaflet-popup-content-wrapper{-ms-zoom:1}.leaflet-oldie .leaflet-popup-tip{-ms-filter:"progid:DXImageTransform.Microsoft.Matrix(M11=0.70710678, M12=0.70710678, M21=-0.70710678, M22=0.70710678)";filter:progid:DXImageTransform.Microsoft.Matrix(M11=0.70710678,M12=0.70710678,M21=-0.70710678,M22=0.70710678);margin:0 auto;width:24px}.leaflet-oldie .leaflet-control-layers,.leaflet-oldie .leaflet-control-zoom,.leaflet-oldie .leaflet-popup-content-wrapper,.leaflet-oldie .leaflet-popup-tip{border:1px solid #999}.leaflet-div-icon{background:#fff;border:1px solid #666}.leaflet-tooltip{background-color:#fff;border:1px solid #fff;border-radius:3px;box-shadow:0 1px 3px rgba(0,0,0,.4);color:#222;padding:6px;pointer-events:none;position:absolute;-webkit-user-select:none;-moz-user-select:none;user-select:none;white-space:nowrap}.leaflet-tooltip.leaflet-interactive{cursor:pointer;pointer-events:auto}.leaflet-tooltip-bottom:before,.leaflet-tooltip-left:before,.leaflet-tooltip-right:before,.leaflet-tooltip-top:before{background:transparent;border:6px solid transparent;content:"";pointer-events:none;position:absolute}.leaflet-tooltip-bottom{margin-top:6px}.leaflet-tooltip-top{margin-top:-6px}.leaflet-tooltip-bottom:before,.leaflet-tooltip-top:before{left:50%;margin-left:-6px}.leaflet-tooltip-top:before{border-top-color:#fff;bottom:0;margin-bottom:-12px}.leaflet-tooltip-bottom:before{border-bottom-color:#fff;margin-left:-6px;margin-top:-12px;top:0}.leaflet-tooltip-left{margin-left:-6px}.leaflet-tooltip-right{margin-left:6px}.leaflet-tooltip-left:before,.leaflet-tooltip-right:before{margin-top:-6px;top:50%}.leaflet-tooltip-left:before{border-left-color:#fff;margin-right:-12px;right:0}.leaflet-tooltip-right:before{border-right-color:#fff;left:0;margin-left:-12px}@media print{.leaflet-control{-webkit-print-color-adjust:exact;print-color-adjust:exact}}
#expired-modal .modal-content{max-width:400px;text-align:left}#expired-modal .modal-body{display:flex;flex-direction:column;gap:.5rem}#expired-modal #expired-token-input{border:1px solid #ccc;border-radius:4px;box-sizing:border-box;font-size:14px;margin-top:.5rem;padding:8px 12px;width:100%}#expired-modal .validation-message{color:#d9534f;font-size:12px;margin:0;min-height:16px}#expired-modal .separator-or{color:#888;font-weight:600;margin:1rem 0;position:relative;text-align:center}#expired-modal .separator-or:after,#expired-modal .separator-or:before{background-color:#ddd;content:"";height:1px;position:absolute;top:50%;width:40%}#expired-modal .separator-or:before{left:0}#expired-modal .separator-or:after{right:0}#expired-modal #expired-subscribe-container .btn{width:100%}#expired-modal .support-text{color:#666;font-size:12px;margin-top:1rem}.pricing-info{color:#333;font-size:1.1rem;line-height:1.4;margin:1rem 0;text-align:center}.pricing-info strong{font-size:1.2rem;font-weight:600}#expired-modal .modal-footer{align-items:center;display:flex;justify-content:space-between;margin-top:1.5rem}.modal-footer .btn{border-radius:4px;cursor:pointer;font-size:14px;font-weight:500;padding:8px 16px;transition:background-color .2s ease-in-out,border-color .2s ease-in-out}#expired-modal #expired-logout-btn,#expired-modal #redeem-new-token-btn{background-color:#f0f0f0;border:1px solid #ccc;color:#333}#expired-modal #redeem-new-token-btn:disabled{background-color:#e9ecef;color:#6c757d;cursor:not-allowed}#expired-modal .stripe-info-text{color:#666;font-size:12px}@media (max-width:768px){#expired-modal{align-items:flex-start;height:calc(100% - 57px);left:0;right:0;top:57px}#expired-modal .modal-content{border-radius:0;box-shadow:none;display:flex;flex-direction:column;height:100%;margin:0;max-width:100%;padding:1rem;width:100%}#expired-modal .modal-body{overflow-y:auto}}
.modal-overlay{align-items:center;background-color:rgba(0,0,0,.6);display:flex;height:100%;justify-content:center;left:0;position:fixed;top:0;width:100%;z-index:var(--z-index-feature-modal)}.modal-content{background:#fff;border-radius:8px;box-shadow:0 5px 15px rgba(0,0,0,.3);max-width:500px;padding:20px;width:90%}#profile-modal .modal-header{align-items:center;border-bottom:1px solid #eee;display:flex;justify-content:space-between;margin-bottom:20px;padding-bottom:10px}.modal-header h2{font-size:1.25rem;margin:0}.modal-body{display:flex;flex-direction:column;gap:20px}.profile-section h3{border-bottom:1px solid #f0f0f0;color:#333;font-size:1rem;margin-bottom:10px;margin-top:0;padding-bottom:5px}.profile-item{display:flex;font-size:.9rem;justify-content:space-between;padding:5px 0}.profile-label{color:#666;font-weight:500}.profile-value{color:#000;font-weight:600}.modal-footer{display:flex;gap:10px;justify-content:flex-end;margin-top:20px}.modal-footer .btn{border-radius:4px;cursor:pointer;font-size:14px;font-weight:500;padding:8px 16px;transition:background-color .2s ease-in-out,border-color .2s ease-in-out}.modal-footer .btn-secondary{background-color:#f0f0f0;border:1px solid #ccc;color:#333}.modal-footer .btn-primary{background-color:#6b7a6c;border:1px solid #6b7a6c;color:#fff}.pricing-info{color:#333;font-size:1.1rem;line-height:1.4;margin:1rem 0;text-align:center}.pricing-info strong{font-size:1.2rem;font-weight:600}@media (max-width:768px){#profile-modal.modal-overlay{align-items:flex-start;height:calc(100% - 57px);left:0;right:0;top:57px}#profile-modal .modal-content{border-radius:0;box-shadow:none;display:flex;flex-direction:column;height:100%;margin:0;max-width:100%;padding:0;width:100%}#profile-modal .modal-header{margin-bottom:0;padding:1rem 1rem .5rem}#profile-modal .modal-body{flex-grow:1;gap:1rem;overflow-y:auto;padding:1rem}#profile-modal .modal-footer{justify-content:space-between;margin-top:0;padding:1rem}#profile-modal .modal-footer .btn{flex-grow:1;min-height:44px;padding-bottom:12px;padding-top:12px}#profile-modal .profile-item{align-items:flex-start;flex-direction:column;gap:.25rem;padding:8px 0}#profile-modal .profile-label{color:#888;font-size:.85rem}#profile-modal .profile-value{font-size:1rem;font-weight:500}}
#redemption-modal .modal-content{max-width:450px}#redemption-modal .modal-body{text-align:left}#redemption-modal #token-input{border:1px solid #ccc;border-radius:4px;box-sizing:border-box;font-size:16px;letter-spacing:2px;margin:10px 0 5px;padding:10px;text-align:center;text-transform:uppercase;width:100%}#redemption-modal .modal-footer{align-items:center;display:flex;justify-content:space-between;margin-top:1.5rem}#redemption-modal #token-logout-link{color:var(--text-color-secondary);font-size:.9em;-webkit-text-decoration:none;text-decoration:none}#redemption-modal #token-logout-link:hover{color:var(--text-color-primary);-webkit-text-decoration:underline;text-decoration:underline}#redeem-token-btn{background-color:#6b7a6c;border:1px solid #6b7a6c;border-radius:4px;color:#fff;cursor:pointer;font-size:14px;font-weight:500;padding:8px 16px;transition:background-color .2s ease-in-out}#redeem-token-btn:disabled{background-color:#e0e0e0;border-color:#e0e0e0;color:#a0a0a0;cursor:not-allowed}@media (max-width:768px){#redemption-modal{align-items:flex-start;height:calc(100% - 57px);top:57px}#redemption-modal .modal-content{border-radius:0;box-shadow:none;display:flex;flex-direction:column;height:100%;margin:0;padding:1rem;width:100%}#redemption-modal .modal-body{overflow-y:auto}#redemption-modal .modal-footer .btn{padding-bottom:12px;padding-top:12px}}

#location-inspector-sheet-overlay{align-items:flex-end;background-color:rgba(0,0,0,.4);bottom:0;display:flex;justify-content:center;left:0;opacity:0;position:fixed;right:0;top:0;transition:opacity .3s ease-in-out,visibility .3s ease-in-out;visibility:hidden;z-index:1500}#location-inspector-sheet-overlay.visible{opacity:1;visibility:visible}#location-inspector-sheet{background-color:#fff;border-radius:16px 16px 0 0;box-shadow:0 -2px 10px rgba(0,0,0,.2);box-sizing:border-box;display:flex;flex-direction:column;max-height:80vh;max-width:600px;transform:translateY(100%);transition:transform .3s ease-out;width:100%}#location-inspector-sheet-overlay.visible #location-inspector-sheet{transform:translateY(0)}.location-inspector-sheet-header{align-items:center;border-bottom:1px solid var(--border-color);display:flex;flex-shrink:0;justify-content:space-between;padding:10px 20px}.location-inspector-sheet-header h2{font-size:1.2em;font-weight:500;margin:0}.location-inspector-sheet-body{flex-grow:1;overflow-y:auto;padding:1rem}.location-inspector-sheet-body .popup-row{align-items:flex-start;border-bottom:1px solid #f0f0f0;display:flex;justify-content:space-between;padding:8px 0}.location-inspector-sheet-body .popup-row:last-child{border-bottom:none}.location-inspector-sheet-body .popup-label{color:#333;font-weight:500}.location-inspector-sheet-body .popup-value{background-color:#f7f7f7;border-radius:4px;color:#555;flex-grow:1;font-family:Courier New,Courier,monospace;margin-left:10px;min-width:0;padding:2px 6px;text-align:right;word-wrap:break-word}.location-inspector-sheet-body .popup-copy-btn{background:none;border:none;cursor:pointer;flex-shrink:0;font-size:20px;opacity:.6;padding:0 0 0 12px}.location-inspector-sheet-header .icon-btn{flex-shrink:0}.pulsating-marker{animation:pulse 2s infinite;background-color:var(--accent-color);border:2px solid #fff;border-radius:50%;height:20px;width:20px}@keyframes pulse{0%{box-shadow:0 0 0 0 rgba(var(--route-color-rgb),.7);transform:scale(.95)}70%{box-shadow:0 0 0 15px rgba(var(--route-color-rgb),0);transform:scale(1)}to{box-shadow:0 0 0 0 rgba(var(--route-color-rgb),0);transform:scale(.95)}}.location-inspector-sheet-actions{background-color:#f9f9f9;border-top:1px solid var(--border-color);display:flex;flex-direction:column;flex-shrink:0;gap:.75rem;padding:1rem 1rem calc(1rem + env(safe-area-inset-bottom))}.location-inspector-sheet-actions .btn{font-size:16px;min-height:44px;width:100%}
.route-actions-overlay{display:none}#route-actions-container{position:relative;z-index:2}.route-actions-btn{align-items:center;background:none;border:none;border-radius:50%;cursor:pointer;display:flex;justify-content:center;padding:4px;transition:background-color .2s ease}.route-actions-btn:hover{background-color:var(--hover-bg-color)}.route-actions-menu{background-color:#fff;border:1px solid var(--border-color);border-radius:4px;box-shadow:0 4px 8px rgba(0,0,0,.1);display:none;list-style:none;margin:4px 0 0;min-width:180px;padding:4px 0;position:absolute;right:0;top:100%;z-index:1001}.route-actions-menu.visible{display:block}.route-actions-menu li{align-items:center;color:var(--text-color-primary);cursor:pointer;display:flex;font-size:.9rem;gap:10px;padding:8px 12px}.route-actions-menu li:hover{background-color:var(--hover-bg-color)}.route-actions-menu .material-icons{color:var(--text-color-secondary);font-size:18px}@media (max-width:768px){.route-actions-overlay{background-color:rgba(0,0,0,.5);height:100%;left:0;opacity:0;position:fixed;top:0;transition:opacity .3s ease,visibility .3s ease;visibility:hidden;width:100%;z-index:1400}.route-actions-overlay.visible{display:block;opacity:1;visibility:visible}.route-actions-menu{background-color:#f7f7f7;border-radius:16px 16px 0 0;border-top:1px solid var(--border-color);bottom:0;box-shadow:0 -4px 12px rgba(0,0,0,.15);display:block;left:0;padding:1rem 1rem calc(1rem + env(safe-area-inset-bottom));position:fixed;right:0;top:auto;transform:translateY(100%);transition:transform .3s ease-in-out;width:100%;z-index:1401}.route-actions-menu.visible{transform:translateY(0)}.route-actions-menu li{border-radius:8px;font-size:1rem;font-weight:500;padding:16px}.route-actions-menu li:hover{background-color:#e9e9e9}.route-actions-menu .separator{display:none}}
.accordion-header{align-items:center;cursor:pointer;display:flex;justify-content:space-between;-webkit-user-select:none;-moz-user-select:none;user-select:none}.accordion-header .control-subtitle{flex-grow:1;margin:0}.accordion-header .chevron-icon{transition:transform .3s ease-in-out}.accordion-section.active .accordion-header .chevron-icon{transform:rotate(180deg)}.accordion-content{max-height:0;overflow:hidden;transition:max-height .3s ease-in-out,padding .3s ease-in-out}@media (max-width:768px){#route-options,#route-summary,.accordion-header,.add-waypoint-controls,.control-subtitle{padding-left:1rem;padding-right:1rem}#route-summary{flex-shrink:0;margin-bottom:1rem;margin-top:1rem}.accordion-section.active .accordion-content{max-height:150px;padding-bottom:1rem;padding-top:1rem}#route-options{padding-left:1rem;padding-right:1rem}#waypoints-list{flex-grow:1;max-height:none;overflow-y:auto}.add-waypoint-controls{align-items:center;background-color:var(--hover-bg-color);border-top:1px solid var(--border-color);display:flex;flex-shrink:0;gap:1rem;justify-content:space-between;padding-top:1rem}.add-waypoint-label{display:none}#controls .add-waypoint-buttons{display:flex;flex-direction:row;flex-wrap:nowrap;gap:10px;order:2}#add-waypoint-by-click-btn,#add-waypoint-by-search-btn{flex-grow:1;white-space:nowrap;width:auto}#mobile-route-actions-container{flex-shrink:0;order:1}}@media (min-width:769px){.accordion-header .chevron-icon{display:none}.accordion-content{max-height:none;overflow:visible}#mobile-route-actions-container{display:none}}
.waypoint-item{align-items:center;border-bottom:1px solid var(--border-color);cursor:grab;display:flex;padding:8px 12px;position:relative;transition:background-color .2s ease-in-out}.waypoint-item:last-child{border-bottom:none}.waypoint-item:hover{background-color:var(--hover-bg-color)}.waypoint-item.dragging{background:var(--accent-color-light);opacity:.5}.waypoint-placeholder{color:var(--text-color-secondary);font-style:italic;padding:20px;text-align:center}.waypoint-content-wrapper{align-items:center;display:flex;flex:1;gap:12px;min-width:0;overflow:hidden}.waypoint-drag-handle{align-items:center;color:var(--text-color-secondary);cursor:grab;display:flex;opacity:.6}.waypoint-list-icon{align-items:center;border-radius:50%;color:#fff;display:flex;flex-shrink:0;font-size:14px;font-weight:700;height:24px;justify-content:center;width:24px}.waypoint-list-icon.start-marker{background-color:var(--success-color)}.waypoint-list-icon.end-marker{background-color:var(--error-color)}.waypoint-list-icon.via-marker{background-color:var(--accent-color)}.waypoint-list-icon.shaping-marker-list{background-color:var(--color-background-dark);border:1px solid #fff;height:10px;width:10px}.waypoint-item-content{display:flex;flex-direction:column;overflow:hidden}.waypoint-name{font-weight:500}.waypoint-name,.waypoint-secondary-info{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.waypoint-secondary-info{align-items:center;color:var(--text-color-secondary);display:flex;font-size:.8rem;gap:8px;margin-top:4px}.waypoint-arrival-time{background-color:var(--accent-color-light);border-radius:4px;color:var(--accent-color);flex-shrink:0;font-weight:600;padding:2px 6px}.waypoint-item-actions{align-items:center;display:none;gap:8px}.waypoint-item:hover .waypoint-item-actions{display:flex}.waypoint-add-shaping-btn,.waypoint-edit-btn,.waypoint-remove-btn{align-items:center;background:#f0f0f0;border:1px solid #ddd;border-radius:50%;color:#555;cursor:pointer;display:flex;height:28px;justify-content:center;padding:0;transition:background-color .2s,color .2s;width:28px}.waypoint-add-shaping-btn:hover,.waypoint-edit-btn:hover,.waypoint-remove-btn:hover{background:#e0e0e0;color:#000}.waypoint-add-shaping-btn svg,.waypoint-edit-btn svg{height:14px;width:14px}.waypoint-remove-btn{font-size:1.5rem;line-height:1;padding-bottom:4px}@media (max-width:768px){.waypoint-item-actions{display:flex}.waypoint-add-shaping-btn,.waypoint-edit-btn{display:none}}
#edit-waypoint-modal input[type=number],#edit-waypoint-modal input[type=text]{background-color:#fff;background-color:var(--background-primary,#fff);border:1px solid #ccc;border:1px solid var(--border-color,#ccc);border-radius:4px;box-sizing:border-box;color:var(--text-color-primary);font-family:inherit;font-size:1rem;padding:10px;transition:border-color .15s ease-in-out,box-shadow .15s ease-in-out;width:100%}#edit-waypoint-modal input[type=number]:focus-visible,#edit-waypoint-modal input[type=text]:focus-visible{border-color:#007bff;border-color:var(--accent-color,#007bff);box-shadow:0 0 0 .2rem rgba(3,155,229,.25);box-shadow:0 0 0 .2rem rgba(var(--route-color-rgb,3,155,229),.25);outline:none}@media (max-width:768px){#edit-waypoint-modal.modal-overlay{align-items:flex-start;height:calc(100% - 57px);left:0;right:0;top:57px;z-index:var(--z-index-feature-modal)}#edit-waypoint-modal .modal-content{border-radius:0;box-shadow:none;display:flex;flex-direction:column;height:100%;margin:0;max-height:none;padding:0;width:100%}#edit-waypoint-modal .modal-footer,#edit-waypoint-modal .modal-header{flex-shrink:0}#edit-waypoint-modal .modal-body{flex-grow:1;gap:0;overflow-y:auto}#edit-waypoint-modal .modal-body,#edit-waypoint-modal .modal-footer,#edit-waypoint-modal .modal-header{padding:1rem}#edit-waypoint-modal #waypoint-name-edit-input{margin-bottom:0}#edit-waypoint-modal .waypoint-type-options{margin:0;padding:0}#edit-waypoint-modal #waypoint-stop-details{margin-top:0}#edit-waypoint-modal .save-as-place-option{margin-top:0;padding-top:0}#edit-waypoint-modal .modal-footer{flex-direction:row;gap:10px;justify-content:flex-end;margin-top:0}#edit-waypoint-modal .modal-footer button{flex-grow:0;min-height:44px;width:auto}}
#add-shaping-point-modal input[type=number],#add-shaping-point-modal select{-webkit-appearance:none;-moz-appearance:none;appearance:none;border:1px solid #ccc;border-radius:4px;box-sizing:border-box;font-size:16px;padding:10px;width:100%}@media (max-width:768px){#add-shaping-point-modal.modal-overlay{align-items:flex-start;height:calc(100% - 57px);left:0;right:0;top:57px;z-index:var(--z-index-feature-modal)}#add-shaping-point-modal .modal-content{border-radius:0;box-shadow:none;display:flex;flex-direction:column;height:100%;margin:0;overflow-y:auto;padding:0;width:100%}#add-shaping-point-modal .modal-actions,#add-shaping-point-modal .shaping-point-inputs,#add-shaping-point-modal .validation-message,#add-shaping-point-modal h2,#add-shaping-point-modal p:not(.validation-message){padding:1rem}#add-shaping-point-modal .shaping-point-inputs{display:flex;flex-direction:column;gap:10px}#add-shaping-point-modal .distance-input-group,#add-shaping-point-modal .shaping-point-inputs label{width:100%}#add-shaping-point-modal input[type=number],#add-shaping-point-modal select{box-sizing:border-box;width:100%}#add-shaping-point-modal .modal-actions{flex-direction:column;gap:10px}#add-shaping-point-modal .modal-actions button{min-height:44px;width:100%}}
section.permission-section{border-bottom:1px solid var(--border-color);margin-bottom:24px;padding-bottom:16px;text-align:left}.permission-section:last-of-type{border-bottom:none;margin-bottom:0;padding-bottom:0}section.permission-section legend{align-items:center;color:var(--text-primary);display:flex;font-size:1.1em;gap:8px;margin-bottom:4px;margin-top:0;padding-left:2px;padding-right:2px}fieldset{border:none;padding:0}.permission-toggle{align-items:center;display:flex;gap:.5rem}.permission-toggle label{color:var(--text-secondary)}.shared-users-list-container{margin-top:1.5rem}#shared-users-list{margin-bottom:0;margin-top:.5rem;max-height:150px;overflow-y:auto}.shared-user-item{align-items:center;background-color:var(--background-secondary);border-radius:4px;display:flex;justify-content:space-between;margin-bottom:8px;padding:8px}.shared-user-item .user-handle{font-weight:500}.shared-user-item>div{align-items:baseline;display:flex;gap:.5rem}.user-permissions-text{color:var(--text-secondary);font-size:.85em;font-style:italic}.remove-user-btn{align-items:center;background:none;border:none;border-radius:50%;color:var(--text-secondary);cursor:pointer;display:flex;justify-content:center;padding:4px;transition:background-color .2s ease,color .2s ease}.remove-user-btn:hover{background-color:var(--background-hover);color:#d9534f;color:var(--text-danger,#d9534f)}.add-user-container{background-color:var(--background-secondary);border:1px solid var(--border-color);border-radius:8px;padding:16px}#add-user-action-row{align-items:center;display:flex;gap:1rem}.user-input-container{flex-grow:1;position:relative}.input-with-icon-wrapper{display:flex;position:relative}.validation-icon{display:none;pointer-events:none;position:absolute;right:10px;top:50%;transform:translateY(-50%)}#add-user-form.is-valid .input-with-icon-wrapper input[type=text]{border-color:#28a745;border-color:var(--success-color,#28a745)}#add-user-form.is-valid .validation-icon{color:#28a745;color:var(--success-color,#28a745);display:block}#add-user-form.is-invalid .input-with-icon-wrapper input[type=text]{border-color:#d9534f;border-color:var(--text-danger,#d9534f)}#add-user-form.is-invalid .validation-icon{color:#d9534f;color:var(--text-danger,#d9534f);display:block}#add-user-form input[type=text]{border:1px solid #ccc;border:1px solid var(--border-color,#ccc);border-radius:4px;flex-grow:1;font-size:16px;padding:10px 36px 10px 10px}#found-user-chip{align-items:center;background-color:var(--background-highlight);border:1px solid var(--border-color);border-radius:16px;color:var(--text-primary);display:inline-flex;font-weight:500;gap:8px;padding:4px 4px 4px 12px}.chip-remove-btn{align-items:center;background:var(--background-secondary);border:none;border-radius:50%;color:var(--text-secondary);cursor:pointer;display:flex;height:24px;justify-content:center;transition:background-color .2s ease;width:24px}.chip-remove-btn:hover{background-color:var(--background-hover)}.chip-remove-btn .material-icons{font-size:18px}#found-user-display{background-color:transparent;border-radius:0;color:#d9534f;color:var(--text-danger,#d9534f);flex-shrink:0;font-size:.9em;margin-bottom:0;margin-top:0;padding:0}.hidden{display:none!important}.permission-toggles-container{display:flex;flex-wrap:wrap;gap:1.5rem}#add-user-permissions .permission-toggles-container{margin-bottom:1rem}#add-user-permissions-row{align-items:center;display:flex;gap:1rem;justify-content:space-between;margin-top:12px}#add-user-permissions-row .permission-toggles-container{gap:1rem}#permissions-modal .modal-content{max-width:600px}#permissions-modal .modal-footer{border-top:1px solid var(--border-color);display:flex;gap:8px;justify-content:flex-end;padding:16px 24px}#permissions-modal .primary-btn,#permissions-modal .secondary-btn{border-radius:4px;cursor:pointer;font-size:1em;font-weight:500;padding:10px 20px;transition:background-color .2s ease}#permissions-modal .primary-btn{background-color:#6b7a6c;background-color:var(--primary-action-bg,#6b7a6c);border:1px solid #6b7a6c;border:1px solid var(--primary-action-bg,#6b7a6c);color:#fff;color:var(--primary-action-text,#fff)}#permissions-modal .primary-btn:hover{opacity:.9}#permissions-modal .secondary-btn{background-color:#f1f3f4;background-color:var(--secondary-action-bg,#f1f3f4);border:1px solid #dadce0;border:1px solid var(--secondary-action-border,#dadce0);color:#3c4043;color:var(--secondary-action-text,#3c4043)}#permissions-modal .secondary-btn:hover{background-color:var(--background-hover)}#permissions-modal button:focus-visible,#permissions-modal input[type=text]:focus-visible{outline:2px solid #6b7a6c;outline:2px solid var(--primary-action-bg,#6b7a6c);outline-offset:2px}.search-results-list{background-color:#fff;background-color:var(--background-primary,#fff);border:1px solid var(--border-color);border-radius:0 0 4px 4px;border-top:none;box-shadow:0 4px 8px rgba(0,0,0,.1);left:0;max-height:200px;overflow-y:auto;position:absolute;right:0;top:100%;z-index:10}.search-result-item{align-items:center;cursor:pointer;display:flex;gap:12px;padding:10px 12px;transition:background-color .2s ease}.search-result-item:hover{background-color:var(--background-hover)}.search-result-icon .material-icons{color:var(--text-secondary)}.search-result-details{display:flex;flex-direction:column;overflow:hidden}.search-result-name{color:var(--text-primary);font-weight:500;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}@media (max-width:768px){#permissions-modal.modal-overlay{align-items:flex-start;height:calc(100% - 57px);left:0;right:0;top:57px;z-index:var(--z-index-feature-modal)}#permissions-modal .modal-content{border-radius:0;box-shadow:none;display:flex;flex-direction:column;height:100%;margin:0;max-height:none;padding:0;width:100%}#permissions-modal .modal-body{flex-grow:1;overflow-y:auto;padding:1rem}#permissions-modal .modal-footer,#permissions-modal .modal-header{flex-shrink:0;padding:1rem}.permission-toggles-container{gap:1rem}.permission-toggle{min-height:44px}#add-user-action-row,#add-user-permissions-row{align-items:stretch;flex-direction:column;gap:.5rem}}
#share-modal .modal-content{max-width:680px;position:relative}#share-modal .modal-header h2{flex-grow:1;text-align:left}.share-content-wrapper{align-items:flex-start;display:flex;gap:1.5rem}.share-section{min-width:0}.share-content-wrapper>.share-section:first-child{flex:1}.share-section h4{color:var(--text-color-primary);font-size:1rem;font-weight:500;margin-bottom:8px;margin-top:0}#qr-code-container{background-color:#fff;border:1px solid var(--border-color);border-radius:8px;display:flex;flex-shrink:0;height:200px;justify-content:center;margin:0;max-width:200px;padding:1rem}.share-message-text{background-color:var(--background-secondary);border-radius:8px;color:var(--text-color-secondary);font-size:.9rem;line-height:1.5;padding:1rem;text-align:left;white-space:pre-wrap;word-break:break-word}#share-modal .modal-footer{align-items:center;display:flex;justify-content:space-between}.secondary-btn{background-color:#f1f3f4;border:1px solid #dadce0;border-radius:4px;color:#202124;cursor:pointer;font-weight:500;padding:8px 16px;transition:background-color .2s}.secondary-btn:hover{background-color:#e8eaed}.primary-btn{align-items:center;background-color:#6b7a6c;border:none;border-radius:4px;color:#fff;cursor:pointer;display:flex;font-weight:500;gap:8px;padding:8px 16px;transition:background-color .2s}.primary-btn:hover{background-color:#5a685b}.share-menu-container{position:relative}.share-menu{background-color:#fff;border:1px solid var(--border-color);border-radius:4px;bottom:70px;box-shadow:0 4px 8px rgba(0,0,0,.1);display:none;min-width:200px;padding:4px 0;position:absolute;right:20px;z-index:10}.share-menu.visible{display:block}.share-menu-item{align-items:center;color:var(--text-color-primary);cursor:pointer;display:flex;font-size:.9rem;gap:10px;padding:8px 12px;transition:background-color .2s ease}.share-menu-item:hover{background-color:var(--hover-bg-color)}.share-menu-item .material-icons{color:var(--text-color-secondary)}@media (max-width:768px){#share-modal.modal-overlay{align-items:flex-start;height:calc(100% - 57px);left:0;right:0;top:57px;z-index:var(--z-index-feature-modal)}#share-modal .modal-content{border-radius:0;box-shadow:none;display:flex;flex-direction:column;height:100%;margin:0;max-height:none;padding:0;width:100%}#share-modal .modal-body{flex-grow:1;overflow-y:auto;padding:1rem}#share-modal .modal-footer,#share-modal .modal-header{align-items:center;border-top:1px solid var(--border-color);display:flex;flex-shrink:0;justify-content:space-between;padding:1rem}.share-content-wrapper{align-items:center;flex-direction:column}#share-modal .share-menu{background-color:#f7f7f7;border-radius:16px 16px 0 0;border-top:1px solid var(--border-color);bottom:0;box-shadow:0 -4px 12px rgba(0,0,0,.15);display:none;left:0;padding:1rem 1rem calc(1rem + env(safe-area-inset-bottom));position:fixed;right:0;top:auto;transform:translateY(100%);transition:transform .3s ease-in-out;width:100%;z-index:1501}#share-modal .share-menu.visible{display:block;transform:translateY(0)}#share-modal .share-menu-item{border-radius:8px;font-size:1rem;font-weight:500;padding:16px}}
.my-routes-modal.modal-overlay{z-index:var(--z-index-feature-modal)}.my-routes-modal .modal-content{background-color:#fefefe;border:1px solid #888;border-radius:8px;box-shadow:0 4px 8px 0 rgba(0,0,0,.2),0 6px 20px 0 rgba(0,0,0,.19);display:flex;flex-direction:column;max-height:80vh;max-width:800px;padding:20px;position:relative;text-align:left;width:95%}.modal-controls-header{border-bottom:1px solid #ccc;display:flex;flex-shrink:0;gap:1rem;margin-bottom:1rem;padding-bottom:1rem}.route-search-input,.route-sort-select{border:1px solid #ccc;border-radius:4px;box-sizing:border-box;font-family:inherit;font-size:.9rem;padding:8px 12px;transition:border-color .15s ease-in-out,box-shadow .15s ease-in-out}.route-search-input:focus-visible,.route-sort-select:focus-visible{border-color:var(--route-color);box-shadow:0 0 0 .2rem rgba(var(--route-color-rgb),.25);outline:none}.route-search-input{flex-grow:1}.modal-tabs{border-bottom:1px solid #ccc;margin-bottom:15px}.tab-btn{background-color:inherit;border:none;border-bottom:3px solid transparent;cursor:pointer;font-size:17px;outline:none;padding:14px 16px;transition:.3s}.tab-btn:hover{background-color:#ddd}.tab-btn.active{border-bottom:3px solid #6b7a6c;font-weight:700}.route-list{display:grid;grid-template-columns:repeat(auto-fill,minmax(320px,1fr));grid-gap:1rem;flex-grow:1;gap:1rem;list-style-type:none;margin:0;min-height:100px;overflow-y:auto;padding:.5rem}.route-list-item{background-color:#fff;border:1px solid #e0e0e0;border-radius:8px;box-shadow:0 2px 4px rgba(0,0,0,.05);display:flex;flex-direction:column;padding:1rem;transition:box-shadow .2s ease-in-out}.route-list-item:last-child{border-bottom:none}.route-list-item:hover{background-color:#f9f9f9;box-shadow:0 4px 8px rgba(0,0,0,.08)}.route-info{display:flex;flex-direction:column;flex-grow:1;gap:4px;margin-bottom:1rem;text-align:left}.route-title{color:#333;font-size:1rem;font-weight:500}.route-metadata{color:#666;font-size:.85em}.route-actions{gap:8px;justify-content:flex-end}.btn-icon,.route-actions{align-items:center;display:flex}.btn-icon{background-color:transparent;border:none;border-radius:50%;cursor:pointer;height:36px;justify-content:center;padding:0;transition:background-color .2s,color .2s;width:36px}.route-actions .btn-icon{color:#555}.btn-icon:hover{background-color:#e9e9e9;color:#000}.delete-route-btn:hover{background-color:#fdf0f0;color:#d9534f}.modal-actions{border-top:1px solid #eee;margin-top:auto;padding-top:15px;text-align:right}.infinite-scroll-spinner{align-items:center;background-color:transparent!important;display:flex;justify-content:center;padding:1rem}.infinite-scroll-spinner .spinner{border-width:3px;height:24px;width:24px}@media (max-width:768px){.my-routes-modal.modal-overlay{align-items:flex-start;height:calc(100% - 57px);left:0;right:0;top:57px}.my-routes-modal .modal-content{border-radius:0;box-shadow:none;display:flex;flex-direction:column;height:100%;margin:0;max-height:none;padding:0;width:100%}.my-routes-modal .modal-content h2{margin-bottom:0;padding:1rem 1rem 0;text-align:left}.my-routes-modal .modal-controls-header{flex-wrap:nowrap;gap:1rem;justify-content:space-between;margin-bottom:0;padding:1rem}.my-routes-modal .route-search-input{flex-grow:2;flex-shrink:1;min-width:100px}.my-routes-modal .route-sort-select{flex-grow:1;flex-shrink:0;min-width:120px}.my-routes-modal .modal-actions,.my-routes-modal .route-list{padding:1rem}.modal-tabs{display:flex;margin-top:1rem}.tab-btn{flex-grow:1;text-align:center}}
@media (max-width:768px){#places-modal.modal-overlay{align-items:flex-start;height:calc(100% - 57px);left:0;right:0;top:57px;z-index:var(--z-index-feature-modal)}#places-modal .modal-content{border-radius:0;box-shadow:none;display:flex;flex-direction:column;height:100%;margin:0;max-height:none;padding:0;width:100%}#places-modal .modal-actions,#places-modal .modal-header-with-action,#places-modal .places-filter-container{box-sizing:border-box;flex-shrink:0;padding:1rem}#places-modal #places-filter-input{box-sizing:border-box;width:100%}#saved-places-list{flex-grow:1;grid-template-columns:1fr;max-height:none;overflow-y:auto}}
#edit-place-modal input[type=text],#edit-place-modal select{-webkit-appearance:none;-moz-appearance:none;appearance:none;background-color:#fff;border:1px solid #ccc;border-radius:4px;box-sizing:border-box;color:var(--text-color-primary);font-family:inherit;font-size:16px;padding:10px;width:100%}@media (max-width:768px){#edit-place-modal.modal-overlay{align-items:flex-start;height:calc(100% - 57px);left:0;right:0;top:57px;z-index:var(--z-index-feature-modal)}#edit-place-modal .modal-content{border-radius:0;box-shadow:none;box-sizing:border-box;height:100%;margin:0;max-height:none;overflow-y:auto;padding:1rem;text-align:left;width:100%}#edit-place-modal .modal-actions{margin-top:1rem}#edit-place-modal .setting-group{display:flex;flex-direction:column;gap:.5rem;margin-bottom:1rem}#edit-place-modal .setting-group input,#edit-place-modal .setting-group select{box-sizing:border-box;width:100%}}
.search-modal-content{display:flex;flex-direction:column;max-width:750px;min-height:400px;width:90%}#search-results-list{flex-grow:1;margin-top:1rem;overflow-y:auto}.search-result-item{align-items:center;border-bottom:1px solid #eee;cursor:pointer;display:flex;gap:15px;padding:10px 12px}.search-result-item:hover{background-color:#f4f4f4}.search-result-details{flex-grow:1;min-width:0}.search-result-name{font-weight:700}.search-result-address,.search-result-name{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.search-result-address{color:#777;font-size:.85em;margin-top:2px}.search-result-distance{color:#555;flex-shrink:0;font-size:.9em;font-weight:500;margin-left:1rem;white-space:nowrap}@media (max-width:768px){#search-modal.modal-overlay{align-items:flex-start;height:calc(100% - 57px);left:0;right:0;top:57px;z-index:var(--z-index-feature-modal)}#search-modal .modal-content{border-radius:0;box-shadow:none;display:flex;flex-direction:column;height:100%;margin:0;padding:0;width:100%}#search-modal #search-container{flex-grow:1;margin-top:0;overflow-y:auto}#search-modal #search-container,#search-modal .modal-actions,#search-modal h2{padding:1rem}#search-modal p{margin:0;padding:0 1rem}#search-modal #search-results-list{margin-top:0}}
#landing-page-container{background-color:#fff;color:var(--text-color-primary);font-family:Roboto,sans-serif}#landing-page-container section{border-bottom:1px solid #e0e0e0;box-sizing:border-box;padding:100px 40px;text-align:center}#landing-page-container section:last-child{border-bottom:none}#landing-page-container h1{font-size:3.5rem;font-weight:700;line-height:1.2;margin-bottom:1rem}#landing-page-container h2{font-size:2.8rem;font-weight:700;margin-bottom:1rem}#landing-page-container h3{font-size:1.5rem;font-weight:500;margin-bottom:.5rem}#landing-page-container p{font-size:1.1rem;line-height:1.6;margin:0 auto 1.5rem;max-width:700px}#landing-page-container .section-subtitle{color:var(--text-color-secondary);font-size:1.2rem;margin-bottom:4rem;max-width:600px}.cta-button{background-color:var(--route-color);border:none;border-radius:25px;box-shadow:0 4px 15px rgba(var(--route-color-rgb),.4);color:#fff;cursor:pointer;font-size:1rem;font-weight:700;letter-spacing:1px;padding:12px 28px;text-transform:uppercase;transition:all .3s ease}.cta-button:hover{box-shadow:0 6px 20px rgba(var(--route-color-rgb),.5);transform:translateY(-3px)}.cta-button.secondary{background-color:transparent;border:2px solid hsla(0,0%,100%,.8);box-shadow:none;color:#fff}.cta-button.secondary:hover{background-color:hsla(0,0%,100%,.1);border-color:#fff;box-shadow:0 6px 20px rgba(var(--route-color-rgb),.2);transform:translateY(-3px)}.final-cta-buttons,.hero-cta-buttons{align-items:center;display:flex;gap:1rem;justify-content:center}.cta-button.large{font-size:1.2rem;padding:15px 40px}.hero-section{align-items:center;background:linear-gradient(rgba(0,0,0,.4),rgba(0,0,0,.4)),url(/cb89a1bd42255e76fb5a.jpg) no-repeat 50%/cover;color:#fff;display:flex;justify-content:center;min-height:70vh;padding:60px 40px}.hero-content h1{text-shadow:2px 2px 8px rgba(0,0,0,.7)}.hero-content p{font-size:1.3rem;font-weight:300;margin-bottom:2.5rem;max-width:600px}.mobile-only-message{border:1px solid hsla(0,0%,100%,.7);border-radius:4px;display:none;font-weight:500;padding:10px}.adventure-anatomy-section{background-color:#f9f9f9}.adventure-anatomy-section .pillar-row{align-items:center;display:flex;gap:4rem;margin:0 auto;max-width:1200px;text-align:left}.adventure-anatomy-section .pillar-row:nth-of-type(2n){flex-direction:row-reverse}.adventure-anatomy-section .pillar-row+.pillar-row{margin-top:5rem}.adventure-anatomy-section .pillar-text{flex:1}.adventure-anatomy-section .pillar-text p{margin-left:0;margin-right:0;max-width:none}.adventure-anatomy-section .pillar-visual{background-color:#fff;border-radius:12px;box-shadow:0 6px 16px rgba(0,0,0,.08);flex-shrink:0;padding:1rem;width:600px}.adventure-anatomy-section .pillar-visual img{aspect-ratio:4/3;border-radius:8px;display:block;-o-object-fit:cover;object-fit:cover;width:100%}.community-section{background-color:#fff}.ai-section{background-color:#212121;color:#f5f5f5}.ai-content-wrapper{align-items:center;display:flex;gap:4rem;justify-content:center;margin:0 auto;max-width:1100px;text-align:left}.ai-ask-column{flex:1.5;max-width:500px}.ai-ask-column p{color:#bdbdbd;margin-bottom:2rem;margin-left:0;max-width:none}.ai-result-column{display:flex;flex:1;justify-content:center}.ai-phone-frame{background:#111;border-radius:36px;box-shadow:0 10px 30px rgba(0,0,0,.4),0 0 0 2px #444;max-width:320px;padding:12px;width:100%}.ai-phone-frame img{border-radius:8px;border-radius:24px;display:block;width:100%}.ai-prompts{display:flex;flex-direction:column;gap:1rem}.prompt{background-color:#333;border:1px solid #444;border-radius:20px;font-family:Courier New,Courier,monospace;font-size:1rem;padding:12px 18px;transition:all .2s ease-in-out}.prompt:hover{border-color:var(--route-color);transform:translateX(5px)}.workflow-section{background-color:#fff}.workflow-grid{display:grid;grid-template-columns:repeat(3,1fr);grid-gap:3rem;gap:3rem;margin:0 auto;max-width:1200px;text-align:left}.workflow-pillar{text-align:center}.community-icon,.workflow-icon{color:var(--route-color);height:56px;margin-bottom:1.5rem;width:56px}.community-icon{font-size:56px}.workflow-pillar h3{font-size:1.4rem;margin-bottom:1rem}.workflow-pillar p{color:var(--text-color-secondary);font-size:1rem;max-width:350px}.cta-section{background:linear-gradient(rgba(0,0,0,.5),rgba(0,0,0,.5)),url(/12dd7169abd3a208f6ab.jpg) no-repeat 50%/cover;color:#fff;padding:120px 40px}.cta-content h2{font-size:3rem;text-shadow:1px 1px 5px rgba(0,0,0,.5)}.cta-content p{font-size:1.2rem;margin-bottom:2.5rem}@media (max-width:768px){#landing-page-container h1{font-size:2.5rem}#landing-page-container h2{font-size:2rem}.adventure-anatomy-section .pillar-row,.adventure-anatomy-section .pillar-row:nth-of-type(2n){flex-direction:column;gap:2rem}.adventure-anatomy-section .pillar-visual{order:-1;width:100%}.adventure-anatomy-section .pillar-text{text-align:center}.ai-content-wrapper{flex-direction:column;gap:3rem}.ai-ask-column{text-align:center}.ai-ask-column p{margin-left:auto;margin-right:auto}.workflow-grid{gap:4rem;grid-template-columns:1fr}.final-cta-buttons,.hero-cta-buttons{align-items:stretch;flex-direction:column;gap:1rem}}.landing-footer{align-items:center;background-color:#212121;border-top:1px solid #333;color:#bdbdbd;display:flex;flex-direction:column;gap:20px;padding:40px 20px;text-align:center}.footer-links{display:flex;flex-wrap:wrap;gap:30px;justify-content:center}.footer-links a{color:#f5f5f5;font-weight:500;-webkit-text-decoration:none;text-decoration:none;transition:color .2s ease-in-out}.footer-links a:hover{color:var(--route-color)}.copyright{font-size:.9rem}
#gift-dashboard-modal .modal-content{max-width:800px;text-align:left}#gift-dashboard-modal .dashboard-summary,#gift-dashboard-modal .modal-header{align-items:center;display:flex;justify-content:space-between}#gift-dashboard-modal .dashboard-summary{background-color:#f9f9f9;border-radius:4px;margin-bottom:1rem;padding:1rem}#gift-dashboard-modal .balance-info{font-size:1rem}#gift-dashboard-modal .balance-value{color:var(--text-color-primary);font-size:1.2rem;font-weight:600;margin-left:.5rem}#gift-dashboard-modal #new-gift-token-btn{background-color:#6b7a6c;border:1px solid #6b7a6c;border-radius:4px;color:#fff;cursor:pointer;font-size:14px;font-weight:500;padding:8px 16px;transition:background-color .2s ease-in-out}#gift-dashboard-modal #new-gift-token-btn:disabled{background-color:#e0e0e0;border-color:#e0e0e0;color:#a0a0a0;cursor:not-allowed}#gift-dashboard-modal .cooldown-info{color:var(--text-color-secondary);font-size:.9rem;margin-bottom:1rem;text-align:center}#gift-dashboard-modal .token-list-container{border:1px solid var(--border-color);border-radius:4px;margin-top:1.5rem;max-height:40vh;overflow-y:auto}#gift-dashboard-modal #gift-token-table{border-collapse:collapse;width:100%}#gift-dashboard-modal #gift-token-table td,#gift-dashboard-modal #gift-token-table th{border-bottom:1px solid var(--border-color);padding:.75rem;text-align:left}#gift-dashboard-modal #gift-token-table thead th{background-color:#f5f5f5;font-weight:600;position:sticky;top:0}#gift-dashboard-modal #gift-token-table tbody tr:last-child td{border-bottom:none}#gift-dashboard-modal #gift-token-table td:first-child,#gift-dashboard-modal #gift-token-table th:first-child{width:30%}#gift-dashboard-modal #gift-token-table td:nth-child(2),#gift-dashboard-modal #gift-token-table th:nth-child(2){width:20%}#gift-dashboard-modal #gift-token-table td:nth-child(4),#gift-dashboard-modal #gift-token-table th:nth-child(4){width:30%}#gift-dashboard-modal #gift-token-table td:nth-child(4){word-break:break-word}#gift-dashboard-modal #gift-token-table td:last-child,#gift-dashboard-modal #gift-token-table th:last-child{text-align:center;width:80px}#gift-dashboard-modal .token-status-redeemed{color:var(--success-color);font-weight:500}#gift-dashboard-modal .token-status-unredeemed{color:var(--text-color-secondary)}#gift-dashboard-modal .share-token-action-btn{align-items:center;background:none;border:none;border-radius:50%;color:var(--text-color-secondary);cursor:pointer;display:inline-flex;justify-content:center;padding:4px}.share-token-action-btn:hover{background-color:var(--hover-bg-color);color:var(--accent-color)}#gift-dashboard-modal .disclaimer{color:var(--text-color-secondary);font-size:.8rem;margin-top:1.5rem;text-align:center}#gift-dashboard-modal #no-tokens-message{color:var(--text-color-secondary);padding:2rem;text-align:center}#gift-dashboard-modal .modal-actions{border-top:1px solid var(--border-color);display:flex;justify-content:flex-end;margin-top:1.5rem;padding-top:1rem}#gift-dashboard-modal #close-gift-dashboard-btn{background-color:#f1f3f4;border:1px solid #dadce0;border-radius:4px;color:#3c4043;cursor:pointer;font-size:14px;font-weight:500;padding:8px 16px;transition:background-color .2s ease-in-out,color .2s ease-in-out}@media (max-width:768px){#gift-dashboard-modal.modal-overlay{align-items:flex-start;height:calc(100% - 57px);left:0;right:0;top:57px}#gift-dashboard-modal .modal-content{border-radius:0;box-shadow:none;display:flex;flex-direction:column;height:100%;margin:0;max-width:100%;padding:0;width:100%}#gift-dashboard-modal .modal-body{flex-grow:1;overflow-y:auto;padding:1rem}#gift-dashboard-modal .modal-actions,#gift-dashboard-modal .modal-header{margin-top:0;padding:1rem}#gift-dashboard-modal .dashboard-summary{align-items:stretch;flex-direction:column;gap:1rem;margin-bottom:0}#gift-dashboard-modal .balance-info{text-align:center}#gift-dashboard-modal .token-list-container{border:none;margin-top:0;max-height:none}#gift-dashboard-modal #gift-token-table{border:none}#gift-dashboard-modal #gift-token-table thead{display:none;margin:0;padding:0}#gift-dashboard-modal #gift-token-table thead tr{margin:0;padding:0}#gift-dashboard-modal #gift-token-table tr{display:grid;grid-template-areas:"token token" "expires actions" "status status" "redeemed_by redeemed_by";grid-template-columns:1fr auto;grid-gap:1rem;background-color:#f9f9f9;background-color:var(--hover-bg-color,#f9f9f9);border:1px solid var(--border-color);border-radius:8px;gap:1rem;margin-bottom:1rem;padding:1rem}#gift-dashboard-modal #gift-token-table td{border-bottom:none;flex-direction:column;padding:0;width:auto!important}#gift-dashboard-modal #gift-token-table td.token-cell{grid-area:token}#gift-dashboard-modal #gift-token-table td.expires-cell{grid-area:expires}#gift-dashboard-modal #gift-token-table td.status-cell{grid-area:status}#gift-dashboard-modal #gift-token-table td.redeemed-by-cell{grid-area:redeemed_by}#gift-dashboard-modal #gift-token-table td.actions-cell{grid-area:actions}#gift-dashboard-modal #gift-token-table td:before{color:var(--text-color-secondary);content:attr(data-label);display:block;font-size:.8em}#gift-dashboard-modal #gift-token-table td span{font-weight:600;word-wrap:break-word}#gift-dashboard-modal #gift-token-table td.token-cell span{word-break:break-all}#gift-dashboard-modal #gift-token-table td.actions-cell{align-self:end}#gift-dashboard-modal #gift-token-table td.actions-cell:before{display:none}#gift-dashboard-modal #close-gift-dashboard-btn,#gift-dashboard-modal #new-gift-token-btn{min-height:44px}}
#share-token-modal .modal-content{max-width:800px;text-align:left}#share-token-modal .share-content-wrapper{display:flex;flex-wrap:wrap;gap:1.5rem;margin-top:1rem}#share-token-modal .share-message-container{flex:2;min-width:300px}#share-token-modal .share-qr-container{align-items:center;display:flex;flex:1;flex-direction:column;justify-content:center;min-width:200px}#share-token-modal label{color:var(--text-color-secondary);display:block;font-weight:500;margin-bottom:.5rem}#share-token-modal .share-message-display{background-color:#f9f9f9;border:1px solid var(--border-color);border-radius:4px;box-sizing:border-box;font-family:inherit;font-size:.9rem;padding:10px;white-space:pre-wrap;width:100%;word-break:break-word}#share-token-modal #share-qr-code{border:1px solid var(--border-color);border-radius:4px;height:180px!important;width:180px!important}#share-token-modal .balance-update-info{color:var(--text-color-secondary);font-size:.9rem;margin-top:1.5rem;text-align:center}#share-token-modal .modal-actions{align-items:center;display:flex;gap:.75rem;justify-content:space-between;margin-top:1rem;width:100%}.share-menu-container{flex-grow:0;position:relative}#share-menu{background-color:#fff;border:1px solid var(--border-color);border-radius:6px;bottom:100%;box-shadow:0 4px 12px rgba(0,0,0,.15);display:none;left:0;list-style:none;margin-bottom:8px;min-width:180px;padding:6px 0;position:absolute;z-index:10}#share-menu.visible{display:block}#share-menu .share-menu-item{background:none;border:none;color:var(--text-color-primary);cursor:pointer;display:block;font-size:14px;padding:8px 16px;text-align:left;width:100%}#share-menu .share-menu-item:hover{background-color:var(--hover-bg-color)}.menu-divider{background-color:var(--border-color);height:1px;margin:6px 0}@media (max-width:768px){#share-token-modal.modal-overlay{align-items:flex-start;height:calc(100% - 57px);left:0;right:0;top:57px}#share-token-modal .modal-content{border-radius:0;box-shadow:none;display:flex;flex-direction:column;height:100%;margin:0;max-width:100%;padding:0;width:100%}#share-token-modal .modal-body{flex-grow:1;overflow-y:auto}#share-token-modal .modal-actions,#share-token-modal .modal-body,#share-token-modal .modal-header{box-sizing:border-box;padding:1rem}#share-token-modal .share-content-wrapper{align-items:center;flex-direction:column}#share-token-modal .modal-actions button{min-height:44px}#share-token-modal .share-menu-overlay{background-color:rgba(0,0,0,.4);bottom:0;left:0;opacity:0;position:fixed;right:0;top:0;transition:opacity .3s ease-in-out,visibility .3s ease-in-out;visibility:hidden;z-index:1501}#share-token-modal .share-menu-overlay.visible{opacity:1;visibility:visible}#share-menu{border-radius:16px 16px 0 0;bottom:0;box-shadow:0 -2px 10px rgba(0,0,0,.2);left:0;margin-bottom:0;position:fixed;right:0;transform:translateY(100%);transition:transform .3s ease-out;width:100%;z-index:1502}#share-menu.visible{transform:translateY(0)}}
body,html{height:100%}body{font-family:Roboto,Helvetica,Arial,sans-serif;margin:0;overflow:hidden;padding:0;position:relative}:root{--route-color:#039be5;--route-color-rgb:3,155,229;--success-color:#4caf50;--error-color:#f44336;--accent-color:var(--route-color);--accent-color-light:#e3f2fd;--color-background-dark:#212121;--border-color:#e0e0e0;--hover-bg-color:#f5f5f5;--text-color-primary:#212121;--text-color-secondary:#757575;--z-index-map-controls:1000;--z-index-title-bar:1010;--z-index-feature-modal:1500;--z-index-loading-overlay:1999;--z-index-system-dialog:2000}#map{bottom:0;left:0;position:absolute;top:57px;width:100%}#title-bar{align-items:center;background-color:#6b7a6c;box-shadow:0 1px 3px rgba(0,0,0,.12),0 1px 2px rgba(0,0,0,.24);box-sizing:border-box;color:#fff;display:flex;height:57px;justify-content:space-between;padding:10px 20px;position:relative;width:100%;z-index:1010;z-index:var(--z-index-title-bar)}#title-bar h1{font-size:1.5em;font-weight:400;margin:0}#app-branding{align-items:center;display:flex;gap:12px;position:relative}#app-logo{height:40px;width:auto}.firebase-emulator-warning{background-color:#f44336!important;border:2px solid #6b7a6c!important;border-radius:50%!important;color:transparent!important;height:14px!important;left:0!important;overflow:hidden!important;position:absolute!important;top:0!important;transform:translate(-25%,-25%);width:14px!important}#controls{background:#fff;border-radius:5px;box-shadow:0 2px 5px rgba(0,0,0,.2);display:block;left:50px;overflow:visible;padding:10px;position:absolute;top:67px;width:350px;z-index:1000;z-index:var(--z-index-map-controls)}#loading-overlay{align-items:center;background-color:rgba(0,0,0,.5);display:none;flex-direction:column;gap:15px;height:100%;justify-content:center;left:0;position:fixed;top:0;width:100%;z-index:1999;z-index:var(--z-index-loading-overlay)}#loading-overlay.visible{display:flex}#loading-text{color:#fff;font-weight:500}.spinner{animation:spin 1s linear infinite;border:5px solid #f3f3f3;border-radius:50%;border-top-color:#039be5;border-top:5px solid var(--route-color);height:40px;width:40px}@keyframes spin{0%{transform:rotate(0deg)}to{transform:rotate(1turn)}}#route-planner-header{align-items:center;display:flex;gap:10px;justify-content:space-between;margin-bottom:10px}#route-planner-header h3{flex-grow:1;font-size:1.2em;font-weight:500;margin:0}#route-panel-close-btn{display:none}#route-summary{background-color:#f9f9f9;border:1px solid #eee;border-radius:4px;display:none;justify-content:space-around;margin:5px 0 10px;padding:10px}.summary-item{text-align:center}.summary-value{color:#333;font-size:1.2em;font-weight:500}.summary-label{color:#666;font-size:.8em}.leave-by-item{background-color:#e3f2fd;background-color:var(--accent-color-light);border-radius:4px;padding:5px 10px}.leave-by-item .summary-value{color:#039be5;color:var(--accent-color)}#download-gpx-btn{background:none;border:none;color:#666;cursor:pointer;margin-left:8px;padding:0;transition:color .2s ease-in-out}#download-gpx-btn:hover,#fit-route-btn:hover,.route-action-btn:hover{color:#039be5;color:var(--route-color)}#route-options{display:flex;flex-wrap:wrap;gap:15px}#route-options label{cursor:pointer;font-size:.9em}.control-subtitle{border-bottom:1px solid #eee;color:#888;font-size:.75em;font-weight:600;letter-spacing:.5px;margin:20px 0 10px;padding-bottom:5px;text-transform:uppercase}#auth-buttons-desktop,#title-bar-controls{align-items:center;display:flex;gap:15px}#title-bar-controls button{border:1px solid transparent;border-radius:4px;cursor:pointer;font-size:inherit;font-weight:400;outline:none;padding:8px 16px;transition:background-color .2s ease-in-out,color .2s ease-in-out,border-color .2s ease-in-out}#how-to-join-btn,#my-menu-btn,#new-route-btn{background-color:transparent;border-color:hsla(0,0%,100%,.8);color:#fff}#how-to-join-btn:hover,#my-menu-btn:hover,#new-route-btn:hover{background-color:hsla(0,0%,100%,.1);border-color:#fff}#login-btn{background-color:#4285f4;color:#fff}login-btn:hover{background-color:#357ae8}#hamburger-btn,#logout-btn,#messaging-hub-trigger-btn,#mobile-login-btn,#new-route-btn{display:none}.icon-btn{align-items:center;background:none;border:none;border-radius:50%;color:inherit;cursor:pointer;display:flex;height:40px;justify-content:center;position:relative;transition:background-color .2s ease-in-out;width:40px}.icon-btn:hover{background-color:hsla(0,0%,100%,.1)}.icon-btn>.material-icons{position:relative;z-index:1}.user-profile{display:none;position:relative}.user-profile-btn{align-items:center;background:none;border:none;color:inherit;cursor:pointer;display:flex;font-size:inherit;gap:8px}.user-menu{background-color:#fff;border:1px solid #ccc;border-radius:4px;box-shadow:0 2px 5px rgba(0,0,0,.15);display:none;margin-top:5px;min-width:120px;padding:4px 0;position:absolute;right:0;top:100%;z-index:1000;z-index:var(--z-index-map-controls)}.user-menu a{color:#000;display:block;padding:8px 12px;-webkit-text-decoration:none;text-decoration:none}.user-menu a:hover{background-color:#f0f0f0}.modal-overlay{align-items:center;background-color:rgba(0,0,0,.6);display:none;height:100%;justify-content:center;left:0;position:fixed;top:0;width:100%;z-index:2000;z-index:var(--z-index-system-dialog)}.modal-content{background-color:#fff;border-radius:8px;box-shadow:0 5px 15px rgba(0,0,0,.3);color:#333;max-width:400px;padding:20px 30px;text-align:center;width:90%}.modal-content h2{color:#6b7a6c;margin-top:0}.modal-content p{margin-bottom:20px}#error-modal-message{white-space:pre-line}#route-name-input{border:1px solid #ccc;border-radius:4px;font-size:16px;margin-bottom:20px;padding:10px;width:calc(100% - 22px)}.modal-actions{display:flex;gap:10px;justify-content:flex-end}.btn{align-items:center;border-radius:4px;cursor:pointer;display:inline-flex;font-size:14px;font-weight:500;gap:8px;justify-content:center;padding:8px 16px;-webkit-text-decoration:none;text-decoration:none;transition:background-color .2s ease-in-out,color .2s ease-in-out,border-color .2s ease-in-out}.btn-primary{background-color:#6b7a6c;border:1px solid #6b7a6c;color:#fff}.btn-secondary{background-color:#f1f3f4;border:1px solid #dadce0;color:#3c4043}.btn-secondary:hover{background-color:#e8eaed}.btn-danger{background-color:#f44336;background-color:var(--error-color,#f44336);border:1px solid #f44336;border:1px solid var(--error-color,#f44336);color:#fff}.btn-success{background-color:#4caf50;background-color:var(--success-color,#4caf50);border:1px solid #4caf50;border:1px solid var(--success-color,#4caf50);color:#fff}.btn-link{background:none;border:none;color:#039be5;color:var(--accent-color,#039be5);padding:0;-webkit-text-decoration:underline;text-decoration:underline}.btn:disabled{cursor:not-allowed;opacity:.6}#edit-waypoint-modal .modal-content{max-width:550px;text-align:left}.waypoint-type-options{border-bottom:1px solid #eee;border-top:1px solid #eee;margin:15px 0;padding:15px 0}.waypoint-type-options label{display:block;margin-bottom:8px}.waypoint-type-options p{color:#666;font-size:.8em;margin-top:10px}#edit-waypoint-modal #waypoint-name-edit-input{margin-bottom:20px}#waypoint-stop-details{display:none;margin-top:15px}#waypoint-stop-details h4{margin-bottom:10px}#waypoint-stop-details label{align-items:center;display:flex;justify-content:space-between;margin-bottom:12px}#waypoint-stop-details input{flex-basis:65%}.save-as-place-option{align-items:center;border-top:1px solid #eee;display:flex;gap:8px;margin-top:20px;padding-top:15px}.save-as-place-option label{color:#555;cursor:pointer;font-size:.9em}#add-shaping-point-modal .modal-content{max-width:450px;text-align:left}.shaping-point-inputs{align-items:center;display:flex;gap:20px;margin:20px 0}.shaping-point-inputs label{align-items:center;display:flex;gap:8px}.shaping-point-inputs+.modal-actions{margin-top:20px}.validation-message{color:#f44336;color:var(--error-color);font-size:.9em;margin-bottom:15px;margin-top:-10px;min-height:1.2em}.place-context-info{border-top:1px solid #eee;margin-top:20px;padding-top:15px;text-align:left}.place-context-info h4{color:#555;font-size:.9em;font-weight:600;letter-spacing:.5px;margin-bottom:10px;margin-top:0;text-transform:uppercase}.place-context-info .context-row{color:#666;display:flex;font-size:.9em;line-height:1.5;margin-bottom:8px}.place-context-info .context-label{color:#444;flex-shrink:0;font-weight:500;width:80px}#places-modal .modal-content{max-width:800px}#saved-places-list{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));grid-gap:1rem;gap:1rem;list-style:none;margin:0;max-height:70vh;overflow-y:auto;padding:.5rem}.route-drag-handle{background-color:#fff;border:2px solid #039be5;border:2px solid var(--route-color);border-radius:50%;box-shadow:0 0 5px rgba(0,0,0,.5)}#waypoints-list{list-style:none;margin-top:10px;max-height:45vh;overflow-y:auto;padding:0}.waypoint-item{align-items:center;border-bottom:1px solid #f0f0f0;cursor:pointer;display:flex;justify-content:space-between;padding:8px;transition:background-color .2s ease}.waypoint-item.dragging{background-color:#eef;opacity:.5}.waypoint-item.drag-over{border-top:2px solid #039be5;border-top:2px solid var(--route-color)}.waypoint-item:hover{background-color:#f9f9f9}.waypoint-content-wrapper{align-items:center;display:flex;flex-grow:1;gap:8px;min-width:0}.waypoint-item-content{flex-grow:1;min-width:0}.waypoint-name{display:block}.waypoint-name,.waypoint-secondary-info{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.waypoint-secondary-info{color:#666;font-size:.85em;margin-top:4px}.waypoint-item.shaping-point .waypoint-name{color:#888;font-style:italic}.waypoint-item-actions{align-items:center;display:flex;gap:0}.waypoint-add-shaping-btn,.waypoint-edit-btn,.waypoint-remove-btn{align-items:center;background:#f0f0f0;border:1px solid #ddd;border-radius:50%;color:#555;cursor:pointer;display:flex;height:28px;justify-content:center;padding:0;transition:background-color .2s,color .2s;width:28px}.waypoint-add-shaping-btn:hover,.waypoint-edit-btn:hover,.waypoint-remove-btn:hover{background:#e0e0e0;color:#000}.waypoint-add-shaping-btn svg,.waypoint-edit-btn svg{height:14px;width:14px}.waypoint-remove-btn{font-size:1.5rem;line-height:1;padding-bottom:4px}.waypoint-marker-icon{align-items:center;border:2px solid #fff;border-radius:50%;box-shadow:0 1px 3px rgba(0,0,0,.4);color:#fff;display:flex;font-size:14px;font-weight:700;justify-content:center;text-align:center}.start-marker{background-color:#4caf50}.end-marker{background-color:#f44336}.waypoint-list-icon{align-items:center;border-radius:50%;box-sizing:border-box;color:#fff;display:flex;flex-shrink:0;font-size:14px;font-weight:700;height:24px;justify-content:center;width:24px}.via-marker{background-color:#039be5;background-color:var(--route-color);line-height:0}.via-marker span{line-height:1}.shaping-marker-list{font-size:12px;height:12px;width:12px}.shaping-marker,.shaping-marker-list{background-color:#000}.add-waypoint-controls{border-top:1px solid #eee;margin-top:15px;padding-top:15px}#add-waypoint-by-click-btn{align-items:center;background-color:#f7f7f7;border:1px solid #ccc;border-radius:4px;color:#333;cursor:pointer;display:flex;font-size:.9em;font-weight:500;gap:8px;justify-content:center;padding:10px;transition:all .2s ease-in-out;width:100%}#add-waypoint-by-click-btn:hover{background-color:#e9e9e9;border-color:#bbb}#add-waypoint-by-click-btn.active{background-color:#e3f2fd;border-color:#039be5;border-color:var(--route-color);box-shadow:0 0 5px rgba(3,155,229,.5);box-shadow:0 0 5px rgba(var(--route-color-rgb),.5);color:#039be5;color:var(--route-color)}#add-waypoint-by-click-btn:disabled{cursor:not-allowed;opacity:.7}.add-waypoint-label{color:#666;font-size:.8em;font-weight:500;margin-bottom:8px}.add-waypoint-buttons{display:flex;flex-direction:column;gap:10px}#add-waypoint-by-search-btn{align-items:center;background-color:#f7f7f7;border:1px solid #ccc;border-radius:4px;color:#333;cursor:pointer;display:flex;font-size:.9em;font-weight:500;gap:8px;justify-content:center;padding:10px;transition:all .2s ease-in-out;width:100%}#add-waypoint-by-search-btn:hover{background-color:#e9e9e9;border-color:#bbb}#search-modal .modal-content{text-align:left}#search-modal #search-container,.search-input-wrapper{position:relative}#search-modal #waypoint-search-input{border:1px solid #ccc;border-radius:4px;box-sizing:border-box;font-size:16px;margin-bottom:5px;padding:10px 35px 10px 10px;width:100%}.info-icon{align-items:center;background-color:#aaa;border-radius:50%;color:#fff;cursor:help;display:flex;font-size:12px;font-weight:700;height:18px;justify-content:center;position:absolute;right:10px;top:50%;transform:translateY(-50%);-webkit-user-select:none;-moz-user-select:none;user-select:none;width:18px}.info-icon[data-tooltip]:hover:after{background-color:#333;border-radius:4px;bottom:125%;color:#fff;content:attr(data-tooltip);font-size:12px;left:50%;padding:8px 12px;pointer-events:none;position:absolute;transform:translateX(-50%);white-space:nowrap;z-index:10}#search-modal #search-results-list{background-color:#fff;border:1px solid #ddd;border-radius:4px;box-shadow:0 2px 5px rgba(0,0,0,.1);list-style:none;margin:0;max-height:250px;overflow-y:auto;padding:0}#search-modal #search-results-list li{align-items:center;border-bottom:1px solid #f0f0f0;cursor:pointer;display:flex;font-size:.9em;gap:10px;justify-content:space-between;padding:12px}#search-modal #search-results-list li:last-child{border-bottom:none}#search-modal #search-results-list li:hover{background-color:#f9f9f9}.result-name{flex-grow:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.result-distance{color:#666;font-weight:500}#map-controls{bottom:20px;display:flex;flex-direction:column;gap:8px;position:absolute;right:10px;z-index:1000;z-index:var(--z-index-map-controls)}#map-controls>button{align-items:center;background-color:#fff;border:none;border-radius:4px;box-shadow:0 1px 5px rgba(0,0,0,.4);cursor:pointer;display:flex;height:36px;justify-content:center;padding:0;transition:background-color .2s ease-in-out;width:36px}#map-controls>#mobile-chatbot-btn{display:none}#map-controls button:hover{background-color:#f4f4f4}#fit-route-btn{display:none}#chatbot-container{align-items:flex-end;bottom:25px;display:flex;flex-direction:column;gap:8px;position:absolute;right:54px;z-index:1010;z-index:var(--z-index-title-bar)}#chatbot-toggle-btn{align-items:center;background-color:#6b7a6c;border:none;border-radius:4px;box-shadow:0 2px 6px rgba(0,0,0,.3);color:#fff;cursor:pointer;display:flex;height:48px;justify-content:center;padding:0;transition:background-color .2s ease-in-out;width:48px}#chatbot-toggle-btn:hover{background-color:#5a685b}#chatbot-window{background-color:#fff;border-radius:8px;box-shadow:0 5px 15px rgba(0,0,0,.3);display:flex;flex-direction:column;height:450px;overflow:hidden;transition:opacity .3s,transform .3s;width:350px}#chatbot-toggle-btn.hidden,#chatbot-window.hidden{display:none}#chatbot-header{align-items:center;background-color:#6b7a6c;color:#fff;display:flex;font-weight:500;justify-content:space-between;padding:10px 15px}#chatbot-header span{font-size:1.1em}#chatbot-close-btn{background:none;border:none;color:#fff;cursor:pointer;font-size:24px;line-height:1}#chatbot-messages{background-color:#f9f9f9;flex-grow:1;overflow-y:auto;padding:15px}#chatbot-input-container{background-color:#fff;border-top:1px solid #e0e0e0;display:flex;padding:10px}#chatbot-input{border:1px solid #ccc;border-radius:18px;flex-grow:1;font-size:14px;outline:none;padding:8px 15px}#chatbot-send-btn{background:none;border:none;color:#039be5;color:var(--route-color);cursor:pointer;font-size:14px;font-weight:500;padding:0 10px}.chatbot-message{border-radius:18px;line-height:1.4;margin-bottom:10px;max-width:80%;padding:8px 12px;word-wrap:break-word}.bot-message{align-self:flex-start;background-color:#e9e9eb;border-bottom-left-radius:4px;color:#333}.user-message{align-self:flex-end;background-color:#039be5;background-color:var(--route-color);border-bottom-right-radius:4px;color:#fff}#chatbot-messages{display:flex;flex-direction:column}.typing-indicator{align-items:center;padding:12px}.typing-indicator span{animation:bounce 1.4s ease-in-out infinite both;background-color:#9e9e9e;border-radius:50%;display:inline-block;height:8px;margin:0 2px;width:8px}.typing-indicator span:first-child{animation-delay:-.32s}.typing-indicator span:nth-child(2){animation-delay:-.16s}@keyframes bounce{0%,80%,to{transform:scale(0)}40%{transform:scale(1)}}.dropdown-container{display:none;position:relative}#my-menu-btn{align-items:center;display:flex;gap:4px}.dropdown-menu,.user-menu{background-color:#6b7a6c;border:1px solid #5a685b;border-radius:4px;box-shadow:0 4px 8px rgba(0,0,0,.15);display:none;list-style:none;margin-top:8px;min-width:140px;padding:4px 0;position:absolute;right:0;top:100%;z-index:1010;z-index:var(--z-index-title-bar)}.dropdown-menu a,.user-menu a{color:#fff;display:block;padding:8px 16px;position:relative;-webkit-text-decoration:none;text-decoration:none;white-space:nowrap}.dropdown-menu a:hover,.user-menu a:hover{background-color:hsla(0,0%,100%,.1)}.leaflet-popup-content-wrapper{border-radius:8px;padding:1px}.leaflet-popup-content{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica,Arial,sans-serif;font-size:14px;line-height:1.5;margin:10px 15px;min-width:220px}.location-inspector-content .popup-row{align-items:center;display:flex;justify-content:space-between;padding:4px 0}.location-inspector-content .popup-label{color:#333;font-weight:600;margin-right:8px}.location-inspector-content .popup-value{background-color:#f7f7f7;border-radius:4px;color:#555;flex-grow:1;font-family:Courier New,Courier,monospace;padding:2px 6px}.location-inspector-content .popup-copy-btn{background:none;border:none;cursor:pointer;font-size:16px;opacity:.5;padding:0 0 0 8px;transition:opacity .2s,color .2s}.location-inspector-content .popup-copy-btn:hover{opacity:1}.location-inspector-content .popup-copy-btn:disabled{color:var(--color-success-fg);cursor:default;opacity:1}#chatbot-teaser{background-color:#fff;border-radius:12px;bottom:65px;box-shadow:0 3px 8px rgba(0,0,0,.2);color:#333;cursor:pointer;font-size:14px;line-height:1.4;max-width:240px;min-width:180px;padding:10px 15px;position:absolute;right:0;transform-origin:bottom right;transition:opacity .3s,transform .3s;z-index:1010;z-index:var(--z-index-title-bar)}.leaflet-interactive[stroke="#3388ff"]{cursor:pointer}.map-dragging-route{cursor:grabbing}#chatbot-teaser:after{border-left:8px solid transparent;border-right:8px solid transparent;border-top:8px solid #fff;bottom:-8px;content:"";height:0;position:absolute;right:15px;width:0}#chatbot-teaser.hidden{display:none}.modal-header-with-action{align-items:center;display:flex;justify-content:space-between}.modal-header-with-action,.places-filter-container{margin-bottom:1rem;width:100%}#places-filter-input{border:1px solid #ccc;border-radius:4px;font-size:1rem;padding:.5rem;width:100%}.place-item-card{background-color:#fff;border:1px solid #e0e0e0;border-radius:8px;box-shadow:0 2px 4px rgba(0,0,0,.05);padding:1rem;position:relative;transition:box-shadow .2s ease-in-out}.place-card-header{align-items:center;display:flex;font-size:1.1rem;font-weight:600;justify-content:space-between;margin-bottom:8px}.place-card-details{display:flex;flex-direction:column;gap:4px;margin-bottom:12px}.place-card-category{align-self:flex-start;background-color:#f0f0f0;border-radius:12px;color:#555;font-size:.75rem;font-weight:500;padding:2px 8px}.place-card-address{color:#757575;color:var(--text-color-secondary);font-size:.9rem}.no-filter-results-message,.no-places-message{color:#888;list-style-type:none;padding:2rem;text-align:center}.place-card-identifiers{border-top:1px solid #eee;padding-top:.75rem}.place-identifier-row{align-items:center;display:flex;font-size:.85rem;gap:.5rem;margin-bottom:.25rem}.place-identifier-label{color:#444;flex-shrink:0;font-weight:500;width:80px}.place-identifier-value{color:#555;flex-grow:1;font-family:Courier New,Courier,monospace;text-align:left}.place-identifier-row .popup-copy-btn{background:none;border:none;cursor:pointer;flex-shrink:0;font-size:16px;opacity:.5;padding:0;transition:opacity .2s,color .2s}.place-identifier-row .popup-copy-btn:hover{opacity:1}.place-identifier-row .popup-copy-btn:disabled{color:#4caf50;cursor:default;opacity:1}.place-card-actions{display:flex;gap:8px}.place-add-to-route-btn,.place-delete-btn,.place-edit-btn{align-items:center;background:#f0f0f0;border:1px solid #ddd;border-radius:50%;color:#555;cursor:pointer;display:flex;height:28px;justify-content:center;padding:0;width:28px}.place-add-to-route-btn svg,.place-edit-btn svg{height:14px;width:14px}.place-add-to-route-btn:hover,.place-delete-btn:hover,.place-edit-btn:hover{background:#e0e0e0;color:#000}.place-delete-btn{font-size:1.5rem;line-height:1;padding-bottom:4px}.search-result-item{align-items:center;border-bottom:1px solid #eee;cursor:pointer;display:flex;gap:1rem;justify-content:space-between;padding:.75rem 1rem}.search-result-item:hover{background-color:#f5f5f5}.result-main-info{align-items:center;display:flex;flex:1;gap:.15rem;min-width:0}.result-icon{flex-shrink:0;font-size:1.1rem}.result-name{color:#333;font-weight:600}.result-distance{color:#555;flex-shrink:0;font-size:.9rem;white-space:nowrap}#landing-page-container{display:none}body.unauthenticated #landing-page-container{display:block;padding-top:57px}body.unauthenticated{overflow-y:auto}body.unauthenticated #title-bar{position:fixed;top:0}body.unauthenticated #controls,body.unauthenticated #map,body.unauthenticated #map-controls{display:none}body.unauthenticated #chatbot-container{position:fixed}#mobile-chatbot-btn{display:none}@media (max-width:768px){#auth-buttons-desktop{display:none}#title-bar h1{font-size:1.2em}#title-bar-controls{gap:4px}#chatbot-teaser,#chatbot-toggle-btn,#my-menu-container,#user-profile{display:none}body:not(.unauthenticated) #map-controls>#mobile-chatbot-btn{display:flex}body.unauthenticated #chatbot-toggle-btn{background-color:#fff;box-shadow:0 1px 5px rgba(0,0,0,.4);color:#333;display:flex;height:36px;width:36px}body.unauthenticated #chatbot-toggle-btn:hover{background-color:#f4f4f4}.modal-content{margin-left:20px;margin-right:20px;width:auto}body.unauthenticated #mobile-login-btn{display:flex;margin-left:auto}body:not(.unauthenticated) #messaging-hub-trigger-btn{display:flex}.modal-actions .btn{font-size:16px;min-height:44px;padding:12px 16px}#new-route-modal.modal-overlay{align-items:flex-start;height:calc(100% - 57px);left:0;right:0;top:57px;z-index:1500;z-index:var(--z-index-feature-modal)}#new-route-modal .modal-content{border-radius:0;box-shadow:none;height:100%;margin:0;padding:1rem;text-align:left;width:100%}#new-route-modal .modal-actions{margin-top:1rem;padding:0}body:not(.unauthenticated) #hamburger-btn{display:flex}#admin-dashboard-btn{display:none!important}#new-route-btn{display:none}body.modal-open #admin-drawer-link,body.modal-open #hamburger-btn,body.modal-open #messaging-hub-trigger-btn,body.modal-open #mobile-chatbot-btn,body.modal-open #notification-bell-root,body.route-panel-open #admin-drawer-link,body.route-panel-open #hamburger-btn,body.route-panel-open #messaging-hub-trigger-btn,body.route-panel-open #notification-bell-root,body.route-panel-open #route-panel-toggle-btn{display:none!important}#route-panel-toggle-btn{background-color:#fff;border-radius:4px;box-shadow:0 1px 5px rgba(0,0,0,.4);color:#333;height:36px;left:10px;position:absolute;top:77px;width:36px;z-index:1000;z-index:var(--z-index-map-controls)}#controls{border-radius:0;box-shadow:none;display:flex;flex-direction:column;height:calc(100% - 57px);padding:0;top:57px;transform:translateX(-100%);transition:transform .3s ease-in-out;z-index:1500;z-index:var(--z-index-feature-modal)}#controls,#route-panel-overlay{left:0;position:fixed;width:100%}#route-panel-overlay{background-color:rgba(0,0,0,.5);height:100%;opacity:0;top:0;transition:opacity .3s ease-in-out,visibility .3s ease-in-out;visibility:hidden;z-index:1499;z-index:calc(var(--z-index-feature-modal) - 1)}body.route-panel-open #controls{transform:translateX(0)}body.route-panel-open #route-panel-overlay{opacity:1;visibility:visible}#route-planner-header{border-bottom:1px solid #e0e0e0;border-bottom:1px solid var(--border-color);flex-shrink:0;height:56px;padding:0 1rem}#route-planner-header h3{text-align:center}#route-panel-close-btn{color:#212121;color:var(--text-color-primary);display:flex}#route-actions-container{display:none!important}.waypoint-item-actions button{height:44px;padding:8px;width:44px}}#nav-drawer-overlay{display:block;opacity:0;transition:opacity .3s ease-in-out,visibility .3s ease-in-out;visibility:hidden}#nav-drawer{background-color:#f0f4f0;box-shadow:0 0 15px rgba(0,0,0,.2);display:flex;flex-direction:column;height:100%;position:fixed;right:0;top:0;transform:translateX(100%);transition:transform .3s ease-in-out;width:280px;z-index:2010}#nav-drawer.open{transform:translateX(0)}#nav-drawer-overlay{background-color:rgba(0,0,0,.5);height:100%;left:0;position:fixed;top:0;width:100%;z-index:2009}#nav-drawer-overlay.visible{opacity:1;visibility:visible}.nav-drawer-header{align-items:center;background-color:#6b7a6c;color:#fff;display:flex;flex-shrink:0;justify-content:space-between;padding:10px 20px}.nav-drawer-header h2{font-size:1.5em;font-weight:400;margin:0}.nav-drawer-header .icon-btn{color:#fff}.nav-drawer-content{flex-grow:1;overflow-y:auto;padding:1rem}.nav-drawer-content a{border-radius:4px;color:#212121;color:var(--text-color-primary);display:block;font-size:1rem;padding:12px 16px;-webkit-text-decoration:none;text-decoration:none}.nav-drawer-content a:hover{background-color:#f5f5f5;background-color:var(--hover-bg-color)}@media (min-width:769px){body:not(.unauthenticated) #auth-buttons-desktop{display:none}body:not(.unauthenticated) #my-menu-container,body:not(.unauthenticated) #new-route-btn,body:not(.unauthenticated) #user-profile{display:block}body:not(.unauthenticated) #messaging-hub-trigger-btn{display:flex}#hamburger-btn,#mobile-login-btn,#new-route-drawer-link{display:none}}.notification-toast{background-color:#333;border-radius:6px;box-shadow:0 3px 10px rgba(0,0,0,.2);color:#fff;font-size:.95rem;font-weight:500;opacity:0;padding:12px 20px;position:fixed;right:20px;top:77px;transform:translateY(-20px);transition:opacity .3s ease,transform .3s ease,visibility .3s;visibility:hidden;z-index:2000;z-index:var(--z-index-system-dialog,2000)}.notification-toast.show{opacity:1;transform:translateY(0);visibility:visible}.notification-toast.success{background-color:#4caf50;background-color:var(--success-color,#6b7a6c)}.notification-toast.error{background-color:#f44336;background-color:var(--error-color,#f44336)}.notification-toast.info{background-color:#039be5;background-color:var(--accent-color,#039be5)}.notification-badge{background-color:#f44336;background-color:var(--error-color,#f44336);border-radius:50%;height:10px;pointer-events:none;position:absolute;width:10px;z-index:2}.notification-badge.hidden{display:none}#my-menu-badge{border:2px solid #6b7a6c;right:0;top:0;transform:translate(25%,-25%)}#my-groups-badge{border:1px solid #6b7a6c;right:8px;top:10px}#messaging-badge{align-items:center;background-color:#f44336;background-color:var(--error-color,#f44336);border:2px solid #6b7a6c;border-radius:9px;box-sizing:border-box;color:#fff;display:flex;font-size:11px;font-weight:700;height:18px;justify-content:center;min-width:18px;padding:0 4px;pointer-events:none;position:absolute;right:5px;top:5px;z-index:2}

/*# sourceMappingURL=main.49ee09d6f976f2b85bd4.min.css.map*/