.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;left:0;top:0}.leaflet-container{overflow:hidden}.leaflet-tile,.leaflet-marker-icon,.leaflet-marker-shadow{-webkit-user-select:none;-moz-user-select:none;user-select:none;-webkit-user-drag:none}.leaflet-tile::selection{background:transparent}.leaflet-safari .leaflet-tile{image-rendering:-webkit-optimize-contrast}.leaflet-safari .leaflet-tile-container{width:1600px;height:1600px;-webkit-transform-origin:0 0}.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{max-width:none!important;max-height:none!important;width:auto;padding:0}.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:rgba(51,181,229,.4)}.leaflet-tile{filter:inherit;visibility:hidden}.leaflet-tile-loaded{visibility:inherit}.leaflet-zoom-box{width:0;height:0;-moz-box-sizing:border-box;box-sizing:border-box;z-index:800}.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{position:relative;z-index:800;pointer-events:visiblePainted;pointer-events:auto}.leaflet-top,.leaflet-bottom{position:absolute;z-index:1000;pointer-events:none}.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;-webkit-transition:opacity .2s linear;-moz-transition:opacity .2s linear;transition:opacity .2s linear}.leaflet-fade-anim .leaflet-map-pane .leaflet-popup{opacity:1}.leaflet-zoom-animated{-webkit-transform-origin:0 0;-ms-transform-origin:0 0;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{-webkit-transition:none;-moz-transition:none;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{background:#ddd;outline-offset:1px}.leaflet-container a{color:#0078a8}.leaflet-zoom-box{border:2px dotted #38f;background:#ffffff80}.leaflet-container{font-family:Helvetica Neue,Arial,Helvetica,sans-serif;font-size:12px;font-size:.75rem;line-height:1.5}.leaflet-bar{box-shadow:0 1px 5px #000000a6;border-radius:4px}.leaflet-bar a{background-color:#fff;border-bottom:1px solid #ccc;width:26px;height:26px;line-height:26px;display:block;text-align:center;text-decoration:none;color:#000}.leaflet-bar a,.leaflet-control-layers-toggle{background-position:50% 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-left-radius:4px;border-bottom-right-radius:4px;border-bottom:none}.leaflet-bar a.leaflet-disabled{cursor:default;background-color:#f4f4f4;color:#bbb}.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-left-radius:2px;border-bottom-right-radius:2px}.leaflet-control-zoom-in,.leaflet-control-zoom-out{font:700 18px Lucida Console,Monaco,monospace;text-indent:1px}.leaflet-touch .leaflet-control-zoom-in,.leaflet-touch .leaflet-control-zoom-out{font-size:22px}.leaflet-control-layers{box-shadow:0 1px 5px #0006;background:#fff;border-radius:5px}.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{padding:6px 10px 6px 6px;color:#333;background:#fff}.leaflet-control-layers-scrollbar{overflow-y:scroll;overflow-x:hidden;padding-right:5px}.leaflet-control-layers-selector{margin-top:2px;position:relative;top:1px}.leaflet-control-layers label{display:block;font-size:13px;font-size:1.08333em}.leaflet-control-layers-separator{height:0;border-top:1px solid #ddd;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:#fff;background:#fffc;margin:0}.leaflet-control-attribution,.leaflet-control-scale-line{padding:0 5px;color:#333;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{display:inline!important;vertical-align:baseline!important;width:1em;height:.6669em}.leaflet-left .leaflet-control-scale{margin-left:5px}.leaflet-bottom .leaflet-control-scale{margin-bottom:5px}.leaflet-control-scale-line{border:2px solid #777;border-top:none;line-height:1.1;padding:2px 5px 1px;white-space:nowrap;-moz-box-sizing:border-box;box-sizing:border-box;background:#fffc;text-shadow:1px 1px #fff}.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{border:2px solid rgba(0,0,0,.2);background-clip:padding-box}.leaflet-popup{position:absolute;text-align:center;margin-bottom:20px}.leaflet-popup-content-wrapper{padding:1px;text-align:left;border-radius:12px}.leaflet-popup-content{margin:13px 24px 13px 20px;line-height:1.3;font-size:13px;font-size:1.08333em;min-height:1px}.leaflet-popup-content p{margin:1.3em 0}.leaflet-popup-tip-container{width:40px;height:20px;position:absolute;left:50%;margin-top:-1px;margin-left:-20px;overflow:hidden;pointer-events:none}.leaflet-popup-tip{width:17px;height:17px;padding:1px;margin:-10px auto 0;pointer-events:auto;-webkit-transform:rotate(45deg);-moz-transform:rotate(45deg);-ms-transform:rotate(45deg);transform:rotate(45deg)}.leaflet-popup-content-wrapper,.leaflet-popup-tip{background:#fff;color:#333;box-shadow:0 3px 14px #0006}.leaflet-container a.leaflet-popup-close-button{position:absolute;top:0;right:0;border:none;text-align:center;width:24px;height:24px;font:16px/24px Tahoma,Verdana,sans-serif;color:#757575;text-decoration:none;background:transparent}.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{width:24px;margin:0 auto;-ms-filter:"progid:DXImageTransform.Microsoft.Matrix(M11=0.70710678, M12=0.70710678, M21=-0.70710678, M22=0.70710678)";filter:progid:DXImageTransform.Microsoft.Matrix(M11=.70710678,M12=.70710678,M21=-.70710678,M22=.70710678)}.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{position:absolute;padding:6px;background-color:#fff;border:1px solid #fff;border-radius:3px;color:#222;white-space:nowrap;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;pointer-events:none;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{position:absolute;pointer-events:none;border:6px solid transparent;background:transparent;content:""}.leaflet-tooltip-bottom{margin-top:6px}.leaflet-tooltip-top{margin-top:-6px}.leaflet-tooltip-bottom:before,.leaflet-tooltip-top:before{left:50%;margin-left:-6px}.leaflet-tooltip-top:before{bottom:0;margin-bottom:-12px;border-top-color:#fff}.leaflet-tooltip-bottom:before{top:0;margin-top:-12px;margin-left:-6px;border-bottom-color:#fff}.leaflet-tooltip-left{margin-left:-6px}.leaflet-tooltip-right{margin-left:6px}.leaflet-tooltip-left:before,.leaflet-tooltip-right:before{top:50%;margin-top:-6px}.leaflet-tooltip-left:before{right:0;margin-right:-12px;border-left-color:#fff}.leaflet-tooltip-right:before{left:0;margin-left:-12px;border-right-color:#fff}@media print{.leaflet-control{-webkit-print-color-adjust:exact;print-color-adjust:exact}}:root{--color-bg: #fafbfc;--color-surface: #ffffff;--color-surface-hover: #f3f4f6;--color-surface-active: #e5e7eb;--color-fg: #1f2328;--color-fg-muted: #6b7280;--color-fg-subtle: #9ca3af;--color-border: #e5e7eb;--color-border-strong: #d1d5db;--color-accent: #2563eb;--color-accent-hover: #1d4ed8;--color-accent-bg: #eff6ff;--color-on-accent: #ffffff;--color-success: #059669;--color-success-bg: #ecfdf5;--color-warning: #d97706;--color-warning-bg: #fffbeb;--color-warning-text: #b45309;--color-error: #dc2626;--color-error-bg: #fef2f2;--color-on-error: #ffffff;--color-error-hover: #b91c1c;--color-notice: #0e7490;--color-info: #2563eb;--color-info-bg: #eff6ff;--chart-1: #2563eb;--chart-2: #d97706;--chart-3: #059669;--chart-4: #7c3aed;--chart-5: #0891b2;--chart-6: #db2777;--chart-grid: #f0f1f3;--chart-axis: #d1d5db;--chart-tooltip-bg: #1f2328;--chart-tooltip-fg: #ffffff;--tsb-deep-fatigue-bg: #fae3e3;--tsb-productive-bg: #faeddf;--tsb-transition-bg: #eee5fd;--tsb-tapered-bg: #def1eb;--tsb-very-fresh-bg: #e3ebfc;--heatmap-1: #9be9a8;--heatmap-2: #40c463;--heatmap-3: #30a14e;--heatmap-4: #216e39;--zone-0: #d1d5db;--zone-1: #93c5fd;--zone-2: #86efac;--zone-3: #fde047;--zone-4: #fb923c;--zone-5: #f97316;--zone-6: #ef4444;--zone-7: #991b1b;--zone-fg: #0b1220;--zone-fg-on-dark: #ffffff;--space-1: 4px;--space-2: 8px;--space-3: 12px;--space-4: 16px;--space-5: 20px;--space-6: 24px;--space-8: 32px;--space-10: 40px;--space-12: 48px;--space-16: 64px;--font-family: "Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", system-ui, sans-serif;--font-mono: "JetBrains Mono", "SF Mono", ui-monospace, Menlo, monospace;--text-caption: 11px;--text-body-sm: 13px;--text-body: 14px;--text-body-lg: 16px;--text-h3: 16px;--text-h2: 20px;--text-h1: 24px;--text-display: 32px;--text-data: 14px;--text-data-lg: 28px;--text-data-hero: 56px;--font-regular: 400;--font-medium: 500;--font-semibold: 600;--font-bold: 700;--leading-tight: 1.2;--leading-snug: 1.3;--leading-normal: 1.4;--leading-relaxed: 1.5;--tracking-tight: -.02em;--tracking-tight-sm: -.01em;--tracking-normal: 0;--tracking-wide: .05em;--tracking-wider: .08em;--radius-sm: 4px;--radius-md: 6px;--radius-card: 8px;--radius-lg: 12px;--shadow-sm: 0 1px 2px rgba(0, 0, 0, .04);--shadow-hover: 0 2px 8px rgba(0, 0, 0, .04);--shadow-dropdown: 0 4px 12px rgba(0, 0, 0, .08);--shadow-dialog: 0 8px 32px rgba(0, 0, 0, .12);--transition-fast: .15s ease;--transition-base: .2s ease;--sidebar-width: 220px;--sidebar-collapsed: 60px;--header-height: 56px;--content-max-width: 1400px;--page-margin: 24px}[data-theme=dark]{--color-bg: #18191a;--color-surface: #222324;--color-surface-hover: #2a2b2d;--color-surface-active: #323438;--color-fg: #e4e6ea;--color-fg-muted: #8b8f96;--color-fg-subtle: #6b6f76;--color-border: #36383c;--color-border-strong: #4b4d52;--color-accent: #3b82f6;--color-accent-hover: #60a5fa;--color-accent-bg: #1a2332;--color-on-accent: #0b1220;--color-success: #34d399;--color-success-bg: #0d2818;--color-warning: #fbbf24;--color-warning-bg: #2a2008;--color-warning-text: #fbbf24;--color-error: #f87171;--color-error-bg: #2a1010;--color-on-error: #1a0505;--color-error-hover: #ef5350;--color-notice: #22d3ee;--color-info: #3b82f6;--color-info-bg: #1a2332;--chart-1: #60a5fa;--chart-2: #fbbf24;--chart-3: #34d399;--chart-4: #a78bfa;--chart-5: #22d3ee;--chart-6: #f472b6;--chart-grid: #2e3034;--chart-axis: #4b4d52;--chart-tooltip-bg: #0d0f12;--chart-tooltip-fg: #e4e6ea;--tsb-deep-fatigue-bg: #3e2d2d;--tsb-productive-bg: #3e3723;--tsb-transition-bg: #33313f;--tsb-tapered-bg: #243a32;--tsb-very-fresh-bg: #252f3e;--heatmap-1: #2ea043;--heatmap-2: #3fb950;--heatmap-3: #56d364;--heatmap-4: #7ee787}*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}html{-webkit-text-size-adjust:100%;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}body{font-family:var(--font-family);font-size:var(--text-body);font-weight:var(--font-regular);line-height:var(--leading-relaxed);color:var(--color-fg);background-color:var(--color-bg)}h1,h2,h3,h4,h5,h6{font-weight:var(--font-medium);line-height:var(--leading-snug);color:var(--color-fg)}h1{font-size:var(--text-h1);letter-spacing:var(--tracking-tight-sm)}h2{font-size:var(--text-h2)}h3{font-size:var(--text-h3)}.display{font-size:var(--text-display);font-weight:var(--font-medium);line-height:var(--leading-tight);letter-spacing:var(--tracking-tight)}.data-hero{font-size:var(--text-data-hero);font-weight:300;line-height:1;letter-spacing:var(--tracking-tight)}.data-lg{font-size:var(--text-data-lg);font-weight:var(--font-medium);line-height:1.1;letter-spacing:var(--tracking-tight-sm)}.data-value{font-size:var(--text-data);font-variant-numeric:tabular-nums}.caption{font-size:var(--text-caption);font-weight:var(--font-medium);text-transform:uppercase;letter-spacing:var(--tracking-wide);color:var(--color-fg-muted);line-height:var(--leading-snug)}.mono{font-family:var(--font-mono);font-variant-numeric:tabular-nums}a{color:var(--color-accent);text-decoration:none}a:hover{text-decoration:underline}:focus-visible{outline:none;box-shadow:0 0 0 3px var(--color-accent-bg);border-color:var(--color-border-strong)}::-webkit-scrollbar{width:6px;height:6px}::-webkit-scrollbar-track{background:transparent}::-webkit-scrollbar-thumb{background:var(--color-border);border-radius:3px}::-webkit-scrollbar-thumb:hover{background:var(--color-fg-subtle)}.app-shell{display:flex;min-height:100vh;width:100%}.app-sidebar{width:var(--sidebar-width);flex-shrink:0;background:var(--color-surface);border-right:1px solid var(--color-border);display:flex;flex-direction:column;position:fixed;top:0;left:0;bottom:0;z-index:100;transition:width var(--transition-base);overflow:hidden}.app-sidebar.collapsed{width:var(--sidebar-collapsed)}.app-content{flex:1;min-width:0;margin-left:var(--sidebar-width);display:flex;flex-direction:column;min-height:100vh;transition:margin-left var(--transition-base)}.app-sidebar.collapsed+.app-content{margin-left:var(--sidebar-collapsed)}.app-header{height:var(--header-height);flex-shrink:0;display:flex;align-items:center;justify-content:space-between;padding:0 var(--page-margin);background:var(--color-surface);border-bottom:1px solid var(--color-border);position:sticky;top:0;z-index:50}.app-main{flex:1;padding:var(--page-margin);max-width:var(--content-max-width);width:100%;margin:0 auto}.sidebar-nav{display:flex;flex-direction:column;padding:var(--space-3) 0;gap:var(--space-1);flex:1;overflow-y:auto}.sidebar-brand{display:flex;align-items:center;gap:var(--space-3);padding:var(--space-3) var(--space-4);height:var(--header-height);flex-shrink:0}.sidebar-brand-text{font-size:var(--text-body);font-weight:var(--font-semibold);color:var(--color-fg);white-space:nowrap;overflow:hidden}.sidebar-link{display:flex;align-items:center;gap:var(--space-3);padding:var(--space-2) var(--space-4);font-size:var(--text-body);font-weight:var(--font-regular);color:var(--color-fg-muted);text-decoration:none;border-left:3px solid transparent;transition:color var(--transition-fast),background-color var(--transition-fast),border-color var(--transition-fast);white-space:nowrap;min-height:36px}.sidebar-link:hover{color:var(--color-fg);background:var(--color-surface-hover);text-decoration:none}.sidebar-link.active{color:var(--color-accent);border-left-color:var(--color-accent);background:var(--color-accent-bg);font-weight:var(--font-medium)}.sidebar-link-icon{width:20px;height:20px;flex-shrink:0;display:flex;align-items:center;justify-content:center}.sidebar-link-text{overflow:hidden;text-overflow:ellipsis}.app-sidebar.collapsed .sidebar-link-text,.app-sidebar.collapsed .sidebar-brand-text{display:none}.header-left{display:flex;align-items:center;gap:var(--space-3)}.header-right{display:flex;align-items:center;gap:var(--space-4)}.header-user{font-size:var(--text-body);font-weight:var(--font-medium);color:var(--color-fg)}.header-icon-btn{display:flex;align-items:center;justify-content:center;width:36px;height:36px;border:none;background:transparent;border-radius:var(--radius-md);color:var(--color-fg-muted);cursor:pointer;transition:background-color var(--transition-fast),color var(--transition-fast);position:relative}.header-icon-btn:hover{background:var(--color-surface-hover);color:var(--color-fg)}.sync-hint{display:flex;align-items:center;gap:var(--space-2);max-width:340px;margin-right:var(--space-4);font-size:var(--text-caption);font-weight:var(--font-medium);color:var(--color-fg-muted);line-height:var(--leading-snug)}.notification-badge{position:absolute;top:2px;right:2px;min-width:18px;height:18px;font-size:11px;font-weight:var(--font-bold);line-height:18px;text-align:center;color:var(--color-on-error);background:var(--color-error);border-radius:9px;padding:0 4px}.card{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-card);padding:var(--space-4) var(--space-5)}.card-interactive{cursor:pointer;transition:box-shadow var(--transition-fast),border-color var(--transition-fast)}.card-interactive:hover{box-shadow:var(--shadow-hover)}.card-selected{border:2px solid var(--color-accent);background:var(--color-accent-bg)}.card-alert{border-left:2px solid var(--color-warning)}.card-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:var(--space-3)}.card-header--start{align-items:flex-start}.card-title{font-size:var(--text-h3);font-weight:var(--font-medium);color:var(--color-fg)}.card-actions{display:flex;align-items:center;gap:var(--space-2)}.chart-card{display:flex;flex-direction:column;gap:var(--space-2);margin-bottom:var(--space-4)}.zone-row{display:grid;grid-template-columns:12px 2.25rem 1fr 1.5rem 1fr 3.5rem;align-items:center;gap:var(--space-2);padding:var(--space-1) 0;border-bottom:1px solid var(--color-border)}.zone-row:last-of-type{border-bottom:0}.zone-swatch{width:12px;height:12px;border-radius:var(--radius-sm)}.zone-row .input{width:100%;min-width:0}.zone-sep{text-align:center;color:var(--color-fg-muted)}.zone-unit{text-align:right}@media (max-width: 520px){.zone-row{grid-template-columns:12px 2.25rem 1fr 1fr;gap:var(--space-1)}.zone-sep{display:none}.zone-unit{grid-column:1 / -1;text-align:left}}.stat-card{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-card);padding:var(--space-4) var(--space-5)}.stat-card-value{font-size:var(--text-data-lg);font-weight:var(--font-medium);line-height:1.1;letter-spacing:var(--tracking-tight-sm);color:var(--color-fg);font-variant-numeric:tabular-nums}.stat-card-label{font-size:var(--text-caption);font-weight:var(--font-medium);text-transform:uppercase;letter-spacing:var(--tracking-wide);color:var(--color-fg-muted);margin-top:var(--space-1)}.stat-card-footer{margin-top:var(--space-3);font-size:var(--text-body-sm);color:var(--color-fg-muted)}.stat-card-footer.positive{color:var(--color-success)}.stat-card-footer.negative{color:var(--color-error)}.page-header{display:flex;align-items:flex-start;justify-content:space-between;gap:var(--space-4);margin-bottom:var(--space-6)}.page-header-main{min-width:0}.page-header-title{font-size:var(--text-h1);font-weight:var(--font-medium);letter-spacing:var(--tracking-tight-sm);color:var(--color-fg)}.page-header-subtitle{font-size:var(--text-body);color:var(--color-fg-muted);margin-top:var(--space-1)}.page-header-actions{display:flex;align-items:center;gap:var(--space-3);flex-shrink:0}.page-header-actions .input{width:auto;display:inline-block}.section-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:var(--space-4)}.section-header-title{font-size:var(--text-h2);font-weight:var(--font-medium);color:var(--color-fg)}.section-header-actions{display:flex;align-items:center;gap:var(--space-2)}.btn{display:inline-flex;align-items:center;justify-content:center;gap:var(--space-2);font-family:var(--font-family);font-weight:var(--font-medium);border:none;border-radius:var(--radius-md);cursor:pointer;transition:background-color var(--transition-fast),box-shadow var(--transition-fast),opacity var(--transition-fast);text-decoration:none;white-space:nowrap;line-height:1}.btn:disabled,.btn[aria-disabled=true]{opacity:.5;cursor:not-allowed}.btn:focus-visible{outline:none;box-shadow:0 0 0 3px var(--color-accent-bg)}.btn-lg{height:44px;padding:0 var(--space-5);font-size:var(--text-body);border-radius:var(--radius-card)}.btn-md{height:36px;padding:0 var(--space-4);font-size:var(--text-body);border-radius:var(--radius-md)}.btn-sm{height:28px;padding:0 var(--space-3);font-size:var(--text-body-sm);border-radius:var(--radius-sm)}.btn-icon{width:36px;height:36px;padding:0;border-radius:var(--radius-md)}.btn-primary{background:var(--color-accent);color:var(--color-on-accent)}.btn-primary:hover:not(:disabled):not([aria-disabled=true]){background:var(--color-accent-hover)}.btn-secondary{background:var(--color-surface);color:var(--color-fg);border:1px solid var(--color-border)}.btn-secondary:hover:not(:disabled):not([aria-disabled=true]){background:var(--color-surface-hover)}.btn-danger{background:var(--color-error);color:var(--color-on-error)}.btn-danger:hover:not(:disabled){background:var(--color-error-hover)}.btn-ghost{background:transparent;color:var(--color-fg-muted)}.btn-ghost:hover:not(:disabled){background:var(--color-surface-hover);color:var(--color-fg)}.input{display:block;width:100%;height:36px;padding:0 var(--space-3);font-family:var(--font-family);font-size:var(--text-body);color:var(--color-fg);background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-md);transition:border-color var(--transition-fast),box-shadow var(--transition-fast)}.input::placeholder{color:var(--color-fg-subtle)}.input:focus{outline:none;border-color:var(--color-border-strong);box-shadow:0 0 0 3px var(--color-accent-bg)}.input:disabled{background:var(--color-surface-hover);color:var(--color-fg-muted);opacity:.5}.input-error{border-color:var(--color-error)}.input-label{display:block;font-size:var(--text-body-sm);font-weight:var(--font-medium);color:var(--color-fg);margin-bottom:var(--space-2)}.input-helper{font-size:var(--text-body-sm);color:var(--color-fg-muted);margin-top:var(--space-1)}.input-error-text{font-size:var(--text-body-sm);color:var(--color-error);margin-top:var(--space-1)}.badge{display:inline-flex;align-items:center;height:20px;padding:0 var(--space-2);font-size:var(--text-caption);font-weight:var(--font-medium);border-radius:var(--radius-sm);border:1px solid transparent;white-space:nowrap;line-height:1}.badge-md{height:24px}.badge-default{background:var(--color-surface-hover);color:var(--color-fg-muted)}.badge-accent{background:var(--color-accent-bg);color:var(--color-accent);border-color:color-mix(in srgb,var(--color-accent) 20%,transparent)}.badge-success{background:var(--color-success-bg);color:var(--color-success);border-color:color-mix(in srgb,var(--color-success) 20%,transparent)}.badge-warning{background:var(--color-warning-bg);color:var(--color-warning);border-color:color-mix(in srgb,var(--color-warning) 20%,transparent)}.badge-error{background:var(--color-error-bg);color:var(--color-error);border-color:color-mix(in srgb,var(--color-error) 20%,transparent)}.badge-info{background:var(--color-info-bg);color:var(--color-info);border-color:color-mix(in srgb,var(--color-info) 20%,transparent)}.chip{padding:var(--space-1) var(--space-2);border-radius:999px;border:1px solid var(--color-border-strong);background:var(--color-surface);font-family:var(--font-family);font-size:var(--text-caption);font-weight:var(--font-medium);color:var(--color-fg-muted);cursor:pointer;transition:background-color var(--transition-fast),border-color var(--transition-fast),color var(--transition-fast)}.chip:hover{border-color:var(--color-fg)}.chip.active{background:var(--color-fg);border-color:var(--color-fg);color:var(--color-bg)}.row-list{display:flex;flex-direction:column}.row-item{display:flex;align-items:center;justify-content:space-between;gap:var(--space-3);padding:var(--space-3) 0;border-bottom:1px solid var(--color-border);color:var(--color-fg);text-decoration:none}.row-item:last-child{border-bottom:0}.row-item:hover{background:var(--color-surface-hover);color:var(--color-fg);text-decoration:none}.row-item .data-value{min-width:0;overflow-wrap:break-word}.notif-toolbar{display:flex;align-items:center;justify-content:space-between;gap:var(--space-3);flex-wrap:wrap;margin-bottom:var(--space-4)}.notif-alert{display:block;margin:0 0 var(--space-4);padding:var(--space-2) var(--space-3);font-size:var(--text-caption);border-radius:var(--radius-sm);background:var(--color-error-bg);color:var(--color-error);border:1px solid color-mix(in srgb,var(--color-error) 20%,transparent)}.notif-list{padding:0 var(--space-4)}.notif-row{display:flex;gap:var(--space-3);align-items:flex-start;padding:var(--space-3) 0;border-bottom:1px solid var(--color-border)}.notif-list .notif-row:last-child{border-bottom:0}.notif-row.unread{background:var(--color-accent-bg);margin:0 calc(-1 * var(--space-4));padding:var(--space-4);border:0;border-radius:var(--radius-md)}.notif-row.unread .notif-row-message{font-weight:var(--font-semibold)}.notif-row.read{opacity:.75}.notif-row-body{flex:1;min-width:0}.notif-row-message{margin:0;color:var(--color-fg)}.notif-row-caption{margin:2px 0 0;font-size:var(--text-caption);color:var(--color-fg-muted)}.notif-row-link{color:var(--color-accent);text-decoration:none;margin-left:var(--space-1)}.notif-row-link:hover{text-decoration:underline}.notif-row-error{display:block;margin-top:var(--space-1);color:var(--color-error)}.notif-empty{color:var(--color-fg-muted)}.garmin-connect-form{max-width:320px;margin-bottom:var(--space-4);display:grid;gap:var(--space-2)}.table-container{overflow-x:auto;border:1px solid var(--color-border);border-radius:var(--radius-card)}.table{width:100%;border-collapse:collapse;font-size:var(--text-body)}.table th{font-size:var(--text-caption);font-weight:var(--font-medium);text-transform:uppercase;letter-spacing:var(--tracking-wide);color:var(--color-fg-muted);text-align:left;padding:var(--space-3) var(--space-4);border-bottom:1px solid var(--color-border);background:var(--color-surface);position:sticky;top:0;white-space:nowrap}.table th.numeric{text-align:right}.table td{padding:var(--space-3) var(--space-4);border-bottom:1px solid var(--chart-grid);color:var(--color-fg);white-space:nowrap}.table td.numeric{text-align:right;font-variant-numeric:tabular-nums}.table tbody tr:last-child td{border-bottom:none}.table tbody tr:hover{background:var(--color-surface-hover)}.table tbody tr.selected{background:var(--color-accent-bg)}.grid{display:grid;gap:var(--space-4)}.grid-2{grid-template-columns:repeat(2,1fr)}.grid-3{grid-template-columns:repeat(3,1fr)}.grid-4{grid-template-columns:repeat(4,1fr)}.flex{display:flex}.flex-col{flex-direction:column}.items-center{align-items:center}.justify-between{justify-content:space-between}.gap-1{gap:var(--space-1)}.gap-2{gap:var(--space-2)}.gap-3{gap:var(--space-3)}.gap-4{gap:var(--space-4)}.gap-6{gap:var(--space-6)}.block{display:block}.mt-2{margin-top:var(--space-2)}.mt-3{margin-top:var(--space-3)}.mb-1{margin-bottom:var(--space-1)}.mb-3{margin-bottom:var(--space-3)}.mb-6{margin-bottom:var(--space-6)}.ml-2{margin-left:var(--space-2)}.max-w-520{max-width:520px}.text-muted{color:var(--color-fg-muted)}.text-error{color:var(--color-error)}.whitespace-pre-wrap{white-space:pre-wrap}@media (max-width: 1024px){.app-sidebar{width:var(--sidebar-collapsed)}.app-sidebar .sidebar-link-text,.app-sidebar .sidebar-brand-text,.app-sidebar .sidebar-group-label,.sidebar-hamburger{display:none}.app-content{margin-left:var(--sidebar-collapsed)}.app-main{padding:var(--space-4)}.grid-4,.grid-3{grid-template-columns:repeat(2,1fr)}}@media (max-width: 768px){.app-sidebar{transform:translate(-100%);width:var(--sidebar-width)}.app-sidebar.mobile-open{transform:translate(0)}.app-sidebar.mobile-open .sidebar-link-text,.app-sidebar.mobile-open .sidebar-brand-text,.app-sidebar.mobile-open .sidebar-group-label{display:block}.app-content{margin-left:0}.app-main{padding:var(--space-3)}.grid-4,.grid-3,.grid-2{grid-template-columns:1fr}.page-header-actions{flex-wrap:wrap}}@media (max-width: 480px){.app-header{padding:0 var(--space-3)}.app-main{padding:var(--space-3)}.stat-card,.card{padding:var(--space-3) var(--space-4)}}.auth-page{display:flex;align-items:center;justify-content:center;min-height:100vh;width:100%;background:var(--color-bg);padding:var(--space-6)}.auth-card{width:100%;max-width:420px;background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg);padding:var(--space-8) var(--space-6)}.auth-header{text-align:center;margin-bottom:var(--space-6)}.auth-title{font-size:var(--text-display);font-weight:var(--font-medium);line-height:var(--leading-tight);letter-spacing:var(--tracking-tight);color:var(--color-fg);margin:0}.auth-subtitle{font-size:var(--text-body);color:var(--color-fg-muted);margin-top:var(--space-2)}.auth-error{background:var(--color-error-bg);color:var(--color-error);border:1px solid color-mix(in srgb,var(--color-error) 20%,transparent);border-radius:var(--radius-md);padding:var(--space-3) var(--space-4);font-size:var(--text-body);margin-bottom:var(--space-4);text-align:center}.error{margin:var(--space-2) 0;font-size:var(--text-body-sm);color:var(--color-error)}.auth-form{display:flex;flex-direction:column;gap:var(--space-4)}.form-group{display:flex;flex-direction:column}.required{color:var(--color-error)}.btn-block{width:100%;margin-top:var(--space-1)}.auth-footer{text-align:center;margin-top:var(--space-6);padding-top:var(--space-4);border-top:1px solid var(--color-border)}.auth-footer p{font-size:var(--text-body);color:var(--color-fg-muted)}.btn-link{background:transparent;color:var(--color-accent);border:none;padding:0;font-size:inherit;font-weight:var(--font-medium);cursor:pointer;text-decoration:underline;font-family:var(--font-family);line-height:inherit}.btn-link:hover{color:var(--color-accent-hover)}.connection-list>.connection-provider:not(:last-of-type){border-bottom:1px solid var(--color-border)}.connection-row{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:var(--space-4);padding:var(--space-3) 0}.connection-provider>.caption,.connection-provider>.badge,.connection-notice{margin-bottom:var(--space-3)}.connection-alert{display:block;height:auto;white-space:normal;margin:0 0 var(--space-3);padding:var(--space-2) var(--space-3);font-size:var(--text-caption);border-radius:var(--radius-sm);line-height:var(--leading-normal)}.tabnav{display:flex;gap:var(--space-1);border-bottom:1px solid var(--color-border)}.tabnav button{position:relative;background:none;border:none;cursor:pointer;padding:var(--space-2) var(--space-3) calc(var(--space-2) + 3px);margin-bottom:-1px;border-radius:var(--radius-sm) var(--radius-sm) 0 0;font-family:var(--font-family);font-size:var(--text-body);font-weight:var(--font-medium);line-height:1;color:var(--color-fg-muted);transition:color var(--transition-fast)}.tabnav button:hover{color:var(--color-fg)}.tabnav button:focus-visible{outline:2px solid var(--color-accent);outline-offset:1px}.tabnav button[aria-selected=true],.tabnav button[aria-pressed=true]{color:var(--color-fg)}.tabnav button[aria-selected=true]:after{content:"";position:absolute;left:var(--space-3);right:var(--space-3);bottom:-1px;height:2px;border-radius:2px;background:var(--color-accent)}.tabnav button[aria-pressed=true]:after{content:"";position:absolute;left:var(--space-3);right:var(--space-3);bottom:-1px;height:2px;border-radius:2px;background:var(--color-accent)}.tabnav-sm button[aria-selected=true]:after,.tabnav-sm button[aria-pressed=true]:after{left:var(--space-2);right:var(--space-2)}.tabnav-sm button{font-size:var(--text-body-sm);padding:var(--space-1) var(--space-2) calc(var(--space-1) + 3px)}@media (prefers-reduced-motion: reduce){*,*:before,*:after{transition:none!important;animation:none!important}}.nutrition-page{display:flex;flex-direction:column;gap:var(--space-6)}.nutrition-page .page-header{margin-bottom:0}.nutrition-section{display:flex;flex-direction:column;gap:var(--space-3)}.recipe-form,.nutrition-settings-form{display:flex;flex-direction:column;gap:var(--space-3);max-width:480px}.recipe-form label,.nutrition-settings-form label,.nutrition-generate label{display:flex;flex-direction:column;gap:var(--space-1)}.nutrition-settings-form{flex-direction:row;align-items:flex-end;gap:var(--space-3)}.nutrition-settings-form>div{flex:1}.nutrition-generate{display:flex;flex-wrap:wrap;gap:var(--space-3);align-items:flex-end}.nutrition-generate .btn{height:36px}.nutrition-empty{color:var(--color-fg-muted)}.nutrition-message{color:var(--color-success)}.nutrition-pagination{display:flex;align-items:center;gap:var(--space-3);margin-top:var(--space-3)}.select{width:100%;min-width:0;padding:var(--space-1) var(--space-2);font-family:var(--font-family);font-size:var(--text-body-sm);color:var(--color-fg);background:var(--color-surface);border:1px solid var(--color-border-strong);border-radius:var(--radius-md)}.select:focus{border-color:var(--color-accent);outline:2px solid var(--color-accent-bg);outline-offset:1px}.nutrition-section .section-head{display:flex;align-items:center;justify-content:space-between;gap:var(--space-3);flex-wrap:wrap}.nutrition-section .section-head [role=group]{display:flex;flex-wrap:wrap;gap:var(--space-2)}.empty{border:1px dashed var(--color-border-strong);border-radius:var(--radius-card);padding:var(--space-4);text-align:center;color:var(--color-fg-muted);font-size:var(--text-body-sm)}.recipe-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:var(--space-4)}@media (max-width: 900px){.recipe-grid{grid-template-columns:1fr}}.recipe-card-kcal{font-family:var(--font-mono);color:var(--color-fg-muted);white-space:nowrap}.recipe-card-ingredients{margin-top:var(--space-2);white-space:pre-wrap}.recipe-card-actions{display:flex;gap:var(--space-2);margin-top:var(--space-3)}.nutrition-day .card-head{margin-bottom:0}.nutrition-day h3{font-size:var(--text-h3);font-weight:var(--font-medium);color:var(--color-fg)}.nutrition-day .intake{margin-bottom:var(--space-3)}.nutrition-day .meal+.meal{margin-top:var(--space-2)}.meal{border:1px solid var(--color-border);border-radius:var(--radius-md);padding:var(--space-3)}.meal-head{display:flex;align-items:baseline;gap:var(--space-2)}.meal-head strong{font-size:var(--text-body-sm);font-weight:var(--font-semibold)}.meal-head .kcal{margin-left:auto;font-family:var(--font-mono);font-size:var(--text-caption);color:var(--color-fg-muted);white-space:nowrap;font-variant-numeric:tabular-nums}.meal-ctl{display:flex;align-items:center;gap:var(--space-3);margin-top:var(--space-2);flex-wrap:wrap}.meal-ctl .select{flex:1;min-width:160px}.stepper{display:inline-flex;align-items:center;gap:var(--space-2)}.stepper button{width:32px;height:32px;display:inline-flex;align-items:center;justify-content:center;font-size:var(--text-body-lg);line-height:1;color:var(--color-fg);background:var(--color-surface);border:1px solid var(--color-border-strong);border-radius:var(--radius-md);cursor:pointer;transition:background-color var(--transition-fast),border-color var(--transition-fast)}.stepper button:hover{background:var(--color-surface-hover);border-color:var(--color-fg)}.stepper-value{font-size:var(--text-body-sm);font-variant-numeric:tabular-nums}.macro{display:flex;gap:var(--space-3);font-family:var(--font-mono);font-size:var(--text-caption);color:var(--color-fg-muted);margin-top:var(--space-2);font-variant-numeric:tabular-nums}.macro b{color:var(--color-fg);font-weight:var(--font-semibold)}.modal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:1000;display:flex;align-items:center;justify-content:center;padding:var(--space-4);background:#00000080}.modal{display:flex;flex-direction:column;width:100%;max-width:640px;max-height:calc(100vh - var(--space-8));background:var(--color-surface);border-radius:var(--radius-card);box-shadow:var(--shadow-dialog);outline:none}.modal-header{display:flex;align-items:center;justify-content:space-between;gap:var(--space-3);padding:var(--space-3) var(--space-4);border-bottom:1px solid var(--color-border)}.modal-header h3{margin:0}.modal-body{flex:1 1 auto;overflow-y:auto;padding:var(--space-4)}.activity-map{height:320px;width:100%;border-radius:var(--radius-md)}.intake{height:6px;border-radius:3px;background:var(--color-surface-hover);margin-top:var(--space-3);overflow:hidden}.intake i{display:block;height:100%;border-radius:3px;background:var(--color-success)}.intake.short i{background:var(--color-warning)}.zone-bar{display:flex;height:10px;border-radius:5px;overflow:hidden;gap:2px}.zone-bar i{display:block;height:100%;border-radius:2px}.grid-2-1{display:grid;grid-template-columns:2fr 1fr;gap:var(--space-4);align-items:start}.up{color:var(--color-success)}.down{color:var(--color-error)}.flat{color:var(--color-fg-muted)}.kicker{font-family:var(--font-mono);font-size:11px;font-weight:600;letter-spacing:.06em;text-transform:uppercase;color:var(--color-fg-muted)}.note{font-size:var(--text-body-sm);color:var(--color-fg-muted)}.stat-card-value small{font-size:var(--text-body-sm);font-weight:400;color:var(--color-fg-muted)}.sport{font-family:var(--font-mono);font-size:10.5px;font-weight:700;letter-spacing:.04em;text-transform:uppercase;padding:3px 8px;border-radius:var(--radius-sm);background:var(--color-surface-hover);color:var(--color-fg-muted)}.card-head{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;margin-bottom:14px}.card-head h3{font-size:var(--text-h3);font-weight:var(--font-medium);color:var(--color-fg)}.card-sub{font-size:var(--text-body-sm);color:var(--color-fg-muted);margin-top:2px}.kv{display:grid;grid-template-columns:repeat(2,1fr);gap:10px}.kv .cell{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-md);padding:10px 12px;text-align:center}.kv .cell b{display:block;font-family:var(--font-mono);font-size:17px;font-variant-numeric:tabular-nums}.kv .cell span{font-size:var(--text-caption);text-transform:uppercase;letter-spacing:var(--tracking-wide);color:var(--color-fg-muted)}.hero-readiness{border-left:1px solid var(--color-border);padding-left:24px}.alert{display:flex;gap:12px;padding:14px 16px;border-radius:var(--radius-card);border:1px solid var(--color-border);border-left-width:4px;font-size:var(--text-body-sm);background:var(--color-surface)}.alert .ttl{font-family:var(--font-mono);font-size:11px;font-weight:700;letter-spacing:.05em}.alert p{margin:2px 0 0;color:var(--color-fg-muted)}.alert .btn{flex-shrink:0;align-self:center}.a-warning{border-left-color:var(--color-warning)}.a-warning .ttl{color:var(--color-warning)}.a-error{border-left-color:var(--color-error)}.a-error .ttl{color:var(--color-error)}@media (max-width: 1024px){.grid-2-1{grid-template-columns:1fr}.hero-readiness{border-left:0;padding-left:0;padding-top:20px;border-top:1px solid var(--color-border)}}.cal-day{border:1px solid var(--color-border);background:var(--color-surface)}.cal-day:focus{outline:3px solid var(--color-accent);outline-offset:2px}.cal-day.today{border-color:var(--color-accent);background:var(--color-accent-bg)}.slider-row{display:flex;align-items:center;gap:var(--space-3)}.slider-row>span{flex:0 0 auto;width:120px;font-size:var(--text-body-sm);color:var(--color-fg)}.slider-row input[type=range]{flex:1;min-width:0;accent-color:var(--color-accent)}.slider-value{min-width:2ch;text-align:right;font-weight:var(--font-semibold);font-variant-numeric:tabular-nums}.gauge-wrap{display:flex;align-items:center;gap:var(--space-5)}.gauge-num{font-family:var(--font-mono);font-size:var(--text-data-hero);font-weight:300;line-height:1;letter-spacing:var(--tracking-tight);font-variant-numeric:tabular-nums}.cal-legend{display:flex;flex-wrap:wrap;align-items:center;gap:var(--space-3);margin-top:var(--space-3);padding-top:var(--space-2);border-top:1px solid var(--color-border);font-size:var(--text-caption);color:var(--color-fg-muted)}.cal-legend .swatch{display:inline-block;width:10px;height:10px;border-radius:2px;margin-right:4px;vertical-align:middle}.cal-legend .dimmed{margin-left:auto;font-style:italic}.row-item .trail{white-space:nowrap}.sidebar-header{display:flex;align-items:center;gap:var(--space-2);padding:0 var(--space-2) 0 var(--space-3);height:var(--header-height);flex-shrink:0;border-bottom:1px solid var(--color-border)}.sidebar-header .sidebar-brand{height:auto;padding:0 var(--space-2) 0 0;flex:1;min-width:0}.sidebar-hamburger{display:flex;align-items:center;justify-content:center;width:32px;height:32px;flex-shrink:0;border:none;background:transparent;border-radius:var(--radius-md);color:var(--color-fg-muted);cursor:pointer;transition:background-color var(--transition-fast),color var(--transition-fast)}.sidebar-hamburger:hover{background:var(--color-surface-hover);color:var(--color-fg)}.sidebar-hamburger:focus-visible,.header-icon-btn:focus-visible,.notif-panel:focus-visible{outline:2px solid var(--color-accent);outline-offset:1px}.sidebar-group{display:flex;flex-direction:column;gap:var(--space-1)}.sidebar-group+.sidebar-group{border-top:1px solid var(--color-border);margin-top:var(--space-2);padding-top:var(--space-2)}.sidebar-group-label{font-size:var(--text-caption);text-transform:uppercase;letter-spacing:.06em;font-weight:var(--font-semibold);color:var(--color-fg-subtle);padding:0 var(--space-4) var(--space-1);white-space:nowrap}.app-sidebar.collapsed .sidebar-hamburger{width:100%}.app-sidebar.collapsed .sidebar-header .sidebar-brand,.app-sidebar.collapsed .sidebar-group-label{display:none}.app-sidebar.collapsed .sidebar-group+.sidebar-group{border-top:none;margin-top:var(--space-1);padding-top:0}.notif-wrapper{position:relative}.notif-panel{position:absolute;top:calc(100% + var(--space-2));right:0;width:min(360px,calc(100vw - 48px));max-height:420px;overflow-y:auto;background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg);box-shadow:var(--shadow-dropdown);z-index:200}.notif-panel:focus{outline:none}.notif-panel:focus-visible{outline:2px solid var(--color-accent)}.notif-panel-empty{margin:0;padding:var(--space-4);color:var(--color-fg-muted)}.notif-panel-list{list-style:none;margin:0;padding:0}.notif-panel-item{display:flex;align-items:flex-start;justify-content:space-between;gap:var(--space-3);padding:var(--space-3) var(--space-4);border-bottom:1px solid var(--color-border)}.notif-panel-item.unread{background:var(--color-accent-bg)}.notif-panel-message p{margin:0;font-size:var(--text-body-sm)}.notif-panel-message small{color:var(--color-fg-subtle);font-size:var(--text-caption)}.notif-panel-mark-read{flex-shrink:0;border:none;background:transparent;color:var(--color-accent);font-size:var(--text-caption);font-weight:var(--font-medium);cursor:pointer;padding:var(--space-1)}.notif-panel-mark-read:hover{text-decoration:underline}.notif-panel-footer{padding:var(--space-3) var(--space-4)}.notif-panel-footer a{font-size:var(--text-body-sm);font-weight:var(--font-medium);color:var(--color-accent);text-decoration:none}.notif-panel-footer a:hover{text-decoration:underline}.notif-panel-error{margin:0;padding:var(--space-2) var(--space-4) 0;font-size:var(--text-caption);color:var(--color-error)}.textarea{display:block;width:100%;padding:var(--space-2) var(--space-3);font-family:var(--font-family);font-size:var(--text-body);color:var(--color-fg);background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-md);line-height:var(--leading-normal);min-height:88px;resize:vertical}.textarea::placeholder{color:var(--color-fg-subtle)}.textarea:focus{outline:none;border-color:var(--color-border-strong);box-shadow:0 0 0 3px var(--color-accent-bg)}.ai-rec-list{display:flex;flex-direction:column;gap:var(--space-4)}.ai-rec{display:flex;flex-direction:column;gap:var(--space-1);padding:var(--space-3) var(--space-4);border-radius:var(--radius-card);border:1px solid var(--color-border);border-left-width:4px;font-size:var(--text-body-sm);background:var(--color-surface)}.ai-rec-title{font-family:var(--font-mono);font-size:var(--text-caption);font-weight:var(--font-bold);letter-spacing:var(--tracking-wide);text-transform:uppercase}.ai-rec p{margin:0;color:var(--color-fg-muted)}.ai-rec p strong{color:var(--color-fg)}.ai-rec-critical{border-left-color:var(--color-error)}.ai-rec-critical .ai-rec-title{color:var(--color-error)}.ai-rec-warning{border-left-color:var(--color-warning)}.ai-rec-warning .ai-rec-title{color:var(--color-warning)}.ai-rec-info{border-left-color:var(--color-accent)}.ai-rec-info .ai-rec-title{color:var(--color-accent)}.ai-rec-notice{border-left-color:var(--color-notice)}.ai-rec-notice .ai-rec-title{color:var(--color-notice)}.ai-rec-actions{display:flex;gap:var(--space-2);margin-top:var(--space-3);flex-wrap:wrap}.ai-override{margin-top:var(--space-3)}.ai-override-actions{display:flex;gap:var(--space-2);margin-top:var(--space-2)}.chart-meta{font-family:var(--font-mono);font-size:var(--text-caption);color:var(--color-fg-muted)}.chart-legend{display:flex;gap:var(--space-4);flex-wrap:wrap;font-size:var(--text-caption);color:var(--color-fg-muted);margin-top:var(--space-3)}.chart-legend i{display:inline-block;width:10px;height:10px;border-radius:var(--radius-sm);margin-right:var(--space-1)}.donut-center{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;flex-direction:column;align-items:center;justify-content:center;pointer-events:none;--donut-hole: 110px;--donut-value-size: 18px}.donut-center-value{font-size:min(var(--donut-value-size),calc(var(--donut-hole) / 6.2));font-weight:var(--font-medium);color:var(--color-fg);font-variant-numeric:tabular-nums;line-height:1.2;white-space:nowrap;max-width:calc(var(--donut-hole) - var(--space-2));overflow:hidden;text-overflow:ellipsis;text-align:center}.donut-center-sub{font-size:var(--text-caption);color:var(--color-fg-muted)}.plan-page,.plan-overviews{display:flex;flex-direction:column;gap:var(--space-5)}.plan-overview{display:flex;flex-direction:column;gap:var(--space-4);border:1px solid var(--color-border);border-radius:var(--radius-card);background:var(--color-surface);padding:var(--space-4)}.plan-overview.highlight{outline:2px solid var(--color-accent)}.plan-overview-head{display:flex;align-items:center;gap:12px;flex-wrap:wrap}.plan-overview-title{font-size:16px;font-weight:600}.plan-detail-loading{font-size:13px;color:var(--color-fg-muted)}.plan-detail-error{font-size:13px;color:var(--color-error)}.stat-card .lbl{font-family:var(--font-mono);font-size:11px;letter-spacing:.05em;text-transform:uppercase;color:var(--color-fg-muted)}.stat-card .val{font-family:var(--font-mono);font-size:28px;font-weight:600;margin-top:6px;font-variant-numeric:tabular-nums;color:var(--color-fg)}.stat-card .val small{font-size:13px;color:var(--color-fg-muted);font-weight:400}.stat-card .foot{font-size:12px;margin-top:6px;color:var(--color-fg-muted)}.dv{font-family:var(--font-mono);font-variant-numeric:tabular-nums}.a-info{border-left-color:var(--color-accent)}.a-info .ttl{color:var(--color-accent)}.b-success{background:var(--color-success-bg);color:var(--color-success)}.b-warning{background:var(--color-warning-bg);color:var(--color-warning)}.b-error{background:var(--color-error-bg);color:var(--color-error)}.b-info{background:var(--color-accent-bg);color:var(--color-accent)}.b-neutral{background:var(--color-surface-hover);color:var(--color-fg-muted)}.plan-week .badge{gap:6px;border-radius:999px;font-family:var(--font-mono);letter-spacing:.04em;text-transform:uppercase}.plan-week .badge:before{content:"";width:6px;height:6px;border-radius:50%;background:currentColor}.meta{font-family:var(--font-mono);font-size:12px;color:var(--color-fg-muted)}.plan-weeks{display:flex;flex-direction:column;gap:var(--space-5)}.plan-week{border:1px solid var(--color-border);border-radius:var(--radius-card);background:var(--color-surface);overflow:hidden}.plan-week-head{display:flex;align-items:center;gap:12px;padding:12px 16px;background:var(--color-surface-hover);font-weight:600;font-size:13.5px;flex-wrap:wrap}.workout-row{display:grid;grid-template-columns:64px 1fr auto auto;gap:12px;align-items:center;padding:11px 16px;border-top:1px solid var(--color-border);font-size:13.5px}.workout-row:hover{background:var(--color-surface-hover)}.workout-content{display:flex;align-items:center;gap:8px;flex-wrap:wrap;padding:0 16px 12px;font-size:12.5px;color:var(--color-fg-muted)}.zone-chip,.tc-card-zone,.workout-chip,.pw-chip{background:var(--zone-0);color:var(--zone-fg)}.zone-chip{display:inline-flex;align-items:center;height:20px;padding:0 8px;border-radius:var(--radius-sm);font-family:var(--font-mono);font-size:11.5px;font-weight:var(--font-medium)}.workout-chip{display:inline-block;max-width:100%}.workout-chip.done{opacity:.55}.workout-interval{font-family:var(--font-mono);font-size:12.5px;color:var(--color-fg)}.workout-distance{font-family:var(--font-mono);font-size:12.5px}.workout-row .caption,.resched .caption{font-size:12px;font-weight:var(--font-regular);text-transform:none;letter-spacing:normal}.resched{border:1px solid var(--color-border);border-radius:var(--radius-md);padding:12px 14px;background:var(--color-bg);font-size:13px}.resched-actions{display:flex;gap:8px;flex-wrap:wrap}.resched .resched-waiting{margin:0 0 6px}@media (max-width: 768px){.workout-row{grid-template-columns:1fr auto;row-gap:6px}}.methodology-grid{display:grid;gap:var(--space-3, 12px);grid-template-columns:repeat(auto-fill,minmax(260px,1fr))}.methodology-card{text-align:left;cursor:pointer;color:var(--color-fg)}.wizard-progress{display:flex;gap:6px;margin-bottom:12px}.wizard-dot{width:10px;height:10px;border-radius:50%;background:var(--color-border)}.wizard-dot.active{background:var(--color-accent)}.wizard-dot.done{background:var(--color-success)}.builder-step-description{color:var(--color-fg-muted)}.builder-help{font-size:.85rem;color:var(--color-fg-muted)}.builder-error{color:var(--color-error);font-size:.9rem}.builder-notice{background:color-mix(in srgb,var(--color-warning) 12%,transparent);border:1px solid color-mix(in srgb,var(--color-warning) 40%,transparent);border-radius:6px;padding:8px 12px;margin-bottom:12px}.builder-question{display:flex;flex-direction:column;gap:4px;margin-bottom:12px}.yes-no{display:flex;gap:16px}.race-row{display:flex;gap:8px;align-items:center;padding:8px;margin-bottom:8px}.wizard-buttons{display:flex;gap:8px;margin-top:12px}.builder-warnings{color:var(--color-warning)}.plan-calendar-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(84px,1fr));gap:6px}.plan-week-cell{border:1px solid var(--color-border);border-radius:6px;padding:6px;font-size:.8rem;display:flex;flex-direction:column;gap:2px}.plan-week-cell.block-build,.legend-chip.block-build{background:color-mix(in srgb,var(--color-accent) 12%,transparent)}.plan-week-cell.block-peak,.legend-chip.block-peak{background:color-mix(in srgb,var(--color-accent) 18%,transparent)}.plan-week-cell.block-taper,.legend-chip.block-taper{background:color-mix(in srgb,var(--color-accent) 8%,transparent)}.plan-week-cell.block-race,.legend-chip.block-race{background:color-mix(in srgb,var(--color-error) 15%,transparent)}.plan-week-cell.block-recovery,.legend-chip.block-recovery{background:color-mix(in srgb,var(--color-success) 15%,transparent)}.plan-week-cell.block-reintegration,.legend-chip.block-reintegration{background:color-mix(in srgb,var(--color-success) 8%,transparent)}.plan-week-cell.block-maintenance,.legend-chip.block-maintenance{background:color-mix(in srgb,var(--color-warning) 12%,transparent)}.plan-calendar-legend{display:flex;gap:8px;flex-wrap:wrap;margin-top:8px}.legend-chip{font-size:.75rem;border:1px solid var(--color-border);border-radius:999px;padding:2px 8px}.balance-rows{display:flex;flex-wrap:wrap;gap:8px;margin-top:8px}.balance-rows span{font-size:.8rem;color:var(--color-fg-muted)}.workout-toggle{display:flex;gap:12px;width:100%;background:none;border:none;cursor:pointer;text-align:left;padding:6px 0;color:var(--color-fg)}.workout-segments{margin:4px 0 8px 12px;color:var(--color-fg-muted)}.workout-week{margin-top:8px}.workout-week-toggle{display:flex;align-items:baseline;gap:12px;width:100%;background:none;border:none;cursor:pointer;text-align:left;padding:6px 0;font-size:.95rem;font-weight:var(--font-semibold, 600);color:var(--color-fg)}.workout-week-summary{font-weight:400;font-size:.8rem;color:var(--color-fg-muted)}.training-calendar{display:flex;flex-direction:column;gap:8px}.plan-controls{--plan-panel-bottom-reserve: calc(var(--tc-sticky-top-height, 30px) + 114px);--plan-panel-min-height: min(160px, 30vh);position:sticky;top:calc(var(--header-height) + var(--space-2));z-index:3;max-height:max(var(--plan-panel-min-height),min(40vh,calc(100vh - var(--header-height) - var(--plan-panel-bottom-reserve))));overflow-y:auto;overscroll-behavior:contain;background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-card);padding:var(--space-3) var(--space-4)}.plan-controls-head{display:flex;align-items:center;gap:var(--space-2)}.plan-panel-toggle{display:inline-flex;align-items:center;justify-content:center;flex-shrink:0;color:var(--color-fg-muted)}.plan-panel-toggle:hover{color:var(--color-fg);background:var(--color-surface-hover)}.tc-sticky-top{position:sticky;top:calc(var(--header-height) + var(--space-2) + var(--plan-panel-height, 0px) + var(--space-2));z-index:2;display:flex;flex-direction:column;gap:var(--space-2);background:var(--color-surface)}.tc-weekday-header{display:grid;grid-template-columns:repeat(7,1fr);gap:4px;background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-sm);padding:6px 4px}.tc-weekday{text-align:center;font-size:var(--text-caption);font-weight:var(--font-semibold, 600);color:var(--color-fg-muted)}.tc-load{align-self:center;min-width:180px}.tc-loading{color:var(--color-fg-muted);font-size:var(--text-body-sm)}.tc-move-done{display:flex;align-items:center;gap:12px;color:var(--color-success);font-size:var(--text-body-sm)}.tc-empty{color:var(--color-fg-muted);font-size:var(--text-body);padding:12px}.tc-error{display:flex;align-items:center;gap:12px;background:var(--color-error-bg);color:var(--color-error);border:1px solid var(--color-error);border-radius:var(--radius-card);padding:8px 12px;font-size:var(--text-body-sm)}.tc-error-message{display:flex;flex-direction:column;gap:2px}.tc-week{border:1px solid var(--color-border);border-radius:var(--radius-card);background:var(--color-surface);padding:8px}.tc-week.current{border-color:var(--color-accent)}.tc-week-header{display:flex;align-items:baseline;justify-content:space-between;gap:12px;flex-wrap:wrap;margin-bottom:8px}.tc-week-heading{font-size:var(--text-h3);font-weight:var(--font-semibold, 600);color:var(--color-fg)}.tc-week-current-tag{color:var(--color-accent);font-size:var(--text-body-sm)}.tc-week-actuals{color:var(--color-fg-muted);font-size:var(--text-body-sm);white-space:nowrap}.tc-band{display:flex;flex-wrap:wrap;align-items:baseline;gap:8px;border:1px dashed var(--color-border-strong);border-radius:var(--radius-sm);background:var(--color-surface-hover);padding:4px 8px;margin-bottom:6px;font-size:var(--text-caption)}.tc-band-title{font-weight:var(--font-semibold, 600);color:var(--color-fg)}.tc-band-phase{color:var(--color-fg-muted)}.tc-band-deload{color:var(--color-warning)}.tc-band-totals{color:var(--color-fg-muted)}.tc-days{display:grid;grid-template-columns:repeat(7,1fr);gap:4px}.tc-day{display:flex;flex-direction:column;gap:4px;min-height:90px;padding:4px;border:1px solid var(--color-border);border-radius:var(--radius-sm);background:var(--color-bg)}.tc-day.today{border-color:var(--color-accent);background:var(--color-accent-bg)}.tc-day.tsb-deep-fatigue{background:var(--tsb-deep-fatigue-bg)}.tc-day.tsb-productive{background:var(--tsb-productive-bg)}.tc-day.tsb-transition{background:var(--tsb-transition-bg)}.tc-day.tsb-tapered{background:var(--tsb-tapered-bg)}.tc-day.tsb-very-fresh{background:var(--tsb-very-fresh-bg)}.tc-day-droppable{outline:2px dashed transparent;outline-offset:-2px;transition:outline-color .12s ease,outline-width .12s ease,background-color .12s ease}.tc-day.tc-day-droppable.tc-day-drop{outline-color:var(--color-accent);outline-width:3px;background-color:var(--color-surface-active);background-color:color-mix(in srgb,var(--color-accent) 18%,var(--color-bg))}.tsb-legend{display:flex;flex-wrap:wrap;align-items:center;gap:8px 12px;padding:6px 8px;margin-bottom:8px;border:1px solid var(--color-border);border-radius:var(--radius-sm);background:var(--color-surface);font-size:var(--text-caption)}.tsb-legend-title{font-weight:var(--font-semibold, 600);color:var(--color-fg)}.tsb-chip{display:inline-flex;align-items:center;gap:4px;color:var(--color-fg-muted)}.tsb-chip-swatch{width:10px;height:10px;border-radius:3px;border:1px solid var(--color-border-strong)}.tsb-chip-deep-fatigue .tsb-chip-swatch{background:var(--tsb-deep-fatigue-bg)}.tsb-chip-productive .tsb-chip-swatch{background:var(--tsb-productive-bg)}.tsb-chip-transition .tsb-chip-swatch{background:var(--tsb-transition-bg)}.tsb-chip-tapered .tsb-chip-swatch{background:var(--tsb-tapered-bg)}.tsb-chip-very-fresh .tsb-chip-swatch{background:var(--tsb-very-fresh-bg)}.tsb-chip-range{color:var(--color-fg-subtle)}.tc-day-heading{display:flex;justify-content:space-between;gap:4px;font-size:var(--text-caption);color:var(--color-fg-muted)}.tc-day-name{font-weight:var(--font-semibold, 600)}.tc-day-date,.tc-day-empty{color:var(--color-fg-subtle)}.tc-card{display:flex;flex-wrap:wrap;align-items:center;gap:4px;border-radius:var(--radius-sm);padding:3px 6px;font-size:var(--text-caption);line-height:1.35;border:1px solid var(--color-border)}.tc-card-actual{text-decoration:none;color:var(--color-fg);background:var(--color-surface)}.tc-card-actual:hover{border-color:var(--color-accent)}.tc-card-planned{padding:0;border:none;background:transparent}.tc-card-toggle{display:flex;flex-wrap:wrap;align-items:center;gap:4px;width:100%;background:var(--color-surface-hover);border:1px solid var(--color-border);border-radius:var(--radius-sm);padding:3px 6px;cursor:pointer;font-size:var(--text-caption);color:var(--color-fg);text-align:left;transition:border-color .12s ease}.tc-card-toggle:hover{border-color:var(--color-accent)}.tc-card-type{font-weight:var(--font-semibold, 600)}.tc-card-sport,.tc-card-metric{color:var(--color-fg-muted)}.tc-card-zone{border-radius:999px;padding:1px 6px;font-weight:var(--font-medium, 500)}.tc-card-status{color:var(--color-fg-subtle)}.tc-card-status.status-completed{color:var(--color-success)}.tc-card-status.status-missed,.tc-card-status.status-skipped{color:var(--color-warning)}.tc-card-match{font-size:var(--text-caption);color:var(--color-fg-muted)}.tc-card-match.matched{color:var(--color-success)}.tc-card-match.unplanned{color:var(--color-fg-subtle)}.tc-card-garmin{background:var(--color-surface);border-radius:999px;padding:1px 6px}.tc-card-garmin.garmin-synced{color:var(--color-notice)}.tc-card-garmin.garmin-failed{color:var(--color-warning-text)}.tc-card-garmin.garmin-older{color:var(--color-fg-muted)}.tc-card-head{display:flex;align-items:stretch;gap:4px;flex:1 1 100%}.tc-card-head .tc-card-toggle{flex:1;min-width:0;width:auto}.tc-card-dragging{opacity:.45}.tc-card-draggable{cursor:grab}.tc-card-draggable:active{cursor:grabbing}.tc-card-draggable.tc-card-drag-waiting,.tc-card-draggable.tc-card-drag-waiting:active{cursor:default}.tc-card-drag-handle{flex:none;padding:0 6px;display:flex;align-items:center;border:1px solid var(--color-border);border-radius:var(--radius-sm);background:var(--color-surface-hover);color:var(--color-fg-subtle);font-size:var(--text-caption);line-height:1.35;min-width:20px;min-height:20px}@media (max-width: 768px){.tc-weekday-header{display:none}.tc-days{display:flex;flex-direction:column}.tc-day{min-height:0}.tc-week-header{flex-direction:column;align-items:flex-start;gap:4px}.tc-week-actuals{white-space:normal}}@media (pointer: coarse),(hover: none){.tc-card-drag-handle{display:none}}@media (prefers-reduced-motion: reduce){.tc-card-toggle,.tc-day-droppable{transition:none}}.pw-modal{max-width:760px}.pw-header{align-items:flex-start;flex-wrap:wrap}.pw-head-main{display:flex;flex-direction:column;gap:var(--space-1);min-width:0}.pw-title-row{display:flex;align-items:baseline;gap:var(--space-2)}.pw-sport{font-size:var(--text-caption);font-weight:var(--font-semibold, 600);color:var(--color-fg-muted);text-transform:uppercase;letter-spacing:.04em}.pw-title{margin:0;font-size:var(--text-h3)}.pw-stats{display:flex;flex-wrap:wrap;align-items:center;gap:var(--space-2);font-size:var(--text-body-sm);color:var(--color-fg-muted);font-variant-numeric:tabular-nums}.pw-stat{white-space:nowrap}.pw-split-unit{margin:0 0 var(--space-1);font-size:var(--text-caption);color:var(--color-fg-muted)}.pw-stat-note{margin-top:var(--space-1);font-size:var(--text-caption);color:var(--color-fg-muted)}.pw-garmin-error{margin-top:var(--space-1);font-size:var(--text-caption)}.pw-garmin-error.garmin-failed{color:var(--color-warning-text)}.pw-garmin-note{margin-top:var(--space-1);font-size:var(--text-caption);color:var(--color-fg-muted)}.pw-head-side{display:flex;flex-direction:column;align-items:flex-end;gap:var(--space-1);text-align:right}.pw-day{font-size:var(--text-body-sm);font-weight:var(--font-medium, 500);color:var(--color-fg)}.pw-plan{font-size:var(--text-caption);color:var(--color-fg-muted)}.pw-banner{flex:none;display:flex;flex-direction:column;gap:var(--space-2);padding:var(--space-3) var(--space-4) 0}.pw-body{--pw-body-gap: var(--space-4);display:flex;flex-direction:column;gap:var(--pw-body-gap)}.pw-body>*{flex:none}.pw-columns{display:grid;grid-template-columns:minmax(0,1fr);gap:var(--space-4);align-items:start}.pw-columns:has(>.pw-split){grid-template-columns:minmax(0,3fr) minmax(0,2fr)}.pw-structure-col{display:flex;flex-direction:column;gap:var(--space-1);min-width:0}.pw-edit-bar{display:flex;justify-content:flex-end}.pw-edit-bar .pw-edit-start{font-size:var(--text-caption)}.pw-edit-reason{margin:0;font-size:var(--text-caption);color:var(--color-fg-muted)}.pw-text-field{width:100%;min-height:12rem;white-space:pre;-moz-tab-size:2;tab-size:2;line-height:var(--leading-normal)}.pw-text-note,.pw-text-lines,.pw-text-refusal{margin:0;font-size:var(--text-caption)}.pw-text-note:empty,.pw-text-lines:empty,.pw-text-refusal:empty{display:none}.pw-text-lines{display:flex;flex-direction:column;gap:2px}.pw-text-issue{margin:0;color:var(--color-error);font-variant-numeric:tabular-nums}.pw-text-warning{margin:0;color:var(--color-warning)}.pw-text-refusal{color:var(--color-error)}.pw-text-actions{display:flex;flex-wrap:wrap;align-items:center;gap:var(--space-2);margin-top:var(--space-2)}.pw-text-writing[hidden]{display:none}.pw-section{display:flex;flex-direction:column;gap:2px;min-width:0}.pw-section-heading{margin:0 0 var(--space-1);font-size:var(--text-caption);font-weight:var(--font-semibold, 600);color:var(--color-fg-muted);text-transform:uppercase;letter-spacing:.04em}.pw-block+.pw-block{margin-top:var(--space-3)}.pw-block-heading{font-size:var(--text-body-sm);font-weight:var(--font-semibold, 600);color:var(--color-fg)}.pw-steps{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:2px}.pw-step{display:flex;flex-wrap:wrap;align-items:baseline;gap:var(--space-2);font-size:var(--text-body-sm);color:var(--color-fg);font-variant-numeric:tabular-nums}.pw-step-rest{padding-left:var(--space-4);color:var(--color-fg-muted)}.pw-rest{font-size:var(--text-caption);color:var(--color-fg-muted)}.pw-reps{font-family:var(--font-mono);color:var(--color-fg-muted)}.pw-minutes{min-width:4.5rem}.pw-meters,.pw-zone-name,.pw-power{color:var(--color-fg-muted)}.pw-chip{border-radius:999px;padding:1px 6px;font-size:var(--text-caption);font-weight:var(--font-medium, 500);white-space:nowrap}.pw-chip-effort{font-style:italic}.pw-split-group+.pw-split-group{margin-top:var(--space-3)}.pw-split-sport{font-size:var(--text-caption);font-weight:var(--font-medium, 500);color:var(--color-fg-muted)}.pw-split-row{display:grid;grid-template-columns:auto minmax(0,1fr) auto auto;align-items:center;gap:var(--space-2);font-size:var(--text-body-sm);font-variant-numeric:tabular-nums}.pw-split-track{display:block;height:8px;border-radius:3px;overflow:hidden;background:var(--color-surface-active);box-shadow:inset 0 0 0 1px var(--color-border-strong)}.pw-split-bar{display:block;height:100%;border-radius:3px;box-shadow:inset 0 0 0 1px var(--color-border-strong);box-shadow:inset 0 0 0 1px color-mix(in srgb,var(--color-fg) 35%,transparent)}.pw-split-minutes,.pw-split-share{color:var(--color-fg-muted);white-space:nowrap}.pw-chart{--pw-chart-border: 1px;--pw-chart-pad: 2px;--pw-chart-frame: calc(var(--pw-chart-border) + var(--pw-chart-pad))}.pw-chart-bars{display:flex;align-items:flex-end;height:120px;padding:var(--pw-chart-pad, 2px);border:var(--pw-chart-border, 1px) solid var(--color-border);border-radius:var(--radius-sm);background:var(--color-bg);overflow:hidden}.pw-chart-order{margin:var(--space-1) 0 0;font-size:var(--text-caption);color:var(--color-fg-muted)}.pw-chart-clipped{margin:var(--space-1) 0 0;font-family:var(--font-mono);font-size:var(--text-caption);color:var(--color-fg-muted);font-variant-numeric:tabular-nums}.pw-bar{min-width:var(--pw-bar-min-width);border-right:var(--pw-bar-edge) solid var(--color-bg);border-radius:2px 2px 0 0}.pw-bar-empty{min-width:var(--pw-bar-empty-min-width);height:15%;border:1px dashed var(--color-fg-muted);background:transparent;border-radius:2px 2px 0 0}.pw-bar-spacer{min-width:0;background:transparent}.pw-chart-axis{display:grid;grid-template-columns:repeat(4,1fr);justify-items:start;padding:0 var(--pw-chart-frame);font-family:var(--font-mono);font-size:var(--text-caption);color:var(--color-fg-muted);font-variant-numeric:tabular-nums}.pw-note{display:flex;flex-wrap:wrap;align-items:center;gap:var(--space-2);margin:0;font-size:var(--text-caption);color:var(--color-fg-muted)}.pw-note:has(>.pw-note-text:empty){margin-bottom:calc(-1 * var(--pw-body-gap))}.pw-note-retry{font-size:var(--text-caption)}.pw-footer{border-top:1px solid var(--color-border);padding-top:var(--space-3);display:flex;flex-direction:column;gap:var(--space-3)}.pw-footer:empty{border-top:0;padding-top:0}.pw-footer:empty:not(:first-child){margin-top:calc(-1 * var(--pw-body-gap))}.pw-move{display:flex;flex-wrap:wrap;align-items:center;gap:var(--space-2)}.pw-move-label{font-weight:var(--font-semibold, 600);color:var(--color-fg)}.pw-move-date{flex:0 1 8.5rem;min-width:0;max-width:12rem}.pw-move-error{color:var(--color-error);flex:1 1 100%}@media (max-width: 768px){.pw-columns,.pw-columns:has(>.pw-split){grid-template-columns:1fr}.pw-head-side{align-items:flex-start;text-align:left}}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0 0 0 0);clip-path:inset(50%);white-space:nowrap;border:0}
