.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}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}.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}@keyframes spin{to{transform:rotate(360deg)}}.login-container{flex:1;display:flex;justify-content:center;align-items:center;padding:20px}.login-box{width:100%;max-width:400px;padding:40px;background:var(--bg-secondary);border-radius:12px;border:1px solid var(--border)}.login-title-container{display:flex;align-items:center;justify-content:center;gap:8px;margin-bottom:8px}.login-title{font-size:2rem;font-weight:600;text-align:center;margin-bottom:0;color:var(--accent)}.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}.strava-button{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{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}.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{font-size:1.25rem;font-weight:600;color:var(--accent)}.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-button{display:flex;align-items:center;gap:8px;padding:6px 12px;background:var(--bg-tertiary);border:1px solid var(--border);border-radius:20px;color:var(--text-primary);cursor:pointer;transition:all .2s}.user-button:hover{background:var(--bg-secondary);border-color:var(--accent)}.user-avatar{width:28px;height:28px;background:var(--accent);border-radius:50%;display:flex;align-items:center;justify-content:center;font-weight:600;font-size:.85rem;color:#fff}.user-name{font-size:.9rem}.logout-button{padding:8px 16px;font-size:.875rem;background:transparent;color:var(--text-secondary);border:1px solid var(--border);border-radius:6px;cursor:pointer;transition:all .2s}.logout-button:hover{color:var(--text-primary);border-color:var(--text-secondary)}.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}.chat-messages>.welcome-view{max-width:600px;flex:1}.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.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}.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:#0478571a;position:absolute;left:0;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{display:flex;flex-direction:column;gap:8px;overflow:visible}.month-calendar{background:var(--bg-secondary);border-radius:8px;border:1px solid var(--border);overflow:hidden}.month-title-row{display:flex;justify-content:center;align-items:center;padding:12px 16px 8px;background:var(--bg-tertiary)}.month-title{font-size:1.1rem;font-weight:600;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{background:var(--accent);color:var(--bg-primary)}.month-nav-btn svg{width:16px;height:16px}.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:70px 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:center;align-items:flex-end;padding:4px 8px;gap:1px;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%}.week-total{font-size:.7rem;font-weight:600;color:var(--text-primary)}.week-time{font-size:.6rem;color:var(--text-secondary)}.week-calories{font-size:.55rem;color:var(--text-secondary)}.week-tss{font-size:.6rem;color:var(--accent)}.week-power{font-size:.55rem;color:var(--text-secondary)}.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}.month-day-cell .day-num{font-size:.65rem;color:var(--text-secondary);line-height:1}.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 .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}.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%}.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}.welcome-view{width:100%;max-width:600px;margin:0 auto;height:100%;display:flex;flex-direction:column;padding:20px 0;overflow:visible}.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.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}.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}.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}.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)}.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}.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}.account-info h3{font-size:1.1rem;font-weight:600;color:var(--text-primary);margin-bottom:4px}.account-strava{font-size:.85rem;color:var(--text-secondary)}.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}.admin-sync-section{flex-direction:column;align-items:stretch;border-top:1px solid var(--border);padding-top:16px}.admin-sync-section .section-title{font-size:.9rem;font-weight:600;color:var(--text-secondary);margin-bottom:12px}.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}.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.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-card{background:var(--bg-secondary);border:1px solid var(--border);border-radius:12px;width:100%;max-width:600px;max-height:90vh;overflow-y:auto}.ride-detail-header{display:flex;justify-content:space-between;align-items:flex-start;padding:20px;border-bottom:1px solid var(--border)}.ride-detail-title h2{font-size:1.25rem;font-weight:600;color:var(--text-primary);margin-bottom:4px}.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-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-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:16px 0}.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-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:16px}.ride-detail-header-inline{display:flex;flex-wrap:wrap;align-items:baseline;gap:8px}.ride-detail-header-inline h3{font-size:1.1rem;font-weight:600;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:8px;overflow:hidden}.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:24px}.rides-list .ride-detail-inline{padding-bottom:24px;border-bottom:1px solid var(--border)}.rides-list .ride-detail-inline:last-child{padding-bottom:0;border-bottom:none}.rides-list .ride-no-map{padding:20px;font-size:.8rem}.route-map{width:100%;min-height:200px}.route-map-error{background:var(--bg-tertiary);border-radius:8px}.elevation-profile{width:100%;background:var(--bg-tertiary);border-radius:0 0 8px 8px;margin-top:-8px;padding:8px 12px 6px}.elevation-svg{width:100%;height:50px;display:block}.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}@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-button{padding:4px 8px;gap:6px}.user-avatar{width:24px;height:24px;font-size:.75rem}.user-name{font-size:.8rem}.chat-messages{padding:16px}.message{max-width:90%}.chat-input-form{padding:12px 16px 16px}.user-email{display:none}.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-button{padding:4px 6px;gap:4px}.user-avatar{width:22px;height:22px;font-size:.7rem}.user-name{display:none}}@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}.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{min-height:32px;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;margin-top:1px;gap:0}.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:.6rem}.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}.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}}.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;font-size:1.25rem;font-weight:700;color:var(--accent);cursor:pointer;flex:1}.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;align-items:center;justify-content:center;text-align:center;padding:80px 20px 40px;background:linear-gradient(180deg,var(--bg-primary) 0%,var(--bg-secondary) 100%)}.hero-content{max-width:600px}.hero-title{font-size:4rem;font-weight:700;color:var(--accent);margin-bottom:8px;letter-spacing:-1px}.hero-tagline{font-size:2rem;font-weight:300;color:var(--text-primary);margin-bottom:24px}.hero-subtitle{font-size:1.25rem;color:var(--text-secondary);margin-bottom:40px;line-height:1.6}.hero-cta{display:flex;flex-direction:column;gap:12px;align-items:center;margin-bottom:16px}.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(--strava-orange);color:#fff}.cta-button.primary:hover{background:#e04402;transform:translateY(-1px)}.cta-button.secondary{background:var(--wahoo-blue);color:#fff}.cta-button.secondary:hover{background:#0089c0}.cta-button.small{padding:10px 20px;font-size:.9rem;min-width:auto}.hero-note{font-size:.9rem;color:var(--text-secondary)}.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}.problem-section{background:var(--bg-secondary);padding:80px 20px;max-width:100%}.problem-section .problem-list{max-width:500px;margin:0 auto 32px}.problem-list p{font-size:1.25rem;margin-bottom:16px}.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}.problem-section .solution-answer{font-size:1.25rem;color:var(--accent);font-weight:600}.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}.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{font-size:1.5rem;font-weight:700;color:var(--accent)}.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)}@media (max-width: 768px){.home-nav{padding:12px 16px}.nav-link{padding:8px 12px;font-size:.85rem}.nav-brand .beta-badge{display:none}.hero-title{font-size:3rem}.hero-tagline{font-size:1.5rem}.hero-subtitle{font-size:1.1rem}.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-title{font-size:2.5rem}.hero-tagline{font-size:1.25rem}.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{font-size:2rem;font-weight:700;color:var(--accent);margin-bottom:8px}.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}.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}.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-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background:#000c;display:flex;justify-content:center;align-items:flex-start;padding:40px 20px;z-index:1000;overflow-y:auto}.admin-panel{width:100%;max-width:900px;background:var(--bg-secondary);border-radius:12px;border:1px solid var(--border);max-height:calc(100vh - 80px);display:flex;flex-direction:column}.admin-header{display:flex;justify-content:space-between;align-items:center;padding:20px 24px;border-bottom:1px solid var(--border);flex-shrink:0}.admin-header h2{margin:0;font-size:1.25rem;color:var(--text-primary)}.admin-title-row{display:flex;align-items:center;gap:12px}.version-info{font-size:.75rem;color:var(--text-secondary);background:var(--bg-tertiary);padding:3px 8px;border-radius:4px;font-family:monospace}.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}.admin-content{padding:24px;overflow-y:auto}.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-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-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-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-overlay{padding:20px 10px}.admin-panel{max-height:calc(100vh - 40px)}.admin-content{padding:16px}.stats-grid{grid-template-columns:repeat(2,1fr)}.users-table{font-size:.8rem}.users-table th,.users-table td{padding:8px 12px}}.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:16px}.graph-series{display:flex;flex-direction:column;gap:4px}.series-label{display:flex;justify-content:space-between;align-items:center}.series-name{font-size:.8rem;font-weight:600;text-transform:uppercase;letter-spacing:.5px}.series-total{font-size:.75rem;color:var(--text-secondary)}.series-sub-labels{display:flex;gap:.75rem;font-size:.7rem}.series-sub-labels .sub-label{font-weight:500}.series-chart{position:relative;height:80px;background:var(--bg-tertiary);border-radius:4px;overflow:hidden}.series-svg{width:100%;height:100%}.data-points-overlay{position:absolute;top:0;left:0;right:0;bottom:0;pointer-events:none}.data-points-overlay .data-point{position:absolute;width:8px;height:8px;border-radius:50%;transform:translate(-50%,50%);opacity:0;transition:opacity .15s;pointer-events:auto}.series-chart:hover .data-point{opacity:1}.data-points-overlay .data-point.clickable{cursor:pointer}.data-points-overlay .data-point.clickable:hover{transform:translate(-50%,50%) scale(1.5);filter:brightness(1.3)}.y-axis{position:absolute;right:4px;top:0;bottom:0;display:flex;flex-direction:column;justify-content:space-between;padding:4px 0;pointer-events:none}.y-axis span{font-size:.65rem;color:var(--text-secondary);background:#1a1a1acc;padding:1px 4px;border-radius:2px}.graph-x-axis{display:flex;justify-content:space-between;margin-top:8px;padding:0 4px}.x-label{font-size:.7rem;color:var(--text-secondary)}.graph-empty{text-align:center;padding:40px;color:var(--text-secondary)}.series-label.clickable{cursor:pointer;transition:opacity .15s}.series-label.clickable:hover{opacity:.8}.series-label.clickable .series-name:after{content:"↗";margin-left:6px;font-size:.7em;opacity:0;transition:opacity .15s}.series-label.clickable:hover .series-name:after{opacity:.6}.graph-detail-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background:#000000d9;display:flex;align-items:center;justify-content:center;z-index:1000;padding:20px}.graph-detail-card{background:var(--bg-secondary);border:1px solid var(--border);border-radius:12px;width:100%;max-width:900px;max-height:90vh;overflow:hidden}.graph-detail-header{display:flex;justify-content:space-between;align-items:center;padding:16px 20px;border-bottom:1px solid var(--border)}.graph-detail-header h2{margin:0;font-size:1.25rem;font-weight:600}.graph-detail-header .close-btn{background:none;border:none;color:var(--text-secondary);font-size:1.5rem;cursor:pointer;padding:0;line-height:1}.graph-detail-header .close-btn:hover{color:var(--text-primary)}.graph-detail-content{padding:20px}.graph-detail-content .graph-series{margin-bottom:0}.graph-detail-content .series-chart{height:300px}.graph-legend{display:flex;gap:20px;justify-content:center;margin-bottom:15px}.legend-item{display:flex;align-items:center;gap:8px}.legend-color{width:12px;height:12px;border-radius:2px}.legend-label{font-size:14px;color:#e5e7eb}.grid-lines{position:absolute;top:0;left:0;right:0;bottom:0;pointer-events:none;z-index:0}.grid-line{position:absolute;left:0;right:0;border-top:1px solid rgba(255,255,255,.08)}.grid-label{position:absolute;left:4px;top:-8px;font-size:.65rem;color:#fff6;background:var(--bg-secondary);padding:0 4px}.graph-series.expanded .series-chart{position:relative}.graph-series.expanded .y-axis{display:none}.graph-detail-x-axis{display:flex;justify-content:space-between;margin-top:12px;font-size:.75rem;color:var(--text-secondary)}@media (max-width: 600px){.graph-header{flex-direction:column;align-items:flex-start;gap:8px}.graph-summary{gap:12px;font-size:.75rem}.series-chart{height:60px}}
