.leaflet-pane,.leaflet-tile,.leaflet-marker-icon,.leaflet-marker-shadow,.leaflet-tile-container,.leaflet-pane>svg,.leaflet-pane>canvas,.leaflet-zoom-box,.leaflet-image-layer,.leaflet-layer{position:absolute;top:0;left:0}.leaflet-container{overflow:hidden}.leaflet-tile,.leaflet-marker-icon,.leaflet-marker-shadow{-webkit-user-select:none;user-select:none;-webkit-user-drag:none}.leaflet-tile::selection{background:0 0}.leaflet-safari .leaflet-tile{image-rendering:-webkit-optimize-contrast}.leaflet-safari .leaflet-tile-container{-webkit-transform-origin:0 0;width:1600px;height:1600px}.leaflet-marker-icon,.leaflet-marker-shadow{display:block}.leaflet-container .leaflet-overlay-pane svg{max-width:none!important;max-height:none!important}.leaflet-container .leaflet-marker-pane img,.leaflet-container .leaflet-shadow-pane img,.leaflet-container .leaflet-tile-pane img,.leaflet-container img.leaflet-image-layer,.leaflet-container .leaflet-tile{width:auto;padding:0;max-width:none!important;max-height:none!important}.leaflet-container img.leaflet-tile{mix-blend-mode:plus-lighter}.leaflet-container.leaflet-touch-zoom{-ms-touch-action:pan-x pan-y;touch-action:pan-x pan-y}.leaflet-container.leaflet-touch-drag{-ms-touch-action:pinch-zoom;touch-action:none;touch-action:pinch-zoom}.leaflet-container.leaflet-touch-drag.leaflet-touch-zoom{-ms-touch-action:none;touch-action:none}.leaflet-container{-webkit-tap-highlight-color:transparent}.leaflet-container a{-webkit-tap-highlight-color:#33b5e566}.leaflet-tile{filter:inherit;visibility:hidden}.leaflet-tile-loaded{visibility:inherit}.leaflet-zoom-box{box-sizing:border-box;z-index:800;width:0;height:0}.leaflet-overlay-pane svg{-moz-user-select:none}.leaflet-pane{z-index:400}.leaflet-tile-pane{z-index:200}.leaflet-overlay-pane{z-index:400}.leaflet-shadow-pane{z-index:500}.leaflet-marker-pane{z-index:600}.leaflet-tooltip-pane{z-index:650}.leaflet-popup-pane{z-index:700}.leaflet-map-pane canvas{z-index:100}.leaflet-map-pane svg{z-index:200}.leaflet-vml-shape{width:1px;height:1px}.lvml{behavior:url(#default#VML);display:inline-block;position:absolute}.leaflet-control{z-index:800;pointer-events:visiblePainted;pointer-events:auto;position:relative}.leaflet-top,.leaflet-bottom{z-index:1000;pointer-events:none;position:absolute}.leaflet-top{top:0}.leaflet-right{right:0}.leaflet-bottom{bottom:0}.leaflet-left{left:0}.leaflet-control{float:left;clear:both}.leaflet-right .leaflet-control{float:right}.leaflet-top .leaflet-control{margin-top:10px}.leaflet-bottom .leaflet-control{margin-bottom:10px}.leaflet-left .leaflet-control{margin-left:10px}.leaflet-right .leaflet-control{margin-right:10px}.leaflet-fade-anim .leaflet-popup{opacity:0;transition:opacity .2s linear}.leaflet-fade-anim .leaflet-map-pane .leaflet-popup{opacity:1}.leaflet-zoom-animated{transform-origin:0 0}svg.leaflet-zoom-animated{will-change:transform}.leaflet-zoom-anim .leaflet-zoom-animated{-webkit-transition:-webkit-transform .25s cubic-bezier(0,0,.25,1);-moz-transition:-moz-transform .25s cubic-bezier(0,0,.25,1);transition:transform .25s cubic-bezier(0,0,.25,1)}.leaflet-zoom-anim .leaflet-tile,.leaflet-pan-anim .leaflet-tile{transition:none}.leaflet-zoom-anim .leaflet-zoom-hide{visibility:hidden}.leaflet-interactive{cursor:pointer}.leaflet-grab{cursor:-webkit-grab;cursor:-moz-grab;cursor:grab}.leaflet-crosshair,.leaflet-crosshair .leaflet-interactive{cursor:crosshair}.leaflet-popup-pane,.leaflet-control{cursor:auto}.leaflet-dragging .leaflet-grab,.leaflet-dragging .leaflet-grab .leaflet-interactive,.leaflet-dragging .leaflet-marker-draggable{cursor:move;cursor:-webkit-grabbing;cursor:-moz-grabbing;cursor:grabbing}.leaflet-marker-icon,.leaflet-marker-shadow,.leaflet-image-layer,.leaflet-pane>svg path,.leaflet-tile-container{pointer-events:none}.leaflet-marker-icon.leaflet-interactive,.leaflet-image-layer.leaflet-interactive,.leaflet-pane>svg path.leaflet-interactive,svg.leaflet-image-layer.leaflet-interactive path{pointer-events:visiblePainted;pointer-events:auto}.leaflet-container{outline-offset:1px;background:#ddd}.leaflet-container a{color:#0078a8}.leaflet-zoom-box{background:#ffffff80;border:2px dotted #38f}.leaflet-container{font-family:Helvetica Neue,Arial,Helvetica,sans-serif;font-size:.75rem;line-height:1.5}.leaflet-bar{border-radius:4px;box-shadow:0 1px 5px #000000a6}.leaflet-bar a{text-align:center;color:#000;background-color:#fff;border-bottom:1px solid #ccc;width:26px;height:26px;line-height:26px;text-decoration:none;display:block}.leaflet-bar a,.leaflet-control-layers-toggle{background-position:50%;background-repeat:no-repeat;display:block}.leaflet-bar a:hover,.leaflet-bar a:focus{background-color:#f4f4f4}.leaflet-bar a:first-child{border-top-left-radius:4px;border-top-right-radius:4px}.leaflet-bar a:last-child{border-bottom:none;border-bottom-right-radius:4px;border-bottom-left-radius:4px}.leaflet-bar a.leaflet-disabled{cursor:default;color:#bbb;background-color:#f4f4f4}.leaflet-touch .leaflet-bar a{width:30px;height:30px;line-height:30px}.leaflet-touch .leaflet-bar a:first-child{border-top-left-radius:2px;border-top-right-radius:2px}.leaflet-touch .leaflet-bar a:last-child{border-bottom-right-radius:2px;border-bottom-left-radius:2px}.leaflet-control-zoom-in,.leaflet-control-zoom-out{text-indent:1px;font:700 18px Lucida Console,Monaco,monospace}.leaflet-touch .leaflet-control-zoom-in,.leaflet-touch .leaflet-control-zoom-out{font-size:22px}.leaflet-control-layers{background:#fff;border-radius:5px;box-shadow:0 1px 5px #0006}.leaflet-control-layers-toggle{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABoAAAAaCAQAAAADQ4RFAAACf0lEQVR4AY1UM3gkARTePdvdoTxXKc+qTl3aU5U6b2Kbkz3Gtq3Zw6ziLGNPzrYx7946Tr6/ee/XeCQ4D3ykPtL5tHno4n0d/h3+xfuWHGLX81cn7r0iTNzjr7LrlxCqPtkbTQEHeqOrTy4Yyt3VCi/IOB0v7rVC7q45Q3Gr5K6jt+3Gl5nCoDD4MtO+j96Wu8atmhGqcNGHObuf8OM/x3AMx38+4Z2sPqzCxRFK2aF2e5Jol56XTLyggAMTL56XOMoS1W4pOyjUcGGQdZxU6qRh7B9Zp+PfpOFlqt0zyDZckPi1ttmIp03jX8gyJ8a/PG2yutpS/Vol7peZIbZcKBAEEheEIAgFbDkz5H6Zrkm2hVWGiXKiF4Ycw0RWKdtC16Q7qe3X4iOMxruonzegJzWaXFrU9utOSsLUmrc0YjeWYjCW4PDMADElpJSSQ0vQvA1Tm6/JlKnqFs1EGyZiFCqnRZTEJJJiKRYzVYzJck2Rm6P4iH+cmSY0YzimYa8l0EtTODFWhcMIMVqdsI2uiTvKmTisIDHJ3od5GILVhBCarCfVRmo4uTjkhrhzkiBV7SsaqS+TzrzM1qpGGUFt28pIySQHR6h7F6KSwGWm97ay+Z+ZqMcEjEWebE7wxCSQwpkhJqoZA5ivCdZDjJepuJ9IQjGGUmuXJdBFUygxVqVsxFsLMbDe8ZbDYVCGKxs+W080max1hFCarCfV+C1KATwcnvE9gRRuMP2prdbWGowm1KB1y+zwMMENkM755cJ2yPDtqhTI6ED1M/82yIDtC/4j4BijjeObflpO9I9MwXTCsSX8jWAFeHr05WoLTJ5G8IQVS/7vwR6ohirYM7f6HzYpogfS3R2OAAAAAElFTkSuQmCC);width:36px;height:36px}.leaflet-retina .leaflet-control-layers-toggle{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADQAAAA0CAQAAABvcdNgAAAEsklEQVR4AWL4TydIhpZK1kpWOlg0w3ZXP6D2soBtG42jeI6ZmQTHzAxiTbSJsYLjO9HhP+WOmcuhciVnmHVQcJnp7DFvScowZorad/+V/fVzMdMT2g9Cv9guXGv/7pYOrXh2U+RRR3dSd9JRx6bIFc/ekqHI29JC6pJ5ZEh1yWkhkbcFeSjxgx3L2m1cb1C7bceyxA+CNjT/Ifff+/kDk2u/w/33/IeCMOSaWZ4glosqT3DNnNZQ7Cs58/3Ce5HL78iZH/vKVIaYlqzfdLu8Vi7dnvUbEza5Idt36tquZFldl6N5Z/POLof0XLK61mZCmJSWjVF9tEjUluu74IUXvgttuVIHE7YxSkaYhJZam7yiM9Pv82JYfl9nptxZaxMJE4YSPty+vF0+Y2up9d3wwijfjZbabqm/3bZ9ecKHsiGmRflnn1MW4pjHf9oLufyn2z3y1D6n8g8TZhxyzipLNPnAUpsOiuWimg52psrTZYnOWYNDTMuWBWa0tJb4rgq1UvmutpaYEbZlwU3CLJm/ayYjHW5/h7xWLn9Hh1vepDkyf7dE7MtT5LR4e7yYpHrkhOUpEfssBLq2pPhAqoSWKUkk7EDqkmK6RrCEzqDjhNDWNE+XSMvkJRDWlZTmCW0l0PHQGRZY5t1L83kT0Y3l2SItk5JAWHl2dCOBm+fPu3fo5/3v61RMCO9Jx2EEYYhb0rmNQMX/vm7gqOEJLcXTGw3CAuRNeyaPWwjR8PRqKQ1PDA/dpv+on9Shox52WFnx0KY8onHayrJzm87i5h9xGw/tfkev0jGsQizqezUKjk12hBMKJ4kbCqGPVNXudyyrShovGw5CgxsRICxF6aRmSjlBnHRzg7Gx8fKqEubI2rahQYdR1YgDIRQO7JvQyD52hoIQx0mxa0ODtW2Iozn1le2iIRdzwWewedyZzewidueOGqlsn1MvcnQpuVwLGG3/IR1hIKxCjelIDZ8ldqWz25jWAsnldEnK0Zxro19TGVb2ffIZEsIO89EIEDvKMPrzmBOQcKQ+rroye6NgRRxqR4U8EAkz0CL6uSGOm6KQCdWjvjRiSP1BPalCRS5iQYiEIvxuBMJEWgzSoHADcVMuN7IuqqTeyUPq22qFimFtxDyBBJEwNyt6TM88blFHao/6tWWhuuOM4SAK4EI4QmFHA+SEyWlp4EQoJ13cYGzMu7yszEIBOm2rVmHUNqwAIQabISNMRstmdhNWcFLsSm+0tjJH1MdRxO5Nx0WDMhCtgD6OKgZeljJqJKc9po8juskR9XN0Y1lZ3mWjLR9JCO1jRDMd0fpYC2VnvjBSEFg7wBENc0R9HFlb0xvF1+TBEpF68d+DHR6IOWVv2BECtxo46hOFUBd/APU57WIoEwJhIi2CdpyZX0m93BZicktMj1AS9dClteUFAUNUIEygRZCtik5zSxI9MubTBH1GOiHsiLJ3OCoSZkILa9PxiN0EbvhsAo8tdAf9Seepd36lGWHmtNANTv5Jd0z4QYyeo/UEJqxKRpg5LZx6btLPsOaEmdMyxYdlc8LMaJnikDlhclqmPiQnTEpLUIZEwkRagjYkEibQErwhkTAKCLQEbUgkzJQWc/0PstHHcfEdQ+UAAAAASUVORK5CYII=);background-size:26px 26px}.leaflet-touch .leaflet-control-layers-toggle{width:44px;height:44px}.leaflet-control-layers .leaflet-control-layers-list,.leaflet-control-layers-expanded .leaflet-control-layers-toggle{display:none}.leaflet-control-layers-expanded .leaflet-control-layers-list{display:block;position:relative}.leaflet-control-layers-expanded{color:#333;background:#fff;padding:6px 10px 6px 6px}.leaflet-control-layers-scrollbar{padding-right:5px;overflow:hidden scroll}.leaflet-control-layers-selector{margin-top:2px;position:relative;top:1px}.leaflet-control-layers label{font-size:1.08333em;display:block}.leaflet-control-layers-separator{border-top:1px solid #ddd;height:0;margin:5px -10px 5px -6px}.leaflet-default-icon-path{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABkAAAApCAYAAADAk4LOAAAFgUlEQVR4Aa1XA5BjWRTN2oW17d3YaZtr2962HUzbDNpjszW24mRt28p47v7zq/bXZtrp/lWnXr337j3nPCe85NcypgSFdugCpW5YoDAMRaIMqRi6aKq5E3YqDQO3qAwjVWrD8Ncq/RBpykd8oZUb/kaJutow8r1aP9II0WmLKLIsJyv1w/kqw9Ch2MYdB++12Onxee/QMwvf4/Dk/Lfp/i4nxTXtOoQ4pW5Aj7wpici1A9erdAN2OH64x8OSP9j3Ft3b7aWkTg/Fm91siTra0f9on5sQr9INejH6CUUUpavjFNq1B+Oadhxmnfa8RfEmN8VNAsQhPqF55xHkMzz3jSmChWU6f7/XZKNH+9+hBLOHYozuKQPxyMPUKkrX/K0uWnfFaJGS1QPRtZsOPtr3NsW0uyh6NNCOkU3Yz+bXbT3I8G3xE5EXLXtCXbbqwCO9zPQYPRTZ5vIDXD7U+w7rFDEoUUf7ibHIR4y6bLVPXrz8JVZEql13trxwue/uDivd3fkWRbS6/IA2bID4uk0UpF1N8qLlbBlXs4Ee7HLTfV1j54APvODnSfOWBqtKVvjgLKzF5YdEk5ewRkGlK0i33Eofffc7HT56jD7/6U+qH3Cx7SBLNntH5YIPvODnyfIXZYRVDPqgHtLs5ABHD3YzLuespb7t79FY34DjMwrVrcTuwlT55YMPvOBnRrJ4VXTdNnYug5ucHLBjEpt30701A3Ts+HEa73u6dT3FNWwflY86eMHPk+Yu+i6pzUpRrW7SNDg5JHR4KapmM5Wv2E8Tfcb1HoqqHMHU+uWDD7zg54mz5/2BSnizi9T1Dg4QQXLToGNCkb6tb1NU+QAlGr1++eADrzhn/u8Q2YZhQVlZ5+CAOtqfbhmaUCS1ezNFVm2imDbPmPng5wmz+gwh+oHDce0eUtQ6OGDIyR0uUhUsoO3vfDmmgOezH0mZN59x7MBi++WDL1g/eEiU3avlidO671bkLfwbw5XV2P8Pzo0ydy4t2/0eu33xYSOMOD8hTf4CrBtGMSoXfPLchX+J0ruSePw3LZeK0juPJbYzrhkH0io7B3k164hiGvawhOKMLkrQLyVpZg8rHFW7E2uHOL888IBPlNZ1FPzstSJM694fWr6RwpvcJK60+0HCILTBzZLFNdtAzJaohze60T8qBzyh5ZuOg5e7uwQppofEmf2++DYvmySqGBuKaicF1blQjhuHdvCIMvp8whTTfZzI7RldpwtSzL+F1+wkdZ2TBOW2gIF88PBTzD/gpeREAMEbxnJcaJHNHrpzji0gQCS6hdkEeYt9DF/2qPcEC8RM28Hwmr3sdNyht00byAut2k3gufWNtgtOEOFGUwcXWNDbdNbpgBGxEvKkOQsxivJx33iow0Vw5S6SVTrpVq11ysA2Rp7gTfPfktc6zhtXBBC+adRLshf6sG2RfHPZ5EAc4sVZ83yCN00Fk/4kggu40ZTvIEm5g24qtU4KjBrx/BTTH8ifVASAG7gKrnWxJDcU7x8X6Ecczhm3o6YicvsLXWfh3Ch1W0k8x0nXF+0fFxgt4phz8QvypiwCCFKMqXCnqXExjq10beH+UUA7+nG6mdG/Pu0f3LgFcGrl2s0kNNjpmoJ9o4B29CMO8dMT4Q5ox8uitF6fqsrJOr8qnwNbRzv6hSnG5wP+64C7h9lp30hKNtKdWjtdkbuPA19nJ7Tz3zR/ibgARbhb4AlhavcBebmTHcFl2fvYEnW0ox9xMxKBS8btJ+KiEbq9zA4RthQXDhPa0T9TEe69gWupwc6uBUphquXgf+/FrIjweHQS4/pduMe5ERUMHUd9xv8ZR98CxkS4F2n3EUrUZ10EYNw7BWm9x1GiPssi3GgiGRDKWRYZfXlON+dfNbM+GgIwYdwAAAAASUVORK5CYII=)}.leaflet-container .leaflet-control-attribution{background:#fffc;margin:0}.leaflet-control-attribution,.leaflet-control-scale-line{color:#333;padding:0 5px;line-height:1.4}.leaflet-control-attribution a{text-decoration:none}.leaflet-control-attribution a:hover,.leaflet-control-attribution a:focus{text-decoration:underline}.leaflet-attribution-flag{width:1em;height:.6669em;vertical-align:baseline!important;display:inline!important}.leaflet-left .leaflet-control-scale{margin-left:5px}.leaflet-bottom .leaflet-control-scale{margin-bottom:5px}.leaflet-control-scale-line{white-space:nowrap;box-sizing:border-box;text-shadow:1px 1px #fff;background:#fffc;border:2px solid #777;border-top:none;padding:2px 5px 1px;line-height:1.1}.leaflet-control-scale-line:not(:first-child){border-top:2px solid #777;border-bottom:none;margin-top:-2px}.leaflet-control-scale-line:not(:first-child):not(:last-child){border-bottom:2px solid #777}.leaflet-touch .leaflet-control-attribution,.leaflet-touch .leaflet-control-layers,.leaflet-touch .leaflet-bar{box-shadow:none}.leaflet-touch .leaflet-control-layers,.leaflet-touch .leaflet-bar{background-clip:padding-box;border:2px solid #0003}.leaflet-popup{text-align:center;margin-bottom:20px;position:absolute}.leaflet-popup-content-wrapper{text-align:left;border-radius:12px;padding:1px}.leaflet-popup-content{min-height:1px;margin:13px 24px 13px 20px;font-size:1.08333em;line-height:1.3}.leaflet-popup-content p{margin:1.3em 0}.leaflet-popup-tip-container{pointer-events:none;width:40px;height:20px;margin-top:-1px;margin-left:-20px;position:absolute;left:50%;overflow:hidden}.leaflet-popup-tip{pointer-events:auto;width:17px;height:17px;margin:-10px auto 0;padding:1px;transform:rotate(45deg)}.leaflet-popup-content-wrapper,.leaflet-popup-tip{color:#333;background:#fff;box-shadow:0 3px 14px #0006}.leaflet-container a.leaflet-popup-close-button{text-align:center;color:#757575;background:0 0;border:none;width:24px;height:24px;font:16px/24px Tahoma,Verdana,sans-serif;text-decoration:none;position:absolute;top:0;right:0}.leaflet-container a.leaflet-popup-close-button:hover,.leaflet-container a.leaflet-popup-close-button:focus{color:#585858}.leaflet-popup-scrolled{overflow:auto}.leaflet-oldie .leaflet-popup-content-wrapper{-ms-zoom:1}.leaflet-oldie .leaflet-popup-tip{-ms-filter:"progid:DXImageTransform.Microsoft.Matrix(M11=0.70710678, M12=0.70710678, M21=-0.70710678, M22=0.70710678)";width:24px;filter:progid:DXImageTransform.Microsoft.Matrix(M11=.707107, M12=.707107, M21=-.707107, M22=.707107);margin:0 auto}.leaflet-oldie .leaflet-control-zoom,.leaflet-oldie .leaflet-control-layers,.leaflet-oldie .leaflet-popup-content-wrapper,.leaflet-oldie .leaflet-popup-tip{border:1px solid #999}.leaflet-div-icon{background:#fff;border:1px solid #666}.leaflet-tooltip{color:#222;white-space:nowrap;-webkit-user-select:none;user-select:none;pointer-events:none;background-color:#fff;border:1px solid #fff;border-radius:3px;padding:6px;position:absolute;box-shadow:0 1px 3px #0006}.leaflet-tooltip.leaflet-interactive{cursor:pointer;pointer-events:auto}.leaflet-tooltip-top:before,.leaflet-tooltip-bottom:before,.leaflet-tooltip-left:before,.leaflet-tooltip-right:before{pointer-events:none;content:"";background:0 0;border:6px solid #0000;position:absolute}.leaflet-tooltip-bottom{margin-top:6px}.leaflet-tooltip-top{margin-top:-6px}.leaflet-tooltip-bottom:before,.leaflet-tooltip-top:before{margin-left:-6px;left:50%}.leaflet-tooltip-top:before{border-top-color:#fff;margin-bottom:-12px;bottom:0}.leaflet-tooltip-bottom:before{border-bottom-color:#fff;margin-top:-12px;margin-left:-6px;top:0}.leaflet-tooltip-left{margin-left:-6px}.leaflet-tooltip-right{margin-left:6px}.leaflet-tooltip-left:before,.leaflet-tooltip-right:before{margin-top:-6px;top:50%}.leaflet-tooltip-left:before{border-left-color:#fff;margin-right:-12px;right:0}.leaflet-tooltip-right:before{border-right-color:#fff;margin-left:-12px;left:0}@media print{.leaflet-control{-webkit-print-color-adjust:exact;print-color-adjust:exact}}:root{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--bg:#0b0f14;--bg-end:#10161e;--panel:#11171fb8;--panel-solid:#101620;--panel-deep:#0a0e13;--raised:#1b242f;--line:#ffffff1a;--line-soft:#ffffff14;--line-faint:#ffffff0f;--line-strong:#34404c;--ink:#eef2f6;--ink-dim:#d9e0e7;--muted:#82909e;--faint:#697684;--accent:#42d392;--accent-bright:#68e3aa;--accent-ink:#07120c;--accent-soft:#42d3921f;--accent-line:#42d3924d;--accent-glow:#42d39259;--danger:#ff8c8c;--danger-solid:#c6423a;--danger-ink:#180a04;--danger-soft:#ff6b6b1a;--warn:#ffb74d;--warn-dim:#f2c66d;--warn-soft:#e6b85c14;--shadow:#00000059;--shadow-strong:#00000080;--bike-row-hover:#121a24;--bike-row-active:#131c28;--bike-overlay:#04070ab8}:root[data-theme=light]{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;--bg:#f2f5f8;--bg-end:#e7ecf2;--panel:#ffffffe6;--panel-solid:#fff;--panel-deep:#eaeef3;--raised:#dfe5ec;--line:#101b2729;--line-soft:#101b271c;--line-faint:#101b2712;--line-strong:#bcc7d3;--ink:#0f1720;--ink-dim:#24313d;--muted:#4e5c6a;--faint:#64717e;--accent:#06764a;--accent-bright:#05613c;--accent-ink:#fff;--accent-soft:#06764a1f;--accent-line:#06764a66;--accent-glow:#06764a52;--danger:#b3271f;--danger-solid:#b3271f;--danger-ink:#fff;--danger-soft:#b3271f1a;--warn:#8a5a00;--warn-dim:#8a5a00;--warn-soft:#8a5a001a;--shadow:#101b2724;--shadow-strong:#101b2733;--bike-row-hover:#e9eef4;--bike-row-active:#e2e9f1;--bike-overlay:#ffffffd1}:root{color:var(--ink);background:var(--bg);font-synthesis:none;text-rendering:optimizelegibility;font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif}*{box-sizing:border-box}.theme-toggle{border:1px solid var(--line);width:2.25rem;height:2.25rem;color:var(--muted);background:var(--panel);border-radius:0;flex:none;place-items:center;padding:0;transition:color .14s,border-color .14s;display:inline-grid}.theme-toggle:hover{border-color:var(--accent-line);color:var(--accent)}.dashboard-header-actions{align-items:center;gap:.6rem;display:flex}body{background:radial-gradient(circle at 15% 15%, var(--accent-soft), transparent 32rem), linear-gradient(145deg, var(--bg) 0%, var(--bg-end) 100%);min-width:320px;min-height:100vh;margin:0}button,input,textarea{font:inherit}button{cursor:pointer;border:0}button:disabled{cursor:not-allowed;opacity:.55}.centered-page,.login-page{place-content:center;min-height:100vh;padding:1.5rem;display:grid}.login-page:before{content:"";border:1px solid var(--line-faint);pointer-events:none;position:fixed;inset:1.25rem}.login-card{border:1px solid var(--line);background:var(--panel);width:min(100%,28rem);box-shadow:0 2rem 6rem var(--shadow);-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px);padding:2.75rem}.eyebrow{color:var(--accent);letter-spacing:.15em;font-family:SFMono-Regular,Consolas,Liberation Mono,monospace;font-size:.72rem;font-weight:500}h1,h2,p{margin-top:0}h1{letter-spacing:-.05em;margin-bottom:.75rem;font-size:clamp(2rem,7vw,3rem);line-height:1}.login-card h1{margin-top:1rem}.intro,.quiet{color:var(--muted);line-height:1.6}form{margin-top:2rem}label{color:var(--ink-dim);margin-bottom:.6rem;font-size:.85rem;font-weight:600;display:block}input,textarea{border:1px solid var(--line-strong);width:100%;color:var(--ink);background:var(--panel-deep);border-radius:0;outline:none;padding:.9rem 1rem;font-family:SFMono-Regular,Consolas,Liberation Mono,monospace;transition:border-color .15s,box-shadow .15s}input:focus,textarea:focus{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft)}form button{width:100%;color:var(--accent-ink);background:var(--accent);margin-top:1rem;padding:.95rem 1rem;font-weight:700;transition:background .15s,transform .15s}form button:hover:not(:disabled){background:var(--accent-bright);transform:translateY(-1px)}.form-error{color:var(--danger);margin:.75rem 0 0;font-size:.86rem}.loader{border:2px solid var(--line-strong);border-top-color:var(--accent);border-radius:50%;width:2rem;height:2rem;margin:0 auto 1rem;animation:.7s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}.bike-page{--bike-bg:var(--bg);--bike-panel:var(--panel-solid);--bike-panel-deep:var(--panel-deep);--bike-line:var(--line-soft);--bike-line-strong:var(--line-strong);--bike-ink:var(--ink);--bike-muted:var(--muted);--bike-faint:var(--faint);--bike-accent:#d2451a;--bike-accent-soft:#d2451a1a;--bike-track:var(--raised);--bike-mono:"SFMono-Regular", Consolas, "Liberation Mono", monospace;min-height:100vh;color:var(--bike-ink);background:radial-gradient(circle at 82% -8%, var(--bike-accent-soft), transparent 30rem), var(--bike-bg);position:relative}:root:not([data-theme=light]) .bike-page{--bike-panel:#10161d;--bike-panel-deep:#0d1219;--bike-line:#1e2833;--bike-line-strong:#2b3844;--bike-accent:#ff6b3a;--bike-accent-soft:#ff6b3a17;--bike-track:var(--bike-track)}.bike-page:before{content:"";pointer-events:none;background:repeating-linear-gradient(0deg, var(--line-faint) 0 1px, transparent 1px 46px), repeating-linear-gradient(90deg, var(--line-faint) 0 1px, transparent 1px 46px);position:fixed;inset:0;-webkit-mask-image:linear-gradient(#000,#0000 65vh);mask-image:linear-gradient(#000,#0000 65vh)}.bike-page :focus-visible{outline:1px solid var(--bike-accent);outline-offset:2px}.bike-shell{width:min(100%,78rem);margin:0 auto;padding:1.5rem 1rem 6rem;position:relative}.bike-top-row{justify-content:space-between;align-items:center;gap:1rem;min-height:2.6rem;display:flex}.bike-back{color:var(--bike-muted);font-family:var(--bike-mono);font-size:.72rem;text-decoration:none}.bike-back:hover{color:var(--bike-accent)}.bike-top h1{letter-spacing:-.04em;margin:1.4rem 0 0;font-size:clamp(1.9rem,6vw,2.6rem)}.bike-top .bike-button{display:none}.bike-top-actions{align-items:center;gap:.5rem;display:flex}.bike-top .bike-inspect-open{display:inline-flex}.bike-members{scrollbar-width:none;gap:.3rem;margin-top:1.2rem;display:flex;overflow-x:auto}.bike-members::-webkit-scrollbar{display:none}.bike-page .bike-members button{border:1px solid var(--bike-line-strong);width:auto;color:var(--bike-muted);font-family:var(--bike-mono);background:0 0;flex:none;align-items:center;gap:.4rem;margin:0;padding:.45rem .7rem;font-size:.66rem;font-weight:600;display:inline-flex}.bike-page .bike-members button:hover:not(:disabled){border-color:var(--bike-muted);color:var(--bike-ink);background:0 0;transform:none}.bike-page .bike-members button.active{border-color:var(--bike-accent);color:var(--bike-accent);background:var(--bike-accent-soft)}.bike-members button span{opacity:.7;border:1px solid;padding:.05rem .3rem;font-size:.58rem}.bike-totals{border-top:1px solid var(--bike-line);border-bottom:1px solid var(--bike-line);grid-template-columns:repeat(2,minmax(0,1fr));margin:1.4rem 0 0;display:grid}.bike-totals div{min-width:0;padding:.85rem 1rem .85rem 0}.bike-totals div:nth-child(2n){border-left:1px solid var(--bike-line);padding-left:1rem}.bike-totals div:nth-child(n+3){border-top:1px solid var(--bike-line)}.bike-totals dt{color:var(--bike-faint);font-family:var(--bike-mono);text-transform:uppercase;letter-spacing:.12em;font-size:.6rem}.bike-totals dd{font-family:var(--bike-mono);letter-spacing:-.02em;text-overflow:ellipsis;white-space:nowrap;margin:.35rem 0 0;font-size:clamp(1rem,3.5vw,1.3rem);overflow:hidden}.bike-page .bike-button{width:auto;font-family:var(--bike-mono);letter-spacing:.08em;text-transform:uppercase;border:1px solid #0000;border-radius:0;justify-content:center;align-items:center;gap:.45rem;margin:0;padding:.65rem 1rem;font-size:.68rem;font-weight:700;transition:background .14s,border-color .14s,color .14s;display:inline-flex}.bike-page .bike-button.primary{color:var(--danger-ink);background:var(--bike-accent)}.bike-page .bike-button.primary:hover:not(:disabled){background:var(--danger-solid);transform:none}.bike-page .bike-button.ghost{border-color:var(--bike-line-strong);color:var(--bike-ink);background:0 0}.bike-page .bike-button.ghost:hover:not(:disabled){border-color:var(--bike-accent);color:var(--bike-accent);background:0 0;transform:none}.bike-page .bike-button.small{padding:.45rem .7rem;font-size:.62rem}.bike-page .bike-icon-button{border:1px solid var(--bike-line-strong);width:2.2rem;height:2.2rem;color:var(--bike-muted);background:0 0;flex:none;place-items:center;margin:0;padding:0;display:grid}.bike-page .bike-icon-button:hover:not(:disabled){border-color:var(--bike-accent);color:var(--bike-accent);background:0 0;transform:none}.bike-alert{border:1px solid var(--danger);color:var(--danger);background:var(--danger-soft);justify-content:space-between;align-items:center;gap:1rem;margin-top:1.25rem;padding:.8rem 1rem;font-size:.8rem;display:flex}.bike-page .bike-alert button{width:auto;color:inherit;background:0 0;margin:0;padding:.15rem}.bike-empty-state{border:1px dashed var(--bike-line-strong);text-align:center;justify-items:center;margin-top:2rem;padding:4rem 1.5rem;display:grid}.bike-empty-glyph{color:var(--bike-faint);margin-bottom:1rem}.bike-empty-state h2{letter-spacing:-.03em;margin:0;font-size:1.35rem}.bike-empty-state p{max-width:26rem;color:var(--bike-muted);margin:.7rem 0 1.5rem;font-size:.82rem;line-height:1.55}.bike-rides{margin-top:2.25rem}.bike-label{color:var(--bike-muted);font-family:var(--bike-mono);letter-spacing:.14em;text-transform:uppercase;align-items:baseline;gap:.5rem;margin:0;font-size:.68rem;font-weight:600;display:flex}.bike-label span{color:var(--bike-accent)}.bike-rides-head{flex-direction:column;gap:.7rem;margin-bottom:.7rem;display:flex}.bike-filter-row{scrollbar-width:none;gap:.3rem;padding-bottom:.15rem;display:flex;overflow-x:auto}.bike-filter-row::-webkit-scrollbar{display:none}.bike-page .bike-filter-row button{border:1px solid var(--bike-line-strong);width:auto;color:var(--bike-muted);font-family:var(--bike-mono);background:0 0;flex:none;margin:0;padding:.4rem .6rem;font-size:.63rem;font-weight:600}.bike-page .bike-filter-row button:hover:not(:disabled){border-color:var(--bike-muted);color:var(--bike-ink);background:0 0;transform:none}.bike-page .bike-filter-row button.active{border-color:var(--bike-ink);color:var(--bike-bg);background:var(--bike-ink)}.bike-ride-list{border:1px solid var(--bike-line);background:var(--bike-panel);scrollbar-width:thin;scrollbar-color:var(--bike-line-strong) transparent;max-height:26rem;overflow-y:auto}.bike-ride-list-head{display:none}.bike-page .bike-ride-list-head button{width:auto;color:var(--bike-faint);font-family:var(--bike-mono);letter-spacing:.12em;text-transform:uppercase;background:0 0;border:0;align-items:center;gap:.25rem;margin:0;padding:0;font-size:.58rem;display:flex}.bike-page .bike-ride-list-head button:hover:not(:disabled){color:var(--bike-ink);background:0 0;transform:none}.bike-page .bike-ride-list-head button.right{justify-content:flex-end}.bike-page .bike-ride-list-head button.sorted{color:var(--bike-accent)}.bike-ride-list-head button i{font-style:normal}.bike-rides-tools{flex-wrap:wrap;align-items:center;gap:.5rem;display:flex}.bike-column-picker{position:relative}.bike-column-menu{z-index:20;border:1px solid var(--bike-line-strong);background:var(--bike-panel);width:max-content;min-width:9rem;position:absolute;top:calc(100% + .3rem);right:0}.bike-page .bike-column-menu button{width:100%;color:var(--bike-muted);font-family:var(--bike-mono);text-align:left;background:0 0;border:0;align-items:center;gap:.4rem;margin:0;padding:.4rem .6rem;font-size:.64rem;display:flex}.bike-page .bike-column-menu button+button{border-top:1px solid var(--bike-line)}.bike-page .bike-column-menu button:hover:not(:disabled){color:var(--bike-ink);background:var(--bike-panel-deep);transform:none}.bike-page .bike-column-menu button.checked{color:var(--bike-accent)}.bike-column-menu button i{width:12px;height:12px;display:inline-flex}.bike-ride-row{border-top:1px solid var(--bike-line);cursor:pointer;flex-wrap:wrap;align-items:center;gap:.3rem .75rem;padding:.8rem 1rem;display:flex}.bike-ride-row:first-of-type{border-top:0}.bike-ride-row:hover{background:var(--bike-row-hover)}.bike-ride-row.active{background:var(--bike-row-active);box-shadow:inset 2px 0 0 var(--bike-accent)}.bike-ride-row:focus-visible{outline-offset:-2px}.bike-ride-date{color:var(--bike-faint);font-family:var(--bike-mono);order:1;font-size:.64rem}.bike-ride-title{flex:1 0 100%;order:3;min-width:0}.bike-ride-title h3{letter-spacing:-.02em;text-overflow:ellipsis;white-space:nowrap;margin:0;font-size:.92rem;font-weight:600;overflow:hidden}.bike-ride-tags{color:var(--bike-faint);font-family:var(--bike-mono);text-overflow:ellipsis;white-space:nowrap;margin-top:.2rem;font-size:.62rem;display:block;overflow:hidden}.bike-ride-num{color:var(--bike-muted);font-family:var(--bike-mono);white-space:nowrap;order:4;font-size:.68rem}.bike-ride-num small{color:var(--bike-faint);font-size:inherit;margin-right:.25rem}.bike-ride-actions{order:2;align-items:center;gap:.35rem;margin-left:auto;display:flex}.bike-page .bike-compare-toggle{border:1px solid var(--bike-line-strong);width:auto;color:var(--bike-faint);font-family:var(--bike-mono);letter-spacing:.06em;text-transform:uppercase;background:0 0;align-items:center;gap:.3rem;margin:0;padding:.3rem .5rem;font-size:.6rem;font-weight:600;display:inline-flex}.bike-page .bike-compare-toggle:hover:not(:disabled){border-color:var(--bike-muted);color:var(--bike-ink);background:0 0;transform:none}.bike-page .bike-compare-toggle.selected{border-color:var(--bike-accent);color:var(--bike-accent);background:var(--bike-accent-soft)}.bike-page .bike-row-delete{border:1px solid var(--bike-line-strong);width:auto;color:var(--bike-faint);font-family:var(--bike-mono);letter-spacing:.06em;text-transform:uppercase;background:0 0;align-items:center;gap:.3rem;margin:0;padding:.3rem .45rem;font-size:.6rem;font-weight:600;display:inline-flex}.bike-page .bike-row-delete:hover:not(:disabled){border-color:var(--danger);color:var(--danger);background:0 0;transform:none}.bike-page .bike-row-delete.confirm{border-color:var(--danger);color:var(--danger);background:var(--danger-soft)}.bike-note{color:var(--bike-faint);margin:.7rem 0 0;font-size:.72rem}.bike-ride-list .bike-note{margin:0;padding:1rem}.bike-analysis{border-top:1px solid var(--bike-line);margin-top:2.5rem;padding-top:1.75rem}.bike-analysis-head{justify-content:space-between;align-items:flex-start;gap:1rem;margin-bottom:1rem;display:flex}.bike-analysis-head>div{min-width:0}.bike-analysis-head h2{letter-spacing:-.03em;text-overflow:ellipsis;white-space:nowrap;margin:0;font-size:clamp(1.25rem,4.5vw,1.6rem);overflow:hidden}.bike-analysis-head p{color:var(--bike-faint);font-family:var(--bike-mono);margin:.4rem 0 0;font-size:.66rem}.bike-detail-grid{gap:.75rem;display:grid}.bike-route-map,.bike-route-empty{border:1px solid var(--bike-line);background:var(--bike-panel-deep);min-height:18rem;position:relative;overflow:hidden}.bike-route-map{z-index:0}.bike-route-map.leaflet-container{font-family:var(--bike-mono);background:var(--bike-panel-deep)}.bike-route-map .leaflet-control-zoom a{border-color:var(--bike-line-strong);color:var(--bike-ink);background:var(--bike-panel)}.bike-route-map .leaflet-control-zoom a:hover{color:var(--bike-accent);background:var(--bike-panel-deep)}.bike-route-map .leaflet-control-attribution{color:var(--bike-faint);background:var(--bike-overlay);font-size:.6rem}.bike-route-map .leaflet-control-attribution a{color:var(--bike-muted)}.bike-route-map .leaflet-control-scale-line{border-color:var(--bike-line-strong);color:var(--bike-ink);background:var(--bike-overlay);font-family:var(--bike-mono);font-size:.62rem}.bike-route-map .bike-map-button{border:1px solid var(--bike-line-strong);width:34px;height:34px;color:var(--bike-ink);background:var(--bike-panel);cursor:pointer;place-items:center;padding:0;display:grid}.bike-route-map .bike-map-button:hover{color:var(--bike-accent);background:var(--bike-panel-deep)}.bike-route-map .bike-map-layers{position:relative}.bike-route-map .bike-map-layer-menu{border:1px solid var(--bike-line-strong);background:var(--bike-panel);width:max-content;max-width:12rem;display:none;position:absolute;top:0;left:calc(100% + .4rem)}.bike-route-map .bike-map-layers.open .bike-map-layer-menu{display:block}.bike-route-map .bike-map-layer-menu button{width:100%;color:var(--bike-muted);text-align:left;background:0 0;padding:.4rem .6rem;display:block}.bike-route-map .bike-map-layer-menu button+button{border-top:1px solid var(--bike-line)}.bike-route-map .bike-map-layer-menu button:hover{color:var(--bike-ink);background:var(--bike-panel-deep)}.bike-route-map .bike-map-layer-menu button.checked{color:var(--bike-accent);background:var(--bike-accent-soft)}.bike-route-map .bike-map-layer-menu strong{font-family:var(--bike-mono);font-size:.66rem;font-weight:600;display:block}.bike-route-map .bike-map-layer-menu small{color:var(--bike-faint);font-size:.58rem;display:block}.bike-route-map:fullscreen{border:none}.bike-analysis>.bike-route-map{margin:1rem 0}.bike-route-empty{min-height:12rem;color:var(--bike-faint);font-family:var(--bike-mono);place-content:center;justify-items:center;gap:.5rem;font-size:.68rem;display:grid}.bike-stats-panel{border:1px solid var(--bike-line);background:var(--bike-panel);flex-direction:column;display:flex}.bike-stat-cells{grid-template-columns:repeat(2,minmax(0,1fr));display:grid}.bike-stat{border-top:1px solid var(--bike-line);border-left:1px solid var(--bike-line);min-width:0;padding:.9rem 1rem}.bike-stat:nth-child(-n+2){border-top:0}.bike-stat:nth-child(odd){border-left:0}.bike-stat span{color:var(--bike-faint);font-family:var(--bike-mono);letter-spacing:.12em;text-transform:uppercase;font-size:.58rem;display:block}.bike-stat strong{font-family:var(--bike-mono);letter-spacing:-.02em;text-overflow:ellipsis;white-space:nowrap;margin-top:.35rem;font-size:clamp(1rem,3.5vw,1.3rem);font-weight:600;display:block;overflow:hidden}.bike-extras{border-top:1px solid var(--bike-line);margin:0;padding:.3rem 1rem .55rem}.bike-extras div{justify-content:space-between;align-items:baseline;gap:1rem;padding:.35rem 0;display:flex}.bike-extras div+div{border-top:1px solid var(--bike-line)}.bike-extras dt{color:var(--bike-muted);font-size:.68rem}.bike-extras dd{font-family:var(--bike-mono);white-space:nowrap;margin:0;font-size:.68rem}.bike-chart-card{border:1px solid var(--bike-line);background:var(--bike-panel);margin-top:.75rem}.bike-chart-toolbar{border-bottom:1px solid var(--bike-line);gap:.6rem;padding:.7rem .8rem;display:grid}.bike-metric-tabs{scrollbar-width:none;gap:.3rem;display:flex;overflow-x:auto}.bike-metric-tabs::-webkit-scrollbar{display:none}.bike-page .bike-metric-tabs button{border:1px solid var(--bike-line-strong);width:auto;color:var(--bike-muted);font-family:var(--bike-mono);background:0 0;flex:none;margin:0;padding:.4rem .6rem;font-size:.62rem;font-weight:600}.bike-page .bike-metric-tabs button:hover:not(:disabled){border-color:var(--bike-muted);color:var(--bike-ink);background:0 0;transform:none}.bike-page .bike-metric-tabs button.active{border-color:var(--bike-accent);color:var(--bike-accent);background:var(--bike-accent-soft)}.bike-chart-tools{flex-wrap:wrap;justify-content:flex-end;align-items:center;gap:.5rem;display:flex}.bike-page .bike-zoom-reset{border:1px solid var(--bike-accent);width:auto;color:var(--bike-accent);background:var(--bike-accent-soft);font-family:var(--bike-mono);letter-spacing:.08em;text-transform:uppercase;margin:0;padding:.4rem .65rem;font-size:.6rem;font-weight:600}.bike-page .bike-zoom-reset:hover:not(:disabled){border-color:var(--bike-accent);color:var(--bike-ink);background:var(--bike-accent-soft);transform:none}.bike-page .bike-range-arm{border:1px solid var(--bike-line-strong);width:auto;color:var(--bike-faint);font-family:var(--bike-mono);letter-spacing:.08em;text-transform:uppercase;background:0 0;margin:0;padding:.4rem .65rem;font-size:.6rem;font-weight:600}.bike-page .bike-range-arm:hover:not(:disabled){border-color:var(--bike-muted);color:var(--bike-ink);background:0 0;transform:none}.bike-page .bike-range-arm.armed{border-color:var(--bike-accent);color:var(--bike-accent);background:var(--bike-accent-soft)}.bike-axis-toggle{border:1px solid var(--bike-line-strong);align-self:start;display:inline-flex}.bike-page .bike-axis-toggle button{width:auto;color:var(--bike-faint);font-family:var(--bike-mono);letter-spacing:.08em;text-transform:uppercase;background:0 0;border:0;margin:0;padding:.4rem .65rem;font-size:.6rem;font-weight:600}.bike-page .bike-axis-toggle button:hover:not(:disabled){color:var(--bike-ink);background:0 0;transform:none}.bike-page .bike-axis-toggle button.active{color:var(--bike-ink);background:var(--bike-track)}.bike-axis-toggle button+button{border-left:1px solid var(--bike-line-strong)}.bike-chart-legend{flex-wrap:wrap;gap:.8rem;padding:.7rem .9rem 0;display:flex}.bike-chart-legend span{color:var(--bike-muted);font-family:var(--bike-mono);align-items:center;gap:.35rem;font-size:.62rem;display:inline-flex}.bike-chart-legend i,.bike-compare-table i{width:.5rem;height:.5rem;display:inline-block}.bike-chart-wrap{touch-action:pan-y;cursor:crosshair;-webkit-user-select:none;user-select:none;min-height:16rem;position:relative}.bike-chart-select{fill:var(--bike-accent-soft);stroke:var(--bike-accent);stroke-width:1px}.bike-chart{width:100%;height:16rem;display:block;overflow:visible}.bike-chart-stack .bike-chart-section+.bike-chart-section{border-top:1px solid var(--bike-line)}.bike-chart-metric{flex-wrap:wrap;gap:.4rem 1.1rem;padding:.7rem .9rem 0;display:flex}.bike-chart-metric>span{color:var(--bike-muted);font-family:var(--bike-mono);letter-spacing:.12em;text-transform:uppercase;align-items:center;gap:.4rem;font-size:.6rem;display:inline-flex}.bike-chart-metric i{width:.5rem;height:.5rem}.bike-chart-metric i.bike-zone-swatch{opacity:.55;background:linear-gradient(90deg,#4fb8ff,#3ddc97,#ffd166,#ff6b3a,#ff5470);width:1.1rem}:root[data-theme=light] .bike-chart-metric i.bike-zone-swatch{opacity:.7;background:linear-gradient(90deg,#0369a1,#047857,#a16207,#c2410c,#be123c)}.bike-map-cursor{pointer-events:none}.bike-page .bike-metric-tabs button .n{opacity:.75;margin-left:.3rem}.bike-metric-assign{border-bottom:1px solid var(--bike-line);background:var(--bike-panel-deep);flex-wrap:wrap;align-items:center;gap:.3rem;padding:.6rem .8rem;display:flex}.bike-metric-assign>span{color:var(--bike-faint);font-family:var(--bike-mono);letter-spacing:.1em;text-transform:uppercase;margin-right:.4rem;font-size:.6rem}.bike-page .bike-metric-assign button{border:1px solid var(--bike-line-strong);width:auto;color:var(--bike-muted);font-family:var(--bike-mono);background:0 0;align-items:baseline;gap:.35rem;margin:0;padding:.35rem .55rem;font-size:.62rem;font-weight:600;display:inline-flex}.bike-page .bike-metric-assign button:hover:not(:disabled){border-color:var(--bike-muted);color:var(--bike-ink);background:0 0;transform:none}.bike-page .bike-metric-assign button.checked{border-color:var(--bike-accent);color:var(--bike-accent);background:var(--bike-accent-soft)}.bike-metric-assign button small{color:var(--bike-faint);font-size:.56rem;font-weight:400}.bike-page .bike-metric-assign .bike-assign-done{color:var(--bike-faint);border-color:#0000;margin-left:auto}.bike-page .bike-metric-assign .bike-assign-done:hover:not(:disabled){border-color:var(--bike-line-strong);color:var(--bike-ink)}.bike-chart-stack.small .bike-chart-wrap,.bike-chart-stack.small .bike-chart{height:16rem;min-height:16rem}.bike-chart-stack.large .bike-chart-wrap,.bike-chart-stack.large .bike-chart{height:20rem;min-height:20rem}.bike-chart-stack.small .bike-chart-empty{min-height:16rem}.bike-chart-stack.large .bike-chart-empty{min-height:20rem}.bike-chart-gridline{stroke:var(--raised);stroke-width:1px;vector-effect:non-scaling-stroke}.bike-chart-axis{fill:var(--bike-faint);font-family:var(--bike-mono);font-size:9px}.bike-chart-line{fill:none;stroke-width:1.75px;vector-effect:non-scaling-stroke}.bike-chart-cursor{stroke:var(--bike-faint);stroke-dasharray:3 3;vector-effect:non-scaling-stroke}.bike-chart-tooltip{z-index:2;border:1px solid var(--bike-line-strong);width:min(15rem,72vw);color:var(--bike-ink);background:var(--panel-deep);pointer-events:none;padding:.6rem .7rem;position:absolute;top:.7rem}.bike-chart-tooltip.is-left{transform:translate(-100%)}.bike-chart-tooltip small{color:var(--bike-faint);font-family:var(--bike-mono);margin-bottom:.3rem;font-size:.6rem;display:block}.bike-chart-tooltip div{grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:.35rem;padding:.18rem 0;font-size:.64rem;display:grid}.bike-chart-tooltip i{width:.4rem;height:.4rem}.bike-chart-tooltip span{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.bike-chart-tooltip strong{font-family:var(--bike-mono);font-size:.64rem}.bike-chart-empty{text-align:center;place-content:center;justify-items:center;gap:.35rem;min-height:16rem;padding:1rem;display:grid}.bike-chart-empty strong{color:var(--bike-ink);font-size:.85rem}.bike-chart-empty span{color:var(--bike-faint);font-size:.7rem}.bike-analysis-actions{align-items:center;gap:.5rem;display:flex}.bike-export-group,.bike-convert-row{border:1px solid var(--bike-line-strong);flex-wrap:wrap;align-items:center;gap:.3rem;padding:.25rem .4rem;display:flex}.bike-export-group>span,.bike-convert-row>span{color:var(--bike-faint);font-family:var(--bike-mono);letter-spacing:.12em;text-transform:uppercase;font-size:.58rem}.bike-export-group a,.bike-page .bike-convert-row button{border:1px solid var(--bike-line-strong);width:auto;color:var(--bike-muted);font-family:var(--bike-mono);background:0 0;margin:0;padding:.25rem .5rem;font-size:.62rem;font-weight:600;text-decoration:none}.bike-export-group a:hover,.bike-page .bike-convert-row button:hover:not(:disabled){border-color:var(--bike-accent);color:var(--bike-accent);background:var(--bike-accent-soft);transform:none}.bike-convert-row{padding:.5rem .6rem}.bike-convert-row small{color:var(--bike-faint);font-family:var(--bike-mono);font-size:.58rem}.bike-zones{border:1px solid var(--bike-line);background:var(--bike-panel);margin-top:.75rem}.bike-zones-head{border-bottom:1px solid var(--bike-line);justify-content:space-between;align-items:baseline;gap:1rem;padding:.7rem .9rem;display:flex}.bike-zones-head span{color:var(--bike-faint);font-family:var(--bike-mono);font-size:.62rem}.bike-zone-bars{grid-auto-columns:minmax(0,1fr);grid-auto-flow:column;gap:.4rem;padding:.9rem;display:grid}.bike-zone-bar{justify-items:center;gap:.25rem;min-width:0;display:grid}.bike-zone-share{color:var(--bike-muted);font-family:var(--bike-mono);min-height:.9rem;font-size:.6rem}.bike-zone-track{border-bottom:1px solid var(--bike-line-strong);background:linear-gradient(var(--bike-panel-deep), var(--bike-panel-deep));align-items:flex-end;width:100%;height:7rem;display:flex}.bike-zone-fill{width:100%;min-height:1px;transition:height .16s}.bike-zone-bar strong{color:var(--bike-ink);font-family:var(--bike-mono);font-size:.66rem}.bike-zone-bar small{max-width:100%;color:var(--bike-faint);font-family:var(--bike-mono);text-overflow:ellipsis;white-space:nowrap;font-size:.55rem;overflow:hidden}.bike-zone-unit{opacity:.7}.bike-sensors{color:var(--bike-faint);font-family:var(--bike-mono);margin:.75rem 0 0;font-size:.64rem}.bike-compare-table-wrap{border:1px solid var(--bike-line);background:var(--bike-panel);margin-top:.75rem;overflow-x:auto}.bike-compare-table{border-collapse:collapse;width:max(100%,42rem);font-size:.72rem}.bike-compare-table th,.bike-compare-table td{border-top:1px solid var(--bike-line);border-left:1px solid var(--bike-line);text-align:left;padding:.7rem .9rem}.bike-compare-table tr>:first-child{border-left:0}.bike-compare-table thead th{vertical-align:top;border-top:0;min-width:10rem}.bike-compare-table thead th:first-child,.bike-compare-table tbody th{width:8rem;min-width:8rem;color:var(--bike-faint);font-family:var(--bike-mono);letter-spacing:.1em;text-transform:uppercase;font-size:.6rem;font-weight:600}.bike-compare-table td{font-family:var(--bike-mono)}.bike-compare-table thead span{letter-spacing:0;text-overflow:ellipsis;text-transform:none;white-space:nowrap;margin-top:.35rem;font-family:Inter,ui-sans-serif,system-ui,sans-serif;font-size:.74rem;display:block;overflow:hidden}.bike-compare-table thead small{color:var(--bike-faint);letter-spacing:0;margin-top:.15rem;font-size:.6rem;font-weight:400;display:block}.bike-modal-backdrop{z-index:100;background:var(--bike-overlay);-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);justify-content:center;align-items:flex-end;display:flex;position:fixed;inset:0}.bike-modal{border:1px solid var(--bike-line-strong);width:100%;max-height:92vh;color:var(--bike-ink);background:var(--bike-panel-deep);box-shadow:0 -1rem 4rem var(--shadow-strong);border-bottom:0;padding:1.25rem;overflow-y:auto}.bike-modal>header{justify-content:space-between;align-items:center;gap:1rem;display:flex}.bike-modal h2{letter-spacing:-.03em;margin:0;font-size:1.25rem}.bike-modal form{margin:1.1rem 0 0}.bike-inspect-picker{margin-top:1.1rem}.bike-inspect{gap:.75rem;margin-top:1.1rem;display:grid}.bike-inspect-meta{justify-items:start;gap:.4rem;display:grid}.bike-inspect-type{color:var(--bike-accent);font-family:var(--bike-mono);letter-spacing:.12em;text-transform:uppercase;border:1px solid;padding:.25rem .5rem;font-size:.6rem;font-weight:600}.bike-inspect-type.course{color:#4fb8ff}:root[data-theme=light] .bike-inspect-type.course{color:#0369a1}.bike-inspect-meta strong{letter-spacing:-.02em;font-size:1.05rem}.bike-inspect-meta small{color:var(--bike-faint);font-family:var(--bike-mono);font-size:.62rem}.bike-inspect .bike-stat-cells{border:1px solid var(--bike-line);background:var(--bike-panel)}.bike-inspect .bike-route-map,.bike-inspect .bike-route-empty{min-height:14rem}.bike-inspect .bike-chart-card,.bike-modal .bike-inspect footer{margin-top:0}.bike-file-input{opacity:0;pointer-events:none;width:1px;height:1px;position:absolute}.bike-page .bike-dropzone{border:1px dashed var(--bike-line-strong);width:100%;min-height:10rem;color:var(--bike-ink);background:var(--bike-panel);border-radius:0;place-content:center;justify-items:center;margin:0;padding:1rem;font-weight:400;transition:border-color .14s,background .14s;display:grid}.bike-page .bike-dropzone:hover:not(:disabled),.bike-page .bike-dropzone.is-dragging{border-color:var(--bike-accent);background:var(--bike-accent-soft);transform:none}.bike-upload-icon{border:1px solid var(--bike-line-strong);width:2.6rem;height:2.6rem;color:var(--bike-accent);place-items:center;margin-bottom:.7rem;display:grid}.bike-dropzone strong{font-size:.85rem}.bike-dropzone>span:last-child{color:var(--bike-faint);font-family:var(--bike-mono);margin-top:.3rem;font-size:.62rem}.bike-file-list{gap:.35rem;max-height:9.5rem;margin-top:.7rem;display:grid;overflow-y:auto}.bike-file-list>div{border:1px solid var(--bike-line);color:var(--bike-muted);background:var(--bike-panel);align-items:center;gap:.6rem;padding:.5rem .65rem;display:flex}.bike-file-list>div>span{flex:1;min-width:0;display:grid}.bike-file-list strong{color:var(--bike-ink);font-family:var(--bike-mono);text-overflow:ellipsis;white-space:nowrap;font-size:.68rem;font-weight:400;overflow:hidden}.bike-file-list small{color:var(--bike-faint);font-family:var(--bike-mono);font-size:.58rem}.bike-page .bike-file-list button{width:auto;color:var(--bike-faint);background:0 0;margin:0;padding:.2rem}.bike-page .bike-file-list button:hover:not(:disabled){color:var(--bike-ink);background:0 0;transform:none}.bike-page .bike-field-label{color:var(--bike-muted);font-family:var(--bike-mono);letter-spacing:.12em;text-transform:uppercase;justify-content:space-between;align-items:baseline;gap:1rem;margin:1.1rem 0 .45rem;font-size:.62rem;font-weight:600;display:flex}.bike-field-label span{color:var(--bike-faint);letter-spacing:0;text-transform:none;font-size:.58rem;font-weight:400}.bike-tags-input{border:1px solid var(--bike-line-strong);background:var(--panel-deep);cursor:text;flex-wrap:wrap;align-items:center;gap:.35rem;min-height:2.9rem;padding:.4rem;display:flex}.bike-tags-input:focus-within{border-color:var(--bike-accent);box-shadow:0 0 0 3px var(--bike-accent-soft)}.bike-page .bike-tags-input button{border:1px solid var(--bike-accent);width:auto;color:var(--bike-accent);background:var(--bike-accent-soft);font-family:var(--bike-mono);align-items:center;gap:.3rem;margin:0;padding:.3rem .5rem;font-size:.63rem;font-weight:400;display:inline-flex}.bike-page .bike-tags-input button:hover:not(:disabled){border-color:var(--bike-accent);color:var(--bike-accent);background:var(--bike-accent-soft);transform:none}.bike-tags-input button span{font-size:.75rem}.bike-page .bike-tags-input input{width:auto;min-width:7rem;color:var(--bike-ink);box-shadow:none;font-family:var(--bike-mono);background:0 0;border:0;outline:0;flex:1;padding:.3rem;font-size:.72rem}.bike-page .bike-text-input{border:1px solid var(--bike-line-strong);width:100%;color:var(--bike-ink);background:var(--panel-deep);font-family:var(--bike-mono);border-radius:0;padding:.7rem .8rem;font-size:.78rem}.bike-page .bike-text-input:focus{border-color:var(--bike-accent);box-shadow:0 0 0 3px var(--bike-accent-soft)}.bike-form-error{color:var(--danger);margin:.65rem 0 0;font-size:.7rem}.bike-modal footer{border-top:1px solid var(--bike-line);justify-content:flex-end;gap:.6rem;margin-top:1.4rem;padding-top:1.1rem;display:flex}.bike-delete-row{border-top:1px solid var(--bike-line);margin-top:1.2rem;padding-top:1rem}.bike-page .bike-delete-button{width:auto;color:var(--danger);font-family:var(--bike-mono);letter-spacing:.08em;text-transform:uppercase;background:0 0;align-items:center;gap:.4rem;margin:0;padding:.45rem 0;font-size:.65rem;font-weight:600;display:inline-flex}.bike-page .bike-delete-button:hover:not(:disabled){color:var(--danger);background:0 0;transform:none}.bike-page .bike-delete-button.confirm{color:#fff;background:var(--danger-solid);border-color:var(--danger-solid);padding:.5rem .7rem}.bike-page .bike-delete-button.confirm:hover:not(:disabled){background:var(--danger-solid)}.bike-loading,.bike-analysis-loading{min-height:100vh;color:var(--bike-muted);font-family:var(--bike-mono);place-content:center;justify-items:center;gap:.8rem;font-size:.7rem;display:grid}.bike-analysis-loading{min-height:16rem}.bike-spinner{border:2px solid var(--bike-line-strong);border-top-color:var(--bike-accent);border-radius:50%;width:1.6rem;height:1.6rem;animation:.7s linear infinite spin}.bike-page .bike-fab{z-index:15;right:1rem;bottom:max(1rem, env(safe-area-inset-bottom));width:auto;min-height:3rem;color:var(--danger-ink);background:var(--bike-accent);box-shadow:0 .6rem 2rem var(--shadow-strong);font-family:var(--bike-mono);letter-spacing:.08em;text-transform:uppercase;align-items:center;gap:.5rem;margin:0;padding:0 1.1rem;font-size:.68rem;font-weight:700;display:inline-flex;position:fixed}.bike-page .bike-fab:hover:not(:disabled){background:var(--danger-solid);transform:none}@media (width>=42rem){.bike-shell{padding-inline:2rem}.bike-top .bike-button{display:inline-flex}.bike-page .bike-fab{display:none}.bike-totals{grid-template-columns:repeat(4,auto);display:inline-grid}.bike-totals div{border-left:1px solid var(--bike-line);padding:1rem 1.5rem}.bike-totals div:first-child{border-left:0;padding-left:0}.bike-totals div:nth-child(2n){padding-left:1.5rem}.bike-totals div:nth-child(n+3){border-top:0}.bike-rides-head{flex-direction:row;justify-content:space-between;align-items:flex-end}.bike-ride-list-head{z-index:1;grid-template-columns:var(--ride-grid);border-bottom:1px solid var(--bike-line);background:var(--bike-panel);gap:.75rem;padding:.55rem 1rem;display:grid;position:sticky;top:0}.bike-ride-row{grid-template-columns:var(--ride-grid);align-items:center;gap:.75rem;padding:.65rem 1rem;display:grid}.bike-ride-row>*{order:0}.bike-ride-row:first-of-type{border-top:0}.bike-ride-num{text-align:right}.bike-ride-num small{display:none}.bike-ride-actions{justify-self:end;margin-left:0}.bike-detail-grid{grid-template-columns:minmax(0,1.3fr) minmax(18rem,.7fr)}.bike-route-map{min-height:24rem}.bike-chart-toolbar{justify-content:space-between;align-items:center;display:flex}.bike-chart,.bike-chart-wrap{height:20rem;min-height:20rem}.bike-modal-backdrop{align-items:center;padding:1.5rem}.bike-modal{border-bottom:1px solid var(--bike-line-strong);width:min(100%,36rem);max-height:calc(100vh - 3rem);padding:1.5rem}.bike-modal.compact{width:min(100%,30rem)}.bike-modal.wide{width:min(100%,58rem)}.bike-inspect .bike-route-map,.bike-inspect .bike-route-empty{min-height:20rem}.bike-inspect .bike-chart-wrap,.bike-inspect .bike-chart{height:16rem;min-height:16rem}}@media (prefers-reduced-motion:reduce){.bike-page *,.bike-page :before,.bike-page :after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important}}.dashboard-page{width:min(72rem,100%);min-height:100vh;margin:0 auto;padding:4rem 2rem}.dashboard-header{border-bottom:1px solid var(--line);justify-content:space-between;align-items:flex-end;gap:2rem;padding-bottom:2rem;display:flex}.dashboard-header h1{margin:.75rem 0 0}.secondary-button{border:1px solid var(--line-strong);color:var(--ink-dim);background:0 0;padding:.7rem 1rem}.secondary-button:hover:not(:disabled){border-color:var(--accent);color:var(--accent)}.status-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:.85rem;margin-top:1.5rem;display:grid}.status-card{border:1px solid var(--line);background:var(--panel);min-height:11.5rem;padding:1.25rem}.dashboard-card{--card-hue:var(--accent);--card-hue-soft:var(--accent-soft);isolation:isolate;position:relative;overflow:hidden}.dashboard-card:after{z-index:-1;background:var(--card-hue-soft);content:"";filter:blur(.25rem);border-radius:50%;width:12rem;height:12rem;transition:transform .22s;position:absolute;top:-5rem;right:-5rem}.dashboard-card:hover:after{transform:scale(1.08)}.dashboard-card[data-card=status]{--card-hue:#42d392;--card-hue-soft:#42d3921a}.dashboard-card[data-card=bets]{--card-hue:#f4b860;--card-hue-soft:#f4b8601c}.dashboard-card[data-card=conversations]{--card-hue:#8b9cff;--card-hue-soft:#8b9cff1f}.dashboard-card[data-card=careers]{--card-hue:#ff6b6b;--card-hue-soft:#ff6b6b1a}.dashboard-card[data-card=recipes]{--card-hue:#f08eb2;--card-hue-soft:#f08eb21c}.dashboard-card[data-card=biketracker]{--card-hue:#45c9e8;--card-hue-soft:#45c9e81c}.dashboard-card[data-card=poe]{--card-hue:#c99bff;--card-hue-soft:#c99bff1c}.dashboard-card[data-card=training]{--card-hue:#ff826e;--card-hue-soft:#ff826e1c}.dashboard-card[data-card=budget]{--card-hue:#69d49e;--card-hue-soft:#69d49e1c}.dashboard-card[data-card=settings]{--card-hue:#aebdcc;--card-hue-soft:#aebdcc1a}.card-art{width:6.25rem;height:4.6rem;color:var(--card-hue);opacity:.88;pointer-events:none;transition:opacity .18s,transform .22s;position:absolute;top:.7rem;right:.7rem}.feature-card:hover .card-art{opacity:1;transform:translate(-.15rem,.1rem)rotate(-1deg)}.card-art-orbit{fill:var(--card-hue-soft);stroke:color-mix(in srgb, var(--card-hue) 25%, transparent);stroke-width:1px;stroke-dasharray:3 5}.card-art-soft{opacity:.45}.card-art-accent{stroke-width:3px}.dashboard-card>.eyebrow,.dashboard-card>.status-heading{z-index:1;max-width:calc(100% - 6.25rem);position:relative}@media (prefers-reduced-motion:reduce){.dashboard-card:after,.card-art{transition:none}}.status-heading{color:var(--muted);text-transform:uppercase;letter-spacing:.08em;align-items:center;gap:.65rem;margin-bottom:2rem;font-family:SFMono-Regular,Consolas,Liberation Mono,monospace;font-size:.78rem;display:flex}.status-dot{background:var(--accent);width:.55rem;height:.55rem;box-shadow:0 0 .8rem var(--accent);border-radius:50%}.status-dot-error{background:var(--danger);box-shadow:0 0 .8rem var(--danger)}.status-card h2{letter-spacing:-.025em;max-width:24rem;margin-bottom:.65rem;font-size:1.25rem}.placeholder-card{border-style:dashed;flex-direction:column;justify-content:flex-end;display:flex}.placeholder-card .eyebrow{margin-bottom:auto}.feature-card{color:inherit;flex-direction:column;justify-content:space-between;text-decoration:none;transition:border-color .15s,transform .15s;display:flex}.feature-card:hover{border-color:var(--accent-glow);transform:translateY(-2px)}.feature-link{color:var(--accent);font-size:.85rem;font-weight:700}.feature-page{width:min(78rem,100%);min-height:100vh;margin:0 auto;padding:3rem 2rem 6rem}.feature-header{border-bottom:1px solid var(--line);justify-content:space-between;align-items:flex-end;gap:2rem;padding-bottom:2.5rem;display:flex}.feature-header h1{margin:.65rem 0 .75rem}.back-link{color:var(--muted);margin-bottom:2rem;font-size:.82rem;text-decoration:none;display:inline-block}.back-link:hover{color:var(--accent)}.bet-summary{border:1px solid var(--line);background:var(--panel);display:flex}.bet-summary div{border-left:1px solid var(--line-soft);min-width:6.5rem;padding:1rem 1.25rem}.bet-summary div:first-child{border-left:0}.bet-summary strong,.bet-summary span{display:block}.bet-summary strong{font-size:1.5rem}.bet-summary span{color:var(--muted);text-transform:uppercase;letter-spacing:.08em;margin-top:.2rem;font-size:.72rem}.create-panel{border:1px solid var(--accent-line);background:linear-gradient(135deg, var(--accent-soft), var(--panel));grid-template-columns:minmax(12rem,.7fr) minmax(0,1.8fr);gap:2.5rem;margin:2rem 0 4rem;padding:2rem;display:grid}.create-panel h2{margin:.75rem 0;font-size:1.5rem}.bet-form{margin:0}.form-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:1.25rem;display:grid}.form-span{grid-column:1/-1}textarea{resize:vertical;min-height:6.5rem}.create-action{align-items:flex-end;display:flex}.create-action button{margin:0}.bet-sections{gap:4rem;display:grid}.section-heading{justify-content:space-between;align-items:flex-start;gap:2rem;margin-bottom:1rem;display:flex}.section-heading h2{margin-bottom:.25rem;font-size:1.5rem}.section-heading p{margin:0}.section-count{border:1px solid var(--line-strong);min-width:2.25rem;min-height:2.25rem;color:var(--muted);place-content:center;font-family:SFMono-Regular,Consolas,monospace;font-size:.8rem;display:grid}.bet-list{grid-template-columns:repeat(2,minmax(0,1fr));gap:1rem;display:grid}.bet-card,.empty-state{border:1px solid var(--line);background:var(--panel)}.bet-card{padding:1.5rem}.bet-card-topline{justify-content:space-between;align-items:center;gap:1rem;display:flex}.state-badge,.bet-id{text-transform:uppercase;letter-spacing:.08em;font-family:SFMono-Regular,Consolas,monospace;font-size:.68rem}.state-badge{border:1px solid;padding:.35rem .5rem}.state-active{color:var(--accent)}.state-awaiting_result{color:var(--warn-dim)}.state-finished{color:var(--muted)}.bet-id{color:var(--faint)}.bet-card h3{margin:1.25rem 0 1.5rem;font-size:1.2rem;line-height:1.45}.bet-details{grid-template-columns:repeat(2,minmax(0,1fr));gap:1.1rem;margin:0;display:grid}.bet-details dt{color:var(--faint);text-transform:uppercase;letter-spacing:.08em;margin-bottom:.3rem;font-size:.68rem}.bet-details dd{color:var(--ink-dim);margin:0;font-size:.88rem;line-height:1.4}.winner-form{border-top:1px solid var(--line-soft);margin-top:1.5rem;padding-top:1.5rem}.inline-form-row{grid-template-columns:1fr auto;display:grid}.inline-form-row button{white-space:nowrap;width:auto;margin:0}.form-note{color:var(--faint);margin:.5rem 0 0;font-size:.72rem}.winner-result{border-top:1px solid var(--line-soft);justify-content:space-between;align-items:center;gap:1rem;margin-top:1.5rem;padding-top:1.25rem;display:flex}.winner-result span{color:var(--faint);text-transform:uppercase;letter-spacing:.08em;font-size:.72rem}.winner-result strong{color:var(--accent)}.empty-state,.page-message{color:var(--faint);text-align:center;padding:2rem}@media (width<=960px) and (width>=701px){.status-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (width<=700px){.login-card{padding:2rem}.dashboard-page{padding:2rem 1rem}.dashboard-header{flex-direction:column;align-items:flex-start}.status-grid{grid-template-columns:1fr}.feature-page{padding:2rem 1rem 4rem}.feature-header,.create-panel{grid-template-columns:1fr;align-items:stretch}.feature-header{flex-direction:column}.bet-summary{width:100%}.bet-summary div{flex:1;min-width:0;padding:.85rem}.form-grid,.bet-list{grid-template-columns:1fr}.form-span{grid-column:auto}}.recipe-page{width:min(86rem,100%)}.recipe-library-header,.recipe-detail-header,.review-heading{justify-content:space-between;align-items:flex-end;gap:2rem;display:flex}.recipe-header-actions,.recipe-detail-actions,.ingredient-form-actions,.recipe-save-bar{align-items:center;gap:.75rem;display:flex}.primary-link-button,.secondary-link-button{justify-content:center;align-items:center;min-height:2.8rem;padding:.7rem 1rem;font-size:.86rem;font-weight:700;text-decoration:none;display:inline-flex}.primary-link-button{color:var(--accent-ink);background:var(--accent)}.secondary-link-button{border:1px solid var(--line-strong);color:var(--ink-dim)}.primary-link-button:hover,.secondary-link-button:hover{color:var(--accent-ink);background:var(--accent-bright);border-color:var(--accent-bright)}.recipe-filter-panel{border:1px solid var(--line);background:var(--panel);grid-template-columns:minmax(14rem,1.5fr) 1fr 1fr;gap:1rem;margin:2rem 0;padding:1.25rem;display:grid}.active-filter-row{flex-wrap:wrap;grid-column:1/-1;gap:.5rem;display:flex}.filter-chip{border:1px solid var(--accent-glow);color:var(--accent-bright);background:var(--accent-soft);padding:.5rem .7rem;font-size:.78rem}.recipe-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:1.25rem;display:grid}.recipe-card{border:1px solid var(--line);color:inherit;background:var(--panel);text-decoration:none;transition:transform .15s,border-color .15s;overflow:hidden}.recipe-card:hover{border-color:var(--accent-glow);transform:translateY(-2px)}.recipe-card-image{height:13rem;color:var(--accent-glow);background:radial-gradient(circle at top, var(--accent-soft), var(--panel-deep) 70%);place-items:center;font-family:Georgia,serif;font-size:5rem;display:grid;overflow:hidden}.recipe-card-image img{object-fit:cover;width:100%;height:100%}.recipe-card-body{padding:1.25rem}.recipe-card-topline{color:var(--faint);text-transform:uppercase;justify-content:space-between;gap:1rem;font-family:SFMono-Regular,Consolas,monospace;font-size:.7rem;display:flex}.recipe-card h2{margin:.9rem 0;font-size:1.35rem}.tag-row{flex-wrap:wrap;gap:.4rem;display:flex}.tag{color:var(--ink-dim);background:var(--line-strong);padding:.3rem .45rem;font-size:.7rem}.recipe-calories{color:var(--accent);margin:1.25rem 0 0;font-size:.82rem}.recipe-detail{margin-top:1.5rem}.recipe-hero-image{object-fit:cover;width:100%;max-height:34rem;margin-bottom:2rem}.recipe-detail-header{border-bottom:1px solid var(--line);padding-bottom:2rem}.recipe-detail-header h1{margin-top:.75rem}.recipe-detail-actions .danger-button{padding:.75rem 1rem}.recipe-facts{border-bottom:1px solid var(--line);grid-template-columns:repeat(3,minmax(0,1fr));display:grid}.recipe-facts>div{border-right:1px solid var(--line);padding:1.5rem}.recipe-facts>div:last-child{border-right:0}.recipe-facts span,.recipe-facts label{color:var(--faint);text-transform:uppercase;margin-bottom:.4rem;font-size:.72rem;display:block}.serving-control input{max-width:7rem;padding:.55rem .65rem}.recipe-detail-columns{grid-template-columns:minmax(16rem,.8fr) minmax(0,1.4fr);gap:1rem;margin-top:1rem;display:grid}.recipe-detail-panel,.recipe-editor-section{border:1px solid var(--line);background:var(--panel);padding:1.5rem}.ingredient-list,.step-list{margin:1.25rem 0 0;padding:0;list-style:none}.ingredient-list li{border-bottom:1px solid var(--line-soft);grid-template-columns:7rem 1fr;gap:.75rem;padding:.8rem 0;display:grid}.ingredient-list strong{color:var(--accent);font-family:SFMono-Regular,Consolas,monospace;font-size:.82rem}.ingredient-list span{color:var(--ink-dim)}.step-list{counter-reset:recipe-step}.step-list li{min-height:3rem;color:var(--ink-dim);counter-increment:recipe-step;padding:0 0 1.4rem 3.2rem;line-height:1.65;position:relative}.step-list li:before{content:counter(recipe-step);border:1px solid var(--line-strong);width:2rem;height:2rem;color:var(--accent);place-items:center;font-family:SFMono-Regular,Consolas,monospace;display:grid;position:absolute;top:-.25rem;left:0}.nutrition-panel,.recipe-notes{margin-top:1rem}.nutrition-strip{grid-template-columns:repeat(5,minmax(0,1fr));margin:1.5rem 0 0;display:grid}.nutrition-strip div{border-left:1px solid var(--line);padding:.75rem}.nutrition-strip dt{color:var(--faint);text-transform:uppercase;font-size:.7rem}.nutrition-strip dd{color:var(--ink);margin:.45rem 0 0;font-weight:700}.nutrition-warning,.editor-notice{border-left:3px solid var(--warn-dim);color:var(--warn-dim);background:var(--warn-soft);margin-top:1rem;padding:.9rem 1rem;font-size:.84rem;line-height:1.5}.recipe-editor{gap:1rem;margin-top:1.5rem;display:grid}.recipe-editor-section .section-heading{margin-bottom:1.25rem}.recipe-editor-section h2{margin:.5rem 0 0}.recipe-editor-section button{width:auto;margin-top:0}.ingredient-editor-list,.step-editor-list{gap:.75rem;display:grid}.ingredient-editor-row{border:1px solid var(--line-soft);background:var(--panel-deep);grid-template-columns:minmax(14rem,2fr) 7rem 7rem minmax(12rem,1.4fr) auto;gap:.75rem;padding:1rem;display:grid}.ingredient-editor-row:has(>div:nth-child(6)){grid-template-columns:minmax(14rem,2fr) 7rem 7rem 9rem minmax(12rem,1.4fr) auto}.ingredient-unresolved{border-color:var(--warn-dim)}.unknown-ingredient-actions{grid-template-columns:1fr auto;gap:.5rem;margin-top:.5rem;display:grid}.unknown-ingredient-actions button{padding:.6rem .75rem}.row-controls{align-items:flex-end;gap:.35rem;display:flex}.row-controls button{border:1px solid var(--line-strong);min-width:2.5rem;color:var(--ink-dim);background:0 0;padding:.65rem;font-size:.76rem}.step-editor-row{grid-template-columns:2rem 1fr auto;align-items:start;gap:.75rem;display:grid}.step-editor-row>span{border:1px solid var(--line-strong);height:2rem;color:var(--accent);place-items:center;display:grid}.step-editor-row textarea{min-height:6rem}.image-editor-section{grid-template-columns:.7fr 1.3fr;gap:2rem;display:grid}.image-editor-controls{grid-template-columns:minmax(8rem,12rem) 1fr;gap:1rem;display:grid}.image-editor-controls img{aspect-ratio:1;object-fit:cover;width:100%}.image-editor-controls input[type=file]{padding:.65rem}.recipe-save-bar{border:1px solid var(--line);background:var(--panel-deep);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);z-index:5;justify-content:flex-end;padding:1rem;position:sticky;bottom:0}.recipe-save-bar button{min-width:12rem}.recipe-save-bar a{color:var(--accent)}.import-panel{align-items:start}.import-panel form{margin:0}.import-textarea{min-height:22rem}.review-heading{margin:2rem 0 1rem}.ingredient-manager-layout{grid-template-columns:minmax(14rem,.65fr) minmax(0,1.5fr);gap:1rem;margin-top:2rem;display:grid}.nutrition-queue-status{border:1px solid var(--accent-glow);background:var(--accent-soft);justify-content:space-between;align-items:center;gap:1rem;margin-top:1rem;padding:1rem 1.25rem;display:flex}.nutrition-queue-status strong,.nutrition-queue-status span{display:block}.nutrition-queue-status span{color:var(--muted);margin-top:.3rem;font-size:.82rem}.nutrition-queue-status .form-error{margin:0}.ingredient-catalog-list{border:1px solid var(--line);align-content:start;max-height:70vh;display:grid;overflow:auto}.ingredient-catalog-list>button{border-bottom:1px solid var(--line-soft);color:var(--ink);background:var(--panel);text-align:left;gap:.3rem;padding:1rem;display:grid}.ingredient-catalog-list>button:hover,.ingredient-catalog-list>button.selected{color:var(--accent);background:var(--accent-soft)}.ingredient-catalog-list small{color:var(--faint)}.ingredient-form{margin:0}.ingredient-form>label:not(:first-child){margin-top:1rem}.nutrition-toggle{margin-top:1.25rem!important}.nutrition-fields{border:1px solid var(--line);margin:1rem 0;padding:1rem}.nutrition-fields legend{color:var(--muted);padding:0 .5rem}.conversion-fields{margin-top:1rem}.ingredient-form-actions{margin-top:1.25rem}.ingredient-form-actions button{padding:.8rem 1rem}.merge-panel{border-top:1px solid var(--line);margin-top:2rem;padding-top:1.5rem}@media (width<=1050px){.recipe-grid,:is(.ingredient-editor-row,.ingredient-editor-row:has(>div:nth-child(6))){grid-template-columns:repeat(2,minmax(0,1fr))}.ingredient-select-cell,.ingredient-note-cell,.ingredient-editor-row .row-controls{grid-column:1/-1}}@media (width<=700px){.recipe-library-header,.recipe-detail-header,.review-heading{flex-direction:column;align-items:stretch}.recipe-header-actions,.recipe-detail-actions{grid-template-columns:1fr 1fr;width:100%;display:grid}.recipe-header-actions .primary-link-button{grid-column:1/-1}.recipe-filter-panel,.recipe-grid,.recipe-detail-columns,.ingredient-manager-layout,.image-editor-section{grid-template-columns:1fr}.recipe-filter-panel{margin-top:1rem}.recipe-card-image{height:11rem}.recipe-facts{grid-template-columns:repeat(3,1fr)}.recipe-facts>div{padding:1rem .75rem}.nutrition-strip{grid-template-columns:repeat(2,minmax(0,1fr))}.nutrition-strip div:last-child{grid-column:1/-1}:is(.ingredient-editor-row,.ingredient-editor-row:has(>div:nth-child(6))){grid-template-columns:1fr 1fr}.step-editor-row{grid-template-columns:2rem 1fr}.step-editor-row .row-controls{grid-column:2}.image-editor-controls{grid-template-columns:8rem 1fr}.ingredient-catalog-list{max-height:18rem}}@media (width<=440px){:is(.recipe-header-actions,.recipe-detail-actions,.recipe-facts,.ingredient-editor-row,.ingredient-editor-row:has(>div:nth-child(6)),.image-editor-controls){grid-template-columns:1fr}.recipe-header-actions .primary-link-button,.ingredient-select-cell,.ingredient-note-cell,.ingredient-editor-row .row-controls{grid-column:auto}.recipe-detail-actions .danger-button{width:100%}.recipe-facts>div{border-right:0;border-bottom:1px solid var(--line-soft)}.ingredient-list li{grid-template-columns:1fr;gap:.25rem}.step-editor-row{grid-template-columns:1fr}.step-editor-row>span{width:2rem}.step-editor-row .row-controls{grid-column:auto}.bet-details,.inline-form-row{grid-template-columns:1fr}}select{border:1px solid var(--line-strong);width:100%;color:var(--ink);background:var(--panel-deep);border-radius:0;outline:none;padding:.9rem 1rem;font-family:SFMono-Regular,Consolas,Liberation Mono,monospace;transition:border-color .15s,box-shadow .15s}select:focus{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft)}.translate-output{border:1px solid var(--accent-line);background:var(--accent-soft);margin-top:1.25rem;padding:1rem 1.25rem}.translate-output p{color:var(--ink);white-space:pre-wrap;margin:.4rem 0 0;line-height:1.55}.turn-list{gap:1rem;display:grid}.turn-card{border:1px solid var(--line);background:var(--panel);padding:1.5rem}.turn-card-topline{justify-content:space-between;align-items:center;gap:1rem;margin-bottom:1.1rem;display:flex}.turn-sender{text-transform:uppercase;letter-spacing:.08em;border:1px solid;padding:.35rem .5rem;font-family:SFMono-Regular,Consolas,monospace;font-size:.68rem}.turn-sender-her{color:var(--accent)}.turn-sender-me{color:var(--warn-dim)}.turn-id{color:var(--faint);letter-spacing:.04em;font-family:SFMono-Regular,Consolas,monospace;font-size:.68rem}.turn-block+.turn-block{margin-top:1rem}.turn-block-label{color:var(--faint);text-transform:uppercase;letter-spacing:.08em;margin-bottom:.3rem;font-size:.68rem;display:block}.turn-block p{color:var(--ink-dim);white-space:pre-wrap;margin:0;font-size:.95rem;line-height:1.5}.turn-edit{margin:0}.turn-edit label{margin-top:1rem}.turn-edit label:first-child{margin-top:0}.turn-actions{gap:.75rem;margin-top:1.25rem;display:flex}.turn-actions button{width:auto;margin:0}.danger-button{border:1px solid var(--danger-solid);color:var(--danger);background:0 0;padding:.7rem 1rem}.danger-button:hover:not(:disabled){border-color:var(--danger);color:var(--danger)}.career-status-panel{border:1px solid var(--accent-line);background:linear-gradient(135deg, var(--accent-soft), var(--panel));margin:2rem 0 1.5rem;padding:1.5rem 1.75rem}.career-status-meta{flex-wrap:wrap;align-items:center;gap:2.5rem;display:flex}.career-status-meta>div{flex-direction:column;gap:.2rem;display:flex}.career-status-meta strong{font-size:1.1rem}.career-status-meta button{margin-left:auto}.career-status-label{color:var(--muted);text-transform:uppercase;letter-spacing:.08em;font-family:SFMono-Regular,Consolas,monospace;font-size:.68rem}.career-status-meta p{margin:.2rem 0 0;font-size:.82rem}.career-warnings{color:var(--warn-dim);margin:1.25rem 0 0;padding-left:1.1rem;font-size:.82rem;line-height:1.5}.career-toolbar{gap:1.5rem;margin-bottom:2.5rem;display:flex}.toggle{color:var(--ink-dim);cursor:pointer;align-items:center;gap:.5rem;margin:0;font-size:.85rem;display:flex}.toggle input{width:auto;accent-color:var(--accent);padding:0}.relevancy-badge{text-transform:uppercase;letter-spacing:.08em;border:1px solid;padding:.35rem .5rem;font-family:SFMono-Regular,Consolas,monospace;font-size:.68rem}.relevancy-true{color:var(--accent)}.relevancy-false{color:var(--muted)}.state-invalid{color:var(--danger)}.job-card h3{margin:1.1rem 0 1.25rem}.job-link{color:var(--ink);border-bottom:1px solid var(--accent-glow);text-decoration:none}.job-link:hover{color:var(--accent)}.job-reason{color:var(--ink-dim);margin:1.25rem 0 0;font-size:.84rem;line-height:1.5}.job-reason span{color:var(--faint);text-transform:uppercase;letter-spacing:.08em;margin-right:.4rem;font-size:.68rem}.notes-form{border-top:1px solid var(--line-soft);margin:1.25rem 0 0;padding-top:1.25rem}@media (width<=700px){.career-status-meta{align-items:flex-start;gap:1.25rem}.career-status-meta button{margin-left:0}}.friend-key-list{flex-direction:column;gap:1rem;margin:1.5rem 0 0;padding:0;list-style:none;display:flex}.friend-key-row{border:1px solid var(--line-soft);background:var(--panel);flex-direction:column;gap:.75rem;padding:1rem 1.25rem;display:flex}.friend-key-row .danger-button{align-self:flex-start}.friend-key-meta{flex-direction:column;gap:.2rem;display:flex}.friend-key-meta strong{color:var(--ink)}.poe-summary{border:1px solid var(--line);background:var(--panel);display:flex}.poe-summary div{border-left:1px solid var(--line-soft);min-width:6.5rem;padding:1rem 1.25rem}.poe-summary div:first-child{border-left:0}.poe-summary strong,.poe-summary span{display:block}.poe-summary strong{font-size:1.5rem}.poe-summary span{color:var(--muted);text-transform:uppercase;margin-top:.2rem;font-size:.72rem}.poe-summary__error{color:var(--muted);padding:1rem 1.25rem;font-size:.85rem}.poe-tabs{border-bottom:1px solid var(--line-soft);gap:.4rem;margin:1.6rem 0 1.2rem;display:flex}.poe-tab{cursor:pointer;color:var(--muted);font:inherit;background:0 0;border:none;border-bottom:2px solid #0000;padding:.55rem 1rem;font-weight:500}.poe-tab:hover{color:var(--ink)}.poe-tab--active{color:var(--accent);border-bottom-color:var(--accent)}.poe-placeholder{color:var(--muted)}.poe-muted{color:var(--muted);font-size:.85em}.poe-icon{object-fit:contain;vertical-align:middle;width:22px;height:22px;margin-right:.35rem}.poe-table-wrap{border:1px solid var(--line-soft);background:var(--panel);border-radius:8px;overflow-x:auto}.poe-table{border-collapse:collapse;width:100%;font-size:.9rem}.poe-table th{z-index:1;text-align:left;color:var(--muted);background:var(--panel-deep);text-transform:uppercase;letter-spacing:.04em;border-bottom:1px solid var(--line);-webkit-user-select:none;user-select:none;white-space:nowrap;padding:.6rem .75rem;font-size:.74rem;font-weight:500;position:sticky;top:0}.poe-table td{border-bottom:1px solid var(--line-faint);padding:.5rem .75rem}.poe-table__num{text-align:right;font-variant-numeric:tabular-nums;white-space:nowrap}.poe-table__row--clickable{cursor:pointer}.poe-table__row--clickable:hover{background:var(--line-faint)}.poe-table__expanded td{background:var(--line-faint);padding:.9rem 1.1rem}.poe-profit{color:var(--accent);font-weight:600}.poe-loss{color:var(--danger);font-weight:600}.poe-warning-dot{color:var(--warn)}.poe-detail{flex-direction:column;gap:.55rem;display:flex}.poe-detail__section{flex-wrap:wrap;align-items:baseline;gap:.35rem 1rem;display:flex}.poe-detail__title{color:var(--muted);text-transform:uppercase;letter-spacing:.04em;min-width:130px;font-size:.72rem}.poe-detail__item{font-size:.85rem}.poe-detail__item--warning{color:var(--warn)}.poe-play{background:var(--accent-soft);border-left:3px solid var(--accent-glow);border-radius:0 6px 6px 0;max-width:860px;margin:.25rem 0 .8rem;padding:.7rem 1rem}.poe-play__title{text-transform:uppercase;letter-spacing:.05em;color:var(--accent);margin-bottom:.4rem;font-size:.72rem;font-weight:600;display:block}.poe-play ol{color:var(--ink-dim);margin:0;padding-left:1.3rem;font-size:.85rem}.poe-play li{margin-bottom:.35rem}.poe-play li::marker{color:var(--accent);font-weight:600}.poe-guide{border:1px solid var(--accent-line);background:var(--accent-soft);border-radius:8px;margin:0 0 1.2rem}.poe-guide summary{cursor:pointer;color:var(--accent);-webkit-user-select:none;user-select:none;padding:.65rem .95rem;font-size:.9rem;font-weight:600}.poe-guide[open] summary{border-bottom:1px solid var(--accent-soft)}.poe-guide__body{color:var(--ink-dim);max-width:860px;padding:.8rem 1.1rem;font-size:.88rem}.poe-guide__body p{margin:0 0 .7rem}.poe-guide__body ul{margin:0 0 .7rem;padding-left:1.3rem}.poe-guide__body li{margin-bottom:.4rem}.poe-guide__body code{background:var(--line-soft);border-radius:4px;padding:.05rem .35rem;font-size:.85em}.poe-guide__body strong{color:var(--ink)}.poe-flipping{flex-direction:column;gap:2rem;display:flex}.poe-section-head{flex-wrap:wrap;align-items:baseline;gap:1.1rem;margin-bottom:.4rem;display:flex}.poe-section-head h2{margin:0;font-size:1.05rem;font-weight:600}.poe-section-head label{color:var(--muted);font-size:.85rem}.poe-section-head select,.poe-section-head input{background:var(--line-faint);color:var(--ink);border:1px solid var(--line);font:inherit;border-radius:4px;padding:.2rem .5rem;font-size:.85rem}.poe-section-head input[type=number]{width:90px}.poe-note{max-width:720px;margin:0 0 .7rem;font-size:.8rem}.poe-sparkline{display:block}.poe-chart{background:var(--line-faint);border-radius:6px;width:100%;height:auto}.poe-chart__tick{fill:var(--muted);font-size:11px}.poe-chart__annotation{fill:var(--accent);font-size:11px}.poe-chart__band-label{fill:var(--warn);font-size:10px}.poe-chart__tooltip{fill:var(--ink);font-size:11px}.poe-chart__tooltip--value{fill:var(--accent);font-weight:600}.poe-investment{grid-template-columns:340px 1fr;align-items:start;gap:1.5rem;display:grid}.poe-watchlist{flex-direction:column;gap:.65rem;display:flex}.poe-watchlist__search{position:relative}.poe-watchlist__search input{background:var(--line-faint);width:100%;color:var(--ink);border:1px solid var(--line);font:inherit;border-radius:6px;padding:.55rem .7rem;font-size:.9rem}.poe-watchlist__results{z-index:10;background:var(--panel-solid);border:1px solid var(--line);border-radius:6px;max-height:320px;margin:.25rem 0 0;padding:.25rem;list-style:none;position:absolute;top:100%;left:0;right:0;overflow-y:auto}.poe-watchlist__result-row{align-items:stretch;gap:2px;display:flex}.poe-watchlist__results button{cursor:pointer;color:var(--ink);font:inherit;background:0 0;border:none;border-radius:4px;padding:.4rem .5rem;font-size:.85rem}.poe-watchlist__results button:hover{background:var(--accent-soft)}.poe-watchlist__preview{text-align:left;flex:1}.poe-watchlist__add{color:var(--accent);font-size:1rem;font-weight:700}.poe-watch-card{background:var(--panel);border:1px solid var(--line-soft);cursor:pointer;border-radius:8px;flex-direction:column;gap:.4rem;padding:.65rem .8rem;display:flex}.poe-watch-card--active{border-color:var(--accent-glow)}.poe-watch-card__head{justify-content:space-between;align-items:baseline;display:flex}.poe-watch-card__name{font-size:.9rem;font-weight:600}.poe-watch-card__remove{color:var(--muted);cursor:pointer;background:0 0;border:none;padding:0 .25rem;font-size:1rem}.poe-watch-card__remove:hover{color:var(--danger)}.poe-watch-card__row{align-items:center;gap:.6rem;display:flex}.poe-watch-card__price{font-variant-numeric:tabular-nums;font-weight:600}.poe-chip{font-variant-numeric:tabular-nums;border-radius:10px;padding:.05rem .45rem;font-size:.75rem;font-weight:600}.poe-chip--up{color:var(--accent);background:var(--accent-soft)}.poe-chip--down{color:var(--danger);background:var(--accent-soft)}.poe-investment__chart{min-width:0}@media (width<=900px){.poe-investment{grid-template-columns:1fr}.poe-summary{display:none}}.tr-page{--tr-gym:#6d28d9;--tr-gym-deep:#4c1d95;--tr-hard:#be123c;--tr-tempo:#c2410c;--tr-long:#0369a1;--tr-rest:#64717e;--tr-good:var(--accent);--tr-warn:var(--warn);--tr-bad:var(--danger);--tr-panel:var(--panel-solid);--tr-panel-deep:var(--panel-deep);--tr-line:var(--line-soft);--tr-line-strong:var(--line-strong);--tr-mono:"SFMono-Regular", Consolas, "Liberation Mono", monospace;--tr-zone-1:#0369a1;--tr-zone-2:#047857;--tr-zone-3:#a16207;--tr-zone-4:#c2410c;--tr-zone-5:#be123c;--tr-zone-6:#9d174d;--tr-zone-7:#6d28d9;min-height:100vh;color:var(--ink);background:radial-gradient(circle at 85% -10%, color-mix(in srgb, var(--tr-gym) 14%, transparent), transparent 32rem), var(--bg);position:relative}:root:not([data-theme=light]) .tr-page{--tr-gym:#a78bfa;--tr-gym-deep:#7c3aed;--tr-hard:#ff5470;--tr-tempo:#ffb347;--tr-long:#4fb8ff;--tr-rest:#82909e;--tr-panel:#10161d;--tr-panel-deep:#0d1219;--tr-line:#1e2833;--tr-line-strong:#2b3844;--tr-zone-1:#4fb8ff;--tr-zone-2:#3ddc97;--tr-zone-3:#ffd166;--tr-zone-4:#ff6b3a;--tr-zone-5:#ff5470;--tr-zone-6:#f472b6;--tr-zone-7:#a78bfa}.tr-page:before{content:"";pointer-events:none;background:repeating-linear-gradient(0deg, var(--line-faint) 0 1px, transparent 1px 46px), repeating-linear-gradient(90deg, var(--line-faint) 0 1px, transparent 1px 46px);position:fixed;inset:0;-webkit-mask-image:linear-gradient(#000,#0000 60vh);mask-image:linear-gradient(#000,#0000 60vh)}.tr-page :focus-visible{outline:2px solid var(--tr-gym);outline-offset:2px}.tr-shell{width:min(100%,80rem);margin:0 auto;padding:1.5rem 1rem 6rem;position:relative}.tr-top-row{justify-content:space-between;align-items:center;gap:1rem;display:flex}.tr-back{color:var(--muted);font-size:.82rem;text-decoration:none}.tr-back:hover{color:var(--tr-gym)}.tr-top-actions{align-items:center;gap:.6rem;display:flex}.tr-header{border-bottom:1px solid var(--line);flex-wrap:wrap;justify-content:space-between;align-items:flex-end;gap:1rem 2rem;margin:1.25rem 0 1.5rem;padding-bottom:1.25rem;display:flex}.tr-header h1{margin:.5rem 0 0}.tr-page .eyebrow{color:var(--tr-gym)}.tr-tabs{border:1px solid var(--tr-line);background:var(--tr-panel);gap:.25rem;padding:.25rem;display:flex}.tr-tab{color:var(--muted);padding:.5rem 1rem;font-size:.85rem;text-decoration:none;transition:color .14s,background .14s}.tr-tab:hover{color:var(--ink)}.tr-tab.active{color:var(--accent-ink);background:var(--tr-gym)}.tr-label{color:var(--muted);font-family:var(--tr-mono);letter-spacing:.14em;text-transform:uppercase;margin-bottom:.35rem;font-size:.62rem;display:block}.tr-muted{color:var(--muted);font-size:.82rem}.tr-alert{border:1px solid var(--danger);color:var(--danger);background:var(--danger-soft);padding:.75rem 1rem}.tr-message{color:var(--tr-good);font-size:.85rem}.tr-loading{color:var(--muted);align-items:center;gap:.6rem;padding:2rem 0;display:flex}.tr-spinner{border:2px solid var(--tr-line-strong);border-top-color:var(--tr-gym);border-radius:50%;width:1rem;height:1rem;animation:.8s linear infinite tr-spin}@keyframes tr-spin{to{transform:rotate(360deg)}}.tr-button{border:1px solid var(--tr-line-strong);color:var(--ink-dim);background:var(--tr-panel);align-items:center;gap:.4rem;padding:.55rem .9rem;font-size:.85rem;text-decoration:none;transition:border-color .14s,color .14s,background .14s;display:inline-flex}.tr-button:hover:not(:disabled){border-color:var(--tr-gym);color:var(--tr-gym)}.tr-button.primary{border-color:var(--tr-gym);color:var(--accent-ink);background:var(--tr-gym)}.tr-button.primary:hover:not(:disabled){color:var(--accent-ink);filter:brightness(1.08)}.tr-button.danger{border-color:var(--danger-solid);color:var(--danger)}.tr-button.danger:hover:not(:disabled){color:var(--danger-ink);background:var(--danger-solid)}.tr-icon-button{width:1.75rem;height:1.75rem;color:var(--muted);background:0 0;border:1px solid #0000;padding:0;line-height:1}.tr-icon-button:hover:not(:disabled){border-color:var(--tr-line-strong);color:var(--ink)}.tr-icon-button.danger:hover:not(:disabled){color:var(--danger)}.tr-input{border:1px solid var(--tr-line-strong);width:100%;color:var(--ink);background:var(--tr-panel-deep);padding:.55rem .7rem;font-size:.9rem}.tr-input:focus{border-color:var(--tr-gym);outline:none}.tr-field{min-width:0;display:block}.tr-chip-row{flex-wrap:wrap;gap:.35rem;display:flex}.tr-chip{border:1px solid var(--tr-line-strong);color:var(--ink-dim);background:0 0;align-items:center;gap:.35rem;padding:.3rem .65rem;font-size:.78rem;transition:border-color .14s,color .14s,background .14s;display:inline-flex}.tr-chip:hover:not(:disabled){border-color:var(--tr-gym);color:var(--tr-gym)}.tr-chip.active{border-color:var(--tr-gym);color:var(--accent-ink);background:var(--tr-gym)}.tr-chip-count{background:color-mix(in srgb, currentColor 18%, transparent);font-family:var(--tr-mono);border-radius:1rem;padding:0 .35rem;font-size:.65rem}.tr-pill{border:1px solid var(--tr-line-strong);background:var(--tr-panel-deep);font-family:var(--tr-mono);align-items:center;padding:.35rem .7rem;font-size:.78rem;display:inline-flex}.tr-pill.subtle{color:var(--muted);border-style:dashed}[data-kind=upper],[data-kind=legs]{--k:var(--tr-gym)}[data-kind=bike_hard]{--k:var(--tr-hard)}[data-kind=bike_tempo]{--k:var(--tr-tempo)}[data-kind=bike_long]{--k:var(--tr-long)}[data-kind=rest]{--k:var(--tr-rest)}.tr-kind{border:1px solid color-mix(in srgb, var(--k) 55%, transparent);color:var(--k);background:color-mix(in srgb, var(--k) 12%, transparent);font-family:var(--tr-mono);letter-spacing:.08em;text-transform:uppercase;white-space:nowrap;align-items:center;gap:.35rem;padding:.18rem .5rem;font-size:.66rem;display:inline-flex}.tr-verdict{font-family:var(--tr-mono);letter-spacing:.06em;text-transform:uppercase;white-space:nowrap;border-radius:1rem;align-items:center;gap:.25rem;padding:.15rem .45rem;font-size:.64rem;display:inline-flex}.tr-verdict.big{padding:.4rem .8rem;font-size:.78rem}.tr-verdict.tone-good,.tr-tile.tone-good .tr-tile-value{color:var(--tr-good)}.tr-verdict.tone-warn,.tr-tile.tone-warn .tr-tile-value{color:var(--tr-warn)}.tr-verdict.tone-bad,.tr-tile.tone-bad .tr-tile-value{color:var(--tr-bad)}.tr-verdict.tone-mute{color:var(--muted)}.tr-verdict.tone-good{background:color-mix(in srgb, var(--tr-good) 14%, transparent)}.tr-verdict.tone-warn{background:color-mix(in srgb, var(--tr-warn) 14%, transparent)}.tr-verdict.tone-bad{background:color-mix(in srgb, var(--tr-bad) 14%, transparent)}.tr-verdict.tone-mute{background:color-mix(in srgb, var(--muted) 14%, transparent)}.tr-page td.up,.tr-page .up{color:var(--tr-good)}.tr-page td.down,.tr-page .down{color:var(--tr-bad)}.tr-panel,.tr-card{border:1px solid var(--tr-line);background:var(--tr-panel);margin-bottom:1.25rem;padding:1.25rem}.tr-panel-head,.tr-card-head{flex-wrap:wrap;justify-content:space-between;align-items:baseline;gap:.35rem 1rem;margin-bottom:1rem;display:flex}.tr-panel-head h3,.tr-card-head h3{letter-spacing:-.02em;margin:0;font-size:1.05rem}.tr-table{border-collapse:collapse;width:100%;font-size:.85rem}.tr-table th,.tr-table td{border-bottom:1px solid var(--tr-line);text-align:left;vertical-align:middle;padding:.5rem .6rem}.tr-table th{color:var(--muted);font-family:var(--tr-mono);letter-spacing:.1em;text-transform:uppercase;font-size:.62rem;font-weight:500}.tr-table tbody tr.active td{background:color-mix(in srgb, var(--tr-gym) 10%, transparent)}.tr-table tbody tr[onclick],.tr-table tbody tr:hover td{cursor:default}.tr-strip{grid-template-columns:repeat(7,minmax(0,1fr));gap:.5rem;margin-bottom:1.25rem;display:grid}.tr-strip-day{border:1px solid var(--tr-line);border-top:3px solid var(--k);min-width:0;color:inherit;background:var(--tr-panel);flex-direction:column;gap:.35rem;padding:.75rem .8rem;text-decoration:none;transition:transform .14s,border-color .14s;display:flex}.tr-strip-day:hover{border-color:var(--k);transform:translateY(-2px)}.tr-strip-weekday{color:var(--muted);font-family:var(--tr-mono);letter-spacing:.14em;text-transform:uppercase;font-size:.62rem}.tr-strip-title{text-overflow:ellipsis;white-space:nowrap;font-size:.82rem;font-weight:600;overflow:hidden}.tr-strip-target{color:var(--muted);font-family:var(--tr-mono);font-size:.68rem}.tr-tray{border:1px dashed color-mix(in srgb, var(--tr-long) 60%, transparent);background:color-mix(in srgb, var(--tr-long) 6%, var(--tr-panel));margin-bottom:1.25rem;padding:.9rem 1rem}.tr-tray-head{flex-wrap:wrap;justify-content:space-between;align-items:baseline;gap:.35rem 1rem;margin-bottom:.6rem;display:flex}.tr-tray-head .tr-label{margin:0}.tr-tray-list{flex-wrap:wrap;gap:.5rem;display:flex}.tr-ride-chip{border:1px solid var(--tr-line-strong);color:var(--ink);background:var(--tr-panel);cursor:grab;align-items:center;gap:.5rem;padding:.45rem .75rem;font-size:.82rem;transition:border-color .14s,transform .14s;display:inline-flex}.tr-ride-chip:hover{border-color:var(--tr-long);transform:translateY(-1px)}.tr-ride-chip:active{cursor:grabbing}.tr-ride-chip svg{color:var(--tr-long)}.tr-ride-chip-date,.tr-ride-chip-stats{color:var(--muted);font-family:var(--tr-mono);font-size:.7rem}.tr-cal{border:1px solid var(--tr-line);background:var(--tr-panel)}.tr-cal-head{border-bottom:1px solid var(--tr-line);justify-content:space-between;align-items:center;gap:1rem;padding:1rem 1.25rem;display:flex}.tr-cal-head h2{letter-spacing:-.03em;margin:0;font-size:1.3rem}.tr-cal-nav{gap:.35rem;display:flex}.tr-cal-weekdays,.tr-week{grid-template-columns:repeat(7,minmax(0,1fr)) 5.5rem;display:grid}.tr-cal-weekdays span{border-bottom:1px solid var(--tr-line);color:var(--muted);font-family:var(--tr-mono);letter-spacing:.14em;text-transform:uppercase;padding:.5rem .6rem;font-size:.62rem}.tr-week+.tr-week{border-top:1px solid var(--tr-line)}.tr-day{border:0;border-right:1px solid var(--tr-line);min-height:7.25rem;color:var(--ink);text-align:left;background:0 0;flex-direction:column;align-items:flex-start;gap:.4rem;padding:.6rem;transition:background .14s,box-shadow .14s;display:flex}.tr-day:hover{background:var(--bike-row-hover)}.tr-day.outside{opacity:.45}.tr-day.today{box-shadow:inset 0 0 0 2px var(--tr-gym)}.tr-day.drop{background:color-mix(in srgb, var(--tr-long) 18%, transparent);box-shadow:inset 0 0 0 2px var(--tr-long)}.tr-day.has-ride .tr-day-sum{color:var(--tr-long)}.tr-day[data-state=done]{background:color-mix(in srgb, var(--k) 7%, transparent)}.tr-day[data-state=done]:hover{background:color-mix(in srgb, var(--k) 14%, transparent)}.tr-day[data-state=missed] .tr-kind,.tr-day[data-state=skipped] .tr-kind{opacity:.55}.tr-day-top{justify-content:space-between;align-items:center;width:100%;display:flex}.tr-day-num{font-family:var(--tr-mono);font-size:.8rem}.tr-day.today .tr-day-num{color:var(--tr-gym);font-weight:700}.tr-day-state{border-radius:50%;place-items:center;width:1.15rem;height:1.15rem;font-size:.7rem;font-weight:700;line-height:1;display:inline-grid}.tr-state-done{color:var(--accent-ink);background:var(--tr-good)}.tr-state-skipped{color:var(--ink);background:var(--raised)}.tr-state-missed{color:var(--tr-bad);border:1px solid var(--tr-bad)}.tr-day-sum{flex-direction:column;gap:.25rem;min-width:0;max-width:100%;font-size:.75rem;display:flex}.tr-day-text{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.tr-week-sum{background:var(--tr-panel-deep);flex-direction:column;justify-content:center;gap:.2rem;padding:.6rem;display:flex}.tr-week-sum strong{letter-spacing:-.03em;font-size:1.2rem}.tr-week-sum strong span{color:var(--muted);font-size:.8rem;font-weight:400}.tr-week-line{color:var(--muted);font-family:var(--tr-mono);font-size:.68rem}.tr-legend{border-top:1px solid var(--tr-line);flex-wrap:wrap;align-items:center;gap:.5rem .75rem;padding:.8rem 1.25rem;display:flex}.tr-legend-note{color:var(--muted);align-items:center;gap:.35rem;margin-left:auto;font-size:.75rem;display:inline-flex}.tr-day-nav{gap:.35rem;display:flex}.tr-day-page{margin:0}.tr-hero{border:1px solid color-mix(in srgb, var(--k) 45%, var(--tr-line));background:linear-gradient(135deg, color-mix(in srgb, var(--k) 12%, transparent), transparent 55%), var(--tr-panel);grid-template-columns:minmax(0,1fr) minmax(0,1.2fr);gap:1.5rem;margin-bottom:1.25rem;padding:1.5rem;display:grid}.tr-hero h2{letter-spacing:-.04em;margin:.5rem 0 1rem;font-size:clamp(1.4rem,3vw,2rem)}.tr-hero .eyebrow{color:var(--k)}.tr-kind-picker{flex-wrap:wrap;gap:.35rem;display:flex}.tr-kind-option{border:1px solid var(--tr-line-strong);color:var(--ink-dim);background:0 0;align-items:center;gap:.4rem;padding:.45rem .75rem;font-size:.82rem;transition:border-color .14s,background .14s,color .14s;display:inline-flex}.tr-kind-option:hover:not(:disabled){border-color:var(--k);color:var(--k)}.tr-kind-option.active{border-color:var(--k);color:var(--accent-ink);background:var(--k)}.tr-status{margin:1rem 0 0;font-size:.85rem}.tr-status-done{color:var(--tr-good)}.tr-status-skipped{color:var(--muted)}.tr-hero-targets h3{margin:0 0 .25rem;font-size:1.15rem}.tr-focus{color:var(--muted);margin:0 0 .75rem}.tr-intent{border-left:3px solid var(--k);color:var(--ink-dim);margin:0 0 .75rem;padding:.6rem .9rem;font-size:.92rem;line-height:1.5}.tr-structure{margin:0 0 .75rem;font-size:.85rem;line-height:1.5}.tr-target-row{flex-wrap:wrap;gap:.4rem;margin-bottom:.75rem;display:flex}.tr-gauge{width:100%;height:auto;display:block;overflow:visible}.tr-gauge-track{fill:var(--tr-line-strong)}.tr-gauge-band{fill:var(--k);opacity:.85}.tr-gauge-peak{fill:var(--k);opacity:.3}.tr-gauge-tick{stroke:var(--tr-line-strong)}.tr-gauge-label{fill:var(--muted);font-family:var(--tr-mono);font-size:10px}.tr-gauge-bound{fill:var(--ink);font-family:var(--tr-mono);font-size:11px;font-weight:700}.tr-gauge-marker polygon{fill:var(--ink)}.tr-gauge-marker line{stroke:var(--ink);stroke-width:1.5px;stroke-dasharray:3 2}.tr-gauge-marker text{fill:var(--ink);font-family:var(--tr-mono);font-size:11px}.tr-gauge-zone{opacity:.35}.tr-gauge-zone-0,.tr-zone-swatch.tr-gauge-zone-0{fill:var(--tr-zone-1);background:var(--tr-zone-1)}.tr-gauge-zone-1,.tr-zone-swatch.tr-gauge-zone-1{fill:var(--tr-zone-2);background:var(--tr-zone-2)}.tr-gauge-zone-2,.tr-zone-swatch.tr-gauge-zone-2{fill:var(--tr-zone-3);background:var(--tr-zone-3)}.tr-gauge-zone-3,.tr-zone-swatch.tr-gauge-zone-3{fill:var(--tr-zone-4);background:var(--tr-zone-4)}.tr-gauge-zone-4,.tr-zone-swatch.tr-gauge-zone-4{fill:var(--tr-zone-5);background:var(--tr-zone-5)}.tr-gauge-zone-5,.tr-zone-swatch.tr-gauge-zone-5{fill:var(--tr-zone-6);background:var(--tr-zone-6)}.tr-gauge-zone-6,.tr-zone-swatch.tr-gauge-zone-6{fill:var(--tr-zone-7);background:var(--tr-zone-7)}.tr-zone-swatch{vertical-align:-1px;width:.7rem;height:.7rem;margin-right:.5rem;display:inline-block}.tr-ride-card{border:1px solid var(--tr-line-strong);background:var(--tr-panel-deep);grid-template-columns:minmax(0,1fr) auto auto;align-items:center;gap:1rem;padding:.9rem 1rem;display:grid}.tr-ride-card.selected{border-color:var(--tr-long)}.tr-ride-card>div:first-child{flex-direction:column;gap:.2rem;min-width:0;display:flex}.tr-ride-facts{flex-wrap:wrap;gap:.25rem 1.25rem;margin:0;display:flex}.tr-ride-facts div{flex-direction:column;display:flex}.tr-ride-facts dt{color:var(--muted);font-family:var(--tr-mono);letter-spacing:.12em;text-transform:uppercase;font-size:.6rem}.tr-ride-facts dd{margin:0;font-size:.95rem;font-weight:600}.tr-ride-candidates{gap:.5rem;margin-bottom:.75rem;display:grid}.tr-ride-empty p{margin:0 0 .75rem}.tr-inline-actions{flex-wrap:wrap;gap:.5rem;margin-top:.75rem;display:flex}.tr-ride-analysis{border:1px solid var(--tr-line);background:var(--tr-panel-deep);margin-top:1rem;padding:1rem}.tr-ride-analysis-head,.tr-gym-analysis-head{flex-wrap:wrap;align-items:center;gap:.5rem 1rem;margin-bottom:.75rem;display:flex}.tr-compliance{flex-direction:column;gap:.4rem;display:flex}.tr-compliance-track{background:var(--raised);border-radius:.4rem;width:100%;height:.8rem;display:flex;overflow:hidden}.tr-compliance.compact .tr-compliance-track{height:.45rem}.tr-compliance-below{background:var(--tr-long)}.tr-compliance-in{background:var(--tr-good)}.tr-compliance-above{background:var(--tr-bad)}.tr-compliance-legend{color:var(--muted);flex-wrap:wrap;gap:.35rem 1rem;font-size:.75rem;display:flex}.tr-compliance-legend span{align-items:center;gap:.35rem;display:inline-flex}.tr-compliance-legend i{border-radius:50%;width:.6rem;height:.6rem}.tr-workout{grid-template-columns:minmax(0,1fr) 17rem;gap:1.25rem;margin-bottom:1.25rem;display:grid}.tr-workout-main{border:1px solid var(--tr-line);background:var(--tr-panel);min-width:0;padding:1.25rem}.tr-suggestions{flex-wrap:wrap;align-items:center;gap:.35rem;margin-bottom:1rem;display:flex}.tr-suggestions .tr-label{margin:0 .35rem 0 0}.tr-blocks{border:1px dashed #0000;flex-direction:column;gap:.75rem;min-height:6rem;padding:.25rem;transition:border-color .14s;display:flex}.tr-blocks.reordering,.tr-blocks:empty{border-color:var(--tr-line-strong)}.tr-drop-hint{border:1px dashed var(--tr-line-strong);color:var(--muted);text-align:center;margin:0;padding:2rem 1rem}.tr-block{border:1px solid var(--tr-line-strong);background:var(--tr-panel-deep);transition:opacity .14s,border-color .14s}.tr-block.dragging{opacity:.4}.tr-block-head{border-bottom:1px solid var(--tr-line);grid-template-columns:auto minmax(0,1fr) auto auto;align-items:center;gap:.75rem;padding:.7rem .8rem;display:grid}.tr-drag-handle{color:var(--muted);cursor:grab;letter-spacing:-.2em;-webkit-user-select:none;user-select:none}.tr-block-title{flex-direction:column;gap:.15rem;min-width:0;display:flex}.tr-block-title .tr-muted{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.tr-block-live{align-items:center;gap:.5rem;display:flex}.tr-e1rm{font-family:var(--tr-mono);white-space:nowrap;font-size:.78rem}.tr-e1rm em{color:var(--muted);margin-left:.35rem;font-style:normal}.tr-e1rm em.up{color:var(--tr-good)}.tr-e1rm em.down{color:var(--tr-bad)}.tr-block-tools{gap:.15rem;display:flex}.tr-sets{border-collapse:collapse;width:100%;font-size:.85rem}.tr-sets th{color:var(--muted);font-family:var(--tr-mono);letter-spacing:.12em;text-align:left;text-transform:uppercase;padding:.4rem .6rem;font-size:.6rem;font-weight:500}.tr-sets td{padding:.25rem .6rem}.tr-sets tr.warmup td{opacity:.6}.tr-sets input[type=number]{border:1px solid var(--tr-line-strong);width:5rem;color:var(--ink);background:var(--tr-panel);font-family:var(--tr-mono);padding:.4rem .5rem;font-size:.9rem}.tr-sets input[type=number]:focus{border-color:var(--tr-gym);outline:none}.tr-stepper{align-items:stretch;display:inline-flex}.tr-stepper button{border:1px solid var(--tr-line-strong);width:1.9rem;color:var(--muted);background:var(--tr-panel);font-size:1rem}.tr-stepper button:first-child{border-right:0}.tr-stepper button:last-child{border-left:0}.tr-stepper button:hover:not(:disabled){color:var(--tr-gym)}.tr-block-foot{border-top:1px solid var(--tr-line);gap:.5rem;padding:.6rem .8rem;display:flex}.tr-gym-analysis{border:1px solid var(--tr-line);background:var(--tr-panel-deep);margin-top:1.25rem;padding:1rem;overflow-x:auto}.tr-catalog{border:1px solid var(--tr-line);background:var(--tr-panel);flex-direction:column;align-self:start;gap:.6rem;max-height:calc(100vh - 2rem);padding:1rem;display:flex;position:sticky;top:1rem}.tr-catalog-list{flex-direction:column;gap:.25rem;display:flex;overflow-y:auto}.tr-catalog-item{color:var(--ink);background:var(--tr-panel-deep);text-align:left;cursor:grab;border:1px solid #0000;justify-content:space-between;align-items:center;gap:.5rem;padding:.45rem .6rem;font-size:.82rem;display:flex}.tr-catalog-item:hover:not(:disabled){border-color:var(--tr-gym)}.tr-save-row{flex-wrap:wrap;align-items:center;gap:.5rem;margin-top:1rem;display:flex}.tr-log-state{border:1px solid var(--tr-line-strong);color:var(--muted);font-family:var(--tr-mono);letter-spacing:.12em;text-transform:uppercase;align-items:center;gap:.5rem;margin-bottom:.9rem;padding:.45rem .9rem .45rem .55rem;font-size:.72rem;display:inline-flex}.tr-log-state-mark{border:1px solid;border-radius:50%;place-items:center;width:1.4rem;height:1.4rem;font-size:.85rem;font-weight:700;line-height:1;display:inline-grid}.tr-log-state-done{border-color:var(--tr-good);color:var(--accent-ink);background:var(--tr-good)}.tr-log-state-done .tr-log-state-mark{border-color:var(--accent-ink)}.tr-log-state-skipped{border-color:var(--tr-warn);color:var(--tr-warn);background:color-mix(in srgb, var(--tr-warn) 12%, transparent)}.tr-log-state-open{border-style:dashed}.tr-hero[data-status=done]{border-color:var(--tr-good);box-shadow:inset .35rem 0 0 var(--tr-good)}.tr-hero[data-status=skipped]{box-shadow:inset .35rem 0 0 var(--tr-warn)}.tr-actions{z-index:5;border:1px solid var(--tr-line-strong);background:var(--tr-panel);box-shadow:0 -.5rem 2rem var(--shadow);flex-wrap:wrap;align-items:center;gap:.5rem;margin-top:.5rem;padding:.85rem 1rem;display:flex;position:sticky;bottom:0}.tr-modal-backdrop{z-index:40;background:var(--bike-overlay);place-items:center;padding:1rem;display:grid;position:fixed;inset:0}.tr-modal{border:1px solid var(--tr-line-strong);background:var(--tr-panel);width:min(100%,36rem);max-height:85vh;box-shadow:0 2rem 6rem var(--shadow-strong);flex-direction:column;gap:.75rem;padding:1.25rem;display:flex}.tr-modal-head{justify-content:space-between;align-items:center;display:flex}.tr-modal-head h3{margin:0}.tr-picker-list{flex-direction:column;gap:.25rem;display:flex;overflow-y:auto}.tr-picker-row{color:var(--ink);background:var(--tr-panel-deep);text-align:left;border:1px solid #0000;grid-template-columns:4.5rem minmax(0,1fr);gap:.1rem .75rem;padding:.55rem .7rem;display:grid}.tr-picker-row:hover{border-color:var(--tr-long)}.tr-picker-row span:last-child{color:var(--muted);grid-column:2;font-size:.78rem}.tr-picker-date{color:var(--muted);font-family:var(--tr-mono);grid-row:1/span 2;font-size:.72rem}.tr-settings-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:1rem;display:grid}.tr-zones{border-top:1px solid var(--tr-line);grid-template-columns:minmax(0,1.3fr) minmax(0,1fr);gap:1.5rem;margin-top:1.25rem;padding-top:1.25rem;display:grid}.tr-zones-text p{margin:0;font-size:.88rem;line-height:1.55}.tr-zone-table td:first-child{white-space:nowrap}.tr-plan-days{grid-template-columns:repeat(auto-fill,minmax(21rem,1fr));gap:1rem;margin-bottom:1.25rem;display:grid}.tr-plan-day{border:1px solid var(--tr-line);border-top:3px solid var(--k);background:var(--tr-panel);flex-direction:column;gap:.75rem;padding:1.1rem;display:flex}.tr-plan-day-head{justify-content:space-between;align-items:center;gap:.75rem;display:flex}.tr-plan-day-head select{width:auto}.tr-plan-numbers{grid-template-columns:repeat(3,minmax(0,1fr));gap:.6rem;display:grid}.tr-exercise-form{grid-template-columns:minmax(0,1fr) auto auto auto;align-items:center;gap:.5rem;margin-bottom:1rem;display:grid}.tr-check{white-space:nowrap;align-items:center;gap:.35rem;font-size:.85rem;display:inline-flex}.tr-exercise-list{grid-template-columns:repeat(auto-fill,minmax(16rem,1fr));gap:.35rem;display:grid}.tr-exercise-row{border:1px solid var(--tr-line);grid-template-columns:minmax(0,1fr) auto auto;align-items:center;gap:.5rem;padding:.4rem .6rem;font-size:.85rem;display:grid}.tr-exercise-row.archived>span:first-child{color:var(--muted);text-decoration:line-through}.tr-tiles{grid-template-columns:repeat(6,minmax(0,1fr));gap:.6rem;margin-bottom:1.25rem;display:grid}.tr-tile{border:1px solid var(--tr-line);background:var(--tr-panel);flex-direction:column;gap:.2rem;min-width:0;padding:.9rem 1rem;display:flex}.tr-tile-label{color:var(--muted);font-family:var(--tr-mono);letter-spacing:.14em;text-transform:uppercase;font-size:.62rem}.tr-tile-value{letter-spacing:-.04em;font-size:1.5rem;line-height:1.1}.tr-tile-note{color:var(--muted);font-size:.72rem}.tr-two{grid-template-columns:repeat(2,minmax(0,1fr));gap:1.25rem;display:grid}.tr-heat{flex-direction:column;gap:.3rem;display:flex}.tr-heat-row{grid-template-columns:4rem repeat(7,1.6rem) auto;align-items:center;gap:.3rem;display:grid}.tr-heat-header span{color:var(--muted);font-family:var(--tr-mono);text-align:center;font-size:.62rem}.tr-heat-week,.tr-heat-count{font-family:var(--tr-mono);font-size:.7rem}.tr-heat-count{padding-left:.5rem}.tr-heat-cell{border:1px solid color-mix(in srgb, var(--k) 40%, transparent);background:color-mix(in srgb, var(--k) 12%, transparent);width:1.6rem;height:1.6rem;padding:0;transition:transform .12s;position:relative}.tr-heat-cell:hover{z-index:1;transform:scale(1.15)}.tr-heat-cell[data-state=done]{background:var(--k)}.tr-heat-cell[data-state=missed]{border-color:var(--tr-bad);background:color-mix(in srgb, var(--tr-bad) 12%, transparent)}.tr-heat-cell[data-state=skipped]{background:repeating-linear-gradient(45deg, color-mix(in srgb, var(--k) 40%, transparent) 0 2px, transparent 2px 5px)}.tr-heat-cell[data-state=rest]{background:0 0;border-style:dotted}.tr-heat-cell[data-state=upcoming]{opacity:.35}.tr-heat-cell[data-verdict=too_hard]:after,.tr-heat-cell[data-verdict=regressed]:after,.tr-heat-cell[data-verdict=progress]:after,.tr-heat-cell[data-verdict=on_target]:after{content:"";background:var(--accent-ink);border-radius:50%;width:5px;height:5px;position:absolute;bottom:2px;right:2px}.tr-heat-cell[data-verdict=too_hard]:after,.tr-heat-cell[data-verdict=regressed]:after{background:var(--tr-bad);box-shadow:0 0 0 1px var(--accent-ink)}.tr-bars,.tr-trend{width:100%;height:auto;display:block;overflow:visible}.tr-grid{stroke:var(--tr-line)}.tr-axis-line{stroke:var(--tr-line-strong)}.tr-axis{fill:var(--muted);font-family:var(--tr-mono);font-size:10px}.tr-bar-hit{fill:#0000}.tr-bar-hit.active{fill:color-mix(in srgb, var(--ink) 5%, transparent)}.tr-bar{transition:opacity .12s}.tr-bar-value{fill:var(--ink);font-family:var(--tr-mono);font-size:11px}.tr-trend-line{fill:none;stroke-width:2px}.tr-trend-dot{stroke:var(--tr-panel);stroke-width:1.5px}.tr-trend-band{fill:var(--tr-good);opacity:.12}.tr-trend-tip text{fill:var(--ink);font-family:var(--tr-mono);font-size:11px}.tr-chart-empty{color:var(--muted);text-align:center;margin:0;padding:2rem 1rem}.tr-chart-legend{color:var(--muted);font-family:var(--tr-mono);letter-spacing:.1em;text-transform:uppercase;flex-wrap:wrap;gap:.3rem 1rem;margin-top:.5rem;font-size:.62rem;display:flex}.tr-chart-legend span{align-items:center;gap:.35rem;display:inline-flex}.tr-chart-legend i{width:.6rem;height:.6rem}.tr-kind-tiles{grid-template-columns:repeat(3,minmax(0,1fr));gap:.6rem;margin-bottom:1rem;display:grid}.tr-kind-tile{border:1px solid var(--tr-line);border-left:3px solid var(--k);background:var(--tr-panel-deep);flex-direction:column;gap:.25rem;padding:.8rem .9rem;display:flex}.tr-kind-tile strong{letter-spacing:-.03em;font-size:1.4rem}.tr-ride-rows,.tr-log{flex-direction:column;gap:.3rem;margin-top:.75rem;display:flex}.tr-ride-row,.tr-log-row{border:1px solid var(--tr-line);color:var(--ink);background:var(--tr-panel-deep);text-align:left;align-items:center;gap:.75rem;padding:.5rem .7rem;font-size:.82rem;display:grid}.tr-ride-row{grid-template-columns:4rem auto minmax(0,1fr) auto 10rem auto}.tr-log-row{grid-template-columns:4rem auto minmax(0,1fr) auto}.tr-ride-row:hover,.tr-log-row:hover{border-color:var(--tr-gym)}.tr-ride-row-date{color:var(--muted);font-family:var(--tr-mono);font-size:.72rem}.tr-ride-row-name,.tr-log-text{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.tr-ride-row-stats{color:var(--muted);font-family:var(--tr-mono);white-space:nowrap;font-size:.72rem}.tr-lift{margin:1rem 0}.tr-lift-stats{grid-template-columns:repeat(3,minmax(0,1fr));gap:.6rem;margin-bottom:.75rem;display:grid}@media (width<=960px){.tr-strip{grid-template-columns:repeat(4,minmax(0,1fr))}.tr-hero,.tr-workout,.tr-two,.tr-zones{grid-template-columns:1fr}.tr-catalog{max-height:none;position:static}.tr-catalog-list{max-height:16rem}.tr-tiles{grid-template-columns:repeat(3,minmax(0,1fr))}.tr-ride-row{grid-template-columns:4rem auto minmax(0,1fr) auto}.tr-ride-row-bar{grid-column:1/-1}}@media (width<=700px){.tr-shell{padding:1rem .75rem 4rem}.tr-strip{gap:.4rem;padding-bottom:.25rem;display:flex;overflow-x:auto}.tr-strip-day{flex:0 0 9rem}.tr-cal-weekdays{display:none}.tr-week{flex-direction:column;display:flex}.tr-day{border-right:0;border-bottom:1px solid var(--tr-line);flex-direction:row;align-items:center;min-height:0;padding:.6rem .8rem}.tr-day.outside{display:none}.tr-day-top{flex:none;width:3.5rem}.tr-day-sum{align-items:flex-end;margin-left:auto}.tr-week-sum{flex-direction:row;align-items:baseline;gap:.75rem}.tr-settings-grid,.tr-kind-tiles,.tr-lift-stats,.tr-plan-numbers{grid-template-columns:1fr 1fr}.tr-tiles{grid-template-columns:repeat(2,minmax(0,1fr))}.tr-ride-card{grid-template-columns:1fr}.tr-block-head{grid-template-columns:auto minmax(0,1fr)}.tr-block-live,.tr-block-tools{grid-column:2}.tr-exercise-form{grid-template-columns:1fr 1fr}.tr-heat-row{grid-template-columns:3.2rem repeat(7,1.35rem) auto}.tr-heat-cell{width:1.35rem;height:1.35rem}.tr-log-row{grid-template-columns:4rem auto minmax(0,1fr)}.tr-log-row .tr-verdict{grid-column:2/-1}}
