.mapboxgl-map{font:12px/20px Helvetica Neue,Arial,Helvetica,sans-serif;overflow:hidden;position:relative;-webkit-tap-highlight-color:rgb(0 0 0/0)}.mapboxgl-canvas{left:0;position:absolute;top:0}.mapboxgl-map:-webkit-full-screen{height:100%;width:100%}.mapboxgl-canary{background-color:salmon}.mapboxgl-canvas-container.mapboxgl-interactive,.mapboxgl-ctrl-group button.mapboxgl-ctrl-compass{cursor:grab;-webkit-user-select:none;user-select:none}.mapboxgl-canvas-container.mapboxgl-interactive.mapboxgl-track-pointer{cursor:pointer}.mapboxgl-canvas-container.mapboxgl-interactive:active,.mapboxgl-ctrl-group button.mapboxgl-ctrl-compass:active{cursor:grabbing}.mapboxgl-canvas-container.mapboxgl-touch-zoom-rotate,.mapboxgl-canvas-container.mapboxgl-touch-zoom-rotate .mapboxgl-canvas{touch-action:pan-x pan-y}.mapboxgl-canvas-container.mapboxgl-touch-drag-pan,.mapboxgl-canvas-container.mapboxgl-touch-drag-pan .mapboxgl-canvas{touch-action:pinch-zoom}.mapboxgl-canvas-container.mapboxgl-touch-zoom-rotate.mapboxgl-touch-drag-pan,.mapboxgl-canvas-container.mapboxgl-touch-zoom-rotate.mapboxgl-touch-drag-pan .mapboxgl-canvas{touch-action:none}.mapboxgl-ctrl-bottom,.mapboxgl-ctrl-bottom-left,.mapboxgl-ctrl-bottom-right,.mapboxgl-ctrl-left,.mapboxgl-ctrl-right,.mapboxgl-ctrl-top,.mapboxgl-ctrl-top-left,.mapboxgl-ctrl-top-right{pointer-events:none;position:absolute;z-index:2}.mapboxgl-ctrl-top-left{left:0;top:0}.mapboxgl-ctrl-top{left:50%;top:0;transform:translate(-50%)}.mapboxgl-ctrl-top-right{right:0;top:0}.mapboxgl-ctrl-right{right:0;top:50%;transform:translateY(-50%)}.mapboxgl-ctrl-bottom-right{bottom:0;right:0}.mapboxgl-ctrl-bottom{bottom:0;left:50%;transform:translate(-50%)}.mapboxgl-ctrl-bottom-left{bottom:0;left:0}.mapboxgl-ctrl-left{left:0;top:50%;transform:translateY(-50%)}.mapboxgl-ctrl{clear:both;pointer-events:auto;transform:translate(0)}.mapboxgl-ctrl-top-left .mapboxgl-ctrl{float:left;margin:10px 0 0 10px}.mapboxgl-ctrl-top .mapboxgl-ctrl{float:left;margin:10px 0}.mapboxgl-ctrl-top-right .mapboxgl-ctrl{float:right;margin:10px 10px 0 0}.mapboxgl-ctrl-bottom-right .mapboxgl-ctrl,.mapboxgl-ctrl-right .mapboxgl-ctrl{float:right;margin:0 10px 10px 0}.mapboxgl-ctrl-bottom .mapboxgl-ctrl{float:left;margin:10px 0}.mapboxgl-ctrl-bottom-left .mapboxgl-ctrl,.mapboxgl-ctrl-left .mapboxgl-ctrl{float:left;margin:0 0 10px 10px}.mapboxgl-ctrl-group{background:#fff;border-radius:4px}.mapboxgl-ctrl-group:not(:empty){box-shadow:0 0 0 2px #0000001a}@media (-ms-high-contrast:active){.mapboxgl-ctrl-group:not(:empty){box-shadow:0 0 0 2px ButtonText}}.mapboxgl-ctrl-group button{background-color:initial;border:0;box-sizing:border-box;cursor:pointer;display:block;height:29px;outline:none;overflow:hidden;padding:0;width:29px}.mapboxgl-ctrl-group button+button{border-top:1px solid #ddd}.mapboxgl-ctrl button .mapboxgl-ctrl-icon{background-position:50%;background-repeat:no-repeat;display:block;height:100%;width:100%}@media (-ms-high-contrast:active){.mapboxgl-ctrl-icon{background-color:initial}.mapboxgl-ctrl-group button+button{border-top:1px solid ButtonText}}.mapboxgl-ctrl-attrib-button:focus,.mapboxgl-ctrl-group button:focus{box-shadow:0 0 2px 2px #0096ff}.mapboxgl-ctrl button:disabled{cursor:not-allowed}.mapboxgl-ctrl button:disabled .mapboxgl-ctrl-icon{opacity:.25}.mapboxgl-ctrl-group button:first-child{border-radius:4px 4px 0 0}.mapboxgl-ctrl-group button:last-child{border-radius:0 0 4px 4px}.mapboxgl-ctrl-group button:only-child{border-radius:inherit}.mapboxgl-ctrl button:not(:disabled):hover{background-color:#0000000d}.mapboxgl-ctrl-group button:focus:focus-visible{box-shadow:0 0 2px 2px #0096ff}.mapboxgl-ctrl-group button:focus:not(:focus-visible){box-shadow:none}.mapboxgl-ctrl button.mapboxgl-ctrl-zoom-out .mapboxgl-ctrl-icon{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='%23333' viewBox='0 0 29 29'%3E%3Cpath d='M10 13c-.75 0-1.5.75-1.5 1.5S9.25 16 10 16h9c.75 0 1.5-.75 1.5-1.5S19.75 13 19 13h-9z'/%3E%3C/svg%3E")}.mapboxgl-ctrl button.mapboxgl-ctrl-zoom-in .mapboxgl-ctrl-icon{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='%23333' viewBox='0 0 29 29'%3E%3Cpath d='M14.5 8.5c-.75 0-1.5.75-1.5 1.5v3h-3c-.75 0-1.5.75-1.5 1.5S9.25 16 10 16h3v3c0 .75.75 1.5 1.5 1.5S16 19.75 16 19v-3h3c.75 0 1.5-.75 1.5-1.5S19.75 13 19 13h-3v-3c0-.75-.75-1.5-1.5-1.5z'/%3E%3C/svg%3E")}@media (-ms-high-contrast:active){.mapboxgl-ctrl button.mapboxgl-ctrl-zoom-out .mapboxgl-ctrl-icon{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='%23fff' viewBox='0 0 29 29'%3E%3Cpath d='M10 13c-.75 0-1.5.75-1.5 1.5S9.25 16 10 16h9c.75 0 1.5-.75 1.5-1.5S19.75 13 19 13h-9z'/%3E%3C/svg%3E")}.mapboxgl-ctrl button.mapboxgl-ctrl-zoom-in .mapboxgl-ctrl-icon{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='%23fff' viewBox='0 0 29 29'%3E%3Cpath d='M14.5 8.5c-.75 0-1.5.75-1.5 1.5v3h-3c-.75 0-1.5.75-1.5 1.5S9.25 16 10 16h3v3c0 .75.75 1.5 1.5 1.5S16 19.75 16 19v-3h3c.75 0 1.5-.75 1.5-1.5S19.75 13 19 13h-3v-3c0-.75-.75-1.5-1.5-1.5z'/%3E%3C/svg%3E")}}@media (-ms-high-contrast:black-on-white){.mapboxgl-ctrl button.mapboxgl-ctrl-zoom-out .mapboxgl-ctrl-icon{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='%23000' viewBox='0 0 29 29'%3E%3Cpath d='M10 13c-.75 0-1.5.75-1.5 1.5S9.25 16 10 16h9c.75 0 1.5-.75 1.5-1.5S19.75 13 19 13h-9z'/%3E%3C/svg%3E")}.mapboxgl-ctrl button.mapboxgl-ctrl-zoom-in .mapboxgl-ctrl-icon{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='%23000' viewBox='0 0 29 29'%3E%3Cpath d='M14.5 8.5c-.75 0-1.5.75-1.5 1.5v3h-3c-.75 0-1.5.75-1.5 1.5S9.25 16 10 16h3v3c0 .75.75 1.5 1.5 1.5S16 19.75 16 19v-3h3c.75 0 1.5-.75 1.5-1.5S19.75 13 19 13h-3v-3c0-.75-.75-1.5-1.5-1.5z'/%3E%3C/svg%3E")}}.mapboxgl-ctrl button.mapboxgl-ctrl-fullscreen .mapboxgl-ctrl-icon{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='%23333' viewBox='0 0 29 29'%3E%3Cpath d='M24 16v5.5c0 1.75-.75 2.5-2.5 2.5H16v-1l3-1.5-4-5.5 1-1 5.5 4 1.5-3h1zM6 16l1.5 3 5.5-4 1 1-4 5.5 3 1.5v1H7.5C5.75 24 5 23.25 5 21.5V16h1zm7-11v1l-3 1.5 4 5.5-1 1-5.5-4L6 13H5V7.5C5 5.75 5.75 5 7.5 5H13zm11 2.5c0-1.75-.75-2.5-2.5-2.5H16v1l3 1.5-4 5.5 1 1 5.5-4 1.5 3h1V7.5z'/%3E%3C/svg%3E")}.mapboxgl-ctrl button.mapboxgl-ctrl-shrink .mapboxgl-ctrl-icon{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 29 29'%3E%3Cpath d='M18.5 16c-1.75 0-2.5.75-2.5 2.5V24h1l1.5-3 5.5 4 1-1-4-5.5 3-1.5v-1h-5.5zM13 18.5c0-1.75-.75-2.5-2.5-2.5H5v1l3 1.5L4 24l1 1 5.5-4 1.5 3h1v-5.5zm3-8c0 1.75.75 2.5 2.5 2.5H24v-1l-3-1.5L25 5l-1-1-5.5 4L17 5h-1v5.5zM10.5 13c1.75 0 2.5-.75 2.5-2.5V5h-1l-1.5 3L5 4 4 5l4 5.5L5 12v1h5.5z'/%3E%3C/svg%3E")}@media (-ms-high-contrast:active){.mapboxgl-ctrl button.mapboxgl-ctrl-fullscreen .mapboxgl-ctrl-icon{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='%23fff' viewBox='0 0 29 29'%3E%3Cpath d='M24 16v5.5c0 1.75-.75 2.5-2.5 2.5H16v-1l3-1.5-4-5.5 1-1 5.5 4 1.5-3h1zM6 16l1.5 3 5.5-4 1 1-4 5.5 3 1.5v1H7.5C5.75 24 5 23.25 5 21.5V16h1zm7-11v1l-3 1.5 4 5.5-1 1-5.5-4L6 13H5V7.5C5 5.75 5.75 5 7.5 5H13zm11 2.5c0-1.75-.75-2.5-2.5-2.5H16v1l3 1.5-4 5.5 1 1 5.5-4 1.5 3h1V7.5z'/%3E%3C/svg%3E")}.mapboxgl-ctrl button.mapboxgl-ctrl-shrink .mapboxgl-ctrl-icon{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='%23fff' viewBox='0 0 29 29'%3E%3Cpath d='M18.5 16c-1.75 0-2.5.75-2.5 2.5V24h1l1.5-3 5.5 4 1-1-4-5.5 3-1.5v-1h-5.5zM13 18.5c0-1.75-.75-2.5-2.5-2.5H5v1l3 1.5L4 24l1 1 5.5-4 1.5 3h1v-5.5zm3-8c0 1.75.75 2.5 2.5 2.5H24v-1l-3-1.5L25 5l-1-1-5.5 4L17 5h-1v5.5zM10.5 13c1.75 0 2.5-.75 2.5-2.5V5h-1l-1.5 3L5 4 4 5l4 5.5L5 12v1h5.5z'/%3E%3C/svg%3E")}}@media (-ms-high-contrast:black-on-white){.mapboxgl-ctrl button.mapboxgl-ctrl-fullscreen .mapboxgl-ctrl-icon{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='%23000' viewBox='0 0 29 29'%3E%3Cpath d='M24 16v5.5c0 1.75-.75 2.5-2.5 2.5H16v-1l3-1.5-4-5.5 1-1 5.5 4 1.5-3h1zM6 16l1.5 3 5.5-4 1 1-4 5.5 3 1.5v1H7.5C5.75 24 5 23.25 5 21.5V16h1zm7-11v1l-3 1.5 4 5.5-1 1-5.5-4L6 13H5V7.5C5 5.75 5.75 5 7.5 5H13zm11 2.5c0-1.75-.75-2.5-2.5-2.5H16v1l3 1.5-4 5.5 1 1 5.5-4 1.5 3h1V7.5z'/%3E%3C/svg%3E")}.mapboxgl-ctrl button.mapboxgl-ctrl-shrink .mapboxgl-ctrl-icon{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='%23000' viewBox='0 0 29 29'%3E%3Cpath d='M18.5 16c-1.75 0-2.5.75-2.5 2.5V24h1l1.5-3 5.5 4 1-1-4-5.5 3-1.5v-1h-5.5zM13 18.5c0-1.75-.75-2.5-2.5-2.5H5v1l3 1.5L4 24l1 1 5.5-4 1.5 3h1v-5.5zm3-8c0 1.75.75 2.5 2.5 2.5H24v-1l-3-1.5L25 5l-1-1-5.5 4L17 5h-1v5.5zM10.5 13c1.75 0 2.5-.75 2.5-2.5V5h-1l-1.5 3L5 4 4 5l4 5.5L5 12v1h5.5z'/%3E%3C/svg%3E")}}.mapboxgl-ctrl button.mapboxgl-ctrl-compass .mapboxgl-ctrl-icon{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='%23333' viewBox='0 0 29 29'%3E%3Cpath d='M10.5 14l4-8 4 8h-8z'/%3E%3Cpath id='south' d='M10.5 16l4 8 4-8h-8z' fill='%23ccc'/%3E%3C/svg%3E")}@media (-ms-high-contrast:active){.mapboxgl-ctrl button.mapboxgl-ctrl-compass .mapboxgl-ctrl-icon{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='%23fff' viewBox='0 0 29 29'%3E%3Cpath d='M10.5 14l4-8 4 8h-8z'/%3E%3Cpath id='south' d='M10.5 16l4 8 4-8h-8z' fill='%23999'/%3E%3C/svg%3E")}}@media (-ms-high-contrast:black-on-white){.mapboxgl-ctrl button.mapboxgl-ctrl-compass .mapboxgl-ctrl-icon{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='%23000' viewBox='0 0 29 29'%3E%3Cpath d='M10.5 14l4-8 4 8h-8z'/%3E%3Cpath id='south' d='M10.5 16l4 8 4-8h-8z' fill='%23ccc'/%3E%3C/svg%3E")}}.mapboxgl-ctrl button.mapboxgl-ctrl-geolocate .mapboxgl-ctrl-icon{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg viewBox='0 0 20 20' xmlns='http://www.w3.org/2000/svg' fill='%23333'%3E%3Cpath d='M10 4C9 4 9 5 9 5v.1A5 5 0 0 0 5.1 9H5s-1 0-1 1 1 1 1 1h.1A5 5 0 0 0 9 14.9v.1s0 1 1 1 1-1 1-1v-.1a5 5 0 0 0 3.9-3.9h.1s1 0 1-1-1-1-1-1h-.1A5 5 0 0 0 11 5.1V5s0-1-1-1zm0 2.5a3.5 3.5 0 1 1 0 7 3.5 3.5 0 1 1 0-7z'/%3E%3Ccircle id='dot' cx='10' cy='10' r='2'/%3E%3Cpath id='stroke' d='M14 5l1 1-9 9-1-1 9-9z' display='none'/%3E%3C/svg%3E")}.mapboxgl-ctrl button.mapboxgl-ctrl-buildings-toggle .mapboxgl-ctrl-icon{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg fill='none' xmlns='http://www.w3.org/2000/svg' viewBox='0 0 30 30'%3E%3Cpath d='M3.3335 11.6666C3.3335 12.5871 4.07969 13.3333 5.00016 13.3333C5.92064 13.3333 6.66683 12.5871 6.66683 11.6666L6.66683 6.66659L11.6668 6.66659C12.5873 6.66659 13.3335 5.92039 13.3335 4.99992C13.3335 4.07944 12.5873 3.33325 11.6668 3.33325H3.3335V11.6666Z' fill='currentColor'/%3E%3Cpath d='M26.6668 11.6666C26.6668 12.5871 25.9206 13.3333 25.0002 13.3333C24.0797 13.3333 23.3335 12.5871 23.3335 11.6666L23.3335 6.66659L18.3335 6.66659C17.413 6.66659 16.6668 5.92039 16.6668 4.99992C16.6668 4.07944 17.413 3.33325 18.3335 3.33325H26.6668L26.6668 11.6666Z' fill='currentColor'/%3E%3Cpath d='M13.3335 24.9999C13.3335 25.9204 12.5873 26.6666 11.6668 26.6666H3.3335V18.3333C3.3335 17.4128 4.07969 16.6666 5.00016 16.6666C5.92064 16.6666 6.66683 17.4128 6.66683 18.3333V23.3333H11.6668C12.5873 23.3333 13.3335 24.0794 13.3335 24.9999Z' fill='currentColor'/%3E%3Cpath d='M18.3335 26.6666C17.413 26.6666 16.6668 25.9204 16.6668 24.9999C16.6668 24.0794 17.413 23.3333 18.3335 23.3333H23.3335V18.3333C23.3335 17.4128 24.0797 16.6666 25.0002 16.6666C25.9206 16.6666 26.6668 17.4128 26.6668 18.3333V26.6666H18.3335Z' fill='currentColor'/%3E%3C/svg%3E");background-size:26px 26px}.mapboxgl-ctrl button.mapboxgl-ctrl-buildings-toggle.mapboxgl-ctrl-level-button-selected .mapboxgl-ctrl-icon{filter:invert(1) brightness(1)}.mapboxgl-ctrl button.mapboxgl-ctrl-geolocate:disabled .mapboxgl-ctrl-icon{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg viewBox='0 0 20 20' xmlns='http://www.w3.org/2000/svg' fill='%23aaa'%3E%3Cpath d='M10 4C9 4 9 5 9 5v.1A5 5 0 0 0 5.1 9H5s-1 0-1 1 1 1 1 1h.1A5 5 0 0 0 9 14.9v.1s0 1 1 1 1-1 1-1v-.1a5 5 0 0 0 3.9-3.9h.1s1 0 1-1-1-1-1-1h-.1A5 5 0 0 0 11 5.1V5s0-1-1-1zm0 2.5a3.5 3.5 0 1 1 0 7 3.5 3.5 0 1 1 0-7z'/%3E%3Ccircle id='dot' cx='10' cy='10' r='2'/%3E%3Cpath id='stroke' d='M14 5l1 1-9 9-1-1 9-9z' fill='%23f00'/%3E%3C/svg%3E")}.mapboxgl-ctrl button.mapboxgl-ctrl-geolocate.mapboxgl-ctrl-geolocate-active .mapboxgl-ctrl-icon{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg viewBox='0 0 20 20' xmlns='http://www.w3.org/2000/svg' fill='%2333b5e5'%3E%3Cpath d='M10 4C9 4 9 5 9 5v.1A5 5 0 0 0 5.1 9H5s-1 0-1 1 1 1 1 1h.1A5 5 0 0 0 9 14.9v.1s0 1 1 1 1-1 1-1v-.1a5 5 0 0 0 3.9-3.9h.1s1 0 1-1-1-1-1-1h-.1A5 5 0 0 0 11 5.1V5s0-1-1-1zm0 2.5a3.5 3.5 0 1 1 0 7 3.5 3.5 0 1 1 0-7z'/%3E%3Ccircle id='dot' cx='10' cy='10' r='2'/%3E%3Cpath id='stroke' d='M14 5l1 1-9 9-1-1 9-9z' display='none'/%3E%3C/svg%3E")}.mapboxgl-ctrl button.mapboxgl-ctrl-geolocate.mapboxgl-ctrl-geolocate-active-error .mapboxgl-ctrl-icon{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg viewBox='0 0 20 20' xmlns='http://www.w3.org/2000/svg' fill='%23e58978'%3E%3Cpath d='M10 4C9 4 9 5 9 5v.1A5 5 0 0 0 5.1 9H5s-1 0-1 1 1 1 1 1h.1A5 5 0 0 0 9 14.9v.1s0 1 1 1 1-1 1-1v-.1a5 5 0 0 0 3.9-3.9h.1s1 0 1-1-1-1-1-1h-.1A5 5 0 0 0 11 5.1V5s0-1-1-1zm0 2.5a3.5 3.5 0 1 1 0 7 3.5 3.5 0 1 1 0-7z'/%3E%3Ccircle id='dot' cx='10' cy='10' r='2'/%3E%3Cpath id='stroke' d='M14 5l1 1-9 9-1-1 9-9z' display='none'/%3E%3C/svg%3E")}.mapboxgl-ctrl button.mapboxgl-ctrl-geolocate.mapboxgl-ctrl-geolocate-background .mapboxgl-ctrl-icon{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg viewBox='0 0 20 20' xmlns='http://www.w3.org/2000/svg' fill='%2333b5e5'%3E%3Cpath d='M10 4C9 4 9 5 9 5v.1A5 5 0 0 0 5.1 9H5s-1 0-1 1 1 1 1 1h.1A5 5 0 0 0 9 14.9v.1s0 1 1 1 1-1 1-1v-.1a5 5 0 0 0 3.9-3.9h.1s1 0 1-1-1-1-1-1h-.1A5 5 0 0 0 11 5.1V5s0-1-1-1zm0 2.5a3.5 3.5 0 1 1 0 7 3.5 3.5 0 1 1 0-7z'/%3E%3Ccircle id='dot' cx='10' cy='10' r='2' display='none'/%3E%3Cpath id='stroke' d='M14 5l1 1-9 9-1-1 9-9z' display='none'/%3E%3C/svg%3E")}.mapboxgl-ctrl button.mapboxgl-ctrl-geolocate.mapboxgl-ctrl-geolocate-background-error .mapboxgl-ctrl-icon{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg viewBox='0 0 20 20' xmlns='http://www.w3.org/2000/svg' fill='%23e54e33'%3E%3Cpath d='M10 4C9 4 9 5 9 5v.1A5 5 0 0 0 5.1 9H5s-1 0-1 1 1 1 1 1h.1A5 5 0 0 0 9 14.9v.1s0 1 1 1 1-1 1-1v-.1a5 5 0 0 0 3.9-3.9h.1s1 0 1-1-1-1-1-1h-.1A5 5 0 0 0 11 5.1V5s0-1-1-1zm0 2.5a3.5 3.5 0 1 1 0 7 3.5 3.5 0 1 1 0-7z'/%3E%3Ccircle id='dot' cx='10' cy='10' r='2' display='none'/%3E%3Cpath id='stroke' d='M14 5l1 1-9 9-1-1 9-9z' display='none'/%3E%3C/svg%3E")}.mapboxgl-ctrl button.mapboxgl-ctrl-geolocate.mapboxgl-ctrl-geolocate-waiting .mapboxgl-ctrl-icon{animation:mapboxgl-spin 2s linear infinite}@media (-ms-high-contrast:active){.mapboxgl-ctrl button.mapboxgl-ctrl-geolocate .mapboxgl-ctrl-icon{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg viewBox='0 0 20 20' xmlns='http://www.w3.org/2000/svg' fill='%23fff'%3E%3Cpath d='M10 4C9 4 9 5 9 5v.1A5 5 0 0 0 5.1 9H5s-1 0-1 1 1 1 1 1h.1A5 5 0 0 0 9 14.9v.1s0 1 1 1 1-1 1-1v-.1a5 5 0 0 0 3.9-3.9h.1s1 0 1-1-1-1-1-1h-.1A5 5 0 0 0 11 5.1V5s0-1-1-1zm0 2.5a3.5 3.5 0 1 1 0 7 3.5 3.5 0 1 1 0-7z'/%3E%3Ccircle id='dot' cx='10' cy='10' r='2'/%3E%3Cpath id='stroke' d='M14 5l1 1-9 9-1-1 9-9z' display='none'/%3E%3C/svg%3E")}.mapboxgl-ctrl button.mapboxgl-ctrl-geolocate:disabled .mapboxgl-ctrl-icon{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg viewBox='0 0 20 20' xmlns='http://www.w3.org/2000/svg' fill='%23999'%3E%3Cpath d='M10 4C9 4 9 5 9 5v.1A5 5 0 0 0 5.1 9H5s-1 0-1 1 1 1 1 1h.1A5 5 0 0 0 9 14.9v.1s0 1 1 1 1-1 1-1v-.1a5 5 0 0 0 3.9-3.9h.1s1 0 1-1-1-1-1-1h-.1A5 5 0 0 0 11 5.1V5s0-1-1-1zm0 2.5a3.5 3.5 0 1 1 0 7 3.5 3.5 0 1 1 0-7z'/%3E%3Ccircle id='dot' cx='10' cy='10' r='2'/%3E%3Cpath id='stroke' d='M14 5l1 1-9 9-1-1 9-9z' fill='%23f00'/%3E%3C/svg%3E")}.mapboxgl-ctrl button.mapboxgl-ctrl-geolocate.mapboxgl-ctrl-geolocate-active .mapboxgl-ctrl-icon{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg viewBox='0 0 20 20' xmlns='http://www.w3.org/2000/svg' fill='%2333b5e5'%3E%3Cpath d='M10 4C9 4 9 5 9 5v.1A5 5 0 0 0 5.1 9H5s-1 0-1 1 1 1 1 1h.1A5 5 0 0 0 9 14.9v.1s0 1 1 1 1-1 1-1v-.1a5 5 0 0 0 3.9-3.9h.1s1 0 1-1-1-1-1-1h-.1A5 5 0 0 0 11 5.1V5s0-1-1-1zm0 2.5a3.5 3.5 0 1 1 0 7 3.5 3.5 0 1 1 0-7z'/%3E%3Ccircle id='dot' cx='10' cy='10' r='2'/%3E%3Cpath id='stroke' d='M14 5l1 1-9 9-1-1 9-9z' display='none'/%3E%3C/svg%3E")}.mapboxgl-ctrl button.mapboxgl-ctrl-geolocate.mapboxgl-ctrl-geolocate-active-error .mapboxgl-ctrl-icon{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg viewBox='0 0 20 20' xmlns='http://www.w3.org/2000/svg' fill='%23e58978'%3E%3Cpath d='M10 4C9 4 9 5 9 5v.1A5 5 0 0 0 5.1 9H5s-1 0-1 1 1 1 1 1h.1A5 5 0 0 0 9 14.9v.1s0 1 1 1 1-1 1-1v-.1a5 5 0 0 0 3.9-3.9h.1s1 0 1-1-1-1-1-1h-.1A5 5 0 0 0 11 5.1V5s0-1-1-1zm0 2.5a3.5 3.5 0 1 1 0 7 3.5 3.5 0 1 1 0-7z'/%3E%3Ccircle id='dot' cx='10' cy='10' r='2'/%3E%3Cpath id='stroke' d='M14 5l1 1-9 9-1-1 9-9z' display='none'/%3E%3C/svg%3E")}.mapboxgl-ctrl button.mapboxgl-ctrl-geolocate.mapboxgl-ctrl-geolocate-background .mapboxgl-ctrl-icon{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg viewBox='0 0 20 20' xmlns='http://www.w3.org/2000/svg' fill='%2333b5e5'%3E%3Cpath d='M10 4C9 4 9 5 9 5v.1A5 5 0 0 0 5.1 9H5s-1 0-1 1 1 1 1 1h.1A5 5 0 0 0 9 14.9v.1s0 1 1 1 1-1 1-1v-.1a5 5 0 0 0 3.9-3.9h.1s1 0 1-1-1-1-1-1h-.1A5 5 0 0 0 11 5.1V5s0-1-1-1zm0 2.5a3.5 3.5 0 1 1 0 7 3.5 3.5 0 1 1 0-7z'/%3E%3Ccircle id='dot' cx='10' cy='10' r='2' display='none'/%3E%3Cpath id='stroke' d='M14 5l1 1-9 9-1-1 9-9z' display='none'/%3E%3C/svg%3E")}.mapboxgl-ctrl button.mapboxgl-ctrl-geolocate.mapboxgl-ctrl-geolocate-background-error .mapboxgl-ctrl-icon{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg viewBox='0 0 20 20' xmlns='http://www.w3.org/2000/svg' fill='%23e54e33'%3E%3Cpath d='M10 4C9 4 9 5 9 5v.1A5 5 0 0 0 5.1 9H5s-1 0-1 1 1 1 1 1h.1A5 5 0 0 0 9 14.9v.1s0 1 1 1 1-1 1-1v-.1a5 5 0 0 0 3.9-3.9h.1s1 0 1-1-1-1-1-1h-.1A5 5 0 0 0 11 5.1V5s0-1-1-1zm0 2.5a3.5 3.5 0 1 1 0 7 3.5 3.5 0 1 1 0-7z'/%3E%3Ccircle id='dot' cx='10' cy='10' r='2' display='none'/%3E%3Cpath id='stroke' d='M14 5l1 1-9 9-1-1 9-9z' display='none'/%3E%3C/svg%3E")}}@media (-ms-high-contrast:black-on-white){.mapboxgl-ctrl button.mapboxgl-ctrl-geolocate .mapboxgl-ctrl-icon{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg viewBox='0 0 20 20' xmlns='http://www.w3.org/2000/svg' fill='%23000'%3E%3Cpath d='M10 4C9 4 9 5 9 5v.1A5 5 0 0 0 5.1 9H5s-1 0-1 1 1 1 1 1h.1A5 5 0 0 0 9 14.9v.1s0 1 1 1 1-1 1-1v-.1a5 5 0 0 0 3.9-3.9h.1s1 0 1-1-1-1-1-1h-.1A5 5 0 0 0 11 5.1V5s0-1-1-1zm0 2.5a3.5 3.5 0 1 1 0 7 3.5 3.5 0 1 1 0-7z'/%3E%3Ccircle id='dot' cx='10' cy='10' r='2'/%3E%3Cpath id='stroke' d='M14 5l1 1-9 9-1-1 9-9z' display='none'/%3E%3C/svg%3E")}.mapboxgl-ctrl button.mapboxgl-ctrl-geolocate:disabled .mapboxgl-ctrl-icon{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg viewBox='0 0 20 20' xmlns='http://www.w3.org/2000/svg' fill='%23666'%3E%3Cpath d='M10 4C9 4 9 5 9 5v.1A5 5 0 0 0 5.1 9H5s-1 0-1 1 1 1 1 1h.1A5 5 0 0 0 9 14.9v.1s0 1 1 1 1-1 1-1v-.1a5 5 0 0 0 3.9-3.9h.1s1 0 1-1-1-1-1-1h-.1A5 5 0 0 0 11 5.1V5s0-1-1-1zm0 2.5a3.5 3.5 0 1 1 0 7 3.5 3.5 0 1 1 0-7z'/%3E%3Ccircle id='dot' cx='10' cy='10' r='2'/%3E%3Cpath id='stroke' d='M14 5l1 1-9 9-1-1 9-9z' fill='%23f00'/%3E%3C/svg%3E")}}@keyframes mapboxgl-spin{0%{transform:rotate(0)}to{transform:rotate(1turn)}}a.mapboxgl-ctrl-logo{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' xmlns:xlink='http://www.w3.org/1999/xlink' fill-rule='evenodd' viewBox='0 0 88 23'%3E%3Cdefs%3E%3Cpath id='logo' d='M11.5 2.25c5.105 0 9.25 4.145 9.25 9.25s-4.145 9.25-9.25 9.25-9.25-4.145-9.25-9.25 4.145-9.25 9.25-9.25zM6.997 15.983c-.051-.338-.828-5.802 2.233-8.873a4.395 4.395 0 013.13-1.28c1.27 0 2.49.51 3.39 1.42.91.9 1.42 2.12 1.42 3.39 0 1.18-.449 2.301-1.28 3.13C12.72 16.93 7 16 7 16l-.003-.017zM15.3 10.5l-2 .8-.8 2-.8-2-2-.8 2-.8.8-2 .8 2 2 .8z'/%3E%3Cpath id='text' d='M50.63 8c.13 0 .23.1.23.23V9c.7-.76 1.7-1.18 2.73-1.18 2.17 0 3.95 1.85 3.95 4.17s-1.77 4.19-3.94 4.19c-1.04 0-2.03-.43-2.74-1.18v3.77c0 .13-.1.23-.23.23h-1.4c-.13 0-.23-.1-.23-.23V8.23c0-.12.1-.23.23-.23h1.4zm-3.86.01c.01 0 .01 0 .01-.01.13 0 .22.1.22.22v7.55c0 .12-.1.23-.23.23h-1.4c-.13 0-.23-.1-.23-.23V15c-.7.76-1.69 1.19-2.73 1.19-2.17 0-3.94-1.87-3.94-4.19 0-2.32 1.77-4.19 3.94-4.19 1.03 0 2.02.43 2.73 1.18v-.75c0-.12.1-.23.23-.23h1.4zm26.375-.19a4.24 4.24 0 00-4.16 3.29c-.13.59-.13 1.19 0 1.77a4.233 4.233 0 004.17 3.3c2.35 0 4.26-1.87 4.26-4.19 0-2.32-1.9-4.17-4.27-4.17zM60.63 5c.13 0 .23.1.23.23v3.76c.7-.76 1.7-1.18 2.73-1.18 1.88 0 3.45 1.4 3.84 3.28.13.59.13 1.2 0 1.8-.39 1.88-1.96 3.29-3.84 3.29-1.03 0-2.02-.43-2.73-1.18v.77c0 .12-.1.23-.23.23h-1.4c-.13 0-.23-.1-.23-.23V5.23c0-.12.1-.23.23-.23h1.4zm-34 11h-1.4c-.13 0-.23-.11-.23-.23V8.22c.01-.13.1-.22.23-.22h1.4c.13 0 .22.11.23.22v.68c.5-.68 1.3-1.09 2.16-1.1h.03c1.09 0 2.09.6 2.6 1.55.45-.95 1.4-1.55 2.44-1.56 1.62 0 2.93 1.25 2.9 2.78l.03 5.2c0 .13-.1.23-.23.23h-1.41c-.13 0-.23-.11-.23-.23v-4.59c0-.98-.74-1.71-1.62-1.71-.8 0-1.46.7-1.59 1.62l.01 4.68c0 .13-.11.23-.23.23h-1.41c-.13 0-.23-.11-.23-.23v-4.59c0-.98-.74-1.71-1.62-1.71-.85 0-1.54.79-1.6 1.8v4.5c0 .13-.1.23-.23.23zm53.615 0h-1.61c-.04 0-.08-.01-.12-.03-.09-.06-.13-.19-.06-.28l2.43-3.71-2.39-3.65a.213.213 0 01-.03-.12c0-.12.09-.21.21-.21h1.61c.13 0 .24.06.3.17l1.41 2.37 1.4-2.37a.34.34 0 01.3-.17h1.6c.04 0 .08.01.12.03.09.06.13.19.06.28l-2.37 3.65 2.43 3.7c0 .05.01.09.01.13 0 .12-.09.21-.21.21h-1.61c-.13 0-.24-.06-.3-.17l-1.44-2.42-1.44 2.42a.34.34 0 01-.3.17zm-7.12-1.49c-1.33 0-2.42-1.12-2.42-2.51 0-1.39 1.08-2.52 2.42-2.52 1.33 0 2.42 1.12 2.42 2.51 0 1.39-1.08 2.51-2.42 2.52zm-19.865 0c-1.32 0-2.39-1.11-2.42-2.48v-.07c.02-1.38 1.09-2.49 2.4-2.49 1.32 0 2.41 1.12 2.41 2.51 0 1.39-1.07 2.52-2.39 2.53zm-8.11-2.48c-.01 1.37-1.09 2.47-2.41 2.47s-2.42-1.12-2.42-2.51c0-1.39 1.08-2.52 2.4-2.52 1.33 0 2.39 1.11 2.41 2.48l.02.08zm18.12 2.47c-1.32 0-2.39-1.11-2.41-2.48v-.06c.02-1.38 1.09-2.48 2.41-2.48s2.42 1.12 2.42 2.51c0 1.39-1.09 2.51-2.42 2.51z'/%3E%3C/defs%3E%3Cmask id='clip'%3E%3Crect x='0' y='0' width='100%25' height='100%25' fill='white'/%3E%3Cuse xlink:href='%23logo'/%3E%3Cuse xlink:href='%23text'/%3E%3C/mask%3E%3Cg id='outline' opacity='0.3' stroke='%23000' stroke-width='3'%3E%3Ccircle mask='url(%23clip)' cx='11.5' cy='11.5' r='9.25'/%3E%3Cuse xlink:href='%23text' mask='url(%23clip)'/%3E%3C/g%3E%3Cg id='fill' opacity='0.9' fill='%23fff'%3E%3Cuse xlink:href='%23logo'/%3E%3Cuse xlink:href='%23text'/%3E%3C/g%3E%3C/svg%3E");background-repeat:no-repeat;cursor:pointer;display:block;height:23px;margin:0 0 -4px -4px;overflow:hidden;width:88px}a.mapboxgl-ctrl-logo.mapboxgl-compact{width:23px}@media (-ms-high-contrast:active){a.mapboxgl-ctrl-logo{background-color:initial;background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' xmlns:xlink='http://www.w3.org/1999/xlink' fill-rule='evenodd' viewBox='0 0 88 23'%3E%3Cdefs%3E%3Cpath id='logo' d='M11.5 2.25c5.105 0 9.25 4.145 9.25 9.25s-4.145 9.25-9.25 9.25-9.25-4.145-9.25-9.25 4.145-9.25 9.25-9.25zM6.997 15.983c-.051-.338-.828-5.802 2.233-8.873a4.395 4.395 0 013.13-1.28c1.27 0 2.49.51 3.39 1.42.91.9 1.42 2.12 1.42 3.39 0 1.18-.449 2.301-1.28 3.13C12.72 16.93 7 16 7 16l-.003-.017zM15.3 10.5l-2 .8-.8 2-.8-2-2-.8 2-.8.8-2 .8 2 2 .8z'/%3E%3Cpath id='text' d='M50.63 8c.13 0 .23.1.23.23V9c.7-.76 1.7-1.18 2.73-1.18 2.17 0 3.95 1.85 3.95 4.17s-1.77 4.19-3.94 4.19c-1.04 0-2.03-.43-2.74-1.18v3.77c0 .13-.1.23-.23.23h-1.4c-.13 0-.23-.1-.23-.23V8.23c0-.12.1-.23.23-.23h1.4zm-3.86.01c.01 0 .01 0 .01-.01.13 0 .22.1.22.22v7.55c0 .12-.1.23-.23.23h-1.4c-.13 0-.23-.1-.23-.23V15c-.7.76-1.69 1.19-2.73 1.19-2.17 0-3.94-1.87-3.94-4.19 0-2.32 1.77-4.19 3.94-4.19 1.03 0 2.02.43 2.73 1.18v-.75c0-.12.1-.23.23-.23h1.4zm26.375-.19a4.24 4.24 0 00-4.16 3.29c-.13.59-.13 1.19 0 1.77a4.233 4.233 0 004.17 3.3c2.35 0 4.26-1.87 4.26-4.19 0-2.32-1.9-4.17-4.27-4.17zM60.63 5c.13 0 .23.1.23.23v3.76c.7-.76 1.7-1.18 2.73-1.18 1.88 0 3.45 1.4 3.84 3.28.13.59.13 1.2 0 1.8-.39 1.88-1.96 3.29-3.84 3.29-1.03 0-2.02-.43-2.73-1.18v.77c0 .12-.1.23-.23.23h-1.4c-.13 0-.23-.1-.23-.23V5.23c0-.12.1-.23.23-.23h1.4zm-34 11h-1.4c-.13 0-.23-.11-.23-.23V8.22c.01-.13.1-.22.23-.22h1.4c.13 0 .22.11.23.22v.68c.5-.68 1.3-1.09 2.16-1.1h.03c1.09 0 2.09.6 2.6 1.55.45-.95 1.4-1.55 2.44-1.56 1.62 0 2.93 1.25 2.9 2.78l.03 5.2c0 .13-.1.23-.23.23h-1.41c-.13 0-.23-.11-.23-.23v-4.59c0-.98-.74-1.71-1.62-1.71-.8 0-1.46.7-1.59 1.62l.01 4.68c0 .13-.11.23-.23.23h-1.41c-.13 0-.23-.11-.23-.23v-4.59c0-.98-.74-1.71-1.62-1.71-.85 0-1.54.79-1.6 1.8v4.5c0 .13-.1.23-.23.23zm53.615 0h-1.61c-.04 0-.08-.01-.12-.03-.09-.06-.13-.19-.06-.28l2.43-3.71-2.39-3.65a.213.213 0 01-.03-.12c0-.12.09-.21.21-.21h1.61c.13 0 .24.06.3.17l1.41 2.37 1.4-2.37a.34.34 0 01.3-.17h1.6c.04 0 .08.01.12.03.09.06.13.19.06.28l-2.37 3.65 2.43 3.7c0 .05.01.09.01.13 0 .12-.09.21-.21.21h-1.61c-.13 0-.24-.06-.3-.17l-1.44-2.42-1.44 2.42a.34.34 0 01-.3.17zm-7.12-1.49c-1.33 0-2.42-1.12-2.42-2.51 0-1.39 1.08-2.52 2.42-2.52 1.33 0 2.42 1.12 2.42 2.51 0 1.39-1.08 2.51-2.42 2.52zm-19.865 0c-1.32 0-2.39-1.11-2.42-2.48v-.07c.02-1.38 1.09-2.49 2.4-2.49 1.32 0 2.41 1.12 2.41 2.51 0 1.39-1.07 2.52-2.39 2.53zm-8.11-2.48c-.01 1.37-1.09 2.47-2.41 2.47s-2.42-1.12-2.42-2.51c0-1.39 1.08-2.52 2.4-2.52 1.33 0 2.39 1.11 2.41 2.48l.02.08zm18.12 2.47c-1.32 0-2.39-1.11-2.41-2.48v-.06c.02-1.38 1.09-2.48 2.41-2.48s2.42 1.12 2.42 2.51c0 1.39-1.09 2.51-2.42 2.51z'/%3E%3C/defs%3E%3Cmask id='clip'%3E%3Crect x='0' y='0' width='100%25' height='100%25' fill='white'/%3E%3Cuse xlink:href='%23logo'/%3E%3Cuse xlink:href='%23text'/%3E%3C/mask%3E%3Cg id='outline' opacity='1' stroke='%23000' stroke-width='3'%3E%3Ccircle mask='url(%23clip)' cx='11.5' cy='11.5' r='9.25'/%3E%3Cuse xlink:href='%23text' mask='url(%23clip)'/%3E%3C/g%3E%3Cg id='fill' opacity='1' fill='%23fff'%3E%3Cuse xlink:href='%23logo'/%3E%3Cuse xlink:href='%23text'/%3E%3C/g%3E%3C/svg%3E")}}@media (-ms-high-contrast:black-on-white){a.mapboxgl-ctrl-logo{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' xmlns:xlink='http://www.w3.org/1999/xlink' fill-rule='evenodd' viewBox='0 0 88 23'%3E%3Cdefs%3E%3Cpath id='logo' d='M11.5 2.25c5.105 0 9.25 4.145 9.25 9.25s-4.145 9.25-9.25 9.25-9.25-4.145-9.25-9.25 4.145-9.25 9.25-9.25zM6.997 15.983c-.051-.338-.828-5.802 2.233-8.873a4.395 4.395 0 013.13-1.28c1.27 0 2.49.51 3.39 1.42.91.9 1.42 2.12 1.42 3.39 0 1.18-.449 2.301-1.28 3.13C12.72 16.93 7 16 7 16l-.003-.017zM15.3 10.5l-2 .8-.8 2-.8-2-2-.8 2-.8.8-2 .8 2 2 .8z'/%3E%3Cpath id='text' d='M50.63 8c.13 0 .23.1.23.23V9c.7-.76 1.7-1.18 2.73-1.18 2.17 0 3.95 1.85 3.95 4.17s-1.77 4.19-3.94 4.19c-1.04 0-2.03-.43-2.74-1.18v3.77c0 .13-.1.23-.23.23h-1.4c-.13 0-.23-.1-.23-.23V8.23c0-.12.1-.23.23-.23h1.4zm-3.86.01c.01 0 .01 0 .01-.01.13 0 .22.1.22.22v7.55c0 .12-.1.23-.23.23h-1.4c-.13 0-.23-.1-.23-.23V15c-.7.76-1.69 1.19-2.73 1.19-2.17 0-3.94-1.87-3.94-4.19 0-2.32 1.77-4.19 3.94-4.19 1.03 0 2.02.43 2.73 1.18v-.75c0-.12.1-.23.23-.23h1.4zm26.375-.19a4.24 4.24 0 00-4.16 3.29c-.13.59-.13 1.19 0 1.77a4.233 4.233 0 004.17 3.3c2.35 0 4.26-1.87 4.26-4.19 0-2.32-1.9-4.17-4.27-4.17zM60.63 5c.13 0 .23.1.23.23v3.76c.7-.76 1.7-1.18 2.73-1.18 1.88 0 3.45 1.4 3.84 3.28.13.59.13 1.2 0 1.8-.39 1.88-1.96 3.29-3.84 3.29-1.03 0-2.02-.43-2.73-1.18v.77c0 .12-.1.23-.23.23h-1.4c-.13 0-.23-.1-.23-.23V5.23c0-.12.1-.23.23-.23h1.4zm-34 11h-1.4c-.13 0-.23-.11-.23-.23V8.22c.01-.13.1-.22.23-.22h1.4c.13 0 .22.11.23.22v.68c.5-.68 1.3-1.09 2.16-1.1h.03c1.09 0 2.09.6 2.6 1.55.45-.95 1.4-1.55 2.44-1.56 1.62 0 2.93 1.25 2.9 2.78l.03 5.2c0 .13-.1.23-.23.23h-1.41c-.13 0-.23-.11-.23-.23v-4.59c0-.98-.74-1.71-1.62-1.71-.8 0-1.46.7-1.59 1.62l.01 4.68c0 .13-.11.23-.23.23h-1.41c-.13 0-.23-.11-.23-.23v-4.59c0-.98-.74-1.71-1.62-1.71-.85 0-1.54.79-1.6 1.8v4.5c0 .13-.1.23-.23.23zm53.615 0h-1.61c-.04 0-.08-.01-.12-.03-.09-.06-.13-.19-.06-.28l2.43-3.71-2.39-3.65a.213.213 0 01-.03-.12c0-.12.09-.21.21-.21h1.61c.13 0 .24.06.3.17l1.41 2.37 1.4-2.37a.34.34 0 01.3-.17h1.6c.04 0 .08.01.12.03.09.06.13.19.06.28l-2.37 3.65 2.43 3.7c0 .05.01.09.01.13 0 .12-.09.21-.21.21h-1.61c-.13 0-.24-.06-.3-.17l-1.44-2.42-1.44 2.42a.34.34 0 01-.3.17zm-7.12-1.49c-1.33 0-2.42-1.12-2.42-2.51 0-1.39 1.08-2.52 2.42-2.52 1.33 0 2.42 1.12 2.42 2.51 0 1.39-1.08 2.51-2.42 2.52zm-19.865 0c-1.32 0-2.39-1.11-2.42-2.48v-.07c.02-1.38 1.09-2.49 2.4-2.49 1.32 0 2.41 1.12 2.41 2.51 0 1.39-1.07 2.52-2.39 2.53zm-8.11-2.48c-.01 1.37-1.09 2.47-2.41 2.47s-2.42-1.12-2.42-2.51c0-1.39 1.08-2.52 2.4-2.52 1.33 0 2.39 1.11 2.41 2.48l.02.08zm18.12 2.47c-1.32 0-2.39-1.11-2.41-2.48v-.06c.02-1.38 1.09-2.48 2.41-2.48s2.42 1.12 2.42 2.51c0 1.39-1.09 2.51-2.42 2.51z'/%3E%3C/defs%3E%3Cmask id='clip'%3E%3Crect x='0' y='0' width='100%25' height='100%25' fill='white'/%3E%3Cuse xlink:href='%23logo'/%3E%3Cuse xlink:href='%23text'/%3E%3C/mask%3E%3Cg id='outline' opacity='1' stroke='%23fff' stroke-width='3' fill='%23fff'%3E%3Ccircle mask='url(%23clip)' cx='11.5' cy='11.5' r='9.25'/%3E%3Cuse xlink:href='%23text' mask='url(%23clip)'/%3E%3C/g%3E%3Cg id='fill' opacity='1' fill='%23000'%3E%3Cuse xlink:href='%23logo'/%3E%3Cuse xlink:href='%23text'/%3E%3C/g%3E%3C/svg%3E")}}.mapboxgl-ctrl.mapboxgl-ctrl-attrib{background-color:#ffffff80;margin:0;padding:0 5px}@media screen{.mapboxgl-ctrl-attrib.mapboxgl-compact{background-color:#fff;border-radius:12px;box-sizing:initial;margin:10px;min-height:20px;padding:2px 24px 2px 0;position:relative}.mapboxgl-ctrl-attrib.mapboxgl-compact-show{padding:2px 28px 2px 8px;visibility:visible}.mapboxgl-ctrl-bottom-left>.mapboxgl-ctrl-attrib.mapboxgl-compact-show,.mapboxgl-ctrl-left>.mapboxgl-ctrl-attrib.mapboxgl-compact-show,.mapboxgl-ctrl-top-left>.mapboxgl-ctrl-attrib.mapboxgl-compact-show{border-radius:12px;padding:2px 8px 2px 28px}.mapboxgl-ctrl-attrib.mapboxgl-compact .mapboxgl-ctrl-attrib-inner{display:none}.mapboxgl-ctrl-attrib-button{background-color:#ffffff80;background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg viewBox='0 0 20 20' xmlns='http://www.w3.org/2000/svg' fill-rule='evenodd'%3E%3Cpath d='M4 10a6 6 0 1 0 12 0 6 6 0 1 0-12 0m5-3a1 1 0 1 0 2 0 1 1 0 1 0-2 0m0 3a1 1 0 1 1 2 0v3a1 1 0 1 1-2 0'/%3E%3C/svg%3E");border:0;border-radius:12px;box-sizing:border-box;cursor:pointer;display:none;height:24px;outline:none;position:absolute;right:0;top:0;width:24px}.mapboxgl-ctrl-bottom-left .mapboxgl-ctrl-attrib-button,.mapboxgl-ctrl-left .mapboxgl-ctrl-attrib-button,.mapboxgl-ctrl-top-left .mapboxgl-ctrl-attrib-button{left:0}.mapboxgl-ctrl-attrib.mapboxgl-compact .mapboxgl-ctrl-attrib-button,.mapboxgl-ctrl-attrib.mapboxgl-compact-show .mapboxgl-ctrl-attrib-inner{display:block}.mapboxgl-ctrl-attrib.mapboxgl-compact-show .mapboxgl-ctrl-attrib-button{background-color:#0000000d}.mapboxgl-ctrl-bottom-right>.mapboxgl-ctrl-attrib.mapboxgl-compact:after{bottom:0;right:0}.mapboxgl-ctrl-right>.mapboxgl-ctrl-attrib.mapboxgl-compact:after{right:0}.mapboxgl-ctrl-top-right>.mapboxgl-ctrl-attrib.mapboxgl-compact:after{right:0;top:0}.mapboxgl-ctrl-top-left>.mapboxgl-ctrl-attrib.mapboxgl-compact:after{left:0;top:0}.mapboxgl-ctrl-bottom-left>.mapboxgl-ctrl-attrib.mapboxgl-compact:after{bottom:0;left:0}.mapboxgl-ctrl-left>.mapboxgl-ctrl-attrib.mapboxgl-compact:after{left:0}}@media screen and (-ms-high-contrast:active){.mapboxgl-ctrl-attrib.mapboxgl-compact:after{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg viewBox='0 0 20 20' xmlns='http://www.w3.org/2000/svg' fill-rule='evenodd' fill='%23fff'%3E%3Cpath d='M4 10a6 6 0 1 0 12 0 6 6 0 1 0-12 0m5-3a1 1 0 1 0 2 0 1 1 0 1 0-2 0m0 3a1 1 0 1 1 2 0v3a1 1 0 1 1-2 0'/%3E%3C/svg%3E")}}@media screen and (-ms-high-contrast:black-on-white){.mapboxgl-ctrl-attrib.mapboxgl-compact:after{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg viewBox='0 0 20 20' xmlns='http://www.w3.org/2000/svg' fill-rule='evenodd'%3E%3Cpath d='M4 10a6 6 0 1 0 12 0 6 6 0 1 0-12 0m5-3a1 1 0 1 0 2 0 1 1 0 1 0-2 0m0 3a1 1 0 1 1 2 0v3a1 1 0 1 1-2 0'/%3E%3C/svg%3E")}}.mapboxgl-ctrl-attrib a{color:#000000bf;text-decoration:none}.mapboxgl-ctrl-attrib a:hover{color:inherit;text-decoration:underline}.mapboxgl-ctrl-attrib .mapbox-improve-map{font-weight:700;margin-left:2px}.mapboxgl-attrib-empty{display:none}.mapboxgl-ctrl-scale{background-color:#ffffffbf;border:2px solid #333;border-top:#333;box-sizing:border-box;color:#333;font-size:10px;padding:0 5px;white-space:nowrap}.mapboxgl-popup{display:flex;left:0;pointer-events:none;position:absolute;top:0;will-change:transform}.mapboxgl-popup-anchor-top,.mapboxgl-popup-anchor-top-left,.mapboxgl-popup-anchor-top-right{flex-direction:column}.mapboxgl-popup-anchor-bottom,.mapboxgl-popup-anchor-bottom-left,.mapboxgl-popup-anchor-bottom-right{flex-direction:column-reverse}.mapboxgl-popup-anchor-left{flex-direction:row}.mapboxgl-popup-anchor-right{flex-direction:row-reverse}.mapboxgl-popup-tip{border:10px solid #0000;height:0;width:0;z-index:1}.mapboxgl-popup-anchor-top .mapboxgl-popup-tip{align-self:center;border-bottom-color:#fff;border-top:none}.mapboxgl-popup-anchor-top-left .mapboxgl-popup-tip{align-self:flex-start;border-bottom-color:#fff;border-left:none;border-top:none}.mapboxgl-popup-anchor-top-right .mapboxgl-popup-tip{align-self:flex-end;border-bottom-color:#fff;border-right:none;border-top:none}.mapboxgl-popup-anchor-bottom .mapboxgl-popup-tip{align-self:center;border-bottom:none;border-top-color:#fff}.mapboxgl-popup-anchor-bottom-left .mapboxgl-popup-tip{align-self:flex-start;border-bottom:none;border-left:none;border-top-color:#fff}.mapboxgl-popup-anchor-bottom-right .mapboxgl-popup-tip{align-self:flex-end;border-bottom:none;border-right:none;border-top-color:#fff}.mapboxgl-popup-anchor-left .mapboxgl-popup-tip{align-self:center;border-left:none;border-right-color:#fff}.mapboxgl-popup-anchor-right .mapboxgl-popup-tip{align-self:center;border-left-color:#fff;border-right:none}.mapboxgl-popup-close-button{background-color:initial;border:0;border-radius:0 3px 0 0;cursor:pointer;position:absolute;right:0;top:0}.mapboxgl-popup-close-button:hover{background-color:#0000000d}.mapboxgl-popup-content{background:#fff;border-radius:3px;box-shadow:0 1px 2px #0000001a;padding:10px 10px 15px;pointer-events:auto;position:relative}.mapboxgl-popup-anchor-top-left .mapboxgl-popup-content{border-top-left-radius:0}.mapboxgl-popup-anchor-top-right .mapboxgl-popup-content{border-top-right-radius:0}.mapboxgl-popup-anchor-bottom-left .mapboxgl-popup-content{border-bottom-left-radius:0}.mapboxgl-popup-anchor-bottom-right .mapboxgl-popup-content{border-bottom-right-radius:0}.mapboxgl-popup-track-pointer{display:none}.mapboxgl-popup-track-pointer *{pointer-events:none;-webkit-user-select:none;user-select:none}.mapboxgl-map:hover .mapboxgl-popup-track-pointer{display:flex}.mapboxgl-map:active .mapboxgl-popup-track-pointer{display:none}.mapboxgl-marker{left:0;opacity:1;position:absolute;top:0;transition:opacity .2s;will-change:transform}.mapboxgl-user-location-dot,.mapboxgl-user-location-dot:before{background-color:#1da1f2;border-radius:50%;height:15px;width:15px}.mapboxgl-user-location-dot:before{animation:mapboxgl-user-location-dot-pulse 2s infinite;content:"";position:absolute}.mapboxgl-user-location-dot:after{border:2px solid #fff;border-radius:50%;box-shadow:0 0 3px #00000059;box-sizing:border-box;content:"";height:19px;left:-2px;position:absolute;top:-2px;width:19px}.mapboxgl-user-location-show-heading .mapboxgl-user-location-heading{height:0;width:0}.mapboxgl-user-location-show-heading .mapboxgl-user-location-heading:after,.mapboxgl-user-location-show-heading .mapboxgl-user-location-heading:before{border-bottom:7.5px solid #4aa1eb;content:"";position:absolute}.mapboxgl-user-location-show-heading .mapboxgl-user-location-heading:before{border-left:7.5px solid #0000;transform:translateY(-28px) skewY(-20deg)}.mapboxgl-user-location-show-heading .mapboxgl-user-location-heading:after{border-right:7.5px solid #0000;transform:translate(7.5px,-28px) skewY(20deg)}@keyframes mapboxgl-user-location-dot-pulse{0%{opacity:1;transform:scale(1)}70%{opacity:0;transform:scale(3)}to{opacity:0;transform:scale(1)}}.mapboxgl-user-location-dot-stale{background-color:#aaa}.mapboxgl-user-location-dot-stale:after{display:none}.mapboxgl-user-location-accuracy-circle{background-color:#1da1f233;border-radius:100%;height:1px;width:1px}.mapboxgl-crosshair,.mapboxgl-crosshair .mapboxgl-interactive,.mapboxgl-crosshair .mapboxgl-interactive:active{cursor:crosshair}.mapboxgl-boxzoom{background:#fff;border:2px dotted #202020;height:0;left:0;opacity:.5;position:absolute;top:0;width:0}@media print{.mapbox-improve-map{display:none}}.mapboxgl-scroll-zoom-blocker,.mapboxgl-touch-pan-blocker{align-items:center;background:#000000b3;color:#fff;display:flex;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Helvetica,Arial,sans-serif;height:100%;justify-content:center;left:0;opacity:0;pointer-events:none;position:absolute;text-align:center;top:0;transition:opacity .75s ease-in-out;transition-delay:1s;width:100%}.mapboxgl-scroll-zoom-blocker-show,.mapboxgl-touch-pan-blocker-show{opacity:1;transition:opacity .1s ease-in-out}.mapboxgl-canvas-container.mapboxgl-touch-pan-blocker-override.mapboxgl-scrollable-page,.mapboxgl-canvas-container.mapboxgl-touch-pan-blocker-override.mapboxgl-scrollable-page .mapboxgl-canvas{touch-action:pan-x pan-y}.mapboxgl-ctrl-separator{background-color:#e0e0e0;height:1px}.mapboxgl-ctrl button.mapboxgl-ctrl-level-button{align-items:center;color:#333;display:flex;font-size:18px;font-weight:700;height:50px;justify-content:center;line-height:normal;padding:0;text-align:center;width:50px}.mapboxgl-ctrl button.mapboxgl-ctrl-level-button:first-child{border-top-left-radius:8px;border-top-right-radius:8px}.mapboxgl-ctrl button.mapboxgl-ctrl-level-button:last-child{border-bottom-left-radius:8px;border-bottom-right-radius:8px}.mapboxgl-ctrl button.mapboxgl-ctrl-level-button:hover{background-color:#f5f5f5}.mapboxgl-ctrl button.mapboxgl-ctrl-level-button-selected{background-color:#4a5568;color:#fff}.mapboxgl-ctrl button.mapboxgl-ctrl-level-button-selected:hover{background-color:#2d3748}*{margin:0;padding:0;box-sizing:border-box}:root{--bg-primary: #0d0d0d;--bg-secondary: #1a1a1a;--bg-tertiary: #2a2a2a;--text-primary: #e5e5e5;--text-secondary: #a0a0a0;--accent: #047857;--accent-hover: #059669;--border: #333;--error: #ff4444;--success: #44bb44;--strava-orange: #fc4c02;--wahoo-blue: #00a1e0;--garmin-blue: #007dba}body{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,sans-serif;background-color:var(--bg-primary);color:var(--text-primary);line-height:1.5}.app{min-height:100vh;display:flex;flex-direction:column}.pwa-install-banner{position:fixed;bottom:0;left:0;right:0;display:flex;align-items:center;gap:12px;padding:12px 20px;background:var(--bg-secondary, #1a1a1a);border-top:1px solid var(--border-color, #333);z-index:9999;font-size:.9rem;color:var(--text-secondary, #999)}.pwa-install-banner span{flex:1}.pwa-install-btn{padding:6px 16px;background:var(--accent-color, #047857);color:#fff;border:none;border-radius:6px;cursor:pointer;font-size:.85rem;font-weight:500}.pwa-install-btn:hover{opacity:.9}.pwa-dismiss-btn{background:none;border:none;color:var(--text-secondary, #666);font-size:1.2rem;cursor:pointer;padding:4px 8px}.loading-screen{justify-content:center;align-items:center}.spinner{width:40px;height:40px;border:3px solid var(--bg-tertiary);border-top-color:var(--accent);border-radius:50%;animation:spin 1s linear infinite}.login-container{flex:1;display:flex;flex-direction:column;justify-content:center;align-items:center;padding:40px 20px;gap:40px;overflow-y:auto}.landing-hero{width:100%;max-width:1100px;text-align:center}.hero-content{display:flex;flex-direction:column;align-items:center;gap:24px}.hero-content.hero-split{flex-direction:row;align-items:center;max-width:1100px;gap:48px}.hero-split .hero-text{flex:1;text-align:center}.hero-split .hero-text .hero-oauth{justify-content:center;margin:0 auto}.hero-split .hero-image{flex:1;max-width:500px}.hero-split .hero-image img{width:100%;border-radius:12px;box-shadow:0 8px 32px #0006}@media (max-width: 768px){.hero-content.hero-split{flex-direction:column;text-align:center}.hero-split .hero-text{text-align:center}.hero-split .hero-text .hero-oauth{justify-content:center}.hero-split .hero-image{max-width:100%}}.hero-badge{display:inline-block;padding:6px 16px;background:#04785726;border:1px solid var(--accent);border-radius:20px;font-size:.85rem;color:var(--accent);font-weight:500}.hero-title{font-size:2.5rem;font-weight:700;line-height:1.2;color:var(--text-primary);margin:0}.hero-subtitle{font-size:1.1rem;color:var(--text-secondary);line-height:1.6;max-width:480px;margin:0}.value-props{display:flex;flex-direction:column;gap:16px;width:100%;max-width:400px;text-align:left}.value-prop{display:flex;flex-direction:column;gap:2px;padding:12px 16px;background:var(--bg-secondary);border-radius:8px;border:1px solid var(--border)}.value-prop strong{color:var(--text-primary);font-size:.95rem}.value-prop span{color:var(--text-secondary);font-size:.85rem}.hero-cta{display:flex;align-items:center;gap:16px;padding:12px 24px;background:var(--bg-tertiary);border-radius:8px}.hero-price{font-size:1.25rem;font-weight:700;color:var(--text-primary)}.hero-trial{font-size:.9rem;color:var(--text-secondary)}.login-box{position:relative;width:100%;max-width:400px;padding:40px;background:var(--bg-secondary);border-radius:12px;border:1px solid var(--border)}.login-close{position:absolute;top:12px;right:16px;background:none;border:none;color:var(--text-secondary);font-size:1.5rem;cursor:pointer;padding:0;line-height:1}.login-close:hover{color:var(--text-primary)}@media (max-width: 768px){.login-container{padding:24px 16px;gap:32px}.hero-title{font-size:2rem}.hero-subtitle{font-size:1rem}.value-props{gap:12px}.login-box{padding:24px}}.login-title-container{display:flex;align-items:center;justify-content:center;gap:8px;margin-bottom:8px}.login-title{font-size:1.5rem;font-weight:600;text-align:center;margin-bottom:0;color:var(--text-primary)}.login-title-logo{height:36px;width:auto}.login-price{font-size:.9rem;font-weight:500;color:var(--accent);opacity:.8}.coming-soon{text-align:center}.coming-soon-text{color:var(--text-secondary);margin:16px 0 24px;line-height:1.6}.waitlist-form{display:flex;flex-direction:column;gap:12px}.success-message{margin-top:16px;padding:12px;background:#04785726;border:1px solid var(--accent);border-radius:8px;color:var(--accent);font-size:.9rem}.hero-waitlist{display:flex;flex-direction:column;align-items:center;gap:16px;margin-top:32px}.hero-waitlist .coming-soon-badge{background:var(--accent);color:#fff;padding:8px 20px;border-radius:20px;font-weight:600;font-size:.9rem;text-transform:uppercase;letter-spacing:.5px}.hero-waitlist .waitlist-form{display:flex;flex-direction:row;gap:12px;max-width:400px;width:100%}.hero-waitlist .waitlist-input{flex:1;padding:12px 16px;border:1px solid var(--border);border-radius:8px;background:var(--bg-secondary);color:var(--text-primary);font-size:1rem}.hero-waitlist .waitlist-input:focus{outline:none;border-color:var(--accent)}.hero-waitlist .waitlist-thanks{color:var(--accent);font-size:1.1rem;font-weight:500}.coming-soon-note{color:var(--text-secondary);font-style:italic}.beta-invite-text{color:var(--text-secondary);font-size:.9rem;margin-bottom:12px}.beta-code-form{display:flex;gap:10px;max-width:320px;width:100%}.beta-code-input{flex:1;padding:12px 16px;border:1px solid var(--border);border-radius:8px;background:var(--bg-secondary);color:var(--text-primary);font-size:1rem;text-transform:uppercase;letter-spacing:2px;text-align:center}.beta-code-input:focus{outline:none;border-color:var(--accent)}.beta-code-input::placeholder{text-transform:none;letter-spacing:normal}.beta-error{color:var(--error);font-size:.8rem;margin-top:8px}.beta-request-text{color:var(--text-secondary);font-size:.8rem;margin-top:16px}.beta-request-text a{color:var(--accent);text-decoration:none}.beta-request-text a:hover{text-decoration:underline}.beta-request-section{margin-top:24px;padding-top:20px;border-top:1px solid var(--border);width:100%;max-width:320px}.beta-request-section .beta-request-text{margin-top:0;margin-bottom:10px}.beta-request-form{display:flex;width:100%}.beta-email-input{flex:1;padding:12px 16px;border:1px solid var(--border);border-radius:8px;background:var(--bg-secondary);color:var(--text-primary);font-size:.95rem}.beta-email-input:focus{outline:none;border-color:var(--accent)}.beta-email-input::placeholder{color:var(--text-secondary);opacity:.7}.beta-submit-btn{padding:12px 20px;background:var(--bg-tertiary);border:1px solid var(--border);border-radius:8px;color:var(--text-primary);font-size:.95rem;font-weight:500;cursor:pointer;transition:all .2s;white-space:nowrap}.beta-submit-btn:hover:not(:disabled){background:var(--accent);border-color:var(--accent)}.beta-submit-btn:disabled{opacity:.6;cursor:not-allowed}.beta-success{color:var(--success);font-size:.9rem;padding:10px;background:#44bb441a;border-radius:6px;text-align:center}@media (max-width: 480px){.hero-waitlist .beta-code-form{flex-direction:column}}.login-subtitle{text-align:center;color:var(--text-secondary);margin-bottom:24px}.auth-toggle{display:flex;background:var(--bg-tertiary);border-radius:8px;padding:4px;margin-bottom:24px}.toggle-btn{flex:1;padding:10px 16px;font-size:.9rem;font-weight:500;background:transparent;color:var(--text-secondary);border:none;border-radius:6px;cursor:pointer;transition:all .2s}.toggle-btn:hover{color:var(--text-primary)}.toggle-btn.active{background:var(--accent);color:#fff}.divider{display:flex;align-items:center;margin:24px 0}.divider:before,.divider:after{content:"";flex:1;height:1px;background:var(--border)}.divider span{padding:0 16px;color:var(--text-secondary);font-size:.85rem}.login-form{display:flex;flex-direction:column;gap:16px}.form-group{display:flex;flex-direction:column}.form-input{padding:12px 16px;font-size:1rem;background:var(--bg-tertiary);border:1px solid var(--border);border-radius:8px;color:var(--text-primary);transition:border-color .2s}.form-input:focus{outline:none;border-color:var(--accent)}.form-input:disabled{opacity:.6}.form-input::placeholder{color:var(--text-secondary)}.error-message{padding:12px;background:#ff44441a;border:1px solid var(--error);border-radius:8px;color:var(--error);font-size:.9rem}.login-button{padding:14px;font-size:1rem;font-weight:600;background:var(--accent);color:#fff;border:none;border-radius:8px;cursor:pointer;transition:background-color .2s}.login-button:hover:not(:disabled){background:var(--accent-hover)}.login-button:disabled{opacity:.6;cursor:not-allowed}.oauth-buttons{display:flex;flex-direction:column;gap:12px}.oauth-buttons.hero-oauth{max-width:320px;margin:0 auto}.strava-button{position:relative;display:flex;align-items:center;justify-content:center;gap:12px;width:100%;padding:14px 24px;font-size:1rem;font-weight:600;background:var(--strava-orange);color:#fff;border:none;border-radius:8px;cursor:pointer;transition:background-color .2s,transform .1s}.strava-button:hover{background:#e54400}.strava-button:active{transform:scale(.98)}.strava-logo{flex-shrink:0}.wahoo-button{position:relative;display:flex;align-items:center;justify-content:center;gap:12px;width:100%;padding:14px 24px;font-size:1rem;font-weight:600;background:var(--wahoo-blue);color:#fff;border:none;border-radius:8px;cursor:pointer;transition:background-color .2s,transform .1s}.wahoo-button:hover{background:#0089c0}.wahoo-button:active{transform:scale(.98)}.wahoo-button:disabled{opacity:.6;cursor:not-allowed}.wahoo-logo{flex-shrink:0}.garmin-button{position:relative;display:flex;align-items:center;justify-content:center;gap:12px;width:100%;padding:14px 24px;font-size:1rem;font-weight:600;background:var(--garmin-blue);color:#fff;border:none;border-radius:8px;cursor:pointer;transition:background-color .2s,transform .1s}.garmin-button:hover{background:#069}.garmin-button:active{transform:scale(.98)}.garmin-button:disabled{opacity:.6;cursor:not-allowed}.garmin-connect-tile{border-radius:5px;flex-shrink:0}.garmin-button.garmin-coming-soon{opacity:.35;background:var(--bg-tertiary);border-color:var(--border);color:var(--text-tertiary)}.retry-button{margin-top:16px}.processing-message{display:flex;flex-direction:column;align-items:center;gap:16px;padding:20px}.processing-message p{color:var(--text-secondary);font-size:.95rem}.callback-error{display:flex;flex-direction:column;align-items:center;gap:16px;text-align:center}.callback-error .error-title{font-size:1.25rem;font-weight:600;color:var(--text-primary);margin:0}.callback-error .error-description{font-size:.95rem;color:var(--text-secondary);margin:0;line-height:1.5}.callback-error .error-suggestion{font-size:.85rem;color:var(--text-secondary);margin:0;padding:12px 16px;background:var(--bg-tertiary);border-radius:8px;line-height:1.5}.callback-error .retry-button{margin-top:8px;width:100%}.callback-error .error-message{width:100%;text-align:center}.chat-container{flex:1;display:flex;flex-direction:column;height:100vh}.chat-header{display:flex;justify-content:space-between;align-items:center;padding:16px 24px;background:var(--bg-secondary);border-bottom:1px solid var(--border)}.chat-header h1{display:flex;align-items:center}.chat-header h1 .nav-brand-logo{height:24px;width:auto}.chat-header h1.logo-link{cursor:pointer;transition:opacity .2s}.chat-header h1.logo-link:hover{opacity:.8}.logo-container{display:flex;align-items:center;gap:8px}.beta-badge{font-size:10px;font-weight:600;text-transform:uppercase;background:#ffffff26;color:#ffffffb3;padding:2px 6px;border-radius:4px;letter-spacing:.5px}.header-right{display:flex;align-items:center;gap:16px}.user-email{color:var(--text-secondary);font-size:.9rem}.user-menu-container{position:relative}.user-avatar-btn{background:none;border:none;cursor:pointer;padding:2px;border-radius:50%;transition:box-shadow .15s}.user-avatar-btn:hover{box-shadow:0 0 0 2px var(--accent)}.user-avatar{width:32px;height:32px;background:var(--accent);border-radius:50%;display:flex;align-items:center;justify-content:center;font-weight:600;font-size:.85rem;color:#fff;overflow:hidden}.user-avatar-img{width:100%;height:100%;object-fit:cover}.user-menu-dropdown{position:absolute;top:calc(100% + 8px);right:0;z-index:50;background:var(--bg-secondary);border:1px solid var(--border);border-radius:10px;min-width:200px;box-shadow:0 8px 30px #00000080;overflow:hidden;animation:menu-fade-in .12s ease-out}@keyframes menu-fade-in{0%{opacity:0;transform:translateY(-4px)}to{opacity:1;transform:translateY(0)}}.user-menu-header{padding:12px 14px;border-bottom:none}.user-menu-name{display:block;font-size:.85rem;font-weight:600;color:var(--text-primary)}.user-menu-email{display:block;font-size:.75rem;color:var(--text-secondary);margin-top:2px}.user-menu-divider{height:1px;background:var(--border);margin:0}.user-menu-item{display:flex;align-items:center;gap:10px;width:100%;padding:10px 14px;background:none;border:none;color:var(--text-primary);font-size:.85rem;cursor:pointer;transition:background .1s;text-align:left}.user-menu-item:hover{background:var(--bg-tertiary)}.user-menu-item svg{color:var(--text-secondary);flex-shrink:0}.user-menu-item.logout{color:#ef4444}.user-menu-item.logout svg{color:#ef4444}.user-menu-item.logout:hover{background:#ef44441a}.discord-icon-link{display:flex;align-items:center;justify-content:center;width:36px;height:36px;border-radius:50%;color:var(--text-secondary);background:var(--bg-tertiary);transition:all .2s}.discord-icon-link:hover{color:#5865f2;background:#5865f226;transform:scale(1.1)}.discord-icon-link svg{width:18px;height:18px}.nav-icon-btn{display:flex;align-items:center;justify-content:center;width:32px;height:32px;padding:0;background:transparent;border:1px solid rgba(255,255,255,.2);border-radius:6px;color:#ffffffb3;cursor:pointer;transition:all .15s ease}.nav-icon-btn:hover{background:#ffffff1a;border-color:#ffffff4d;color:#ffffffe6}.nav-icon-btn.active{background:#04785733;border-color:var(--accent);color:var(--accent)}.nav-icon-btn.consistency-tab.active{background:#a78bfa26;border-color:#a78bfa;color:#a78bfa}.tab-content{flex:1;overflow:hidden;display:flex;flex-direction:column}.tab-pane{display:none;height:100%;flex-direction:column}.tab-pane.active{display:flex}.tab-pane-scroll{flex:1;overflow-y:auto;padding:20px}.chat-landing{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:40px 24px;gap:0}.chat-landing-content{text-align:center;margin-bottom:32px}.chat-landing-title{font-size:1.5rem;font-weight:600;color:var(--text-primary);margin:0 0 8px}.chat-landing-hint{font-size:.9rem;color:var(--text-secondary);margin:0}.featured-query-pill{margin-top:16px;padding:10px 24px;background:#ffffff0f;border:1px solid rgba(255,255,255,.15);border-radius:20px;color:var(--text-primary);font-size:.95rem;cursor:pointer;transition:all .15s}.featured-query-pill:hover{background:#ffffff1a;border-color:#ffffff40}.featured-query-pill:disabled{opacity:.5;cursor:default}.chat-landing-input{width:100%;max-width:700px}.chat-landing-input .chat-input-form{border-top:none}.chat-landing-input .quick-queries{justify-content:center;margin-top:12px;border-top:none;padding-top:0}.chat-messages{flex:1;overflow-y:auto;padding:24px;display:flex;flex-direction:column;gap:16px;align-items:center}.chat-messages>*{width:100%;max-width:700px}.welcome-message{text-align:center;padding:60px 20px;color:var(--text-secondary)}.welcome-message h2{font-size:1.5rem;color:var(--text-primary);margin-bottom:12px}.welcome-message p{margin-bottom:20px}.example-queries{list-style:none;display:flex;flex-direction:column;gap:8px}.example-queries li{padding:12px 20px;background:var(--bg-secondary);border-radius:8px;font-style:italic;color:var(--text-primary)}.message{display:flex;width:100%}.user-message{justify-content:flex-end}.user-message .message-content{max-width:80%}.ai-message{justify-content:flex-start}.ai-message .message-content{width:100%}.message-content{padding:12px 16px;border-radius:12px;word-wrap:break-word}.user-message .message-content{background:var(--accent);color:#fff;border-bottom-right-radius:4px}.ai-message .message-content{background:var(--bg-secondary);border:1px solid var(--border);border-bottom-left-radius:4px}.message-content.loading{display:flex;gap:4px;padding:16px 20px}.dot{width:8px;height:8px;background:var(--text-secondary);border-radius:50%;animation:bounce 1.4s ease-in-out infinite both}.dot:nth-child(1){animation-delay:-.32s}.dot:nth-child(2){animation-delay:-.16s}@keyframes bounce{0%,80%,to{transform:scale(0)}40%{transform:scale(1)}}.ai-response{display:flex;flex-direction:column;gap:12px}.interpretation{font-size:1rem;line-height:1.6}.insights{margin-top:8px}.insights h4{font-size:.875rem;color:var(--accent);margin-bottom:8px;text-transform:uppercase;letter-spacing:.5px}.insights ul{list-style:none;display:flex;flex-direction:column;gap:6px}.insights li{padding-left:16px;position:relative;color:var(--text-secondary)}.insights li:before{content:"•";position:absolute;left:0;color:var(--accent)}.insights-content{color:var(--text-secondary);line-height:1.7}.insights-content p{margin-bottom:8px}.insights-content p:last-child{margin-bottom:0}.insight-line{padding-left:16px;position:relative}.insight-line:before{content:"•"}.coaching-context{background:linear-gradient(135deg,var(--bg-tertiary) 0%,rgba(4,120,87,.1) 100%);border-left:3px solid var(--accent);padding:12px 16px;border-radius:0 8px 8px 0;margin:8px 0}.coaching-context p{color:var(--text-secondary);font-size:.9rem;line-height:1.6;margin:0}.coaching-view{background:linear-gradient(135deg,var(--bg-tertiary) 0%,rgba(4,120,87,.15) 100%);border-left:4px solid var(--accent);padding:16px 20px;border-radius:0 12px 12px 0}.coaching-explanation{color:var(--text-primary);font-size:1rem;line-height:1.7;margin:0}.account-view{background:var(--bg-tertiary);border-radius:8px;padding:16px}.account-info-grid{display:flex;flex-direction:column;gap:12px}.account-info-item{display:flex;justify-content:space-between;align-items:center;padding:8px 0;border-bottom:1px solid var(--border)}.account-info-item:last-child{border-bottom:none}.account-info-label{font-size:.85rem;color:var(--text-secondary)}.account-info-value{font-size:.95rem;font-weight:500;color:var(--text-primary);text-align:right}.subscription-status.beta{color:#a855f7}.subscription-status.founding{color:#d4af37}.subscription-status.trialing{color:#60a5fa}.subscription-status.active{color:var(--success)}.subscription-status.cancelling,.subscription-status.cancelled{color:#fb923c}.subscription-status.past_due,.subscription-status.expired{color:var(--error)}.subscription-status.none{color:var(--text-secondary)}.power-profile-view{background:var(--bg-tertiary);border-radius:8px;padding:16px}.power-profile-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:16px;padding-bottom:12px;border-bottom:1px solid var(--border)}.power-profile-title{font-size:.85rem;font-weight:600;color:var(--text-primary);text-transform:uppercase;letter-spacing:.5px}.power-profile-source{font-size:.7rem;color:var(--text-secondary)}.power-profile-current{text-align:center;padding:20px;margin-bottom:20px;background:var(--bg-secondary);border-radius:8px}.power-current-value{display:flex;align-items:baseline;justify-content:center;gap:4px}.power-value-number{font-size:3rem;font-weight:700;color:var(--accent);line-height:1}.power-value-unit{font-size:1.25rem;color:var(--text-secondary)}.power-current-category{font-size:1.25rem;font-weight:600;color:var(--text-primary);margin:8px 0}.power-current-details{font-size:.85rem;color:var(--text-secondary)}.power-scale{display:flex;flex-direction:column;gap:8px}.power-scale-row{display:grid;grid-template-columns:60px 1fr 100px;gap:12px;align-items:center;padding:8px 12px;border-radius:6px;background:var(--bg-secondary);opacity:.6}.power-scale-row.current{opacity:1;background:#04785726;border:1px solid var(--accent)}.power-scale-range{font-size:.75rem;color:var(--text-secondary);font-family:monospace}.power-scale-bar-container{height:8px}.power-scale-bar{height:100%;background:var(--bg-tertiary);border-radius:4px;position:relative}.power-scale-row.current .power-scale-bar{background:#0478574d}.power-scale-marker{position:absolute;top:-4px;width:16px;height:16px;background:var(--accent);border-radius:50%;transform:translate(-50%);box-shadow:0 2px 4px #0000004d}.power-scale-label{font-size:.85rem;font-weight:600;color:var(--text-primary)}.power-scale-row.current .power-scale-label{color:var(--accent)}.power-scale-desc{display:none}.power-profile-missing{text-align:center;padding:24px;color:var(--text-secondary)}.power-missing-detail{font-size:.85rem;margin-top:8px}@media (min-width: 600px){.power-scale-row{grid-template-columns:60px 1fr 100px 1fr}.power-scale-desc{display:block;font-size:.75rem;color:var(--text-secondary)}}.help-view{background:var(--bg-tertiary);border-radius:8px;padding:20px}.help-description{color:var(--text-primary);font-size:1rem;margin-bottom:16px}.rate-limit-notice{color:var(--strava-orange);font-size:.9rem;margin-bottom:12px;padding:8px 12px;background:#fc4c021a;border-radius:6px}.help-suggestions{margin-top:12px}.suggestions-label{color:var(--text-secondary);font-size:.85rem;margin-bottom:10px}.suggestions-list{list-style:none;display:flex;flex-wrap:wrap;gap:8px}.suggestions-pills{display:flex;flex-wrap:wrap;gap:8px}.suggestion-pill{background:var(--bg-secondary);border:1px solid var(--border);padding:8px 14px;border-radius:20px;font-size:.9rem;color:var(--text-primary);cursor:pointer;transition:all .2s ease}.suggestion-pill:hover{border-color:var(--accent);background:#f9731626;color:var(--accent)}.suggestion-item{background:var(--bg-secondary);border:1px solid var(--border);padding:8px 14px;border-radius:20px;font-size:.9rem;color:var(--text-primary);cursor:pointer;transition:all .2s ease}.suggestion-item:hover{border-color:var(--accent);background:#f9731626;color:var(--accent)}.data-card{background:var(--bg-tertiary);border-radius:8px;padding:16px;margin-top:8px}.data-row{display:flex;justify-content:space-between;align-items:center;padding:10px 0;border-bottom:1px solid var(--border);gap:16px}.data-row:last-child{border-bottom:none}.data-label{color:var(--text-secondary);font-size:.9rem;flex-shrink:0}.data-value{font-weight:500;color:var(--text-primary);text-align:right}.data-list{display:flex;flex-direction:column;gap:8px;margin-top:8px}.data-item{background:var(--bg-tertiary);padding:12px;border-radius:8px;display:flex;flex-wrap:wrap;gap:12px}.item-field{font-size:.9rem;color:var(--text-secondary)}.item-field strong{color:var(--text-primary);font-weight:500}.more-items{text-align:center;color:var(--text-secondary);font-style:italic;padding:8px}.data-section{margin-bottom:12px}.data-section:last-child{margin-bottom:0}.section-label{display:block;font-size:.8rem;color:var(--accent);text-transform:uppercase;letter-spacing:.5px;margin-bottom:8px;padding-bottom:4px;border-bottom:1px solid var(--border)}.section-content{padding-left:12px}.data-item{background:var(--bg-tertiary);padding:12px;border-radius:8px;display:flex;flex-direction:column;gap:4px}.ride-item{border-left:3px solid var(--accent)}.ride-name{font-weight:600;color:var(--text-primary);margin-bottom:8px;font-size:.95rem}.ride-details{display:flex;flex-direction:column;gap:2px}.ride-details .data-row{padding:4px 0;border-bottom:none}.calendar-view{display:flex;flex-direction:column;gap:16px}.calendar-view.multi-month{gap:20px;max-height:600px;overflow-y:auto}.calendar-view.multi-month .compact-calendar{flex-shrink:0}.calendar-view .data-section{margin-bottom:0}.month-totals{display:flex;gap:12px;font-size:.75rem;color:var(--text-secondary)}.month-totals span{white-space:nowrap}.calendar-summary-bar{display:flex;flex-wrap:wrap;gap:16px;padding:12px 16px;background:var(--bg-secondary);border-radius:8px;border:1px solid var(--border);margin-bottom:8px}.calendar-summary-bar .summary-stat{font-size:.9rem;font-weight:500;color:var(--text-primary)}.rcs-summary-bar{display:flex;flex-wrap:wrap;gap:20px;padding:12px 16px;background:linear-gradient(135deg,#6366f126,#8b5cf61a);border-radius:8px;border:1px solid rgba(99,102,241,.3);margin-bottom:8px;justify-content:center;align-items:center}.rcs-summary-bar .rcs-stat{display:flex;align-items:baseline;gap:6px}.rcs-summary-bar .rcs-label{font-size:.7rem;font-weight:600;color:#c4b5fdcc;text-transform:uppercase;letter-spacing:.5px}.rcs-summary-bar .rcs-value{font-size:1.1rem;font-weight:700;color:#c4b5fd}.loading-more{display:flex;justify-content:center;padding:12px}.calendar-container{width:100%;display:flex;flex-direction:column;gap:8px;overflow:visible}.month-calendar{width:100%;background:var(--bg-secondary);border-radius:8px;border:1px solid var(--border);overflow:hidden}.month-title-row{display:flex;flex-direction:column;align-items:center;padding:12px 16px 8px;background:var(--bg-tertiary);gap:6px}.consistency-badges{display:flex;align-items:center;gap:4px;font-size:.8rem;color:var(--text-secondary);opacity:.7;transition:opacity .2s ease}.consistency-badges:hover{opacity:1}.consistency-badge{font-weight:500}.consistency-badge.rcs-color{color:#8b5cf6}.consistency-badge.rvs-color{color:#6366f1}.consistency-badge.tss-color{color:#eab308}.consistency-badges .consistency-badge:not(:last-child):after{content:"·";margin-left:4px;color:var(--text-secondary);opacity:.5}@media (max-width: 480px){.consistency-badges{font-size:.7rem}}.month-title{font-size:1.1rem;font-weight:600;color:var(--text-primary)}.year-dropdown{background:transparent;border:none;color:var(--text-primary);font-size:1.1rem;font-weight:600;cursor:pointer;padding:0 14px 0 0;-moz-appearance:none;appearance:none;-webkit-appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='10' height='6' viewBox='0 0 10 6'%3E%3Cpath d='M1 1l4 4 4-4' fill='none' stroke='%23888' stroke-width='1.5'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right center}.year-dropdown option{background:var(--bg-secondary);color:var(--text-primary)}.month-nav{display:flex;align-items:center;gap:12px}.month-nav-btn{display:flex;align-items:center;justify-content:center;width:28px;height:28px;padding:0;background:transparent;border:1px solid var(--accent);border-radius:6px;color:var(--accent);cursor:pointer;transition:all .15s ease}.month-nav-btn:hover:not(:disabled){background:var(--accent);color:var(--bg-primary)}.month-nav-btn:disabled,.month-nav-btn.disabled{opacity:.3;cursor:not-allowed;border-color:var(--border);color:var(--text-secondary)}.month-nav-btn svg{width:16px;height:16px}.month-today-btn{background:var(--accent, #047857);color:#fff;border:none;border-radius:6px;padding:4px 12px;font-size:.75rem;font-weight:500;cursor:pointer;transition:background .15s}.month-today-btn:hover{background:var(--accent-hover, #059669)}.month-stats-row{display:flex;justify-content:center;align-items:center;padding:8px 16px 10px;background:var(--bg-tertiary);border-bottom:1px solid var(--border);gap:8px;flex-wrap:wrap}.month-fitness-stats{display:flex;gap:16px;font-size:.8rem;color:var(--text-secondary);align-items:center}.month-fitness-stats span{white-space:nowrap}.month-fitness-stats .positive{color:var(--success)}.month-fitness-stats .negative{color:var(--error)}.fitness-status-badge{padding:2px 8px;border-radius:4px;font-size:.7rem;font-weight:500;text-transform:capitalize}.fitness-status-badge.fresh{background:#22c55e26;color:var(--success)}.fitness-status-badge.neutral{background:#9ca3af26;color:var(--text-secondary)}.fitness-status-badge.fatigued{background:#ef444426;color:var(--error)}.month-stats-divider{width:1px;height:16px;background:var(--border);margin:0 8px}.month-ride-stats{display:flex;gap:16px;font-size:.8rem;color:var(--text-secondary)}.month-ride-stats span{white-space:nowrap}.month-rcs-row{border-bottom:none;padding-bottom:0}.month-stats{display:flex;gap:12px;font-size:.75rem;color:var(--text-secondary)}.month-stats span{white-space:nowrap}.month-title-bar{display:flex;justify-content:space-between;align-items:center;padding:10px 16px;background:var(--bg-tertiary);border-bottom:1px solid var(--border)}.month-header-row{display:grid;grid-template-columns:70px repeat(7,1fr);gap:1px;padding:6px 8px;background:var(--bg-secondary);border-bottom:1px solid var(--border)}.month-header-row .day-header{text-align:center;font-size:.7rem;font-weight:500;color:var(--text-secondary);text-transform:uppercase}.month-header-row .week-summary-col{background:transparent}.month-week-row{display:grid;grid-template-columns:58px repeat(7,1fr);gap:1px;padding:0 8px;background:var(--bg-secondary)}.month-week-row:last-child{padding-bottom:8px}.month-week-row .week-summary-col{display:flex;flex-direction:column;justify-content:flex-start;align-items:flex-end;padding:2px 4px;gap:0;background:transparent;overflow:hidden;min-width:0}.month-week-row .week-summary-col span{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:100%;line-height:1.2}.week-num{font-size:.55rem;font-weight:500;color:var(--text-tertiary, #666);letter-spacing:.02em}.week-num.clickable{cursor:pointer;transition:color .15s}.week-num.clickable:hover{color:var(--accent, #3b82f6);text-decoration:underline}.week-total{font-size:.6rem;font-weight:600;color:var(--text-primary)}.week-time{font-size:.5rem;color:var(--text-secondary)}.week-calories{font-size:.45rem;color:var(--text-secondary)}.week-tss{font-size:.5rem;color:var(--accent)}.week-power{font-size:.45rem;color:var(--text-secondary)}.week-tsb{font-size:.45rem;font-weight:500}.month-day-cell{aspect-ratio:1;min-height:36px;background:var(--bg-tertiary);border-radius:4px;display:flex;flex-direction:column;align-items:center;justify-content:flex-start;padding:3px;margin:2px;overflow:hidden;min-width:0;position:relative}.month-day-cell .day-num{font-size:.65rem;color:var(--text-secondary);line-height:1;display:flex;justify-content:space-between;align-items:center}.day-cell-add-btn{background:none;border:none;color:var(--text-secondary, #a0a0a0);font-size:.7rem;width:14px;height:14px;border-radius:3px;cursor:pointer;opacity:0;transition:opacity .15s;display:flex;align-items:center;justify-content:center;padding:0;line-height:1}.month-day-cell:hover .day-cell-add-btn{opacity:.6}.day-cell-add-btn:hover{opacity:1!important;background:#ffffff1a}.month-day-cell.has-rides{background:var(--accent)}.month-day-cell.has-rides .day-num{color:var(--text-primary)}.month-day-cell.is-today{outline:2px solid var(--text-secondary);outline-offset:-2px}.month-day-cell.other-month{opacity:.4}.month-day-cell.empty{background:transparent}.month-day-cell.clickable{cursor:pointer;transition:transform .1s ease,box-shadow .1s ease}.month-day-cell.clickable:hover{transform:scale(1.1);box-shadow:0 2px 8px #0000004d;z-index:1}.month-day-cell.has-custom-data:not(.has-rides){background:var(--bg-tertiary);border:1px dashed rgba(255,255,255,.15)}.month-day-cell .day-ride-name{font-size:.5rem;color:var(--text-primary);font-weight:500;max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;margin-top:2px;line-height:1.1;text-align:center;min-width:0}.day-source{font-size:.4rem;font-weight:600;margin-left:2px}.day-source.fit{color:#10b981}.day-source.strava{color:#777}.month-day-cell .day-stats{display:flex;flex-direction:column;align-items:center;gap:1px;margin-top:2px;font-size:.45rem;line-height:1.2;color:#d1d5db;width:100%}@media (min-width: 768px){.month-calendar{max-width:900px;margin:0 auto}.month-header-row{grid-template-columns:80px repeat(7,1fr);padding:8px 12px}.month-header-row .day-header{font-size:.8rem}.month-week-row{grid-template-columns:70px repeat(7,1fr);padding:0 12px}.month-day-cell{min-height:52px;padding:4px;margin:3px;border-radius:6px}.month-day-cell .day-num{font-size:.75rem}.month-day-cell .day-ride-name{font-size:.6rem}.month-day-cell .day-stats{font-size:.55rem}.week-num{font-size:.6rem}.week-total{font-size:.7rem}.week-time,.week-tss{font-size:.6rem}.week-calories,.week-power,.week-tsb{font-size:.55rem}.month-stats-row{padding:10px 20px}.month-fitness-stats,.month-ride-stats{font-size:.85rem;gap:20px}.consistency-badges{font-size:.85rem}}@media (min-width: 1200px){.month-calendar{max-width:1100px}.month-header-row{grid-template-columns:90px repeat(7,1fr);padding:10px 16px}.month-week-row{grid-template-columns:80px repeat(7,1fr);padding:0 16px}.month-day-cell{min-height:64px;padding:5px;margin:3px}.month-day-cell .day-num{font-size:.85rem}.month-day-cell .day-ride-name{font-size:.65rem}.day-source{font-size:.45rem}.month-day-cell .day-stats{font-size:.6rem;gap:2px}.week-num{font-size:.65rem}.week-total{font-size:.75rem}.week-time,.week-tss{font-size:.65rem}.week-calories,.week-power,.week-tsb{font-size:.6rem}.month-title{font-size:1.3rem}.month-fitness-stats,.month-ride-stats,.consistency-badges{font-size:.9rem}}@media (max-width: 480px){.month-header-row{grid-template-columns:48px repeat(7,1fr);padding:4px}.month-week-row{grid-template-columns:40px repeat(7,1fr);padding:0 4px}.month-day-cell{min-height:30px;padding:2px;margin:1px}.month-day-cell .day-num{font-size:.55rem}.month-day-cell .day-ride-name{font-size:.4rem}.month-day-cell .day-stats{font-size:.35rem}.month-stats-row{padding:6px 8px;gap:4px}.month-fitness-stats,.month-ride-stats{font-size:.7rem;gap:8px}.month-title{font-size:.95rem}}.nested-section{margin-top:8px;padding-left:8px;border-left:2px solid var(--border)}.nested-section .section-label{font-size:.75rem;border-bottom:none;margin-bottom:4px}.fitness-summary{display:flex;flex-direction:column;gap:12px}.period-label{font-size:.9rem;color:var(--accent);font-weight:600;text-transform:uppercase;letter-spacing:.5px;padding-bottom:8px;border-bottom:1px solid var(--border);margin-bottom:4px}.ride-stats-section{display:flex;flex-direction:column;gap:12px}.ride-stats-bar{display:flex;flex-wrap:wrap;align-items:center;gap:8px;padding:12px 16px;background:var(--bg-tertiary);border-radius:8px;font-size:.9rem}.stat-item{color:var(--text-primary);font-weight:500}.stat-divider{color:var(--text-secondary);opacity:.5}.weekly-tss{background:var(--bg-tertiary);border-radius:8px;padding:12px 16px}.weekly-tss-label{display:block;font-size:.8rem;color:var(--text-secondary);text-transform:uppercase;letter-spacing:.5px;margin-bottom:8px}.weekly-tss-grid{display:flex;flex-wrap:wrap;gap:8px}.tss-week{display:flex;flex-direction:column;align-items:center;padding:8px 12px;background:var(--bg-secondary);border-radius:6px;min-width:70px}.tss-week-label{font-size:.7rem;color:var(--text-secondary);margin-bottom:2px}.tss-week-value{font-size:1rem;font-weight:600;color:var(--text-primary)}.tss-summary-section{background:var(--bg-tertiary);border-radius:8px;padding:16px;margin-top:12px}.tss-summary-header{font-size:.8rem;color:var(--text-secondary);text-transform:uppercase;letter-spacing:.5px;margin-bottom:12px;font-weight:600}.tss-summary-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;margin-bottom:16px}.tss-stat{display:flex;flex-direction:column;align-items:center;padding:12px 8px;background:var(--bg-secondary);border-radius:6px}.tss-stat-value{font-size:1.5rem;font-weight:700;color:var(--text-primary);line-height:1.2}.tss-stat-label{font-size:.7rem;color:var(--text-secondary);text-transform:uppercase;letter-spacing:.3px;margin-top:4px}.tss-stat.highlight{background:#04785726;border:1px solid var(--accent)}.tss-stat.highlight .tss-stat-value{color:var(--accent)}.tss-recent-weeks{margin-top:12px}.tss-recent-label{display:block;font-size:.75rem;color:var(--text-secondary);margin-bottom:8px}.tss-weeks-bar{display:flex;gap:8px;align-items:flex-end;height:110px}.tss-week-bar-item{flex:1;display:flex;flex-direction:column;align-items:center;height:100%;position:relative}.tss-week-bar-fill{width:100%;background:var(--accent);border-radius:4px 4px 0 0;min-height:4px;position:absolute;bottom:36px;transition:height .3s ease}.tss-week-bar-value{font-size:.7rem;font-weight:600;color:var(--text-primary);position:absolute;bottom:18px}.tss-week-bar-label{font-size:.6rem;color:var(--text-secondary);position:absolute;bottom:0;white-space:nowrap}@media (max-width: 600px){.tss-summary-grid{grid-template-columns:1fr;gap:8px}.tss-stat{flex-direction:row;justify-content:space-between;padding:10px 12px}.tss-stat-value{font-size:1.25rem}.tss-stat-label{margin-top:0}.tss-weeks-bar{height:90px}.tss-week-bar-label{font-size:.55rem}}.fitness-cards-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:12px}@media (max-width: 600px){.fitness-cards-grid{grid-template-columns:1fr}}.fitness-card-compact{background:var(--bg-tertiary);border-radius:8px;padding:16px;text-align:center;display:flex;flex-direction:column;align-items:center}.card-label{font-size:.7rem;color:var(--text-secondary);text-transform:uppercase;letter-spacing:.5px;margin-bottom:4px}.card-number{font-size:2.5rem;font-weight:700;color:var(--text-primary);line-height:1;margin-bottom:4px}.card-unit{font-size:.5em;font-weight:400;color:var(--text-secondary);margin-left:2px}.card-status{font-size:.95rem;font-weight:600;color:var(--accent);margin-bottom:8px}.card-number.status-badge{font-size:1.5rem;padding:8px 16px;border-radius:8px;display:inline-block}.card-number.status-badge.peak-form{color:#4caf50;background:#4caf5026}.card-number.status-badge.fresh{color:var(--success);background:#44bb4426}.card-number.status-badge.neutral{color:var(--text-secondary);background:var(--bg-tertiary)}.card-number.status-badge.tired{color:#ff9800;background:#ff980026}.card-number.status-badge.very-fatigued{color:var(--error);background:#ff444426}.card-explanation{font-size:.75rem;color:var(--text-secondary);line-height:1.4;margin:0}.fitness-metrics{display:grid;grid-template-columns:repeat(auto-fit,minmax(120px,1fr));gap:12px;margin-top:8px}.metric-item{background:var(--bg-tertiary);border-radius:8px;padding:16px;text-align:center}.metric-label{display:block;font-size:.8rem;color:var(--text-secondary);text-transform:uppercase;letter-spacing:.5px;margin-bottom:4px}.metric-value{display:block;font-size:1.25rem;font-weight:600;color:var(--text-primary)}.metric-category{display:block;font-size:.75rem;color:var(--accent);margin-top:4px}.fitness-metrics-detailed{display:grid;grid-template-columns:repeat(3,1fr);gap:16px;margin-top:16px}@media (max-width: 768px){.fitness-metrics-detailed{grid-template-columns:1fr}}.metric-card{background:var(--bg-tertiary);border-radius:12px;padding:16px}.metric-header{display:flex;align-items:baseline;gap:12px;margin-bottom:8px}.metric-card .metric-label{font-size:.85rem;color:var(--text-secondary);text-transform:uppercase;letter-spacing:.5px;margin-bottom:0}.metric-card .metric-value{font-size:1.5rem;font-weight:600;color:var(--text-primary)}.metric-card .metric-category{font-size:.8rem;color:var(--accent);margin-left:auto}.metric-explanation{font-size:.85rem;color:var(--text-secondary);line-height:1.5;margin:0}.file-library-container{display:flex;flex-direction:column;gap:16px;max-width:900px;margin:0 auto;width:100%;height:100%}.file-library-title{font-size:1.1rem;font-weight:600;color:var(--text-primary);margin:0 0 8px}.file-library-header{display:flex;flex-wrap:wrap;gap:8px;align-items:center}.file-library-actions{display:flex;gap:8px;align-items:center}.file-library-upload-btn,.file-library-sync-btn{display:flex;align-items:center;gap:6px;padding:6px 14px;border:none;border-radius:6px;font-size:.85rem;cursor:pointer;transition:all .15s}.file-library-sync-btn{background:var(--accent);color:#fff}.file-library-sync-btn:hover{background:var(--accent-hover)}.provider-dots{display:inline-flex;align-items:center;gap:4px;margin-left:2px}.provider-dot-inline{width:7px;height:7px;border-radius:50%;display:inline-block;flex-shrink:0}.file-library-upload-btn{background:var(--bg-tertiary);color:var(--text-secondary);border:1px solid var(--border)}.file-library-upload-btn:hover{color:var(--text-primary);border-color:#ffffff4d}.file-library-sync-btn.primary{background:var(--accent);color:#fff}.file-library-sync-btn.primary:hover{background:var(--accent-hover)}.file-library-sync-btn.secondary{background:#fc4c020d;border:1px solid rgba(252,76,2,.3);color:#fc4c02}.file-library-sync-btn.secondary:hover{background:#fc4c0226}.file-library-sync-btn.connect{background:var(--bg-tertiary);color:var(--text-secondary);border:1px solid var(--border)}.file-library-sync-btn.connect:hover{border-color:var(--accent);color:var(--accent)}.file-library-upload-btn:disabled,.file-library-sync-btn:disabled{opacity:.6;cursor:not-allowed}.file-library-sync-btn.coming-soon-btn{opacity:.5;cursor:default}.coming-soon-badge{font-size:.6rem;text-transform:uppercase;letter-spacing:.5px;background:#ffffff1a;color:#ffffff80;padding:1px 6px;border-radius:8px;margin-left:2px}.sync-dropdown-wrapper{position:relative}.sync-dropdown-menu{position:absolute;top:100%;left:0;margin-top:4px;background:var(--bg-tertiary);border:1px solid var(--border);border-radius:6px;overflow:hidden;z-index:10;min-width:140px;box-shadow:0 4px 12px #0000004d}.sync-dropdown-menu button{display:block;width:100%;padding:8px 14px;background:none;border:none;color:var(--text-secondary);font-size:.85rem;text-align:left;cursor:pointer;transition:all .1s}.sync-dropdown-menu button:hover{background:#ffffff1a;color:var(--text-primary)}.sync-dropdown-menu button:not(:last-child){border-bottom:1px solid var(--border)}.fit-drop-zone{border:2px dashed var(--border);border-radius:8px;padding:24px;text-align:center;color:var(--text-secondary);transition:all .2s;cursor:pointer;display:flex;flex-direction:column;align-items:center;gap:8px}.fit-drop-zone:hover{border-color:#ffffff4d}.fit-drop-zone.drag-over{border-color:var(--accent);background:#0478571a;color:var(--text-primary)}.fit-drop-zone p{margin:0;font-size:.85rem}.fit-upload-message{font-size:.8rem;text-align:center;padding:4px 0;color:var(--text-secondary)}.fit-upload-message.error{color:var(--error)}.fit-upload-message.success{color:var(--success)}.fit-file-list{display:flex;flex-direction:column;gap:6px;overflow-y:auto;flex:1}.fit-file-summary{font-size:.75rem;color:var(--text-secondary);padding:0 2px 4px}.fit-file-card{display:flex;align-items:center;gap:12px;padding:10px 14px;background:var(--bg-secondary);border:1px solid var(--border);border-radius:8px}.fit-file-card.clickable{cursor:pointer;transition:border-color .15s,background .15s}.fit-file-card.clickable:hover{border-color:var(--accent);background:var(--bg-tertiary)}.fit-file-thumbnail{width:48px;height:48px;flex-shrink:0;border-radius:6px;overflow:hidden}.fit-file-thumbnail svg{width:48px;height:48px;display:block}.fit-file-info{flex:1;min-width:0}.fit-file-name{display:block;font-size:.88rem;color:var(--text-primary);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.fit-file-meta{display:block;font-size:.73rem;color:var(--text-secondary);margin-top:2px}.fit-source-icon{display:flex;align-items:center;flex-shrink:0;opacity:.5}.fit-source-icon.wahoo{color:#4a9eff;opacity:.7}.fit-source-icon.garmin{color:#00b4d8;opacity:.7}.fit-source-icon.strava_import,.fit-source-icon.strava{color:#fc4c02;opacity:.7}.fit-source-icon.fit_upload{color:var(--text-secondary)}.file-library-sync-btn.strava-import,.file-library-sync-btn.strava{background:#fc4c021a;border:1px solid rgba(252,76,2,.3);color:#fc4c02}.file-library-sync-btn.strava-import:hover,.file-library-sync-btn.strava:hover{background:#fc4c0233}.file-library-sync-btn.garmin{background:#007dba1a;border:1px solid rgba(0,125,186,.3);color:var(--garmin-blue)}.file-library-sync-btn.garmin:hover{background:#007dba33}.file-library-sync-btn.synced{opacity:.7;cursor:pointer}.file-library-sync-btn.synced:hover{background:#007dba1a}.providers-modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background:#0000008c;z-index:1000;display:flex;align-items:center;justify-content:center;padding:20px}.providers-modal{background:var(--card-bg, #1e1e2e);border:1px solid var(--border, #333);border-radius:10px;width:100%;max-width:400px;padding:16px 20px}.providers-modal-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:12px}.providers-modal-header h3{margin:0;font-size:.9rem;font-weight:600;color:var(--text-primary, #e0e0e0)}.providers-modal-close{background:none;border:none;color:var(--text-secondary, #888);cursor:pointer;padding:4px;border-radius:4px;line-height:0}.providers-modal-close:hover{color:var(--text-primary, #e0e0e0)}.providers-list{display:flex;flex-direction:column}.provider-row{display:flex;align-items:stretch;padding:12px 0;border-bottom:1px solid rgba(255,255,255,.06);gap:12px}.provider-row:last-child{border-bottom:none}.provider-color-bar{width:3px;border-radius:2px;flex-shrink:0}.provider-row-main{flex:1;display:flex;flex-direction:column;gap:8px;min-width:0}.provider-row-top{display:flex;align-items:center;justify-content:space-between;gap:12px}.provider-name{font-weight:600;font-size:.85rem;color:var(--text-primary, #e0e0e0)}.provider-row-bottom{display:flex;align-items:center;justify-content:space-between;gap:10px}.provider-option-label{font-size:.75rem;color:var(--text-secondary, #888)}.provider-sync-select{background:#ffffff0d;border:1px solid var(--border, #333);border-radius:4px;color:var(--text-secondary, #aaa);padding:3px 6px;font-size:.72rem;cursor:pointer;outline:none}.provider-sync-select:hover{border-color:#fff3}.provider-sync-select:disabled{opacity:.4;cursor:not-allowed}.provider-btn{border-radius:5px;padding:4px 14px;font-size:.76rem;font-weight:500;cursor:pointer;transition:background .15s,border-color .15s,opacity .15s;white-space:nowrap}.provider-btn.connect{background:var(--btn-color, rgba(255,255,255,.1));border:1px solid var(--btn-color, rgba(255,255,255,.15));color:#fff;opacity:.85}.provider-btn.connect:hover{opacity:1}.provider-btn.disconnect{background:none;border:1px solid rgba(255,255,255,.12);color:var(--text-secondary, #888)}.provider-btn.disconnect:hover{border-color:#ef444466;color:#ef4444}.provider-status-label{font-size:.75rem;color:var(--text-tertiary);font-style:italic}.provider-row-bottom.disabled{opacity:.35}.provider-row-bottom.disabled .provider-option-label{color:var(--text-secondary, #666)}.fit-file-badges{display:flex;gap:4px;margin-top:3px}.fit-file-badges .ride-badge{font-size:.6rem;padding:1px 5px}.fit-file-actions{display:flex;gap:4px;flex-shrink:0}.fit-file-actions button{display:flex;align-items:center;justify-content:center;width:28px;height:28px;padding:0;background:transparent;border:1px solid transparent;border-radius:4px;color:var(--text-secondary);cursor:pointer;transition:all .15s}.fit-file-actions button:hover{background:#ffffff1a;border-color:#fff3;color:var(--text-primary)}.fit-file-actions button.delete-btn:hover{color:var(--error);border-color:#ff44444d}.fit-file-actions button.shared-btn{color:#4ade80;border-color:#4ade804d}.fit-file-actions button.shared-btn:hover{color:#f87171;border-color:#f871714d}.fit-empty-state{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:8px;color:var(--text-secondary);font-size:.85rem}.fit-empty-state.onboarding{padding:40px 20px;gap:20px}.fit-empty-state.onboarding h3{margin:0;font-size:1.1rem;font-weight:600;color:var(--text-primary)}.onboarding-options{display:flex;flex-direction:column;gap:12px;max-width:400px;width:100%}.onboarding-option{display:flex;flex-direction:column;gap:2px;padding:12px 16px;background:var(--bg-tertiary);border-radius:8px;border:1px solid var(--border)}.onboarding-option strong{font-size:.85rem;color:var(--text-primary)}.onboarding-option span{font-size:.78rem;color:var(--text-secondary)}.spinner-inline{display:inline-block;width:14px;height:14px;border:2px solid rgba(255,255,255,.15);border-top-color:var(--accent);border-radius:50%;animation:spin .8s linear infinite;margin-right:6px;vertical-align:middle;flex-shrink:0}.fit-upload-message.syncing{color:var(--accent);display:flex;align-items:center}.fit-pagination{display:flex;justify-content:center;gap:8px;padding:8px 0 4px}.fit-pagination button{background:var(--bg-tertiary);border:1px solid var(--border);color:var(--text-secondary);padding:4px 14px;border-radius:4px;font-size:.75rem;cursor:pointer}.fit-pagination button:hover:not(:disabled){color:var(--text-primary);border-color:#fff3}.fit-pagination button.active{background:var(--accent, #646cff);color:#fff;border-color:var(--accent, #646cff)}.fit-pagination button:disabled{opacity:.3;cursor:default}@media (max-width: 600px){.fit-file-card{padding:8px 10px;gap:8px}.fit-file-thumbnail{width:40px;height:40px}.fit-file-thumbnail svg{width:40px;height:40px}.fit-source-icon{display:none}.fit-drop-zone{padding:16px}}.compact-calendar{background:var(--bg-secondary);border:1px solid var(--border);border-radius:8px;overflow:hidden;flex:1;display:flex;flex-direction:column}.calendar-title-bar{display:flex;justify-content:space-between;align-items:center;padding:10px 16px;background:var(--bg-secondary);border-bottom:1px solid var(--border);flex-shrink:0}.calendar-title{font-size:1rem;font-weight:600;color:var(--text-primary)}.fitness-bar{display:flex;align-items:center;justify-content:center;gap:16px;padding:10px 16px;background:var(--bg-tertiary);border-radius:8px;flex-shrink:0}.fitness-item{display:flex;flex-direction:column;align-items:center;gap:2px}.fitness-item.status{margin-left:auto}.fitness-label{font-size:.6rem;font-weight:600;color:var(--text-secondary);text-transform:uppercase;letter-spacing:.5px}.fitness-value{font-size:.9rem;font-weight:700;color:var(--text-primary)}.fitness-value.positive{color:var(--success)}.fitness-value.negative{color:var(--error)}.rcs-bar{display:flex;align-items:center;justify-content:flex-end;gap:16px;padding:8px 12px;margin-bottom:8px}.rcs-item{display:flex;align-items:baseline;gap:4px}.rcs-label{font-size:.7rem;font-weight:600;color:var(--text-muted);text-transform:uppercase;letter-spacing:.3px}.rcs-value{font-size:.9rem;font-weight:600;color:var(--text-secondary);line-height:1}.rcs-desc,.rcs-calibrating{display:none}.rcs-item.muted .rcs-value{color:var(--text-muted);font-size:.9rem}.rcs-item.muted .rcs-desc{display:none}.rcs-message{font-size:.8rem;color:var(--text-secondary);font-style:italic}.consistency-summary{padding:16px 0}.rcs-cards-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:16px;margin-bottom:24px}@media (max-width: 500px){.rcs-cards-grid{grid-template-columns:1fr}}.rcs-card{background:linear-gradient(135deg,#6366f126,#8b5cf61a);border:1px solid rgba(99,102,241,.3);border-radius:12px;padding:20px;text-align:center}.rcs-card-label{display:block;font-size:.75rem;font-weight:600;color:#c4b5fdcc;text-transform:uppercase;letter-spacing:.5px;margin-bottom:8px}.rcs-card-value{display:block;font-size:3rem;font-weight:800;color:#c4b5fd;line-height:1;margin-bottom:4px}.rcs-card-subtitle{display:block;font-size:.85rem;color:#c4b5fd99;font-style:italic;margin-bottom:12px}.rcs-card-message{font-size:.85rem;color:var(--text-secondary);line-height:1.4;margin:0}.rcs-stats-section{background:var(--bg-secondary);border:1px solid var(--border);border-radius:8px;padding:16px;margin-bottom:16px}.rcs-stat-row{display:flex;justify-content:space-between;padding:8px 0;border-bottom:1px solid rgba(255,255,255,.05)}.rcs-stat-row:last-child{border-bottom:none}.rcs-stat-label{font-size:.85rem;color:var(--text-secondary)}.rcs-stat-value{font-size:.9rem;font-weight:600;color:var(--text-primary)}.rcs-calibrating-notice{background:#6366f11a;border:1px solid rgba(99,102,241,.2);border-radius:8px;padding:12px 16px;font-size:.85rem;color:#c4b5fdcc;text-align:center;margin-bottom:16px}.rcs-history-section{background:var(--bg-secondary);border:1px solid var(--border);border-radius:8px;padding:16px}.rcs-history-header{font-size:.8rem;font-weight:600;color:var(--text-secondary);text-transform:uppercase;letter-spacing:.5px;margin-bottom:12px}.rcs-history-chart{display:flex;gap:8px;height:80px;align-items:flex-end}.rcs-history-week{flex:1;display:flex;flex-direction:column;align-items:center;gap:4px}.rcs-history-bars{display:flex;gap:2px;height:60px;align-items:flex-end;width:100%}.rcs-bar-fill{flex:1;border-radius:2px 2px 0 0;transition:height .3s ease}.rcs-bar-fill.rcs{background:linear-gradient(to top,#6366f180,#6366f1cc)}.rcs-bar-fill.rvs{background:linear-gradient(to top,#8b5cf680,#8b5cf6cc)}.rcs-history-label{font-size:.65rem;color:var(--text-secondary);white-space:nowrap}.rcs-history-legend{display:flex;justify-content:center;gap:16px;margin-top:12px}.legend-item{display:flex;align-items:center;gap:6px;font-size:.75rem;color:var(--text-secondary)}.legend-color{width:12px;height:12px;border-radius:2px}.legend-color.rcs{background:#6366f1cc}.legend-color.rvs{background:#8b5cf6cc}.training-advice-summary{display:flex;flex-direction:column;gap:16px}.advice-primary-card{background:var(--bg-secondary);border:1px solid var(--border);border-radius:12px;padding:20px;display:flex;align-items:center;gap:16px}.advice-primary-card.maintain{border-left:4px solid #10b981}.advice-primary-card.increase{border-left:4px solid #f59e0b}.advice-primary-card.decrease{border-left:4px solid #6366f1}.advice-primary-card.recover{border-left:4px solid #ec4899}.advice-icon{font-size:1.8rem;opacity:.9}.advice-primary-message{font-size:1.1rem;font-weight:500;color:var(--text-primary);margin:0;line-height:1.4}.advice-items{display:flex;flex-direction:column;gap:10px;padding:0 8px}.advice-item{display:flex;align-items:flex-start;gap:10px;color:var(--text-secondary);font-size:.95rem;line-height:1.4}.advice-bullet{color:var(--accent);font-weight:600;flex-shrink:0}.advice-text{flex:1}.advice-stats-section{background:var(--bg-secondary);border:1px solid var(--border);border-radius:8px;padding:16px}.advice-stats-header{font-size:.75rem;font-weight:600;color:var(--text-secondary);text-transform:uppercase;letter-spacing:.5px;margin-bottom:12px}.advice-stats-grid{display:flex;gap:24px;margin-bottom:12px}.advice-stat{display:flex;flex-direction:column;gap:2px}.advice-stat-label{font-size:.75rem;color:var(--text-secondary)}.advice-stat-value{font-size:1.4rem;font-weight:600;color:var(--text-primary)}.advice-context{font-size:.85rem;color:var(--text-secondary);padding:4px 0}.weight-summary{display:flex;flex-direction:column;gap:16px}.weight-empty{text-align:center;padding:32px 20px;background:var(--bg-tertiary);border-radius:12px}.weight-empty-icon{font-size:2rem;display:block;margin-bottom:12px}.weight-empty p{color:var(--text-secondary);margin:0 0 8px}.weight-hint{font-size:.85rem;color:var(--text-tertiary);font-style:italic}.weight-current-card{background:var(--bg-tertiary);border-radius:12px;padding:20px;text-align:center}.weight-current-label{display:block;font-size:.75rem;font-weight:600;color:var(--text-secondary);text-transform:uppercase;letter-spacing:.5px;margin-bottom:8px}.weight-current-value{display:block;font-size:2.5rem;font-weight:700;color:var(--text-primary)}.weight-trend-card{background:var(--bg-tertiary);border-radius:12px;padding:16px 20px;display:flex;align-items:center;gap:12px;flex-wrap:wrap}.weight-trend-icon{font-size:1.5rem}.weight-trend-label{font-size:1.1rem;font-weight:600;color:var(--text-primary)}.weight-trend-card.losing .weight-trend-label{color:var(--success)}.weight-trend-card.gaining .weight-trend-label{color:var(--warning, #f59e0b)}.weight-change{font-size:.9rem;color:var(--text-secondary)}.weight-weekly{font-size:.8rem;color:var(--text-tertiary);margin-left:auto}.weight-stats-section{background:var(--bg-tertiary);border-radius:12px;padding:16px 20px}.weight-stat-row{display:flex;justify-content:space-between;padding:8px 0;border-bottom:1px solid var(--border)}.weight-stat-row:last-child{border-bottom:none}.weight-stat-label{color:var(--text-secondary);font-size:.85rem}.weight-stat-value{color:var(--text-primary);font-weight:600;font-size:.9rem}.weight-interpretation{color:var(--text-secondary);font-size:.9rem;text-align:center;padding:12px;background:var(--bg-tertiary);border-radius:8px;margin:0}.weight-graph-section{background:var(--bg-tertiary);border-radius:12px;padding:16px 20px}.weight-graph-header{font-size:.75rem;font-weight:600;color:var(--text-secondary);text-transform:uppercase;letter-spacing:.5px;margin-bottom:12px}.weight-graph-container{width:100%;height:150px}.weight-line-graph{width:100%;height:100%}.weight-graph-label{font-size:10px;fill:var(--text-tertiary)}.weight-graph-grid{stroke:var(--border);stroke-width:1;stroke-dasharray:4 4}.weight-graph-line{stroke:var(--accent);stroke-width:2;stroke-linecap:round;stroke-linejoin:round}.weight-graph-point{fill:var(--accent);cursor:pointer;transition:r .2s ease}.weight-graph-point:hover{r:6}.fuel-summary{display:flex;flex-direction:column;gap:16px}.fuel-empty{text-align:center;padding:32px 20px;background:var(--bg-tertiary);border-radius:12px}.fuel-empty-icon{font-size:2rem;display:block;margin-bottom:12px}.fuel-empty p{color:var(--text-secondary);margin:0 0 8px}.fuel-hint{font-size:.85rem;color:var(--text-tertiary);font-style:italic}.fuel-latest-card{background:linear-gradient(135deg,#f9731626,#eab3081a);border:1px solid rgba(249,115,22,.3);border-radius:12px;padding:20px;text-align:center}.fuel-latest-label{display:block;font-size:.75rem;font-weight:600;color:var(--text-secondary);text-transform:uppercase;letter-spacing:.5px;margin-bottom:8px}.fuel-latest-value{display:block;font-size:2.5rem;font-weight:700;color:#f97316}.fuel-latest-notes{font-size:.9rem;color:var(--text-secondary);margin-top:8px}.fuel-latest-time{font-size:.8rem;color:var(--text-tertiary);margin-top:4px}.fuel-today-card{background:var(--bg-tertiary);border-radius:12px;padding:16px 20px;display:flex;align-items:center;gap:12px}.fuel-today-icon{font-size:1.5rem}.fuel-today-label{font-size:.85rem;color:var(--text-secondary)}.fuel-today-value{font-size:1.2rem;font-weight:700;color:var(--text-primary);margin-left:auto}.fuel-stats-section{background:var(--bg-tertiary);border-radius:12px;padding:16px 20px}.fuel-stats-header{font-size:.75rem;font-weight:600;color:var(--text-secondary);text-transform:uppercase;letter-spacing:.5px;margin-bottom:12px}.fuel-stat-row{display:flex;justify-content:space-between;padding:8px 0;border-bottom:1px solid var(--border)}.fuel-stat-row:last-child{border-bottom:none}.fuel-stat-label{color:var(--text-secondary);font-size:.85rem}.fuel-stat-value{color:var(--text-primary);font-weight:600;font-size:.9rem}.fuel-history-section{background:var(--bg-tertiary);border-radius:12px;padding:16px 20px}.fuel-history-header{font-size:.75rem;font-weight:600;color:var(--text-secondary);text-transform:uppercase;letter-spacing:.5px;margin-bottom:12px}.fuel-history-list{display:flex;flex-direction:column;gap:8px}.fuel-history-item{display:flex;justify-content:space-between;align-items:center;padding:8px 12px;background:var(--bg-secondary);border-radius:8px}.fuel-history-date{font-size:.85rem;color:var(--text-secondary)}.fuel-history-value{font-size:.9rem;font-weight:600;color:#f97316}.fuel-history-notes{font-size:.8rem;color:var(--text-tertiary);flex:1;margin:0 12px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.fuel-interpretation{color:var(--text-secondary);font-size:.9rem;text-align:center;padding:12px;background:var(--bg-tertiary);border-radius:8px;margin:0}.hydration-summary{display:flex;flex-direction:column;gap:16px}.hydration-empty{text-align:center;padding:32px 20px;background:var(--bg-tertiary);border-radius:12px}.hydration-empty-icon{font-size:2rem;display:block;margin-bottom:12px}.hydration-empty p{color:var(--text-secondary);margin:0 0 8px}.hydration-hint{font-size:.85rem;color:var(--text-tertiary);font-style:italic}.hydration-latest-card{background:linear-gradient(135deg,#06b6d426,#0ea5e91a);border:1px solid rgba(6,182,212,.3);border-radius:12px;padding:20px;text-align:center}.hydration-latest-header{display:flex;align-items:center;justify-content:center;gap:8px;margin-bottom:8px}.hydration-icon{font-size:1.2rem}.hydration-latest-label{font-size:.75rem;font-weight:600;color:var(--text-secondary);text-transform:uppercase;letter-spacing:.5px}.hydration-latest-value{display:block;font-size:2.5rem;font-weight:700;color:#06b6d4}.hydration-latest-notes{font-size:.9rem;color:var(--text-secondary);margin-top:8px}.hydration-latest-time{font-size:.8rem;color:var(--text-tertiary);margin-top:4px}.hydration-today-card{background:var(--bg-tertiary);border-radius:12px;padding:16px 20px;display:flex;align-items:center;gap:12px}.hydration-today-label{font-size:.85rem;color:var(--text-secondary)}.hydration-today-value{font-size:1.2rem;font-weight:700;color:var(--text-primary);margin-left:auto}.hydration-today-count{font-size:.8rem;color:var(--text-tertiary)}.hydration-stats-section{background:var(--bg-tertiary);border-radius:12px;padding:16px 20px}.hydration-stat-row{display:flex;justify-content:space-between;padding:8px 0;border-bottom:1px solid var(--border)}.hydration-stat-row:last-child{border-bottom:none}.hydration-stat-label{color:var(--text-secondary);font-size:.85rem}.hydration-stat-value{color:var(--text-primary);font-weight:600;font-size:.9rem}.hydration-history-section{background:var(--bg-tertiary);border-radius:12px;padding:16px 20px}.hydration-history-header{font-size:.75rem;font-weight:600;color:var(--text-secondary);text-transform:uppercase;letter-spacing:.5px;margin-bottom:12px}.hydration-history-list{display:flex;flex-direction:column;gap:8px}.hydration-history-item{display:flex;justify-content:space-between;align-items:center;padding:8px 12px;background:var(--bg-secondary);border-radius:8px}.hydration-history-ounces{font-size:.9rem;font-weight:600;color:#06b6d4}.hydration-history-notes{font-size:.8rem;color:var(--text-tertiary);flex:1;margin:0 12px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.hydration-history-date{font-size:.85rem;color:var(--text-secondary)}.day-indicators{position:absolute;bottom:2px;left:2px;display:flex;gap:3px;justify-content:flex-start;z-index:2;pointer-events:none}.day-indicator{width:6px;height:6px;border-radius:50%;opacity:.9;flex-shrink:0}.month-day-cell.has-rides .day-indicator{opacity:1;width:7px;height:7px;box-shadow:0 0 0 1.5px #0006,0 0 0 2.5px #fff3}.day-indicator.fuel{background:#f59e0b;box-shadow:0 0 2px #f59e0b80}.month-day-cell.has-rides .day-indicator.fuel{box-shadow:0 0 0 1px #0000004d}.day-indicator.weight{background:#3b82f6;box-shadow:0 0 2px #3b82f680}.day-indicator.hydration{background:#06b6d4;box-shadow:0 0 2px #06b6d480}.data-confirmation{display:flex;align-items:center;gap:16px;padding:20px;background:linear-gradient(135deg,#22c55e26,#22c55e0d);border:1px solid rgba(34,197,94,.3);border-radius:12px}.confirmation-icon{font-size:2.5rem;flex-shrink:0}.confirmation-content{display:flex;flex-direction:column;gap:4px}.confirmation-type{font-size:.75rem;font-weight:600;color:var(--text-secondary);text-transform:uppercase;letter-spacing:.5px}.confirmation-value{font-size:1.5rem;font-weight:700;color:#22c55e}.confirmation-notes{font-size:.9rem;color:var(--text-secondary)}.confirmation-time{font-size:.8rem;color:var(--text-tertiary)}.fitness-status{font-size:.75rem;font-weight:600;padding:4px 10px;border-radius:12px;background:var(--bg-secondary);white-space:nowrap}.fitness-status.fresh{color:var(--success);background:#44bb4426}.fitness-status.neutral{color:var(--text-secondary)}.fitness-status.fatigued{color:var(--error);background:#ff444426}.fitness-status.peak-form{color:#4caf50;background:#4caf5033}.fitness-status.tired{color:#ff9800;background:#ff980026}.fitness-status.very-fatigued{color:var(--error);background:#ff444426}.stats-view .fitness-bar{margin-bottom:16px}.calendar-header-row{display:grid;grid-template-columns:90px repeat(7,1fr);background:var(--bg-tertiary);border-bottom:1px solid var(--border);flex-shrink:0}.day-header{padding:8px 4px;text-align:center;font-size:.7rem;font-weight:600;color:var(--text-secondary);text-transform:uppercase}.calendar-week-row{display:grid;grid-template-columns:90px repeat(7,1fr);border-bottom:1px solid var(--border);flex:1}.calendar-week-row:last-child{border-bottom:none}.week-summary-col{display:flex;flex-direction:column;justify-content:center;padding:6px 10px;background:var(--bg-tertiary);border-right:1px solid var(--border);gap:1px}.week-num{font-size:.7rem;font-weight:600;color:var(--accent)}.week-total{font-size:.75rem;font-weight:600;color:var(--text-primary)}.week-time{font-size:.65rem;color:var(--text-secondary)}.week-calories{font-size:.6rem;color:var(--text-tertiary)}.week-tss{font-size:.65rem;color:var(--accent)}.week-power{font-size:.6rem;color:var(--text-secondary)}.week-tsb{font-size:.55rem;font-weight:500}.week-tsb.positive{color:var(--success)}.week-tsb.negative{color:var(--error)}.day-cell{padding:3px;display:flex;flex-direction:column;align-items:center;border-right:1px solid var(--border);position:relative}.day-cell:last-child{border-right:none}.day-cell.has-rides{background:#0478571a}.day-cell.is-today{box-shadow:inset 0 0 0 2px #6b7280}.day-cell.is-today .day-date{color:#9ca3af;font-weight:700}.day-cell.other-month{background:var(--bg-primary);opacity:.4}.day-cell.other-month .day-date{color:var(--text-secondary)}.day-date{font-size:.6rem;color:var(--text-secondary);margin-bottom:2px}.day-rides-container{display:flex;flex-wrap:wrap;justify-content:center;gap:2px;flex:1;align-items:center}.day-ride{cursor:default}.ride-dot{display:block;width:6px;height:6px;background:var(--accent);border-radius:50%}.calendar-loading{display:flex;align-items:center;justify-content:center;flex:1}.calendar-error{text-align:center;padding:20px;color:var(--error);font-size:.85rem}.month-loading-indicator{display:flex;justify-content:center;padding:8px 0}.calendar-empty{text-align:center;padding:20px;color:var(--text-secondary);font-size:.85rem}.chat-input-area{background:var(--bg-primary);border-top:1px solid var(--border);padding:12px 24px 24px}.quick-queries{display:flex;flex-wrap:wrap;gap:8px;justify-content:center;margin-bottom:12px;max-width:800px;margin-left:auto;margin-right:auto;overflow:hidden;transition:max-height .3s ease,opacity .2s ease,margin .3s ease}.quick-queries.collapsed{max-height:0;opacity:0;margin-bottom:0;pointer-events:none}.quick-queries.expanded{max-height:200px;opacity:1}.suggestions-toggle{display:flex;align-items:center;justify-content:center;width:36px;height:36px;padding:0;margin-left:4px;background:transparent;border:1px solid var(--border);border-radius:8px;color:var(--text-secondary);cursor:pointer;transition:all .2s;flex-shrink:0}.suggestions-toggle:hover{border-color:var(--accent);color:var(--accent)}.suggestions-toggle.active{background:#0478571a;border-color:var(--accent);color:var(--accent)}.quick-query-pill{padding:6px 14px;font-size:.8rem;background:var(--bg-secondary);color:var(--text-secondary);border:1px solid var(--border);border-radius:16px;cursor:pointer;transition:all .2s}.quick-query-pill:hover:not(:disabled){background:var(--bg-tertiary);color:var(--text-primary);border-color:var(--accent)}.quick-query-pill:disabled{opacity:.5;cursor:not-allowed}.quick-query-pill.add-data-pill{border-style:dashed;color:var(--text-tertiary)}.quick-query-pill.add-data-pill:hover:not(:disabled){border-style:solid;color:var(--text-primary)}.quick-query-pill.add-data-pill.hydration:hover:not(:disabled){border-color:#06b6d4;color:#06b6d4}.chat-input-form{background:transparent}.input-wrapper{max-width:800px;margin:0 auto;display:flex;gap:12px;background:var(--bg-secondary);border:1px solid var(--border);border-radius:12px;padding:4px;transition:border-color .2s;position:relative}.input-wrapper:focus-within{border-color:var(--accent)}.slash-menu{position:absolute;bottom:100%;left:0;right:0;background:var(--bg-secondary);border:1px solid var(--border);border-radius:12px;margin-bottom:8px;overflow:hidden;box-shadow:0 -4px 20px #0000004d;z-index:100}.slash-menu-item{display:flex;align-items:center;gap:12px;width:100%;padding:12px 16px;background:transparent;border:none;color:var(--text-primary);cursor:pointer;text-align:left;transition:background-color .1s}.slash-menu-item:hover,.slash-menu-item.selected{background:var(--bg-tertiary)}.slash-menu-item .slash-command{font-weight:600;color:var(--accent);min-width:80px}.slash-menu-item .slash-description{color:var(--text-secondary);font-size:.9rem}.chat-input{flex:1;padding:12px 16px;font-size:1rem;background:transparent;border:none;color:var(--text-primary)}.chat-input:focus{outline:none}.chat-input::placeholder{color:var(--text-secondary)}.send-button{padding:12px 16px;background:var(--accent);border:none;border-radius:8px;color:#fff;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:background-color .2s}.send-button:hover:not(:disabled){background:var(--accent-hover)}.send-button:disabled{opacity:.5;cursor:not-allowed}.chat-messages::-webkit-scrollbar{width:8px}.chat-messages::-webkit-scrollbar-track{background:var(--bg-primary)}.chat-messages::-webkit-scrollbar-thumb{background:var(--bg-tertiary);border-radius:4px}.chat-messages::-webkit-scrollbar-thumb:hover{background:var(--border)}.account-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background:#000000b3;display:flex;align-items:center;justify-content:center;z-index:1000}.account-modal{background:var(--bg-secondary);border:1px solid var(--border);border-radius:12px;width:90%;max-width:400px;max-height:90vh;overflow-y:auto}.account-header{display:flex;justify-content:space-between;align-items:center;padding:16px 20px;border-bottom:1px solid var(--border)}.account-header h2{font-size:1.1rem;font-weight:600;color:var(--text-primary)}.close-button{background:none;border:none;color:var(--text-secondary);cursor:pointer;padding:4px;display:flex;align-items:center;justify-content:center;border-radius:4px;transition:all .2s}.close-button:hover{color:var(--text-primary);background:var(--bg-tertiary)}.account-content{padding:20px}.account-section{display:flex;align-items:center;gap:16px;margin-bottom:24px}.account-section:last-child{margin-bottom:0}.account-section:has(.sync-buttons){flex-direction:column;align-items:stretch}.community-section{flex-direction:column;align-items:center;text-align:center;gap:12px;padding-top:16px;border-top:1px solid var(--border);margin-top:8px}.community-section h3{margin:0;font-size:1rem;font-weight:600;color:var(--text-primary)}.community-description{margin:0;font-size:.85rem;color:var(--text-secondary);max-width:280px}.discord-link{display:inline-flex;align-items:center;gap:10px;padding:12px 20px;background:#5865f2;color:#fff;text-decoration:none;border-radius:8px;font-weight:600;font-size:.95rem;transition:all .2s;box-shadow:0 2px 8px #5865f24d}.discord-link:hover{background:#4752c4;transform:translateY(-1px);box-shadow:0 4px 12px #5865f266}.discord-link svg{width:22px;height:22px}.account-avatar{width:56px;height:56px;background:var(--accent);border-radius:50%;display:flex;align-items:center;justify-content:center;font-weight:600;font-size:1.5rem;color:#fff;flex-shrink:0;overflow:hidden}.account-avatar-clickable{cursor:pointer;position:relative}.account-avatar-overlay{position:absolute;top:0;right:0;bottom:0;left:0;background:#00000080;border-radius:50%;display:flex;align-items:center;justify-content:center;opacity:0;transition:opacity .15s;color:#fff}.account-avatar-clickable:hover .account-avatar-overlay{opacity:1}.account-avatar-spinner{width:24px;height:24px;border:3px solid rgba(255,255,255,.3);border-top-color:#fff;border-radius:50%;animation:spin .6s linear infinite}.account-avatar-img{width:100%;height:100%;object-fit:cover}.account-info h3{font-size:1.1rem;font-weight:600;color:var(--text-primary);margin-bottom:4px}.name-display{cursor:pointer;display:inline-flex;align-items:center;gap:6px}.name-edit-icon{opacity:0;color:var(--text-secondary);transition:opacity .15s}.name-display:hover .name-edit-icon{opacity:1}.name-edit{display:flex;align-items:center;gap:4px}.name-edit-input{font-size:1.1rem;font-weight:600;color:var(--text-primary);background:var(--bg-secondary);border:1px solid var(--border-color);border-radius:6px;padding:2px 8px;outline:none;width:160px}.name-edit-input:focus{border-color:var(--accent-color, #4a9eff)}.name-edit-btn{background:none;border:none;padding:4px;cursor:pointer;border-radius:4px;display:flex;align-items:center}.name-edit-btn.save{color:#4caf50}.name-edit-btn.cancel{color:var(--text-secondary)}.name-edit-btn:hover{background:var(--bg-secondary)}.account-strava{font-size:.85rem;color:var(--text-secondary)}.founding-member-badge{display:inline-block;margin-top:8px;padding:4px 12px;background:linear-gradient(135deg,#d4af37,#f5d061);color:#1a1a1a;font-size:.75rem;font-weight:600;text-transform:uppercase;letter-spacing:.5px;border-radius:12px}.stat-card{flex:1;background:var(--bg-tertiary);border-radius:8px;padding:16px;display:flex;flex-direction:column;align-items:center;text-align:center}.stat-label{font-size:.8rem;color:var(--text-secondary);text-transform:uppercase;letter-spacing:.5px;margin-bottom:8px}.stat-value{font-size:2rem;font-weight:700;color:var(--text-primary)}.stat-date{display:block;font-size:.8rem;color:var(--text-secondary);margin-top:4px}.sync-buttons{display:flex;flex-direction:column;gap:10px}.sync-button{display:flex;align-items:center;justify-content:center;gap:10px;width:100%;padding:14px;font-size:1rem;font-weight:600;background:var(--accent);color:#fff;border:none;border-radius:8px;cursor:pointer;transition:background-color .2s}.sync-button:hover:not(:disabled){background:var(--accent-hover)}.sync-button:disabled{opacity:.7;cursor:not-allowed}.sync-button.strava{background:var(--strava-orange)}.sync-button.strava:hover:not(:disabled){background:#e54400}.sync-button.wahoo{background:var(--wahoo-blue)}.sync-button.wahoo:hover:not(:disabled){background:#0089c0}.sync-button.secondary{background:var(--bg-tertiary);border:1px solid var(--border)}.sync-button.secondary:hover:not(:disabled){background:var(--bg-secondary);border-color:var(--accent)}.spinner.small{width:18px;height:18px;border-width:2px}.sync-message{text-align:center;color:var(--text-secondary);font-size:.9rem;margin-top:12px}.rebuild-timestamp{text-align:center;color:var(--text-tertiary, rgba(255,255,255,.35));font-size:.75rem;margin-top:6px}.founding-sync-section{flex-direction:column;align-items:stretch;border-top:1px solid var(--border);padding-top:16px}.founding-sync-section .section-title{font-size:.9rem;font-weight:600;color:var(--text-primary);margin-bottom:8px;display:flex;align-items:center;gap:8px}.founding-sync-section .section-description{font-size:.85rem;color:var(--text-secondary);margin-bottom:12px}.founding-feature-badge{display:inline-block;padding:2px 8px;background:linear-gradient(135deg,#d4af37,#f5d061);color:#1a1a1a;font-size:.65rem;font-weight:700;text-transform:uppercase;letter-spacing:.5px;border-radius:8px}.year-sync-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:8px}.year-sync-button{padding:10px 8px;font-size:.85rem;font-weight:600;background:var(--bg-tertiary);color:var(--text-primary);border:1px solid var(--border);border-radius:6px;cursor:pointer;transition:all .2s;display:flex;align-items:center;justify-content:center;min-height:40px}.year-sync-button:hover:not(:disabled){background:var(--bg-secondary);border-color:var(--accent)}.year-sync-button:disabled{opacity:.5;cursor:not-allowed}.voice-section{flex-direction:column;align-items:stretch;border-top:1px solid var(--border);padding-top:24px}.voice-section .section-title{font-size:1rem;font-weight:600;color:var(--text-primary);margin-bottom:4px}.voice-section .section-description{font-size:.85rem;color:var(--text-secondary);margin-bottom:16px}.voice-options{display:flex;flex-direction:column;gap:8px}.voice-option{display:flex;align-items:center;gap:12px;padding:12px 16px;background:var(--bg-tertiary);border:2px solid transparent;border-radius:8px;cursor:pointer;transition:all .15s ease}.voice-option:hover{background:var(--bg-secondary)}.voice-option.selected{border-color:var(--accent);background:var(--bg-secondary)}.voice-option input{display:none}.voice-icon{font-size:1.5rem}.voice-name{font-weight:600;color:var(--text-primary);min-width:130px}.voice-desc{font-size:.85rem;color:var(--text-secondary)}.voice-saving{text-align:center;color:var(--accent);font-size:.85rem;margin-top:8px}.billing-section{flex-direction:column;align-items:stretch;border-top:1px solid var(--border);padding-top:24px}.billing-section .section-title{font-size:1rem;font-weight:600;color:var(--text-primary);margin-bottom:16px}.athlete-section{flex-direction:column;align-items:stretch;border-top:1px solid var(--border);padding-top:24px}.athlete-section .section-title{font-size:1rem;font-weight:600;color:var(--text-primary);margin-bottom:4px}.athlete-section .section-description{font-size:.85rem;color:var(--text-secondary);margin-bottom:16px}.athlete-settings{display:flex;flex-direction:column;gap:8px}.athlete-card{display:flex;align-items:center;gap:14px;padding:14px 16px;background:var(--bg-tertiary);border:1px solid rgba(255,255,255,.06);border-radius:10px;transition:all .15s ease}.athlete-card:hover{background:var(--bg-secondary);border-color:#ffffff1a}.athlete-card-icon{display:flex;align-items:center;justify-content:center;width:36px;height:36px;border-radius:8px;background:#ffffff0f;color:var(--text-secondary);flex-shrink:0}.athlete-card-content{display:flex;align-items:center;justify-content:space-between;flex:1;gap:12px}.athlete-card-label{font-size:.9rem;font-weight:500;color:var(--text-primary);white-space:nowrap}.athlete-hint{font-size:.75rem;color:var(--text-tertiary);font-weight:400}.athlete-input-group{display:flex;align-items:center;gap:6px}.athlete-input{background:#ffffff14;border:1px solid rgba(255,255,255,.12);border-radius:8px;padding:8px 12px;color:var(--text-primary);font-size:.9rem;width:140px;transition:border-color .15s ease}.athlete-input:focus{outline:none;border-color:#8b5cf680;box-shadow:0 0 0 3px #8b5cf61a}.athlete-unit{font-size:.8rem;color:var(--text-tertiary);min-width:28px}.athlete-save-btn{align-self:flex-end;padding:10px 28px;margin-top:4px;background:#8b5cf633;border:1px solid rgba(139,92,246,.3);border-radius:8px;color:var(--text-primary);font-size:.9rem;font-weight:500;cursor:pointer;transition:all .15s ease}.athlete-save-btn:hover{background:#8b5cf659;border-color:#8b5cf680}.athlete-save-btn:disabled{opacity:.5;cursor:not-allowed}.subscription-status{text-align:center}.status-badge{display:inline-block;padding:4px 12px;border-radius:12px;font-size:.85rem;font-weight:600;margin-bottom:8px}.status-badge.beta{background:#9333ea33;color:#a855f7}.status-badge.founding{background:linear-gradient(135deg,#d4af374d,#f5d0614d);color:#d4af37}.status-badge.trialing{background:#3b82f633;color:#60a5fa}.status-badge.active{background:#22c55e33;color:#4ade80}.status-badge.cancelled{background:#fb923c33;color:#fb923c}.status-badge.expired{background:#ef444433;color:#f87171}.status-badge.cancelling{background:#fb923c33;color:#fb923c}.cancel-notice{color:#fb923c!important;font-weight:500}.subscription-status.loading{display:flex;align-items:center;gap:12px;padding:20px 0}.subscription-status.loading p{margin:0}.subscription-status p{color:var(--text-secondary);font-size:.9rem;margin-bottom:16px}.billing-button{padding:12px 24px;border-radius:8px;font-size:1rem;font-weight:600;cursor:pointer;transition:all .2s;border:none}.billing-button.primary{background:var(--accent);color:#fff;width:100%}.billing-button.primary:hover:not(:disabled){background:var(--accent-hover)}.billing-button.secondary{background:var(--bg-tertiary);color:var(--text-primary);border:1px solid var(--border)}.billing-button.secondary:hover:not(:disabled){background:var(--border)}.billing-button:disabled{opacity:.6;cursor:not-allowed}.billing-button.cancel{background:transparent;color:var(--text-secondary);border:none;font-size:.9rem;padding:8px 16px}.billing-button.cancel:hover:not(:disabled){color:var(--error)}.billing-buttons{display:flex;flex-direction:column;gap:8px;align-items:center}.price-display{font-size:2.5rem;font-weight:700;color:var(--text-primary);margin-bottom:4px}.price-display span{font-size:1rem;font-weight:400;color:var(--text-secondary)}.price-note{color:var(--text-secondary);font-size:.9rem;margin-bottom:16px}.beta-code-section{margin-top:24px;padding-top:16px;border-top:1px solid var(--border)}.beta-code-label{font-size:.85rem;color:var(--text-secondary);margin-bottom:8px}.beta-code-input{display:flex;gap:8px}.beta-code-input input{flex:1;padding:8px 12px;background:var(--bg-tertiary);border:1px solid var(--border);border-radius:6px;color:var(--text-primary);font-size:.9rem}.beta-code-input input:focus{outline:none;border-color:var(--accent)}.beta-code-input button{padding:8px 16px;background:var(--bg-tertiary);border:1px solid var(--border);border-radius:6px;color:var(--text-primary);font-size:.9rem;cursor:pointer}.beta-code-input button:hover:not(:disabled){background:var(--border)}.beta-code-input button:disabled{opacity:.5;cursor:not-allowed}.beta-error{color:var(--error);font-size:.85rem;margin-top:8px}.ride-detail-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background:#000c;display:flex;align-items:center;justify-content:center;z-index:1100;padding:20px}.ride-detail-page{min-height:100vh;background:var(--bg-primary)}.ride-detail-page-loading,.ride-detail-page-error{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:100vh;gap:16px;color:var(--text-secondary)}.ride-detail-page-error button{padding:8px 20px;background:var(--bg-tertiary);border:1px solid var(--border);border-radius:8px;color:var(--text-primary);cursor:pointer}.ride-detail-full{min-height:100vh;background:var(--bg-primary);display:flex;justify-content:center;padding:20px}.ride-detail-card.full-page{max-height:none;max-width:900px;border-radius:16px;box-shadow:none;border:1px solid var(--border);margin-bottom:40px}.ride-detail-back{background:none;border:none;color:var(--text-secondary);cursor:pointer;padding:4px;margin-right:8px;display:flex;align-items:center;border-radius:6px;flex-shrink:0}.ride-detail-back:hover{color:var(--text-primary);background:var(--bg-tertiary)}.ride-detail-card{background:var(--bg-secondary);border:1px solid var(--border);border-radius:16px;width:100%;max-width:800px;max-height:90vh;overflow-y:auto;box-shadow:0 20px 60px #00000080}.ride-detail-header{display:flex;justify-content:space-between;align-items:flex-start;padding:20px;border-bottom:1px solid var(--border)}.ride-detail-title{display:flex;flex-wrap:wrap;align-items:center;gap:0}.ride-detail-title h2{font-size:1.5rem;font-weight:700;color:var(--text-primary);margin-bottom:6px}.ride-detail-title .ride-detail-date,.ride-detail-title .ride-detail-location{width:100%}.ride-detail-date{font-size:.85rem;color:var(--text-secondary);display:block;margin-bottom:4px}.ride-detail-location{font-size:.8rem;color:var(--text-tertiary);display:block;margin-bottom:8px}.ride-detail-device{font-size:.75rem;color:var(--text-tertiary);opacity:.7}.ride-detail-weather{padding:12px 20px;border-top:1px solid var(--border);margin-top:12px;display:flex;align-items:center;gap:12px}.ride-detail-weather .weather-label{font-size:.75rem;font-weight:600;color:var(--text-secondary);text-transform:uppercase;letter-spacing:.5px}.ride-detail-weather .weather-info{display:flex;flex-wrap:wrap;gap:12px;align-items:center}.ride-detail-weather .weather-condition{background:var(--bg-tertiary);color:var(--text-primary);padding:4px 10px;border-radius:12px;font-size:.85rem;font-weight:500}.ride-detail-weather .weather-temp{color:var(--text-primary);font-size:.9rem;font-weight:600}.ride-detail-weather .weather-humidity,.ride-detail-weather .weather-wind{color:var(--text-secondary);font-size:.8rem}.ride-badge{display:inline-block;font-size:.7rem;font-weight:600;padding:3px 8px;border-radius:4px;margin-right:6px;text-transform:uppercase}.ride-badge.race{background:#f9731633;color:#f97316}.ride-badge.type{background:var(--bg-tertiary);color:var(--text-secondary)}.ride-badge.source{font-size:.65rem;letter-spacing:.02em}.ride-badge.source.source-fit{background:#10b98133;color:#10b981}.ride-badge.source.source-garmin{background:#0077c833;color:#4da8e0}.ride-badge.source.source-wahoo{background:#00a9e033;color:#42b8e5}.ride-badge.source.source-suunto{background:#e2323233;color:#e25050}.ride-badge.source.source-zwift{background:#f26c2133;color:#f26c21}.ride-badge.source.source-strava{background:#a0a0a026;color:#777}.ride-detail-close{background:none;border:none;color:var(--text-secondary);cursor:pointer;padding:4px;border-radius:4px;transition:all .2s}.ride-detail-close:hover{color:var(--text-primary);background:var(--bg-tertiary)}.ride-detail-map{padding:0 20px;margin:20px 0}.ride-detail-map .route-map{border-radius:12px;overflow:hidden;box-shadow:0 4px 20px #0000004d}.ride-detail-no-map{padding:40px 20px;text-align:center;color:var(--text-secondary);background:var(--bg-tertiary);margin:16px 20px;border-radius:8px}.ride-detail-stats{padding:0 20px 20px}.stat-row{display:flex;flex-wrap:wrap;gap:12px;margin-bottom:12px}.stat-row:last-child{margin-bottom:0}.stat-row .stat-item{background:var(--bg-tertiary);border-radius:8px;padding:12px;text-align:center;flex:0 0 calc(33.333% - 8px);min-width:90px}.stat-row .stat-label{display:block;font-size:.7rem;font-weight:600;color:var(--text-secondary);text-transform:uppercase;letter-spacing:.5px;margin-bottom:4px}.stat-row .stat-value{display:block;font-size:1.1rem;font-weight:700;color:var(--text-primary)}.ride-detail-description{padding:16px 20px 20px;border-top:1px solid var(--border);margin-top:16px}.ride-detail-description p{font-size:.9rem;color:var(--text-secondary);line-height:1.5}.ride-detail-custom-data{padding:16px 20px 20px;border-top:1px solid var(--border);margin-top:16px}.ride-detail-card.no-ride-view{max-width:400px}.ride-detail-card.no-ride-view .ride-detail-header{border-bottom:1px solid var(--border);padding-bottom:16px}.ride-detail-card.multi-ride-view{max-width:480px}.multi-ride-list{display:flex;flex-direction:column;gap:8px;padding:12px 20px 16px}.multi-ride-item{display:flex;justify-content:space-between;align-items:center;padding:12px 16px;background:var(--bg-secondary, #1a1a2e);border:1px solid var(--border, #2a2a3e);border-radius:8px;cursor:pointer;transition:background .15s,border-color .15s}.multi-ride-item:hover{background:var(--bg-hover, #252540);border-color:var(--accent, #6366f1)}.multi-ride-info{display:flex;flex-direction:column;gap:2px}.multi-ride-name{font-weight:600;font-size:.9rem;color:var(--text-primary, #e0e0e0)}.multi-ride-stats{font-size:.75rem;color:var(--text-secondary, #999)}.multi-ride-time{font-size:.8rem;color:var(--text-secondary, #999);white-space:nowrap;margin-left:16px}.custom-data-title{font-size:.85rem;font-weight:600;color:var(--text-secondary);margin:0 0 12px;text-transform:uppercase;letter-spacing:.5px}.custom-data-entries{display:flex;flex-direction:column;gap:10px}.custom-data-entry{display:flex;align-items:center;gap:10px;padding:10px 12px;background:var(--bg-tertiary);border-radius:8px}.custom-data-entry .custom-data-indicator{width:8px;height:8px;border-radius:50%;flex-shrink:0}.custom-data-entry.fuel .custom-data-indicator{background:#f59e0b}.custom-data-entry.weight .custom-data-indicator{background:#3b82f6}.custom-data-entry.hydration .custom-data-indicator{background:#06b6d4}.custom-data-entry .custom-data-type{font-size:.75rem;font-weight:600;color:var(--text-secondary);text-transform:uppercase;min-width:50px}.custom-data-entry .custom-data-value{font-size:.95rem;font-weight:600;color:var(--text-primary)}.custom-data-entry .custom-data-notes{font-size:.85rem;color:var(--text-secondary);flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.custom-data-entry .custom-data-time{font-size:.75rem;color:var(--text-muted);margin-left:auto}@media (max-width: 600px){.ride-detail-overlay{padding:10px}.ride-detail-card{max-height:95vh;border-radius:12px}.ride-detail-header{padding:12px 16px}.ride-detail-title h2{font-size:1.1rem}.ride-detail-date{font-size:.75rem}.ride-detail-location{font-size:.7rem}.ride-detail-map{margin:0}.ride-detail-stats{padding:12px 12px 16px}.stat-row{gap:6px;margin-bottom:6px}.stat-row .stat-item{flex:0 0 calc(33.333% - 4px);min-width:70px;padding:8px 6px;border-radius:6px}.stat-row .stat-label{font-size:.55rem;margin-bottom:2px;letter-spacing:.3px}.stat-row .stat-value{font-size:.85rem}.ride-detail-weather{padding:10px 12px;font-size:.75rem}.ride-detail-weather .weather-info{gap:8px;font-size:.7rem}.ride-detail-description{padding:12px;margin-top:0}.ride-detail-description p{font-size:.8rem}}.ride-loading-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background:#00000080;display:flex;align-items:center;justify-content:center;z-index:999}.ride-dot.clickable{cursor:pointer;transition:transform .2s,background-color .2s}.ride-dot.clickable:hover{transform:scale(1.5);background:var(--text-primary)}.ride-detail-inline{display:flex;flex-direction:column;gap:20px;max-width:100%}.message-content>.ride-detail-inline{background:var(--bg-secondary);border-radius:16px;padding:24px;border:1px solid var(--border)}.ride-detail-header-inline{display:flex;flex-wrap:wrap;align-items:baseline;gap:8px}.ride-detail-header-inline h3{font-size:1.25rem;font-weight:700;color:var(--text-primary);margin:0}.ride-date{font-size:.85rem;color:var(--text-secondary)}.ride-location{font-size:.8rem;color:var(--text-tertiary);flex-basis:100%}.ride-weather-inline{display:flex;flex-wrap:wrap;gap:10px;align-items:center;padding:10px 12px;background:var(--bg-tertiary);border-radius:8px;font-size:.8rem}.ride-weather-inline .weather-condition{background:var(--bg-secondary);color:var(--text-primary);padding:3px 8px;border-radius:10px;font-weight:500}.ride-weather-inline .weather-temp{color:var(--text-primary);font-weight:600}.ride-weather-inline .weather-humidity,.ride-weather-inline .weather-wind{color:var(--text-secondary)}.ride-map-container{border-radius:12px;overflow:hidden;box-shadow:0 4px 20px #0000004d;border:1px solid var(--border)}.ride-map-container.ride-map-large{border-radius:16px;box-shadow:0 8px 32px #0006}.ride-no-map{padding:40px;text-align:center;color:var(--text-secondary);background:var(--bg-tertiary);border-radius:8px}.ride-stats-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(100px,1fr));gap:12px}.ride-stat{background:var(--bg-tertiary);border-radius:8px;padding:12px;text-align:center}.ride-stat .stat-label{display:block;font-size:.7rem;font-weight:600;color:var(--text-secondary);text-transform:uppercase;letter-spacing:.5px;margin-bottom:4px}.ride-stat .stat-value{display:block;font-size:1rem;font-weight:700;color:var(--text-primary)}.rides-list{display:flex;flex-direction:column;gap:32px}.rides-list .ride-detail-inline{background:var(--bg-secondary);border-radius:16px;padding:20px;border:1px solid var(--border)}.rides-list .ride-no-map{padding:30px;font-size:.85rem}.route-map{width:100%;min-height:250px}.ride-map-large .route-map{min-height:350px}.route-map-error{background:var(--bg-tertiary);border-radius:8px}.elevation-profile{position:relative;width:100%;background:var(--bg-tertiary);border-radius:0 0 8px 8px;margin-top:-8px;padding:8px 12px 6px;cursor:crosshair}.elevation-profile:hover{background:var(--bg-secondary)}.elevation-svg{width:100%;height:50px;display:block}.elevation-hover-line{position:absolute;top:8px;bottom:24px;width:2px;background:#fff;pointer-events:none;transform:translate(-50%);box-shadow:0 0 4px #ffffff80}.elevation-tooltip{position:absolute;bottom:100%;left:50%;transform:translate(-50%);background:var(--bg-primary);border:1px solid var(--border);border-radius:4px;padding:4px 8px;white-space:nowrap;font-size:.7rem;margin-bottom:4px;box-shadow:0 2px 8px #0000004d}.tooltip-elev{color:var(--accent);font-weight:600;margin-right:6px}.tooltip-dist{color:var(--text-secondary)}.elevation-labels{display:flex;justify-content:space-between;font-size:.65rem;color:var(--text-secondary);margin-top:4px}.elev-gain{color:var(--accent);font-weight:600}.route-map-container{position:relative}.map-style-switcher{position:absolute;top:10px;left:10px;display:flex;gap:2px;background:var(--bg-primary);border-radius:4px;overflow:hidden;box-shadow:0 2px 8px #0000004d;z-index:1}.map-style-btn{padding:6px 10px;font-size:.7rem;font-weight:500;background:var(--bg-secondary);color:var(--text-secondary);border:none;cursor:pointer;transition:all .15s}.map-style-btn:hover{background:var(--bg-tertiary);color:var(--text-primary)}.map-style-btn.active{background:var(--accent);color:#fff}.mapboxgl-ctrl-attrib{font-size:9px!important;opacity:.6}.mapboxgl-ctrl-attrib:hover{opacity:1}.mapboxgl-ctrl-logo{opacity:.5;transform:scale(.8);transform-origin:bottom left}.mapboxgl-ctrl-logo:hover{opacity:1}.metric-selector{display:flex;gap:4px;padding:8px 0 6px;flex-wrap:wrap}.metric-pill{padding:4px 12px;font-size:.7rem;font-weight:500;background:var(--bg-tertiary);color:var(--text-secondary);border:1px solid transparent;border-radius:20px;cursor:pointer;transition:all .15s}.metric-pill:hover:not(.disabled){background:var(--bg-secondary);color:var(--text-primary);border-color:var(--border)}.metric-pill.active{background:var(--bg-secondary);color:var(--text-primary);border-color:var(--accent);font-weight:600}.metric-pill.disabled{opacity:.3;cursor:default}.color-legend{position:absolute;bottom:12px;right:12px;background:#0d0d0dd9;border-radius:6px;padding:6px 10px;z-index:1;min-width:120px;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}.color-legend-title{display:block;font-size:.6rem;color:var(--text-secondary);margin-bottom:4px;font-weight:500}.color-legend-bar{display:flex;height:6px;border-radius:3px;overflow:hidden;gap:1px}.color-legend-segment{flex:1}.color-legend-labels{display:flex;justify-content:space-between;font-size:.55rem;color:var(--text-secondary);margin-top:2px}.data-channel-stack{display:flex;flex-direction:column}.data-channel-stack .elevation-profile{border-radius:0;margin-top:-8px}.data-channel-stack .elevation-profile:first-child{border-radius:0}.data-channel{background:var(--bg-tertiary);border-top:1px solid rgba(255,255,255,.04)}.data-channel:last-child{border-radius:0 0 8px 8px}.data-channel-header{display:flex;align-items:center;justify-content:space-between;padding:4px 12px 0;cursor:pointer;-webkit-user-select:none;user-select:none}.data-channel-label{font-size:.65rem;font-weight:600;text-transform:uppercase;letter-spacing:.5px}.data-channel-chevron{transition:transform .2s;color:var(--text-secondary)}.data-channel-chevron.collapsed{transform:rotate(-90deg)}.data-channel-chart{position:relative;padding:0 12px 4px;cursor:crosshair}.data-channel-svg{width:100%;height:40px;display:block}.data-channel.collapsed .data-channel-chart{display:none}.data-channel-hover-line{position:absolute;top:0;bottom:20px;width:1px;background:#fff9;pointer-events:none;transform:translate(-50%)}.data-channel-tooltip{position:absolute;bottom:100%;left:50%;transform:translate(-50%);background:var(--bg-primary);border:1px solid var(--border);border-radius:4px;padding:2px 6px;white-space:nowrap;font-size:.65rem;margin-bottom:2px;box-shadow:0 2px 6px #0000004d;color:var(--text-primary)}.data-channel-labels{display:flex;justify-content:space-between;font-size:.6rem;color:var(--text-secondary);margin-top:2px}.elevation-hover-line.external{background:#fff6;width:1px;box-shadow:none}@media (max-width: 768px){.chat-header{padding:12px 16px;gap:12px}.chat-header h1{font-size:1.1rem}.logo-container{gap:6px;min-width:0;flex-shrink:1}.header-right{gap:8px;flex-shrink:0}.user-avatar{width:28px;height:28px;font-size:.75rem}.user-menu-dropdown{min-width:180px}.ride-detail-card{max-height:95vh}.stat-row .stat-item{flex:1 1 calc(50% - 6px)}.ride-stats-grid{grid-template-columns:repeat(2,1fr)}}@media (max-width: 480px){.chat-header{padding:10px 12px;gap:8px}.chat-header h1{font-size:1rem}.beta-badge{display:none}.user-avatar{width:26px;height:26px;font-size:.7rem}}@media (max-width: 600px){.month-title-row{padding:8px 12px 6px}.month-nav{gap:6px}.month-nav-btn{width:24px;height:24px}.month-nav-btn svg{width:14px;height:14px}.month-title{font-size:.95rem}.month-stats-row{justify-content:center;gap:6px 12px;padding:6px 12px 8px}.month-fitness-stats,.month-ride-stats{flex-wrap:wrap;justify-content:center;gap:6px 12px;font-size:.7rem}.consistency-badges{font-size:.7rem}.month-stats-divider{display:none}.fitness-status-badge{font-size:.65rem;padding:2px 6px}.month-title-bar{flex-direction:column;gap:6px;align-items:flex-start;padding:8px 12px}.month-stats{flex-wrap:wrap;gap:6px 10px;font-size:.7rem}.month-header-row{grid-template-columns:50px repeat(7,1fr);padding:4px}.month-week-row{grid-template-columns:50px repeat(7,1fr);padding:0 4px}.month-header-row .day-header{font-size:.6rem;padding:4px 2px}.month-day-cell{aspect-ratio:1 / 1.4;min-height:44px;padding:3px;margin:1px}.month-day-cell .day-num{font-size:.6rem}.month-day-cell .day-ride-name{font-size:.45rem;margin-top:2px}.month-day-cell .day-stats{font-size:.4rem;margin-top:2px;gap:2px}.month-week-row .week-summary-col{padding:2px;gap:0}.week-total{font-size:.55rem;white-space:nowrap}.week-time{font-size:.5rem;white-space:nowrap}.week-calories{display:none}.week-tss{font-size:.45rem;white-space:nowrap}.week-power,.week-tsb{font-size:.4rem;white-space:nowrap}.calendar-header-row,.calendar-week-row{grid-template-columns:50px repeat(7,1fr)}.week-summary-col{padding:4px}.week-num{font-size:.45rem}.fitness-bar{flex-wrap:wrap;gap:8px 12px;padding:8px 12px;justify-content:flex-start}.fitness-item{min-width:36px;flex:0 0 auto}.fitness-item.status{margin-left:0;flex:0 0 auto}.fitness-label{font-size:.55rem}.fitness-value{font-size:.8rem}.fitness-status{font-size:.65rem;padding:3px 8px}.calendar-summary-bar{flex-wrap:wrap;gap:8px 12px;padding:10px 12px}.calendar-summary-bar .summary-stat{font-size:.8rem}}@media (max-width: 400px){.month-header-row,.month-week-row,.calendar-header-row,.calendar-week-row{grid-template-columns:40px repeat(7,1fr)}.month-day-cell{min-height:28px}.month-day-cell .day-ride-name,.month-day-cell .day-stats{display:none}.week-total{font-size:.5rem}.week-time{font-size:.45rem}.week-tss,.week-power,.week-tsb,.week-calories{display:none}.month-header-row .day-header{font-size:.5rem}.day-header{font-size:.55rem;padding:6px 2px}.month-fitness-stats,.month-ride-stats{font-size:.65rem;gap:4px 8px}.consistency-badges{font-size:.65rem}.month-stats-divider,.fitness-status-badge{display:none}.fitness-bar{gap:6px 10px;padding:6px 10px}.fitness-item{min-width:32px}.fitness-label{font-size:.5rem}.fitness-value{font-size:.7rem}.fitness-status{font-size:.6rem;padding:2px 6px}}.comparison-view{background:var(--bg-secondary);border-radius:8px;border:1px solid var(--border);overflow:hidden}.comparison-header{padding:12px 16px;background:var(--bg-tertiary);border-bottom:1px solid var(--border)}.comparison-title{font-size:1rem;font-weight:600;color:var(--text-primary)}.comparison-table{padding:8px 0}.comparison-row{display:grid;grid-template-columns:120px 1fr 1fr 140px;gap:8px;padding:8px 16px;align-items:center}.comparison-row.header{font-weight:600;font-size:.75rem;color:var(--text-secondary);text-transform:uppercase;letter-spacing:.5px;border-bottom:1px solid var(--border);padding-bottom:12px;margin-bottom:4px}.comparison-row:not(.header):hover{background:var(--bg-tertiary)}.comparison-row.consistency-row{background:linear-gradient(135deg,#6366f11a,#8b5cf60d)}.comparison-row.consistency-row .metric-label{color:#a78bfa;font-weight:600}.comparison-row.consistency-row .period-a,.comparison-row.consistency-row .period-b{color:#c4b5fd;font-weight:600}.comparison-row.consistency-row .delta{color:#c4b5fd}.comparison-row.consistency-row:hover{background:linear-gradient(135deg,#6366f126,#8b5cf61a)}.comparison-cell{font-size:.9rem}.comparison-cell.metric-label{font-weight:500;color:var(--text-primary)}.comparison-cell.period-a,.comparison-cell.period-b{color:var(--text-secondary);text-align:right}.comparison-row.header .comparison-cell.period-a,.comparison-row.header .comparison-cell.period-b{display:flex;flex-direction:column;align-items:flex-end;gap:2px}.period-label{font-weight:600}.period-dates{font-size:.65rem;font-weight:400;text-transform:none;letter-spacing:0;opacity:.8}.comparison-cell.delta{display:flex;align-items:center;gap:6px;font-weight:500}.delta-arrow{font-size:.9rem}.delta-text{font-size:.85rem}.delta-positive{color:var(--success)}.delta-negative{color:var(--error)}.delta-neutral{color:var(--text-secondary)}.comparison-summary{display:flex;align-items:center;justify-content:center;gap:8px;padding:14px 16px;background:var(--bg-tertiary);border-top:1px solid var(--border);font-weight:600}.summary-text{font-size:.9rem}.summary-arrow{font-size:1.1rem}.trend-up{color:var(--success)}.trend-down{color:var(--error)}.trend-neutral{color:var(--text-secondary)}@media (max-width: 600px){.comparison-header{padding:10px 12px}.comparison-title{font-size:.9rem}.comparison-row{grid-template-columns:70px 1fr 1fr 80px;font-size:.75rem;gap:4px;padding:6px 10px}.comparison-row.header{font-size:.65rem;padding-bottom:8px}.comparison-cell{font-size:.75rem}.comparison-cell.metric-label,.comparison-cell.period-a,.comparison-cell.period-b{font-size:.7rem}.period-dates{display:none}.comparison-cell.delta{flex-direction:column;align-items:flex-start;gap:1px}.delta-arrow{font-size:.75rem}.delta-text{font-size:.65rem}.comparison-summary{padding:10px 12px;gap:6px}.summary-text{font-size:.8rem}}@media (max-width: 400px){.comparison-row{grid-template-columns:60px 1fr 1fr 60px;gap:2px;padding:6px 8px}.comparison-cell.metric-label,.comparison-cell.period-a,.comparison-cell.period-b{font-size:.65rem}.comparison-cell.delta{flex-direction:column;align-items:flex-start;gap:0}.delta-arrow{font-size:.7rem}.delta-text{font-size:.55rem;line-height:1.2}.comparison-summary{padding:8px 10px}.summary-text{font-size:.75rem}.summary-arrow{font-size:.9rem}}.compare-tool{padding:16px;max-width:700px;margin:0 auto}.compare-tool-modes{display:flex;gap:4px;margin-bottom:20px;background:var(--bg-tertiary);border-radius:8px;padding:3px}.compare-tool-mode-btn{flex:1;background:none;border:none;border-radius:6px;padding:8px 16px;color:var(--text-secondary);font-size:.85rem;font-weight:500;cursor:pointer;transition:all .15s}.compare-tool-mode-btn.active{background:var(--bg-secondary);color:var(--text-primary);font-weight:600}.compare-tool-mode-btn:hover:not(.active){color:var(--text-primary)}.compare-tool-section-label{font-size:.75rem;font-weight:600;color:var(--text-secondary);text-transform:uppercase;letter-spacing:.05em;margin-bottom:8px}.compare-tool-presets{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:16px}.compare-tool-preset{background:var(--bg-tertiary);border:1px solid var(--border);border-radius:8px;padding:10px 18px;cursor:pointer;color:var(--text-secondary);font-size:.85rem;font-weight:500;transition:all .15s}.compare-tool-preset:hover:not(:disabled){border-color:var(--accent);color:var(--text-primary)}.compare-tool-preset.active{background:#04785726;border-color:var(--accent);color:var(--accent);font-weight:600}.compare-tool-preset:disabled{opacity:.5;cursor:not-allowed}.compare-tool-divider{display:flex;align-items:center;gap:12px;margin:16px 0;color:var(--text-secondary);font-size:.75rem}.compare-tool-divider:before,.compare-tool-divider:after{content:"";flex:1;height:1px;background:var(--border)}.compare-tool-custom{display:flex;flex-direction:column;gap:12px;margin-bottom:16px}.compare-tool-date-group label{display:block;color:var(--text-secondary);font-size:.75rem;font-weight:600;margin-bottom:4px;text-transform:uppercase;letter-spacing:.05em}.compare-tool-date-row{display:flex;align-items:center;gap:8px}.compare-tool-date-sep{color:var(--text-secondary);font-size:.8rem}.compare-tool-date-row input[type=date]{flex:1;background:var(--bg-tertiary);border:1px solid var(--border);border-radius:6px;padding:8px 10px;color:var(--text-primary);font-size:.85rem;font-family:inherit}.compare-tool-date-row input[type=date]:focus{outline:none;border-color:var(--accent)}.compare-tool-ride-search{position:relative;margin-bottom:16px}.compare-tool-ride-search input{width:100%;background:var(--bg-tertiary);border:1px solid var(--border);border-radius:8px;padding:10px 14px;color:var(--text-primary);font-size:.85rem;font-family:inherit;box-sizing:border-box}.compare-tool-ride-search input:focus{outline:none;border-color:var(--accent)}.compare-tool-ride-search input::placeholder{color:var(--text-secondary)}.compare-tool-dropdown{position:absolute;top:calc(100% + 4px);left:0;right:0;z-index:20;background:var(--bg-secondary);border:1px solid var(--border);border-radius:8px;max-height:220px;overflow-y:auto;box-shadow:0 8px 24px #0006}.compare-tool-dropdown-item{padding:10px 14px;cursor:pointer;border-bottom:1px solid var(--border);transition:background .1s}.compare-tool-dropdown-item:last-child{border-bottom:none}.compare-tool-dropdown-item:hover{background:var(--bg-tertiary)}.compare-tool-dd-name{display:block;font-size:.85rem;color:var(--text-primary);font-weight:500}.compare-tool-dd-meta{display:block;font-size:.75rem;color:var(--text-secondary);margin-top:2px}.compare-tool-selected-ride{display:flex;align-items:center;justify-content:space-between;background:var(--bg-tertiary);border:1px solid var(--accent);border-radius:8px;padding:10px 14px;margin-bottom:16px}.compare-tool-selected-name{font-size:.85rem;color:var(--text-primary);font-weight:500}.compare-tool-selected-meta{font-size:.75rem;color:var(--text-secondary);display:block;margin-top:2px}.compare-tool-clear{background:none;border:none;color:var(--text-secondary);font-size:1.2rem;cursor:pointer;padding:0 4px;line-height:1}.compare-tool-clear:hover{color:var(--text-primary)}.compare-tool-btn{background:var(--accent);color:#fff;border:none;border-radius:8px;padding:12px 24px;font-weight:600;font-size:.9rem;cursor:pointer;width:100%;transition:filter .15s}.compare-tool-btn:disabled{opacity:.4;cursor:not-allowed}.compare-tool-btn:hover:not(:disabled){filter:brightness(1.15)}.compare-tool-loading{display:flex;justify-content:center;padding:32px 0}.compare-tool-spinner{width:28px;height:28px;border:2px solid var(--border);border-top-color:var(--accent);border-radius:50%;animation:spin .8s linear infinite}.compare-tool-error{color:#ef4444;text-align:center;padding:12px;font-size:.85rem}.compare-tool-result{margin-top:24px}@media (max-width: 600px){.compare-tool{padding:12px}.compare-tool-presets{flex-direction:column}.compare-tool-date-row{flex-direction:column;gap:4px}.compare-tool-date-sep{display:none}}.stats-view{background:var(--bg-secondary);border-radius:8px;border:1px solid var(--border);padding:16px}.stats-date-range{font-size:.85rem;color:var(--text-secondary);text-align:center;padding-bottom:12px;margin-bottom:12px;border-bottom:1px solid var(--border)}[data-tooltip]{position:relative;cursor:help}[data-tooltip]:after{content:attr(data-tooltip);position:absolute;top:100%;left:50%;transform:translate(-50%);background:var(--bg-primary);color:var(--text-primary);padding:10px 14px;border-radius:6px;font-size:.8rem;font-weight:400;width:max-content;max-width:300px;text-align:left;line-height:1.5;z-index:9999;opacity:0;visibility:hidden;transition:opacity .15s,visibility .15s;pointer-events:none;box-shadow:0 4px 16px #00000080;border:1px solid var(--border);margin-top:8px}[data-tooltip]:hover:after{opacity:1;visibility:visible}.fitness-bar,.fitness-item{overflow:visible}.stats-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:12px}.stat-card{display:flex;align-items:center;justify-content:center;padding:20px 16px;background:var(--bg-tertiary);border-radius:8px;border:1px solid var(--border);transition:transform .15s ease,box-shadow .15s ease}.stat-card:hover{transform:translateY(-2px);box-shadow:0 4px 12px #0000004d}.stat-content{display:flex;flex-direction:column;align-items:center;gap:4px;text-align:center}.stat-value{font-size:1.25rem;font-weight:600;color:var(--text-primary)}.stat-label{font-size:.75rem;color:var(--text-secondary);text-transform:uppercase;letter-spacing:.5px}.stat-source{font-size:.65rem;color:var(--text-muted, #666);margin-top:2px}@media (max-width: 600px){.stats-grid{grid-template-columns:repeat(2,1fr)}.stat-card{padding:12px;gap:8px}.stat-icon{font-size:1.2rem;width:32px;height:32px}.stat-value{font-size:1rem}.stat-label{font-size:.65rem}.stat-source{font-size:.55rem}}.home{min-height:100vh;background:var(--bg-primary)}.home-nav{position:fixed;top:0;left:0;right:0;display:flex;align-items:center;justify-content:space-between;padding:16px 32px;background:#0d0d0de6;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border-bottom:1px solid var(--border);z-index:100}.nav-brand{display:flex;align-items:center;gap:8px;cursor:pointer;flex:1}.nav-brand-logo{height:28px;width:auto}.nav-right{display:flex;align-items:center;gap:8px}.nav-link{background:none;border:none;color:var(--text-secondary);font-size:.95rem;padding:8px 16px;cursor:pointer;transition:color .2s}.nav-link:hover{color:var(--text-primary)}.nav-login{background:var(--accent);color:#fff;border-radius:6px;margin-left:8px}.nav-login:hover{background:var(--accent-hover);color:#fff}.home{scroll-behavior:smooth}.home section[id]{scroll-margin-top:70px}.hero{min-height:100vh;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;padding:100px 20px 60px;background:linear-gradient(180deg,var(--bg-primary) 0%,var(--bg-secondary) 100%)}.hero-content{max-width:600px}.hero-logo{max-width:360px;width:100%;height:auto;margin-bottom:24px}.home .hero-subtitle{font-size:1.25rem;color:var(--text-secondary);margin-bottom:40px;line-height:1.6;max-width:none}.hero-cta{display:flex;flex-direction:column;gap:12px;align-items:center;margin-bottom:16px}.cta-button-wrapper{position:relative;display:flex;flex-direction:column;align-items:center}.last-used-badge{position:absolute;top:-10px;right:-10px;background:var(--accent);color:#fff;font-size:.65rem;font-weight:600;padding:3px 8px;border-radius:10px;text-transform:uppercase;letter-spacing:.5px;z-index:1}.cta-button{display:inline-flex;align-items:center;justify-content:center;gap:10px;padding:14px 32px;font-size:1rem;font-weight:600;border:none;border-radius:8px;cursor:pointer;transition:all .2s;min-width:240px}.cta-button.primary{background:var(--accent);color:#fff}.cta-button.primary:hover{background:var(--accent-hover);transform:translateY(-1px)}.cta-button.secondary{background:var(--bg-tertiary);color:var(--text-secondary);border:1px solid var(--border)}.cta-button.secondary:hover{border-color:var(--accent);color:var(--text-primary)}.cta-button.small{padding:10px 20px;font-size:.9rem;min-width:auto}.hero-note{font-size:.9rem;color:var(--text-secondary)}.coming-soon-hero{min-height:80vh}.coming-soon-badge{display:inline-block;padding:12px 32px;font-size:1.5rem;font-weight:600;color:var(--accent);border:2px solid var(--accent);border-radius:8px;margin:40px 0 24px;letter-spacing:2px;text-transform:uppercase}.coming-soon-text{font-size:1.1rem;color:var(--text-secondary);margin-bottom:24px;line-height:1.6}.coming-soon-notify{font-size:1rem;color:var(--text-secondary);line-height:1.8}.coming-soon-notify a{color:var(--accent);text-decoration:none}.coming-soon-notify a:hover{text-decoration:underline}.section{padding:80px 20px;max-width:800px;margin:0 auto}.section h2{font-size:2rem;font-weight:600;color:var(--text-primary);margin-bottom:24px;text-align:center}.section-lead{font-size:1.25rem;color:var(--text-primary);text-align:center;margin-bottom:16px}.section p{color:var(--text-secondary);text-align:center;margin-bottom:12px;line-height:1.7}.section .emphasis{color:var(--accent);font-weight:500;font-size:1.1rem;margin-top:24px}.value-prop-section{padding:80px 20px}.value-prop-section.alt-bg{background:var(--bg-secondary)}.value-prop-content{display:flex;align-items:center;justify-content:center;gap:60px;max-width:1100px;margin:0 auto}.value-prop-content.reverse{flex-direction:row-reverse}.value-prop-text{flex:1;max-width:550px}.value-prop-label{display:inline-block;font-size:.8rem;font-weight:600;text-transform:uppercase;letter-spacing:1.5px;color:var(--accent);margin-bottom:12px}.value-prop-text h2{text-align:left;margin-bottom:20px;font-size:2rem;line-height:1.2}.value-prop-section p,.value-prop-lead{font-size:1.2rem;color:var(--text-primary);text-align:left;margin-bottom:24px;line-height:1.6}.value-prop-details{margin-bottom:24px}.value-detail{margin-bottom:20px;padding-left:16px;border-left:3px solid var(--accent)}.value-detail h4{font-size:1.1rem;font-weight:600;color:var(--text-primary);margin-bottom:8px}.value-detail p{text-align:left;color:var(--text-secondary);font-size:1rem;line-height:1.6;margin:0}.value-prop-why{font-size:1rem;color:var(--text-secondary);text-align:left;line-height:1.7;padding:16px;background:var(--bg-tertiary);border-radius:8px;margin-top:20px}.query-examples{display:flex;flex-wrap:wrap;gap:12px;margin-bottom:24px}.query-example{background:var(--bg-tertiary);border:1px solid var(--border);padding:10px 16px;border-radius:20px;font-size:.95rem;color:var(--text-primary);font-family:inherit}.comparison-examples .query-example{background:linear-gradient(135deg,var(--bg-tertiary),var(--bg-secondary));border-color:var(--accent)}.value-prop-image{flex:1;max-width:450px}.value-prop-image .screenshot{width:100%;border-radius:12px;box-shadow:0 8px 32px #0006}.screenshot-clickable{cursor:pointer;transition:transform .2s,box-shadow .2s}.screenshot-clickable:hover{transform:scale(1.02);box-shadow:0 12px 40px #00000080}.screenshot-modal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#000000d9;z-index:9999;display:flex;align-items:center;justify-content:center;padding:24px;animation:fadeIn .15s ease}.screenshot-modal{position:relative;max-width:95vw;max-height:95vh}.screenshot-modal-close{position:absolute;top:-40px;right:0;background:none;border:none;color:#fff;cursor:pointer;opacity:.7;transition:opacity .15s;padding:4px}.screenshot-modal-close:hover{opacity:1}.screenshot-modal-img{max-width:95vw;max-height:90vh;border-radius:8px;box-shadow:0 16px 64px #00000080}@media (max-width: 900px){.value-prop-content,.value-prop-content.reverse{flex-direction:column;gap:40px}.value-prop-text{max-width:100%}.value-prop-text h2,.value-prop-lead,.value-detail p,.value-prop-why{text-align:center}.value-detail{border-left:none;padding-left:0;text-align:center}.query-examples{justify-content:center}.value-prop-image{max-width:100%}}.problem-section{background:var(--bg-secondary);padding:80px 20px;max-width:100%}.problem-content{display:flex;align-items:center;justify-content:center;gap:60px;max-width:1000px;margin:0 auto}.problem-text{flex:1;max-width:500px}.problem-text h2{text-align:left}.problem-screenshot{flex:1;max-width:450px}.problem-screenshot .screenshot{width:100%;border-radius:12px;box-shadow:0 8px 32px #0006}.problem-section .section-intro{text-align:left;margin-bottom:24px}.problem-section .problem-list{max-width:500px;margin:0 0 32px}.problem-list p{font-size:1.1rem;margin-bottom:12px;text-align:left;line-height:1.6}.problem-list .strike{text-decoration:line-through;color:var(--text-secondary)}.problem-section .solution{font-size:1.5rem;color:var(--text-primary);font-weight:500;margin-bottom:8px;text-align:left}.problem-section .solution-answer{font-size:1.25rem;color:var(--accent);font-weight:600;text-align:left}@media (max-width: 768px){.problem-content{flex-direction:column;gap:40px}.problem-text,.problem-text h2,.problem-section .solution,.problem-section .solution-answer{text-align:center}.problem-section .problem-list{margin:0 auto 32px}.problem-screenshot{max-width:100%}}.how-section .steps{list-style:none;max-width:400px;margin:0 auto 24px;counter-reset:step}.how-section .steps li{position:relative;padding-left:48px;margin-bottom:20px;font-size:1.1rem;color:var(--text-primary);text-align:left;counter-increment:step}.how-section .steps li:before{content:counter(step);position:absolute;left:0;width:32px;height:32px;background:var(--accent);color:#fff;border-radius:50%;display:flex;align-items:center;justify-content:center;font-weight:600;font-size:.9rem}.steps-note{color:var(--text-secondary);font-style:italic}.features-section{background:var(--bg-secondary);padding:80px 20px;max-width:100%}.features-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:32px;max-width:800px;margin:0 auto}.feature{background:var(--bg-tertiary);padding:24px;border-radius:12px}.feature h3{font-size:1.1rem;font-weight:600;color:var(--accent);margin-bottom:12px}.feature p{font-size:.95rem;color:var(--text-secondary);text-align:left;margin:0;line-height:1.6}.pricing-section{text-align:center}.price-card{background:var(--bg-secondary);border:2px solid var(--accent);border-radius:16px;padding:48px 32px;max-width:400px;margin:0 auto}.price{font-size:4rem;font-weight:700;color:var(--text-primary);line-height:1;margin-bottom:8px}.price span{font-size:1.5rem;font-weight:400;color:var(--text-secondary)}.price-tagline{color:var(--text-secondary);margin-bottom:24px}.price-comparisons{list-style:none;margin-bottom:32px}.price-comparisons li{color:var(--text-secondary);margin-bottom:8px;font-size:1rem}.audience-section{background:var(--bg-secondary);padding:80px 20px;max-width:100%}.audience-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:48px;max-width:700px;margin:0 auto 32px}.audience-for h3,.audience-not h3{font-size:1.1rem;font-weight:600;margin-bottom:16px;text-align:left}.audience-for h3{color:var(--accent)}.audience-not h3{color:var(--text-secondary)}.audience-for ul,.audience-not ul{list-style:none}.audience-for li,.audience-not li{padding-left:24px;position:relative;margin-bottom:12px;color:var(--text-secondary);text-align:left}.audience-for li:before{content:"✓";position:absolute;left:0;color:var(--accent)}.audience-not li:before{content:"×";position:absolute;left:0;color:var(--text-secondary)}.audience-conclusion{font-size:1.25rem;color:var(--text-primary);font-weight:500}.origin-section{padding:80px 20px}.origin-story{max-width:600px;margin:0 auto}.origin-story p{font-size:1.1rem;line-height:1.8;margin-bottom:20px}.origin-tagline{font-size:1.5rem!important;color:var(--accent)!important;font-weight:600;margin-top:32px!important}.origin-link{display:inline-block;margin-top:16px;color:var(--accent);text-decoration:none;font-weight:500}.origin-link:hover{text-decoration:underline}.hero-screenshot{margin-top:48px;max-width:480px;margin-left:auto;margin-right:auto;padding:0 20px}.hero-screenshot .screenshot{width:100%;border-radius:12px;box-shadow:0 12px 40px #0006;border:1px solid var(--border)}.section-content-with-image{display:grid;grid-template-columns:1fr 1fr;gap:60px;max-width:1000px;margin:0 auto;align-items:center}.section-text,.section-text h2{text-align:left}.section-image .screenshot{width:100%;border-radius:12px;box-shadow:0 10px 40px #0006;border:1px solid var(--border)}.section-intro{font-size:1.1rem;color:var(--text-secondary);margin-bottom:32px;max-width:600px;margin-left:auto;margin-right:auto}.big-question{font-size:1.75rem;font-weight:700;color:var(--accent);margin:24px 0}.muted{color:var(--text-tertiary)}.steps-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:32px;max-width:1000px;margin:0 auto}.step{text-align:center;padding:24px}.step-number{width:48px;height:48px;background:var(--accent);color:#fff;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:1.25rem;font-weight:700;margin:0 auto 16px}.step h3{font-size:1.1rem;font-weight:600;color:var(--text-primary);margin-bottom:12px}.step p{font-size:.95rem;color:var(--text-secondary);line-height:1.6}.feature-icon{font-size:2rem;margin-bottom:12px}.feature-showcase{display:grid;grid-template-columns:repeat(2,1fr);gap:40px;max-width:900px;margin:60px auto 0}.showcase-item{text-align:center}.showcase-item .screenshot{width:100%;border-radius:12px;box-shadow:0 10px 40px #0006;border:1px solid var(--border);margin-bottom:16px}.showcase-caption{color:var(--text-secondary);font-size:.9rem}.price-features{list-style:none;margin-bottom:24px;text-align:left;max-width:280px;margin-left:auto;margin-right:auto}.price-features li{padding-left:24px;position:relative;margin-bottom:10px;color:var(--text-primary);font-size:.95rem}.price-features li:before{content:"✓";position:absolute;left:0;color:var(--accent);font-weight:700}.price-note{margin-top:12px;font-size:.85rem;color:var(--text-secondary)}.final-cta-section{background:linear-gradient(180deg,var(--bg-primary) 0%,var(--bg-secondary) 100%);padding:80px 20px;text-align:center}.final-cta-section h2{font-size:2rem;margin-bottom:16px}.final-cta-section p{color:var(--text-secondary);margin-bottom:32px;font-size:1.1rem}.final-cta-section .hero-cta{flex-direction:row;justify-content:center}@media (max-width: 768px){.section-content-with-image{grid-template-columns:1fr;gap:40px}.section-text,.section-text h2{text-align:center}.steps-grid{grid-template-columns:1fr;max-width:400px}.feature-showcase{grid-template-columns:1fr}.final-cta-section .hero-cta{flex-direction:column}}.home-footer{background:var(--bg-secondary);padding:60px 20px;text-align:center;border-top:1px solid var(--border)}.footer-brand{margin-bottom:24px}.footer-logo-img{height:64px;width:auto}.footer-tagline{display:block;font-size:1rem;color:var(--text-secondary);margin-top:4px}.footer-cta{display:flex;justify-content:center;gap:12px;margin-bottom:20px}.footer-pricing{color:var(--text-secondary);font-size:.9rem;margin-bottom:12px}.footer-contact{color:var(--text-secondary);font-size:.9rem;margin-bottom:24px}.footer-contact a{color:var(--accent);text-decoration:none}.footer-contact a:hover{text-decoration:underline}.footer-login-link{background:none;border:none;color:var(--text-secondary);font-size:.9rem;cursor:pointer;text-decoration:underline}.footer-login-link:hover{color:var(--text-primary)}.footer-legal{margin-top:20px}.footer-legal a{color:var(--text-secondary);font-size:.85rem;text-decoration:none}.footer-legal a:hover{color:var(--text-primary);text-decoration:underline}.footer-legal-sep{margin:0 8px;color:var(--text-secondary)}.legal-section{max-width:800px;margin:0 auto;padding:60px 20px}.legal-section h1{font-size:2.5rem;margin-bottom:8px;color:var(--accent)}.legal-updated{color:var(--text-secondary);font-size:.9rem;margin-bottom:40px}.legal-section h2{font-size:1.5rem;margin-top:40px;margin-bottom:16px;color:var(--text-primary)}.legal-section h3{font-size:1.1rem;margin-top:24px;margin-bottom:12px;color:var(--text-primary)}.legal-section p{color:var(--text-secondary);margin-bottom:16px;line-height:1.7}.legal-section ul{color:var(--text-secondary);margin-left:24px;margin-bottom:16px}.legal-section li{margin-bottom:8px;line-height:1.6}.legal-section a{color:var(--accent);text-decoration:none}.legal-section a:hover{text-decoration:underline}.changelog-entry{border-left:2px solid var(--accent);padding-left:20px;margin-bottom:28px}.changelog-date{color:var(--accent);font-size:.95rem;font-weight:600;margin:0 0 8px;font-family:monospace}.changelog-items{margin:0;padding:0;list-style:none}.changelog-items li{color:var(--text-secondary);line-height:1.6;padding:3px 0}.changelog-items li:before{content:"—";margin-right:8px;color:var(--text-muted)}.docs-card{background:var(--bg-secondary);border:1px solid var(--border);border-radius:12px;padding:28px 32px;margin-bottom:24px}.docs-card h2{margin-top:0;font-size:1.3rem}.docs-card h3{font-size:1rem;color:var(--text-primary)}.docs-card ol{color:var(--text-secondary);margin-left:20px;margin-bottom:16px;line-height:1.7}.docs-card ol li{margin-bottom:6px}.docs-note{background:#04785714;border-left:3px solid var(--accent);padding:12px 16px;border-radius:0 8px 8px 0;margin-top:16px;color:var(--text-secondary);line-height:1.6;font-size:.9rem}.docs-examples{list-style:none;margin-left:0;padding:0}.docs-examples li{color:var(--text-secondary);padding:6px 12px;background:var(--bg-tertiary);border-radius:6px;margin-bottom:6px;font-family:monospace;font-size:.9rem}.docs-card ul{color:var(--text-secondary);margin-left:20px;margin-bottom:16px;line-height:1.7}.docs-card ul li{margin-bottom:6px}.docs-card p{color:var(--text-secondary);line-height:1.7;margin-bottom:12px}.docs-card p:last-child{margin-bottom:0}.docs-layout{display:flex;gap:40px;min-height:60vh}.docs-sidebar{width:220px;flex-shrink:0;position:sticky;top:80px;align-self:flex-start;max-height:calc(100vh - 100px);overflow-y:auto;display:flex;flex-direction:column;gap:2px}.docs-sidebar-link{display:block;padding:8px 14px;color:var(--text-secondary);text-decoration:none;font-size:.9rem;border-radius:8px;transition:all .15s}.docs-sidebar-link:hover{color:var(--text-primary);background:var(--bg-tertiary)}.docs-sidebar-link.active{color:var(--accent);background:#0478571a;font-weight:600}.docs-content{flex:1;max-width:800px;min-width:0}.docs-content h1{font-size:1.8rem;margin-top:0;margin-bottom:24px}.docs-breadcrumb{font-size:.85rem;color:var(--text-secondary);margin-bottom:16px}.docs-breadcrumb a{color:var(--accent);text-decoration:none}.docs-breadcrumb a:hover{text-decoration:underline}.docs-landing-intro{color:var(--text-secondary);font-size:1.1rem;margin-bottom:28px;line-height:1.6}.docs-landing-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:12px;margin-bottom:24px}.docs-landing-card{display:block;background:var(--bg-secondary);border:1px solid var(--border);border-radius:10px;padding:20px 22px;text-decoration:none;color:var(--text-primary);transition:all .15s}.docs-landing-card:hover{border-color:var(--accent);background:var(--bg-tertiary)}.docs-landing-card h3{margin:0;font-size:1rem;font-weight:500}.docs-support-footer{margin-top:32px;padding-top:20px;border-top:1px solid var(--border)}.docs-support-footer p{color:var(--text-secondary);font-size:.9rem}.docs-support-footer a{color:var(--accent);text-decoration:none}.docs-support-footer a:hover{text-decoration:underline}@media (max-width: 768px){.docs-layout{flex-direction:column;gap:0}.docs-sidebar{position:static;width:100%;flex-direction:row;overflow-x:auto;overflow-y:hidden;max-height:none;gap:4px;padding-bottom:16px;margin-bottom:16px;border-bottom:1px solid var(--border);flex-wrap:nowrap}.docs-sidebar-link{white-space:nowrap;padding:6px 12px;font-size:.85rem}.docs-content h1{font-size:1.4rem}.docs-landing-grid{grid-template-columns:1fr}.docs-card{padding:20px}}.support-intro{font-size:1.1rem;color:var(--text-secondary);margin-bottom:32px}.support-form{max-width:500px}.support-form .form-group{margin-bottom:20px}.support-form label{display:block;color:var(--text-primary);margin-bottom:8px;font-weight:500}.support-form input,.support-form select,.support-form textarea{width:100%;padding:12px;background:var(--bg-tertiary);border:1px solid var(--border);border-radius:8px;color:var(--text-primary);font-size:1rem;font-family:inherit}.support-form input:focus,.support-form select:focus,.support-form textarea:focus{outline:none;border-color:var(--accent)}.support-form textarea{resize:vertical;min-height:120px}.support-form .form-error{color:var(--error);margin-bottom:16px}.support-form .cta-button{margin-top:8px}.support-success{text-align:center;padding:40px 0}.support-success h2{color:var(--accent);margin-bottom:16px}.support-success p{margin-bottom:24px}.support-direct{margin-top:40px;padding-top:24px;border-top:1px solid var(--border);color:var(--text-secondary)}.support-direct a{color:var(--accent)}@media (max-width: 768px){.home-nav{padding:12px 16px}.nav-link{padding:8px 12px;font-size:.85rem}.nav-brand .beta-badge{display:none}.hero-logo{max-width:300px}.hero-subtitle{font-size:1.1rem}.hero-cta{align-items:center}.section{padding:60px 20px}.section h2{font-size:1.75rem}.features-grid{grid-template-columns:1fr;gap:20px}.audience-grid{grid-template-columns:1fr;gap:32px}.price{font-size:3rem}.cta-button{min-width:200px}.footer-cta{flex-direction:column;align-items:center}}@media (max-width: 480px){.hero{padding:60px 16px}.hero-logo{max-width:260px}.problem-list p{font-size:1.1rem}.problem-section .solution{font-size:1.25rem}}.subscription-gate{min-height:100vh;display:flex;justify-content:center;align-items:center;background:var(--bg-primary);padding:20px}.subscription-gate-content{max-width:400px;width:100%;text-align:center;padding:40px;background:var(--bg-secondary);border-radius:16px;border:1px solid var(--border)}.gate-logo{margin-bottom:8px}.gate-logo-img{height:40px;width:auto}.subscription-gate-content h2{font-size:1.5rem;font-weight:600;color:var(--text-primary);margin-bottom:8px}.gate-subtitle{color:var(--text-secondary);margin-bottom:32px}.gate-pricing{margin-bottom:24px}.gate-pricing .price-display{margin-bottom:4px}.gate-pricing .price-note{margin-bottom:0}.gate-subscribe-button{width:100%;padding:16px 24px;font-size:1.1rem;font-weight:600;background:var(--accent);color:#fff;border:none;border-radius:8px;cursor:pointer;transition:background-color .2s}.gate-subscribe-button:hover:not(:disabled){background:var(--accent-hover)}.gate-subscribe-button:disabled{opacity:.6;cursor:not-allowed}.gate-beta-section{margin-top:32px;padding-top:24px;border-top:1px solid var(--border)}.gate-beta-section .beta-code-label{margin-bottom:12px}.gate-beta-section .beta-code-input{justify-content:center}.gate-beta-section .beta-error{margin-top:8px}.beta-email-input{margin-bottom:8px;display:flex;justify-content:center}.beta-email-input input{width:100%;max-width:280px;padding:8px 12px;background:var(--bg-tertiary);border:1px solid var(--border);border-radius:6px;color:var(--text-primary);font-size:.9rem}.beta-email-input input:focus{outline:none;border-color:var(--accent)}.gate-link-button{background:none;border:none;color:var(--accent);cursor:pointer;font-size:inherit;text-decoration:underline;padding:0 4px}.gate-link-button:hover{color:var(--accent-hover)}.gate-logout-button{margin-top:24px;padding:8px 16px;background:transparent;color:var(--text-secondary);border:none;font-size:.9rem;cursor:pointer;transition:color .2s}.gate-logout-button:hover{color:var(--text-primary)}.price-comparison{color:var(--text-secondary);font-size:.85rem;margin-top:8px;font-style:italic}.empty-state{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:60px 20px;text-align:center}.empty-state h2{font-size:1.5rem;font-weight:600;color:var(--text-primary);margin-bottom:12px}.empty-state p{color:var(--text-secondary);margin-bottom:24px;max-width:400px}.sync-initial-button{display:flex;align-items:center;gap:10px;padding:16px 32px;font-size:1.1rem;font-weight:600;background:var(--accent);color:#fff;border:none;border-radius:8px;cursor:pointer;transition:background-color .2s}.sync-initial-button:hover:not(:disabled){background:var(--accent-hover)}.sync-initial-button:disabled{opacity:.8;cursor:wait}.sync-initial-button .spinner.small{width:20px;height:20px;border-width:2px}.sync-initial-button.strava{background:var(--strava-orange)}.sync-initial-button.strava:hover:not(:disabled){background:#e04400}.sync-initial-button.wahoo{background:var(--wahoo-blue)}.sync-initial-button.wahoo:hover:not(:disabled){background:#0090c8}.welcome-empty-state{max-width:600px;margin:0 auto;padding:40px 20px}.welcome-header{text-align:center;margin-bottom:32px}.welcome-header h2{font-size:1.8rem;font-weight:600;color:var(--text-primary);margin-bottom:8px}.welcome-tagline{color:var(--text-secondary);font-size:1.1rem}.welcome-sync-section{text-align:center;padding:24px;background:var(--bg-secondary);border-radius:12px;margin-bottom:32px}.welcome-sync-section p{color:var(--text-secondary);margin-bottom:16px}.welcome-features{display:flex;flex-direction:column;gap:20px;margin-bottom:32px}.welcome-feature{display:flex;gap:16px;padding:16px;background:var(--bg-secondary);border-radius:10px;border:1px solid var(--border)}.feature-icon{flex-shrink:0;width:48px;height:48px;display:flex;align-items:center;justify-content:center;background:#f973161a;border-radius:10px}.feature-content h3{font-size:1rem;font-weight:600;color:var(--text-primary);margin-bottom:4px}.feature-content p{font-size:.9rem;color:var(--text-secondary);line-height:1.4}.welcome-motivation{text-align:center;padding:20px;border-top:1px solid var(--border)}.welcome-motivation p{font-style:italic;color:var(--text-secondary);font-size:.95rem}.empty-month-summary{max-width:500px;margin:0 auto;padding:30px 20px}.empty-month-header{text-align:center;margin-bottom:24px}.empty-month-header h2{font-size:1.4rem;font-weight:600;color:var(--text-primary);margin-bottom:8px}.empty-month-header p{color:var(--text-secondary);font-size:1rem}.rcs-summary-card{background:linear-gradient(135deg,#8b5cf626,#8b5cf60d);border:1px solid rgba(139,92,246,.3);border-radius:12px;padding:24px;margin-bottom:20px}.rcs-scores-row{display:flex;justify-content:center;gap:48px;margin-bottom:16px}.rcs-score-item{display:flex;flex-direction:column;align-items:center;text-align:center}.rcs-score-item .rcs-label{font-size:.8rem;color:var(--text-secondary);margin-bottom:4px}.rcs-score-item .rcs-value{font-size:2.5rem;font-weight:700;color:#8b5cf6;line-height:1}.rcs-score-item .rcs-sublabel{font-size:.75rem;color:#8b5cf6;font-weight:600;margin-top:4px}.rcs-summary-card .rcs-description{text-align:center;color:var(--text-secondary);font-size:.9rem;margin:0}.training-advice-card{background:linear-gradient(135deg,#f973161f,#f973160a);border:1px solid rgba(249,115,22,.3);border-radius:12px;padding:20px 24px;margin-bottom:20px}.training-advice-card h3{font-size:1rem;font-weight:600;color:var(--accent);margin-bottom:12px;text-align:center}.training-advice-card .advice-primary{font-size:1.1rem;font-weight:500;color:var(--text-primary);text-align:center;margin-bottom:16px;line-height:1.4}.training-advice-card .advice-items{list-style:none;padding:0;margin:0 0 12px}.training-advice-card .advice-items li{position:relative;padding-left:20px;margin-bottom:8px;color:var(--text-secondary);font-size:.9rem;line-height:1.4}.training-advice-card .advice-items li:before{content:"→";position:absolute;left:0;color:var(--accent)}.training-advice-card .advice-form-status{text-align:center;font-size:.85rem;color:var(--text-secondary);margin:0;padding-top:12px;border-top:1px solid rgba(249,115,22,.2)}.training-advice-card .form-maintain{color:#22c55e;font-weight:500}.training-advice-card .form-increase{color:#f59e0b;font-weight:500}.training-advice-card .form-recover{color:#ef4444;font-weight:500}.training-advice-card .form-neutral{color:var(--text-primary);font-weight:500}.power-user-hero{display:flex;align-items:center;gap:12px;padding:12px 16px;background:linear-gradient(135deg,#22c55e1f,#22c55e0a);border:1px solid rgba(34,197,94,.3);border-radius:10px;margin-bottom:16px}.power-hero-icon{flex-shrink:0;width:40px;height:40px;display:flex;align-items:center;justify-content:center;background:#22c55e26;border-radius:8px;color:#22c55e}.power-hero-content{display:flex;flex-direction:column;gap:2px}.power-hero-title{font-size:.9rem;font-weight:600;color:#22c55e}.power-hero-text{font-size:.8rem;color:var(--text-secondary)}.overall-stats-card{background:var(--bg-secondary);border:1px solid var(--border);border-radius:12px;padding:20px;margin-bottom:20px}.overall-stats-card h3{font-size:.9rem;font-weight:600;color:var(--text-secondary);margin-bottom:16px;text-align:center}.overall-stats-card .stats-grid{display:flex;justify-content:center;gap:48px}.overall-stats-card .stat-item{display:flex;flex-direction:column;align-items:center}.overall-stats-card .stat-value{font-size:1.8rem;font-weight:700;color:var(--text-primary)}.overall-stats-card .stat-label{font-size:.8rem;color:var(--text-secondary)}.last-ride-nav{text-align:center;padding:16px;background:var(--bg-secondary);border-radius:10px;margin-bottom:20px}.last-ride-nav p{color:var(--text-secondary);font-size:.9rem;margin-bottom:12px}.nav-to-last-ride{background:var(--accent);color:#fff;border:none;padding:10px 20px;border-radius:6px;font-size:.9rem;font-weight:500;cursor:pointer;transition:background .2s}.nav-to-last-ride:hover{background:var(--accent-hover)}.empty-month-motivation{text-align:center;padding-top:16px;border-top:1px solid var(--border)}.empty-month-motivation p{color:var(--text-secondary);font-size:.9rem;font-style:italic}.provider-label{display:block;color:var(--text-secondary);font-size:.9rem;margin-bottom:10px}.provider-select{display:flex;gap:12px}.provider-option{flex:1;display:flex;align-items:center;justify-content:center;gap:8px;padding:12px 16px;background:var(--bg-tertiary);border:2px solid var(--border);border-radius:8px;color:var(--text-secondary);font-size:.95rem;cursor:pointer;transition:all .2s}.provider-option:hover:not(:disabled){border-color:var(--text-secondary);color:var(--text-primary)}.provider-option.selected{border-color:var(--accent);background:#0478571a;color:var(--text-primary)}.provider-option:disabled{opacity:.6;cursor:not-allowed}.provider-option svg{flex-shrink:0}.email-signup-link{background:none;border:none;color:var(--text-secondary);font-size:.85rem;cursor:pointer;margin-top:16px;opacity:.7;transition:opacity .2s}.email-signup-link:hover{opacity:1;text-decoration:underline}.onboarding-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background:var(--bg-primary);display:flex;justify-content:center;align-items:center;z-index:1000;padding:20px}.onboarding-modal{width:100%;max-width:500px;text-align:center}.onboarding-header h1{font-size:2rem;font-weight:600;color:var(--text-primary);margin-bottom:8px}.onboarding-subtitle{color:var(--text-secondary);font-size:1.1rem;margin-bottom:32px}.onboarding-content{background:var(--bg-secondary);border-radius:12px;border:1px solid var(--border);padding:24px}.onboarding-prompt{color:var(--text-secondary);font-size:.9rem;margin-bottom:16px}.onboarding-queries{display:flex;flex-direction:column;gap:12px}.onboarding-query-button{display:flex;flex-direction:column;align-items:flex-start;gap:4px;padding:16px 20px;background:var(--bg-tertiary);border:1px solid var(--border);border-radius:8px;cursor:pointer;transition:all .2s;text-align:left}.onboarding-query-button:hover:not(:disabled){background:var(--bg-primary);border-color:var(--accent)}.onboarding-query-button:disabled{opacity:.6;cursor:not-allowed}.onboarding-query-button .query-text{color:var(--text-primary);font-size:1rem;font-weight:500}.onboarding-query-button .query-description{color:var(--text-secondary);font-size:.85rem}.onboarding-footer{margin-top:24px;padding-top:16px;border-top:1px solid var(--border)}.onboarding-skip{background:none;border:none;color:var(--text-secondary);font-size:.9rem;cursor:pointer;padding:8px 16px;transition:color .2s}.onboarding-skip:hover:not(:disabled){color:var(--text-primary)}.onboarding-skip:disabled{opacity:.6;cursor:not-allowed}@media (max-width: 480px){.onboarding-header h1{font-size:1.5rem}.onboarding-subtitle{font-size:1rem}.onboarding-content{padding:16px}.onboarding-query-button{padding:12px 16px}}.locked-account-container{min-height:100vh;display:flex;justify-content:center;align-items:center;background:var(--bg-primary);padding:20px}.locked-account-box{text-align:center;max-width:400px;padding:40px;background:var(--bg-secondary);border-radius:12px;border:1px solid var(--border)}.locked-icon{color:var(--error);margin-bottom:20px}.locked-account-box h2{color:var(--text-primary);margin-bottom:12px}.locked-account-box p{color:var(--text-secondary);margin-bottom:8px}.locked-account-box .contact-info{margin-top:16px;margin-bottom:24px}.locked-account-box .contact-info a{color:var(--accent)}.locked-account-box .logout-button{padding:10px 24px;background:var(--bg-tertiary);color:var(--text-primary);border:1px solid var(--border);border-radius:6px;cursor:pointer;transition:background-color .2s}.locked-account-box .logout-button:hover{background:var(--bg-primary)}.admin-button{padding:6px 12px;background:var(--bg-tertiary);color:var(--text-secondary);border:1px solid var(--border);border-radius:6px;font-size:.85rem;cursor:pointer;transition:all .2s}.admin-button:hover{background:var(--bg-primary);color:var(--text-primary);border-color:var(--accent)}.admin-page{min-height:100vh;background:var(--bg-primary);color:var(--text-primary)}.admin-page-header{display:flex;align-items:center;gap:16px;padding:16px 24px;border-bottom:1px solid var(--border);background:var(--bg-secondary);position:sticky;top:0;z-index:10}.admin-page-header h1{margin:0;font-size:1.25rem;font-weight:600}.admin-back-button{display:flex;align-items:center;gap:6px;padding:6px 12px;background:none;border:1px solid var(--border);border-radius:6px;color:var(--text-secondary);cursor:pointer;font-size:.8rem;transition:all .15s}.admin-back-button:hover{background:var(--bg-tertiary);color:var(--text-primary)}.admin-page-content{max-width:1100px;margin:0 auto;padding:24px}.admin-section{background:var(--bg-secondary);border:1px solid var(--border);border-radius:10px;padding:20px 24px;margin-bottom:20px}.admin-section h2{margin:0 0 16px;font-size:.95rem;font-weight:600;color:var(--text-primary)}.admin-two-col{display:grid;grid-template-columns:1fr 1fr;gap:20px}.version-info{font-size:.75rem;color:var(--text-secondary);background:var(--bg-tertiary);padding:3px 8px;border-radius:4px;font-family:monospace;margin-left:auto}.admin-loading,.admin-error{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:60px 20px;gap:16px;color:var(--text-secondary)}.admin-error button{padding:8px 16px;background:var(--accent);color:#fff;border:none;border-radius:6px;cursor:pointer}.engagement-table-wrapper{margin-top:16px;overflow-x:auto}.engagement-table{width:100%;border-collapse:collapse;font-size:.82rem}.engagement-table th{text-align:left;padding:8px 12px;font-size:.7rem;font-weight:600;color:var(--text-tertiary);text-transform:uppercase;letter-spacing:.3px;border-bottom:1px solid var(--border)}.engagement-table td{padding:10px 12px;border-bottom:1px solid rgba(255,255,255,.04)}.engagement-table .num-col{text-align:center;font-variant-numeric:tabular-nums}.engagement-table th.num-col{text-align:center}.engagement-table .date-col{color:var(--text-tertiary);font-size:.78rem}.engagement-table .score-good{color:#4ade80;font-weight:600}.engagement-table .score-low{color:var(--text-tertiary)}.engagement-table .inactive-row{opacity:.5}.engagement-user-cell{display:flex;flex-direction:column;gap:1px}.engagement-user-name{font-weight:500;color:var(--text-primary)}.engagement-user-email{font-size:.72rem;color:var(--text-tertiary)}.engagement-badge{font-size:.68rem;font-weight:600;padding:2px 8px;border-radius:10px;text-transform:uppercase;letter-spacing:.3px}.engagement-badge.active{background:#4ade8026;color:#4ade80}.engagement-badge.inactive{background:#ffffff0d;color:var(--text-tertiary)}.stat-card.engagement-highlight{border:1px solid rgba(74,222,128,.2)}.stat-denominator{font-size:.7em;color:var(--text-tertiary);font-weight:400}.stats-grid.compact{grid-template-columns:repeat(2,1fr)}.admin-charts-row{display:grid;grid-template-columns:1fr 1fr;gap:24px;margin-bottom:32px}@media (max-width: 768px){.admin-charts-row{grid-template-columns:1fr}}.admin-funnel{margin-bottom:24px}.admin-funnel h3{margin-bottom:12px}.funnel-table{background:var(--bg-secondary, #1e1e1e);border-radius:8px;overflow:hidden}.funnel-header,.funnel-row{display:grid;grid-template-columns:2fr 1fr 2fr;padding:10px 16px;gap:12px}.funnel-header{background:var(--bg-tertiary, #2a2a2a);font-size:.8rem;color:var(--text-secondary, #a0a0a0);text-transform:uppercase;letter-spacing:.5px}.funnel-row{border-top:1px solid var(--border, #333)}.funnel-event{text-transform:capitalize}.funnel-count{font-weight:600;color:var(--accent, #6366f1)}.funnel-last{font-size:.85rem;color:var(--text-secondary, #a0a0a0)}.admin-chart-section{margin-bottom:0}.admin-chart-section h3{font-size:1rem;color:var(--text-secondary);margin-bottom:16px;text-transform:uppercase;letter-spacing:.5px}.chart-with-scale{display:flex;gap:8px}.chart-y-axis{display:flex;flex-direction:column;justify-content:space-between;font-size:.65rem;color:var(--text-muted);text-align:right;min-width:32px;padding:16px 0}.chart-main{flex:1}.growth-chart{background:var(--bg-tertiary);border-radius:8px;border:1px solid var(--border);padding:16px}.growth-svg{width:100%;height:80px;display:block}.growth-labels{display:flex;justify-content:space-between;align-items:center;margin-top:8px;font-size:.75rem;color:var(--text-secondary)}.growth-labels .growth-total{color:var(--accent);font-weight:600}.no-chart-data{background:var(--bg-tertiary);border-radius:8px;border:1px solid var(--border);padding:32px;text-align:center;color:var(--text-secondary)}.admin-support-queue{margin-bottom:32px;background:var(--bg-tertiary);border-radius:8px;padding:20px;border:2px solid var(--accent)}.admin-support-queue h3{font-size:1rem;color:var(--accent);margin-bottom:16px;text-transform:uppercase;letter-spacing:.5px}.support-list{display:flex;flex-direction:column;gap:16px}.support-item{background:var(--bg-secondary);border-radius:8px;padding:16px;border:1px solid var(--border)}.support-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:8px}.support-subject{font-weight:600;color:var(--text-primary);text-transform:capitalize}.support-date{font-size:.85rem;color:var(--text-secondary)}.support-from{font-size:.9rem;color:var(--text-secondary);margin-bottom:12px}.support-message{color:var(--text-primary);line-height:1.6;margin-bottom:16px;white-space:pre-wrap}.action-button.resolve{background:var(--accent);color:#fff;border:none;padding:8px 16px;border-radius:4px;cursor:pointer;font-size:.85rem}.action-button.resolve:hover{background:var(--accent-hover)}.admin-stats{margin-bottom:32px}.admin-stats h3,.admin-users h3{font-size:1rem;color:var(--text-secondary);margin-bottom:16px;text-transform:uppercase;letter-spacing:.5px}.stats-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(140px,1fr));gap:12px}.stats-grid .stat-card{background:var(--bg-tertiary);padding:16px;border-radius:8px;text-align:center;border:1px solid var(--border)}.stats-grid .stat-card .stat-value{display:block;font-size:2rem;font-weight:600;color:var(--text-primary);margin-bottom:4px}.stats-grid .stat-card .stat-label{font-size:.85rem;color:var(--text-secondary)}.stats-grid .stat-card.strava .stat-value{color:var(--strava-orange)}.stats-grid .stat-card.wahoo .stat-value{color:var(--wahoo-blue)}.stats-grid .stat-card.locked .stat-value{color:var(--error)}.stats-grid .stat-card.subscription .stat-value{color:var(--accent)}.stats-grid .stat-card.arr .stat-value{color:#22c55e}.admin-cache{margin-bottom:32px}.admin-cache h3{font-size:1rem;color:var(--text-secondary);margin-bottom:16px}.cache-list{background:var(--bg-tertiary);border-radius:8px;overflow:hidden}.cache-item{display:flex;justify-content:space-between;align-items:center;padding:12px 16px;border-bottom:1px solid var(--border)}.cache-item:last-child{border-bottom:none}.cache-query{color:var(--text-primary);font-size:.9rem;flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;margin-right:16px}.cache-hits{color:var(--accent);font-size:.85rem;white-space:nowrap}.no-cache-data{padding:16px;color:var(--text-secondary);text-align:center;font-size:.9rem}.admin-founder-invites{margin-bottom:32px}.admin-founder-invites h3{font-size:1rem;color:var(--text-secondary);margin-bottom:16px}.invite-form-row{display:flex;gap:8px;margin-bottom:12px}.invite-email-input{flex:1;padding:8px 12px;background:var(--bg-secondary);border:1px solid var(--border);border-radius:6px;color:var(--text-primary);font-size:.85rem}.invite-email-input::placeholder{color:var(--text-muted)}.invite-result{display:flex;align-items:center;gap:10px;padding:10px 14px;background:var(--bg-tertiary);border:1px solid var(--accent);border-radius:8px;margin-bottom:16px}.invite-code{font-family:monospace;font-size:1.1rem;font-weight:600;color:var(--accent);letter-spacing:1px}.invite-note{font-size:.75rem;color:var(--text-muted)}.action-button.copy{background:var(--accent);color:var(--bg-primary);font-size:.75rem;padding:4px 10px;border-radius:4px;border:none;cursor:pointer}.invite-table{margin-top:12px}.invite-table-header{display:grid;grid-template-columns:2fr 1fr .7fr 1fr;gap:8px;padding:6px 10px;font-size:.7rem;text-transform:uppercase;color:var(--text-muted);border-bottom:1px solid var(--border)}.invite-row{display:grid;grid-template-columns:2fr 1fr .7fr 1fr;gap:8px;padding:8px 10px;font-size:.8rem;border-bottom:1px solid var(--border);color:var(--text-primary)}.invite-row.used{opacity:.5}.invite-cell-code{font-family:monospace;font-size:.8rem}.invite-status.pending{color:var(--accent)}.invite-status.used{color:var(--text-muted)}.admin-sync-row{display:flex;align-items:center;gap:12px;margin-top:12px}.sync-result{color:var(--text-secondary);font-size:.85rem}.admin-power-diagnostics{margin-bottom:32px}.admin-power-diagnostics h3{font-size:1rem;color:var(--text-secondary);margin-bottom:16px}.power-filter-row{display:flex;gap:8px;margin-bottom:16px;flex-wrap:wrap}.power-select{padding:8px 12px;background:var(--bg-tertiary);border:1px solid var(--border);border-radius:6px;color:var(--text-primary);font-size:.9rem}.power-check-button{padding:8px 16px;background:var(--accent);color:#fff;border:none;border-radius:6px;cursor:pointer;font-size:.9rem}.power-check-button:disabled{opacity:.6;cursor:not-allowed}.power-results{background:var(--bg-tertiary);border-radius:8px;overflow:hidden}.power-summary{display:flex;gap:16px;padding:12px 16px;border-bottom:1px solid var(--border)}.power-stat{font-size:.9rem;font-weight:500}.power-stat.good{color:var(--success)}.power-stat.bad{color:var(--error)}.power-rides-list{max-height:200px;overflow-y:auto}.power-ride{display:flex;gap:12px;align-items:center;padding:10px 16px;border-bottom:1px solid var(--border);font-size:.85rem}.power-ride:last-child{border-bottom:none}.power-ride.no-power{background:#ef44441a}.power-ride .ride-name{flex:1;color:var(--text-primary);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.power-ride .ride-date{color:var(--text-secondary);width:80px}.power-ride .ride-power{width:60px;text-align:right}.power-ride.has-power .ride-power{color:var(--success)}.power-ride.no-power .ride-power{color:var(--error)}.power-ride .ride-tss{width:60px;text-align:right;color:var(--text-secondary)}.admin-rcs-job{margin-bottom:32px;padding:16px;background:var(--bg-tertiary);border-radius:8px}.admin-rcs-job h3{font-size:1rem;color:var(--text-secondary);margin-bottom:8px}.admin-rcs-desc{font-size:.85rem;color:var(--text-muted);margin-bottom:12px}.admin-action-btn{padding:8px 16px;background:var(--accent);color:#fff;border:none;border-radius:6px;cursor:pointer;font-size:.9rem}.admin-action-btn:disabled{opacity:.6;cursor:not-allowed}.rcs-job-result{margin-top:12px;padding:8px 12px;background:#10b9811a;border-radius:4px;color:var(--success);font-size:.85rem}.admin-users{flex:1;min-height:0}.users-table-container{overflow-x:auto;border:1px solid var(--border);border-radius:8px}.users-table{width:100%;border-collapse:collapse;font-size:.9rem}.users-table th{text-align:left;padding:12px 16px;background:var(--bg-tertiary);color:var(--text-secondary);font-weight:500;border-bottom:1px solid var(--border)}.users-table td{padding:12px 16px;border-bottom:1px solid var(--border);color:var(--text-primary)}.users-table tr:last-child td{border-bottom:none}.users-table tr.locked{background:#ff44441a}.user-cell{display:flex;flex-direction:column;gap:2px}.user-cell .user-name{font-weight:500}.user-cell .user-email{font-size:.8rem;color:var(--text-secondary)}.provider-badge{display:inline-block;padding:2px 8px;border-radius:4px;font-size:.75rem;font-weight:500;text-transform:uppercase}.provider-badge.strava{background:#fc4c0233;color:var(--strava-orange)}.provider-badge.wahoo{background:#00a1e033;color:var(--wahoo-blue)}.provider-badge.email{background:#ffffff1a;color:var(--text-secondary)}.status-badge{display:inline-block;padding:2px 8px;border-radius:4px;font-size:.75rem;font-weight:500}.status-badge.admin{background:#9333ea33;color:#a855f7}.status-badge.locked{background:#f443;color:var(--error)}.status-badge.active{background:#4b43;color:var(--success)}.action-button{padding:4px 12px;border-radius:4px;font-size:.8rem;cursor:pointer;transition:all .2s;border:none}.action-button.lock{background:#f443;color:var(--error)}.action-button.lock:hover:not(:disabled){background:var(--error);color:#fff}.action-button.unlock{background:#4b43;color:var(--success)}.action-button.unlock:hover:not(:disabled){background:var(--success);color:#fff}.action-button.reset{background:#ffa50033;color:orange}.action-button.reset:hover:not(:disabled){background:orange;color:#fff}.action-button.delete{background:#dc262633;color:#dc2626}.action-button.delete:hover:not(:disabled){background:#dc2626;color:#fff}.actions-cell{display:flex;gap:.5rem}.action-button:disabled{opacity:.5;cursor:not-allowed}.action-button.power-toggle{background:#64646433;color:var(--text-secondary);min-width:42px}.action-button.power-toggle.enabled{background:#4b43;color:var(--success)}.action-button.power-toggle.disabled{background:#64646433;color:var(--text-muted)}.action-button.power-toggle:hover:not(:disabled){background:var(--accent);color:#fff}@media (max-width: 768px){.admin-page-content{padding:16px}.admin-two-col{grid-template-columns:1fr}.admin-section{padding:16px}.stats-grid{grid-template-columns:repeat(2,1fr)}.users-table{font-size:.8rem}.users-table th,.users-table td{padding:8px 12px}}@media (max-width: 768px){.tab-pane-scroll{padding:12px}.chat-landing-title{font-size:1.2rem}}.garmin-data-attribution{font-size:.7rem;color:var(--text-tertiary);text-align:center;margin-top:8px;padding-top:6px}.data-level-hint{display:flex;align-items:center;justify-content:center;gap:8px;padding:12px 16px;margin-top:16px;background:#0478571a;border:1px solid rgba(4,120,87,.2);border-radius:8px;font-size:.85rem;color:var(--text-secondary)}.data-level-hint .hint-icon{font-size:1rem}.data-level-hint .hint-text{color:var(--text-secondary)}.no-power-message{text-align:center;padding:32px 24px;background:var(--bg-tertiary);border-radius:8px}.no-power-message .no-power-title{font-size:1.1rem;font-weight:600;color:var(--text-primary);margin-bottom:12px}.no-power-message .no-power-detail{font-size:.9rem;color:var(--text-secondary);line-height:1.6;max-width:400px;margin:0 auto}.graph-view{background:var(--bg-secondary);border-radius:8px;padding:16px;border:1px solid var(--border)}.graph-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:16px;padding-bottom:12px;border-bottom:1px solid var(--border)}.graph-period{font-size:.9rem;font-weight:600;color:var(--text-primary)}.graph-summary{display:flex;gap:16px;font-size:.8rem;color:var(--text-secondary)}.graph-stack{display:flex;flex-direction:column;gap:12px}.graph-empty{text-align:center;padding:40px;color:var(--text-secondary)}.graph-series-recharts{background:var(--bg-tertiary);border-radius:6px;padding:8px 4px 4px;transition:background .15s}.graph-series-recharts:hover{background:#ffffff08}.series-header{display:flex;justify-content:space-between;align-items:center;padding:0 8px 6px;cursor:pointer;-webkit-user-select:none;user-select:none}.series-title-row{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.series-name{font-size:.8rem;font-weight:600;text-transform:uppercase;letter-spacing:.5px;color:var(--text-primary)}.series-total{font-size:.75rem;color:var(--text-secondary)}.series-ma-badge{font-size:.65rem;color:#fff6;background:#ffffff0f;padding:1px 6px;border-radius:8px}.series-legend-inline{display:flex;gap:10px;align-items:center}.legend-chip{display:flex;align-items:center;gap:4px;font-size:.7rem;color:var(--text-secondary)}.legend-dot{width:8px;height:8px;border-radius:50%;flex-shrink:0}.graph-series-recharts .recharts-wrapper{cursor:pointer}.graph-tooltip{background:#141423f2;border:1px solid rgba(255,255,255,.12);border-radius:6px;padding:8px 12px;box-shadow:0 4px 16px #00000080;min-width:120px}.graph-tooltip-date{font-size:.75rem;color:#ffffff80;margin-bottom:4px;font-weight:500}.graph-tooltip-row{display:flex;align-items:center;gap:6px;padding:2px 0}.graph-tooltip-dot{width:8px;height:8px;border-radius:50%;flex-shrink:0}.graph-tooltip-label{font-size:.75rem;color:#fff9;flex:1}.graph-tooltip-value{font-size:.8rem;font-weight:600;color:#fff;font-variant-numeric:tabular-nums}.graph-tooltip-rides{border-top:1px solid rgba(255,255,255,.08);margin-top:4px;padding-top:4px}.graph-tooltip-ride{display:block;font-size:.7rem;color:#fff6;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:180px}.graph-series-recharts .recharts-legend-wrapper{display:none!important}@media (max-width: 600px){.graph-header{flex-direction:column;align-items:flex-start;gap:8px}.graph-summary{gap:12px;font-size:.75rem}.graph-series-recharts{padding:6px 2px 2px}.series-header{padding:0 4px 4px}}.week-view{max-width:800px;margin:0 auto;padding:0 16px 40px}.week-header{margin-bottom:20px}.week-nav{display:flex;align-items:center;justify-content:center;gap:16px;margin-bottom:12px;position:relative}.week-nav>.share-button-wrapper{position:absolute;right:0}.week-nav-btn{background:none;border:1px solid var(--bg-tertiary, #2a2a2a);border-radius:8px;color:var(--text-secondary, #a0a0a0);cursor:pointer;padding:8px;display:flex;align-items:center;transition:all .15s}.week-nav-btn:hover:not(:disabled){border-color:var(--text-secondary, #a0a0a0);color:var(--text-primary, #e5e5e5)}.week-nav-btn:disabled{opacity:.3;cursor:default}.week-title{display:flex;align-items:center;gap:12px}.week-id-label{font-size:.7rem;font-weight:500;color:var(--text-tertiary, #666);background:var(--bg-tertiary, #2a2a2a);padding:2px 6px;border-radius:4px;margin-right:8px;letter-spacing:.02em;vertical-align:middle}.week-title h2{font-size:1.1rem;font-weight:600;color:var(--text-primary, #e5e5e5);margin:0;white-space:nowrap}.week-today-btn{background:var(--accent, #047857);color:#fff;border:none;border-radius:6px;padding:4px 12px;font-size:.75rem;font-weight:500;cursor:pointer;transition:background .15s}.week-today-btn:hover{background:var(--accent-hover, #059669)}.week-summary-bar{display:flex;flex-wrap:wrap;justify-content:center;gap:8px 16px;padding:12px 16px;background:var(--bg-secondary, #1a1a1a);border-radius:10px;font-size:.8rem;color:var(--text-secondary, #a0a0a0)}.week-summary-stats,.week-summary-fitness{display:flex;align-items:center;gap:6px;flex-wrap:wrap;justify-content:center}.week-stat{white-space:nowrap}.week-stat strong{color:var(--text-primary, #e5e5e5)}.week-stat.tsb.positive strong{color:#4b4}.week-stat.tsb.negative strong{color:#f44}.week-stat.rcs-color{color:#8b5cf6d9}.week-stat.rcs-color strong{color:#8b5cf6}.week-stat.rvs-color{color:#6366f1d9}.week-stat.rvs-color strong{color:#6366f1}.week-stat.tss-color{color:#eab308d9}.week-stat.tss-color strong{color:#eab308}.week-stat-sep{color:var(--bg-tertiary, #2a2a2a);-webkit-user-select:none;user-select:none}.week-fitness-badge{font-size:.7rem;font-weight:600;padding:2px 8px;border-radius:4px;text-transform:uppercase;letter-spacing:.03em}.week-fitness-badge.positive{background:#44bb4426;color:#4b4}.week-fitness-badge.neutral{background:#a0a0a026;color:#a0a0a0}.week-fitness-badge.negative{background:#ff444426;color:#f44}.week-loading{display:flex;justify-content:center;padding:60px 0}.week-days{display:flex;flex-direction:column;gap:2px}.week-day{display:flex;gap:16px;padding:16px;background:var(--bg-secondary, #1a1a1a);border-left:3px solid transparent;transition:border-color .15s;position:relative}.week-day:first-child{border-radius:10px 10px 0 0}.week-day:last-child{border-radius:0 0 10px 10px}.week-day.today{border-left-color:var(--accent, #047857);background:#0478570f}.week-day.rest-day:not(.today){opacity:.6}.week-day.future.rest-day{opacity:.35}.week-day-label{min-width:110px;flex-shrink:0;display:flex;flex-direction:column;gap:2px;padding-top:2px}.week-day-name{font-size:.85rem;font-weight:600;color:var(--text-primary, #e5e5e5)}.week-day-date{font-size:.75rem;color:var(--text-secondary, #a0a0a0)}.week-today-dot{width:6px;height:6px;border-radius:50%;background:var(--accent, #047857);margin-top:4px}.week-day-weather{display:flex;align-items:center;gap:4px;margin-top:3px;font-size:.72rem;color:var(--text-secondary, #a0a0a0)}.week-weather-emoji{font-size:.9rem;line-height:1}.week-weather-temps{white-space:nowrap}.week-weather-humidity{color:var(--text-secondary, #a0a0a0)}.week-weather-precip{color:#60a5fa;font-weight:500}.week-weather-sun{color:var(--text-secondary, #a0a0a0);font-size:.68rem}.week-day-rides{flex:1;display:flex;flex-direction:column;gap:8px}.week-ride-card{background:var(--bg-tertiary, #2a2a2a);border-radius:8px;padding:12px 16px;cursor:pointer;transition:all .15s;border:1px solid transparent;display:flex;align-items:flex-start;gap:12px}.week-ride-card:hover{border-color:var(--accent, #047857);background:#2a2a2acc}.week-ride-content{flex:1;min-width:0}.week-ride-thumbnail{width:48px;height:48px;flex-shrink:0;border-radius:6px;overflow:hidden;opacity:.7;transition:opacity .15s}.week-ride-card:hover .week-ride-thumbnail{opacity:1}.week-ride-thumbnail svg{width:48px;height:48px;display:block}.week-ride-badges{display:flex;gap:4px;margin-top:3px}.week-ride-badges .week-ride-badge{font-size:.6rem;padding:1px 5px}.week-ride-header{display:flex;align-items:center;gap:8px;margin-bottom:4px}.week-ride-name{font-size:.9rem;font-weight:600;color:var(--text-primary, #e5e5e5);flex-shrink:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.week-ride-badge{font-size:.65rem;font-weight:600;padding:2px 6px;border-radius:4px;text-transform:uppercase;letter-spacing:.03em;flex-shrink:0}.week-ride-badge.source-garmin{background:#0077c833;color:#4da8e0}.week-ride-badge.source-wahoo{background:#00a9e033;color:#42b8e5}.week-ride-badge.source-suunto{background:#e2323233;color:#e25050}.week-ride-badge.source-zwift{background:#f26c2133;color:#f26c21}.week-ride-badge.source-fit{background:#a0a0a026;color:#a0a0a0}.week-ride-badge.source-strava{background:#fc520026;color:#fc5200}.week-ride-stats{display:flex;flex-wrap:wrap;gap:6px 14px;font-size:.8rem;color:var(--text-primary, #e5e5e5)}.week-ride-stats.secondary{color:var(--text-secondary, #a0a0a0);font-size:.75rem;margin-top:2px}.week-ride-stat{white-space:nowrap}.day-add-btn{position:absolute;top:8px;right:8px;background:none;border:1px solid rgba(255,255,255,.1);color:var(--text-secondary, #a0a0a0);width:22px;height:22px;border-radius:5px;font-size:.9rem;line-height:1;cursor:pointer;display:flex;align-items:center;justify-content:center;opacity:0;transition:opacity .15s,background .15s;z-index:2}.week-day:hover .day-add-btn,.week-day.today .day-add-btn{opacity:.6}.day-add-btn:hover{background:#ffffff1a;color:var(--text-primary, #e5e5e5);border-color:#fff3}.week-day-custom{display:flex;flex-wrap:wrap;gap:6px;padding:4px 0 2px;align-self:flex-start}.week-custom-pill{font-size:.72rem;padding:2px 8px;border-radius:10px;background:#ffffff0f;color:var(--text-secondary, #a0a0a0);white-space:nowrap}.week-custom-pill.weight{background:#8b5cf626;color:#a78bfa}.week-custom-pill.fuel{background:#f59e0b26;color:#fbbf24}.week-custom-pill.hydration{background:#3b82f626;color:#60a5fa}.week-custom-note{opacity:.7;font-style:italic}.data-entry-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#00000080;z-index:1000;display:flex;align-items:center;justify-content:center}.data-entry-modal{background:var(--bg-secondary, #1e1e1e);border:1px solid rgba(255,255,255,.1);border-radius:12px;padding:16px;width:300px;box-shadow:0 8px 32px #0006}.data-entry-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:12px}.data-entry-date{font-size:.85rem;color:var(--text-secondary, #a0a0a0)}.data-entry-close{background:none;border:none;color:var(--text-secondary, #a0a0a0);cursor:pointer;padding:2px}.data-entry-close:hover{color:var(--text-primary, #e5e5e5)}.data-entry-tabs{display:flex;gap:4px;margin-bottom:14px}.data-entry-tab{flex:1;padding:6px 8px;border-radius:6px;border:1px solid rgba(255,255,255,.1);background:none;color:var(--text-secondary, #a0a0a0);font-size:.78rem;cursor:pointer;transition:all .15s;display:flex;align-items:center;justify-content:center;gap:4px}.data-entry-tab:hover{background:#ffffff0d}.data-entry-tab.active{background:#8b5cf633;color:#a78bfa;border-color:#8b5cf64d}.data-entry-tab-icon{font-size:.9rem}.data-entry-form{display:flex;flex-direction:column;gap:10px}.data-entry-input-row{display:flex;align-items:center;gap:8px}.data-entry-input{flex:1;padding:10px 12px;border-radius:8px;border:1px solid rgba(255,255,255,.15);background:#0000004d;color:var(--text-primary, #e5e5e5);font-size:1.1rem;font-weight:600;outline:none;transition:border-color .15s}.data-entry-input:focus{border-color:#8b5cf680}.data-entry-input::placeholder{color:var(--text-secondary, #a0a0a0);opacity:.5;font-weight:400}.data-entry-input::-webkit-outer-spin-button,.data-entry-input::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}.data-entry-input[type=number]{-moz-appearance:textfield}.data-entry-unit{font-size:.85rem;color:var(--text-secondary, #a0a0a0);min-width:28px}.data-entry-notes{padding:8px 12px;border-radius:8px;border:1px solid rgba(255,255,255,.1);background:#0003;color:var(--text-primary, #e5e5e5);font-size:.82rem;outline:none}.data-entry-notes:focus{border-color:#fff3}.data-entry-notes::placeholder{color:var(--text-secondary, #a0a0a0);opacity:.4}.data-entry-save{padding:10px;border-radius:8px;border:none;background:#8b5cf64d;color:#a78bfa;font-size:.85rem;font-weight:600;cursor:pointer;transition:background .15s}.data-entry-save:hover:not(:disabled){background:#8b5cf666}.data-entry-save:disabled{opacity:.4;cursor:not-allowed}.data-entry-saved{display:flex;flex-direction:column;align-items:center;gap:8px;padding:24px 0;color:#10b981;font-weight:600;font-size:.9rem}.week-day-empty{flex:1;display:flex;align-items:center;font-size:.8rem;color:var(--text-secondary, #a0a0a0);font-style:italic;opacity:.6}.week-day-skeleton{flex:1;height:18px;background:linear-gradient(90deg,var(--bg-tertiary, #2a2a2a) 25%,var(--bg-secondary, #1e1e1e) 50%,var(--bg-tertiary, #2a2a2a) 75%);background-size:200% 100%;animation:skeleton-shimmer 1.2s ease-in-out infinite;border-radius:4px;opacity:.5}@keyframes skeleton-shimmer{0%{background-position:200% 0}to{background-position:-200% 0}}.week-days:not(.loading) .week-day-rides{animation:week-fade-in .15s ease-out}@keyframes week-fade-in{0%{opacity:0}to{opacity:1}}.consistency-section{margin-top:24px;background:var(--bg-secondary, #1a1a1a);border:1px solid var(--border, #333);border-radius:12px;padding:20px}.consistency-section.loading{min-height:120px}.consistency-loading{display:flex;flex-direction:column;align-items:center;gap:10px;padding:24px 0;color:var(--text-secondary, #a0a0a0);font-size:.8rem}.consistency-spinner{width:24px;height:24px;border:2px solid var(--border, #333);border-top-color:var(--accent, #7c3aed);border-radius:50%;animation:spin .8s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.consistency-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:4px}.consistency-explainer{font-size:.78rem;color:var(--text-tertiary, #888);margin-bottom:16px;line-height:1.4}.consistency-title{font-size:.9rem;font-weight:600;color:var(--text-primary, #e5e5e5)}.consistency-window{font-size:.7rem;color:var(--text-secondary, #a0a0a0);background:var(--bg-tertiary, #2a2a2a);padding:2px 8px;border-radius:4px}.consistency-scores{display:flex;gap:12px;margin-bottom:20px;flex-wrap:wrap}.consistency-score-card{background:linear-gradient(135deg,#8b5cf61f,#6366f114);border:1px solid rgba(139,92,246,.25);border-radius:10px;padding:12px 16px;display:flex;flex-direction:column;align-items:center;min-width:100px}.consistency-score-label{font-size:.65rem;font-weight:600;color:#c4b5fdb3;text-transform:uppercase;letter-spacing:.5px;margin-bottom:4px}.consistency-score-value{font-size:1.8rem;font-weight:700;color:#c4b5fd;line-height:1;display:flex;align-items:baseline;gap:6px}.consistency-score-tier{font-size:.65rem;font-weight:600;text-transform:uppercase;letter-spacing:.03em;margin-top:2px}.consistency-score-sub{font-size:.6rem;color:var(--text-secondary, #a0a0a0);margin-top:2px}.consistency-score-card.metric-rcs{border-color:#8b5cf666;background:linear-gradient(135deg,#8b5cf61f,#8b5cf60d)}.consistency-score-card.metric-rcs .consistency-score-label{color:#8b5cf6b3}.consistency-score-card.metric-rcs .consistency-score-value{color:#c4b5fd}.consistency-score-card.metric-rcs .consistency-score-tier{color:#a78bfa}.consistency-score-card.metric-rvs{border-color:#6366f166;background:linear-gradient(135deg,#6366f11f,#6366f10d)}.consistency-score-card.metric-rvs .consistency-score-label{color:#6366f1b3}.consistency-score-card.metric-rvs .consistency-score-value{color:#a5b4fc}.consistency-score-card.metric-rvs .consistency-score-tier{color:#818cf8}.consistency-score-card.metric-tss{border-color:#eab30859;background:linear-gradient(135deg,#eab3081a,#eab3080a)}.consistency-score-card.metric-tss .consistency-score-label{color:#eab308b3}.consistency-score-card.metric-tss .consistency-score-value{color:#fde047}.consistency-score-card.metric-tss .consistency-score-tier{color:#eab308}.consistency-score-card.tier-locked{border-color:#4b46;background:linear-gradient(135deg,#44bb441f,#44bb440d)}.consistency-score-card.tier-locked .consistency-score-tier{color:#4b4}.consistency-score-card.tier-consistent .consistency-score-tier,.consistency-score-card.tier-building .consistency-score-tier{color:inherit}.consistency-score-card.tier-starting{border-color:#a0a0a04d;background:linear-gradient(135deg,#a0a0a014,#a0a0a008)}.consistency-score-card.tier-starting .consistency-score-value,.consistency-score-card.tier-starting .consistency-score-tier{color:var(--text-secondary, #a0a0a0)}.consistency-score-card.tier-disabled{border-color:#64646433;background:linear-gradient(135deg,#6464640d,#64646405);opacity:.6}.consistency-score-card.tier-disabled .consistency-score-value,.consistency-score-card.tier-disabled .consistency-score-tier,.consistency-score-card.tier-disabled .consistency-score-sub{color:var(--text-tertiary, #666)}.consistency-trend{font-size:.75rem;font-weight:600}.consistency-trend.up{color:#4b4}.consistency-trend.down{color:#f44}.consistency-this-week{display:flex;flex-direction:column;justify-content:center;gap:4px;padding:12px 16px;background:var(--bg-tertiary, #2a2a2a);border-radius:10px;flex:1;min-width:140px}.consistency-tw-label{font-size:.65rem;font-weight:600;color:var(--text-secondary, #a0a0a0);text-transform:uppercase;letter-spacing:.5px}.consistency-tw-stat{font-size:.8rem;color:var(--text-primary, #e5e5e5)}.consistency-tw-stat .rcs-num{color:#8b5cf6}.consistency-tw-stat .rvs-num{color:#6366f1}.consistency-tw-stat .tss-num{color:#eab308}.consistency-chart{margin-bottom:24px}.consistency-chart:last-child{margin-bottom:0}.consistency-chart-label{display:block;font-size:.7rem;font-weight:600;color:#ffffffe6;text-transform:uppercase;letter-spacing:.3px;margin-bottom:2px}.consistency-chart-desc{display:block;font-size:.73rem;color:var(--text-tertiary, #888);margin-bottom:14px}.consistency-expected{font-weight:400;text-transform:none;color:var(--text-tertiary, #666)}.consistency-bars{display:flex;gap:6px;height:110px;align-items:flex-end}.consistency-bar-col{flex:1;display:flex;flex-direction:column;align-items:center;gap:4px;min-width:0}.consistency-bar-track{width:100%;height:70px;display:flex;align-items:flex-end;justify-content:center}.consistency-bar{width:100%;max-width:40px;border-radius:3px 3px 0 0;display:flex;align-items:flex-start;justify-content:center;min-height:3px;transition:height .3s ease}.consistency-bar.rides{background:linear-gradient(to top,#8b5cf666,#8b5cf6b3)}.consistency-bar.hours{background:linear-gradient(to top,#6366f166,#6366f1b3)}.consistency-bar-col.current .consistency-bar.rides{background:linear-gradient(to top,#8b5cf699,#8b5cf6)}.consistency-bar-col.current .consistency-bar.hours{background:linear-gradient(to top,#6366f199,#6366f1)}.consistency-bar.tss{background:linear-gradient(to top,#eab30866,#eab308b3)}.consistency-bar-col.current .consistency-bar.tss{background:linear-gradient(to top,#eab30899,#eab308)}.consistency-bar-value{font-size:.6rem;font-weight:600;color:#fffc;text-align:center}.consistency-bar-label{font-size:.55rem;color:var(--text-tertiary, #666);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:100%;text-align:center}.consistency-bar-col.current .consistency-bar-label{color:#c4b5fd;font-weight:600}.consistency-bar-weekid{font-size:.5rem;color:var(--text-tertiary, #666);cursor:pointer;text-align:center;transition:color .15s}.consistency-bar-weekid:hover{color:#a78bfa}.consistency-bar-col.current .consistency-bar-weekid{color:#c4b5fd;font-weight:600}.consistency-coach-card{margin-top:24px;padding:16px 18px;background:#ffffff08;border:1px solid rgba(255,255,255,.06);border-radius:10px}.consistency-coach-title{display:block;font-size:.75rem;font-weight:600;color:#ffffffe6;text-transform:uppercase;letter-spacing:.3px;margin-bottom:10px}.consistency-coach-body p{font-size:.8rem;color:var(--text-tertiary, #888);line-height:1.5;margin:0 0 10px}.consistency-coach-body p:last-child{margin-bottom:0}.consistency-coach-body strong{color:#ffffffbf}@media (max-width: 600px){.week-view{padding:0 8px 24px}.week-day{flex-direction:column;gap:8px;padding:12px}.week-day-label{min-width:unset;flex-direction:row;align-items:center;gap:8px}.week-today-dot{margin-top:0}.week-ride-card{gap:8px;padding:10px 12px}.week-ride-thumbnail{width:40px;height:40px}.week-ride-thumbnail svg{width:40px;height:40px}.week-ride-header{gap:6px}.week-ride-stats{gap:6px 8px;font-size:.72rem}.week-title h2{font-size:.95rem}.week-summary-bar{font-size:.72rem;padding:10px 12px}.consistency-section{padding:14px;margin-top:16px}.consistency-scores{gap:8px}.consistency-score-card{padding:10px 12px;min-width:80px}.consistency-score-value{font-size:1.4rem}.consistency-bars{gap:4px;height:70px}.consistency-bar-label{font-size:.5rem}}.trails-view{padding:16px;max-width:900px;margin:0 auto}.trails-header{display:flex;align-items:baseline;gap:12px;margin-bottom:16px}.trails-header h2{margin:0;font-size:1.3rem;color:var(--text-primary)}.trails-count{color:var(--text-secondary);font-size:.85rem}.trails-loading{display:flex;justify-content:center;padding:60px 0}.trails-message{padding:10px 14px;border-radius:6px;margin-bottom:16px;font-size:.85rem;display:flex;align-items:center}.trails-message-info{background:#04785726;color:var(--accent)}.trails-message-success{background:#04785726;color:#34d399}.trails-message-error{background:#dc262626;color:#f87171}.trails-empty{text-align:center;padding:40px 20px;color:var(--text-secondary)}.trails-empty p{margin:8px 0;font-size:.9rem}.trails-backfill-btn{margin-top:16px;padding:8px 20px;background:var(--accent);color:#fff;border:none;border-radius:6px;cursor:pointer;font-size:.85rem}.trails-backfill-btn:hover{background:var(--accent-hover)}.trails-backfill-btn:disabled{opacity:.5;cursor:not-allowed}.trails-grid{display:grid;grid-template-columns:1fr;gap:12px}@media (min-width: 640px){.trails-grid{grid-template-columns:1fr 1fr}}.trail-card{background:var(--bg-secondary);border:1px solid var(--border);border-radius:8px;padding:0;cursor:pointer;transition:border-color .15s,background .15s;overflow:hidden}.trail-card-thumb{width:100%;height:140px;overflow:hidden;background:var(--bg-tertiary)}.trail-card-thumb img{width:100%;height:100%;object-fit:cover;display:block}.trail-card-top,.trail-card-stats,.trail-sector-bar,.trail-card-sectors{padding-left:14px;padding-right:14px}.trail-card-sectors{padding-bottom:14px}.trail-card:hover{border-color:var(--accent);background:var(--bg-tertiary)}.trail-card-top{display:flex;justify-content:space-between;align-items:center;margin-bottom:8px;padding-top:12px}.trail-card-name{font-size:1rem;font-weight:600;color:var(--text-primary)}.trail-card-rides{font-size:.75rem;color:var(--text-secondary);background:var(--bg-tertiary);padding:2px 8px;border-radius:10px}.trail-sector-bar{display:flex;height:6px;border-radius:3px;overflow:hidden;margin-bottom:10px;background:var(--bg-tertiary)}.trail-sector-bar-detail{height:10px;border-radius:5px;margin-bottom:14px}.trail-sector-seg{min-width:2px}.trail-sector-climb{background:#34d399}.trail-sector-descent{background:#60a5fa}.trail-sector-flat{background:#6b7280}.trail-card-stats{display:flex;gap:12px;flex-wrap:wrap;margin-bottom:8px}.trail-stat{display:flex;flex-direction:column}.trail-stat-val{font-size:.85rem;font-weight:600;color:var(--text-primary)}.trail-stat-label{font-size:.65rem;color:var(--text-secondary);text-transform:uppercase;letter-spacing:.5px}.trail-card-sectors{display:flex;gap:6px;flex-wrap:wrap}.trail-tag{font-size:.65rem;padding:1px 6px;border-radius:3px;color:var(--text-primary)}.trail-tag-climb{background:#34d39933}.trail-tag-descent{background:#60a5fa33}.trail-tag-flat{background:#6b728033}.trails-footer{margin-top:20px;text-align:center}.trail-detail-page{min-height:100vh;background:var(--bg-primary)}.trail-detail-page-loading,.trail-detail-page-error{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:60vh;color:var(--text-secondary)}.trail-detail-page-error button{margin-top:12px;padding:8px 16px;background:var(--bg-secondary);color:var(--text-primary);border:1px solid var(--border);border-radius:6px;cursor:pointer}.trail-detail{max-width:960px;margin:0 auto;padding:16px}.trail-detail-header{margin-bottom:20px}.trail-detail-breadcrumb{display:flex;align-items:center;gap:6px;margin-bottom:4px}.trail-breadcrumb-link{background:none;border:none;color:var(--accent);cursor:pointer;font-size:1rem;padding:0}.trail-breadcrumb-link:hover{text-decoration:underline}.trail-detail-breadcrumb svg{color:var(--text-secondary)}.trail-breadcrumb-current{font-size:1rem;font-weight:600;color:var(--text-primary)}.trail-detail-subtitle{color:var(--text-secondary);font-size:.85rem;margin-top:2px}.trail-detail-stats{display:flex;gap:24px;flex-wrap:wrap;margin-bottom:20px;padding:14px;background:var(--bg-secondary);border-radius:8px;border:1px solid var(--border)}.trail-stat-block{display:flex;flex-direction:column}.trail-stat-block-val{font-size:1.1rem;font-weight:700;color:var(--text-primary)}.trail-stat-block-label{font-size:.7rem;color:var(--text-secondary);text-transform:uppercase;letter-spacing:.5px}.trail-detail-map{margin-bottom:20px;border-radius:8px;overflow:hidden}.trail-detail-sectors{margin-bottom:24px}.trail-detail-sectors h3{margin:0 0 10px;font-size:1rem;color:var(--text-primary)}.trail-sector-list{margin-top:10px}.trail-sector-list h4{margin:0 0 6px;font-size:.8rem;color:var(--text-secondary);text-transform:uppercase;letter-spacing:.5px}.trail-sector-item{display:grid;grid-template-columns:1fr 80px 50px 80px;gap:8px;padding:6px 10px;font-size:.82rem;color:var(--text-primary);border-bottom:1px solid var(--border)}.trail-sector-item-name{color:var(--text-secondary)}.trail-sector-item-climb{border-left:3px solid #34d399;padding-left:8px}.trail-sector-item-descent{border-left:3px solid #60a5fa;padding-left:8px}.trail-detail-rides{margin-bottom:24px}.trail-detail-rides h3{margin:0 0 10px;font-size:1rem;color:var(--text-primary)}.trail-rides-table{border:1px solid var(--border);border-radius:8px;overflow:hidden}.trail-rides-header,.trail-rides-row{display:grid;grid-template-columns:100px 1fr 70px 70px 60px 50px;gap:8px;padding:8px 12px;font-size:.82rem;align-items:center}.trail-rides-header{background:var(--bg-tertiary);color:var(--text-secondary);font-weight:600;text-transform:uppercase;font-size:.7rem;letter-spacing:.5px}.trail-rides-row{color:var(--text-primary);border-top:1px solid var(--border);cursor:pointer;transition:background .1s}.trail-rides-row:hover{background:var(--bg-secondary)}.trail-rides-name{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.trail-detail-compare{margin-bottom:24px}.trail-detail-compare h3{margin:0 0 10px;font-size:1rem;color:var(--text-primary)}.trail-compare-picker{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.trail-compare-picker select{flex:1;min-width:160px;padding:8px 10px;background:var(--bg-secondary);color:var(--text-primary);border:1px solid var(--border);border-radius:6px;font-size:.85rem}.trail-compare-vs{color:var(--text-secondary);font-size:.85rem;font-weight:600}.trail-compare-btn{padding:8px 20px;background:var(--accent);color:#fff;border:none;border-radius:6px;cursor:pointer;font-size:.85rem}.trail-compare-btn:hover{background:var(--accent-hover)}.trail-compare-btn:disabled{opacity:.4;cursor:not-allowed}.trail-compare{margin-top:16px}.trail-compare-loading{display:flex;justify-content:center;padding:30px}.trail-compare-error{color:#f87171;font-size:.85rem}.trail-compare-summary{display:flex;align-items:center;justify-content:center;gap:24px;padding:16px;background:var(--bg-secondary);border-radius:8px;border:1px solid var(--border);margin-bottom:16px}.trail-compare-rider{text-align:center}.trail-compare-rider-label{display:inline-block;width:24px;height:24px;line-height:24px;border-radius:50%;font-size:.75rem;font-weight:700;margin-bottom:4px}.trail-compare-rider-a .trail-compare-rider-label{background:#34d399;color:#000}.trail-compare-rider-b .trail-compare-rider-label{background:#60a5fa;color:#000}.trail-compare-rider-date{font-size:.75rem;color:var(--text-secondary)}.trail-compare-rider-time{font-size:1.1rem;font-weight:700;color:var(--text-primary)}.trail-compare-delta-block{text-align:center}.trail-compare-delta{font-size:1rem;font-weight:700;color:var(--text-secondary)}.trail-compare-delta.faster-a{color:#34d399}.trail-compare-delta.faster-b{color:#60a5fa}.trail-compare-sectors{border:1px solid var(--border);border-radius:8px;overflow-x:auto}.trail-compare-sectors-header,.trail-compare-sector-row{display:grid;grid-template-columns:40px 65px 70px 65px 65px 65px 60px 60px 60px 60px;gap:4px;padding:6px 10px;font-size:.75rem;align-items:center;min-width:640px}.trail-compare-sectors-header{background:var(--bg-tertiary);color:var(--text-secondary);font-weight:600;text-transform:uppercase;font-size:.65rem;letter-spacing:.3px}.trail-compare-sector-row{color:var(--text-primary);border-top:1px solid var(--border)}.trail-compare-sector-climb{border-left:3px solid #34d399}.trail-compare-sector-descent{border-left:3px solid #60a5fa}.trail-compare-sector-flat{border-left:3px solid #6b7280}.trail-sector-type-badge{font-size:.65rem;padding:1px 5px;border-radius:3px;text-transform:capitalize}.trail-sector-type-climb{background:#34d39933;color:#34d399}.trail-sector-type-descent{background:#60a5fa33;color:#60a5fa}.trail-sector-type-flat{background:#6b728033;color:#9ca3af}.trail-compare-cell-delta{font-weight:600}.trail-compare-cell-delta.faster-a{color:#34d399}.trail-compare-cell-delta.faster-b{color:#60a5fa}@media (max-width: 640px){.trail-detail-stats{gap:16px}.trail-rides-header,.trail-rides-row{grid-template-columns:80px 1fr 60px 60px}.trail-rides-header span:nth-child(5),.trail-rides-header span:nth-child(6),.trail-rides-row span:nth-child(5),.trail-rides-row span:nth-child(6){display:none}.trail-compare-picker{flex-direction:column}.trail-compare-picker select{min-width:100%}}.share-button-wrapper{position:relative;display:inline-flex;align-items:center}.share-button{display:flex;align-items:center;justify-content:center;width:32px;height:32px;border-radius:6px;border:1px solid var(--border);background:var(--bg-secondary);color:var(--text-secondary);cursor:pointer;transition:all .15s}.share-button:hover,.share-button.shared{color:var(--accent);border-color:var(--accent)}.share-menu{position:absolute;top:100%;right:0;margin-top:4px;background:var(--bg-secondary);border:1px solid var(--border);border-radius:8px;overflow:hidden;z-index:100;min-width:120px;box-shadow:0 4px 12px #0000004d}.share-menu-item{display:block;width:100%;padding:8px 14px;background:none;border:none;color:var(--text-primary);font-size:.85rem;text-align:left;cursor:pointer}.share-menu-item:hover{background:var(--bg-hover)}.share-menu-unshare{color:#ef4444}.share-note-menu{min-width:240px;padding:8px}.share-note-input{width:100%;padding:6px 10px;background:var(--bg-tertiary);border:1px solid var(--border);border-radius:6px;color:var(--text-primary);font-size:.85rem;margin-bottom:6px;box-sizing:border-box}.share-note-input:focus{outline:none;border-color:var(--accent)}.share-note-actions{display:flex;gap:4px}.share-note-actions .share-menu-item{flex:1;text-align:center;border-radius:4px;padding:6px 8px}.share-menu-skip{color:var(--text-tertiary)}.share-toast{position:absolute;top:-32px;left:50%;transform:translate(-50%);background:var(--accent);color:#fff;font-size:.75rem;padding:4px 10px;border-radius:4px;white-space:nowrap;animation:shareToastFade 2s ease forwards;pointer-events:none}@keyframes shareToastFade{0%{opacity:1}70%{opacity:1}to{opacity:0}}.public-share-page{min-height:100vh;background:var(--bg-primary)}.public-share-loading{display:flex;align-items:center;justify-content:center;height:100vh}.public-share-error{display:flex;flex-direction:column;align-items:center;justify-content:center;height:60vh;color:var(--text-secondary);text-align:center;padding:24px}.public-share-error h2{color:var(--text-primary);margin-bottom:8px}.public-branding-bar{display:flex;align-items:center;justify-content:space-between;padding:12px 24px;background:var(--bg-secondary);border-bottom:1px solid var(--border)}.public-branding-logo img{height:24px;width:auto}.public-branding-owner{display:flex;align-items:center;gap:8px;font-size:.85rem;color:#ffffffb3}.public-branding-avatar{width:28px;height:28px;border-radius:50%;object-fit:cover}.public-branding-avatar-placeholder{width:28px;height:28px;border-radius:50%;background:var(--accent, #4a9eff);color:#fff;display:flex;align-items:center;justify-content:center;font-size:.75rem;font-weight:600}.public-branding-cta{font-size:.85rem;color:var(--accent);text-decoration:none;padding:6px 14px;border:1px solid var(--accent);border-radius:6px;transition:all .15s}.public-branding-cta:hover{background:var(--accent);color:#fff}.public-share-note{max-width:800px;margin:0 auto 16px;padding:12px 20px;color:var(--text-secondary);font-style:italic;font-size:1rem;text-align:center}.public-week-content{max-width:800px;margin:0 auto;padding:24px}.public-week-header{display:flex;align-items:baseline;gap:12px;margin-bottom:20px}.public-week-header h2{font-size:1.25rem;color:var(--text-primary)}.public-week-count{font-size:.9rem;color:var(--text-secondary)}.public-week-ride-card{padding:16px;background:var(--bg-secondary);border:1px solid var(--border);border-radius:8px;margin-bottom:8px;cursor:pointer;transition:border-color .15s}.public-week-ride-card:hover{border-color:var(--accent)}.public-ride-name{font-weight:600;color:var(--text-primary);margin-bottom:4px}.public-ride-date{font-size:.85rem;color:var(--text-secondary);margin-bottom:8px}.public-ride-stats{display:flex;gap:16px;font-size:.85rem;color:var(--text-secondary)}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
