.route-builder-reticle{color:var(--interactive-neutral);left:50%;pointer-events:none;position:absolute;top:calc(50% - 80px);transform:translate(-50%,-100%) translateY(8.3%);transition:opacity var(--duration-fast) ease;z-index:2}.route-builder-reticle--hidden{opacity:0;pointer-events:none;visibility:hidden}.route-builder-reticle--invalid{animation:none;opacity:.4}.route-builder-reticle__pin{filter:drop-shadow(0 1px 3px rgba(0,0,0,.5));height:2rem;width:2rem}.route-builder-reticle__circle{display:none;filter:drop-shadow(0 1px 3px rgba(0,0,0,.5));height:1.75rem;width:1.75rem}.route-builder-reticle--select-mode{transform:translate(-50%,-50%)}.route-builder-reticle--select-mode .route-builder-reticle__pin{display:none}.route-builder-reticle--select-mode .route-builder-reticle__circle{display:block}.route-builder-hud{align-items:baseline;backdrop-filter:var(--effect-glass-heavy);-webkit-backdrop-filter:var(--effect-glass-heavy);background:var(--bg-glass-heavy);border-radius:var(--radius-full,9999px);box-shadow:0 2px 8px rgba(0,0,0,.15);display:flex;gap:var(--space-1,.25rem);left:50%;padding:var(--space-2,.5rem) var(--space-4,1rem);pointer-events:none;position:absolute;top:calc(env(safe-area-inset-top, 0px) + var(--space-3, .75rem));transform:translateX(-50%);z-index:var(--z-sticky,100)}.route-builder-hud__confirmed{color:var(--text-primary);font-size:var(--font-lg,1.125rem);font-weight:700;transition:transform var(--duration-fast,.15s) var(--ease-spring,cubic-bezier(.34,1.56,.64,1))}.route-builder-hud__confirmed--merge{transform:scale(1.03)}.route-builder-hud__preview{color:var(--text-tertiary);font-size:var(--font-sm,.875rem)}.route-builder-hud__preview--resolving{color:var(--text-faint);opacity:.6}.route-builder-hud__preview--off-grid{color:var(--status-warning)}.route-builder-hud__message{color:var(--text-secondary);display:none;font-size:var(--font-base,1rem);font-weight:500}.route-builder-hud--message-mode .route-builder-hud__confirmed,.route-builder-hud--message-mode .route-builder-hud__preview{display:none}.route-builder-hud--message-mode .route-builder-hud__message{display:inline}.route-builder-hud--hidden{opacity:0;pointer-events:none}.route-builder-hud__scrub{align-items:baseline;display:flex;gap:var(--space-3,.75rem);justify-content:space-between;width:100%}.route-builder-hud__scrub-value{align-items:baseline;display:flex}.route-builder-hud__digit-window{height:1.3em;line-height:1.3;margin:0 -1px;overflow:hidden;transition:width .2s cubic-bezier(.34,1.56,.64,1),opacity .2s ease}.route-builder-hud__digit-window--hidden{opacity:0;width:0!important}.route-builder-hud__digit-strip{display:flex;flex-direction:column;will-change:transform}.route-builder-hud__digit-strip div{align-items:center;color:var(--text-primary);display:flex;font-size:var(--font-lg,1.125rem);font-variant-numeric:tabular-nums;font-weight:700;height:1.3em;justify-content:center}.route-builder-hud__dot{color:var(--text-primary);font-size:var(--font-lg,1.125rem);font-weight:700}.route-builder-hud__unit{color:var(--text-tertiary);font-size:var(--font-sm,.875rem);font-weight:600;margin-left:2px}@media (prefers-reduced-motion:reduce){.route-builder-hud__confirmed--merge{transform:none}}.route-builder-controls{align-items:center;bottom:calc(var(--space-4) + max(env(safe-area-inset-bottom, 0px), var(--sheet-offset, 0px)));display:flex;justify-content:center;left:var(--space-4,1rem);pointer-events:none;position:absolute;right:var(--space-4,1rem);transition:bottom var(--duration-normal,.3s) var(--ease-spring,cubic-bezier(.34,1.56,.64,1));z-index:var(--z-overlay,2000)}.route-builder-controls__group{align-items:center;display:flex;gap:var(--space-4,1rem)}.route-builder-controls.dragging{transition:none}.route-builder-controls__btn{align-items:center;border:none;cursor:pointer;display:flex;justify-content:center;pointer-events:auto;transition:transform var(--duration-fast,.15s) var(--ease-spring,cubic-bezier(.34,1.56,.64,1)),opacity var(--duration-fast,.15s) ease;-webkit-tap-highlight-color:transparent}.route-builder-controls__btn:active{transform:scale(.92)}.route-builder-controls__btn:disabled{cursor:default;opacity:.35}.route-builder-controls__btn:disabled:active{transform:none}.route-builder-controls__add-point--hidden{display:none}.route-builder-controls__add-point{background:var(--interactive-neutral);border-radius:50%;box-shadow:var(--shadow-lg,0 4px 12px rgba(0,0,0,.12));color:var(--text-inverse);height:64px;touch-action:manipulation;width:64px}.route-builder-controls__redo,.route-builder-controls__undo{backdrop-filter:var(--effect-glass-heavy);-webkit-backdrop-filter:var(--effect-glass-heavy);background:var(--bg-glass-heavy);border-radius:50%;box-shadow:0 2px 8px rgba(0,0,0,.15);color:var(--text-primary);height:48px;width:48px}.route-builder-controls__clear{backdrop-filter:var(--effect-glass-heavy);-webkit-backdrop-filter:var(--effect-glass-heavy);background:var(--bg-glass-heavy);border-radius:50%;box-shadow:0 2px 8px rgba(0,0,0,.15);color:var(--text-primary);height:48px;left:0;position:absolute;transition:opacity var(--duration-normal,.3s) var(--ease-spring,cubic-bezier(.34,1.56,.64,1)),transform var(--duration-normal,.3s) var(--ease-spring,cubic-bezier(.34,1.56,.64,1));width:48px}.route-builder-controls__clear--hidden{opacity:0;pointer-events:none;transform:scale(0)}.route-builder-controls__save{background:var(--interactive-neutral);border-radius:50%;box-shadow:var(--shadow-lg,0 4px 12px rgba(0,0,0,.12));color:var(--text-inverse);height:48px;position:absolute;right:0;transition:opacity var(--duration-normal,.3s) var(--ease-spring,cubic-bezier(.34,1.56,.64,1)),transform var(--duration-normal,.3s) var(--ease-spring,cubic-bezier(.34,1.56,.64,1));width:48px}.route-builder-controls__save--hidden{opacity:0;pointer-events:none;transform:scale(0)}.route-builder-controls--hidden{opacity:0;pointer-events:none;transform:translateY(20px)}.route-builder-controls__save .spinner-util{--spinner-color:var(--text-inverse)}@media (prefers-reduced-motion:reduce){.route-builder-controls__btn,.route-builder-controls__clear,.route-builder-controls__save{transition:none}}.route-builder-timeline{backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);background:hsla(0,0%,100%,.12);border:1px solid hsla(0,0%,100%,.1);border-radius:999px;margin:8px 12px 0;padding:4px 12px;position:relative;transition:opacity var(--duration-fast,.15s) ease}.route-builder-timeline--hidden{opacity:0;pointer-events:none}.route-builder-timeline__track{height:20px;position:relative;touch-action:none}.route-builder-timeline__dot{background:var(--bg-quaternary,hsla(0,0%,100%,.15));border-radius:50%;cursor:pointer;height:10px;position:absolute;top:50%;transform:translate(-50%,-50%);transition:left var(--duration-normal,.3s) var(--ease-spring,cubic-bezier(.34,1.56,.64,1)),background var(--duration-fast,.15s) ease,transform var(--duration-fast,.15s) var(--ease-spring,cubic-bezier(.34,1.56,.64,1));width:10px}.route-builder-timeline__dot:before{content:"";height:28px;left:50%;position:absolute;top:50%;transform:translate(-50%,-50%);width:28px}.route-builder-timeline__dot--entering{animation:timeline-dot-enter var(--duration-normal,.3s) var(--ease-spring,cubic-bezier(.34,1.56,.64,1)) both}@keyframes timeline-dot-enter{0%{transform:translate(-50%,-50%) scale(0)}}.route-builder-timeline__dot--active{background:var(--interactive-primary);transform:translate(-50%,-50%) scale(1.15)}.route-builder-timeline__dot--focused{border:2px solid #fff;box-shadow:0 0 8px var(--interactive-primary);transform:translate(-50%,-50%) scale(1.3)}@media (prefers-reduced-motion:reduce){.route-builder-timeline,.route-builder-timeline__dot{animation:none;transition:none}}.elevation-profile{padding:12px 16px 8px;touch-action:none;width:100%}.elevation-profile__empty{align-items:center;display:flex;justify-content:center;min-height:64px}.elevation-profile__empty-text{color:var(--text-faint);font-size:var(--font-lg);letter-spacing:var(--tracking-tight)}.elevation-profile svg{display:block;overflow:visible;width:100%}.elevation-profile__area--confirmed{fill:var(--interactive-primary);fill-opacity:.15}.elevation-profile__line--confirmed{fill:none;stroke:var(--interactive-primary);stroke-linecap:round;stroke-width:2}.elevation-profile__area--preview{fill:var(--text-faint);fill-opacity:.08}.elevation-profile__line--preview{fill:none;stroke:var(--text-faint);stroke-dasharray:4 3;stroke-linecap:round;stroke-width:1.5}.elevation-profile__axis text{fill:var(--text-faint);font-family:var(--font-sans);font-size:var(--font-xs);font-weight:var(--weight-medium);letter-spacing:var(--tracking-tight)}.elevation-profile__axis line,.elevation-profile__axis path{stroke:none}.elevation-profile__scrub-line{opacity:0;pointer-events:none;stroke:var(--text-primary);stroke-linecap:round;stroke-width:1.5}.elevation-profile__scrub-line--active{opacity:.6}@media (prefers-reduced-motion:reduce){.elevation-profile__area--confirmed,.elevation-profile__area--preview,.elevation-profile__line--confirmed,.elevation-profile__line--preview{transition:none}}.route-detail-content{display:flex;flex-direction:column}.route-summary{display:flex;flex-direction:column;gap:var(--space-4,1rem);padding:var(--space-4,1rem);padding-bottom:var(--scroll-padding-comfort)}.route-summary__header{align-items:center;display:flex;gap:var(--space-3,.75rem)}.route-summary__back{align-items:center;background:var(--bg-tertiary);border:none;border-radius:50%;color:var(--text-primary);cursor:pointer;display:flex;height:36px;justify-content:center;width:36px;-webkit-tap-highlight-color:transparent;transition:transform var(--duration-fast,.15s) var(--ease-spring)}.route-summary__back:active{transform:scale(.92)}.route-summary__title{color:var(--text-primary);font-size:var(--font-lg,1.125rem);font-weight:700}.route-summary__stats{display:flex;gap:var(--space-3,.75rem)}.route-summary__stat{align-items:center;display:flex;flex:1;flex-direction:column;gap:var(--space-1,.25rem)}.route-summary__stat-value{color:var(--text-primary);font-size:var(--font-lg,1.125rem);font-weight:700}.route-summary__stat-label{color:var(--text-tertiary);font-size:var(--font-xs,.75rem);letter-spacing:.03em;text-transform:uppercase}.route-summary__chart{min-height:80px}.route-summary__form{display:flex;flex-direction:column;gap:var(--space-4,1rem)}.route-summary__field{display:flex;flex-direction:column;gap:var(--space-1,.25rem)}.route-summary__label{color:var(--text-secondary);font-size:var(--font-sm,.875rem);font-weight:600}.route-summary__input,.route-summary__textarea{background-color:var(--foreground-color,#fff);border:2px solid var(--border-color,#e0e0e0);border-radius:12px;box-sizing:border-box;color:var(--text-primary);font-family:inherit;font-size:var(--font-size-base,1rem);line-height:1.5;padding:1rem;transition:border-color .2s ease-in-out,box-shadow .2s ease-in-out;width:100%}.route-summary__input:focus,.route-summary__textarea:focus{border-color:var(--input-focus-border-color,#3686ff);box-shadow:0 0 0 3px rgba(54,134,255,.1);outline:none}.route-summary__textarea{min-height:80px;resize:vertical}.route-summary__visibility{display:flex;gap:var(--space-2,.5rem)}.route-summary__visibility-btn{align-items:center;background:var(--foreground-color,#fff);border:2px solid var(--border-color,#e0e0e0);border-radius:12px;color:var(--text-secondary);cursor:pointer;display:flex;flex:1;font-family:inherit;font-size:var(--font-sm,.875rem);font-weight:600;gap:var(--space-2,.5rem);justify-content:center;padding:var(--space-3,.75rem);transition:border-color .2s ease-in-out,color .2s ease-in-out;-webkit-tap-highlight-color:transparent}.route-summary__visibility-btn .material-symbols-outlined{font-size:18px}.route-summary__visibility-btn--active{border-color:var(--border-selected,var(--interactive-neutral));color:var(--text-primary)}.route-summary__garmin-toggle{align-items:center;background:var(--bg-primary,var(--foreground-color,#fff));border:2px solid var(--border-default,var(--border-color,#e0e0e0));border-radius:12px;cursor:pointer;display:flex;gap:var(--space-3,.75rem);padding:var(--space-3,.75rem);-webkit-tap-highlight-color:transparent;transition:border-color .2s ease-in-out,background-color .2s ease-in-out}.route-summary__garmin-toggle:has(input:checked){background:var(--bg-secondary);border-color:var(--border-selected,var(--interactive-neutral))}.route-summary__garmin-toggle input[type=checkbox]{appearance:none;-webkit-appearance:none;background:var(--bg-primary);border:2px solid var(--border-default,var(--border-color,#e0e0e0));border-radius:6px;cursor:pointer;flex-shrink:0;height:20px;position:relative;transition:border-color .15s ease,background-color .15s ease;width:20px}.route-summary__garmin-toggle input[type=checkbox]:checked{background:var(--interactive-neutral);border-color:var(--interactive-neutral)}.route-summary__garmin-toggle input[type=checkbox]:checked:after{background:var(--text-inverse);content:"";inset:2px;-webkit-mask:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'><path d='M3 8.5l3 3 7-7' fill='none' stroke='black' stroke-width='2.5' stroke-linecap='round' stroke-linejoin='round'/></svg>") center/contain no-repeat;mask:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'><path d='M3 8.5l3 3 7-7' fill='none' stroke='black' stroke-width='2.5' stroke-linecap='round' stroke-linejoin='round'/></svg>") center/contain no-repeat;position:absolute}.route-summary__garmin-toggle input[type=checkbox]:disabled{cursor:default;opacity:.5}.route-summary__garmin-toggle-text{color:var(--text-primary);flex:1;font-size:var(--font-sm,.875rem);font-weight:600}.route-summary__garmin-status{align-items:center;border-radius:10px;display:flex;font-size:var(--font-sm,.875rem);gap:var(--space-3,.75rem);justify-content:space-between;line-height:1.35;padding:var(--space-2,.5rem) var(--space-3,.75rem)}.route-summary__garmin-status[hidden]{display:none}.route-summary__garmin-status--info{background:var(--status-info-bg);color:var(--status-info-text)}.route-summary__garmin-status--error{background:var(--status-error-bg);color:var(--status-error-text)}.route-summary__garmin-status--success{background:var(--status-success-bg);color:var(--status-success-text)}.route-summary__garmin-status-text{flex:1}.route-summary__garmin-status-action{background:transparent;border:1px solid;border-radius:999px;color:inherit;cursor:pointer;flex-shrink:0;font-family:inherit;font-size:var(--font-xs,.75rem);font-weight:700;padding:var(--space-1,.25rem) var(--space-3,.75rem);-webkit-tap-highlight-color:transparent;transition:background-color .15s ease}.route-summary__garmin-status-action:active{background:color-mix(in srgb,currentColor 15%,transparent)}.route-summary__publish{background:var(--interactive-neutral);border:none;border-radius:12px;color:var(--text-inverse);cursor:pointer;font-family:inherit;font-size:var(--font-size-base,1rem);font-weight:700;padding:var(--space-4,1rem);transition:opacity var(--duration-fast,.15s) ease,transform var(--duration-fast,.15s) var(--ease-spring);width:100%;-webkit-tap-highlight-color:transparent;align-items:center;display:flex;gap:var(--space-2,.5rem);justify-content:center}.route-summary__publish:active{transform:scale(.98)}.route-summary__publish:disabled{cursor:default;opacity:.5}.route-summary__publish:disabled:active{transform:none}.route-summary__publish .spinner-util{--spinner-color:var(--text-inverse)}@media (prefers-reduced-motion:reduce){.route-summary__back,.route-summary__garmin-status-action,.route-summary__garmin-toggle,.route-summary__input,.route-summary__publish,.route-summary__textarea,.route-summary__visibility-btn{transition:none}}#elevationProfileSheet .bottom-sheet-content{padding:0}.waypoint-context-menu{display:flex;flex-direction:column;gap:0;padding:0 var(--space-2)}.waypoint-context-menu__header{color:var(--text-heading);font-size:var(--font-xl);font-weight:var(--weight-semibold);letter-spacing:var(--tracking-tight);text-align:center}.waypoint-context-menu__actions{display:flex;flex-direction:column;gap:0}.waypoint-context-menu__action{align-items:center;background:var(--bg-surface-secondary);border:none;border-radius:12px;color:var(--text-body);cursor:pointer;display:flex;font-size:var(--font-lg);font-weight:500;gap:var(--space-3);letter-spacing:var(--tracking-tight);padding:var(--space-3) var(--space-4);transition:transform .1s ease}.waypoint-context-menu__action:active{transform:scale(.97)}.waypoint-context-menu__action i{color:var(--text-secondary);font-size:14px;text-align:center;width:20px}.waypoint-context-menu__action--destructive{color:var(--status-error)}.waypoint-context-menu__action--destructive i{color:var(--status-error)}.waypoint-context-menu__dismiss{background:transparent;border:none;border-radius:12px;color:var(--text-secondary);cursor:pointer;font-size:15px;font-weight:500;padding:12px}.waypoint-context-menu__dismiss:active{opacity:.7}.route-builder-actions{display:flex;flex-direction:column;gap:var(--space-3);pointer-events:none;position:fixed;right:var(--space-4);top:calc(env(safe-area-inset-top, 0px) + var(--space-4));transition:opacity var(--duration-normal,.3s) ease,transform var(--duration-normal,.3s) var(--ease-spring,cubic-bezier(.34,1.56,.64,1));z-index:2}.route-builder-actions__btn{align-items:center;backdrop-filter:var(--effect-glass-heavy);-webkit-backdrop-filter:var(--effect-glass-heavy);background:var(--bg-glass-heavy);border:none;border-radius:var(--radius-full,50%);box-shadow:var(--shadow-md,0 2px 6px rgba(0,0,0,.08));color:var(--text-body);cursor:pointer;display:flex;height:2.75rem;justify-content:center;pointer-events:auto;transition:transform var(--duration-fast,.15s) var(--ease-spring,cubic-bezier(.34,1.56,.64,1)),opacity var(--duration-fast,.15s) ease;width:2.75rem;-webkit-tap-highlight-color:transparent}.route-builder-actions__btn .material-symbols-outlined{font-size:20px}.route-builder-actions__btn:active{transform:scale(.92)}.route-builder-actions__btn:disabled{cursor:default;opacity:.35}.route-builder-actions__btn:disabled:active{transform:none}.route-builder-actions--hidden{opacity:0;pointer-events:none;transform:translateX(var(--space-5,20px))}@media (min-width:768px){.route-builder-actions{right:var(--space-6);top:calc(env(safe-area-inset-top, 0px) + var(--space-6))}}@media (prefers-reduced-motion:reduce){.route-builder-actions,.route-builder-actions__btn{transition:none}}.route-builder-search-fab{align-items:center;backdrop-filter:var(--effect-glass-heavy);-webkit-backdrop-filter:var(--effect-glass-heavy);background:var(--bg-glass-heavy);border:none;border-radius:50%;bottom:calc(var(--space-4) + max(env(safe-area-inset-bottom, 0px), var(--sheet-offset, 0px)) + 64px + var(--space-2));box-shadow:0 2px 8px rgba(0,0,0,.15);color:var(--text-body);cursor:pointer;display:flex;height:48px;justify-content:center;pointer-events:auto;position:absolute;right:var(--space-4,1rem);width:48px;z-index:var(--z-overlay,2000);-webkit-tap-highlight-color:transparent;transition:bottom var(--duration-normal,.3s) var(--ease-spring,cubic-bezier(.34,1.56,.64,1)),opacity var(--duration-normal,.3s) var(--ease-spring,cubic-bezier(.34,1.56,.64,1)),transform var(--duration-normal,.3s) var(--ease-spring,cubic-bezier(.34,1.56,.64,1))}.route-builder-search-fab .material-symbols-outlined{font-size:24px}@media (hover:hover) and (pointer:fine){.route-builder-search-fab:hover{filter:brightness(.97)}}.route-builder-search-fab:not(.route-builder-search-fab--hidden):active{filter:brightness(.94);transform:scale(.92)}.route-builder-search-fab--hidden{opacity:0;pointer-events:none;transform:scale(0)}@media (prefers-reduced-motion:reduce){.route-builder-search-fab{transition:none}}.route-builder-mode-toggle{display:none}@media (min-width:768px){.route-builder-mode-toggle{align-items:center;backdrop-filter:var(--effect-glass-heavy);-webkit-backdrop-filter:var(--effect-glass-heavy);background:var(--bg-glass-heavy);border-radius:var(--radius-full,999px);box-shadow:0 2px 8px rgba(0,0,0,.15);display:inline-flex;gap:var(--space-1,.25rem);left:calc(var(--rb-left-inset, 0px) + 24px);padding:var(--space-1,.25rem);pointer-events:auto;position:fixed;top:calc(env(safe-area-inset-top, 0px) + 24px);z-index:2}.route-builder-mode-toggle--hidden{opacity:0;pointer-events:none}.route-builder-mode-toggle__btn{align-items:center;background:transparent;border:none;border-radius:var(--radius-full,999px);color:var(--text-secondary);cursor:pointer;display:flex;height:2.25rem;justify-content:center;transition:background var(--duration-fast,.15s) ease,color var(--duration-fast,.15s) ease,transform var(--duration-fast,.15s) var(--ease-spring,cubic-bezier(.34,1.56,.64,1));width:2.25rem;-webkit-tap-highlight-color:transparent}.route-builder-mode-toggle__btn .material-symbols-outlined{font-size:1.25rem}.route-builder-mode-toggle__btn:active{transform:scale(.92)}.route-builder-mode-toggle__btn--active{background:var(--interactive-neutral);color:var(--text-inverse)}}@media (prefers-reduced-motion:reduce){.route-builder-mode-toggle__btn{transition:none}}.route-builder-side-panel{display:none}@media (min-width:768px){.route-builder-side-panel{backdrop-filter:var(--effect-glass-heavy);-webkit-backdrop-filter:var(--effect-glass-heavy);background:var(--bg-glass-heavy);box-shadow:2px 0 16px rgba(0,0,0,.18);display:flex;flex-direction:column;height:100lvh;left:0;position:fixed;top:0;transform:translate3d(-100%,0,0);transition:transform var(--duration-sheet,.3s) var(--ease-sheet,ease);width:var(--rb-left-inset,420px);z-index:var(--z-modal,2100)}.route-builder-side-panel--visible{transform:translateZ(0)}.route-builder-side-panel__header{align-items:center;display:flex;flex:0 0 auto;gap:var(--space-2);padding:calc(env(safe-area-inset-top, 0px) + var(--space-3)) var(--space-3) var(--space-3)}.route-builder-side-panel__close{align-items:center;background:transparent;border:none;border-radius:var(--radius-full,50%);color:var(--text-body);cursor:pointer;display:inline-flex;height:2.75rem;justify-content:center;width:2.75rem;-webkit-tap-highlight-color:transparent;transition:background-color var(--duration-fast,.15s) var(--ease-default,ease),transform var(--duration-fast,.15s) var(--ease-spring,cubic-bezier(.34,1.56,.64,1))}.route-builder-side-panel__close .material-symbols-outlined{font-size:1.5rem}.route-builder-side-panel__close:active{transform:scale(.92)}@media (hover:hover) and (pointer:fine){.route-builder-side-panel__close:hover{background-color:var(--bg-tertiary)}}.route-builder-side-panel__body{display:flex;flex:1 1 auto;flex-direction:column;min-height:0;overflow:hidden}.route-builder-side-panel__body:has(.route-summary){overflow-y:auto}}@media (prefers-reduced-motion:reduce){.route-builder-side-panel{transition:none}}.place-search{background:transparent;display:flex;flex:1 1 auto;flex-direction:column;min-height:0;position:relative;width:100%}.place-search__input-row{align-items:center;background:transparent;border:1.5px solid var(--border-default);border-radius:var(--radius-full);display:flex;gap:var(--space-2);margin:var(--space-3) var(--space-4) var(--space-2);padding:var(--space-2) var(--space-3);position:relative;transition:box-shadow var(--duration-fast) var(--ease-default)}.place-search__input-row:focus-within{box-shadow:var(--focus-ring);outline:none}.place-search__input-icon{color:var(--text-muted);flex-shrink:0;font-size:20px}.place-search__input{appearance:none;background:transparent;border:none;color:var(--text-body);flex:1 1 auto;font-family:var(--font-body);font-size:var(--font-base);font-weight:var(--weight-regular);min-width:0;outline:none;padding:var(--space-1) 0}.place-search__input::placeholder{color:var(--text-muted)}.place-search__clear{align-items:center;appearance:none;background:var(--bg-tertiary);border:none;border-radius:var(--radius-full);color:var(--text-muted);cursor:pointer;display:inline-flex;flex-shrink:0;height:28px;justify-content:center;padding:0;transition:filter var(--duration-fast) var(--ease-default);width:28px}.place-search__clear .material-symbols-outlined{font-size:16px}@media (hover:hover) and (pointer:fine){.place-search__clear:hover{filter:brightness(.97)}}.place-search__clear:active{filter:brightness(.94)}.place-search__panel{background:transparent;display:flex;flex:1 1 auto;flex-direction:column;min-height:0;overflow:hidden}.place-search__status{align-items:center;color:var(--text-muted);display:flex;font-size:var(--font-sm);justify-content:center;padding:var(--space-6) var(--space-4)}.place-search__status .spinner-util{color:var(--text-muted)}.place-search__status-text{display:block;text-align:center}.place-search__results{flex:1 1 auto;list-style:none;margin:0;min-height:0;overflow-y:auto;padding:var(--space-1) 0 var(--space-4);-webkit-overflow-scrolling:touch}.place-search__result{align-items:center;cursor:pointer;display:flex;gap:var(--space-3);min-height:var(--touch-target-min);padding:var(--space-2) var(--space-4);transition:background-color var(--duration-fast) var(--ease-default)}@media (hover:hover) and (pointer:fine){.place-search__result:hover{background-color:var(--bg-tertiary)}}.place-search__result:active{background-color:var(--bg-tertiary)}--active.place-search__result{background-color:var(--bg-tertiary)}.place-search__result-icon{color:var(--text-muted);flex-shrink:0;font-size:20px}.place-search__result-text{display:flex;flex:1 1 auto;flex-direction:column;min-width:0}.place-search__result-primary{color:var(--text-body);font-size:var(--font-base);font-weight:var(--weight-medium);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.place-search__result-secondary{color:var(--text-muted);font-size:var(--font-sm);font-weight:var(--weight-regular);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.location-marker{align-items:center;background:transparent!important;border:none!important;display:flex!important;justify-content:center}.location-marker-dot{--dot-size:26px;--dot-radius:13px;--dot-border:4px;--marker-color:#3e7eff;--marker-shadow-color:rgba(62,126,255,.4);--marker-glow-color:var(--marker-shadow-color);--compass-gap:3px;--triangle-height:8px;--compass-orbit:calc(var(--dot-radius) + var(--dot-border) + var(--compass-gap));--compass-translation:calc(var(--compass-orbit) + var(--triangle-height));animation:location-marker-pulse 1.5s ease-in-out infinite;background:var(--marker-color);border:var(--dot-border) solid #fff;border-radius:50%;box-shadow:0 4px 16px var(--marker-shadow-color);flex:none;height:var(--dot-size);overflow:visible;position:relative;transform:translateZ(0);width:var(--dot-size);will-change:transform}.location-marker-dot.is-live{--marker-color:#ff4757;--marker-shadow-color:rgba(255,71,87,.4);--marker-glow-color:rgba(255,71,87,.55)}.location-marker-dot:before{animation:location-marker-ripple 1.5s ease-out infinite;background:var(--marker-color);border-radius:50%;content:"";height:100%;left:50%;opacity:.4;position:absolute;top:50%;transform:translate(-50%,-50%);width:100%}.location-marker-dot:after{border-bottom:var(--triangle-height) solid var(--marker-color);border-left:5px solid transparent;border-right:5px solid transparent;content:"";height:0;left:50%;opacity:0;pointer-events:none;position:absolute;top:50%;transform:rotate(calc(var(--compass-heading, 0)*1deg)) translateY(calc(var(--compass-translation)*-1)) translateX(-50%);transform-origin:0 0;transition:none;width:0;z-index:10}.location-marker-dot.has-compass:after{opacity:1}.location-marker-dot.with-photo{--dot-size:48px;--dot-radius:24px;--dot-border:3px;border-color:var(--marker-color)}.location-marker-photo{border-radius:50%;height:100%;left:0;object-fit:cover;object-position:center;opacity:0;position:absolute;top:0;transition:opacity .3s ease;width:100%}.location-marker-photo.loaded{opacity:1}.location-marker-dot.has-initial{--initial-size:28px;--initial-ring-white:2px;--initial-ring-color:3px;--initial-fill:var(--color-ink-300);--dot-radius:calc(var(--initial-size)/2);--dot-border:calc(var(--initial-ring-white) + var(--initial-ring-color));animation:none;background:transparent;border:none;box-shadow:none;height:var(--initial-size);width:var(--initial-size)}.location-marker-dot.has-initial:before{display:none}.location-marker-initial,.location-marker-pulse,.location-marker-rings{border-radius:50%;height:var(--initial-size);left:50%;position:absolute;top:50%;transform:translate(-50%,-50%);width:var(--initial-size)}.location-marker-rings{box-shadow:0 0 0 var(--initial-ring-white) #fff,0 0 0 calc(var(--initial-ring-white) + var(--initial-ring-color)) var(--marker-color),0 3px 10px var(--marker-shadow-color);z-index:1}.location-marker-pulse{animation:location-marker-ripple 1.5s ease-out infinite;background:var(--marker-color);opacity:.4;z-index:2}.location-marker-initial{align-items:center;background:var(--initial-fill);box-sizing:border-box;color:#fff;display:flex;font-size:calc(var(--initial-size)*.44);font-weight:700;justify-content:center;line-height:1;padding-top:.08em;text-transform:uppercase;user-select:none;z-index:3}@media (prefers-reduced-motion:reduce){.location-marker-pulse{animation:none;opacity:0}}.location-marker-dot.is-following{border-color:#fff;box-shadow:0 0 0 3px var(--marker-glow-color),0 4px 20px var(--marker-glow-color)}.location-marker-dot.is-paused{--marker-color:var(--text-muted);--marker-shadow-color:hsla(220,9%,46%,.35);animation:none;box-shadow:0 4px 16px var(--marker-shadow-color)}.location-marker-dot.is-paused:before{animation:none;opacity:0}.location-marker-dot.is-paused:after{opacity:.4}@keyframes location-marker-pulse{0%,to{box-shadow:0 4px 16px var(--marker-shadow-color);transform:scale(1)}50%{box-shadow:0 6px 24px var(--marker-shadow-color);transform:scale(1.15)}}@keyframes location-marker-ripple{0%{opacity:.4;transform:translate(-50%,-50%) scale(1)}to{opacity:0;transform:translate(-50%,-50%) scale(2)}}@media (prefers-reduced-motion:reduce){.location-marker-dot{animation:none}.location-marker-dot:before{animation:none;opacity:0}.location-marker-photo{transition:none}}.current-user-accuracy-circle{background:rgba(62,126,255,.1);border:2px solid rgba(62,126,255,.3)}.platform-mobile #main-content.route-route-builder{top:0}.route-builder-page-wrapper{height:100dvh;margin:calc(var(--top-content-inset)*-1 - 1) 0 0 0;overflow:hidden;padding:0;position:relative;width:100%;--rb-left-inset:0px}.route-builder-page-wrapper>.route-builder-map{inset:0;position:absolute;z-index:0}.route-builder-overlay{inset:0;pointer-events:none;position:absolute}.route-builder-close-btn{align-items:center;backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);background:hsla(0,0%,100%,.85);border:none;border-radius:50%;box-shadow:0 2px 8px rgba(0,0,0,.15);color:var(--text-body);cursor:pointer;display:flex;font-size:18px;height:2.75rem;justify-content:center;left:16px;position:fixed;top:calc(env(safe-area-inset-top, 0px) + 16px);transition:transform .2s ease,box-shadow .2s ease;width:2.75rem;z-index:2}.route-builder-close-btn:active{box-shadow:0 1px 4px rgba(0,0,0,.1);transform:scale(.92)}.route-builder-sheet-content{display:flex;flex-direction:column;height:100%;min-height:0;position:relative}.route-builder-search-slot{display:flex;flex:0 0 auto;flex-direction:column;max-height:200px;min-height:0;overflow:hidden;transition:opacity var(--duration-normal) var(--ease-default),max-height var(--duration-normal) var(--ease-default)}.route-builder-detail-slot{display:flex;flex:1 1 auto;flex-direction:column;min-height:0}.route-builder-sheet-content--searching .route-builder-search-slot{flex:1 1 auto;max-height:none}.route-builder-sheet-content--searching .route-builder-detail-slot{display:none}.route-builder-sheet-content--hide-search:not(.route-builder-sheet-content--searching) .route-builder-search-slot{max-height:0;opacity:0;pointer-events:none}@media (prefers-reduced-motion:reduce){.route-builder-search-slot{transition:none}}.route-builder-search-pin{display:inline-block;height:32px;pointer-events:none;position:relative;user-select:none;width:32px}.route-builder-search-pin__icon{display:block;filter:drop-shadow(0 2px 4px rgba(0,0,0,.35));font-size:32px;line-height:1}.route-builder-search-pin__label{color:var(--text-body);font-family:var(--font-body);font-size:var(--font-base);font-weight:var(--weight-semibold);left:100%;line-height:1.2;margin-left:var(--space-1);max-width:240px;overflow:hidden;paint-order:stroke fill;position:absolute;text-overflow:ellipsis;top:5px;white-space:nowrap;-webkit-text-stroke:3px #fff}.route-builder-waypoint-marker{align-items:center;display:flex;height:24px;justify-content:center;width:24px}.route-builder-waypoint-marker__dot{background:var(--interactive-primary);border:2px solid #fff;border-radius:50%;box-shadow:0 1px 4px rgba(0,0,0,.3);height:16px;pointer-events:none;position:relative;width:16px}.route-builder-waypoint-marker--selected .route-builder-waypoint-marker__dot{background:var(--brand-primary);border:2px solid var(--status-error);box-shadow:0 0 8px 2px rgba(220,38,38,.45),0 0 20px 4px rgba(220,38,38,.2)}.route-builder-waypoint-marker--snap-target .route-builder-waypoint-marker__dot{box-shadow:0 0 0 4px rgba(224,27,60,.35);transform:scale(1.2);transition:transform .15s ease,box-shadow .15s ease}.route-builder-waypoint-marker--adjacent .route-builder-waypoint-marker__dot:after{background:hsla(0,0%,100%,.45);border-radius:50%;box-shadow:0 0 8px 2px hsla(0,0%,100%,.35);content:"";inset:-2px;position:absolute}.route-builder-edit-controls{bottom:calc(env(safe-area-inset-bottom, 0px) + 24px);display:flex;gap:12px;left:50%;position:absolute;transform:translateX(-50%);z-index:2}.route-builder-edit-controls__btn{backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);border:none;border-radius:14px;cursor:pointer;font-size:15px;font-weight:600;padding:12px 24px;transition:transform .1s ease}.route-builder-edit-controls__btn:active{transform:scale(.95)}.route-builder-edit-controls__btn--cancel{background:hsla(0,0%,100%,.85);box-shadow:0 2px 8px rgba(0,0,0,.1);color:var(--text-body)}.route-builder-edit-controls__btn--confirm{background:var(--interactive-primary);box-shadow:0 2px 8px rgba(0,0,0,.15);color:var(--text-inverse)}.route-builder-edit-controls__btn--confirm i{margin-right:4px}.route-builder-edit-controls__btn--select{background:var(--interactive-primary);box-shadow:0 2px 8px rgba(0,0,0,.15);color:var(--text-inverse);transition:transform .1s ease,opacity var(--duration-fast,.15s) ease}.route-builder-edit-controls__btn--hidden{opacity:0;pointer-events:none}#elevationProfileSheet.bottom-sheet{backdrop-filter:var(--effect-glass-heavy);-webkit-backdrop-filter:var(--effect-glass-heavy);background:var(--bg-glass-heavy);box-shadow:none}@media (min-width:768px){.route-builder-page-wrapper{--rb-left-inset:420px;inset:0;margin:0;position:fixed;z-index:calc(var(--z-header, 1000) + 1)}.route-builder-close-btn{display:none}.route-builder-page-wrapper>.route-builder-overlay .route-builder-reticle{left:calc(var(--rb-left-inset) + (100vw - var(--rb-left-inset))/2)}.route-builder-page-wrapper>.route-builder-overlay .route-builder-hud{left:calc(var(--rb-left-inset) + (100vw - var(--rb-left-inset))/2)}.route-builder-page-wrapper>.route-builder-overlay .route-builder-controls{left:calc(var(--space-4, 1rem) + var(--rb-left-inset))}.route-builder-actions{right:var(--space-6,1.5rem)}.route-builder-page-wrapper>.route-builder-overlay .route-builder-search-fab{display:none}body.route-builder-active .route-builder-sheet-content--hide-search:not(.route-builder-sheet-content--searching) .route-builder-search-slot{max-height:200px;opacity:1;pointer-events:auto}.route-builder-page-wrapper>.route-builder-overlay{--sheet-offset:0px!important}}@media (prefers-reduced-motion:reduce){.route-builder-close-btn{transition:none}}:root{--sheet-height:30lvh;--optimal-sheet-height:90lvh;--safe-area-inset-top:0px;--safe-area-inset-right:0px;--safe-area-inset-bottom:0px;--safe-area-inset-left:0px;--has-notch:0;--has-home-indicator:0}.bottom-sheet-overlay{background-color:rgba(0,0,0,.5);height:calc(100% - var(--safe-area-inset-top));left:0;opacity:0;padding-bottom:env(safe-area-inset-bottom,0);padding-left:env(safe-area-inset-left,0);padding-right:env(safe-area-inset-right,0);pointer-events:none;position:fixed;top:0;touch-action:none;transition:opacity .5s ease-in-out,visibility 0s linear;visibility:hidden;width:100%;z-index:var(--z-overlay)}.bottom-sheet-overlay.visible{pointer-events:auto;visibility:visible}.bottom-sheet{background-color:#fff;border-top-left-radius:16px;border-top-right-radius:16px;bottom:0;box-shadow:0 -2px 10px rgba(0,0,0,.2);display:flex;flex-direction:column;height:var(--sheet-height);left:50%;margin-left:env(safe-area-inset-left,0);margin-right:env(safe-area-inset-right,0);max-height:min(var(--optimal-sheet-height),calc(100lvh - env(safe-area-inset-top, 0px)));overscroll-behavior:contain;pointer-events:auto;position:fixed;touch-action:pan-y;transform:translateX(-50%) translateY(100%);transition:transform var(--duration-sheet) var(--ease-sheet),height var(--duration-sheet) var(--ease-sheet),visibility 0s var(--duration-sheet);visibility:hidden;width:min(70vw,var(--activities-list-container-max-width));z-index:var(--z-modal)}.bottom-sheet.visible{transform:translateX(-50%) translateY(0);transition:transform var(--duration-sheet) var(--ease-sheet),height var(--duration-sheet) var(--ease-sheet),visibility 0s 0s;visibility:visible}.bottom-sheet.dragging{transition:none}body:has(.bottom-sheet.visible),html:has(.bottom-sheet.visible){overscroll-behavior-y:none}.bottom-sheet-header{align-items:center;border-bottom:1px solid #eee;cursor:grab;display:flex;justify-content:center;padding:12px;position:relative}.grabber{background-color:#ccc;border-radius:2.5px;height:5px;width:40px}.close-button{align-items:center;background:#eee;border:none;border-radius:50%;cursor:pointer;display:flex;font-size:var(--font-lg);height:24px;justify-content:center;position:absolute;right:16px;top:8px;width:24px}.bottom-sheet-header h3{flex-grow:1;font-size:var(--font-xl);font-weight:var(--weight-semibold);margin:0 0 0 40px;text-align:center}.bottom-sheet-header--stacked{flex-direction:column;gap:8px;padding:10px 12px 8px}.bottom-sheet-header--stacked h3{flex-grow:0;margin-left:0}.bottom-sheet-content{flex-grow:1;overflow-y:auto;overscroll-behavior-y:contain;padding:0;padding-bottom:var(--kb-height,0);pointer-events:auto;touch-action:pan-y}.bottom-sheet-content.drag-locked{pointer-events:none;touch-action:none}@media (max-width:1200px){.bottom-sheet{width:90vw}.bottom-sheet-content{overflow-x:hidden}}@media (max-width:768px){.bottom-sheet{border-top-left-radius:20px;border-top-right-radius:20px;margin-left:0;margin-right:0;width:calc(100vw - var(--safe-area-inset-left) - var(--safe-area-inset-right))}.bottom-sheet-content{overflow-x:hidden}.bottom-sheet-overlay{z-index:var(--z-overlay)}}@supports (padding-top:env(safe-area-inset-top)){.bottom-sheet-overlay{padding:env(safe-area-inset-top,0) env(safe-area-inset-right,0) 0 env(safe-area-inset-left,0)}@media (max-width:768px){.bottom-sheet{width:calc(100vw - env(safe-area-inset-left, 0px) - env(safe-area-inset-right, 0px))}}}@media (prefers-reduced-motion:reduce){.bottom-sheet,.bottom-sheet-overlay,.bottom-sheet.visible{transition:none!important}}.route-builder-overlay-container{background-color:var(--bg-primary);inset:0;opacity:0;position:fixed;transition:opacity var(--duration-normal) var(--ease-default);z-index:calc(var(--z-modal) + 10)}.route-builder-overlay-container.visible{opacity:1}.route-builder-overlay-container .route-builder-page-wrapper{height:100%;margin:0}.route-builder-loader{align-items:center;background:var(--bg-primary);display:flex;flex-direction:column;gap:var(--space-6);inset:0;justify-content:center;padding:var(--space-4);pointer-events:auto;position:absolute;z-index:var(--z-modal)}.route-builder-loader__svg{height:256px;overflow:visible;width:160px}.route-builder-loader__path{animation:route-builder-loader-draw 2.2s linear infinite;fill:none;stroke:var(--interactive-neutral);stroke-dasharray:380;stroke-dashoffset:380;stroke-linecap:round;stroke-linejoin:round;stroke-width:4}.route-builder-loader__origin{fill:var(--interactive-neutral)}.route-builder-loader__waypoint{animation:route-builder-loader-waypoint-in 2.2s linear infinite;fill:var(--interactive-neutral);opacity:0;transform-box:fill-box;transform-origin:center}.route-builder-loader__waypoint--1{animation-delay:0s}.route-builder-loader__waypoint--2{animation-delay:0s;animation-name:route-builder-loader-waypoint-in-2}.route-builder-loader__waypoint--3{animation-delay:0s;animation-name:route-builder-loader-waypoint-in-3}.route-builder-loader__pin{animation:route-builder-loader-pin-in 2.2s linear infinite;fill:var(--brand-primary);filter:drop-shadow(var(--cta-brand-glow));opacity:0;transform-box:fill-box;transform-origin:center bottom}.route-builder-loader__caption{color:var(--text-muted);font-size:var(--font-base);font-weight:var(--weight-medium);margin:0;text-align:center}@keyframes route-builder-loader-draw{0%{stroke-dashoffset:380}10%{animation-timing-function:cubic-bezier(.16,1,.3,1);stroke-dashoffset:380}22%{stroke-dashoffset:256}28%{animation-timing-function:cubic-bezier(.16,1,.3,1);stroke-dashoffset:256}40%{stroke-dashoffset:94}46%{animation-timing-function:cubic-bezier(.16,1,.3,1);stroke-dashoffset:94}58%{stroke-dashoffset:16}to{stroke-dashoffset:16}}@keyframes route-builder-loader-waypoint-in{0%,10%{animation-timing-function:cubic-bezier(.34,1.56,.64,1);opacity:0;transform:scale(.4)}16%,to{opacity:1;transform:scale(1)}}@keyframes route-builder-loader-waypoint-in-2{0%,28%{animation-timing-function:cubic-bezier(.34,1.56,.64,1);opacity:0;transform:scale(.4)}34%,to{opacity:1;transform:scale(1)}}@keyframes route-builder-loader-waypoint-in-3{0%,46%{animation-timing-function:cubic-bezier(.34,1.56,.64,1);opacity:0;transform:scale(.4)}52%,to{opacity:1;transform:scale(1)}}@keyframes route-builder-loader-pin-in{0%,50%{animation-timing-function:cubic-bezier(.34,1.56,.64,1);opacity:0;transform:translateY(-12px) scale(.2)}58%{animation-timing-function:cubic-bezier(.4,0,.2,1);opacity:1;transform:translateY(0) scale(1.3)}68%{animation-timing-function:cubic-bezier(.22,1,.36,1);transform:translateY(0) scale(.96)}to{opacity:1;transform:translateY(0) scale(1)}}@media (prefers-reduced-motion:reduce){.route-builder-loader__path{animation:none;stroke-dashoffset:0}.route-builder-loader__pin,.route-builder-loader__waypoint{animation:none;opacity:1;transform:none}}