@font-face{font-family:DM Sans Variable;font-style:normal;font-display:swap;font-weight:100 1000;src:url(/assets/dm-sans-latin-ext-wght-normal-BOFOeGcA.woff2) format("woff2-variations");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:DM Sans Variable;font-style:normal;font-display:swap;font-weight:100 1000;src:url(/assets/dm-sans-latin-wght-normal-Xz1IZZA0.woff2) format("woff2-variations");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Manrope Variable;font-style:normal;font-display:swap;font-weight:200 800;src:url(data:font/woff2;base64,d09GMgABAAAAAAn4ABMAAAAAEwQAAAmOAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGjQbgnQcLj9IVkFSgQEGYD9TVEFUgQIAgQovahEICok0h0ULIAAwhzoBNgIkAzwEIAWHJgeBDgwHG6QQUdRKTmoBFD8K42bniObKrG3LZFcMWZzFmrjTFhQ6TVTqPJcInrfrvzq3b2PGn1wwMiNYGTy9ViREYARlL1zAGcPdPqBt3gNWrfKthv4xnM+b9caw+wmjgEUVRjHXhS6jgCK6zf5HiWQacJpGdAgdrbV6g/Rf1BfxRqZVQnrxRVWSJb6RLFnyu0elilmjeoSQCKnxsmwLaddUMjnksriSYuuPl06EAl7KfAiWQjCUETz0zNZ3EII94CDQtzkMfZ/9IkkY8tZRZTDky5ZVwBAM+GYpdd4ZVAWYImnLkiTg48l79gGx3D+VBtLeyg8u7bJAd4uo0pFuQBFysE9C95l0W4Fkiao6GfrDbu77lVU7wk9cV3uqOsXmQiMkhVKl1ugjzUAJBSIkkVWHijkpkVSyUFsgVBuJMA0N+ZnXtyUv5yMigGdfQRmwL1AAjQ3YXG6iIFNSUdPQo8+AISPGAltBMDQRAtyf4ZspLlZkpyOVoMZPvFGWzvk8p5SUC/NWPMj6T2/Yas2EdlON5GkfdkeFwVGjta825H89NIenlLWAPAp5h1KDtRhCaAQWMsFKtEvOKpIhgLHlXPARokkgEGEOAkqxJRQpKYq4ezahIiLHP6hZpqMbV0pUF2vdvEimLEQ/iIUYLgYWs0VXGVlLTOPdaPmFfCC/XrtzqVo1ez7vz6+Kd2+7o11ZJ+4MreLbB5BKVGxobAq4jZYalZ5aX2CKJiwUuc9GNJyi4M8bGyKcdjSRrG4JohdF8buJfmQefbYYREnMFsOoiNliFDVxmRgL0XUmUMLqzW0A4gCQAhWGYCQpFNukwXhIkPMsbRI19ewtw8Cp2Wj/Ro5cM2OTAbJAvZ/L4opBXb9+UHscYuOKM/W8isgwN26Exexjizmfnlp9dE3hOSqdZ/F5QqbckIlPb+oKfXxd6hftJ7Sm/uyPYpONza84CRlMNk/uhOrLpyf53982++zRkXNu3g3VF8qFbx1+7fbHZ9DrB3VXWNSmhnT2vrwS1+1Z+kHGBaZIhnnvuLBTNDeA340D1DWu5/jEa9pVfl6+Jij+yo3EELNixXCLjr173Q5eDP7Y7/L4iQFHbjpaJLFoP4cCsYP6sAPL7gMHNg53yYjqxqTDrYqLDl5DzW/eTLjYxCvucprjI3yl2ykKowKUC2Ox2FJLFo6Fa1HBWLC2jMCIIBEmklkYhmkpmBhTm/LCvJAH5oGcMKcgFEP1xUdho8ANPa6RFD99/PN60fjj9eXy2Eex4B5MpmRapXidzFk1p4uLk3+hn6jAP9ovJcXPPwk8o/0ltizbdbnTprvx4PSxT0VZ3Xc772aN7RflgbXRYwc3hLNO+k878nxGwfuVM8m8Gs7WEoVGWLHwSpx4vNSHBCMNqJ4m15Kp/TfHHVkQd++eY7PGN4W5byTs+6Ft8Ozvb/D60btv37de8ER0mS3P/0sLW84qGjEVkwztPzz06eGUWwKLwPb0D/WFd3vltl2aP276KpM0JNz6AfnAnZ5ADlF2zVyZ2OkxHSMxWPMnSZLbbDR3F1UjPVqp4d68da13F1YZujdWw7271iecO2l9+/4p47Oztjck355/75wFOI+VdGDqbNGs+ISgxg3iB2jb2r+b0CWsNLHIM4sdv8SDSFBP/Oromz6FNCWw2iMTxV0R8QLyBTkpe0j5+pSSJOOTB5Mck/gh3IopuNQnhKj02t3FL80gGbEh89SZcwTxcYt5cZT/nMnB3uXfPy8BSpVMBuRx+ZhACGzDBmwHsJRAjhotOnzuj2wDz3ug2wOUAY2NgZln9/TK/enG/oE4rO1wxvGUFMAxsZ0qNjRC7hl9d17e7imbgDt6uJXhUobDg7v3RX/yRCKxgMhfyiKcZfbpk0wmCcdQlIAOHeakXLvCNt++WfKiozNqSZxxJotn+c0a7DdPsx7DPYgKIDxwwYUZDg9aJbxocTjcwovr9WAsVV32mQoiiIOCHc60Oltst9qCQYuCqN1yHo0Kj60OgI2OqmiuBUWrNA0NDhYCDcdpmMrs1fZZ0xdTzMr1HdPtIHstYhqaPDDA5YxUDx7J4fJiisBSDI/L6G/bn34GNy8Q2g044ZTulAdFLb0tI6NNxfj3DzLjWiNGxje1pz7aXOcNV68lDPEd2SXl6VfBuwmHzdf1gxFy1HvA7pD8I2BnnmyGw852Cg5XbgIdEEGE5UCzen5jTlG6JCU5iajlxVcsXvbcS0SAcg1dcesWJLVK8+hYHOYQ+Pjy+EyVGXP0aPTFagrV9E03hCQvYx+g47KGq+1GsLj8uBIyihNw33YUe8PNC4BOJ3Lm1AglLV3nCuvUdIP+v15tVGbWIwgxLVpPkfpthCGpTKG+oA/DQfsKKvxhScqaN6FuElAUtTKv2UYgOmQegsN/n7njHUju8wM4VTcm+Q8xfX9SFwjTzdVqu95UOWSIGOabH8OGBEba//8Yxl3GcPdP/dMBOoSX/0z5SZmBoLbaPs+9asaMpb36yknKaw6FqWZa6A5vDa02mhkOba1q6KtLV208xrkwmW5C4VD6n2fvRjADy2qDYYnNy+H10Fq0LMbNzS863gkO7iQ8eC48/Ny5m59tOcEso3u7Qg3yrqDL6eKXwJAuWnhylfbWrRObe66rzX59+XDtzusnL66dI/86ArmtLlzED860Ef3bFPV78OX/zFTA11fcBn2Vntb7qiGBSgLBHyuv/uEaqqoTgSpOyjlzh86me1Vriv7i9rLPLvtghWmSnblRbAsBJL/4dScSQTBxOivHMO5QvBBY0iheJvfwWLxLOGzYKZyM4zVc2Cll46zEpeUV4MqGEWZj22SdOxhGAjgs9AEnfT+RoiMfcDb0GS5NncKVxju4Nt/mRk13O9Gz3FLct5oCD6wkwUNrCfHIUg6SMf8LwQGyVaBUqpLPW5BaMpRshEpl8nS1qw5dgnzlik8QBXmdy5UrIH74heTKZKMSilQso4hsRiGraQZRzxpNGqlEJMsXuAU7GlcR8mWSykUpVkWGyIf0a8v4qEQp5CtGsMiZa+4ESYQy+WilCiguHzxMXO54ogShooTV2bj2z1zL6DYSoImoQ8lFUWxMLBNQQgLkV2tHYgUoIbkuREz+fJHKxxWBcnvu3KQppFCxLkguB1NyVSp/TknRvNwYlCdbblWu3ze6owHdWluhE5tgQ6ej2SV65CijijoaRfSiH4Nqz1OpfEW+WeI/oU0ly60zkV9YzOQSYtZVEGYmrysTZAJkY4qZtIBD9/LYTIK7Nww3vMiYBwA=) format("woff2-variations");unicode-range:U+0460-052F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Manrope Variable;font-style:normal;font-display:swap;font-weight:200 800;src:url(/assets/manrope-cyrillic-wght-normal-Dvxsihut.woff2) format("woff2-variations");unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}@font-face{font-family:Manrope Variable;font-style:normal;font-display:swap;font-weight:200 800;src:url(/assets/manrope-greek-wght-normal-DL7QRZyv.woff2) format("woff2-variations");unicode-range:U+0370-0377,U+037A-037F,U+0384-038A,U+038C,U+038E-03A1,U+03A3-03FF}@font-face{font-family:Manrope Variable;font-style:normal;font-display:swap;font-weight:200 800;src:url(/assets/manrope-vietnamese-wght-normal-usUDDRr7.woff2) format("woff2-variations");unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Manrope Variable;font-style:normal;font-display:swap;font-weight:200 800;src:url(/assets/manrope-latin-ext-wght-normal-Ch3YOpNY.woff2) format("woff2-variations");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Manrope Variable;font-style:normal;font-display:swap;font-weight:200 800;src:url(/assets/manrope-latin-wght-normal-DHIcAJRg.woff2) format("woff2-variations");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}:root{font-family:DM Sans Variable,sans-serif;color:#eff1e9;background:#151914;font-synthesis:none;font-size:16px;font-weight:400;--accent:#c7f465;--muted:#9ba393;--line:#30372b;--surface:#1c211a}*{box-sizing:border-box}body{margin:0}button,input,a{-webkit-tap-highlight-color:transparent}button,input{font:inherit}button,a{touch-action:manipulation}button{cursor:pointer}button:disabled{opacity:.5;cursor:default}button{color:inherit}a{color:inherit;text-decoration:none}button:focus-visible,a:focus-visible,input:focus-visible{outline:2px solid var(--accent);outline-offset:4px}button{border:0}.app-shell{min-height:100vh;display:grid;grid-template-columns:264px minmax(0,1fr)}.brand{display:flex;align-items:center;gap:11px;font-family:Manrope Variable,sans-serif;font-weight:800;font-size:30px;letter-spacing:-1.3px;margin-bottom:53px}.brand-symbol{background:var(--accent);width:44px;height:44px;border-radius:13px;display:grid;place-items:center;color:#1c2513;transform:rotate(-5deg)}.brand-period{color:var(--accent)}.brand small{display:block;color:var(--muted);font-family:DM Sans Variable,sans-serif;font-size:12px;letter-spacing:.7px;font-weight:400;margin-top:3px}.eyebrow{font-size:12px;font-weight:600;letter-spacing:1.6px;text-transform:uppercase}.ride-date{font-size:12px;color:#a2aa98}.icon-button{display:inline-flex;align-items:center;justify-content:center;background:transparent;color:#a9b19f;padding:6px;border-radius:5px}.topbar{height:78px;border-bottom:1px solid var(--line);display:flex;align-items:center;justify-content:space-between;padding:0 42px;font-size:14px}.breadcrumb{display:flex;align-items:center;gap:13px;color:var(--muted)}.breadcrumb span{color:#59624f}.breadcrumb strong{font-weight:400;color:#d4dbca}.text-button{display:inline-flex;align-items:center;gap:8px;padding:7px 0;background:transparent;font-size:14px}.main-content{padding:35px 42px 22px;max-width:1550px;margin:auto}.page-heading{display:flex;align-items:center;justify-content:space-between;gap:24px}.accent{color:var(--accent)}h1,h2,p{margin:0}h1,h2{font-family:Manrope Variable,sans-serif}h1{font-size:38px;line-height:1.2;letter-spacing:-1.5px;font-weight:750;margin:10px 0}h1 span,.section-top h2 span{color:var(--accent)}.page-heading p{font-size:14px;color:var(--muted)}.primary-button{display:inline-flex;align-items:center;justify-content:center;gap:10px;background:var(--accent);color:#1b2610;border:1px solid var(--accent);border-radius:7px;padding:13px 19px;font-size:14px;font-weight:650;white-space:nowrap}.ride-detail{transition:opacity .15s}.is-loading{opacity:.5;pointer-events:none}.ride-detail-heading{display:flex;align-items:center;justify-content:space-between;gap:20px;margin-bottom:23px}.detail-kicker{display:flex;align-items:center;gap:12px;color:#a4ae99}.ride-detail-heading h2{font-size:26px;letter-spacing:-.75px;font-weight:650;margin:9px 0}.ride-detail-heading p{display:flex;align-items:center;gap:9px;flex-wrap:wrap;font-size:12px;color:var(--muted)}.outline-button{display:flex;align-items:center;gap:8px;border:1px solid #4a5440;padding:10px 13px;border-radius:6px;font-size:13px;white-space:nowrap}.map-panel{height:350px;border:1px solid #35402c;border-radius:11px 11px 0 0;position:relative;overflow:hidden;background:#1c251a}.map-canvas,.map-fallback{position:absolute;inset:0}.map-fallback{display:flex;align-items:center;justify-content:center;background:radial-gradient(ellipse at 50% 50%,#25311e,#172014)}.route-trace{height:100%;width:100%;padding:16px 40px 25px;filter:drop-shadow(0 0 12px #c7f42016)}.map-label{position:absolute;bottom:14px;left:20px;font-size:10px;letter-spacing:1.6px;color:#b5c4a1;pointer-events:none;background:#172014a6;padding:4px}.map-notice{display:flex;align-items:center;gap:9px;position:absolute;bottom:41px;left:50%;transform:translate(-50%);padding:10px 12px;background:#12190fea;border:1px solid #445336;border-radius:7px;font-size:12px;white-space:nowrap;max-width:95%}.map-notice>svg{color:var(--accent);flex-shrink:0}.map-notice>span{color:#b7c2aa}.map-notice button{background:none;font-size:12px;color:var(--accent);border-left:1px solid #3a492e;padding-left:10px;white-space:nowrap}.map-notice button span{margin-left:4px}.map-actions{position:absolute;right:14px;bottom:38px;display:flex;gap:7px}.map-actions button{display:flex;align-items:center;gap:6px;background:#1e2719;border:1px solid #465539;padding:9px;border-radius:5px;font-size:12px}.no-gps{color:#aebb9f;text-align:center}.no-gps svg{margin-bottom:12px}.ride-stats{display:grid;grid-template-columns:repeat(4,1fr);background:#22291e;border:1px solid #37412d;border-top:0;border-radius:0 0 11px 11px;padding:24px 0;margin-bottom:28px}.ride-stats>div{padding:0 25px;border-right:1px solid #3a4332}.ride-stats>div:last-child{border:0}.ride-stats>div>span{display:flex;align-items:center;gap:8px;color:#adb79f;font-size:12px}.ride-stats svg{color:#8c9e78}.ride-stats strong{display:block;font-family:Manrope Variable,sans-serif;font-weight:600;font-size:33px;letter-spacing:-1px;margin-top:7px;font-variant-numeric:tabular-nums}.ride-stats small{font-family:DM Sans Variable,sans-serif;font-size:14px;font-weight:400;letter-spacing:0;color:#a9b49c;margin-left:7px}.chart-panel{border:1px solid var(--line);background:#191e17;border-radius:10px;padding:24px 25px 20px}.section-top{display:flex;align-items:center;justify-content:space-between}.section-top .eyebrow{color:#a0ac93;font-size:11px}.section-top h2{font-size:20px;font-weight:600;letter-spacing:-.5px;margin-top:5px}.secondary{font-size:12px;color:#8d9981}.metric-tabs{display:flex;gap:5px;overflow-x:auto;margin-top:22px;padding-bottom:15px;border-bottom:1px solid var(--line);scrollbar-width:thin}.metric-tabs button{display:flex;align-items:center;gap:7px;padding:9px 11px;border-radius:5px;background:transparent;white-space:nowrap;font-size:12px;color:#a4af98}.metric-tabs button.active{background:#34412a;color:var(--accent)}.chart-summary{display:flex;align-items:center;justify-content:space-between;gap:10px;padding-top:19px;font-size:12px}.chart-summary>div{display:flex;align-items:baseline;gap:8px}.chart-current{font-family:Manrope Variable,sans-serif;font-size:27px;font-weight:600}.chart-summary b{font-weight:400;color:#d9dfd1;margin-left:7px}.muted{color:var(--muted)}.chart-wrap{height:185px;margin-top:18px}.chart-empty{height:203px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:9px;color:var(--muted)}.chart-empty p{color:#d3dbc9;font-size:14px}.chart-empty span{font-size:12px;text-align:center}.footer{display:flex;justify-content:space-between;gap:15px;padding-top:32px;font-size:11px;color:#8d9880}.notice{display:flex;align-items:center;gap:10px;background:#283421;border:1px solid #495e38;padding:12px 15px;border-radius:7px;margin-bottom:20px;font-size:14px;line-height:1.5;overflow-wrap:anywhere}.notice>svg{flex-shrink:0}.notice .icon-button{margin-left:auto}.notice.error{background:#322321;border-color:#644039;color:#f0bcb0}.loading-main{display:flex;justify-content:center;gap:10px;padding:60px;color:var(--muted)}.spin{animation:spin 1s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.drop-overlay{position:fixed;inset:12px;z-index:100;background:#182310f2;border:2px dashed var(--accent);border-radius:14px;display:flex;flex-direction:column;align-items:center;justify-content:center;color:var(--accent);gap:20px}.drop-overlay>*{pointer-events:none}.drop-overlay p{color:#ccd8bc}.settings-dialog{background:#20271c;color:#eff1e9;border:1px solid #4a593c;padding:28px;border-radius:14px;width:min(500px,calc(100% - 32px));box-shadow:0 30px 100px #0008}.settings-dialog::backdrop{background:#060a06ba;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px)}.dialog-top{display:flex;align-items:center;justify-content:space-between}.settings-dialog h2{font-size:24px;letter-spacing:-.8px;margin:16px 0}.settings-dialog p{font-size:14px;color:#aebca0;line-height:1.6}.settings-dialog form{display:flex;flex-direction:column;margin-top:25px;gap:12px}.settings-dialog label{font-size:14px}.settings-dialog input{width:100%;background:#141b10;color:#eef5e7;border:1px solid #4b5a3f;border-radius:6px;padding:12px;font-size:14px}.settings-dialog small{font-size:12px;color:#9eac90;line-height:1.5}.settings-dialog a{display:flex;align-items:center;gap:5px;font-size:13px;color:var(--accent);margin-bottom:12px}.settings-dialog .primary-button{width:100%}.mapboxgl-ctrl-attrib{font-size:10px!important}@media(min-width:1600px){.main-content{padding-top:44px}.map-panel{height:420px}.chart-wrap{height:220px}}@media(max-width:1200px){.app-shell{grid-template-columns:230px minmax(0,1fr)}.main-content{padding:28px}.topbar{padding:0 28px}.ride-stats>div{padding:0 17px}.metric-tabs{gap:1px}.metric-tabs button{padding:9px}.map-notice{white-space:normal}.map-notice>span{max-width:230px}.ride-stats strong{font-size:29px}}@media(max-width:850px){.app-shell{grid-template-columns:190px minmax(0,1fr)}.brand{font-size:25px;gap:9px}.brand-symbol{width:36px;height:36px}.brand small{font-size:10px;letter-spacing:.3px}.main-content{padding:25px 20px}.topbar{padding:0 20px;height:66px}h1{font-size:30px}.page-heading{align-items:flex-start}.page-heading>.primary-button{padding:11px;font-size:12px;margin-top:10px}.page-heading .eyebrow{font-size:10px}.page-heading p{font-size:12px}.ride-detail-heading h2{font-size:23px}.detail-kicker{flex-wrap:wrap;gap:8px}.ride-stats{grid-template-columns:repeat(2,1fr);row-gap:22px}.ride-stats>div:nth-child(2){border:0}.map-panel{height:320px}.chart-panel{padding:19px 17px}.secondary{display:none}.footer>span:last-child{display:none}.outline-button span{display:none}.map-notice{bottom:35px;gap:7px;font-size:11px}.map-notice button{font-size:11px}.map-notice>svg{display:none}.route-trace{padding:20px 8px 35px}}@media(max-width:760px){.app-shell{display:flex;flex-direction:column}.brand{margin-bottom:20px;font-size:27px}.brand small{font-size:11px}.brand-symbol{width:40px;height:40px}.topbar{height:52px;padding:0 20px}.breadcrumb{font-size:12px}.main-content{padding:23px 18px}.page-heading{flex-wrap:wrap;gap:16px}.page-heading>.primary-button{margin:0;padding:12px 15px;font-size:14px}.page-heading .eyebrow{font-size:11px}h1{font-size:34px}.page-heading p{font-size:14px}.ride-detail-heading h2{font-size:24px}.ride-detail-heading p{gap:6px}.detail-kicker .eyebrow{font-size:10px}.map-panel{height:300px}.map-notice{width:90%;justify-content:space-between}.map-notice>span{max-width:150px}.map-notice button{font-size:12px}.ride-stats{padding:20px 0;margin-bottom:22px}.ride-stats strong{font-size:30px}.ride-stats>div{padding:0 20px}.chart-panel{padding:20px 13px 16px}.section-top h2{font-size:19px}.chart-current{font-size:24px}.chart-summary{font-size:11px}.chart-wrap{height:180px}.metric-tabs button{font-size:12px;padding:9px 10px}.chart-empty span{max-width:250px}.settings-dialog{padding:22px}.drop-overlay{text-align:center;padding:20px}.drop-overlay h2{font-size:24px}.drop-overlay p{font-size:14px}.footer{padding-top:25px}.notice{font-size:13px}}@media(prefers-reduced-motion:reduce){*{animation:none!important;transition:none!important;scroll-behavior:auto!important}}.ride-detail-heading>div{min-width:0}.ride-detail-heading h2{overflow-wrap:anywhere}.settings-dialog .token-error{color:#f0bcb0}.map-panel:fullscreen,.map-panel.map-panel-expanded{width:100%;height:100%;border:0;border-radius:0}.map-panel.map-panel-expanded{position:fixed;inset:0;z-index:1000;height:100dvh}.ride-actions{display:flex;align-items:center;flex-wrap:wrap;justify-content:flex-end;gap:8px;flex-shrink:0}.ride-actions button{background:transparent}.ride-actions .delete-ride-button{color:#edafa0;border-color:#69483e}.ride-action-dialog .dialog-actions{display:flex;justify-content:flex-end;gap:10px;margin-top:12px}.dialog-actions .outline-button{background:transparent;justify-content:center}.ride-action-dialog .dialog-actions .primary-button{width:auto}.danger-button{display:inline-flex;justify-content:center;align-items:center;gap:8px;background:#a63729;color:#fff;border:1px solid #ce5a48;border-radius:7px;padding:13px 16px;font-size:14px;font-weight:600}.ride-action-dialog #delete-description{overflow-wrap:anywhere}@media(max-width:1100px){.ride-actions .outline-button span{display:none}}.ride-menu{display:none;position:relative;flex-shrink:0}.ride-menu-button{padding:8px 10px;background:transparent}.ride-menu-list{position:absolute;top:calc(100% + 6px);right:0;z-index:30;display:flex;flex-direction:column;min-width:220px;max-width:calc(100vw - 32px);padding:6px;border:1px solid var(--line);border-radius:10px;background:var(--surface);box-shadow:0 16px 40px #0009}.ride-menu-list>:is(a,button){display:flex;align-items:center;gap:10px;width:100%;padding:11px 12px;border-radius:6px;background:transparent;color:var(--text);font-size:14px;text-align:left;white-space:nowrap}.ride-menu-list>:is(a,button):focus-visible{outline:2px solid var(--accent);outline-offset:-2px}.ride-menu-list .ride-menu-delete{color:#edafa0}.ride-menu-separator{height:1px;margin:5px 6px;background:var(--line)}[data-theme=light] .ride-menu-list{box-shadow:0 16px 40px #28351b2e}[data-theme=light] .ride-menu-list .ride-menu-delete{color:#a33224}@media(max-width:760px){.ride-detail-heading{align-items:flex-start}.ride-actions{display:none}.ride-menu{display:block}}.breadcrumb button{background:transparent;color:inherit;padding:0;font-size:inherit}.app-shell{display:block}.topbar{gap:32px;height:90px}.topbar .brand{margin:0;flex-shrink:0;font-size:27px}.topbar .brand-symbol{width:40px;height:40px}.topbar .breadcrumb{flex:1;min-width:0}.topbar .breadcrumb button,.topbar .breadcrumb a{flex-shrink:0}@media(max-width:760px){.topbar{height:auto;min-height:80px;display:grid;grid-template-columns:minmax(0,1fr) auto;gap:18px;padding:18px}.topbar .brand{grid-column:1;grid-row:1}.topbar .breadcrumb{grid-column:1 / -1;grid-row:2}.topbar .breadcrumb strong{max-width:none;min-width:0}}.breadcrumb strong{max-width:min(48vw,560px);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.overview-section-heading{display:flex;align-items:flex-end;justify-content:space-between;gap:20px;margin-bottom:17px}.overview-section-heading h2{margin-top:6px;font-size:21px;font-weight:600;letter-spacing:-.55px}.overview-section-heading h2 span{color:var(--accent)}.overview-periods{margin-top:31px}.overview>.notice{margin-top:24px}.period-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}.period-card{min-width:0;padding:22px;border:1px solid #35402d;border-radius:10px;background:#191f17}.period-card-heading{display:flex;align-items:flex-start;justify-content:space-between;gap:16px}.period-card-heading .eyebrow{color:#9da995;font-size:10px}.period-card-heading h2{margin-top:7px;font-size:25px;font-weight:600;letter-spacing:-.7px}.period-card-heading>span{color:var(--muted);font-size:12px;text-align:right}.period-stats{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));margin-top:22px;padding-top:18px;border-top:1px solid var(--line)}.period-stats>div{display:grid;grid-template-columns:16px minmax(0,1fr);align-items:center;column-gap:7px;min-width:0;padding:0 15px;border-right:1px solid var(--line)}.period-stats>div:first-child{padding-left:0}.period-stats>div:last-child{padding-right:0;border-right:0}.period-stats svg{color:#879778}.period-stats span{display:block;color:var(--muted);font-size:11px}.period-stats strong{grid-column:1 / -1;display:block;margin-top:5px;font-family:Manrope Variable,sans-serif;font-size:inherit;font-weight:600;white-space:nowrap}.period-stats small{color:#a7b19d;font-family:DM Sans Variable,sans-serif;font-size:11px;font-weight:400}.period-value{font-size:19px;grid-column:1 / -1;display:flex;align-items:baseline;flex-wrap:wrap;gap:4px 8px}.period-card .period-previous{display:inline-flex;align-items:baseline;gap:4px;font-family:DM Sans Variable,sans-serif;font-size:inherit;font-weight:400;letter-spacing:0;white-space:nowrap}.period-card .period-previous span{display:inline;color:inherit;font-size:inherit}.period-card .period-previous svg,.period-card .period-previous small{color:inherit;margin:0;flex-shrink:0}.period-card .trend-up{color:#a5cfa1}.period-card .trend-down{color:#dca8a3}.period-card .trend-equal{color:var(--muted)}.period-card-heading h2 .period-previous{margin-left:10px}.period-card-heading .period-previous small{font-size:inherit}[data-theme=light] .period-card .trend-up{color:#55824a}[data-theme=light] .period-card .trend-down{color:#ad635b}.overview-rides{margin-top:34px}.overview-ride-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.overview-ride-card{min-width:0;padding:17px 18px;border:1px solid var(--line);border-radius:8px;background:#181d16;text-align:left}.overview-ride-card>strong{display:block;margin:7px 0 12px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:15px;font-weight:550}.overview-ride-values{display:flex;align-items:center;flex-wrap:wrap;gap:14px;color:var(--muted);font-size:12px}.overview-ride-values>span{white-space:nowrap}.overview-ride-values svg{margin-left:auto;color:var(--accent);flex-shrink:0}.overview-empty{display:flex;align-items:center;gap:16px;padding:24px;border:1px dashed #47513e;border-radius:9px;color:#9ba793}.overview-empty>svg{color:var(--accent);flex-shrink:0}.overview-empty strong{display:block;color:#d4dccb;font-size:14px;font-weight:550}.overview-empty p{margin-top:5px;color:var(--muted);font-size:12px}.overview-empty .outline-button{margin-left:auto;background:transparent}@media(max-width:1100px){.period-stats>div{padding:0 10px}.period-value{font-size:17px}}@media(max-width:900px){.period-grid,.overview-ride-grid{grid-template-columns:1fr}}@media(max-width:760px){.breadcrumb strong{max-width:42vw}.overview-periods{margin-top:26px}.period-card{padding:18px}.period-card-heading h2{font-size:22px}.overview-rides{margin-top:28px}.overview-ride-values{gap:10px}.overview-empty{align-items:flex-start;flex-wrap:wrap}.overview-empty .outline-button{width:100%;margin-left:0;justify-content:center}}@media(max-width:430px){.period-stats>div{grid-template-columns:minmax(0,1fr)}.period-stats svg{margin-bottom:7px}}:root{color-scheme:dark;--text: #eff1e9;--chart-altitude: #c7f465;--chart-speed: #7edbd0;--chart-heartRate: #ee9ca8;--chart-power: #e7c379;--chart-cadence: #b6a1ed;--chart-temperature: #f3a778}.theme-toggle,.topbar-link{display:inline-flex;align-items:center;justify-content:center;gap:8px;flex-shrink:0;min-height:42px;padding:10px 14px;border:1px solid var(--line);border-radius:8px;background:var(--surface);color:var(--text);font-size:13px}.import-dialog{width:min(580px,calc(100% - 32px));max-height:calc(100dvh - 40px);overflow-y:auto}.import-status{display:flex;align-items:flex-start;gap:14px;margin:22px 0 16px;color:var(--text)}.import-status>svg{flex-shrink:0;color:var(--accent)}.import-status>div{min-width:0;font-size:14px}.import-status span{display:block;margin-top:7px;color:var(--muted)}.import-filename{overflow-wrap:anywhere}.import-progress{display:block;width:100%;height:9px;border:0;border-radius:5px;overflow:hidden;background:var(--line);accent-color:var(--accent)}.import-progress::-webkit-progress-bar{background:var(--line)}.import-progress::-webkit-progress-value{background:var(--accent)}.import-progress::-moz-progress-bar{background:var(--accent)}.import-counts{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin:24px 0}.import-counts strong{display:block;font-size:26px;font-weight:600}.import-counts span{display:block;margin-top:5px;color:var(--muted);font-size:12px}.import-details{list-style:none;margin:0 0 24px;padding:0;max-height:200px;overflow-y:auto}.import-details li{border-top:1px solid var(--line);padding:12px 0;font-size:13px;overflow-wrap:anywhere}.import-details strong,.import-details span{display:block}.import-details span{margin-top:6px;color:var(--muted);line-height:1.5}.import-dialog .import-warning{margin-bottom:20px}.import-dialog .import-hint{font-size:12px}:root[data-theme=light]{color-scheme:light;color:#243020;background:#f5f7f2;--text: #243020;--accent: #456d1b;--muted: #65715d;--line: #d7dfd0;--surface: #ffffff;--chart-altitude: #507a22;--chart-speed: #187b76;--chart-heartRate: #b84061;--chart-power: #97701b;--chart-cadence: #7551b2;--chart-temperature: #b95924}[data-theme=light] .topbar{background:#fff}[data-theme=light] .brand-symbol{background:#c7f465}[data-theme=light] .primary-button{background:#c7f465;border-color:#a6d54d;color:#233712}[data-theme=light] .breadcrumb strong,[data-theme=light] .chart-summary b,[data-theme=light] .chart-empty p,[data-theme=light] .overview-empty strong{color:var(--text)}[data-theme=light] .breadcrumb>span{color:var(--muted)}[data-theme=light] .period-card,[data-theme=light] .overview-ride-card,[data-theme=light] .chart-panel{background:#fff;border-color:var(--line)}[data-theme=light] .period-card-heading .eyebrow,[data-theme=light] .period-value>strong>small,[data-theme=light] .ride-date,[data-theme=light] .detail-kicker,[data-theme=light] .secondary,[data-theme=light] .section-top .eyebrow,[data-theme=light] .footer,[data-theme=light] .icon-button,[data-theme=light] .period-stats>div>svg,[data-theme=light] .ride-stats svg{color:#66814f}[data-theme=light] .ride-stats{background:#eaf0e3;border-color:#cbd7c0}[data-theme=light] .ride-stats>div{border-color:#cbd7c0}[data-theme=light] .ride-stats>div>span,[data-theme=light] .ride-stats small{color:#5b6c4d}[data-theme=light] .outline-button,[data-theme=light] .overview-empty{border-color:#b5c4a8}[data-theme=light] .ride-actions .delete-ride-button{color:#a33224;border-color:#d9aea6}[data-theme=light] .metric-tabs button{color:var(--muted)}[data-theme=light] .metric-tabs button.active{background:#e6efd9;color:#3e6419}[data-theme=light] .notice{background:#e8f3df;border-color:#b6d39d;color:#365c20}[data-theme=light] .notice.error{background:#fff0ec;border-color:#dfb4a8;color:#963d2b}[data-theme=light] .settings-dialog{background:#fff;color:var(--text);border-color:#c0ceb4;box-shadow:0 30px 100px #28351b30}[data-theme=light] .settings-dialog::backdrop{background:#293c245c}[data-theme=light] .settings-dialog p,[data-theme=light] .settings-dialog small{color:var(--muted)}[data-theme=light] .settings-dialog input{background:#f5f7f2;color:var(--text);border-color:#b8c7aa}[data-theme=light] .settings-dialog .token-error{color:#a33224}[data-theme=light] .drop-overlay{background:#f4f8eef5}[data-theme=light] .drop-overlay p{color:var(--muted)}.chart-note{display:flex;flex-wrap:wrap;align-items:center;gap:4px 14px;margin-top:14px;color:var(--muted);font-size:12px;line-height:1.5}.chart-note .text-button{gap:5px;padding:0;color:var(--accent);font-size:12px}.chart-note-error{margin:12px 0 0}.weather-dialog{width:min(560px,calc(100% - 32px));max-height:calc(100dvh - 40px);overflow-y:auto}.weather-dialog h2{margin-bottom:8px}.weather-dialog h3{margin:18px 0 4px;font-size:14px;font-weight:600}.weather-dialog dl{display:grid;gap:8px;margin:20px 0 0;padding:14px;border:1px solid var(--line);border-radius:8px;font-size:13px}.weather-dialog dl div{display:flex;flex-wrap:wrap;justify-content:space-between;gap:2px 12px}.weather-dialog dt{color:var(--muted)}.weather-dialog dd{margin:0;text-align:right}.weather-dialog .weather-links{display:flex;flex-wrap:wrap;gap:6px 18px;margin-top:18px}.weather-dialog .weather-links a{display:inline-flex;margin:0}.weather-dialog .primary-button{width:100%;margin-top:20px;white-space:normal}:root:not([data-theme=light]) .map-panel .mapboxgl-ctrl-group{background:#1e2719;border:1px solid #465539;border-radius:5px;box-shadow:none;overflow:hidden}:root:not([data-theme=light]) .map-panel .mapboxgl-ctrl-group button+button{border-top-color:#465539}:root:not([data-theme=light]) .map-panel .mapboxgl-ctrl-icon{filter:invert(1) brightness(1.15)}:root:not([data-theme=light]) .map-panel .mapboxgl-ctrl button:not(:disabled):hover{background-color:transparent;background-image:linear-gradient(var(--hover-overlay),var(--hover-overlay))}.map-panel .mapboxgl-ctrl-group button:focus:not(:focus-visible){box-shadow:none}.map-panel .mapboxgl-ctrl-group button:focus-visible{box-shadow:inset 0 0 0 2px var(--accent)}.map-panel>.map-canvas{position:absolute;inset:0}[data-theme=light] .map-panel{border-color:#cbd7c0}[data-theme=light] .map-actions button,[data-theme=light] .map-notice{background:#fffffff0;border-color:#bccbad;color:var(--text)}[data-theme=light] .map-notice>span{color:#405236}[data-theme=light] .map-label{background:#ffffffe0;color:#405236}[data-theme=light] .map-fallback{background:radial-gradient(ellipse at 50% 50%,#e9f0e1,#f5f7f2);color:#61794d}[data-theme=light] .route-trace polyline{stroke:#163b73}[data-theme=light] .no-gps{color:var(--muted)}@media(max-width:760px){.topbar .topbar-actions{grid-column:2;grid-row:1}}.topbar-actions{display:flex;align-items:center;gap:10px;flex-shrink:0}.topbar-link[aria-current=page]{color:var(--accent);border-color:color-mix(in srgb,var(--accent) 45%,var(--line))}@media(max-width:1100px){.topbar-actions .topbar-link span,.topbar-actions .theme-toggle span{display:none}}.year-switch{display:flex;align-items:center;gap:6px;padding:4px;border:1px solid var(--line);border-radius:8px;background:var(--surface)}.year-switch strong{min-width:48px;text-align:center;font-family:Manrope Variable,sans-serif;font-size:17px;font-weight:650;font-variant-numeric:tabular-nums}.year-switch .icon-button:disabled{opacity:.3}.dashboard>.notice{margin-top:24px}.dashboard-panel{margin-top:28px}.dashboard-empty{margin-top:31px}.dashboard-chart{height:240px}.dashboard-pair{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}.dashboard-pair>.dashboard-panel{min-width:0}.dashboard-chart-small{height:190px}.dashboard-chart-empty{height:208px}@media(max-width:900px){.dashboard-pair{grid-template-columns:minmax(0,1fr);gap:0}}.chart-current.accent{color:var(--accent)}.heatmap-scroll{position:relative;overflow-x:auto;margin-top:22px;padding-bottom:10px}.heatmap{display:grid;gap:3px;min-width:560px}.heatmap-month,.heatmap-weekday{color:var(--muted);font-size:11px;line-height:1;white-space:nowrap}.heatmap-month{padding-bottom:6px}.heatmap-weekday{align-self:center;padding-right:8px}.heatmap-cell{display:block;aspect-ratio:1;border-radius:2px;background:color-mix(in srgb,var(--line) 75%,transparent)}.heatmap-cell.level-1{background:color-mix(in srgb,var(--accent) 32%,var(--surface))}.heatmap-cell.level-2{background:color-mix(in srgb,var(--accent) 55%,var(--surface))}.heatmap-cell.level-3{background:color-mix(in srgb,var(--accent) 78%,var(--surface))}.heatmap-cell.level-4{background:var(--accent)}.heatmap-cell.future{opacity:.35}.heatmap-legend{display:flex;justify-content:flex-end;flex-wrap:wrap;gap:8px 14px;margin-top:14px;color:var(--muted);font-size:11px}.heatmap-legend>span{display:inline-flex;align-items:center;gap:6px}.heatmap-legend .heatmap-cell{width:11px}.dashboard-records{margin-top:34px}.record-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}.record-card{display:flex;flex-direction:column;min-width:0;padding:18px 20px;border:1px solid var(--line);border-radius:10px;background:#191f17}.record-card .eyebrow{color:#9da995;font-size:10px}.record-card strong{margin:10px 0 12px;font-family:Manrope Variable,sans-serif;font-size:27px;font-weight:600;letter-spacing:-.7px;font-variant-numeric:tabular-nums}.record-card small{color:var(--muted);font-family:DM Sans Variable,sans-serif;font-size:13px;font-weight:400;letter-spacing:0}.record-context{display:flex;align-items:center;gap:8px;margin-top:auto;color:var(--muted);font-size:12px}.record-context>span{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.record-context svg{margin-left:auto;flex-shrink:0;color:var(--accent)}[data-theme=light] .record-card{background:#fff}[data-theme=light] .record-card .eyebrow{color:#66814f}@media(max-width:1100px){.record-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:760px){.dashboard-panel{margin-top:22px}.dashboard-chart{height:200px}}.dashboard-panel .section-top{flex-wrap:wrap;gap:8px 16px}.dashboard-panel .chart-summary{padding-top:10px}.dashboard-meta{color:var(--muted);font-size:12px}@media(max-width:560px){.record-grid{grid-template-columns:1fr}}.auth-page{min-height:100vh;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:32px;padding:32px 16px}.auth-page .brand{margin:0}.auth-card{display:flex;flex-direction:column;gap:10px;width:min(420px,100%);padding:30px;border:1px solid var(--line);border-radius:14px;background:var(--surface)}.auth-card h1{font-size:28px;margin:0}.auth-card>p{color:var(--muted);font-size:14px;margin-bottom:12px}.auth-card label{font-size:14px;margin-top:6px}.auth-card input{width:100%;background:#141b10;color:var(--text);border:1px solid #4b5a3f;border-radius:6px;padding:12px;font-size:16px}.auth-card small{color:var(--muted);font-size:12px}.auth-card .notice{margin:0 0 4px}.auth-card .primary-button{margin-top:14px}.auth-switch{justify-content:center;color:var(--accent)}[data-theme=light] .auth-card input{background:#fff;border-color:#b5c4a8}@media(max-width:480px){.auth-card{padding:22px}}@media(max-width:374px){.topbar{gap:12px;padding:16px 14px}.topbar .brand{font-size:23px;gap:8px}.topbar .brand-symbol{width:34px;height:34px}.topbar-actions{gap:6px}.topbar-actions .topbar-link,.topbar-actions .theme-toggle{min-height:38px;padding:8px 9px}}.switch{display:inline-flex;align-items:center;gap:10px;flex-shrink:0;color:var(--muted);font-size:13px;cursor:pointer;-webkit-user-select:none;user-select:none}.switch input{position:absolute;opacity:0;width:1px;height:1px}.switch-track{position:relative;width:38px;height:22px;flex-shrink:0;border:1px solid var(--line);border-radius:11px;background:var(--surface);transition:background .15s,border-color .15s}.switch-track:after{content:"";position:absolute;top:3px;left:3px;width:14px;height:14px;border-radius:50%;background:var(--muted);transition:transform .15s,background .15s}.switch input:checked+.switch-track{background:var(--accent);border-color:var(--accent)}.switch input:checked+.switch-track:after{transform:translate(16px);background:#1b2610}.switch input:focus-visible+.switch-track{outline:2px solid var(--accent);outline-offset:3px}[data-theme=light] .switch input:checked+.switch-track{background:#c7f465;border-color:#a6d54d}[data-theme=light] .switch input:checked+.switch-track:after{background:#233712}@media(max-width:480px){.overview-periods .overview-section-heading{flex-wrap:wrap;align-items:center}}.recharts-surface:focus:not(:focus-visible){outline:none}.recharts-surface:focus-visible{outline:2px solid var(--accent);outline-offset:4px;border-radius:4px}.recharts-wrapper [tabindex="-1"]:focus{outline:none}:root{--hover-overlay: rgb(255 255 255 / .07);--active-overlay: rgb(255 255 255 / .13)}:root[data-theme=light]{--hover-overlay: rgb(36 48 32 / .06);--active-overlay: rgb(36 48 32 / .12)}@media(hover:hover){:is(.primary-button,.danger-button,.outline-button,.theme-toggle,.topbar-link,.icon-button,.metric-tabs button,.map-actions button):hover:not(:disabled){background-image:linear-gradient(var(--hover-overlay),var(--hover-overlay))}:is(.outline-button,.theme-toggle,.topbar-link,.map-actions button):hover:not(:disabled){border-color:color-mix(in srgb,currentColor 40%,var(--line))}.ride-menu-list>:is(a,button):hover:not(:disabled){background-image:linear-gradient(var(--hover-overlay),var(--hover-overlay))}:is(.text-button,.map-notice button):hover:not(:disabled){text-decoration:underline;text-underline-offset:3px}.breadcrumb :is(a,button):hover{color:#d4dbca}[data-theme=light] .breadcrumb :is(a,button):hover{color:var(--text)}:is(.overview-ride-card,a.record-card):hover{border-color:#4b5c3c;background:#20271c}[data-theme=light] :is(.overview-ride-card,a.record-card):hover{border-color:#a9bd96;background:#f3f7ee}.switch:hover{color:var(--text)}}:is(.primary-button,.danger-button,.outline-button,.theme-toggle,.topbar-link,.icon-button,.metric-tabs button,.map-actions button,.overview-ride-card,a.record-card,.ride-menu-list>a,.ride-menu-list>button):active:not(:disabled){background-image:linear-gradient(var(--active-overlay),var(--active-overlay))}
