:root{--bg-primary:#0d1117;--bg-secondary:#161b22;--bg-tertiary:#1c2128;--bg-elevated:#21262d;--border-default:#30363d;--border-muted:#21262d;--text-primary:#e6edf3;--text-secondary:#c9d1d9;--text-muted:#8b949e;--accent-primary:#2563eb;--accent-primary-hover:#1d4ed8;--accent-secondary:#14b8a6;--accent-secondary-hover:#0d9488;--success:#10b981;--warning:#f59e0b;--danger:#ef4444;--info:#3b82f6;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;color:var(--text-primary);background-color:var(--bg-primary);font-synthesis:none;text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-family:Inter,system-ui,Avenir,Helvetica,Arial,sans-serif;font-weight:400;line-height:1.5}body{min-width:320px;min-height:100vh;margin:0}@media (width<=768px){html,body{width:100%;max-width:100vw;overflow-x:hidden}}a{color:var(--accent-primary);-webkit-text-decoration:inherit;text-decoration:inherit;font-weight:500;transition:color .2s}a:hover{color:var(--accent-primary-hover)}button{cursor:pointer;border:1px solid #0000;border-radius:8px;padding:.6em 1.2em;font-family:inherit;font-size:1em;font-weight:500;transition:all .3s}button:focus,button:focus-visible{outline:2px solid var(--accent-primary);outline-offset:2px}.btn-sync-strava{color:#fff;cursor:pointer;background:linear-gradient(135deg,#fc4c02 0%,#e34402 100%);border:none;border-radius:10px;justify-content:center;align-items:center;gap:.5rem;padding:.75rem 1.5rem;font-size:.95rem;font-weight:600;transition:all .3s cubic-bezier(.4,0,.2,1);display:inline-flex;box-shadow:0 4px 12px #fc4c024d}.btn-sync-strava:hover:not(:disabled){filter:brightness(1.1);transform:translateY(-2px);box-shadow:0 6px 20px #fc4c0273}.btn-sync-strava:disabled{opacity:.5;cursor:not-allowed;color:#6a6a6e;box-shadow:none;background:#2a2a2e;transform:none}.btn-sync-garmin{color:#fff;cursor:pointer;background:linear-gradient(135deg,#007cc3 0%,#00649e 100%);border:none;border-radius:10px;justify-content:center;align-items:center;gap:.5rem;padding:.75rem 1.5rem;font-size:.95rem;font-weight:600;transition:all .3s cubic-bezier(.4,0,.2,1);display:inline-flex;box-shadow:0 4px 12px #007cc34d}.btn-sync-garmin:hover:not(:disabled){filter:brightness(1.1);transform:translateY(-2px);box-shadow:0 6px 20px #007cc373}.btn-sync-garmin:disabled{opacity:.5;cursor:not-allowed;color:#6a6a6e;box-shadow:none;background:#2a2a2e;transform:none}@keyframes spin-sync{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.alert-info{border:1px solid var(--info);color:var(--info);background:#3b82f61a}.login-container{background:linear-gradient(135deg, var(--bg-primary) 0%, var(--bg-secondary) 100%);justify-content:center;align-items:center;min-height:100vh;padding:2rem;display:flex}.login-card{background:var(--bg-tertiary);border:1px solid var(--border-default);border-radius:16px;width:100%;max-width:450px;padding:3rem;box-shadow:0 10px 40px #0009}.login-header{text-align:center;margin-bottom:2rem}.login-header h1{background:linear-gradient(135deg, var(--accent-primary), var(--accent-secondary));-webkit-text-fill-color:transparent;-webkit-background-clip:text;background-clip:text;margin-bottom:.5rem;font-size:2.5rem}.login-header p{color:var(--text-secondary);font-size:1.1rem}.error-message{border:1px solid var(--danger);color:var(--danger);text-align:center;background:#ef44441a;border-radius:8px;margin-bottom:1.5rem;padding:1rem}.login-form{flex-direction:column;gap:1.5rem;display:flex}.login-button{background:linear-gradient(135deg, var(--accent-primary), var(--accent-primary-hover));color:#fff;cursor:pointer;border:none;border-radius:8px;margin-top:.5rem;padding:1rem 2rem;font-size:1.1rem;font-weight:600;transition:all .2s;box-shadow:0 2px 8px #8b5cf633}.login-button:hover:not(:disabled){transform:translateY(-2px);box-shadow:0 4px 16px #8b5cf666}.login-button:disabled{opacity:.6;cursor:not-allowed}.login-footer{text-align:center;border-top:1px solid #ffffff1a;margin-top:2rem;padding-top:1.5rem}.login-footer p{color:#a8dadc;font-size:.95rem}.register-link{color:#e94560;font-weight:600;text-decoration:none;transition:color .3s}.register-link:hover{color:#fc4c02;text-decoration:underline}@media (width<=768px){.login-container{padding:1rem}.login-card{padding:2rem}.login-header h1{font-size:2rem}}.user-form-container{background:linear-gradient(135deg,#1a1a2e 0%,#16213e 100%);justify-content:center;align-items:center;min-height:100vh;padding:2rem;display:flex}.user-form-card{background:#0f3460;border-radius:12px;width:100%;max-width:600px;padding:2rem;box-shadow:0 8px 32px #0000004d}.form-header{text-align:center;margin-bottom:2rem}.form-header h1{color:#e94560;margin:0 0 .5rem;font-size:2.5rem}.form-header p{color:#a8dadc;margin:0}.user-form{flex-direction:column;gap:1.5rem;display:flex}.form-section{background:#ffffff0d;border-radius:8px;padding:1.5rem}.form-section h3{color:#a8dadc;border-bottom:2px solid #e94560;margin:0 0 1rem;padding-bottom:.5rem;font-size:1.1rem}.form-group:last-child{margin-bottom:0}.form-group input{color:#fff;background:#ffffff1a;border:1px solid #fff3;border-radius:6px;width:100%;padding:.75rem;font-size:1rem;transition:all .3s}.form-group textarea{color:#fff;resize:vertical;background:#ffffff1a;border:1px solid #fff3;border-radius:6px;width:100%;min-height:88px;padding:.75rem;font-family:inherit;font-size:1rem;transition:all .3s}.form-group input:focus,.form-group textarea:focus{background:#ffffff26;border-color:#e94560;outline:none}.form-group input::placeholder,.form-group textarea::placeholder{color:#fff6}.form-row{grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:1rem;display:grid}.submit-button{color:#fff;cursor:pointer;background:linear-gradient(135deg,#e94560 0%,#d63447 100%);border:none;border-radius:8px;width:100%;margin-top:1rem;padding:1rem;font-size:1.1rem;font-weight:600;transition:all .3s}.submit-button:hover:not(:disabled){transform:translateY(-2px);box-shadow:0 4px 12px #e9456066}.submit-button:disabled{opacity:.6;cursor:not-allowed}.form-footer{text-align:center;color:#a8dadc;opacity:.8;margin-top:1.5rem;font-size:.85rem}.form-footer p{margin:.25rem 0}.login-link-text{border-top:1px solid #ffffff1a;margin-top:1rem;padding-top:1rem}.login-link{color:#e94560;font-weight:600;text-decoration:none;transition:color .3s}.login-link:hover{color:#fc4c02;text-decoration:underline}@media (width<=640px){.user-form-card{padding:1.5rem}.form-header h1{font-size:2rem}.form-section{padding:1rem}.form-row{grid-template-columns:1fr}}.integration-card{background:var(--bg-tertiary);border:1px solid var(--border-default);border-radius:12px;padding:1.5rem;transition:all .3s;box-shadow:0 4px 16px #0000004d}.integration-card:hover{border-color:var(--border-muted);transform:translateY(-2px);box-shadow:0 8px 24px #0006}.integration-card.strava{border-top:2px solid #fc4c02}.integration-card.garmin{border-top:2px solid #007cc3}.integration-card.withings{border-top:2px solid #00a6d6}.card-header{border-bottom:1px solid var(--border-default);align-items:center;gap:.75rem;margin-bottom:1.5rem;padding-bottom:1rem;display:flex}.card-icon{font-size:2rem}.integration-card.strava .card-icon{color:#fc4c02}.integration-card.garmin .card-icon{color:#007cc3}.integration-card.withings .card-icon{color:#00a6d6}.card-header h3{color:var(--text-primary);margin:0;font-size:1.5rem}.card-body{flex-direction:column;gap:1rem;display:flex}.form-group input{background:var(--bg-elevated);border:1px solid var(--border-default);color:var(--text-primary);border-radius:8px;padding:.75rem;font-size:.95rem;transition:all .2s}.form-group input:focus{border-color:var(--accent-primary);background:var(--bg-secondary);outline:none;box-shadow:0 0 0 3px #8b5cf61a}.form-group input::placeholder{color:var(--text-muted)}.token-input{font-family:Courier New,monospace;font-size:.85rem}.help-text{color:var(--text-muted);opacity:.9;font-size:.8rem}.help-text a{color:var(--accent-primary);text-decoration:none}.help-text a:hover{text-decoration:underline}.mfa-input{border:1px solid var(--accent-primary);background:#8b5cf61a;border-radius:8px;margin-top:.5rem;padding:1rem}.mfa-input input{text-align:center;letter-spacing:.5rem;font-family:Courier New,monospace;font-size:1.25rem}.message{border-radius:8px;padding:.75rem 1rem;font-size:.9rem;line-height:1.5}.message.success{border:1px solid var(--success);color:var(--success);background:#10b9811a}.message.error{border:1px solid var(--danger);color:var(--danger);background:#ef44441a}.message.info{border:1px solid var(--info);color:var(--info);background:#3b82f61a}.button-group{gap:.75rem;margin-top:.5rem;display:flex}.btn-primary,.btn-secondary{cursor:pointer;border:none;border-radius:8px;flex:1;padding:.75rem 1.5rem;font-size:1rem;font-weight:600;transition:all .3s}.btn-primary{background:linear-gradient(135deg, var(--accent-primary), var(--accent-primary-hover));color:#fff;box-shadow:0 2px 8px #8b5cf633}.btn-primary:hover:not(:disabled){transform:translateY(-2px);box-shadow:0 4px 16px #8b5cf666}.btn-secondary{background:var(--bg-elevated);color:var(--text-secondary);border:1px solid var(--border-default)}.btn-secondary:hover:not(:disabled){background:var(--bg-tertiary);border-color:var(--accent-primary);color:var(--accent-primary)}.btn-primary:disabled,.btn-secondary:disabled{opacity:.5;cursor:not-allowed}.stats-section{border-top:1px solid var(--border-default);margin-top:1.5rem;padding-top:1.5rem}.stats-section h4{color:var(--text-secondary);margin:0 0 1rem;font-size:1rem}.stats-grid{grid-template-columns:repeat(auto-fit,minmax(120px,1fr));gap:1rem;display:grid}.stat-item{background:var(--bg-elevated);border:1px solid var(--border-default);text-align:center;border-radius:8px;padding:.75rem;transition:all .2s}.stat-item:hover{border-color:var(--accent-primary);transform:translateY(-2px)}.stat-label{color:var(--text-muted);margin-bottom:.25rem;font-size:.8rem;display:block}.stat-value{color:var(--text-primary);font-size:1.25rem;font-weight:700;display:block}.health-charts{border-top:2px solid var(--border-default);margin-top:2rem;padding-top:2rem}.health-charts h4{color:var(--text-primary);margin:0 0 1.5rem;font-size:1.25rem}.charts-grid{grid-template-columns:repeat(2,1fr);gap:1.5rem;display:grid}.chart-container{background:var(--bg-elevated);border:1px solid var(--border-default);border-radius:12px;padding:1.25rem;transition:all .3s}.chart-container:hover{border-color:var(--accent-primary);box-shadow:0 4px 16px #8b5cf633}.chart-header{flex-wrap:wrap;justify-content:space-between;align-items:flex-start;gap:.5rem;margin-bottom:1rem;display:flex}.chart-header h5{color:var(--text-primary);margin:0;font-size:1rem;font-weight:600}.stat-current{color:var(--accent-primary);font-weight:600}@media (width<=1200px){.charts-grid{grid-template-columns:1fr}}.integration-card.apple-health{border-top:2px solid #ff2d55}.integration-card.apple-health .card-icon{color:#ff2d55}.apple-instructions-box{background:var(--bg-elevated);border:1px solid var(--border-default);color:var(--text-secondary);border-radius:8px;padding:1rem;font-size:.9rem}.apple-instructions-box ol{margin:.5rem 0;padding-left:1.25rem}.apple-instructions-box li{margin-bottom:.5rem}.apple-credentials-copy{background:#0003;border-radius:6px;flex-direction:column;gap:.5rem;margin-top:.5rem;padding:.75rem;font-family:monospace;font-size:.8rem;display:flex}.apple-credentials-row{justify-content:space-between;align-items:center;gap:.5rem;display:flex}.apple-credentials-value{color:var(--accent-light);word-break:break-all}.apple-copy-btn{background:var(--bg-secondary);border:1px solid var(--border-default);color:var(--text-primary);cursor:pointer;border-radius:4px;padding:.2rem .5rem;font-size:.75rem}.apple-copy-btn:hover{background:var(--accent-primary);border-color:var(--accent-primary)}.apple-upload-area{border:2px dashed var(--border-default);text-align:center;cursor:pointer;border-radius:8px;padding:1.5rem;transition:border-color .2s}.apple-upload-area:hover{border-color:#ff2d55}.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}}.activity-detail-view-container{padding:1rem 0;animation:.35s cubic-bezier(.4,0,.2,1) detailFadeIn}@keyframes detailFadeIn{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}.detail-navigation{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:1rem;margin-bottom:1.5rem;display:flex}.btn-back{background:var(--bg-secondary);border:1px solid var(--border-default);color:var(--text-secondary);cursor:pointer;border-radius:8px;align-items:center;gap:.5rem;padding:.6rem 1.2rem;font-weight:600;transition:all .25s;display:flex;box-shadow:0 4px 12px #0003}.btn-back:hover{background:var(--bg-tertiary);color:var(--accent-primary);border-color:var(--accent-primary);transform:translate(-4px)}.activity-detail-view-header h2{color:var(--text-primary);letter-spacing:-.5px;margin:0;font-size:2rem;font-weight:700}.analytical-dashboard{flex-direction:column;gap:1.5rem;margin:2rem 0;display:flex}.training-classification-card{border:1px solid var(--border-default);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border-radius:14px;flex-direction:column;gap:.5rem;padding:1.25rem 1.5rem;transition:all .3s cubic-bezier(.4,0,.2,1);display:flex;position:relative;overflow:hidden;box-shadow:0 10px 30px #0000004d}.training-classification-card:before{content:"";background:currentColor;width:4px;height:100%;position:absolute;top:0;left:0}.training-classification-card:hover{transform:translateY(-2px);box-shadow:0 15px 35px #0006}.classification-header{align-items:center;gap:1rem;display:flex}.classification-icon-container{color:#fff;border-radius:10px;justify-content:center;align-items:center;width:42px;height:42px;font-size:1.25rem;display:flex;box-shadow:0 4px 10px #0003}.classification-subtitle{text-transform:uppercase;letter-spacing:1px;color:var(--text-muted);font-size:.75rem;font-weight:700;display:block}.classification-title{letter-spacing:-.3px;margin:0;font-size:1.35rem;font-weight:700}.classification-desc{color:var(--text-secondary);margin:0;font-size:.95rem;line-height:1.5}.analytical-metrics-grid{grid-template-columns:repeat(auto-fit,minmax(320px,1fr));gap:1.5rem;display:grid}.metrics-panel{background:var(--bg-secondary);border:1px solid var(--border-default);border-radius:14px;flex-direction:column;gap:1.25rem;padding:1.5rem;transition:all .3s;display:flex;box-shadow:0 4px 20px #0003}.metrics-panel:hover{border-color:#ffffff14}.panel-title{color:var(--text-primary);border-bottom:1px solid var(--border-default);margin:0;padding-bottom:.75rem;font-size:1.1rem;font-weight:600}.panel-content-grid{grid-template-columns:repeat(2,1fr);gap:1rem;display:grid}.metric-card-premium{background:#ffffff05;border:1px solid #ffffff0d;border-radius:10px;align-items:center;gap:.85rem;padding:.85rem 1rem;transition:all .25s cubic-bezier(.4,0,.2,1);display:flex;position:relative;overflow:hidden}.metric-card-premium:hover{background:#ffffff0a;border-color:#ffffff1a;transform:scale(1.02)}.metric-card-premium.highlight-tss{background:#8b5cf608;border-color:#8b5cf626}.metric-card-premium.highlight-tss:hover{background:#8b5cf60f;border-color:#8b5cf64d}.metric-card-premium.highlight-np{background:#ffd93d08;border-color:#ffd93d26}.metric-card-premium.highlight-np:hover{background:#ffd93d0f;border-color:#ffd93d4d}.metric-icon-p{color:var(--accent-primary);background:#8b5cf61a;border-radius:8px;flex-shrink:0;padding:.5rem;font-size:1.4rem}.metric-icon-p.energy{color:#f97316;background:#f973161a}.metric-icon-p.speed-icon{color:#14b8a6;background:#14b8a61a}.metric-icon-p.tss{color:#8b5cf6;background:#8b5cf61a}.metric-icon-p.intensity{color:#06b6d4;background:#06b6d41a}.metric-icon-p.suffer{color:#ef4444;background:#ef44441a}.metric-icon-p.power,.metric-icon-p.power-np{color:#eab308;background:#eab3081a}.metric-icon-p.hr{color:#ec4899;background:#ec48991a}.metric-icon-p.cadence{color:#10b981;background:#10b9811a}.metric-icon-p.elevation{color:#3b82f6;background:#3b82f61a}.metric-icon-p.vi{color:#84cc16;background:#84cc161a}.metric-icon-p.ef{color:#6366f1;background:#6366f11a}.metric-info{flex-direction:column;min-width:0;display:flex}.metric-label-p{color:var(--text-muted);text-transform:uppercase;letter-spacing:.5px;white-space:nowrap;text-overflow:ellipsis;font-size:.75rem;font-weight:500;overflow:hidden}.metric-value-p{color:var(--text-primary);word-break:break-word;margin-top:.15rem;font-size:1.2rem;font-weight:700;line-height:1.2}.metric-unit-p{color:var(--text-muted);font-size:.85rem;font-weight:500}.metric-divider-p{color:#ffffff26;font-weight:400}.metric-max-value{color:#ff6b6b;font-size:.9em;font-weight:600}.metric-sub-p{color:var(--text-muted);margin-top:.1rem;font-size:.7rem}.map-section-container,.charts-section-container{background:var(--bg-secondary);border:1px solid var(--border-default);border-radius:14px;margin-bottom:2rem;padding:1.5rem;box-shadow:0 4px 20px #00000040}.section-title{color:var(--text-primary);margin:0 0 1.25rem;font-size:1.35rem;font-weight:600}.activity-map-wrapper{border-radius:10px;width:100%;position:relative;overflow:hidden}.btn-activity-map-fullscreen{z-index:1100;color:#e2e8f0;cursor:pointer;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);background:#0f172ad1;border:1px solid #94a3b859;border-radius:8px;padding:.32rem .52rem;font-size:.9rem;font-weight:700;transition:all .2s;position:absolute;top:10px;right:10px}.btn-activity-map-fullscreen:hover{color:#fff;background:#1e293bf2;border-color:#3b82f6cc}:-webkit-any(.activity-map-wrapper:fullscreen,.activity-map-wrapper.is-fullscreen,.activity-map-wrapper:-webkit-full-screen){background:#000;border-radius:0}:is(.activity-map-wrapper:fullscreen,.activity-map-wrapper.is-fullscreen,.activity-map-wrapper:fullscreen){background:#000;border-radius:0}:-webkit-any(.activity-map-wrapper:fullscreen .activity-leaflet-map,.activity-map-wrapper.is-fullscreen .activity-leaflet-map,.activity-map-wrapper:-webkit-full-screen .activity-leaflet-map){border:none;border-radius:0;height:100vh}:is(.activity-map-wrapper:fullscreen .activity-leaflet-map,.activity-map-wrapper.is-fullscreen .activity-leaflet-map,.activity-map-wrapper:fullscreen .activity-leaflet-map){border:none;border-radius:0;height:100vh}.activity-leaflet-map{border:1px solid var(--border-default);z-index:1;border-radius:10px;width:100%;height:380px}.no-gps-map,.map-placeholderloading,.map-placeholdererror{border:1px dashed var(--border-default);width:100%;height:380px;color:var(--text-muted);background:#ffffff05;border-radius:10px;justify-content:center;align-items:center;font-weight:500;display:flex}.map-placeholdererror{color:#ef4444}.chart-visibility-controls{border-bottom:1px solid var(--border-default);flex-wrap:wrap;align-items:center;gap:1rem;margin-bottom:1.5rem;padding-bottom:1rem;display:flex}.controls-label{color:var(--text-secondary);font-size:.95rem;font-weight:500}.controls-group{flex-wrap:wrap;gap:.75rem;display:flex}.control-toggle-btn{cursor:pointer;border:1px solid var(--border-default);color:var(--text-secondary);-webkit-user-select:none;user-select:none;background:#ffffff08;border-radius:8px;align-items:center;gap:.5rem;padding:.5rem 1rem;font-size:.9rem;font-weight:600;transition:all .2s cubic-bezier(.4,0,.2,1);display:inline-flex}.control-toggle-btn input[type=checkbox]{display:none}.control-toggle-btn:hover{color:var(--text-primary);background:#ffffff14}.control-toggle-btn.alt-toggle.active{color:#3b82f6;background:#3b82f626;border-color:#3b82f6;box-shadow:0 0 10px #3b82f633}.control-toggle-btn.hr-toggle.active{color:#ef4444;background:#ef444426;border-color:#ef4444;box-shadow:0 0 10px #ef444433}.control-toggle-btn.power-toggle.active{color:#ffd93d;background:#ffd93d1f;border-color:#ffd93d;box-shadow:0 0 10px #ffd93d33}.control-toggle-btn.intensity-toggle.active{color:#f05;background:#ff005526;border-color:#f05;box-shadow:0 0 10px #f053}.composed-chart-container{width:100%;min-height:350px}.no-series-selected{min-height:350px;color:var(--text-muted);text-align:center;border:1px dashed var(--border-default);background:#ffffff03;border-radius:10px;justify-content:center;align-items:center;padding:2rem;font-weight:500;display:flex}.custom-tooltip{border:1px solid var(--border-default);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);background:#0f172af2;border-radius:8px;padding:.75rem 1rem;box-shadow:0 10px 25px #0006}.custom-tooltip .label{color:var(--text-secondary);margin:0 0 .5rem;font-size:.8rem;font-weight:500}.custom-tooltip p{margin:.25rem 0;font-size:.95rem;font-weight:600}.loading-charts,.error-charts{height:350px;color:var(--text-muted);justify-content:center;align-items:center;font-weight:500;display:flex}.error-charts{color:#ef4444}.leaflet-container{font-family:inherit}.leaflet-bar{border:1px solid var(--border-default)!important;box-shadow:0 4px 10px #0000004d!important}.leaflet-bar a{transition:all .2s;background-color:var(--bg-secondary)!important;color:var(--text-primary)!important;border-bottom:1px solid var(--border-default)!important}.leaflet-bar a:hover{background-color:var(--bg-tertiary)!important;color:var(--accent-primary)!important}.leaflet-popup-content-wrapper{background:var(--bg-secondary)!important;color:var(--text-primary)!important;border:1px solid var(--border-default)!important;border-radius:8px!important;box-shadow:0 10px 20px #0006!important}@media (width<=768px){.activity-detail-view-header h2{font-size:1.5rem}.analytical-metrics-grid{grid-template-columns:1fr;gap:1rem}.panel-content-grid{grid-template-columns:repeat(2,1fr)}.metric-value-p{font-size:1.05rem}.activity-leaflet-map,.no-gps-map,.map-placeholderloading,.map-placeholdererror{height:280px}.chart-visibility-controls{flex-direction:column;align-items:flex-start;gap:.5rem}}.btn-create-route{color:#fff;cursor:pointer;background:linear-gradient(135deg,#fc4c02 0%,#ff7a00 100%);border:none;border-radius:8px;align-items:center;gap:.5rem;padding:.6rem 1.2rem;font-weight:600;transition:all .25s;display:flex;box-shadow:0 4px 15px #fc4c024d}.btn-create-route:hover:not(:disabled){background:linear-gradient(135deg,#ff5710 0%,#ff8f20 100%);transform:translateY(-2px);box-shadow:0 6px 20px #fc4c0280}.btn-create-route:disabled{opacity:.6;cursor:not-allowed;box-shadow:none}.convert-success-banner{background:#10b9811a;border:1px solid #10b9814d;border-radius:10px;justify-content:space-between;align-items:center;gap:1.5rem;margin-top:1rem;padding:1rem 1.5rem;animation:.3s ease-out slideDown;display:flex}.convert-success-banner p{color:#10b981;margin:0;font-size:.95rem;font-weight:600}.btn-go-to-routes{color:#fff;cursor:pointer;white-space:nowrap;background:#10b981;border:none;border-radius:6px;padding:.5rem 1rem;font-size:.85rem;font-weight:600;transition:all .2s}.btn-go-to-routes:hover{background:#059669;transform:translateY(-1px)}@keyframes slideDown{0%{opacity:0;transform:translateY(-8px)}to{opacity:1;transform:translateY(0)}}.btn-analyze-activity{color:#fff;cursor:pointer;background:linear-gradient(135deg,#8b5cf6 0%,#6366f1 100%);border:none;border-radius:8px;align-items:center;gap:.5rem;padding:.6rem 1.2rem;font-weight:600;transition:all .25s;display:flex;box-shadow:0 4px 15px #8b5cf64d}.btn-analyze-activity:hover:not(:disabled){background:linear-gradient(135deg,#7c3aed 0%,#4f46e5 100%);transform:translateY(-2px);box-shadow:0 6px 20px #8b5cf680}.btn-analyze-activity:disabled{opacity:.6;cursor:not-allowed;box-shadow:none}.analysis-section-container{background:var(--bg-secondary);border:1px solid var(--border-default);border-radius:14px;margin-bottom:2rem;padding:1.5rem;animation:.3s ease-out slideDown;box-shadow:0 4px 20px #00000040}@keyframes analysisSpin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.analysis-text{color:var(--text-primary);margin:0;font-size:1.05rem;font-weight:400;line-height:1.6}.advanced-analysis-section{animation:.3s ease-out slideDown}.section-divider{background:#e9456033;border:0;height:2px;margin:2rem 0}.advanced-analysis{flex-direction:column;gap:2rem;margin-top:1rem;display:flex}.analysis-section{border:1px solid var(--border-default);background:#ffffff08;border-radius:12px;padding:1.5rem}.analysis-section h3{color:#fff;border-left:3px solid #e94560;margin-top:0;margin-bottom:1.25rem;padding-left:.75rem;font-size:1.15rem}.zones-progress-bar{color:#fff;text-shadow:0 1px 2px #00000080;background:#ffffff0d;border-radius:6px;height:28px;margin-bottom:1.25rem;font-size:.8rem;font-weight:700;display:flex;overflow:hidden}.zone-segment{justify-content:center;align-items:center;height:100%;transition:width .3s;display:flex}.zone-segment.low-aerobic{background:#059669}.zone-segment.high-aerobic{background:#d97706}.zone-segment.anaerobic-zone{background:#dc2626}.zones-legend{flex-direction:column;gap:.5rem;display:flex}.legend-item{color:#a8dadc;align-items:center;gap:.75rem;font-size:.9rem;display:flex}.legend-dot{border-radius:3px;width:12px;height:12px}.legend-dot.low-aerobic{background:#059669}.legend-dot.high-aerobic{background:#d97706}.legend-dot.anaerobic-zone{background:#dc2626}.peaks-table-wrapper{border:1px solid var(--border-default);background:linear-gradient(#ffffff0d,#ffffff05);border-radius:12px;overflow-x:auto}.peaks-curve-card{background:#02061747;border:1px solid #94a3b833;border-radius:10px;margin-bottom:.35rem;padding:.35rem .45rem .15rem}.peaks-curve-title{text-transform:uppercase;letter-spacing:.08em;color:#94a3b8;margin:0 0 .2rem .1rem;font-size:.72rem;font-weight:700}.peaks-table{border-collapse:collapse;width:100%;min-width:680px}.peaks-table thead th{text-align:left;text-transform:uppercase;letter-spacing:.07em;color:#94a3b8;background:#080b17cc;border-bottom:1px solid #94a3b838;padding:.3rem .42rem;font-size:.64rem}.peaks-table tbody td{vertical-align:middle;border-bottom:1px solid #94a3b81f;padding:.26rem .42rem}.peaks-table tbody tr:nth-child(2n){background:#ffffff05}.peaks-table tbody tr:hover{background:#3b82f614}.peak-col-time{color:#f8fafc;white-space:nowrap;font-size:.72rem;font-weight:650}.peak-cell-stack{flex-direction:column;gap:.06rem;display:flex}.peak-table-value{align-items:center;gap:.25rem;font-size:.76rem;font-weight:650;display:inline-flex}.peak-table-value.power{color:#fcd34d}.peak-table-value.hr{color:#f87171}.peak-empty{color:#64748b;font-size:.74rem}.peak-icon{font-size:.95rem}.intensity-list{flex-direction:column;gap:.75rem;display:flex}.intensity-item{align-items:flex-start;gap:.75rem;display:flex}.intensity-dot{background:#ff6b6b;border-radius:50%;flex-shrink:0;width:8px;height:8px;margin-top:.45rem}.intensity-line{color:#a8dadc;font-size:.95rem;line-height:1.4}.diagnosis-box{background:#e945600d;border-left:4px solid #e94560;border-radius:0 10px 10px 0;padding:1.25rem}.diagnosis-line{color:#a8dadc;margin:0 0 .75rem;font-size:.98rem;line-height:1.5}.diagnosis-line:last-child{margin-bottom:0}.diagnosis-line.highlight-title{color:#fff;border-bottom:1px solid #ffffff0d;margin-top:.5rem;padding-bottom:.25rem;font-size:1.1rem}.pr-badge{color:#fbbf24;text-transform:uppercase;vertical-align:middle;background:#f59e0b2e;border:1px solid #f59e0b;border-radius:4px;align-items:center;gap:.25rem;margin-left:.5rem;padding:.05rem .26rem;font-size:.54rem;font-weight:700;display:inline-flex;box-shadow:0 0 5px #f59e0b26}.peak-ftp-est{color:#4ade80;margin-top:0;font-size:.62rem;font-weight:500;display:block}.modal-overlay{-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);z-index:2000;background:#000000bf;justify-content:center;align-items:center;animation:.25s fadeIn;display:flex;position:fixed;inset:0}.modal-content{background:var(--bg-tertiary);border:1px solid var(--border-default);border-radius:12px;width:90%;max-width:500px;animation:.3s cubic-bezier(.4,0,.2,1) slideUp;overflow:hidden;box-shadow:0 8px 32px #0009}.modal-header{border-bottom:1px solid var(--border-default);background:var(--bg-secondary);justify-content:space-between;align-items:center;padding:1.25rem 1.5rem;display:flex}.modal-header h2{color:var(--text-primary);margin:0;font-size:1.3rem;font-weight:700}.btn-cancel{background:var(--bg-elevated);color:var(--text-secondary);border:1px solid var(--border-default);cursor:pointer;border-radius:8px;padding:.6rem 1.2rem;font-weight:600;transition:all .2s}.btn-save{background:var(--accent-primary);color:#fff;cursor:pointer;border:none;border-radius:8px;padding:.6rem 1.2rem;font-weight:600;transition:all .2s}.btn-save:hover:not(:disabled){filter:brightness(1.15);transform:translateY(-1px)}.btn-save:disabled{opacity:.6;cursor:not-allowed}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes slideUp{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}:-webkit-any(.composed-chart-wrapper:fullscreen,.composed-chart-wrapper.is-fullscreen,.composed-chart-wrapper:-webkit-full-screen){box-sizing:border-box!important;background:#0f172a!important;flex-direction:column!important;justify-content:center!important;align-items:center!important;width:100vw!important;height:100vh!important;padding:3rem 2rem 2rem!important;display:flex!important}:is(.composed-chart-wrapper:fullscreen,.composed-chart-wrapper.is-fullscreen,.composed-chart-wrapper:fullscreen){box-sizing:border-box!important;background:#0f172a!important;flex-direction:column!important;justify-content:center!important;align-items:center!important;width:100vw!important;height:100vh!important;padding:3rem 2rem 2rem!important;display:flex!important}:-webkit-any(.composed-chart-wrapper:fullscreen .composed-chart-container,.composed-chart-wrapper.is-fullscreen .composed-chart-container,.composed-chart-wrapper:-webkit-full-screen .composed-chart-container){width:100%!important;height:100%!important;min-height:auto!important}:is(.composed-chart-wrapper:fullscreen .composed-chart-container,.composed-chart-wrapper.is-fullscreen .composed-chart-container,.composed-chart-wrapper:fullscreen .composed-chart-container){width:100%!important;height:100%!important;min-height:auto!important}.btn-activity-chart-fullscreen:hover{transform:scale(1.03);color:#fff!important;background:#1e293bf2!important;border-color:#3b82f6cc!important}.btn-delete-activity{color:#fff;cursor:pointer;background:linear-gradient(135deg,#ef4444 0%,#dc2626 100%);border:none;border-radius:8px;align-items:center;gap:.5rem;padding:.6rem 1.2rem;font-weight:600;transition:all .25s;display:flex;box-shadow:0 4px 15px #ef44444d}.btn-delete-activity:hover:not(:disabled){background:linear-gradient(135deg,#f87171 0%,#ef4444 100%);transform:translateY(-2px);box-shadow:0 6px 20px #ef444480}.btn-delete-activity:disabled{opacity:.6;cursor:not-allowed;box-shadow:none}.advanced-dynamics-section{flex-direction:column;display:flex}.dynamics-content{flex-direction:column;gap:1.5rem;display:flex}.dynamics-summary{grid-template-columns:1fr;gap:1rem;display:grid}@media (width>=768px){.dynamics-summary{grid-template-columns:1fr 1fr}}.dynamics-card{background:var(--bg-tertiary);border:1px solid var(--border-default);border-radius:12px;flex-direction:column;gap:.75rem;padding:1rem;display:flex}.dyn-label{color:var(--text-secondary);text-transform:uppercase;letter-spacing:.5px;font-size:.9rem;font-weight:500}.dyn-balance-bar{border-radius:12px;height:24px;display:flex;overflow:hidden;box-shadow:inset 0 2px 4px #0003}.dyn-l{color:#fff;background:#3b82f6;justify-content:flex-start;align-items:center;padding-left:.75rem;font-size:.85rem;font-weight:700;display:flex}.dyn-r{color:#fff;background:#f59e0b;justify-content:flex-end;align-items:center;padding-right:.75rem;font-size:.85rem;font-weight:700;display:flex}.dynamics-grid{gap:1rem;display:flex}.dyn-metric{background:var(--bg-tertiary);border:1px solid var(--border-default);border-radius:12px;flex-direction:column;flex:1;justify-content:center;align-items:center;gap:.5rem;padding:1rem;display:flex}.dyn-value{color:var(--text-primary);font-size:1.25rem;font-weight:700}.dynamics-upload{border:1px dashed var(--accent-primary);text-align:center;background:#3b82f60d;border-radius:12px;flex-direction:column;align-items:center;padding:2rem;display:flex}.cartuchos-detail-table-container{-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);background:#0f172a99;border:1px solid #ff005526;border-radius:14px;margin-top:1.25rem;padding:1.25rem;animation:.35s ease-out cartuchosSlideIn}@keyframes cartuchosSlideIn{0%{opacity:0;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}.cartuchos-table-title{color:#ff6b6b;letter-spacing:.02em;align-items:center;gap:.5rem;margin:0 0 1rem;font-size:.95rem;font-weight:700;display:flex}.cartuchos-table-title svg{color:#ffd93d;font-size:.9rem}.cartuchos-table-scroll{-webkit-overflow-scrolling:touch;overflow-x:auto}.cartuchos-detail-table{border-collapse:separate;border-spacing:0 4px;width:100%;font-size:.88rem}.cartuchos-detail-table thead th{text-align:left;text-transform:uppercase;letter-spacing:.06em;color:#a8dadc99;white-space:nowrap;border-bottom:1px solid #ffffff0f;padding:.6rem .75rem;font-size:.75rem;font-weight:600}.cartuchos-detail-table tbody tr{border-radius:8px;transition:all .2s}.cartuchos-detail-table tbody tr:hover{background:#ff005514}.cartuchos-detail-table tbody td{color:#e2e8f0;white-space:nowrap;border-top:1px solid #ffffff08;padding:.65rem .75rem}.cartucho-row{background:#ffd93d0a}.cartucho-row:hover{background:#ffd93d1a!important}.extraordinario-row{background:#ff6b6b0a}.extraordinario-row:hover{background:#ff6b6b1a!important}.umbral-row{background:#ef44440a}.umbral-row:hover{background:#ef44441a!important}.cartucho-badge{color:#ffd93d;background:#ffd93d1a;border-radius:6px;align-items:center;gap:.3rem;padding:.2rem .55rem;font-size:.85rem;font-weight:700;display:inline-flex}.extraordinario-row .cartucho-badge{color:#ff6b6b;background:#ff6b6b1a}.umbral-row .cartucho-badge{color:#ef4444;background:#ef44441a}.cartucho-km,.cartucho-distance{font-variant-numeric:tabular-nums}.km-value,.dist-value{color:#3b82f6;margin-right:.2rem;font-weight:700}.km-unit,.dist-unit{color:#a8dadc80;font-size:.72rem;font-weight:500}.cartucho-time{color:#a8dadc;font-variant-numeric:tabular-nums;font-weight:500}.cartucho-duration{color:#10b981;font-variant-numeric:tabular-nums;font-weight:600}.watts-value{color:#ffd93d;letter-spacing:-.01em;font-size:.95rem;font-weight:800}.extraordinario-row .watts-value{color:#ff6b6b}.umbral-row .watts-value{color:#ef4444}@media (width<=768px){.cartuchos-detail-table-container{margin-top:1rem;padding:.85rem}.cartuchos-detail-table{font-size:.8rem}.cartuchos-detail-table thead th{padding:.45rem .5rem;font-size:.68rem}.cartuchos-detail-table tbody td{padding:.5rem}.cartucho-badge{padding:.15rem .4rem;font-size:.78rem}.watts-value{font-size:.85rem}}.activities-list-container{width:100%;padding:1rem 0}.activities-controls{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:1rem;margin-bottom:2rem;display:flex}.controls-left{flex:1;align-items:center;gap:1rem;min-width:300px;display:flex}.controls-right{align-items:center;gap:1.5rem;display:flex}.search-box{flex:1;max-width:400px;position:relative}.search-input{background:var(--bg-elevated);border:1px solid var(--border-default);width:100%;color:var(--text-primary);border-radius:8px;padding:.75rem 2.5rem .75rem 2.75rem;font-size:.95rem;transition:all .2s}.search-input::placeholder{color:var(--text-muted)}.clear-search{color:var(--text-muted);cursor:pointer;background:0 0;border:none;border-radius:4px;padding:.25rem;font-size:.9rem;transition:all .2s;position:absolute;top:50%;right:.5rem;transform:translateY(-50%)}.clear-search:hover{color:var(--accent-primary);background:var(--bg-tertiary)}.activity-type-filter{background:var(--bg-elevated);border:1px solid var(--border-default);color:var(--text-secondary);cursor:pointer;border-radius:8px;min-width:180px;padding:.75rem 1rem;font-size:.95rem;transition:all .2s}.activity-type-filter:hover{background:var(--bg-tertiary);border-color:var(--accent-primary)}.activity-type-filter:focus{border-color:var(--accent-primary);outline:none;box-shadow:0 0 0 3px #8b5cf61a}.activities-count{color:var(--text-muted);white-space:nowrap;font-size:.9rem}.view-toggle{background:var(--bg-elevated);border:1px solid var(--border-default);border-radius:8px;gap:.5rem;padding:.25rem;display:flex}.view-button{color:var(--text-secondary);cursor:pointer;background:0 0;border:none;border-radius:6px;padding:.5rem .75rem;font-size:1.1rem;transition:all .2s}.view-button:hover{background:var(--bg-tertiary);color:var(--text-primary)}.view-button.active{background:var(--accent-primary);color:#fff}.loading-message,.error-message,.empty-message,.no-results-message{text-align:center;color:var(--text-secondary);flex-direction:column;justify-content:center;align-items:center;padding:4rem 2rem;display:flex}.loading-spinner{border:3px solid var(--border-default);border-top:3px solid var(--accent-primary);border-radius:50%;width:50px;height:50px;margin-bottom:1rem;animation:1s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}.error-message p{color:var(--danger);margin-bottom:1rem}.no-results-message{padding:3rem 2rem}.no-results-message p{margin-bottom:1rem;font-size:1.1rem}.btn-retry,.btn-clear-filters{background:var(--accent-primary);color:#fff;cursor:pointer;border:none;border-radius:8px;padding:.75rem 1.5rem;font-size:.95rem;font-weight:600;transition:all .2s;box-shadow:0 2px 8px #8b5cf633}.btn-retry:hover,.btn-clear-filters:hover{transform:translateY(-2px);box-shadow:0 4px 16px #8b5cf666}.activities-grid{grid-template-columns:repeat(auto-fill,minmax(350px,1fr));gap:1.5rem;margin-bottom:2rem;display:grid}.activity-card{background:var(--bg-tertiary);border:1px solid var(--border-default);cursor:pointer;border-radius:12px;padding:1.5rem;transition:all .3s}.activity-card:hover{border-color:var(--accent-primary);transform:translateY(-2px);box-shadow:0 8px 24px #0006}.activities-list-view{margin-bottom:2rem;overflow-x:auto}.activities-table{border-collapse:collapse;background:var(--bg-tertiary);border:1px solid var(--border-default);border-radius:8px;width:100%;overflow:hidden}.activities-table thead{background:var(--bg-elevated)}.activities-table th{text-align:left;color:var(--text-secondary);border-bottom:1px solid var(--border-default);padding:1rem;font-size:.9rem;font-weight:600}.activities-table td{color:var(--text-primary);border-bottom:1px solid var(--border-muted);padding:1rem}.activities-table tbody tr{cursor:pointer;transition:all .2s}.activities-table tbody tr:hover{background:var(--bg-elevated)}.activities-table tbody tr:last-child td{border-bottom:none}.default-list-view{flex-direction:column;gap:.5rem;display:flex}.activity-list-item{background:var(--bg-tertiary);border:1px solid var(--border-default);cursor:pointer;border-radius:8px;padding:1rem 1.5rem;transition:all .2s}.activity-list-item:hover{background:var(--bg-elevated);border-color:var(--accent-primary)}.pagination{background:var(--bg-tertiary);border:1px solid var(--border-default);border-radius:8px;justify-content:center;align-items:center;gap:1.5rem;margin-top:2rem;padding:1.5rem;display:flex}.btn-pagination{background:var(--accent-primary);color:#fff;cursor:pointer;border:none;border-radius:8px;padding:.75rem 1.5rem;font-size:.95rem;font-weight:600;transition:all .2s;box-shadow:0 2px 8px #8b5cf633}.btn-pagination:hover:not(:disabled){transform:translateY(-2px);box-shadow:0 4px 16px #8b5cf666}.btn-pagination:disabled{opacity:.4;cursor:not-allowed;transform:none}.page-info{color:var(--text-secondary);font-size:.95rem;font-weight:500}@media (width<=768px){.activities-controls{flex-direction:column;align-items:stretch}.controls-left,.controls-right{justify-content:space-between;width:100%}.search-box{max-width:none}.activities-grid{grid-template-columns:1fr}.activities-table{font-size:.85rem}.activities-table th,.activities-table td{padding:.75rem .5rem}.pagination{flex-wrap:wrap;gap:1rem}}.activities-list{width:100%;padding:1rem 0}.activities-header{border-bottom:2px solid var(--border-default);justify-content:space-between;align-items:center;margin-bottom:2rem;padding-bottom:1rem;display:flex}.activities-header h3{color:#fc4c02;align-items:center;gap:.75rem;margin:0;font-size:1.5rem;display:flex}.strava-card{border-left:3px solid #fc4c02}.activity-header{justify-content:space-between;align-items:center;margin-bottom:.75rem;display:flex}.activity-type{align-items:center;gap:.5rem;font-size:.9rem;font-weight:600;display:flex}.activity-date{color:var(--text-muted);font-size:.85rem}.activity-name{color:var(--text-primary);margin:0 0 1rem;font-size:1.1rem;font-weight:600;line-height:1.4}.activity-stats{background:var(--bg-elevated);border:1px solid var(--border-default);border-radius:8px;grid-template-columns:repeat(3,1fr);gap:1rem;margin-bottom:1rem;padding:1rem;display:grid}.stat{align-items:center;gap:.5rem;display:flex}.stat-icon{color:#fc4c02;font-size:1.2rem}.stat div{flex-direction:column;display:flex}.stat-value{color:var(--text-primary);font-size:1.1rem;font-weight:700;line-height:1}.stat-label{color:var(--text-muted);font-size:.75rem}.activity-metrics{flex-wrap:wrap;gap:.75rem;margin-top:1rem;display:flex}.metric{background:var(--bg-elevated);border:1px solid var(--border-default);border-radius:12px;align-items:center;gap:.25rem;padding:.35rem .75rem;font-size:.85rem;display:flex}.metric-icon{color:var(--accent-primary);font-size:.9rem}.metric-label{color:var(--text-muted)}.metric-value{color:var(--text-primary);margin-left:.25rem;font-weight:600}.indoor-badge{border:1px solid var(--accent-primary);color:var(--accent-primary);background:#2563eb26;border-radius:12px;padding:.25rem .75rem;font-size:.8rem;font-weight:600;position:absolute;top:1rem;right:1rem}.activity-name-cell{color:var(--text-primary);font-weight:600}.activity-row{transition:all .2s}.activity-row:hover{background:var(--bg-elevated)}@media (width<=768px){.activity-stats{grid-template-columns:repeat(2,1fr)}.stat:last-child{grid-column:span 2}}.activity-name-cell{color:#fff;text-overflow:ellipsis;white-space:nowrap;max-width:250px;font-weight:600;overflow:hidden}.activity-type{justify-content:center;font-size:1.25rem;display:flex}@media (width<=768px){.activities-grid{grid-template-columns:1fr}.activity-stats{grid-template-columns:repeat(2,1fr)}.activities-header{flex-direction:column;align-items:flex-start;gap:1rem}.header-controls{flex-wrap:wrap;justify-content:space-between;width:100%}.activity-type-filter{order:-1;width:100%;margin-bottom:.5rem}.activities-table{font-size:.8rem}.activities-table th,.activities-table td{padding:.75rem .5rem}.activity-name-cell{max-width:150px}}.source-badge{text-transform:uppercase;letter-spacing:.3px;border-radius:4px;align-items:center;padding:.15rem .45rem;font-size:.7rem;font-weight:700;line-height:1;display:inline-flex}.source-badge.strava{color:#fc4c02;background-color:#fc4c0226;border:1px solid #fc4c024d}.source-badge.garmin{color:#007cc3;background-color:#007cc326;border:1px solid #007cc34d}.btn-upload-activity{color:#fff;cursor:pointer;background:linear-gradient(135deg,#fc4c02 0%,#d83d02 100%);border:1px solid #fc4c0233;border-radius:20px;align-items:center;gap:.5rem;padding:.5rem 1rem;font-size:.85rem;font-weight:600;transition:all .2s;display:inline-flex;box-shadow:0 4px 12px #fc4c0233}.btn-upload-activity:hover:not(:disabled){background:linear-gradient(135deg,#ff5e1a 0%,#fc4c02 100%);transform:translateY(-1px);box-shadow:0 6px 16px #fc4c024d}.btn-upload-activity:disabled{opacity:.6;cursor:not-allowed;box-shadow:none!important;transform:none!important}.btn-back-floating{z-index:1000;background:var(--accent-primary);color:#fff;cursor:pointer;border:none;border-radius:50px;justify-content:center;align-items:center;padding:.6rem .8rem;font-size:1rem;transition:all .3s;display:flex;position:absolute;top:.5rem;left:.5rem;box-shadow:0 4px 12px #2563eb66}.btn-back-floating:hover{background:#1d4ed8;transform:scale(1.1)translate(-4px);box-shadow:0 6px 20px #2563eb99}.btn-back-floating:active{transform:scale(.95)}@media (width<=900px){.btn-back-floating{top:.5rem;left:.5rem}}.route-detail-modal{z-index:1000;background:#000c;justify-content:center;align-items:center;padding:2rem;display:flex;position:fixed;inset:0;overflow-y:auto}.route-detail-fullview{width:calc(100% + 4rem);height:calc(100% + 4rem);margin:-2rem;position:relative;overflow-y:auto}.route-detail-fullview .route-detail-content{max-width:100%;max-height:none;box-shadow:none;background:0 0;border-radius:0;padding:.25rem .5rem .5rem 2.5rem}.route-detail-title{background:var(--bg-secondary);border:1px solid var(--border-default);border-radius:6px;justify-content:space-between;align-items:center;gap:1rem;margin-bottom:.35rem;padding:.35rem .75rem;display:flex}.route-detail-title h2{color:var(--text-primary);flex-wrap:wrap;align-items:center;gap:.4rem;margin:0;font-size:.95rem;display:flex}.route-detail-title h2 svg{color:var(--accent-primary);font-size:.9rem}.route-stats-inline{color:var(--text-muted);margin-left:auto;font-size:.75rem;font-weight:500}.route-detail-content{background:var(--bg-primary);border-radius:16px;width:100%;max-width:1200px;max-height:90vh;padding:2rem;overflow-y:auto;box-shadow:0 8px 32px #00000080}.route-detail-header{border-bottom:1px solid var(--border-default);justify-content:space-between;align-items:center;margin-bottom:.5rem;padding-bottom:.5rem;display:flex}.header-left{flex-direction:column;gap:.25rem;display:flex}.route-detail-header h2{color:var(--text-primary);align-items:center;gap:.5rem;margin:0;font-size:1.1rem;display:flex}.route-detail-header h2 svg{color:var(--accent-primary);font-size:1rem}.route-stats{color:var(--text-muted);padding-left:1.5rem;font-size:.75rem;font-weight:500}.btn-close{border:2px solid var(--border-default);color:var(--text-secondary);cursor:pointer;background:0 0;border-radius:8px;padding:.5rem .75rem;font-size:1.2rem;transition:all .2s}.btn-close:hover{color:#ef4444;background:#ef44441a;border-color:#ef4444}.route-map-container{background:var(--bg-elevated);border-radius:12px;margin-bottom:.5rem;padding:.5rem}.route-map-header{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:1rem;margin-bottom:.5rem;display:flex}.route-map-header h3{color:var(--text-primary);letter-spacing:.3px;margin:0;font-size:.95rem;font-weight:700}.weather-form-compact{align-items:center;gap:.75rem;width:auto;display:flex}.route-map-wrapper{border:2px solid var(--border-default);--map-control-top:10px;--map-control-right:10px;--map-control-height:32px;--map-control-gap:10px;border-radius:12px;width:100%;position:relative;overflow:hidden}.btn-map-fullscreen{top:var(--map-control-top);right:var(--map-control-right);z-index:1100;color:#e2e8f0;cursor:pointer;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);background:#0f172ad1;border:1px solid #94a3b859;border-radius:8px;padding:.35rem .55rem;font-size:.78rem;font-weight:700;transition:all .2s;position:absolute}.btn-map-fullscreen:hover{color:#fff;background:#1e293bf2;border-color:#3b82f6cc}:-webkit-any(.route-map-wrapper:fullscreen,.route-map-wrapper.is-fullscreen,.route-map-wrapper:-webkit-full-screen){background:#000;border:none;border-radius:0}:is(.route-map-wrapper:fullscreen,.route-map-wrapper.is-fullscreen,.route-map-wrapper:fullscreen){background:#000;border:none;border-radius:0}:-webkit-any(.route-map-wrapper:fullscreen .route-map-full,.route-map-wrapper.is-fullscreen .route-map-full,.route-map-wrapper:-webkit-full-screen .route-map-full){height:100vh}:is(.route-map-wrapper:fullscreen .route-map-full,.route-map-wrapper.is-fullscreen .route-map-full,.route-map-wrapper:fullscreen .route-map-full){height:100vh}.route-map-full{width:100%;height:676px;overflow:hidden}.map-wind-stats-overlay{top:calc(var(--map-control-top) + var(--map-control-height) + var(--map-control-gap));right:calc(var(--map-control-right) + 2px);z-index:1000;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);pointer-events:none;background:#0f172ad9;border:1px solid #ffffff14;border-radius:8px;flex-direction:column;gap:.35rem;min-width:110px;padding:.5rem .75rem;display:flex;position:absolute;box-shadow:0 4px 15px #0006}.elevation-chart-container{background:var(--bg-elevated);border-radius:12px;margin-bottom:.35rem;padding:.35rem}.elevation-chart-container h3{color:var(--text-primary);margin:0 0 .35rem;font-size:.9rem}.form-group-inline:first-child{min-width:0}.btn-hour-compact{background:var(--bg-secondary);border:1px solid var(--border-default);color:var(--text-primary);cursor:pointer;border-radius:4px;flex-shrink:0;justify-content:center;align-items:center;min-width:24px;padding:.35rem .4rem;font-size:.75rem;transition:all .2s;display:flex}.btn-hour-compact:hover{background:var(--accent-primary);border-color:var(--accent-primary);color:#fff}.form-input-compact{border:1px solid var(--border-default);background:var(--bg-secondary);color:var(--text-primary);border-radius:4px;padding:.35rem .4rem;font-size:.9rem;transition:all .2s}.btn-calculate-weather-compact{background:var(--accent-primary);color:#fff;cursor:pointer;white-space:nowrap;border:none;border-radius:6px;flex-shrink:0;align-items:center;gap:.25rem;padding:.35rem .5rem;font-size:1rem;font-weight:600;transition:all .2s;display:flex}.btn-calculate-weather-compact:hover:not(:disabled){background:#1d4ed8;transform:translateY(-1px);box-shadow:0 4px 12px #2563eb4d}.weather-points-container{background:var(--bg-elevated);border-radius:12px;padding:.35rem}.weather-points-container h3{color:var(--text-primary);margin:0 0 .35rem;font-size:.9rem}.weather-table-wrapper{overflow-x:auto}.weather-table{border-collapse:collapse;background:var(--bg-secondary);border-radius:8px;width:100%;overflow:hidden}.weather-table thead{background:var(--bg-primary);border-bottom:2px solid var(--border-default)}.weather-table th{text-align:left;color:var(--text-secondary);text-transform:uppercase;letter-spacing:.5px;padding:.75rem 1rem;font-size:.9rem;font-weight:600}.weather-table tbody tr{border-bottom:1px solid var(--border-default);transition:background .2s}.weather-table tbody tr:hover{background:var(--bg-primary)}.weather-table tbody tr:last-child{border-bottom:none}.weather-table td{color:var(--text-primary);padding:.875rem 1rem;font-size:.95rem}.distance-col{color:var(--accent-primary);font-weight:600}.weather-col{align-items:center;gap:.5rem;display:flex}.weather-icon-cell{font-size:1.3rem}.weather-desc{color:var(--text-secondary);font-style:italic}.temp-col{color:var(--text-primary);font-weight:600}.wind-col{color:var(--text-secondary);flex-wrap:wrap;align-items:center;gap:.3rem;display:flex}.wind-col svg[style*=transform]{justify-content:center;align-items:center;font-size:1.1rem;transition:transform .3s;display:inline-flex}.wind-gust{color:var(--text-muted);font-size:.85em;font-style:italic}.wind-warning{color:#f59e0b;font-weight:700}.rain-col{color:#60a5fa;font-weight:500}@keyframes pulseGlowVientoContraLow{0%{filter:drop-shadow(0 2px 4px #00000080)drop-shadow(0 0 2px #eab3088c)}to{filter:drop-shadow(0 2px 4px #00000080)drop-shadow(0 0 8px #eab308f2)}}@keyframes pulseGlowVientoContraMedium{0%{filter:drop-shadow(0 2px 4px #00000080)drop-shadow(0 0 2px #f973168c)}to{filter:drop-shadow(0 2px 4px #00000080)drop-shadow(0 0 8px #f97316f2)}}@keyframes pulseGlowVientoContraHigh{0%{filter:drop-shadow(0 2px 4px #00000080)drop-shadow(0 0 2px #ef44448c)}to{filter:drop-shadow(0 2px 4px #00000080)drop-shadow(0 0 8px #ef4444f2)}}@keyframes pulseGlowVientoFavor{0%{filter:drop-shadow(0 2px 4px #00000080)drop-shadow(0 0 2px #10b9818c)}to{filter:drop-shadow(0 2px 4px #00000080)drop-shadow(0 0 8px #10b981f2)}}.arrow-marker{pointer-events:none;background:0 0!important;border:none!important}.route-arrow-container{filter:drop-shadow(0 1px 3px #0000004d);justify-content:center;align-items:center;display:flex}.route-arrow-container svg{display:block}@media (width<=968px){.route-detail-modal{padding:1rem}.route-detail-content{padding:1.5rem}.route-map-full{height:288px}.btn-map-fullscreen{min-height:28px;padding:.28rem .45rem;font-size:.72rem}.route-map-wrapper{--map-control-top:8px;--map-control-right:8px;--map-control-height:28px;--map-control-gap:8px}.weather-form-compact{gap:.3rem}input[type=datetime-local].form-input-compact{width:150px!important;max-width:150px!important}input[type=number].form-input-compact{width:48px!important}.form-input-compact{font-size:.72rem}.weather-table{font-size:.85rem}.weather-table th,.weather-table td{padding:.6rem .5rem}.weather-icon-cell{font-size:1.1rem}}@media (width<=640px){.route-detail-header h2{font-size:1.4rem}.route-stats{font-size:.8rem}.route-map-full{height:252px}.btn-map-fullscreen{min-height:24px;padding:.22rem .38rem;font-size:.66rem}.route-map-wrapper{--map-control-top:8px;--map-control-right:8px;--map-control-height:24px;--map-control-gap:8px}.weather-form-compact{gap:.25rem}.form-group-inline{gap:.2rem}.form-group-inline label{font-size:.75rem}.btn-hour-compact{min-width:22px;padding:.3rem .35rem;font-size:.7rem}.form-input-compact{padding:.3rem .35rem;font-size:.7rem}input[type=datetime-local].form-input-compact{width:140px!important;max-width:140px!important}input[type=number].form-input-compact{width:45px!important}.unit-label{font-size:.65rem}.btn-calculate-weather-compact{padding:.3rem .4rem;font-size:.9rem}.weather-table{font-size:.8rem}.weather-table th,.weather-table td{padding:.5rem .3rem}.weather-marker{width:65px!important;height:45px!important;margin-top:-22px!important;margin-left:-22px!important}.weather-marker-wind{width:65px;height:45px}.weather-wind-circle{width:22px;height:22px}.weather-wind-speed{width:22px;top:22px}.weather-wind-speed span{font-size:12px}.weather-info-box{gap:2px;top:0;left:26px}.weather-emoji{font-size:18px}.weather-temp{font-size:14px}}.leaflet-hover-marker path{filter:drop-shadow(0 0 4px #ef444499)}.elevation-chart-header{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:.5rem;margin-bottom:.5rem;display:flex}.elevation-chart-header h3{color:var(--text-primary);font-size:.9rem;margin:0!important}.wind-analysis-container{background:var(--bg-secondary);border:1px solid var(--border-default);border-radius:12px;margin-bottom:1.25rem;padding:1.25rem;box-shadow:0 4px 20px #0003}.wind-metric-label.headwind,.wind-metric-label.crosswind,.wind-metric-label.tailwind{color:var(--text-primary)}.wind-metric-val{color:var(--text-secondary);font-size:.75rem}@media (width<=768px){.wind-analysis-grid{grid-template-columns:1fr;gap:1.25rem}.wind-radar-wrapper{padding:.5rem}}.slope-analysis-details{background:#1e293b66;border:1px solid #ffffff0d;border-radius:8px;margin-top:1.25rem;padding:1rem}.slope-details-table th{color:var(--text-secondary);text-transform:uppercase;text-align:left;border-bottom:1px solid #ffffff14;padding:.4rem .5rem;font-size:.75rem}.slope-stat-card{background:#ffffff05;border:1px solid #ffffff0a;border-radius:6px;justify-content:space-between;align-items:center;padding:.65rem .85rem;display:flex}.stat-card-label{color:var(--text-secondary);font-size:.8rem}@media (width<=768px){.slope-details-grid{grid-template-columns:1fr;gap:1.25rem}.route-map-header{flex-direction:column;align-items:flex-start;gap:.5rem}.route-map-header .weather-form-compact{flex-wrap:wrap;justify-content:space-between;gap:.5rem;width:100%}}.dureza-rating-detail{color:#ffb800;vertical-align:middle;background:#ffb80012;border:1px solid #ffb80040;border-radius:6px;align-items:center;gap:.35rem;margin-left:.5rem;padding:.15rem .5rem;font-size:.75rem;font-weight:650;line-height:1.1;transition:all .2s;display:inline-flex}.dureza-rating-detail:hover{background:#ffb8001f;border-color:#ffb80066;transform:translateY(-1px)}.stars-container-detail{align-items:center;gap:1.5px;display:flex}.stars-container-detail .star-icon{font-size:.8rem}.stars-container-detail .star-icon.full{color:#ffb800;filter:drop-shadow(0 0 2px #ffb80066)}.stars-container-detail .star-icon.half{color:#ffb800;filter:drop-shadow(0 0 2px #ffb8004d)}.stars-container-detail .star-icon.empty{color:var(--text-muted);opacity:.4}.rating-badge-detail{color:#1a1a20;letter-spacing:.1px;background:#ffb800;border-radius:4px;margin-left:.25rem;padding:.05rem .3rem;font-size:.7rem;font-weight:800;line-height:1.1}.route-info-panel{background:var(--bg-elevated);border:1px solid var(--border-default);border-radius:12px;margin-bottom:.5rem;transition:border-color .3s;overflow:hidden;box-shadow:0 4px 20px #0003}.route-info-panel:hover{border-color:#fc4c024d}.info-panel-header{cursor:pointer;-webkit-user-select:none;user-select:none;border-bottom:1px solid var(--border-default);background:#ffffff05;justify-content:space-between;align-items:center;padding:.75rem 1.25rem;transition:background .2s;display:flex}.info-panel-header:hover{background:#ffffff0d}.panel-title-wrapper{align-items:center;gap:.6rem;display:flex}.panel-icon{font-size:1.1rem}.info-panel-header h4{color:var(--text-primary);letter-spacing:.3px;margin:0;font-size:.95rem;font-weight:700}.badge-count{color:#fc4c02;background:#fc4c0226;border:1px solid #fc4c024d;border-radius:50px;margin-left:auto;margin-right:1rem;padding:.15rem .6rem;font-size:.75rem;font-weight:700}.header-loading-indicator{background:#fc4c021a;border:1px solid #fc4c0240;border-radius:6px;align-items:center;gap:.4rem;margin-left:.75rem;padding:.15rem .5rem;display:flex}.spinner-compact-orange{border:2px solid #fc4c0233;border-top-color:#fc4c02;border-radius:50%;width:12px;height:12px;animation:.8s linear infinite spin;display:inline-block}.loading-text-mini{color:#fc4c02;letter-spacing:.2px;font-size:.75rem;font-weight:600}.segments-loading-block{background:#fc4c0205;border:1px dashed #fc4c0233;border-radius:8px;flex-direction:column;justify-content:center;align-items:center;gap:1rem;margin:1rem 0;padding:2.5rem 1rem;display:flex}.spinner-strava-large{border:3px solid #fc4c0226;border-top-color:#fc4c02;border-radius:50%;width:36px;height:36px;animation:1s cubic-bezier(.55,.15,.45,.85) infinite spin}.loading-message{color:var(--text-secondary);margin:0;font-size:.9rem;font-weight:500;animation:1.8s ease-in-out infinite pulse}@keyframes pulse{0%,to{transform:scale(1)}50%{transform:scale(1.1)}}.strava-segment-link{color:#fc4c02;background:#fc4c0214;border:1px solid #fc4c0240;border-radius:4px;align-items:center;gap:.25rem;margin-left:.5rem;padding:.15rem .45rem;font-size:.72rem;font-weight:700;text-decoration:none;transition:all .2s;display:inline-flex}.strava-segment-link:hover{color:#fff;background:#fc4c02;transform:translateY(-1px);box-shadow:0 0 8px #fc4c0266}.btn-panel-toggle{color:var(--text-secondary);cursor:pointer;background:0 0;border:none;justify-content:center;align-items:center;font-size:.9rem;display:flex}.info-panel-content{flex-direction:column;gap:1.25rem;padding:1.25rem;display:flex}.route-description-block{background:#ffffff04;border:1px solid #ffffff0a;border-radius:8px;padding:1rem}.route-description-block h5{color:var(--text-secondary);text-transform:uppercase;letter-spacing:.5px;margin:0 0 .5rem;font-size:.85rem;font-weight:700}.route-description-text{color:var(--text-primary);margin:0;font-size:.9rem;line-height:1.5}.climb-segments-section{flex-direction:column;gap:.75rem;display:flex}.climb-segments-section h5{color:var(--text-secondary);text-transform:uppercase;letter-spacing:.5px;margin:0;font-size:.85rem;font-weight:700}.no-segments-msg{color:var(--text-muted);border:1px dashed var(--border-default);background:#ffffff03;border-radius:6px;margin:0;padding:.75rem 1rem;font-size:.85rem;font-style:italic}.segments-table-wrapper{border:1px solid var(--border-default);background:var(--bg-secondary);border-radius:8px;overflow-x:auto}.segments-table{border-collapse:collapse;width:100%}.segments-table thead{border-bottom:2px solid var(--border-default);background:#0003}.segments-table th{text-align:left;color:var(--text-secondary);text-transform:uppercase;letter-spacing:.5px;padding:.75rem 1rem;font-size:.8rem;font-weight:600}.segments-table th.text-right{text-align:right}.segments-table th.text-center{text-align:center}.segment-row{border-bottom:1px solid var(--border-default);cursor:pointer;transition:all .2s cubic-bezier(.4,0,.2,1)}.segment-row:last-child{border-bottom:none}.segment-row:hover{background:#ffffff05}.segment-row.active-segment-row{border-left:4px solid #fc4c02;background:#fc4c020d!important}.segments-table td{color:var(--text-primary);vertical-align:middle;padding:.75rem 1rem;font-size:.9rem}.segments-table td.text-right{text-align:right}.segments-table td.text-center{text-align:center}.segments-table td.text-muted{color:var(--text-muted)}.segments-table td.text-orange{color:#fc4c02!important}.segment-name-cell{position:relative}.segment-name-container{align-items:center;gap:.5rem;width:100%;display:flex}.segment-indicator-dot{border-radius:50%;flex-shrink:0;width:8px;height:8px;display:inline-block;box-shadow:0 0 6px #fc4c02}.segment-name-display-wrapper{flex-grow:1;align-items:center;gap:.5rem;display:flex}.segment-name-text{color:var(--text-primary);font-size:.9rem;font-weight:600}.segment-status-badge{border:1px solid var(--border-default);color:var(--text-secondary);white-space:nowrap;background:#ffffff08;border-radius:20px;padding:.25rem .6rem;font-size:.75rem;font-weight:600;transition:all .2s;display:inline-block}.segment-row:hover .segment-status-badge{color:var(--text-primary);border-color:#fc4c024d}.segment-status-badge.active{transform:scale(1.03);box-shadow:0 2px 8px #fc4c024d;color:#fff!important;background:#fc4c02!important;border-color:#fc4c02!important}.header-right-buttons{align-items:center;gap:.75rem;display:flex}.btn-share-route{color:#60a5fa;cursor:pointer;background:linear-gradient(135deg,#3b82f61a 0%,#2563eb26 100%);border:1px solid #3b82f64d;border-radius:8px;align-items:center;gap:.5rem;padding:.4rem .85rem;font-size:.85rem;font-weight:600;transition:all .2s;display:flex;box-shadow:0 4px 12px #3b82f61a}.btn-share-route:hover:not(:disabled){background:linear-gradient(135deg,#3b82f633 0%,#2563eb40 100%);border-color:#60a5fa;transform:translateY(-1px);box-shadow:0 4px 16px #3b82f633;color:#fff!important}.btn-share-route:active:not(:disabled){transform:translateY(0)}.btn-share-route:disabled{opacity:.6;cursor:not-allowed}.share-toast-notification{z-index:9999;-webkit-backdrop-filter:blur(12px)saturate(180%);color:#f8fafc;background:#0f172ad9;border:1px solid #3b82f659;border-radius:50px;align-items:center;gap:.75rem;padding:.85rem 1.75rem;font-size:.9rem;font-weight:600;animation:.35s cubic-bezier(.16,1,.3,1) forwards toastSlideUp;display:flex;position:fixed;bottom:2rem;left:50%;transform:translate(-50%);box-shadow:0 10px 30px #00000080,0 0 20px #3b82f626}.share-toast-notification svg{color:#3b82f6;font-size:1.1rem}@keyframes toastSlideUp{0%{opacity:0;transform:translate(-50%,1.5rem)}to{opacity:1;transform:translate(-50%)}}.route-map-full .custom-maro-fountain-icon-wrapper{place-items:center;background:0 0!important;border:none!important;display:grid!important}.route-map-full .maro-fountain-pulse{pointer-events:none;background:#22c55e66;border-radius:50%;grid-area:1/1;width:32px;height:32px;animation:2s cubic-bezier(.215,.61,.355,1) infinite pulse-ring-detail}.route-map-full .maro-fountain-dot{background:#22c55e;border:1.5px solid #fff;border-radius:50%;grid-area:1/1;justify-content:center;align-items:center;width:22px;height:22px;display:flex;box-shadow:0 0 6px #22c55e99}.route-map-full .maro-fountain-icon-inner{font-size:.7rem;line-height:1}@keyframes pulse-ring-detail{0%{opacity:1;transform:scale(.5)}80%,to{opacity:0;transform:scale(1.6)}}.btn-analyze-route{color:#fff;cursor:pointer;white-space:nowrap;background:linear-gradient(135deg,#8b5cf6 0%,#6d28d9 100%);border:none;border-radius:8px;align-items:center;gap:.4rem;padding:.5rem 1.15rem;font-size:.85rem;font-weight:600;transition:all .3s;display:flex;box-shadow:0 4px 12px #8b5cf64d}.btn-analyze-route:hover:not(:disabled){background:linear-gradient(135deg,#a78bfa 0%,#7c3aed 100%);transform:translateY(-1.5px);box-shadow:0 6px 16px #8b5cf666}.btn-analyze-route:disabled{opacity:.6;cursor:not-allowed}.btn-analyze-route.loading{box-shadow:none;background:#4b5563}.analysis-loading{color:var(--text-secondary);flex-direction:column;justify-content:center;align-items:center;gap:1rem;padding:2rem 0;font-weight:500;display:flex}.analysis-spinner{border:3px solid #8b5cf61a;border-top-color:#8b5cf6;border-radius:50%;width:40px;height:40px;animation:1s linear infinite analysisSpin}.analysis-error{color:#ef4444;text-align:center;background:#ef44441a;border:1px solid #ef444433;border-radius:10px;padding:1rem;font-weight:500}.analysis-content-card{background:#8b5cf608;border:1px solid #8b5cf626;border-radius:10px;padding:1.25rem;box-shadow:inset 0 2px 4px #0000001a}.analysis-text-formatted{color:var(--text-primary);font-size:.95rem;font-weight:400;line-height:1.65}.analysis-text-formatted p{margin:0 0 .85rem}.analysis-text-formatted p:last-child{margin-bottom:0}.analysis-text-formatted h2,.analysis-text-formatted h3,.analysis-text-formatted h4{color:var(--text-primary);margin:1.25rem 0 .5rem;font-weight:700}.analysis-text-formatted h2{font-size:1.35rem}.analysis-text-formatted h3{font-size:1.2rem}.analysis-text-formatted h4{color:var(--accent-primary);font-size:1.05rem}.analysis-text-formatted li{color:var(--text-primary);margin-bottom:.5rem;margin-left:1.25rem;line-height:1.5;list-style-position:outside}.analysis-text-formatted li.analysis-li{list-style-type:disc}.analysis-text-formatted li.analysis-li-numbered{list-style-type:decimal}.analysis-text-formatted li:last-child{margin-bottom:0}.analysis-text-formatted strong{color:#fff;font-weight:700}.analysis-text-formatted em{color:var(--text-secondary);font-style:italic}.analysis-spacer{height:.5rem}.route-creator-container{background:var(--bg-darker,#060913);border:1px solid #ffffff0d;border-radius:20px;width:100%;height:calc(100vh - 85px);min-height:600px;margin-top:0;position:relative;overflow:hidden;box-shadow:0 12px 40px #00000080}:-webkit-any(.route-creator-container:fullscreen,.route-creator-container.is-fullscreen,.route-creator-container:-webkit-full-screen){border-radius:0;width:100vw;height:100vh;margin-top:0}:is(.route-creator-container:fullscreen,.route-creator-container.is-fullscreen,.route-creator-container:fullscreen){border-radius:0;width:100vw;height:100vh;margin-top:0}.route-creator-map{z-index:1;width:100%;height:100%}.route-creator-map.routing-cursor{cursor:wait!important}.route-creator-map .leaflet-grab{cursor:crosshair}.route-creator-map .leaflet-bar{overflow:hidden;border:1px solid #ffffff14!important;border-radius:8px!important;box-shadow:0 8px 32px #0006!important}.route-creator-map .leaflet-bar a{-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);transition:all .2s;color:#f3f4f6!important;background-color:#0f162ad9!important;border-bottom:1px solid #ffffff14!important}.route-creator-map .leaflet-bar a:hover{color:#fff!important;background-color:#fc4c02!important}.glass-card{-webkit-backdrop-filter:blur(14px);color:#f3f4f6;background:#0f172ad1;border:1px solid #ffffff14;box-shadow:0 8px 32px #00000073}.route-creator-header{z-index:1000;pointer-events:auto;border-radius:14px;justify-content:space-between;align-items:center;padding:10px 18px;display:flex;position:absolute;top:10px;left:10px;right:10px}.header-info{align-items:center;gap:16px;display:flex}.header-icon{color:#fc4c02;filter:drop-shadow(0 0 8px #fc4c0266);font-size:24px}.header-info h3{letter-spacing:-.02em;color:#fff;margin:0;font-size:1.15rem;font-weight:700}.header-info p{color:#9ca3af;margin:2px 0 0;font-size:.85rem}.btn-close-creator{color:#9ca3af;cursor:pointer;background:#ffffff0d;border:1px solid #ffffff14;border-radius:50%;justify-content:center;align-items:center;width:36px;height:36px;transition:all .2s cubic-bezier(.4,0,.2,1);display:flex}.btn-close-creator:hover{color:#f87171;background:#ef444433;border-color:#ef444466;transform:rotate(90deg)}.btn-my-location{color:#3b82f6;cursor:pointer;z-index:1000;pointer-events:auto;border-radius:50%;justify-content:center;align-items:center;width:44px;height:44px;font-size:18px;transition:all .2s;display:flex;position:absolute;bottom:10px;right:10px}.btn-route-creator-fullscreen{color:#e5e7eb;cursor:pointer;z-index:1000;pointer-events:auto;border-radius:10px;justify-content:center;align-items:center;width:42px;height:42px;font-size:16px;transition:all .2s;display:flex;position:absolute;top:74px;right:12px}.btn-route-creator-fullscreen:hover{color:#fff;background:#fc4c0233;border-color:#fc4c0273}.btn-my-location:hover:not(:disabled){color:#60a5fa;background:#3b82f633;border-color:#3b82f666;transform:scale(1.08)}.btn-my-location:disabled{opacity:.5;cursor:not-allowed}.route-creator-controls{z-index:1000;pointer-events:auto;border-radius:16px;flex-direction:column;gap:16px;width:320px;max-height:calc(100% - 90px);padding:16px;display:flex;position:absolute;top:75px;left:10px;overflow-y:auto}.control-stats{background:#ffffff08;border:1px solid #ffffff08;border-radius:10px;grid-template-columns:1fr 1fr;gap:12px;padding:12px;display:grid}.stat-box{text-align:center;flex-direction:column;align-items:center;display:flex}.stat-label{text-transform:uppercase;letter-spacing:.05em;color:#9ca3af;font-size:.72rem}.stat-value{color:#fff;margin-top:4px;font-size:1.25rem;font-weight:800}.stat-value small{color:#9ca3af;font-size:.8rem;font-weight:500}.control-section{flex-direction:column;gap:8px;display:flex}.section-title{color:#9ca3af;text-transform:uppercase;letter-spacing:.02em;font-size:.8rem;font-weight:600}.btn-toggle-group{background:#00000040;border:1px solid #ffffff0d;border-radius:10px;padding:3px;display:flex}.toggle-btn{color:#9ca3af;cursor:pointer;background:0 0;border:none;border-radius:8px;flex:1;justify-content:center;align-items:center;gap:6px;padding:8px 12px;font-size:.82rem;font-weight:600;transition:all .2s cubic-bezier(.4,0,.2,1);display:flex}.toggle-btn:hover{color:#fff;background:#ffffff0a}.toggle-btn.active{color:#fff;background:#fc4c02;box-shadow:0 4px 12px #fc4c0259}.activity-group .toggle-btn.active{background:#3b82f6;box-shadow:0 4px 12px #3b82f659}.control-actions{flex-direction:column;gap:10px;margin-top:6px;display:flex}.action-btn{cursor:pointer;border-radius:10px;justify-content:center;align-items:center;gap:8px;width:100%;padding:10px 16px;font-size:.88rem;font-weight:600;transition:all .2s;display:flex}.btn-undo{color:#e5e7eb;background:#ffffff0d;border:1px solid #ffffff14}.btn-undo:hover:not(:disabled){color:#fff;background:#ffffff1a}.btn-clear{color:#f87171;background:#ef444414;border:1px solid #ef444426}.btn-clear:hover:not(:disabled){color:#ef4444;background:#ef44442e;border-color:#ef44444d}.btn-save-trigger{color:#fff;background:linear-gradient(135deg,#fc4c02 0%,#ff6b35 100%);border:none;box-shadow:0 4px 15px #fc4c024d}.btn-save-trigger:hover:not(:disabled){transform:translateY(-1px);box-shadow:0 6px 20px #fc4c0273}.btn-save-trigger:active:not(:disabled){transform:translateY(0)}.action-btn:disabled{opacity:.4;cursor:not-allowed;box-shadow:none!important;transform:none!important}.creator-help{background:#fc4c020a;border:1px dashed #fc4c022e;border-radius:10px;padding:12px}.help-text{color:#d1d5db;margin:0;font-size:.76rem;line-height:1.4}.help-text.active{color:#fff}.help-text strong{color:#fc4c02}.map-loader-overlay{-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);z-index:1000;color:#fff;pointer-events:none;background:#0f172ae6;border:1px solid #ffffff1a;border-radius:12px;align-items:center;gap:14px;padding:16px 28px;font-size:.9rem;font-weight:600;display:flex;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);box-shadow:0 10px 30px #00000080}.spinning-loader{color:#fc4c02;font-size:20px;animation:1s linear infinite spin}.spinning{animation:1s linear infinite spin}.custom-leaflet-marker{background:0 0!important;border:none!important}.marker-start{background:#10b981;border:3px solid #fff;border-radius:50%;width:20px;height:20px;position:relative;box-shadow:0 0 8px #10b981cc}.marker-pulse{pointer-events:none;border:3px solid #10b98199;border-radius:50%;width:26px;height:26px;animation:1.6s ease-out infinite pulse;position:absolute;top:-6px;left:-6px}.marker-end{background:#ef4444;border:2px solid #fff;border-radius:50%;justify-content:center;align-items:center;width:26px;height:26px;display:flex;position:relative;box-shadow:0 0 10px #ef4444cc}.marker-flag{margin-top:-1px;font-size:13px}.marker-waypoint{background:#fc4c02;border:2px solid #fff;border-radius:50%;width:12px;height:12px;transition:transform .2s;box-shadow:0 0 6px #fc4c02cc}.marker-waypoint:hover{transform:scale(1.3)}.save-route-modal-backdrop{-webkit-backdrop-filter:blur(8px);z-index:9999;background:#030712bf;justify-content:center;align-items:center;padding:20px;display:flex;position:fixed;inset:0}.save-route-modal{border-radius:18px;flex-direction:column;gap:22px;width:100%;max-width:520px;padding:30px;display:flex}.animate-scale-up{animation:.3s cubic-bezier(.34,1.56,.64,1) scaleUp}@keyframes scaleUp{0%{opacity:0;transform:scale(.9)}to{opacity:1;transform:scale(1)}}.modal-header{border-bottom:1px solid #ffffff14;justify-content:space-between;align-items:center;padding-bottom:14px;display:flex}.modal-header h3{color:#fff;align-items:center;gap:10px;margin:0;font-size:1.3rem;font-weight:700;display:flex}.btn-close-modal{color:#9ca3af;cursor:pointer;background:0 0;border:none;font-size:20px;transition:color .2s}.btn-close-modal:hover{color:#fff}.form-group{flex-direction:column;gap:8px;margin-bottom:16px;display:flex}.form-group input,.form-group textarea{color:#fff;background:#0000004d;border:1px solid #ffffff1a;border-radius:10px;outline:none;width:100%;padding:12px 16px;font-size:.92rem;transition:all .2s}.form-group input:focus,.form-group textarea:focus{background:#00000073;border-color:#fc4c02;box-shadow:0 0 0 2px #fc4c0233}.form-group textarea{resize:vertical}.modal-error-alert{color:#f87171;background:#ef44441a;border:1px solid #ef444440;border-radius:10px;margin-bottom:8px;padding:12px 16px;font-size:.88rem}.modal-route-summary{background:#ffffff05;border:1px solid #ffffff0d;border-radius:12px;padding:16px}.modal-route-summary h4{color:#fff;margin:0 0 12px;font-size:.9rem;font-weight:700}.summary-grid{grid-template-columns:1fr 1fr 1fr;gap:12px;margin-bottom:12px;display:grid}.summary-item{text-align:center;background:#0003;border:1px solid #ffffff05;border-radius:8px;flex-direction:column;padding:10px;display:flex}.summary-item .item-label{color:#9ca3af;text-transform:uppercase;font-size:.72rem}.summary-item .item-value{color:#fff;margin-top:4px;font-size:1rem;font-weight:700}.summary-note{color:#9ca3af;margin:0;font-size:.74rem;line-height:1.35}.modal-footer-actions{border-top:1px solid #ffffff14;justify-content:flex-end;gap:12px;padding-top:18px;display:flex}.modal-btn-cancel{color:#e5e7eb;cursor:pointer;background:#ffffff0a;border:1px solid #ffffff14;border-radius:10px;padding:10px 20px;font-size:.9rem;font-weight:600;transition:all .2s}.modal-btn-cancel:hover:not(:disabled){color:#fff;background:#ffffff1a}.modal-btn-save{color:#fff;cursor:pointer;background:#fc4c02;border:none;border-radius:10px;align-items:center;gap:8px;padding:10px 24px;font-size:.9rem;font-weight:700;transition:all .2s;display:flex;box-shadow:0 4px 15px #fc4c024d}.modal-btn-save:hover:not(:disabled){background:#ff6b35;transform:translateY(-1px);box-shadow:0 6px 20px #fc4c0273}.modal-btn-save:disabled{opacity:.5;cursor:not-allowed;box-shadow:none!important;transform:none!important}@media (width<=768px){.route-creator-container{height:calc(100vh - 100px)}.route-creator-header{padding:10px 16px;top:10px;left:10px;right:10px}.header-info h3{font-size:.95rem}.header-info p{font-size:.78rem}.route-creator-controls{width:auto;max-height:40%;padding:14px;inset:auto 10px 20px}.btn-my-location{bottom:45%;right:15px}}.speed-input{color:#fff;background:#00000059;border:1px solid #ffffff1a;border-radius:8px;outline:none;width:100%;padding:10px 14px;font-size:.88rem;transition:all .2s}.speed-input:focus{background:#00000073;border-color:#3b82f6;box-shadow:0 0 0 2px #3b82f633}.route-creator-altimetry{z-index:1000;pointer-events:auto;border-radius:16px;flex-direction:column;gap:8px;height:175px;padding:12px 18px;display:flex;position:absolute;bottom:10px;left:340px;right:70px}.altimetry-header{border-bottom:1px solid #ffffff0d;align-items:center;gap:8px;padding-bottom:6px;display:flex}.altimetry-icon{color:#fc4c02;font-size:14px}.altimetry-header h4{color:#fff;margin:0;font-size:.82rem;font-weight:700}.altimetry-body{flex:1;justify-content:center;align-items:center;width:100%;display:flex;position:relative;overflow:hidden}.elevation-chart-empty{text-align:center;color:#9ca3af;flex-direction:column;justify-content:center;align-items:center;gap:8px;padding:10px;display:flex}.elevation-chart-empty .empty-icon{opacity:.25;color:#fff;font-size:26px;animation:3s ease-in-out infinite pulse-slow}.elevation-chart-empty p{opacity:.7;max-width:420px;margin:0;font-size:.74rem;line-height:1.4}@keyframes pulse-slow{0%{opacity:.25;transform:scale(1)}50%{opacity:.45;transform:scale(1.08)}to{opacity:.25;transform:scale(1)}}.altimetry-chart-wrapper{flex-direction:column;gap:6px;width:100%;height:100%;display:flex}.chart-stats-mini{color:#9ca3af;flex-wrap:wrap;gap:14px;font-size:.74rem;display:flex}.chart-stats-mini strong{color:#fff}.chart-stats-mini .accent strong{color:#10b981}.chart-stats-mini .accent-loss strong{color:#ef4444}.altimetry-chart-wrapper svg{flex:1;overflow:visible}@media (width<=768px){.route-creator-altimetry{display:none}.route-creator-controls{width:auto;max-height:35%;left:10px;right:10px}}.water-fountains-container{flex-direction:column;gap:1.5rem;width:100%;display:flex}.water-fountains-header{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:1rem;display:flex}.water-fountains-header h3{color:var(--text-primary);margin-bottom:.25rem;font-size:1.5rem;font-weight:700}.water-fountains-header p{color:var(--text-muted);font-size:.9rem}.btn-locate-user{border:1px solid var(--border-default);background:var(--bg-secondary);color:var(--text-primary);cursor:pointer;border-radius:8px;align-items:center;gap:.5rem;padding:.5rem 1rem;font-size:.85rem;font-weight:600;transition:all .2s;display:flex}.btn-locate-user:hover{background:var(--bg-elevated);border-color:var(--accent-primary)}.btn-locate-user:disabled{opacity:.6;cursor:not-allowed}.pulse-anim{animation:1.5s ease-in-out infinite location-pulse}@keyframes location-pulse{0%{opacity:.7;transform:scale(1)}50%{opacity:1;transform:scale(1.2)}to{opacity:.7;transform:scale(1)}}.fountain-alert{border-radius:8px;padding:.75rem 1rem;font-size:.875rem}.fountain-map-wrapper{border:1px solid var(--border-default);border-radius:16px;width:100%;position:relative;overflow:hidden;box-shadow:0 10px 30px #0000001f}.fountain-leaflet-map{z-index:1;width:100%;height:600px}.map-glass-overlay{z-index:1000;-webkit-backdrop-filter:blur(12px);color:#fff;pointer-events:auto;background:#1e1e28bf;border:1px solid #ffffff14;border-radius:12px;padding:.75rem 1rem;font-size:.85rem;transition:all .3s;position:absolute;box-shadow:0 8px 32px #0000004d}:global(.theme-light) .map-glass-overlay{color:#1f2937;background:#fffc;border:1px solid #00000014;box-shadow:0 8px 32px #0000001a}.zoom-alert{border-left:4px solid #f59e0b;align-items:center;gap:.6rem;display:flex;top:1rem;left:50%;transform:translate(-50%)}.osm-loader{align-items:center;gap:.6rem;display:flex;top:1rem;right:1rem}.map-legend{flex-direction:column;gap:.5rem;min-width:200px;display:flex;bottom:1rem;left:1rem}.legend-title{text-transform:uppercase;letter-spacing:.5px;color:#ffffff80;border-bottom:1px solid #ffffff1a;margin-bottom:.25rem;padding-bottom:.25rem;font-size:.75rem;font-weight:700}:global(.theme-light) .legend-title{color:#00000080;border-bottom:1px solid #00000014}.legend-color-dot{justify-content:center;align-items:center;width:18px;height:18px;font-size:.75rem;display:flex}.maro-dot{color:#fff;background:#22c55e;border:1.5px solid #fff;border-radius:50%;font-size:.6rem!important}.osm-dot{background:#3b82f6;border:1.5px solid #fff;border-radius:50%}.legend-tip{color:#22c55e;align-items:center;gap:.3rem;margin-top:.35rem;font-size:.75rem;font-weight:600;display:flex}.fountain-map-wrapper .custom-maro-fountain-icon-wrapper{place-items:center;background:0 0!important;border:none!important;display:grid!important}.fountain-map-wrapper .maro-fountain-pulse{pointer-events:none;background:#22c55e66;border-radius:50%;grid-area:1/1;width:32px;height:32px;animation:2s cubic-bezier(.215,.61,.355,1) infinite pulse-ring}.fountain-map-wrapper .maro-fountain-dot{background:#22c55e;border:2px solid #fff;border-radius:50%;grid-area:1/1;justify-content:center;align-items:center;width:22px;height:22px;transition:all .2s ease-in-out;display:flex;box-shadow:0 0 8px #22c55e99}.fountain-map-wrapper .maro-fountain-dot:hover{background:#16a34a;transform:scale(1.15)}.fountain-map-wrapper .maro-fountain-icon-inner{font-size:.7rem;line-height:1}@keyframes pulse-ring{0%{opacity:1;transform:scale(.5)}80%,to{opacity:0;transform:scale(1.6)}}.temp-maro-fountain-icon-wrapper{justify-content:center;align-items:flex-end;display:flex;background:0 0!important;border:none!important}.temp-fountain-pin{margin-bottom:-2px;font-size:1.75rem;line-height:1;animation:1s infinite alternate temp-bounce}@keyframes temp-bounce{0%{transform:translateY(0)}to{transform:translateY(-5px)}}.leaflet-popup-content-wrapper{border:1px solid var(--border-default);border-radius:12px;padding:.25rem;box-shadow:0 10px 25px #0003;background:var(--bg-secondary)!important;color:var(--text-primary)!important}.leaflet-popup-tip{border:1px solid var(--border-default);background:var(--bg-secondary)!important}.maro-fountain-popup{color:var(--text-primary);flex-direction:column;gap:.4rem;padding:.25rem;display:flex}.maro-fountain-popup h3{color:var(--accent-primary);margin:0;font-size:.95rem;font-weight:700}.maro-fountain-popup p.fountain-desc{color:var(--text-secondary);margin:0;font-size:.82rem;line-height:1.3}.maro-fountain-popup .fountain-meta{color:var(--text-muted);border-top:1px solid var(--border-default);flex-direction:column;gap:.15rem;margin-top:.2rem;padding-top:.4rem;font-size:.72rem;display:flex}.btn-delete-fountain{color:#ef4444;cursor:pointer;background:0 0;border:none;border-radius:4px;align-self:flex-end;align-items:center;gap:.25rem;margin-top:.25rem;padding:.25rem .5rem;font-size:.75rem;font-weight:600;transition:background .2s;display:flex}.btn-delete-fountain:hover{background:#ef444414}.osm-fountain-popup h4{color:var(--text-primary);margin:0 0 .25rem;font-size:.875rem;font-weight:700}.osm-fountain-popup p{margin:0;font-size:.75rem}.osm-fountain-popup .osm-tag-info{color:var(--text-muted);margin-bottom:.25rem}.osm-fountain-popup .osm-tags{color:var(--accent-primary);font-weight:600}.fountain-creation-form h3{color:var(--text-primary);margin:0 0 .25rem;font-size:.9rem;font-weight:700}.fountain-creation-form input::placeholder,.fountain-creation-form textarea::placeholder{color:var(--text-muted);opacity:.8}.fountain-creation-form input:focus,.fountain-creation-form textarea:focus{border-color:var(--accent-primary);outline:none;box-shadow:0 0 0 2px #2563eb26}.map-custom-controls{z-index:1001;flex-direction:column;gap:6px;display:flex;position:absolute;top:10px;right:10px}.map-control-btn{border:1px solid var(--border-default);background:var(--bg-secondary);width:34px;height:34px;color:var(--text-primary);cursor:pointer;border-radius:8px;justify-content:center;align-items:center;padding:0;font-size:1rem;transition:all .2s;display:flex;box-shadow:0 4px 10px #00000026}.map-control-btn:hover{background:var(--bg-hover);color:var(--accent-primary);transform:translateY(-1px)}.map-control-btn:active{transform:translateY(0)}.map-control-btn:disabled{opacity:.6;cursor:not-allowed}.map-control-btn .pulse-anim{animation:1.5s infinite alternate pulse-icon}@keyframes pulse-icon{0%{opacity:.5}to{opacity:1}}.fountain-map-wrapper.fullscreen-mode{z-index:9999!important;border-radius:0!important;width:100vw!important;height:100vh!important;position:fixed!important;top:0!important;left:0!important}.fountain-map-wrapper.fullscreen-mode .fountain-leaflet-map{height:100vh!important}.fountain-map-wrapper:fullscreen{border-radius:0!important;width:100vw!important;height:100vh!important}.fountain-map-wrapper:fullscreen .fountain-leaflet-map{height:100vh!important}.routes-list{max-width:1400px;margin:0 auto;padding:2rem}.routes-header{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:1rem;margin-bottom:2rem;display:flex}.header-left h2{color:var(--text-primary);align-items:center;gap:.75rem;margin:0 0 .5rem;font-size:1.8rem;display:flex}.header-left h2 svg{color:var(--accent-primary)}.routes-count{color:var(--text-secondary);margin:0;font-size:.95rem}.btn-sync-routes{background:var(--accent-primary);color:#fff;cursor:pointer;border:none;border-radius:8px;align-items:center;gap:.5rem;padding:.75rem 1.5rem;font-size:.95rem;font-weight:600;transition:all .3s;display:flex;box-shadow:0 2px 8px #2563eb4d}.btn-sync-routes:hover:not(:disabled){background:#1d4ed8;transform:translateY(-2px);box-shadow:0 4px 12px #2563eb66}.btn-sync-routes:disabled{opacity:.6;cursor:not-allowed;transform:none}.btn-sync-routes svg.spinning{animation:1s linear infinite spin}.btn-create-route{color:#fff;cursor:pointer;background:linear-gradient(135deg,#10b981 0%,#059669 100%);border:none;border-radius:8px;align-items:center;gap:.5rem;padding:.75rem 1.5rem;font-size:.95rem;font-weight:600;transition:all .3s;display:flex;box-shadow:0 2px 8px #10b9814d}.btn-create-route:hover{background:linear-gradient(135deg,#059669 0%,#047857 100%);transform:translateY(-2px);box-shadow:0 4px 12px #10b98166}.btn-create-route:active{transform:translateY(0)}.loading-routes{text-align:center;color:var(--text-secondary);padding:4rem 2rem;font-size:1.1rem}.error-message{color:#ef4444;background:#ef44441a;border:1px solid #ef44444d;border-radius:8px;margin-bottom:1.5rem;padding:1rem 1.5rem}.warning-message{color:#f59e0b;text-align:center;background:#f59e0b1a;border:1px solid #f59e0b4d;border-radius:8px;margin-bottom:1.5rem;padding:1rem 1.5rem}.empty-routes{text-align:center;padding:4rem 2rem}.empty-icon{color:var(--text-muted);opacity:.5;margin-bottom:1rem;font-size:4rem}.empty-routes p{color:var(--text-secondary);margin:.5rem 0;font-size:1.1rem}.empty-hint{color:var(--text-muted);font-size:.9rem}.routes-table-container{background:var(--bg-secondary);border:1px solid var(--border-default);border-radius:12px;overflow:hidden}.routes-table{border-collapse:collapse;width:100%}.routes-table thead{background:var(--bg-elevated);border-bottom:2px solid var(--border-default)}.routes-table th{text-align:left;color:var(--text-secondary);text-transform:uppercase;letter-spacing:.5px;padding:1rem 1.5rem;font-size:.85rem;font-weight:600}.routes-table tbody tr{border-bottom:1px solid var(--border-default);transition:all .2s}.routes-table tbody tr.route-row-clickable{cursor:pointer}.routes-table tbody tr.route-row-clickable:hover{background:var(--bg-elevated);transform:scale(1.01)}.routes-table tbody tr:last-child{border-bottom:none}.routes-table td{color:var(--text-primary);padding:1.25rem 1.5rem}.route-type-cell{width:60px}.route-type-icon{color:var(--accent-primary);justify-content:center;align-items:center;font-size:1.5rem;display:flex}.route-name-cell{min-width:300px}.route-name{color:var(--text-primary);margin-bottom:.25rem;font-weight:600}.route-description{color:var(--text-muted);max-width:500px;font-size:.85rem;line-height:1.4}.route-distance,.route-elevation{color:var(--text-secondary);white-space:nowrap;font-weight:500}.metric-icon{color:var(--text-muted);vertical-align:middle;margin-right:.5rem;font-size:.9rem}.route-map-cell{width:200px;padding:.5rem}.route-minimap{border:1px solid var(--border-default);z-index:1;border-radius:8px;width:180px;height:120px;overflow:hidden}.route-map-placeholder{background:var(--bg-elevated);border:1px solid var(--border-default);width:180px;height:120px;color:var(--text-muted);border-radius:8px;justify-content:center;align-items:center;font-size:.85rem;display:flex}@media (width<=768px){.routes-list{padding:1rem}.routes-header{flex-direction:column;align-items:flex-start}.header-actions{flex-direction:column;gap:.75rem;width:100%;display:flex}.btn-create-route,.btn-sync-routes{justify-content:center;width:100%}.routes-table-container{overflow-x:auto}.routes-table{min-width:600px}.route-name-cell{min-width:200px}.route-map-cell{width:100%}.route-minimap,.route-map-placeholder{width:100%;max-width:300px;margin:0 auto}}.search-bar{margin-bottom:1.5rem;position:relative}.search-icon{color:var(--text-muted);pointer-events:none;font-size:1rem;position:absolute;top:50%;left:1.25rem;transform:translateY(-50%)}.search-input{border:1px solid var(--border-default);background:var(--bg-secondary);width:100%;color:var(--text-primary);border-radius:10px;padding:.875rem 1.25rem .875rem 3rem;font-size:.95rem;transition:all .2s}.search-input:focus{border-color:var(--accent-primary);outline:none;box-shadow:0 0 0 3px #2563eb1a}.btn-clear-search{background:var(--accent-primary);color:#fff;cursor:pointer;border:none;border-radius:8px;margin-top:1rem;padding:.75rem 1.5rem;font-size:.9rem;font-weight:600;transition:all .3s}.btn-clear-search:hover{background:#1d4ed8;transform:translateY(-2px)}.pagination-controls{flex-wrap:wrap;justify-content:center;align-items:center;gap:.5rem;padding:1.5rem 1rem;display:flex}.pagination-btn{border:1px solid var(--border-default);background:var(--bg-secondary);min-width:40px;height:40px;color:var(--text-primary);cursor:pointer;border-radius:8px;padding:.5rem .875rem;font-size:.9rem;font-weight:500;transition:all .2s}.pagination-btn:hover:not(:disabled){background:var(--accent-primary);color:#fff;border-color:var(--accent-primary);transform:translateY(-2px)}.pagination-btn.active{background:var(--accent-primary);color:#fff;border-color:var(--accent-primary);font-weight:700}.pagination-btn:disabled{opacity:.4;cursor:not-allowed;transform:none}.pagination-dots{color:var(--text-muted);-webkit-user-select:none;user-select:none;padding:0 .5rem}@media (width<=768px){.pagination-controls{gap:.3rem;padding:1rem .5rem}.pagination-btn{min-width:35px;height:35px;padding:.375rem .625rem;font-size:.85rem}}.route-detail-container{flex-direction:column;width:100%;height:100%;display:flex}.route-detail-header{background:var(--bg-secondary);border-bottom:1px solid var(--border-default);padding:.5rem 1rem}.btn-back-to-routes{background:var(--bg-elevated);border:1px solid var(--border-default);color:var(--text-primary);cursor:pointer;border-radius:4px;align-items:center;gap:.3rem;margin-bottom:.5rem;padding:.35rem .75rem;font-size:.8rem;font-weight:600;transition:all .3s;display:flex}.btn-back-to-routes:hover{background:var(--accent-primary);color:#fff;border-color:var(--accent-primary);transform:translate(-4px)}.btn-back-to-routes svg{font-size:.85rem;transition:transform .3s}.btn-back-to-routes:hover svg{transform:translate(-2px)}.route-name-header-row{flex-wrap:wrap;align-items:center;gap:.75rem;display:flex}.dureza-rating{color:#ffb800;background:#ffb80012;border:1px solid #ffb80033;border-radius:6px;align-items:center;gap:.4rem;padding:.15rem .5rem;font-size:.8rem;font-weight:600;transition:all .2s;display:inline-flex}.dureza-rating:hover{background:#ffb8001f;border-color:#ffb80059;transform:translateY(-1px)}.stars-container{align-items:center;gap:1px;display:flex}.star-icon{font-size:.85rem}.star-icon.full{color:#ffb800;filter:drop-shadow(0 0 2px #ffb80066)}.star-icon.half{color:#ffb800;filter:drop-shadow(0 0 2px #ffb8004d)}.star-icon.empty{color:var(--text-muted);opacity:.4}.rating-badge{color:#1a1a20;letter-spacing:.1px;background:#ffb800;border-radius:4px;padding:.05rem .3rem;font-size:.72rem;font-weight:800;line-height:1.2}.sortable-header{cursor:pointer;-webkit-user-select:none;user-select:none;transition:background-color .2s,color .2s}.sortable-header:hover{color:var(--text-primary)!important;background-color:#2563eb14!important}.sort-icon-placeholder{opacity:.35;vertical-align:middle;margin-left:.4rem;font-size:.75rem;transition:opacity .2s}.sortable-header:hover .sort-icon-placeholder{opacity:.8}.sort-icon-active{color:var(--accent-primary);vertical-align:middle;opacity:1;margin-left:.4rem;font-size:.85rem}.routes-tabs-navigation{background:var(--bg-secondary);border:1px solid var(--border-default);border-radius:12px;gap:.5rem;width:max-content;margin-bottom:2rem;padding:.35rem;display:flex}.routes-tab-btn{color:var(--text-secondary);cursor:pointer;background:0 0;border:none;border-radius:8px;align-items:center;gap:.5rem;padding:.6rem 1.2rem;font-size:.9rem;font-weight:600;transition:all .25s cubic-bezier(.4,0,.2,1);display:flex}.routes-tab-btn:hover{color:var(--text-primary);background:#ffffff0d}.routes-tab-btn.active{color:#fff;background:var(--accent-primary);box-shadow:0 4px 12px #2563eb33}.weather-forecast{color:#e2e8f0;background:linear-gradient(135deg,#0f172a 0%,#1e293b 50%,#0f172a 100%);border-radius:16px;padding:1.5rem;box-shadow:0 20px 60px #00000080}.weather-header{border-bottom:2px solid #334155;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:1.5rem;margin-bottom:2rem;padding-bottom:1rem;display:flex}.location-info{align-items:center;gap:.75rem;display:flex}.location-info h2{background:linear-gradient(135deg,#60a5fa,#3b82f6);-webkit-text-fill-color:transparent;-webkit-background-clip:text;background-clip:text;margin:0;font-size:1.5rem;font-weight:600}.current-weather{background:linear-gradient(135deg,#1e293b,#334155);border:1px solid #3b82f6;border-radius:12px;align-items:center;gap:1rem;padding:.75rem 1.5rem;display:flex;box-shadow:0 4px 12px #3b82f633}.current-icon{filter:drop-shadow(0 2px 8px #3b82f666);align-items:center;font-size:3rem;display:flex}.current-details{flex-direction:column;gap:.25rem;display:flex}.current-temp{align-items:baseline;gap:.75rem;display:flex}.temp-value{color:#fbbf24;font-size:2.5rem;font-weight:700;line-height:1}.temp-feels{color:#94a3b8;font-size:.9rem}.current-wind{color:#60a5fa;font-size:.9rem;font-weight:500}.weather-icon{filter:drop-shadow(0 2px 8px #3b82f680);font-size:2rem}.btn-refresh{cursor:pointer;color:#60a5fa;background:#3b82f633;border:1px solid #3b82f6;border-radius:8px;padding:.5rem 1rem;font-size:1.1rem;transition:all .3s}.btn-refresh:hover{background:#3b82f64d;transform:rotate(180deg);box-shadow:0 0 20px #3b82f666}.forecast-header{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:1rem;margin-bottom:1.5rem;display:flex}.forecast-header h3{color:#f0f9ff;margin:0;font-size:1.3rem;font-weight:600}.btn-toggle-chart{cursor:pointer;color:#fff;background:linear-gradient(135deg,#3b82f6,#2563eb);border:none;border-radius:8px;align-items:center;gap:.5rem;padding:.6rem 1.2rem;font-size:.9rem;font-weight:600;transition:all .3s;display:flex;box-shadow:0 4px 12px #3b82f64d}.btn-toggle-chart:hover{background:linear-gradient(135deg,#2563eb,#1d4ed8);transform:translateY(-2px);box-shadow:0 6px 20px #3b82f680}.chart-container{-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);box-sizing:border-box;background:#1e293b80;border:1px solid #334155;border-radius:12px;flex-direction:column;gap:2rem;width:100%;margin-bottom:1.5rem;padding:1.5rem;display:flex}.chart-wrapper{width:100%;height:300px;position:relative}.chart-wrapper:last-child{margin-bottom:0}.chart-wrapper h4{color:#cbd5e1;margin-bottom:1rem;font-size:1rem;font-weight:500}.custom-tooltip{background:#0f172af2;border:1px solid #475569;border-radius:8px;padding:.75rem;box-shadow:0 4px 12px #00000080}.tooltip-label{color:#f1f5f9;border-bottom:1px solid #334155;margin-bottom:.5rem;padding-bottom:.25rem;font-weight:600}.custom-tooltip p{margin:.25rem 0;font-size:.85rem}.hourly-forecast{margin-bottom:2rem}.hourly-table-container{background:#1e293b80;border:1px solid #334155;border-radius:12px;margin:1rem 0;overflow-x:auto}.hourly-table{border-collapse:collapse;width:100%;font-size:.9rem}.hourly-table thead{z-index:10;background:#334155cc;position:sticky;top:0}.hourly-table th{text-align:center;color:#60a5fa;white-space:nowrap;border-bottom:2px solid #475569;padding:.75rem .5rem;font-weight:600}.metric-header{text-align:left;z-index:11;background:#334155f2;min-width:140px;position:sticky;left:0;padding-left:1rem!important}.hour-header{min-width:80px;font-size:.85rem}.hourly-table tbody tr{transition:background .2s}.hourly-table tbody tr:hover{background:#3b82f61a}.hourly-table tbody tr:nth-child(2n){background:#1e293b4d}.hourly-table tbody tr:nth-child(2n):hover{background:#3b82f626}.metric-label{text-align:left;color:#cbd5e1;background:inherit;white-space:nowrap;border-right:1px solid #475569;align-items:center;gap:.5rem;padding:.75rem 1rem;font-weight:600;display:flex;position:sticky;left:0}.hour-cell{text-align:center;color:#e2e8f0;border-bottom:1px solid #334155;padding:.75rem .5rem}.row-icons .hour-cell{padding:.5rem}.weather-icon-cell{justify-content:center;align-items:center;font-size:2.5rem;display:flex}.weather-icon-cell span{filter:drop-shadow(0 2px 4px #0000004d);display:inline-block}.temp-cell{color:#fbbf24;font-size:1.1rem;font-weight:700}.feels-cell{color:#94a3b8}.precip-cell{color:#3b82f6}.wind-cell{color:#10b981}.gusts-cell{color:#fbbf24;font-size:.85rem}.humidity-cell{color:#60a5fa}.uv-cell{color:#f59e0b;font-weight:600}.daily-forecast{margin-bottom:2rem}.daily-cards{grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:1rem;display:grid}.daily-card{text-align:center;background:linear-gradient(135deg,#1e293b,#334155);border:1px solid #475569;border-radius:12px;padding:1.25rem;transition:all .3s;box-shadow:0 4px 12px #0000004d}.daily-card:hover{background:linear-gradient(135deg,#334155,#475569);border-color:#3b82f6;transform:translateY(-5px);box-shadow:0 8px 24px #3b82f64d}.day-header{border-bottom:1px solid #475569;justify-content:space-between;align-items:center;margin-bottom:.75rem;padding-bottom:.5rem;display:flex}.day-name{color:#60a5fa;font-size:1.1rem;font-weight:700}.day-date{color:#94a3b8;font-size:.9rem}.day-icon{filter:drop-shadow(0 2px 8px #3b82f64d);justify-content:center;align-items:center;margin:.75rem 0;display:flex}.day-description{color:#cbd5e1;margin-bottom:.75rem;font-size:.95rem;font-weight:500}.day-temp-range{justify-content:center;align-items:center;gap:.5rem;margin:.75rem 0;font-size:1.6rem;font-weight:700;display:flex}.temp-max{color:#fbbf24}.temp-min{color:#60a5fa}.temp-separator{color:#64748b;font-weight:400}.day-details{flex-wrap:wrap;justify-content:center;gap:.5rem;margin:1rem 0;display:flex}.detail-item{color:#cbd5e1;background:#33415580;border:1px solid #475569;border-radius:6px;align-items:center;gap:.25rem;padding:.3rem .6rem;font-size:.85rem;font-weight:500;display:flex}.detail-icon{font-size:1rem}.day-sun-times{color:#94a3b8;border-top:1px solid #475569;justify-content:space-around;margin-top:1rem;padding-top:.75rem;font-size:.85rem;display:flex}.sun-time{align-items:center;gap:.25rem;display:flex}.weather-footer{text-align:center;border-top:2px solid #334155;margin-top:2rem;padding-top:1rem}.weather-info{color:#64748b;margin-bottom:.5rem;font-size:.85rem}.weather-tips{color:#94a3b8;font-size:.9rem;font-weight:500}.weather-loading{text-align:center;color:#e2e8f0;background:linear-gradient(135deg,#0f172a 0%,#1e293b 100%);border-radius:16px;flex-direction:column;justify-content:center;align-items:center;padding:4rem 2rem;display:flex}.spinner{border:4px solid #334155;border-top-color:#3b82f6;border-radius:50%;width:50px;height:50px;margin-bottom:1rem;animation:1s linear infinite spin}.weather-error{text-align:center;color:#fecaca;background:linear-gradient(135deg,#7f1d1d 0%,#991b1b 100%);border:1px solid #dc2626;border-radius:16px;padding:3rem 2rem}.weather-error p{margin-bottom:1.5rem;font-size:1.1rem}.btn-retry{cursor:pointer;color:#fca5a5;background:#ef444433;border:2px solid #ef4444;border-radius:8px;align-items:center;gap:.5rem;padding:.75rem 1.5rem;font-size:1rem;font-weight:600;transition:all .3s;display:inline-flex}.btn-retry:hover{background:#ef44444d;transform:translateY(-2px);box-shadow:0 4px 12px #ef444466}.header-actions{align-items:center;gap:.75rem;display:flex}.btn-windmap{cursor:pointer;color:#34d399;background:#10b98126;border:1px solid #10b98166;border-radius:8px;align-items:center;gap:.4rem;padding:.5rem 1rem;font-size:.9rem;font-weight:600;transition:all .3s;display:flex;box-shadow:0 4px 12px #10b98126}.btn-windmap:hover{background:#10b9814d;transform:translateY(-2px);box-shadow:0 6px 15px #10b98166}@media (width<=768px){.weather-forecast{padding:1rem}.weather-header{flex-direction:column;align-items:flex-start}.weather-header h2{font-size:1.2rem}.current-weather{justify-content:space-between;width:100%}.temp-value{font-size:2rem}.forecast-header{flex-direction:column;align-items:flex-start}.hourly-table{font-size:.8rem}.metric-header,.metric-label{min-width:100px;font-size:.8rem}.hour-header{min-width:60px;font-size:.75rem}.weather-icon-cell span{font-size:2rem}.daily-cards{grid-template-columns:repeat(auto-fit,minmax(160px,1fr))}.day-temp-range{font-size:1.4rem}.chart-container{padding:1rem}}@media (width<=480px){.current-weather{text-align:center;flex-direction:column;align-items:center;padding:1rem}.current-icon{font-size:2.5rem}.temp-value{font-size:1.8rem}.hourly-table{font-size:.75rem}.metric-header,.metric-label{min-width:80px;padding:.5rem;font-size:.75rem}.hour-header{min-width:50px;padding:.5rem .25rem;font-size:.7rem}.hour-cell{padding:.5rem .25rem}.weather-icon-cell span{font-size:1.75rem}.daily-cards{grid-template-columns:1fr}.weather-header{flex-direction:column;align-items:flex-start;gap:1rem}.btn-toggle-chart{justify-content:center;width:100%}}.CircularProgressbar{vertical-align:middle;width:100%}.CircularProgressbar .CircularProgressbar-path{stroke:#3e98c7;stroke-linecap:round;transition:stroke-dashoffset .5s}.CircularProgressbar .CircularProgressbar-trail{stroke:#d6d6d6;stroke-linecap:round}.CircularProgressbar .CircularProgressbar-text{fill:#3e98c7;dominant-baseline:middle;text-anchor:middle;font-size:20px}.CircularProgressbar .CircularProgressbar-background{fill:#d6d6d6}.CircularProgressbar.CircularProgressbar-inverted .CircularProgressbar-background{fill:#3e98c7}.CircularProgressbar.CircularProgressbar-inverted .CircularProgressbar-text{fill:#fff}.CircularProgressbar.CircularProgressbar-inverted .CircularProgressbar-path{stroke:#fff}.CircularProgressbar.CircularProgressbar-inverted .CircularProgressbar-trail{stroke:#0000}.tabata-timer-config{max-width:900px;color:var(--text-primary);margin:0 auto;padding:2rem}.config-header{text-align:center;margin-bottom:2rem}.config-header h1{background:linear-gradient(135deg, var(--accent-primary), var(--accent-secondary));-webkit-text-fill-color:transparent;-webkit-background-clip:text;background-clip:text;margin-bottom:.5rem;font-size:2rem;font-weight:700}.config-header p{color:var(--text-secondary);font-size:1.1rem}.total-time{background:var(--bg-elevated);border:1px solid var(--border-default);text-align:center;border-radius:12px;margin-bottom:2rem;padding:1.5rem;box-shadow:0 4px 12px #0000004d}.time-display{color:var(--text-primary);font-variant-numeric:tabular-nums;margin-bottom:.5rem;font-size:2.5rem;font-weight:700}.time-formula{color:var(--text-secondary);font-size:1rem}.config-grid{grid-template-columns:repeat(4,1fr);gap:1.5rem;margin-bottom:2rem;display:grid}.config-card{background:var(--bg-secondary);border:1px solid var(--border-default);text-align:center;border-radius:12px;padding:1.5rem;transition:all .3s}.config-card:hover{border-color:var(--accent-primary);box-shadow:0 4px 16px #8b5cf633}.config-label{color:var(--text-secondary);text-transform:uppercase;letter-spacing:.05em;margin-bottom:1rem;font-size:.875rem;font-weight:700}.config-control{background:var(--bg-tertiary);border:1px solid var(--border-default);border-radius:8px;overflow:hidden}.btn-increment,.btn-decrement{background:var(--bg-tertiary);width:100%;color:var(--text-secondary);cursor:pointer;border:none;padding:.75rem;font-size:1.2rem;transition:all .2s}.btn-increment:hover,.btn-decrement:hover{background:var(--bg-elevated);color:var(--accent-primary)}.config-value{color:var(--text-primary);background:var(--bg-tertiary);font-variant-numeric:tabular-nums;padding:.5rem 0;font-size:2.5rem;font-weight:700}.btn-start{background:linear-gradient(135deg, var(--accent-primary), var(--accent-secondary));color:#fff;cursor:pointer;text-transform:uppercase;letter-spacing:.05em;border:none;border-radius:12px;width:100%;padding:1.25rem 2rem;font-size:1.25rem;font-weight:700;transition:all .3s;box-shadow:0 4px 16px #8b5cf64d}.btn-start:hover{transform:translateY(-2px);box-shadow:0 6px 20px #8b5cf666}.btn-start:active{transform:translateY(0)}.config-tips{background:var(--bg-secondary);border:1px solid var(--border-default);border-radius:12px;margin-top:2rem;padding:1.5rem}.config-tips h3{color:var(--text-primary);margin-bottom:1rem;font-size:1.1rem;font-weight:700}.config-tips ul{margin:0;padding:0;list-style:none}.config-tips li{color:var(--text-secondary);padding:.5rem 0 .5rem 1.5rem;position:relative}.config-tips li:before{content:"▸";color:var(--accent-secondary);position:absolute;left:0}.tabata-timer-active{background:linear-gradient(135deg,#0f172a 0%,#1e293b 50%,#0f172a 100%);justify-content:center;align-items:center;min-height:calc(100vh - 120px);padding:2rem;display:flex}.timer-container{text-align:center;width:100%;max-width:500px}.circular-timer{background:var(--bg-elevated);border:2px solid var(--border-default);border-radius:50%;width:280px;height:280px;margin:0 auto 2rem;padding:1.5rem;box-shadow:0 8px 32px #00000080}.timer-status{text-transform:uppercase;letter-spacing:.1em;margin-bottom:2rem;font-size:2rem;font-weight:700;transition:color .3s}.timer-status.countdown{color:var(--accent-secondary)}.timer-status.rest{color:var(--success)}.timer-status.work{color:var(--accent-primary)}.indicators-section{margin-bottom:2rem}.indicators-section h3{color:var(--text-secondary);text-transform:uppercase;letter-spacing:.05em;margin-bottom:.75rem;font-size:.875rem;font-weight:700}.indicators-grid{flex-wrap:wrap;justify-content:center;gap:.5rem;display:flex}.set-indicator,.workout-indicator{background:var(--bg-tertiary);width:40px;height:40px;color:var(--text-muted);border:2px solid var(--border-default);border-radius:50%;justify-content:center;align-items:center;font-size:1rem;font-weight:700;transition:all .3s;display:flex}.set-indicator.completed{background:var(--success);color:#fff;border-color:var(--success)}.set-indicator.active{background:var(--accent-primary);color:#fff;border-color:var(--accent-primary);animation:2s ease-in-out infinite pulse;box-shadow:0 0 16px #8b5cf680}.workout-indicator.completed{background:var(--accent-secondary);color:#fff;border-color:var(--accent-secondary)}.workout-indicator.active{background:var(--accent-primary);color:#fff;border-color:var(--accent-primary);animation:2s ease-in-out infinite pulse;box-shadow:0 0 16px #8b5cf680}.btn-back{background:var(--bg-elevated);border:1px solid var(--border-default);color:var(--text-secondary);cursor:pointer;border-radius:8px;padding:1rem 2rem;font-size:1rem;font-weight:600;transition:all .3s}.btn-back:hover{background:var(--bg-tertiary);border-color:var(--accent-primary);color:var(--accent-primary)}@media (width<=768px){.tabata-timer-config{padding:1rem}.config-header h1{font-size:1.5rem}.time-display{font-size:2rem}.config-grid{grid-template-columns:repeat(2,1fr);gap:1rem}.circular-timer{width:240px;height:240px}.timer-status{font-size:1.5rem}}@media (width<=480px){.config-grid{grid-template-columns:1fr}.circular-timer{width:200px;height:200px}.set-indicator,.workout-indicator{width:35px;height:35px;font-size:.9rem}}.chronometer-card{background:var(--bg-elevated);border:1px solid var(--border-default);border-radius:16px;flex-direction:column;height:100%;padding:2rem;transition:all .3s;display:flex;box-shadow:0 4px 16px #0000004d}.chronometer-card:hover{border-color:var(--accent-primary);transform:translateY(-2px);box-shadow:0 8px 24px #0006}.chrono-title{color:var(--text-primary);text-align:center;border-bottom:1px solid var(--border-default);text-transform:uppercase;letter-spacing:1px;margin:0 0 1.5rem;padding-bottom:.75rem;font-size:1.5rem;font-weight:700}.time-display-row{flex:1;justify-content:center;align-items:center;gap:1rem;margin-bottom:1.5rem;display:flex}.time-control{flex-direction:column;align-items:center;gap:.5rem;display:flex}.time-label{color:var(--text-muted);text-transform:uppercase;letter-spacing:1px;font-size:.75rem;font-weight:600}.time-arrow{background:var(--bg-secondary);border:1px solid var(--border-default);width:120px;height:35px;color:var(--text-secondary);cursor:pointer;border-radius:6px;justify-content:center;align-items:center;font-size:1rem;transition:all .2s;display:flex}.time-arrow:hover{background:var(--bg-tertiary);border-color:var(--accent-primary);color:var(--accent-primary)}.time-input{background:var(--bg-secondary);border:2px solid var(--border-default);width:120px;height:80px;color:var(--text-primary);text-align:center;border-radius:8px;font-family:Courier New,Courier,monospace;font-size:3rem;font-weight:700;transition:all .2s}.time-input:focus{border-color:var(--accent-primary);outline:none;box-shadow:0 0 0 3px #8b5cf61a}.time-input::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}.time-input::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}.time-separator{color:var(--text-muted);align-self:center;margin:2rem .5rem 0;font-size:3rem;font-weight:700}.chrono-controls{flex-wrap:wrap;justify-content:center;gap:.75rem;display:flex}.chrono-btn{text-transform:uppercase;letter-spacing:.5px;cursor:pointer;border:none;border-radius:8px;min-width:110px;padding:.75rem 1.5rem;font-size:1rem;font-weight:600;transition:all .2s}.chrono-start{color:#fff;background:linear-gradient(135deg,#10b981,#059669)}.chrono-start:hover:not(:disabled){background:linear-gradient(135deg,#059669,#047857);transform:translateY(-2px);box-shadow:0 4px 12px #10b98166}.chrono-pause{color:#fff;background:linear-gradient(135deg,#f59e0b,#d97706)}.chrono-pause:hover:not(:disabled){background:linear-gradient(135deg,#d97706,#b45309);transform:translateY(-2px);box-shadow:0 4px 12px #f59e0b66}.chrono-reset{color:#fff;background:linear-gradient(135deg,#ef4444,#dc2626)}.chrono-reset:hover:not(:disabled){background:linear-gradient(135deg,#dc2626,#b91c1c);transform:translateY(-2px);box-shadow:0 4px 12px #ef444466}.chrono-btn:disabled{opacity:.5;cursor:not-allowed}@media (width<=768px){.chronometer-card{padding:1.5rem}.time-input{width:100px;height:70px;font-size:2.5rem}.time-arrow{width:100px;height:30px}.chrono-btn{min-width:90px;padding:.65rem 1rem;font-size:.9rem}}.countdown-card{background:var(--bg-elevated);border:1px solid var(--border-default);border-radius:16px;flex-direction:column;height:100%;padding:2rem;transition:all .3s;display:flex;box-shadow:0 4px 16px #0000004d}.countdown-card:hover{border-color:var(--accent-primary);transform:translateY(-2px);box-shadow:0 8px 24px #0006}.countdown-title{color:var(--text-primary);text-align:center;border-bottom:1px solid var(--border-default);text-transform:uppercase;letter-spacing:1px;margin:0 0 1.5rem;padding-bottom:.75rem;font-size:1.5rem;font-weight:700}.countdown-controls{flex-wrap:wrap;justify-content:center;gap:.75rem;margin-bottom:1rem;display:flex}.countdown-btn{text-transform:uppercase;letter-spacing:.5px;cursor:pointer;border:none;border-radius:8px;min-width:110px;padding:.75rem 1.5rem;font-size:1rem;font-weight:600;transition:all .2s}.countdown-start{color:#fff;background:linear-gradient(135deg,#10b981,#059669)}.countdown-start:hover:not(:disabled){background:linear-gradient(135deg,#059669,#047857);transform:translateY(-2px);box-shadow:0 4px 12px #10b98166}.countdown-pause{color:#fff;background:linear-gradient(135deg,#f59e0b,#d97706)}.countdown-pause:hover:not(:disabled){background:linear-gradient(135deg,#d97706,#b45309);transform:translateY(-2px);box-shadow:0 4px 12px #f59e0b66}.countdown-reset{color:#fff;background:linear-gradient(135deg,#ef4444,#dc2626)}.countdown-reset:hover:not(:disabled){background:linear-gradient(135deg,#dc2626,#b91c1c);transform:translateY(-2px);box-shadow:0 4px 12px #ef444466}.countdown-btn:disabled{opacity:.5;cursor:not-allowed}.quick-buttons{border-top:1px solid var(--border-default);flex-wrap:wrap;justify-content:center;gap:.75rem;padding-top:1rem;display:flex}.quick-btn{background:var(--bg-secondary);border:1px solid var(--border-default);color:var(--text-secondary);cursor:pointer;border-radius:8px;min-width:70px;padding:.75rem 1.25rem;font-size:1rem;font-weight:600;transition:all .2s}.quick-btn:hover{background:var(--bg-tertiary);border-color:var(--accent-primary);color:var(--accent-primary);transform:translateY(-2px);box-shadow:0 4px 12px #8b5cf64d}@media (width<=768px){.countdown-card{padding:1.5rem}.countdown-btn{min-width:90px;padding:.65rem 1rem;font-size:.9rem}.quick-btn{min-width:60px;padding:.65rem 1rem;font-size:.9rem}}.timer-container{width:100%;max-width:1400px;margin:0 auto;padding:2rem}.timer-header{text-align:center;margin-bottom:2rem}.timer-header h2{color:var(--text-primary);margin:0 0 .5rem;font-size:2rem;font-weight:700}.timer-subtitle{color:var(--text-secondary);margin:0;font-size:1rem}.timer-grid{grid-template-columns:repeat(auto-fit,minmax(400px,1fr));align-items:start;gap:2rem;display:grid}@media (width<=1024px){.timer-grid{grid-template-columns:1fr;max-width:600px;margin:0 auto}}@media (width<=768px){.timer-container{padding:1rem}.timer-header h2{font-size:1.5rem}.timer-subtitle{font-size:.9rem}.timer-grid{grid-template-columns:1fr;gap:1.5rem}}.settings-menu-overlay{z-index:9999;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);background:#000000b3;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.settings-menu{background:var(--bg-secondary);border:1px solid var(--border-default);border-radius:16px;width:90%;max-width:650px;max-height:90vh;overflow-y:auto;box-shadow:0 20px 60px #00000080}.settings-header{border-bottom:1px solid var(--border-default);background:var(--bg-tertiary);border-radius:16px 16px 0 0;justify-content:space-between;align-items:center;padding:1.5rem;display:flex}.settings-header h2{color:var(--text-primary);margin:0;font-size:1.5rem}.close-btn{color:var(--text-secondary);cursor:pointer;background:0 0;border:none;border-radius:8px;padding:.5rem;font-size:1.5rem;transition:all .2s}.close-btn:hover{background:var(--bg-elevated);color:var(--text-primary)}.settings-content{padding:1.5rem}.user-info-section{background:var(--bg-elevated);border:1px solid var(--border-default);border-radius:8px;margin-bottom:2rem;padding:1rem}.user-info-section h3{color:var(--text-primary);margin:0 0 .5rem;font-size:1.1rem}.user-id-small{color:var(--text-muted);margin:0;font-size:.85rem}.settings-section{margin-bottom:1rem}.settings-option{background:var(--bg-elevated);border:1px solid var(--border-default);width:100%;color:var(--text-primary);cursor:pointer;border-radius:8px;align-items:center;gap:.75rem;padding:1rem;font-size:1rem;transition:all .2s;display:flex}.settings-option:hover{background:var(--bg-tertiary);border-color:var(--accent-primary)}.settings-option svg{font-size:1.2rem}.settings-option span{text-align:left;flex:1}.settings-option.danger:hover{border-color:var(--danger);color:var(--danger)}.settings-option.logout{background:linear-gradient(135deg, var(--danger), #dc2626);color:#fff;border:none;font-weight:600}.settings-option.logout:hover{transform:translateY(-2px);box-shadow:0 4px 12px #ef44444d}.settings-option:disabled{opacity:.5;cursor:not-allowed}.password-form{background:var(--bg-tertiary);border:1px solid var(--border-default);border-radius:8px;margin-top:1rem;padding:1rem}.form-group{margin-bottom:1rem}.form-group label{color:var(--text-secondary);margin-bottom:.5rem;font-size:.9rem;font-weight:600;display:block}.form-group input{background:var(--bg-elevated);border:1px solid var(--border-default);width:100%;color:var(--text-primary);border-radius:8px;padding:.75rem;font-size:1rem;transition:all .2s}.form-group input:focus{border-color:var(--accent-primary);outline:none;box-shadow:0 0 0 3px #2563eb1a}.form-group input:disabled{opacity:.5;cursor:not-allowed}.btn-submit{background:var(--accent-primary);color:#fff;cursor:pointer;border:none;border-radius:8px;width:100%;padding:.75rem;font-size:1rem;font-weight:600;transition:all .2s}.btn-submit:hover:not(:disabled){background:var(--accent-primary-hover);transform:translateY(-2px)}.btn-submit:disabled{opacity:.5;cursor:not-allowed}.alert{border-radius:8px;margin-bottom:1rem;padding:.75rem 1rem;font-size:.9rem}.alert-success{border:1px solid var(--success);color:var(--success);background:#10b9811a}.settings-section-profile{background:var(--bg-elevated);border:1px solid var(--border-default);border-radius:12px;margin-bottom:2rem;padding:1.5rem}.settings-subheading{color:var(--text-primary);border-left:3px solid var(--accent-primary);margin:0 0 1.25rem;padding-left:.5rem;font-size:1.15rem;font-weight:700}.profile-collapse-toggle{background:var(--bg-tertiary);border:1px solid var(--border-default);width:100%;color:var(--text-primary);cursor:pointer;border-radius:10px;justify-content:space-between;align-items:center;gap:.75rem;margin:0;padding:.75rem .9rem;font-size:1rem;font-weight:700;transition:all .2s;display:flex}.profile-collapse-toggle:hover{border-color:var(--accent-primary);background:var(--bg-secondary)}.profile-form-grid{grid-template-columns:repeat(2,1fr);gap:1rem;display:grid}.form-select,.form-textarea{background:var(--bg-elevated);border:1px solid var(--border-default);width:100%;color:var(--text-primary);border-radius:8px;padding:.75rem;font-family:inherit;font-size:1rem;transition:all .2s}.form-select:focus,.form-textarea:focus{border-color:var(--accent-primary);outline:none;box-shadow:0 0 0 3px #2563eb1a}.settings-divider{background:var(--border-default);border:0;height:1px;margin:2rem 0 1.5rem}.loading-text{color:var(--text-secondary);text-align:center;padding:1rem 0;font-style:italic}@media (width<=600px){.settings-menu{width:95%;max-height:95vh}.settings-header,.settings-content{padding:1rem}.profile-form-grid{grid-template-columns:1fr}}.wind-map-view{flex-direction:column;gap:1.5rem;width:100%;height:100%;display:flex}.wind-map-header{border-bottom:1px solid var(--border-default);justify-content:space-between;align-items:center;gap:2rem;padding-bottom:1.5rem;display:flex}.wind-map-header h2{color:var(--text-primary);align-items:center;gap:.75rem;margin:0 0 .5rem;font-size:1.75rem;display:flex}.wind-map-header p{color:var(--text-secondary);max-width:600px;margin:0;font-size:.95rem;line-height:1.5}.time-controls-glass{-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);background:#1e293b66;border:1px solid #ffffff14;border-radius:12px;flex-shrink:0;align-items:center;gap:1.5rem;padding:.75rem 1.25rem;display:flex;box-shadow:0 4px 20px #00000040}.control-group{flex-direction:column;gap:.35rem;display:flex}.control-group label{color:var(--text-muted);text-transform:uppercase;letter-spacing:.5px;align-items:center;gap:.4rem;font-size:.75rem;font-weight:600;display:flex}.glass-select{color:var(--text-primary);cursor:pointer;appearance:none;background:#0f172a99 url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='none' viewBox='0 0 24 24' stroke='white'%3E%3Cpath stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='M19 9l-7 7-7-7'/%3E%3C/svg%3E") right .5rem center/1rem no-repeat;border:1px solid #ffffff26;border-radius:6px;outline:none;padding:.4rem 2rem .4rem .75rem;font-size:.9rem;transition:all .2s}.glass-select:focus{border-color:var(--accent-primary);box-shadow:0 0 8px #8b5cf64d}.incremental-hour-group{min-width:200px}.incremental-hour-controls{background:#0f172a99;border:1px solid #ffffff26;border-radius:8px;align-items:center;gap:.75rem;padding:.25rem .5rem;transition:all .2s;display:flex}.incremental-hour-controls:focus-within{border-color:var(--accent-primary);box-shadow:0 0 8px #8b5cf64d}.hour-btn{width:28px;height:28px;color:var(--text-primary);cursor:pointer;-webkit-user-select:none;user-select:none;background:#ffffff14;border:1px solid #ffffff1a;border-radius:6px;outline:none;justify-content:center;align-items:center;font-size:1.1rem;font-weight:700;transition:all .15s;display:flex}.hour-btn:hover{background:var(--accent-primary);border-color:var(--accent-primary);color:#fff;transform:scale(1.05)}.hour-btn:active{transform:scale(.95)}.hour-digital-display{text-align:center;color:var(--accent-primary);letter-spacing:.5px;-webkit-user-select:none;user-select:none;flex:1;min-width:80px;font-family:Courier New,Courier,monospace;font-size:1rem;font-weight:700}.wind-map-layout{flex:1;grid-template-columns:1fr 340px;gap:1.5rem;min-height:520px;display:grid}.map-container-wrapper{border:1px solid var(--border-default);border-radius:12px;position:relative;overflow:hidden;box-shadow:0 4px 24px #0006}.wind-leaflet-map{z-index:1;background:#111;width:100%;height:100%}.map-loading-overlay{-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);z-index:10;color:#fff;background:#0f172ab3;flex-direction:column;justify-content:center;align-items:center;gap:1rem;display:flex;position:absolute;inset:0}.glass-spinner{border:4px solid #ffffff1a;border-left-color:var(--accent-primary);border-radius:50%;width:40px;height:40px;animation:1s linear infinite spin}.map-error-overlay{z-index:10;color:#fff;background:#ef4444e6;border-radius:8px;padding:.75rem 1.5rem;position:absolute;top:1rem;left:50%;transform:translate(-50%);box-shadow:0 4px 12px #0000004d}.wind-leaflet-div-icon{background:0 0!important;border:none!important}.wind-custom-marker{flex-direction:column;justify-content:center;align-items:center;width:60px;height:65px;display:flex}.wind-arrow-wrapper{filter:drop-shadow(0 2px 8px #00000080);justify-content:center;align-items:center;transition:transform .4s cubic-bezier(.4,0,.2,1);display:flex}.wind-speed-badge{white-space:nowrap;border:1px solid;border-radius:4px;justify-content:center;align-items:center;margin-top:.25rem;padding:.2rem .45rem;font-size:.65rem;font-weight:800;line-height:1;display:inline-flex;box-shadow:0 2px 8px #0009}.wind-speed-badge .unit{opacity:.8;margin-left:1px;font-size:.55rem;font-weight:500}.wind-low{color:#fff!important;background-color:#3b82f6e6!important;border-color:#3b82f6!important}.wind-medium{color:#fff!important;background-color:#f59e0be6!important;border-color:#f59e0b!important}.wind-high{animation:2s ease-in-out infinite pulse-high;color:#fff!important;background-color:#ef4444e6!important;border-color:#ef4444!important}@keyframes pulse-high{0%{transform:scale(1)}50%{transform:scale(1.05)}to{transform:scale(1)}}.wind-sidebar{flex-direction:column;gap:1.5rem;display:flex}.sidebar-card{background:var(--bg-secondary);border:1px solid var(--border-default);border-radius:12px;padding:1.5rem;box-shadow:0 4px 16px #0003}.sidebar-card h3{color:var(--text-primary);border-bottom:1px solid var(--border-default);margin:0 0 1.25rem;padding-bottom:.5rem;font-size:1.1rem}.legend-list{flex-direction:column;gap:1rem;display:flex}.legend-item{align-items:flex-start;gap:.75rem;display:flex}.legend-color{border-radius:3px;flex-shrink:0;width:14px;height:14px;margin-top:.25rem}.legend-color.color-blue{background:#3b82f6;border:1px solid #ffffff1a}.legend-color.color-yellow{background:#f59e0b;border:1px solid #ffffff1a}.legend-color.color-red{background:#ef4444;border:1px solid #ffffff1a}.legend-text strong{color:var(--text-primary);margin-bottom:.15rem;font-size:.85rem;display:block}.legend-text p{color:var(--text-secondary);margin:0;font-size:.75rem;line-height:1.4}.wind-stats-grid{grid-template-columns:1fr 1fr;gap:1rem;margin-bottom:1.25rem;display:grid}.stat-box{background:var(--bg-elevated);border:1px solid var(--border-default);border-radius:8px;flex-direction:column;align-items:center;gap:.25rem;padding:.75rem;display:flex}.stat-box .label{color:var(--text-muted);text-transform:uppercase;font-size:.7rem}.stat-box .value{color:var(--text-primary);font-size:1.2rem;font-weight:700}.stat-box .value small{color:var(--text-secondary);font-size:.7rem;font-weight:500}.no-data{text-align:center;color:var(--text-muted);margin:1rem 0;font-size:.85rem}.tips-box{background:#8b5cf614;border:1px solid #8b5cf633;border-radius:8px;padding:1rem}.tips-box h4{color:var(--accent-primary);margin:0 0 .4rem;font-size:.85rem}.tips-box p{color:var(--text-secondary);margin:0;font-size:.75rem;line-height:1.5}.wind-popup{min-width:180px;padding:.25rem .5rem}.wind-popup h4{color:#6366f1;margin:0 0 .4rem;font-size:.9rem;font-weight:700}.wind-popup hr{border:none;border-top:1px solid #ffffff1a;margin:.4rem 0}.popup-item{color:#e2e8f0;align-items:center;gap:.4rem;margin-bottom:.35rem;font-size:.8rem;display:flex}.popup-item:last-child{margin-bottom:0}.popup-icon{flex-shrink:0;font-size:.9rem}.leaflet-popup-tip{background:#0f172a!important;border:1px solid #ffffff26!important}@media (width<=1024px){.wind-map-layout{grid-template-columns:1fr;min-height:auto}.map-container-wrapper{height:400px}.wind-map-header{flex-direction:column;align-items:flex-start;gap:1.25rem}.time-controls-glass{justify-content:space-between;width:100%}}@media (width<=768px){.time-controls-glass{flex-direction:column;align-items:flex-start;gap:1rem}.slider-group{width:100%;min-width:unset}}.pc-panel-overlay{-webkit-backdrop-filter:blur(8px);z-index:1000;background:#000000bf;justify-content:center;align-items:center;padding:1rem;animation:.25s pc-overlay-in;display:flex;position:fixed;inset:0}@keyframes pc-overlay-in{0%{opacity:0}to{opacity:1}}.pc-panel{scrollbar-width:thin;scrollbar-color:#ffffff1a transparent;background:linear-gradient(135deg,#0f172a 0%,#1e293b 60%,#0f172a 100%);border:1px solid #ffffff14;border-radius:20px;width:100%;max-width:860px;max-height:92vh;padding:2rem;animation:.3s cubic-bezier(.16,1,.3,1) pc-panel-in;overflow-y:auto;box-shadow:0 40px 120px #0009,inset 0 0 0 1px #f59e0b1a}@keyframes pc-panel-in{0%{opacity:0;transform:translateY(30px)scale(.97)}to{opacity:1;transform:translateY(0)scale(1)}}.pc-panel::-webkit-scrollbar{width:6px}.pc-panel::-webkit-scrollbar-track{background:0 0}.pc-panel::-webkit-scrollbar-thumb{background:#ffffff1a;border-radius:3px}.pc-header{justify-content:space-between;align-items:center;gap:1rem;margin-bottom:1.75rem;display:flex}.pc-header-left{align-items:center;gap:1rem;display:flex}.pc-icon-badge{color:#0f172a;background:linear-gradient(135deg,#f59e0b,#d97706);border-radius:14px;flex-shrink:0;justify-content:center;align-items:center;width:52px;height:52px;font-size:1.4rem;display:flex;box-shadow:0 8px 24px #f59e0b59}.pc-header h2{color:#f1f5f9;margin:0;font-size:1.5rem;font-weight:700;line-height:1.2}.pc-header p{color:#64748b;margin:0;font-size:.85rem}.pc-close-btn{color:#94a3b8;cursor:pointer;background:#ffffff0d;border:1px solid #ffffff1a;border-radius:10px;flex-shrink:0;justify-content:center;align-items:center;width:36px;height:36px;font-size:1.3rem;line-height:1;transition:all .2s;display:flex}.pc-close-btn:hover{color:#ef4444;background:#ef444426;border-color:#ef444466}.pc-metrics-row{grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:.875rem;margin-bottom:1.75rem;display:grid}.pc-metric-card{background:#ffffff08;border:1px solid #ffffff0f;border-radius:14px;align-items:center;gap:.75rem;padding:.875rem 1rem;transition:transform .2s,box-shadow .2s;display:flex}.pc-metric-card:hover{transform:translateY(-2px);box-shadow:0 8px 24px #0000004d}.pc-metric-icon{flex-shrink:0;font-size:1.2rem}.pc-metric-body{flex-direction:column;gap:.15rem;display:flex}.pc-metric-label{color:#64748b;text-transform:uppercase;letter-spacing:.05em;font-size:.72rem;font-weight:600}.pc-metric-value{font-size:1.25rem;font-weight:700;line-height:1.1}.pc-metric-gold .pc-metric-icon{color:#f59e0b}.pc-metric-gold .pc-metric-value{color:#fbbf24}.pc-metric-gold{border-color:#f59e0b33}.pc-metric-orange .pc-metric-icon,.pc-metric-orange .pc-metric-value{color:#fb923c}.pc-metric-orange{border-color:#fb923c33}.pc-metric-red .pc-metric-icon,.pc-metric-red .pc-metric-value{color:#f87171}.pc-metric-red{border-color:#f8717133}.pc-metric-blue .pc-metric-icon,.pc-metric-blue .pc-metric-value{color:#38bdf8}.pc-metric-blue{border-color:#38bdf833}.pc-metric-purple .pc-metric-icon{color:#a78bfa}.pc-metric-purple .pc-metric-value{color:#c084fc}.pc-metric-purple{border-color:#a78bfa33}.pc-chart-wrapper{background:#ffffff05;border:1px solid #ffffff0f;border-radius:16px;margin-bottom:1.25rem;padding:1.25rem 1rem .5rem}.pc-legend-info{color:#94a3b8;flex-wrap:wrap;align-items:center;gap:1.25rem;margin-bottom:.75rem;font-size:.83rem;display:flex}.pc-legend-dot{border-radius:50%;flex-shrink:0;width:10px;height:10px;margin-right:4px;display:inline-block}.pc-dot-alltime{background:#f59e0b}.pc-dot-recent{background:#6366f1}.pc-legend-ftp{color:#38bdf8;font-weight:500}.pc-tooltip{background:#0f172af2;border:1px solid #ffffff1f;border-radius:10px;padding:.6rem .875rem;box-shadow:0 8px 32px #00000080}.pc-tooltip-label{color:#e2e8f0;margin:0 0 .35rem;font-size:.85rem;font-weight:700}.pc-tooltip-value{margin:.2rem 0;font-size:.82rem}.pc-no-data{text-align:center;color:#475569;padding:3rem 2rem}.pc-no-data-icon{color:#334155;margin-bottom:1rem;font-size:3.5rem}.pc-no-data h3{color:#64748b;margin:0 0 .75rem;font-size:1.2rem}.pc-no-data p{max-width:400px;margin:0 auto .5rem;font-size:.9rem;line-height:1.6}.pc-no-data-hint{font-style:italic;color:#f59e0b!important;font-size:.85rem!important}.pc-loading{color:#64748b;flex-direction:column;align-items:center;gap:1rem;padding:3rem 2rem;display:flex}.pc-spinner{border:3px solid #f59e0b26;border-top-color:#f59e0b;border-radius:50%;width:40px;height:40px;animation:.8s linear infinite pc-spin}@keyframes pc-spin{to{transform:rotate(360deg)}}.pc-error{color:#f87171;background:#ef444414;border:1px solid #ef444433;border-radius:12px;align-items:center;gap:.75rem;margin-bottom:1rem;padding:1rem 1.25rem;font-size:.9rem;display:flex}.pc-info-note{color:#475569;background:#ffffff05;border:1px solid #ffffff0a;border-radius:10px;align-items:flex-start;gap:.6rem;padding:.875rem 1rem;font-size:.78rem;line-height:1.5;display:flex}.pc-info-note svg{color:#334155;flex-shrink:0;margin-top:1px}@media (width<=600px){.pc-panel{border-radius:16px;padding:1.25rem}.pc-header h2{font-size:1.2rem}.pc-metrics-row{grid-template-columns:repeat(2,1fr)}.pc-metric-value{font-size:1.05rem}}.tlc-container{-webkit-backdrop-filter:blur(20px);background:linear-gradient(135deg,#ffffff0b 0%,#ffffff05 100%);border:1px solid #ffffff17;border-radius:20px;margin-bottom:1.5rem;padding:1.25rem 1.4rem 1rem;transition:box-shadow .3s,transform .3s;box-shadow:0 8px 32px #00000059,inset 0 1px #ffffff0f}.tlc-container:hover{transform:translateY(-1px);box-shadow:0 12px 40px #00000073,inset 0 1px #ffffff14}.tlc-header{justify-content:space-between;align-items:flex-start;gap:1rem;margin-bottom:1.25rem;display:flex}.tlc-title-group{flex-direction:column;gap:.15rem;display:flex}.tlc-title{color:#f1f5f9;letter-spacing:-.01em;align-items:center;gap:.5rem;margin:0;font-size:1.15rem;font-weight:700;display:flex}.tlc-title-icon{filter:drop-shadow(0 0 6px #f97316b3);font-size:1.1rem;animation:2.5s ease-in-out infinite tlc-pulse}@keyframes tlc-pulse{0%,to{opacity:1}50%{opacity:.65}}.tlc-subtitle{color:#fff6;letter-spacing:.01em;margin:0;font-size:.75rem}.tlc-status-badge{background:#ffffff0f;border:1.5px solid;border-radius:40px;flex-shrink:0;align-items:center;gap:.6rem;padding:.45rem .85rem .45rem .65rem;transition:border-color .4s;display:flex}.tlc-status-emoji{font-size:1.05rem;line-height:1}.tlc-status-info{flex-direction:column;line-height:1.2;display:flex}.tlc-status-label{font-size:.8rem;font-weight:700;transition:color .4s}.tlc-status-sub{color:#ffffff73;font-size:.7rem}.tlc-controls{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:1rem;margin-bottom:1.25rem;display:flex}.tlc-timeframes{gap:.4rem;display:flex}.tlc-tf-btn{color:#ffffff8c;cursor:pointer;background:#ffffff0f;border:1px solid #ffffff1a;border-radius:20px;padding:.3rem .75rem;font-size:.78rem;font-weight:600;transition:all .22s}.tlc-tf-btn:hover{color:#f97316;background:#f9731626;border-color:#f9731666}.tlc-tf-btn.active{color:#f97316;background:#f9731638;border-color:#f9731699;box-shadow:0 0 10px #f9731640}.tlc-toggle{cursor:pointer;-webkit-user-select:none;user-select:none;align-items:center;gap:.55rem;display:flex}.tlc-toggle input{opacity:0;width:0;height:0;position:absolute}.tlc-toggle-track{background:#ffffff1f;border:1px solid #ffffff26;border-radius:10px;flex-shrink:0;width:36px;height:20px;transition:background .25s;display:inline-block;position:relative}.tlc-toggle-track:after{content:"";background:#ffffff8c;border-radius:50%;width:14px;height:14px;transition:transform .25s,background .25s;position:absolute;top:2px;left:2px}.tlc-toggle input:checked+.tlc-toggle-track{background:#38bdf859;border-color:#38bdf88c}.tlc-toggle input:checked+.tlc-toggle-track:after{background:#38bdf8;transform:translate(16px)}.tlc-toggle-label{color:#fff9;font-size:.78rem;transition:color .25s}.tlc-toggle:hover .tlc-toggle-label{color:#ffffffe6}.tlc-chart-wrapper{width:100%;min-height:280px;position:relative}.tlc-loading{color:#ffffff73;flex-direction:column;justify-content:center;align-items:center;gap:.75rem;height:280px;font-size:.85rem;display:flex}.tlc-spinner{border:3px solid #f9731633;border-top-color:#f97316;border-radius:50%;width:32px;height:32px;animation:.9s linear infinite tlc-spin}@keyframes tlc-spin{to{transform:rotate(360deg)}}.tlc-error{color:#ef4444;text-align:center;justify-content:center;align-items:center;height:200px;padding:1rem;font-size:.85rem;display:flex}.tlc-tooltip{-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);background:#0a1226f2;border:1px solid #ffffff1f;border-radius:12px;min-width:200px;padding:.75rem 1rem;font-size:.82rem;box-shadow:0 8px 24px #00000080}.tlc-tooltip-date{color:#f1f5f9;text-transform:capitalize;margin-bottom:.55rem;font-size:.8rem;font-weight:700}.tlc-tooltip-row{flex-wrap:wrap;align-items:center;gap:.4rem;margin-bottom:.3rem;display:flex}.tlc-tooltip-dot{border-radius:50%;flex-shrink:0;width:8px;height:8px}.atl-dot{background:#f97316}.ctl-dot{background:#38bdf8}.tss-dot{background:#a78bfa}.tlc-tooltip-key{color:#ffffff8c}.tlc-tooltip-val{color:#f1f5f9;margin-left:auto;font-weight:700}.tlc-tooltip-status{margin-left:.3rem;font-size:.75rem;font-weight:600}.tlc-tooltip-zone{color:#10b981bf;border-top:1px solid #ffffff1a;margin-top:.5rem;padding-top:.4rem;font-size:.75rem}.tlc-legend-bar{border-top:1px solid #ffffff12;flex-wrap:wrap;align-items:center;gap:1.2rem;margin-top:.85rem;padding-top:.75rem;display:flex}.tlc-legend-item{color:#ffffff80;align-items:center;gap:.4rem;font-size:.75rem;display:flex}.tlc-legend-line{border-radius:2px;width:22px;height:2.5px;display:inline-block}.atl-line{background:#f97316}.ctl-line{background:0 0;border-top:2.5px dashed #38bdf8}.tlc-legend-band{background:linear-gradient(#10b98173,#10b9811a);border:1px solid #10b98180;border-radius:3px;width:14px;height:10px;display:inline-block}.bounds-info{color:#10b981b3;margin-left:auto;font-size:.77rem;font-weight:600}@media (width<=640px){.tlc-container{border-radius:14px;padding:1.1rem 1rem 1rem}.tlc-header{flex-direction:column;gap:.75rem}.tlc-status-badge{justify-content:center;width:100%}.tlc-controls{flex-direction:column;align-items:flex-start;gap:.75rem}.tlc-legend-bar{gap:.75rem}.bounds-info{margin-left:0}}.fsp-container{-webkit-backdrop-filter:blur(24px);opacity:0;background:linear-gradient(145deg,#10b9810a 0%,#38bdf80a 40%,#a78bfa0a 100%);border:1px solid #ffffff14;border-radius:24px;margin-bottom:1.5rem;padding:1.6rem 1.75rem 1.4rem;transition:opacity .5s,transform .5s cubic-bezier(.4,0,.2,1),box-shadow .3s;position:relative;overflow:hidden;transform:translateY(14px);box-shadow:0 8px 40px #00000073,inset 0 1px #ffffff0d}.fsp-container:before{content:"";pointer-events:none;border-radius:inherit;background:radial-gradient(at 30% 0,#10b9810f 0%,#0000 60%),radial-gradient(at 75% 100%,#38bdf80d 0%,#0000 55%);position:absolute;inset:0}.fsp-container.fsp-animated{opacity:1;transform:translateY(0)}.fsp-container:hover{box-shadow:0 12px 50px #0000008c,inset 0 1px #ffffff12}.fsp-header{justify-content:center;align-items:center;gap:1rem;margin-bottom:1rem;display:flex}.fsp-header-left{align-items:center;gap:.75rem;display:flex}.fsp-header-icon{filter:drop-shadow(0 0 8px #10b981b3);font-size:1.6rem}.fsp-title{color:#f1f5f9;letter-spacing:-.02em;margin:0 0 .1rem;font-size:1.25rem;font-weight:700}.fsp-subtitle{color:#ffffff61;letter-spacing:.02em;font-size:.75rem}.fsp-state-badge{-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);background:#ffffff0a;border:1.5px solid;border-radius:40px;flex-direction:column;flex-shrink:0;align-items:center;padding:.5rem 1.2rem;transition:box-shadow .4s,border-color .4s;display:flex}.fsp-state-label{letter-spacing:.06em;font-size:.78rem;font-weight:800;line-height:1.2;transition:color .4s}.fsp-state-tsb{color:#ffffff73;margin-top:.15rem;font-size:.7rem}.fsp-body{justify-content:center;align-items:center;margin-bottom:1.2rem;display:flex}.fsp-footer{justify-content:center;margin-top:1rem;display:flex}.fsp-rings-left,.fsp-rings-right{flex-direction:column;align-items:center;gap:1.1rem;display:flex}.fsp-ring-wrap{cursor:default;flex-direction:column;align-items:center;gap:.3rem;display:flex;position:relative}.fsp-ring-svg{display:block;transform:rotate(0)}.fsp-ring-center{pointer-events:none;flex-direction:column;align-items:center;line-height:1.1;display:flex;position:absolute;top:50%;left:50%;transform:translate(-50%,-52%)}.fsp-ring-icon{margin-bottom:.05rem;font-size:.9rem}.fsp-ring-value{font-size:1.05rem;font-weight:700;transition:color .4s}.fsp-ring-unit{opacity:.7;font-size:.6rem;font-weight:400}.fsp-ring-label{color:#ffffff73;letter-spacing:.05em;text-align:center;font-size:.68rem;font-weight:600}.fsp-center{flex-direction:column;align-items:center;gap:.75rem;display:flex}.fsp-gauge-wrap{flex-direction:column;align-items:center;display:flex;position:relative}.fsp-tsb-gauge-svg{transition:filter .5s;display:block}.fsp-gauge-info{text-align:center;white-space:nowrap;flex-direction:column;align-items:center;gap:.1rem;display:flex;position:absolute;bottom:12px;left:50%;transform:translate(-50%)}.fsp-tsb-value{letter-spacing:-.04em;font-size:2.6rem;font-weight:900;line-height:1;transition:color .5s,text-shadow .5s}.fsp-tsb-label{color:#fff6;letter-spacing:.12em;text-transform:uppercase;margin-top:.1rem;font-size:.72rem;font-weight:600}.fsp-ctl-atl{align-items:center;gap:.4rem;margin-top:.35rem;display:flex}.fsp-ctl-atl-item{font-size:.75rem;font-weight:500}.fsp-ctl-atl-item strong{font-weight:800}.fsp-ctl-atl-sep{color:#ffffff4d;font-size:.85rem}.fsp-ctl-trend{letter-spacing:.02em;margin-top:.2rem;font-size:.68rem;font-weight:600}.fsp-formbar-section,.fsp-formbar-wrap{width:100%}.fsp-formbar-track{border-radius:10px;height:10px;margin-bottom:.5rem;position:relative;overflow:visible}.fsp-formbar-gradient{opacity:.55;background:linear-gradient(90deg,#ef4444 0%,#f97316 25%,#10b981 55%,#a78bfa 75%,#38bdf8 100%);border-radius:10px;position:absolute;inset:0}.fsp-formbar-thumb{z-index:1;border:2.5px solid #ffffffe6;border-radius:50%;width:16px;height:16px;transition:left 1.2s cubic-bezier(.4,0,.2,1),background .5s,box-shadow .5s;position:absolute;top:50%;transform:translate(-50%,-50%)}.fsp-formbar-labels{color:#ffffff4d;justify-content:space-between;font-size:.64rem;font-weight:500;display:flex}.fsp-bottom-row{flex-wrap:wrap;gap:.75rem;display:flex}.fsp-bottom-card{background:#ffffff0a;border:1px solid #ffffff12;border-radius:14px;flex-direction:column;flex:1;gap:.2rem;min-width:100px;padding:.75rem .9rem;transition:background .25s,border-color .25s;display:flex}.fsp-bottom-card:hover{background:#ffffff12;border-color:#ffffff21}.fsp-bottom-icon{margin-bottom:.15rem;font-size:1.15rem;line-height:1}.fsp-bottom-content{flex-direction:column;gap:.1rem;display:flex}.fsp-bottom-label{color:#ffffff61;letter-spacing:.04em;text-transform:uppercase;font-size:.68rem;font-weight:600}.fsp-bottom-value{font-size:1.05rem;font-weight:700;line-height:1.2;transition:color .4s}.fsp-bottom-sub{color:#ffffff61;margin-top:.05rem;font-size:.68rem}.fsp-bottom-bar-wrap{margin-top:.45rem}.fsp-bottom-bar-track{background:#ffffff14;border-radius:4px;height:4px;overflow:hidden}.fsp-bottom-bar-fill{border-radius:4px;height:100%;transition:width 1s cubic-bezier(.4,0,.2,1)}@media (width<=780px){.fsp-body{grid-template-rows:auto auto auto;grid-template-columns:1fr}.fsp-rings-left,.fsp-rings-right{flex-direction:row;justify-content:center;gap:1.5rem}.fsp-tsb-value{font-size:2rem}}@media (width<=520px){.fsp-container{border-radius:18px;padding:1.2rem 1.1rem 1.1rem}.fsp-header{flex-direction:column;align-items:flex-start;gap:.75rem}.fsp-state-badge{align-items:center;width:100%}.fsp-bottom-row{gap:.5rem}.fsp-bottom-card{min-width:80px;padding:.6rem .7rem}.fsp-formbar-labels{display:none}}.home-panel{max-width:1600px;margin:0 auto;padding:2rem}.panel-header{margin-bottom:2rem}.panel-header h1{color:var(--text-primary);margin:0 0 .5rem;font-size:2rem}.panel-header p{color:var(--text-secondary);margin:0;font-size:1rem}.loading-message{text-align:center;justify-content:center;align-items:center;padding:4rem 2rem;display:flex}.loading-message p{color:var(--text-secondary);font-size:1.1rem}.ai-summary-section{margin-bottom:2rem}.btn-ai-summary{background:linear-gradient(135deg, var(--accent-primary), #1d4ed8);color:#fff;cursor:pointer;border:none;border-radius:12px;align-items:center;gap:.75rem;padding:1rem 1.5rem;font-size:1rem;font-weight:600;transition:all .3s;display:flex;box-shadow:0 4px 12px #2563eb4d}.btn-ai-summary:hover:not(:disabled){transform:translateY(-2px);box-shadow:0 6px 20px #2563eb66}.btn-ai-summary:disabled{opacity:.7;cursor:not-allowed}.btn-ai-summary svg{font-size:1.3rem}.ai-summary-inline{border-top:1px solid #ffffff12;flex-direction:column;align-items:center;gap:1rem;margin-top:1.25rem;padding-top:1.1rem;display:flex}.btn-ai-summary--inline{border-radius:40px;justify-content:center;width:100%;padding:.75rem 1.4rem;font-size:.92rem;box-shadow:0 4px 14px #2563eb59}.ai-summary-result{box-sizing:border-box;background:#2563eb1a;border:1px solid #2563eb4d;border-radius:12px;align-items:start;gap:1rem;width:100%;margin-top:.5rem;padding:1.5rem;display:flex}.ai-summary-result--inline{margin-top:0}.ai-icon{flex-shrink:0;font-size:2rem}.ai-summary-result p{color:var(--text-primary);white-space:pre-wrap;flex:1;margin:0;line-height:1.6}.metrics-summary-card{border:2px solid var(--accent-primary);background:linear-gradient(135deg,#8b5cf61a,#3b82f61a);border-radius:16px;margin-bottom:2rem;padding:1.5rem;box-shadow:0 8px 24px #8b5cf633}.metrics-summary-card h3{color:var(--text-primary);text-align:center;justify-content:center;align-items:center;gap:.5rem;margin:0 0 1.5rem;font-size:1.3rem;display:flex}.summary-grid{grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:1rem;display:grid}.summary-item{background:var(--bg-secondary);border:1px solid var(--border-default);border-radius:10px;padding:1rem;transition:all .3s}.summary-item:hover{border-color:var(--accent-primary);transform:translateY(-2px);box-shadow:0 4px 12px #8b5cf626}.summary-highlight{background:linear-gradient(135deg, var(--bg-secondary), #8b5cf60d);border-color:var(--accent-primary)}.summary-label{color:var(--text-secondary);text-transform:uppercase;letter-spacing:.5px;margin-bottom:.5rem;font-size:.85rem;font-weight:600}.summary-values{flex-direction:column;gap:.25rem;display:flex}.summary-value{color:var(--text-primary);font-size:1rem;font-weight:700}.summary-secondary{color:var(--text-muted);font-size:.85rem}.summary-weight-fallback{background:linear-gradient(135deg,#38bdf812,#06b6d40d);border-color:#38bdf859}.summary-withings-highlight{background:linear-gradient(135deg,#00a6d61f,#0674a814);border:1px solid #00a6d673;grid-column:1/-1;box-shadow:0 8px 20px #00a6d629}.summary-withings-grid{grid-template-columns:repeat(auto-fit,minmax(125px,1fr));gap:.55rem;display:grid}.summary-withings-metric{background:#ffffff12;border:1px solid #ffffff1f;border-radius:8px;flex-direction:column;gap:.18rem;padding:.55rem .6rem;display:flex}.summary-withings-metric-label{color:var(--text-secondary);text-transform:uppercase;letter-spacing:.45px;font-size:.72rem;font-weight:600}.summary-withings-metric-value{color:var(--text-primary);font-size:.98rem;font-weight:700}.metrics-grid{grid-template-columns:repeat(auto-fit,minmax(400px,1fr));gap:1.5rem;margin-bottom:2rem;display:grid}.metric-card{background:var(--bg-secondary);border:1px solid var(--border-default);border-radius:12px;padding:1.5rem;transition:all .3s}.metric-card:hover{border-color:var(--accent-primary);box-shadow:0 4px 12px #2563eb33}.metric-card.large{grid-column:span 2}.card-header{margin-bottom:1.5rem}.card-header h3{color:var(--text-primary);align-items:center;gap:.5rem;margin:0 0 .5rem;font-size:1.2rem;display:flex}.card-header h3 svg{color:var(--accent-primary)}.card-subtitle{color:var(--text-muted);margin:0;font-size:.9rem}.chart-container{width:100%;height:200px;margin-top:1rem;position:relative}.chart-container.large{height:250px}.tsb-status{border-radius:8px;align-items:center;gap:1rem;margin-bottom:1rem;padding:1rem;display:flex}.tsb-label{color:var(--text-secondary);font-size:.9rem}.tsb-value{font-size:1.3rem;font-weight:700}.tsb-number{color:var(--text-muted);margin-left:auto;font-size:.95rem}.activity-table-container{overflow-x:auto}.activity-table{border-collapse:collapse;width:100%;font-size:.95rem}.activity-table thead{background:var(--bg-elevated);border-bottom:2px solid var(--border-default)}.activity-table th{text-align:left;color:var(--text-secondary);text-transform:uppercase;letter-spacing:.5px;padding:.75rem 1rem;font-size:.85rem;font-weight:600}.activity-table tbody tr{border-bottom:1px solid var(--border-default);transition:all .2s}.activity-table tbody tr:hover{background:var(--bg-elevated)}.activity-table tbody tr:last-child{border-bottom:none}.activity-table td{color:var(--text-primary);padding:1rem}.activity-type-cell{font-weight:600}.activity-type-content{align-items:center;gap:.75rem;display:flex}.activity-type-content .activity-icon{color:var(--accent-primary);flex-shrink:0;font-size:1.3rem}.activity-distance,.activity-duration{color:var(--text-secondary)}.activity-sessions{text-align:center;color:var(--accent-primary);font-weight:600}.zones-container{grid-template-columns:1fr 1fr;gap:1.5rem;margin-bottom:2rem;display:grid}.fitness-charts-container{border-top:2px solid var(--border-default);grid-template-columns:repeat(3,1fr);gap:1.5rem;margin-bottom:2rem;padding-top:2rem;display:grid}.zones-list{flex-direction:column;gap:.75rem;display:flex}.zone-row{background:var(--bg-elevated);border-radius:6px;grid-template-columns:4px 1fr auto;align-items:center;gap:1rem;padding:.75rem;transition:all .2s;display:grid}.zone-row:hover{background:var(--bg-tertiary)}.zone-color{border-radius:2px;align-self:stretch;width:4px;height:100%}.zone-info{flex-direction:column;gap:.25rem;display:flex}.zone-name{color:var(--text-primary);font-size:.95rem;font-weight:600}.zone-range{color:var(--text-secondary);font-family:Courier New,monospace;font-size:.85rem}.zone-description{color:var(--text-muted);text-align:right;font-size:.85rem}.health-metrics-section{margin-bottom:2rem}.health-metrics-section h2{color:var(--text-primary);margin:0 0 .5rem;font-size:1.5rem}.section-subtitle{color:var(--text-secondary);margin:0 0 1.5rem;font-size:.95rem}.health-charts-grid{grid-template-columns:repeat(2,1fr);gap:1.5rem;display:grid}.chart-stats{flex-direction:column;align-items:flex-end;gap:.25rem;font-size:.8rem;display:flex}.stat-avg{color:var(--text-secondary)}.stat-current{color:var(--accent-primary);align-items:center;gap:.5rem;font-weight:600;display:flex}.hrv-status{letter-spacing:.5px;border-radius:4px;padding:2px 8px;font-size:.7rem;font-weight:700;display:inline-block}.chart-description{border-left:3px solid var(--accent-primary);color:var(--text-secondary);background:#8b5cf60d;border-radius:4px;margin:.75rem 0 0;padding:.75rem;font-size:.85rem;line-height:1.5}.health-metrics-placeholder{border:1px dashed var(--border-default);text-align:center;background:#ffffff08;border-radius:12px;padding:2rem}.coming-soon{color:var(--text-muted);margin:0;font-size:1rem}.alert{border-radius:8px;margin-bottom:1.5rem;padding:1rem 1.5rem}.alert-error{border:1px solid var(--danger);color:var(--danger);background:#ef44441a}@media (width<=1400px){.metric-card.large{grid-column:span 1}}@media (width<=1200px){.fitness-charts-container,.health-charts-grid{grid-template-columns:1fr}}@media (width<=900px){.metrics-grid{grid-template-columns:1fr}.metric-card.large{grid-column:span 1}.zones-container,.fitness-charts-container{grid-template-columns:1fr}.summary-grid{grid-template-columns:repeat(2,1fr)}}@media (width<=600px){.home-panel{padding:.4rem .25rem}.panel-header h1{font-size:1.5rem}.zones-container,.fitness-charts-container{grid-template-columns:1fr}.metric-card{padding:1rem}.summary-grid{grid-template-columns:1fr}.summary-item{padding:.75rem}.zone-row{grid-template-columns:4px 1fr;gap:.75rem}.zone-description{text-align:left;grid-column:2;margin-top:.25rem;font-size:.8rem}}.summary-item.clickable,.tsb-status.clickable{cursor:pointer;transition:all .25s cubic-bezier(.4,0,.2,1);position:relative}.summary-item.clickable:hover{border-color:#38bdf8;transform:translateY(-3px);box-shadow:0 8px 24px #38bdf833}.tsb-status.clickable:hover{filter:brightness(1.15);transform:translateY(-2px);box-shadow:0 4px 12px #0003}.info-badge-icon{opacity:.65;vertical-align:middle;background:#ffffff26;border-radius:4px;justify-content:center;align-items:center;margin-left:4px;padding:1px 4px;font-size:.75rem;display:inline-flex}.tsb-help-modal-overlay{-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);z-index:2000;background:#000000b3;justify-content:center;align-items:center;animation:.25s ease-out fadeInModal;display:flex;position:fixed;inset:0}.tsb-help-modal{color:#f8fafc;background:#111a2e;border:1px solid #38bdf840;border-radius:16px;width:90%;max-width:600px;max-height:90vh;padding:2rem;animation:.3s cubic-bezier(.34,1.56,.64,1) slideUpModal;overflow-y:auto;box-shadow:0 20px 50px #00000080,0 0 20px #38bdf81a}.tsb-help-modal::-webkit-scrollbar{width:6px}.tsb-help-modal::-webkit-scrollbar-track{background:#0000001a;border-radius:3px}.tsb-help-modal::-webkit-scrollbar-thumb{background:#ffffff26;border-radius:3px}.modal-header{border-bottom:1px solid #ffffff1a;justify-content:space-between;align-items:center;margin-bottom:1.25rem;padding-bottom:1rem;display:flex}.modal-header h3{color:#38bdf8;margin:0;font-size:1.25rem}.close-btn{color:#94a3b8;cursor:pointer;background:0 0;border:none;font-size:1.2rem;transition:color .2s}.close-btn:hover{color:#ef4444}.modal-intro{color:#cbd5e1;margin:0 0 1.5rem;font-size:.95rem;line-height:1.6}.tsb-zones-list{flex-direction:column;gap:1rem;display:flex}.tsb-zone-item{background:#ffffff05;border-left-style:solid;border-left-width:4px;border-radius:8px;padding:1rem;transition:background .2s}.tsb-zone-item:hover{background:#ffffff0a}.zone-header{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:.5rem;display:flex}@keyframes fadeInModal{0%{opacity:0}to{opacity:1}}@keyframes slideUpModal{0%{opacity:0;transform:translateY(30px)scale(.95)}to{opacity:1;transform:translateY(0)scale(1)}}.weight-range-buttons{background:#ffffff0d;border:1px solid #ffffff1a;border-radius:8px;gap:.25rem;padding:3px;display:flex}.btn-range{color:var(--text-secondary);cursor:pointer;background:0 0;border:none;border-radius:6px;padding:.35rem .85rem;font-size:.8rem;font-weight:600;transition:all .2s cubic-bezier(.4,0,.2,1)}.btn-range:hover{color:var(--text-primary);background:#ffffff0d}.btn-range.active{background:var(--accent-primary);color:#fff;box-shadow:0 2px 8px #2563eb4d}.steps-range-buttons{flex-shrink:0;gap:.3rem;display:flex}.weight-card{border-color:#38bdf840;box-shadow:0 4px 20px #38bdf80d}.weight-card:hover{border-color:#38bdf8;box-shadow:0 6px 24px #38bdf826}.weight-legend-buttons{flex-wrap:wrap;gap:.5rem;margin-top:.85rem;display:flex}.legend-toggle-btn{border:1px solid var(--border-default);background:var(--bg-elevated);color:var(--text-muted);cursor:pointer;border-radius:999px;align-items:center;gap:.45rem;padding:.35rem .7rem;font-size:.8rem;font-weight:600;transition:all .2s;display:inline-flex}.legend-toggle-btn:hover{border-color:var(--accent-primary);color:var(--text-primary)}.legend-toggle-btn.active{border-color:var(--accent-primary);color:var(--text-primary);background:#38bdf814}.legend-dot{border-radius:999px;width:10px;height:10px;display:inline-block}.weekly-summary-section{border-top:1px dashed #ffffff26;margin-top:2rem;padding-top:1.5rem}.weekly-summary-section h4{color:var(--text-primary);justify-content:center;align-items:center;gap:.5rem;margin:0 0 1rem;font-size:1.1rem;display:flex}.weekly-summary-section h4 svg{color:var(--accent-primary)}.weekly-summary-table-container{border:1px solid var(--border-default);background:var(--bg-secondary);border-radius:10px;overflow-x:auto}.weekly-summary-table{border-collapse:collapse;text-align:left;width:100%;font-size:.95rem}.weekly-summary-table th{background:var(--bg-elevated);color:var(--text-secondary);text-transform:uppercase;letter-spacing:.5px;border-bottom:1px solid var(--border-default);padding:.75rem 1.25rem;font-size:.85rem;font-weight:600}.weekly-summary-table td{color:var(--text-primary);border-bottom:1px solid var(--border-default);padding:1rem 1.25rem}.weekly-summary-table tbody tr:last-child td{border-bottom:none}.weekly-summary-table tbody tr:hover{background:var(--bg-elevated)}.weekly-label-cell{align-items:center;gap:.75rem;font-weight:600;display:flex}.current-week-row{background:#8b5cf60a}.current-week-row:hover{background:#8b5cf614!important}.current-week-badge{background:linear-gradient(135deg, var(--accent-primary), #1d4ed8);color:#fff;text-transform:uppercase;letter-spacing:.5px;border-radius:12px;padding:2px 8px;font-size:.75rem;font-weight:700;box-shadow:0 2px 6px #2563eb33}.weekly-hours-cell{color:var(--accent-primary);font-weight:700}.weekly-tss-cell{color:var(--text-primary);font-weight:700}.btn-power-curve{color:#0f172a;cursor:pointer;white-space:nowrap;background:linear-gradient(135deg,#f59e0b,#d97706);border:none;border-radius:10px;align-items:center;gap:.5rem;padding:.55rem 1.1rem;font-size:.875rem;font-weight:700;transition:all .25s cubic-bezier(.4,0,.2,1);display:inline-flex;box-shadow:0 4px 14px #f59e0b59}.btn-power-curve:hover{background:linear-gradient(135deg,#fbbf24,#f59e0b);transform:translateY(-2px);box-shadow:0 8px 24px #f59e0b80}.btn-power-curve:active{transform:translateY(0)}.btn-power-curve svg{font-size:.9rem}.btn-sync-strava{color:#fff;cursor:pointer;white-space:nowrap;background:linear-gradient(135deg,#fc4c02,#e23c02);border:none;border-radius:10px;align-items:center;gap:.5rem;padding:.55rem 1.1rem;font-size:.875rem;font-weight:700;transition:all .25s;display:inline-flex;box-shadow:0 4px 14px #fc4c0259}.btn-sync-strava:hover:not(:disabled){transform:translateY(-2px);box-shadow:0 8px 24px #fc4c0280}.btn-sync-strava:disabled{opacity:.5;cursor:not-allowed}.btn-sync-garmin{color:#fff;cursor:pointer;white-space:nowrap;background:linear-gradient(135deg,#00aeef,#007bb5);border:none;border-radius:10px;align-items:center;gap:.5rem;padding:.55rem 1.1rem;font-size:.875rem;font-weight:700;transition:all .25s;display:inline-flex;box-shadow:0 4px 14px #00aeef59}.btn-sync-garmin:hover:not(:disabled){transform:translateY(-2px);box-shadow:0 8px 24px #00aeef80}.btn-sync-garmin:disabled{opacity:.5;cursor:not-allowed}.btn-sync-withings{color:#fff;cursor:pointer;white-space:nowrap;background:linear-gradient(135deg,#00a6d6,#0674a8);border:none;border-radius:10px;align-items:center;gap:.5rem;padding:.55rem 1.1rem;font-size:.875rem;font-weight:700;transition:all .25s;display:inline-flex;box-shadow:0 4px 14px #00a6d659}.btn-sync-withings:hover:not(:disabled){transform:translateY(-2px);box-shadow:0 8px 24px #00a6d680}.btn-sync-withings:disabled{opacity:.5;cursor:not-allowed}.sync-icon-spinning{animation:1s linear infinite spin-icon}@keyframes spin-icon{to{transform:rotate(360deg)}}.user-stats{margin-top:1rem;padding:0}.loading-stats{text-align:center;color:var(--text-muted);padding:1rem;font-size:.9rem}.stats-section{border-bottom:1px solid var(--border-default);padding:1rem 0}.stats-section:last-child{border-bottom:none}.stats-section.compact{padding:.75rem 0}.stats-title{color:var(--text-secondary);text-transform:uppercase;letter-spacing:.5px;margin:0 0 .75rem;padding:0 1rem;font-size:.85rem;font-weight:600}.stat-item{align-items:flex-start;gap:.75rem;padding:.5rem 1rem;transition:background .2s;display:flex}.stat-item:hover{background:var(--bg-elevated)}.stat-icon{flex-shrink:0;margin-top:.1rem;font-size:1.2rem}.stat-content{flex:1;min-width:0}.stat-label{color:var(--text-muted);margin-bottom:.15rem;font-size:.8rem}.stat-value{color:var(--text-primary);margin-bottom:.15rem;font-size:1.1rem;font-weight:700}.stat-trend{align-items:center;gap:.25rem;font-size:.75rem;font-weight:600;display:flex}.stat-subtext{color:var(--text-muted);font-size:.75rem}.stat-item-compact{align-items:center;gap:.5rem;padding:.4rem 1rem;transition:background .2s;display:flex}.stat-item-compact:hover{background:var(--bg-elevated)}.stat-icon-small{flex-shrink:0;font-size:1rem}.stat-content-compact{flex:1;justify-content:space-between;align-items:center;display:flex}.stat-label-small{color:var(--text-muted);font-size:.75rem}.stat-value-small{color:var(--text-primary);font-size:.9rem;font-weight:600}.stat-row{grid-template-columns:repeat(3,1fr);gap:.5rem;padding:0 1rem;display:grid}.stat-row-2{grid-template-columns:repeat(2,1fr)}.stat-mini{background:var(--bg-elevated);border:1px solid var(--border-default);border-radius:6px;flex-direction:column;align-items:center;gap:.25rem;padding:.5rem;transition:all .2s;display:flex}.stat-mini:hover{border-color:var(--accent-primary);transform:translateY(-2px)}.mini-icon{color:var(--accent-primary);font-size:1rem}.mini-label{color:var(--text-muted);text-transform:uppercase;letter-spacing:.3px;text-align:center;font-size:.7rem}.mini-value{color:var(--text-primary);text-align:center;font-size:.85rem;font-weight:600}.condition-badge{color:#fff;border-radius:8px;flex-direction:column;align-items:center;gap:.25rem;margin:.75rem 1rem;padding:.75rem;display:flex;box-shadow:0 2px 8px #0000004d}.condition-icon{font-size:1.5rem}.condition-text{text-transform:uppercase;letter-spacing:.5px;font-size:.9rem;font-weight:700}.condition-value{opacity:.9;font-size:.75rem}@media (width<=768px){.stat-row{grid-template-columns:1fr 1fr}.stat-mini:last-child{grid-column:span 2}}.chat-interface-compact{background:#16213e;flex-direction:column;height:100%;display:flex}.chat-messages-scroll{background:#16213e;flex:1;padding:15px;overflow-y:auto}.chat-messages-scroll::-webkit-scrollbar{width:6px}.chat-messages-scroll::-webkit-scrollbar-track{background:#ffffff0d}.chat-messages-scroll::-webkit-scrollbar-thumb{background:#fff3;border-radius:3px}.chat-messages-scroll::-webkit-scrollbar-thumb:hover{background:#ffffff4d}.chat-welcome{text-align:center;padding:20px 10px}.chat-welcome .chat-message.system{color:#a8dadc;background:#e9456026;border-left:3px solid #e94560;border-radius:12px;margin-bottom:15px;padding:15px}.chat-welcome .chat-message.system p{color:#a8dadc;margin:5px 0;font-size:14px}.chat-examples{text-align:left;background:#ffffff0d;border:1px solid #ffffff1a;border-radius:8px;padding:12px}.chat-examples small{color:#a8dadc;font-weight:600}.chat-examples ul{margin:8px 0 0;padding-left:20px}.chat-examples li{color:#8b949e;margin:5px 0;font-size:13px}.chat-message{margin-bottom:15px;animation:.3s ease-out slideIn}@keyframes slideIn{0%{opacity:0;transform:translateY(-10px)}to{opacity:1;transform:translateY(0)}}.msg-header{color:#8b949e;justify-content:space-between;align-items:center;margin-bottom:6px;font-size:12px;display:flex}.msg-icon{font-size:16px}.msg-time{color:#8b949e;font-size:11px}.msg-content{color:#c9d1d9;white-space:pre-wrap;word-wrap:break-word;background:#ffffff0d;border:1px solid #ffffff14;border-radius:10px;padding:12px 14px;font-size:14px;line-height:1.5;box-shadow:0 2px 8px #0000004d}.chat-message.user .msg-content{color:#fff;background:linear-gradient(135deg,#667eea 0%,#764ba2 100%);border:none;margin-left:20px;box-shadow:0 4px 12px #667eea4d}.chat-message.assistant .msg-content{color:#e6edf3;background:#ffffff14;border:1px solid #ffffff1a;margin-right:20px}.typing-animation{gap:4px;margin-right:8px;display:inline-flex}.typing-animation span{background:#667eea;border-radius:50%;width:6px;height:6px;animation:1.4s infinite typing}.typing-animation span:nth-child(2){animation-delay:.2s}.typing-animation span:nth-child(3){animation-delay:.4s}@keyframes typing{0%,60%,to{opacity:.7;transform:translateY(0)}30%{opacity:1;transform:translateY(-8px)}}.chat-alert-error{color:#ff6b6b;text-align:center;background:#e9456026;border:1px solid #e945604d;border-radius:8px;margin:10px 0;padding:10px;font-size:13px}.chat-input-form{background:#16213e;border-top:1px solid #ffffff1a;gap:8px;padding:12px;display:flex}.chat-text-field{color:#e6edf3;background:#ffffff0d;border:1px solid #ffffff1a;border-radius:8px;outline:none;flex:1;padding:10px 12px;font-family:inherit;font-size:14px;transition:all .2s}.chat-text-field::placeholder{color:#8b949e}.chat-text-field:focus{background:#ffffff14;border-color:#667eea;box-shadow:0 0 0 2px #667eea33}.chat-text-field:disabled{cursor:not-allowed;opacity:.5;background:#ffffff08}.chat-send-button{color:#fff;cursor:pointer;background:linear-gradient(135deg,#667eea 0%,#764ba2 100%);border:none;border-radius:8px;min-width:50px;padding:10px 16px;font-size:16px;transition:all .2s;box-shadow:0 2px 8px #667eea4d}.chat-send-button:hover:not(:disabled){transform:translateY(-1px);box-shadow:0 4px 12px #667eea66}.chat-send-button:disabled{opacity:.5;cursor:not-allowed;box-shadow:none;transform:none}.chat-model-selector-container{color:#a8dadc;background:#111a30;border-top:1px solid #ffffff0d;align-items:center;gap:10px;padding:8px 12px;font-size:13px;display:flex}.chat-model-label{white-space:nowrap;color:#8b949e;text-transform:uppercase;letter-spacing:.5px;font-size:12px;font-weight:600}.chat-model-select{color:#c9d1d9;cursor:pointer;background:#ffffff0d;border:1px solid #ffffff1a;border-radius:6px;outline:none;flex:1;padding:6px 10px;font-family:inherit;font-size:13px;transition:all .2s}.chat-model-select:focus{background:#ffffff14;border-color:#667eea;box-shadow:0 0 0 2px #667eea33}.chat-model-select:disabled{opacity:.5;cursor:not-allowed}.chat-model-select option{color:#e6edf3;background:#16213e}@media (width<=768px){.chat-messages-scroll{padding:10px}.chat-message.user .msg-content{margin-left:10px}.chat-message.assistant .msg-content{margin-right:10px}.msg-content{padding:10px 12px;font-size:13px}}.msg-content{white-space:normal!important}.chat-p{white-space:pre-wrap;margin:0 0 10px}.chat-p:last-child{margin-bottom:0}.content-spacer{height:10px}.msg-content h1,.msg-content h2,.msg-content h3{color:#a8dadc;margin:15px 0 8px;font-weight:600;line-height:1.3}.msg-content h1{font-size:1.3rem}.msg-content h2{font-size:1.15rem}.msg-content h3{font-size:1.05rem}.chat-li,.chat-li-numbered{color:#c9d1d9;margin:4px 0 4px 20px;font-size:13.5px;line-height:1.4}.chat-li{list-style-type:disc}.chat-li-numbered{list-style-type:decimal}.table-responsive-container{-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background:#111a3099;border:1px solid #ffffff1f;border-radius:8px;width:100%;margin:15px 0;overflow-x:auto;box-shadow:0 4px 15px #0003}.table-responsive-container::-webkit-scrollbar{height:6px}.table-responsive-container::-webkit-scrollbar-track{background:#ffffff0d}.table-responsive-container::-webkit-scrollbar-thumb{background:#fff3;border-radius:3px}.elegant-chat-table{border-collapse:collapse;text-align:left;width:100%;font-size:13px}.elegant-chat-table th{color:#a8dadc;text-transform:uppercase;letter-spacing:.8px;background:#667eea26;border-bottom:2px solid #667eea4d;padding:10px 12px;font-size:11px;font-weight:600}.elegant-chat-table td{color:#c9d1d9;border-bottom:1px solid #ffffff14;padding:8px 12px}.elegant-chat-table tr:last-child td{border-bottom:none}.elegant-chat-table tr:hover{background:#ffffff08}.elegant-chart-container{-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background:#111a308c;border:1px solid #ffffff1f;border-radius:10px;margin:15px 0;padding:12px;box-shadow:0 4px 15px #0003}.elegant-chart-title{color:#a8dadc;text-align:center;text-transform:uppercase;letter-spacing:.8px;margin:0 0 10px;font-size:11px;font-weight:600}.chat-code-block{color:#c9d1d9;background:#111a30;border:1px solid #ffffff1a;border-radius:6px;margin:10px 0;padding:10px;font-family:monospace;font-size:12px;overflow-x:auto}.chat-textarea{resize:none;box-sizing:border-box;min-height:42px;max-height:150px;padding-top:8px;padding-bottom:8px;line-height:1.5}.chat-textarea::-webkit-scrollbar{width:5px}.chat-textarea::-webkit-scrollbar-track{background:0 0}.chat-textarea::-webkit-scrollbar-thumb{background:#ffffff26;border-radius:3px}.chat-quick-actions{background:#16213e;border-top:1px solid #ffffff0d;flex-wrap:wrap;gap:8px;padding:8px 12px;display:flex}.quick-action-btn{color:#c9d1d9;cursor:pointer;white-space:nowrap;background:#ffffff0d;border:1px solid #ffffff1a;border-radius:20px;padding:6px 12px;font-size:12px;transition:all .2s}.quick-action-btn:hover:not(:disabled){color:#a8dadc;background:#667eea26;border-color:#667eea;transform:translateY(-1px)}.quick-action-btn:disabled{opacity:.5;cursor:not-allowed}.quick-weight-input-container{background:#667eea1a;border:1px solid #667eea4d;border-radius:20px;align-items:center;gap:6px;padding:4px 10px;animation:.2s ease-out fadeInQuickWeight;display:flex}@keyframes fadeInQuickWeight{0%{opacity:0;transform:scale(.95)}to{opacity:1;transform:scale(1)}}.weight-input-label{color:#a8dadc;font-size:12px;font-weight:500}.quick-weight-input{color:#fff;text-align:center;background:#ffffff0d;border:1px solid #ffffff26;border-radius:12px;outline:none;width:55px;padding:2px 6px;font-size:12px;transition:all .2s}.quick-weight-input:focus{background:#ffffff1a;border-color:#667eea}.quick-weight-input::-webkit-outer-spin-button{appearance:none;margin:0}.quick-weight-input::-webkit-inner-spin-button{appearance:none;margin:0}.quick-weight-input[type=number]{appearance:textfield}.weight-input-unit{color:#8b949e;font-size:12px}.quick-weight-confirm-btn,.quick-weight-cancel-btn{cursor:pointer;background:0 0;border:none;border-radius:50%;justify-content:center;align-items:center;width:20px;height:20px;font-size:11px;transition:all .2s;display:flex}.quick-weight-confirm-btn{color:#4caf50;background:#4caf5026}.quick-weight-confirm-btn:hover{background:#4caf504d;transform:translateY(-1px)}.quick-weight-cancel-btn{color:#ff5252;background:#ff525226}.quick-weight-cancel-btn:hover{background:#ff52524d;transform:translateY(-1px)}.spokes-badges-container{border-top:1px solid #ffffff14;flex-wrap:wrap;align-items:center;gap:6px;margin-top:8px;padding-top:6px;display:flex}.spokes-badge-label{color:#8b949e;text-transform:uppercase;letter-spacing:.5px;font-size:11px;font-weight:600}.spoke-badge{color:#a8dadc;background:#667eea26;border:1px solid #667eea4d;border-radius:12px;align-items:center;padding:2px 8px;font-size:11px;font-weight:500;display:inline-flex}.attached-images-preview-bar{background:#16213e;border-top:1px solid #ffffff0d;flex-wrap:wrap;gap:10px;padding:8px 12px;display:flex}.preview-thumbnail-container{border:1.5px solid #667eea;border-radius:6px;width:60px;height:60px;animation:.2s ease-out fadeInQuickWeight;position:relative;overflow:hidden;box-shadow:0 4px 8px #0000004d}.preview-thumbnail{object-fit:cover;width:100%;height:100%}.remove-preview-btn{color:#ff5252;cursor:pointer;background:#000000b3;border:none;border-radius:50%;justify-content:center;align-items:center;width:16px;height:16px;font-size:9px;transition:all .2s;display:flex;position:absolute;top:2px;right:2px}.remove-preview-btn:hover{color:#fff;background:#ff5252}.chat-attach-button{color:#a8dadc;cursor:pointer;-webkit-user-select:none;user-select:none;background:#ffffff0d;border:1px solid #ffffff1a;border-radius:8px;justify-content:center;align-items:center;min-width:42px;height:42px;padding:10px;font-size:18px;transition:all .2s;display:flex}.chat-attach-button:hover{color:#fff;background:#667eea26;border-color:#667eea}.chat-message-images-preview{flex-wrap:wrap;gap:8px;margin-bottom:8px;display:flex}.chat-message-attached-image{object-fit:cover;cursor:zoom-in;border:1px solid #ffffff26;border-radius:8px;max-width:200px;max-height:150px;transition:transform .2s;box-shadow:0 4px 10px #0003}.chat-model-select-wrapper{flex:1;align-items:center;gap:8px;display:flex}.chat-debug-toggle-btn{color:#8b949e;cursor:pointer;background:#ffffff0d;border:1px solid #ffffff1a;border-radius:6px;align-items:center;gap:4px;padding:5px 12px;font-size:11px;font-weight:600;transition:all .25s cubic-bezier(.4,0,.2,1);display:flex}.chat-debug-toggle-btn:hover{color:#fff;background:#ffffff1a;border-color:#fff3}.chat-debug-toggle-btn.active{color:#fff;background:linear-gradient(135deg,#10b981 0%,#059669 100%);border-color:#10b981;box-shadow:0 0 10px #10b9814d}.chat-debug-prompts-container{background:#0f172a;border:1px solid #ffffff1a;border-radius:8px;margin-bottom:12px;overflow:hidden;box-shadow:0 4px 12px #00000040}.debug-toggle-header{color:#94a3b8;cursor:pointer;text-align:left;background:#ffffff05;border:none;justify-content:space-between;align-items:center;width:100%;padding:10px 14px;font-size:12px;font-weight:600;transition:background .2s;display:flex}.debug-toggle-header:hover{color:#f1f5f9;background:#ffffff0d}.debug-chevron{color:#64748b;font-size:10px;transition:transform .2s}.debug-toggle-header.open .debug-chevron{color:#94a3b8}.debug-panel-content{background:#090d16;border-top:1px solid #ffffff14;padding:12px}.debug-tabs{border-bottom:1px solid #ffffff14;flex-wrap:wrap;gap:5px;margin-bottom:12px;padding-bottom:8px;display:flex}.debug-tab-btn{color:#64748b;cursor:pointer;background:#ffffff08;border:1px solid #ffffff14;border-radius:4px;padding:4px 8px;font-size:11px;font-weight:500;transition:all .2s}.debug-tab-btn:hover{color:#94a3b8;background:#ffffff14}.debug-tab-btn.active{color:#a5b4fc;background:#6366f126;border-color:#6366f1}.debug-prompt-body{max-height:400px;padding-right:5px;overflow-y:auto}.debug-prompt-body::-webkit-scrollbar{width:4px}.debug-prompt-body::-webkit-scrollbar-thumb{background:#ffffff26;border-radius:2px}.debug-prompt-section{animation:.2s ease-out fadeIn}.debug-prompt-title{color:#38bdf8;text-transform:uppercase;letter-spacing:.5px;margin-bottom:5px;font-size:11px;font-weight:600}.debug-code-box{background:#030712;border:1px solid #ffffff0d;border-radius:6px;max-height:250px;margin:0 0 10px;padding:10px;overflow-x:auto}.debug-code-box code{color:#cbd5e1;white-space:pre-wrap;word-break:break-all;font-family:Fira Code,Courier New,Courier,monospace;font-size:11px;line-height:1.4}.chat-message-attached-image:hover{transform:scale(1.02)}.elegant-image-card{-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background:#111a308c;border:1px solid #ffffff1f;border-radius:12px;max-width:100%;margin:15px 0;padding:12px;box-shadow:0 8px 32px #0000004d}.elegant-image-wrapper{cursor:zoom-in;border:1.5px solid #667eea66;border-radius:8px;transition:all .3s cubic-bezier(.4,0,.2,1);position:relative;overflow:hidden;box-shadow:0 4px 15px #00000040}.elegant-image-wrapper:hover{border-color:#667eea;transform:translateY(-2px);box-shadow:0 8px 24px #667eea40}.elegant-image-element{object-fit:contain;width:100%;height:auto;max-height:350px;transition:transform .3s;display:block}.elegant-image-wrapper:hover .elegant-image-element{transform:scale(1.02)}.elegant-image-overlay{opacity:0;background:#0006;justify-content:center;align-items:center;transition:opacity .25s;display:flex;position:absolute;inset:0}.elegant-image-wrapper:hover .elegant-image-overlay{opacity:1}.elegant-image-zoom-icon{color:#fff;-webkit-backdrop-filter:blur(5px);backdrop-filter:blur(5px);letter-spacing:.5px;background:#16213ed9;border:1px solid #fff3;border-radius:30px;padding:8px 16px;font-size:13px;font-weight:500;box-shadow:0 4px 15px #0006}.elegant-image-modal-backdrop{z-index:99999;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);cursor:zoom-out;box-sizing:border-box;background:#0a0f1ef2;justify-content:center;align-items:center;width:100vw;height:100vh;padding:20px;animation:.25s ease-out modalFadeIn;display:flex;position:fixed;inset:0}@keyframes modalFadeIn{0%{opacity:0}to{opacity:1}}.elegant-image-modal-content{cursor:default;flex-direction:column;align-items:center;width:auto;max-width:95vw;height:auto;max-height:90vh;animation:.3s cubic-bezier(.34,1.56,.64,1) modalScaleUp;display:flex;position:relative}@keyframes modalScaleUp{0%{opacity:0;transform:scale(.9)}to{opacity:1;transform:scale(1)}}.elegant-image-modal-element{object-fit:contain;border:2px solid #ffffff26;border-radius:8px;width:auto;max-width:95vw;height:auto;max-height:85vh;box-shadow:0 10px 40px #0009}.elegant-image-download-floating-btn{color:#a8dadc;cursor:pointer;z-index:5;background:#16213ee6;border:1px solid #fff3;border-radius:8px;justify-content:center;align-items:center;width:32px;height:32px;transition:all .2s cubic-bezier(.4,0,.2,1);display:flex;position:absolute;bottom:10px;right:10px;box-shadow:0 4px 10px #0000004d}.elegant-image-download-floating-btn:hover{color:#fff;background:#667eea;border-color:#667eea;transform:translateY(-1px)scale(1.05);box-shadow:0 6px 15px #667eea66}.elegant-image-modal-actions{align-items:center;gap:10px;display:flex;position:absolute;top:-45px;right:0}.elegant-image-modal-action-btn{color:#fff;cursor:pointer;-webkit-backdrop-filter:blur(5px);backdrop-filter:blur(5px);background:#ffffff1a;border:1px solid #fff3;border-radius:20px;align-items:center;gap:6px;padding:6px 12px;font-size:13px;font-weight:500;text-decoration:none;transition:all .2s cubic-bezier(.4,0,.2,1);display:inline-flex;box-shadow:0 4px 10px #00000040}.elegant-image-modal-action-btn svg{display:block}.elegant-image-modal-action-btn:hover{color:#fff;background:#667eea;border-color:#667eea;transform:translateY(-1px);box-shadow:0 6px 15px #667eea66}.elegant-image-modal-action-btn.close{border-radius:50%;justify-content:center;width:32px;height:32px;padding:0}.elegant-image-modal-action-btn.close:hover{background:#ff5252;border-color:#ff5252;transform:translateY(-1px)rotate(90deg);box-shadow:0 6px 15px #ff525266}.elegant-image-modal-caption{color:#a8dadc;text-align:center;text-shadow:0 2px 4px #00000080;letter-spacing:.5px;margin-top:15px;font-size:14px;font-weight:500}.elegant-video-card{-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background:#111a308c;border:1px solid #ffffff1f;border-radius:12px;max-width:100%;margin:15px 0;padding:12px;box-shadow:0 8px 32px #0000004d}.elegant-video-wrapper{background:#000;border:1.5px solid #667eea66;border-radius:8px;transition:all .3s cubic-bezier(.4,0,.2,1);position:relative;overflow:hidden;box-shadow:0 4px 15px #00000040}.elegant-video-wrapper:hover{border-color:#667eea;box-shadow:0 8px 24px #667eea40}.elegant-video-element{object-fit:contain;width:100%;height:auto;max-height:350px;display:block}.elegant-video-overlay-actions{z-index:5;opacity:.8;gap:8px;transition:opacity .2s;display:flex;position:absolute;top:10px;right:10px}.elegant-video-wrapper:hover .elegant-video-overlay-actions{opacity:1}.elegant-video-zoom-btn{color:#fff;cursor:pointer;background:#16213ee6;border:1px solid #fff3;border-radius:6px;padding:4px 10px;font-size:11px;font-weight:500;transition:all .2s;box-shadow:0 2px 5px #0000004d}.elegant-video-zoom-btn:hover{background:#667eea;border-color:#667eea}.elegant-video-download-floating-btn{color:#a8dadc;cursor:pointer;background:#16213ee6;border:1px solid #fff3;border-radius:6px;justify-content:center;align-items:center;width:26px;height:26px;transition:all .2s;display:flex;box-shadow:0 2px 5px #0000004d}.elegant-video-download-floating-btn:hover{color:#fff;background:#667eea;border-color:#667eea}.elegant-video-modal-backdrop{z-index:99999;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);box-sizing:border-box;background:#0a0f1ef2;justify-content:center;align-items:center;width:100vw;height:100vh;padding:20px;animation:.25s ease-out modalFadeIn;display:flex;position:fixed;inset:0}.elegant-video-modal-content{flex-direction:column;align-items:center;width:auto;max-width:95vw;height:auto;max-height:90vh;animation:.3s cubic-bezier(.34,1.56,.64,1) modalScaleUp;display:flex;position:relative}.elegant-video-modal-element{object-fit:contain;background:#000;border:2px solid #ffffff26;border-radius:8px;width:auto;max-width:95vw;height:auto;max-height:85vh;box-shadow:0 10px 40px #0009}.elegant-video-modal-actions{align-items:center;gap:10px;display:flex;position:absolute;top:-45px;right:0}.elegant-video-modal-action-btn{color:#fff;cursor:pointer;-webkit-backdrop-filter:blur(5px);backdrop-filter:blur(5px);background:#ffffff1a;border:1px solid #fff3;border-radius:20px;align-items:center;gap:6px;padding:6px 12px;font-size:13px;font-weight:500;text-decoration:none;transition:all .2s cubic-bezier(.4,0,.2,1);display:inline-flex;box-shadow:0 4px 10px #00000040}.elegant-video-modal-action-btn:hover{color:#fff;background:#667eea;border-color:#667eea}.elegant-video-modal-action-btn.close{border-radius:50%;justify-content:center;width:32px;height:32px;padding:0}.elegant-video-modal-action-btn.close:hover{background:#ff5252;border-color:#ff5252;transform:rotate(90deg)}.elegant-video-modal-caption{color:#a8dadc;text-align:center;letter-spacing:.5px;margin-top:15px;font-size:14px;font-weight:500}.chat-message-videos-preview{flex-wrap:wrap;gap:8px;margin-bottom:8px;display:flex}.chat-message-attached-video{object-fit:cover;border:1px solid #ffffff26;border-radius:8px;max-width:200px;max-height:150px;box-shadow:0 4px 10px #0003}.metrics-grid{grid-template-columns:repeat(auto-fit,minmax(140px,1fr));gap:12px;margin-top:10px;padding:5px;display:grid}.metric-card{text-align:center;background:#1e293b66;border:1px solid #ffffff14;border-radius:8px;flex-direction:column;align-items:center;padding:12px;transition:all .2s ease-in-out;display:flex;box-shadow:0 4px 6px #00000026}.metric-card:hover{background:#1e293b99;border-color:#667eea66;transform:translateY(-2px);box-shadow:0 6px 12px #00000040}.metric-header-card{color:#94a3b8;text-transform:uppercase;letter-spacing:.8px;margin-bottom:6px;font-size:11px;font-weight:600}.metric-val{color:#f1f5f9;margin-bottom:6px;font-family:Outfit,Inter,monospace;font-size:18px;font-weight:700}.metric-desc{color:#64748b;font-size:10px;line-height:1.3}.truncated-ok{color:#10b981!important}.truncated-warning{animation:2s ease-in-out infinite pulse-truncation;color:#ef4444!important}@keyframes pulse-truncation{0%,to{opacity:1}50%{opacity:.6}}@media (width<=480px){.metrics-grid{grid-template-columns:1fr 1fr}}.thinking-accordion{-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);background:#1e293b40;border:1px dashed #ffffff1f;border-radius:8px;margin-bottom:12px;transition:all .3s;overflow:hidden}.thinking-accordion:hover{background:#1e293b66;border-color:#667eea59}.thinking-header{cursor:pointer;text-align:left;-webkit-user-select:none;user-select:none;background:0 0;border:none;outline:none;justify-content:space-between;align-items:center;width:100%;padding:10px 14px;display:flex}.thinking-title-container{align-items:center;gap:8px;display:flex}.thinking-pulse-indicator{background-color:#f59e0b;border-radius:50%;width:8px;height:8px;transition:all .3s;box-shadow:0 0 8px #f59e0b}.thinking-pulse-indicator.thinking-done{background-color:#10b981;box-shadow:0 0 6px #10b981}.thinking-pulse-indicator.thinking-active{animation:1.5s ease-in-out infinite pulse-thinking}@keyframes pulse-thinking{0%,to{opacity:.5;transform:scale(.9);box-shadow:0 0 4px #f59e0b}50%{opacity:1;transform:scale(1.25);box-shadow:0 0 10px #f59e0b}}.thinking-title{text-transform:uppercase;letter-spacing:.5px;color:#94a3b8;font-size:11px;font-weight:600}.thinking-icon{color:#64748b;font-size:10px;transition:transform .2s}.thinking-icon.open{transform:rotate(180deg)}.thinking-content{background:#0f172a33;border-top:1px solid #ffffff0d;max-height:200px;transition:all .3s;overflow-y:auto}.thinking-content::-webkit-scrollbar{width:4px}.thinking-content::-webkit-scrollbar-track{background:#ffffff05}.thinking-content::-webkit-scrollbar-thumb{background:#ffffff26;border-radius:2px}.thinking-content-text{color:#8b949e;white-space:pre-wrap;word-wrap:break-word;padding:12px 14px;font-family:Outfit,Inter,sans-serif;font-size:12.5px;font-style:italic;line-height:1.45}.chat-mic-button{color:#a8dadc;cursor:pointer;-webkit-user-select:none;user-select:none;background:#ffffff0d;border:1px solid #ffffff1a;border-radius:8px;justify-content:center;align-items:center;min-width:42px;height:42px;padding:10px;font-size:18px;transition:all .2s;display:flex}.chat-mic-button:hover:not(:disabled){color:#fff;background:#667eea26;border-color:#667eea}.chat-mic-button:disabled{opacity:.5;cursor:not-allowed}.chat-mic-button.listening{color:#ff4a6a;background:#e9456033;border-color:#e94560;animation:1.5s ease-in-out infinite mic-pulse}@keyframes mic-pulse{0%{box-shadow:0 0 #e9456066}70%{box-shadow:0 0 0 8px #e9456000}to{box-shadow:0 0 #e9456000}}.chat-server-offline-banner{color:#ff6b6b;text-align:center;background:#e945601f;border:1px solid #e9456040;border-radius:8px;justify-content:center;align-items:center;gap:8px;margin:10px 12px;padding:10px 14px;font-size:13px;font-weight:500;animation:.3s ease-out fadeIn;display:flex}.rider-profile-container{-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);color:var(--text-primary);background:#16213e80;border:1px solid #ffffff14;border-radius:20px;margin-bottom:2rem;padding:1.5rem;box-shadow:0 8px 32px #0003}.rider-profile-header{border-bottom:1px solid #ffffff1a;margin-bottom:1.5rem;padding-bottom:1rem}.rider-profile-header h3{color:#fff;align-items:center;gap:.75rem;margin:0;font-size:1.5rem;display:flex}.rider-profile-header .subtitle{color:var(--text-secondary);margin:.5rem 0 0;font-size:.95rem}.rider-profile-grid{grid-template-columns:1fr;gap:1.5rem;display:grid}@media (width>=1024px){.rider-profile-grid{grid-template-columns:1fr 1fr 1fr}}.profile-card{background:var(--bg-tertiary);border:1px solid var(--border-default);border-radius:16px;flex-direction:column;padding:1.5rem;transition:transform .3s,box-shadow .3s;display:flex;position:relative;overflow:hidden}.profile-card:hover{transform:translateY(-5px);box-shadow:0 10px 25px #0000004d}.card-icon{opacity:.05;color:#fff;font-size:6rem;position:absolute;top:-20px;right:-20px;transform:rotate(-15deg)}.card-icon.physiology{color:#3b82f6;opacity:.1}.card-icon.tank{color:#f59e0b;opacity:.1}.card-icon.behavior{color:#a855f7;opacity:.1}.profile-card h4{color:var(--text-secondary);text-transform:uppercase;letter-spacing:1px;margin:0 0 .5rem;font-size:.9rem}.profile-title{color:#fff;margin-bottom:1rem;font-size:1.4rem;font-weight:800}.profile-desc{color:var(--text-secondary);flex-grow:1;margin-bottom:1.5rem;font-size:.95rem;line-height:1.5}.radar-container{margin:-1rem 0 1rem}.wkg-stats{border-top:1px solid var(--border-default);justify-content:space-between;padding-top:1rem;display:flex}.wkg-stat{flex-direction:column;align-items:center;display:flex}.wkg-stat span{color:var(--text-secondary);font-size:.75rem}.wkg-stat strong{color:var(--text-primary);font-size:.9rem}.stat-highlight{background:#0003;border-radius:12px;flex-direction:column;justify-content:center;align-items:center;margin-top:auto;padding:1.5rem;display:flex}.stat-val{color:#fff;font-size:2.5rem;font-weight:800;line-height:1}.stat-unit{color:var(--text-secondary);margin-top:.5rem;font-size:.9rem}.pmc-panel{max-width:1600px;color:var(--text-primary);margin:0 auto;padding:2rem;animation:.3s ease-out fadeInPMC}@keyframes fadeInPMC{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}.pmc-header{flex-wrap:wrap;justify-content:space-between;align-items:flex-start;gap:1rem;margin-bottom:2rem;display:flex}.pmc-header .btn-power-curve{color:#0f172a;cursor:pointer;white-space:nowrap;background:linear-gradient(135deg,#f59e0b,#d97706);border:none;border-radius:10px;align-items:center;gap:.5rem;padding:.55rem 1.1rem;font-size:.875rem;font-weight:700;transition:all .25s cubic-bezier(.4,0,.2,1);display:inline-flex;box-shadow:0 4px 14px #f59e0b59}.pmc-header .btn-power-curve:hover{background:linear-gradient(135deg,#fbbf24,#f59e0b);transform:translateY(-2px);box-shadow:0 8px 24px #f59e0b80}.pmc-header .btn-power-curve:active{transform:translateY(0)}.pmc-header h1{background:linear-gradient(135deg,#a8dadc 0%,#38bdf8 100%);-webkit-text-fill-color:transparent;-webkit-background-clip:text;background-clip:text;align-items:center;gap:.75rem;margin:0 0 .5rem;font-size:2.2rem;display:flex}.pmc-header p{color:var(--text-secondary);margin:0;font-size:1rem}.pmc-stats-row{grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:1.5rem;margin-bottom:2rem;display:grid}.pmc-stat-card{-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);background:#16213e99;border:1px solid #ffffff14;border-radius:16px;flex-direction:column;gap:.5rem;padding:1.5rem;transition:all .3s cubic-bezier(.4,0,.2,1);display:flex;box-shadow:0 8px 32px #0003}.pmc-stat-card:hover{border-color:var(--accent-primary);transform:translateY(-4px);box-shadow:0 12px 40px #6366f126}.pmc-stat-card.highlighted{background:linear-gradient(135deg,#16213e99 0%,#6366f10d 100%);border:1.5px solid #6366f166}.pmc-stat-label{color:var(--text-secondary);text-transform:uppercase;letter-spacing:1px;font-size:.85rem;font-weight:600}.pmc-stat-value{color:#fff;font-size:1.8rem;font-weight:800}.pmc-stat-subtitle{color:var(--text-muted);font-size:.85rem}.pmc-layout-grid{grid-template-columns:3fr 1fr;gap:2rem;margin-bottom:2rem;display:grid}@media (width<=1200px){.pmc-layout-grid{grid-template-columns:1fr}}.pmc-chart-card{-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);background:#16213e66;border:1px solid #ffffff14;border-radius:20px;flex-direction:column;gap:1.5rem;padding:1.5rem;display:flex;box-shadow:0 8px 32px #0003}.pmc-controls-bar{background:#ffffff05;border:1px solid #ffffff0d;border-radius:12px;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:1.5rem;padding:1rem 1.5rem;display:flex}.pmc-timeframes{gap:.5rem;display:flex}.pmc-timeframe-btn{color:var(--text-secondary);cursor:pointer;background:#ffffff0a;border:1px solid #ffffff14;border-radius:20px;padding:.5rem 1rem;font-size:.85rem;font-weight:600;transition:all .2s}.pmc-timeframe-btn:hover{color:#fff;background:#6366f126;border-color:#6366f1}.pmc-timeframe-btn.active{color:#fff;background:#6366f1;border-color:#6366f1;box-shadow:0 4px 12px #6366f14d}.pmc-toggles{flex-wrap:wrap;gap:1.25rem;display:flex}.pmc-toggle-label{color:var(--text-secondary);cursor:pointer;-webkit-user-select:none;user-select:none;align-items:center;gap:.5rem;font-size:.9rem;font-weight:500;display:flex}.pmc-toggle-checkbox{appearance:none;cursor:pointer;border:1.5px solid #ffffff4d;border-radius:4px;outline:none;justify-content:center;align-items:center;width:18px;height:18px;transition:all .2s;display:flex}.pmc-toggle-checkbox:checked{background:#6366f1;border-color:#6366f1}.pmc-toggle-checkbox:checked:before{content:"✓";color:#fff;font-size:11px;font-weight:700}.pmc-simulation-card{-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);background:#16213e80;border:1px solid #ffffff14;border-radius:20px;flex-direction:column;gap:1.5rem;padding:1.5rem;display:flex;box-shadow:0 8px 32px #0003}.pmc-simulation-card h3{color:#fff;align-items:center;gap:.5rem;margin:0;font-size:1.2rem;display:flex}.pmc-sim-description{color:var(--text-muted);margin:0;font-size:.85rem;line-height:1.5}.pmc-sim-form{flex-direction:column;gap:1rem;display:flex}.pmc-form-group{flex-direction:column;gap:.5rem;display:flex}.pmc-form-group label{color:var(--text-secondary);text-transform:uppercase;font-size:.8rem;font-weight:600}.pmc-input{color:#fff;background:#ffffff0d;border:1px solid #ffffff1a;border-radius:8px;outline:none;padding:.75rem;font-size:.95rem;transition:all .2s}.pmc-input:focus{background:#ffffff14;border-color:#6366f1}.pmc-add-btn{color:#fff;cursor:pointer;background:linear-gradient(135deg,#6366f1 0%,#4338ca 100%);border:none;border-radius:8px;justify-content:center;align-items:center;gap:.5rem;padding:.75rem;font-size:.95rem;font-weight:600;transition:all .2s;display:flex;box-shadow:0 4px 12px #6366f133}.pmc-add-btn:hover{transform:translateY(-1px);box-shadow:0 6px 16px #6366f14d}.pmc-simulated-list-section{border-top:1px solid #ffffff14;flex-direction:column;gap:.75rem;padding-top:1rem;display:flex}.pmc-simulated-list-header{justify-content:space-between;align-items:center;display:flex}.pmc-simulated-list-header h4{color:var(--text-secondary);margin:0;font-size:.95rem}.pmc-clear-btn{color:#ff5252;cursor:pointer;background:0 0;border:none;align-items:center;gap:.25rem;font-size:.8rem;font-weight:600;transition:opacity .2s;display:flex}.pmc-clear-btn:hover{opacity:.8}.pmc-workouts-scroll{flex-direction:column;gap:.5rem;max-height:200px;padding-right:.25rem;display:flex;overflow-y:auto}.pmc-workouts-scroll::-webkit-scrollbar{width:4px}.pmc-workouts-scroll::-webkit-scrollbar-thumb{background:#ffffff26;border-radius:2px}.pmc-workout-item{background:#ffffff08;border:1px solid #ffffff0d;border-radius:8px;justify-content:space-between;align-items:center;padding:.6rem .8rem;font-size:.85rem;display:flex}.pmc-workout-info{flex-direction:column;gap:.2rem;display:flex}.pmc-workout-date{color:var(--text-secondary);font-weight:500}.pmc-workout-tss{color:#f59e0b;font-weight:700}.pmc-delete-workout-btn{color:#ff5252;cursor:pointer;background:0 0;border:none;border-radius:4px;justify-content:center;align-items:center;padding:4px;transition:background .2s;display:flex}.pmc-delete-workout-btn:hover{background:#ff525226}.pmc-no-simulated{color:var(--text-muted);text-align:center;background:#ffffff03;border:1px dashed #ffffff14;border-radius:8px;padding:1.5rem;font-size:.85rem}@media (width<=768px){.pmc-panel{padding:.5rem .25rem}.pmc-header{text-align:center;margin-bottom:1.5rem}.pmc-header h1{justify-content:center;font-size:1.6rem}.pmc-stats-row{grid-template-columns:repeat(2,1fr);gap:.75rem;margin-bottom:1.5rem}.pmc-stat-card{border-radius:12px;align-items:center;padding:1rem}.pmc-stat-value{font-size:1.4rem}.pmc-stat-label{text-align:center;font-size:.75rem}.pmc-chart-card{border-radius:12px;gap:1rem;padding:.75rem}.pmc-controls-bar{flex-direction:column;align-items:stretch;gap:1rem;padding:.75rem}.pmc-timeframes{justify-content:center}.pmc-toggles{justify-content:center;gap:.75rem}.pmc-ref-label{display:none!important}}@media (width<=480px){.pmc-stats-row{grid-template-columns:1fr}}.pmc-distribution-card{-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);background:#16213e80;border:1px solid #ffffff14;border-radius:20px;margin-bottom:2rem;padding:1.5rem;box-shadow:0 8px 32px #0003}.pmc-dist-header{border-bottom:1px solid #ffffff1a;justify-content:space-between;align-items:center;margin-bottom:1.5rem;padding-bottom:1rem;display:flex}.pmc-dist-header h3{color:#fff;align-items:center;gap:1rem;margin:0;font-size:1.2rem;display:flex}.pmc-dist-badge{color:#fff;background:#3b82f6;border-radius:12px;padding:4px 10px;font-size:.85rem;font-weight:600}.pmc-dist-summary span{color:var(--text-secondary);font-size:.95rem}.pmc-dist-bars{flex-direction:column;gap:1rem;display:flex}.pmc-dist-row{align-items:center;gap:1rem;display:flex}.pmc-dist-label{width:150px;color:var(--text-primary);font-size:.95rem;font-weight:500}.pmc-dist-bar-bg{background:#ffffff1a;border-radius:6px;flex:1;height:12px;overflow:hidden}.pmc-dist-bar-fill{border-radius:6px;height:100%;transition:width .5s}.pmc-dist-bar-fill.low-intensity{background:#10b981}.pmc-dist-bar-fill.med-intensity{background:#f59e0b}.pmc-dist-bar-fill.high-intensity{background:#ef4444}.pmc-dist-value{text-align:right;width:50px;color:var(--text-primary);font-size:.95rem;font-weight:700}.barcode-scanner-container{-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);z-index:1100;background:#0d1117d9;justify-content:center;align-items:center;padding:1.5rem;display:flex;position:fixed;inset:0}.barcode-scanner-card{background:var(--bg-secondary);border:1px solid var(--border-default);border-radius:16px;flex-direction:column;width:100%;max-width:500px;display:flex;overflow:hidden;box-shadow:0 20px 40px #00000080}.barcode-scanner-header{border-bottom:1px solid var(--border-default);background:var(--bg-tertiary);justify-content:space-between;align-items:center;padding:1.25rem;display:flex}.barcode-scanner-header h3{color:var(--text-primary);align-items:center;gap:.5rem;margin:0;font-size:1.15rem;display:flex}.barcode-scanner-close-btn{color:var(--text-muted);cursor:pointer;background:0 0;border:none;border-radius:50%;justify-content:center;align-items:center;width:32px;height:32px;padding:.25rem;font-size:1.5rem;line-height:1;transition:all .2s;display:flex}.barcode-scanner-close-btn:hover{color:var(--text-primary);background:#ffffff0d}.barcode-scanner-viewport{aspect-ratio:4/3;background:#000;width:100%;position:relative;overflow:hidden}.barcode-scanner-video{object-fit:cover;width:100%;height:100%}.barcode-scanner-overlay{pointer-events:none;flex-direction:column;justify-content:space-between;display:flex;position:absolute;inset:0}.barcode-scanner-target{pointer-events:none;border:2px solid #ffffff4d;border-radius:8px;width:75%;height:40%;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);box-shadow:0 0 0 9999px #00000080}.barcode-scanner-target:before{content:"";border:2px solid var(--accent-secondary);border-radius:8px;animation:2s ease-in-out infinite scan-pulse;position:absolute;inset:-2px}.barcode-scanner-laser{background:var(--accent-secondary);width:100%;height:2px;box-shadow:0 0 8px var(--accent-secondary);animation:2s linear infinite scan-move;position:absolute;top:0;left:0}@keyframes scan-pulse{0%,to{opacity:.4;box-shadow:0 0 4px #14b8a633}50%{opacity:1;box-shadow:0 0 16px #14b8a6cc}}@keyframes scan-move{0%{top:5%}50%{top:95%}to{top:5%}}.barcode-scanner-tip{color:var(--text-secondary);text-align:center;white-space:nowrap;background:#000000b3;border-radius:20px;padding:.5rem 1rem;font-size:.85rem;position:absolute;bottom:1rem;left:50%;transform:translate(-50%)}.barcode-scanner-footer{border-top:1px solid var(--border-default);background:var(--bg-tertiary);flex-direction:column;gap:.75rem;padding:1.25rem;display:flex}.barcode-scanner-fallback{flex-direction:column;gap:.5rem;display:flex}.barcode-scanner-fallback-label{color:var(--text-secondary);font-size:.85rem}.barcode-scanner-manual-input{gap:.5rem;display:flex}.barcode-scanner-manual-input input{background:var(--bg-elevated);border:1px solid var(--border-default);color:var(--text-primary);border-radius:8px;flex:1;padding:.5rem .75rem;font-size:.95rem}.barcode-scanner-manual-input input:focus{outline:1px solid var(--accent-secondary);border-color:var(--accent-secondary)}.barcode-scanner-btn{background:var(--accent-primary);color:#fff;cursor:pointer;border:none;border-radius:8px;padding:.5rem 1rem;font-weight:500;transition:background .2s}.barcode-scanner-btn:hover{background:var(--accent-primary-hover)}.barcode-scanner-detector-warning{border:1px solid var(--warning);color:var(--warning);background:#f59e0b1a;border-radius:8px;padding:.75rem;font-size:.8rem;line-height:1.3}.food-search-modal-backdrop{-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);z-index:1000;background:#0d1117d9;justify-content:center;align-items:center;padding:1.5rem;display:flex;position:fixed;inset:0}.food-search-modal{background:var(--bg-secondary);border:1px solid var(--border-default);border-radius:16px;flex-direction:column;width:100%;max-width:min(980px,100vw - 1rem);max-height:calc(100vh - 1rem);display:flex;overflow:hidden;box-shadow:0 20px 40px #00000080}.food-search-header{border-bottom:1px solid var(--border-default);background:var(--bg-tertiary);justify-content:space-between;align-items:center;padding:1.25rem 1.5rem;display:flex}.food-search-header h3{color:var(--text-primary);align-items:center;gap:.5rem;margin:0;font-size:1.25rem;display:flex}.food-search-close-btn{color:var(--text-muted);cursor:pointer;background:0 0;border:none;border-radius:50%;justify-content:center;align-items:center;width:32px;height:32px;padding:.25rem;font-size:1.5rem;line-height:1;transition:all .2s;display:flex}.food-search-close-btn:hover{color:var(--text-primary);background:#ffffff0d}.food-search-body{flex-direction:column;flex:1;gap:.85rem;padding:1rem;display:flex;overflow-y:auto}.food-search-bar{gap:.5rem;width:100%;display:flex}.food-search-input-wrapper{flex:1;position:relative}.food-search-input-wrapper input{box-sizing:border-box;background:var(--bg-elevated);border:1px solid var(--border-default);width:100%;color:var(--text-primary);border-radius:10px;padding:.8rem 1rem;font-size:1rem;transition:all .3s}.food-search-input-wrapper input:focus{border-color:var(--accent-secondary);outline:none;box-shadow:0 0 0 2px #14b8a626}.food-search-btn{background:linear-gradient(135deg, var(--accent-secondary) 0%, var(--accent-secondary-hover) 100%);color:#fff;cursor:pointer;border:none;border-radius:10px;justify-content:center;align-items:center;width:44px;min-width:44px;padding:0;font-weight:600;transition:all .2s;display:flex;box-shadow:0 4px 12px #14b8a633}.food-search-btn:hover{filter:brightness(1.05);transform:translateY(-1px);box-shadow:0 6px 16px #14b8a659}.food-search-barcode-btn{background:linear-gradient(135deg, var(--border-default) 0%, var(--bg-tertiary) 100%);color:var(--text-secondary);border:1px solid var(--border-default);cursor:pointer;border-radius:10px;justify-content:center;align-items:center;width:44px;min-width:44px;padding:0;font-weight:600;transition:all .2s;display:flex}.food-search-barcode-btn:hover{background:var(--bg-elevated);color:var(--text-primary);transform:translateY(-1px)}.food-search-results{border:1px solid var(--border-default);background:var(--bg-tertiary);border-radius:10px;min-height:0;max-height:min(54vh,430px);overflow-y:auto}.food-search-item{cursor:pointer;border-bottom:1px solid var(--border-muted);justify-content:space-between;align-items:center;padding:.9rem 1rem;transition:background .2s;display:flex}.food-search-item:last-child{border-bottom:none}.food-search-item:hover,.food-search-item.selected{background:#ffffff08}.food-search-item.selected{border-left:3px solid var(--accent-secondary)}.food-search-item-info{flex-direction:column;flex:1;gap:.25rem;display:flex}.food-search-item-name{color:var(--text-primary);font-size:.98rem;font-weight:500}.food-recent-section{flex-direction:column;gap:.8rem;display:flex}.food-recent-collapse.collapsed{max-height:0;margin:0;padding:0;overflow:hidden}.food-search-item-details{color:var(--text-muted);align-items:center;gap:.5rem;font-size:.8rem;display:flex}.food-source-badge{text-transform:uppercase;border-radius:4px;padding:.15rem .4rem;font-size:.7rem;font-weight:700}.food-source-badge.bedca{color:var(--success);background:#10b9811a;border:1px solid #10b98133}.food-source-badge.off{color:var(--info);background:#3b82f61a;border:1px solid #3b82f633}.food-source-badge.receta{color:#4ade80;background:#22c55e24;border:1px solid #4ade8059}.food-search-item-cal{color:var(--warning);font-size:.95rem;font-weight:600}.food-search-no-results{text-align:center;color:var(--text-muted);padding:2rem}.food-config-panel{border:1px solid var(--border-default);background:#ffffff05;border-radius:12px;flex-direction:column;gap:1rem;padding:1.25rem;display:flex}.food-selected-name{color:var(--text-primary);font-size:.98rem;font-weight:700;line-height:1.25}.food-toma-action-row{justify-content:flex-start;margin-bottom:.15rem;display:flex}.food-inline-register-btn{background:var(--success);color:#fff;cursor:pointer;border:none;border-radius:8px;padding:.5rem .85rem;font-size:.84rem;font-weight:700;transition:all .2s}.food-inline-register-btn:hover:not(:disabled){filter:brightness(1.08)}.food-inline-register-btn:disabled{opacity:.55;cursor:not-allowed}.food-recipe-selected-info{color:#bbf7d0;background:#22c55e1a;border:1px solid #4ade804d;border-radius:8px;padding:.8rem;font-size:.84rem;line-height:1.35}.food-recipe-multiplier-row{flex-direction:column;gap:.45rem;display:flex}.food-recipe-multiplier-row label{color:var(--text-secondary);font-size:.82rem;font-weight:600}.food-recipe-multiplier-input-wrap{align-items:center;gap:.4rem;display:inline-flex}.food-recipe-multiplier-input-wrap span{color:var(--accent-secondary);font-weight:800}.food-recipe-multiplier-input-wrap input{background:var(--bg-elevated);border:1px solid var(--border-default);width:84px;color:var(--text-primary);border-radius:6px;padding:.25rem .4rem;font-size:.82rem}.food-config-row{align-items:center;gap:1.5rem;display:flex}.food-config-field{flex-direction:column;flex:1;gap:.5rem;display:flex}.food-config-field label{color:var(--text-secondary);font-size:.85rem;font-weight:500}.food-config-field input,.food-config-field select{background:var(--bg-elevated);border:1px solid var(--border-default);color:var(--text-primary);box-sizing:border-box;border-radius:8px;outline:none;width:100%;padding:.6rem .75rem;font-size:.95rem}.food-config-field input:focus,.food-config-field select:focus{border-color:var(--accent-secondary)}.food-config-slider{align-items:center;gap:1rem;margin-top:.25rem;display:flex}.food-config-slider input[type=range]{background:var(--border-default);border:none;border-radius:3px;outline:none;flex:1;height:6px}.food-config-slider input[type=range]::-webkit-slider-thumb{-webkit-appearance:none;background:var(--accent-secondary);cursor:pointer;border-radius:50%;width:16px;height:16px;transition:transform .1s}.food-config-slider input[type=range]::-webkit-slider-thumb:hover{transform:scale(1.2)}.food-preview-panel{flex-direction:column;gap:.75rem;display:flex}.food-preview-title{color:var(--text-secondary);font-size:.9rem;font-weight:600}.food-preview-macros{grid-template-columns:repeat(4,1fr);gap:.5rem;display:grid}.food-preview-macro-box{background:var(--bg-tertiary);border:1px solid var(--border-muted);text-align:center;border-radius:10px;flex-direction:column;align-items:center;padding:.5rem;display:flex;position:relative;overflow:hidden}.food-preview-macro-box:before{content:"";width:100%;height:3px;position:absolute;top:0;left:0}.food-preview-macro-box.calories:before{background:#f80}.food-preview-macro-box.carbs:before{background:#00d2ff}.food-preview-macro-box.protein:before{background:#ff007f}.food-preview-macro-box.fat:before{background:#fc0}.food-preview-macro-label{color:var(--text-muted);text-transform:uppercase;margin-bottom:.12rem;font-size:.7rem}.food-preview-macro-val{color:var(--text-primary);font-size:.98rem;font-weight:700}.food-preview-macro-pct{margin-top:.12rem;font-size:.7rem;font-weight:500}.food-preview-macro-pct.carbs{color:#00d2ff}.food-preview-macro-pct.protein{color:#ff007f}.food-preview-macro-pct.fat{color:#fc0}.food-search-actions{border-top:1px solid var(--border-default);background:var(--bg-tertiary);z-index:5;justify-content:flex-end;gap:.75rem;padding:1.25rem 1.5rem;display:flex;position:sticky;bottom:0;box-shadow:0 -6px 14px #00000038}.food-search-actions button{padding:.65rem 1.5rem;font-size:.95rem}.food-search-actions-cancel{border:1px solid var(--border-default);color:var(--text-secondary);background:0 0}.food-search-actions-cancel:hover{background:#ffffff0d}.food-search-actions-save{background:var(--success);color:#fff;border:none;font-weight:600}.food-search-actions-save:hover:not(:disabled){filter:brightness(1.1);transform:translateY(-1px)}.food-search-actions-save:disabled{opacity:.5;cursor:not-allowed}.food-search-loading{color:var(--text-muted);flex-direction:column;align-items:center;gap:.75rem;padding:2rem;display:flex}.spinner-search{border:3px solid #ffffff1a;border-top:3px solid var(--accent-secondary);border-radius:50%;width:28px;height:28px;animation:1s linear infinite spin-sync}.food-search-tabs{background:var(--bg-tertiary);border:1px solid var(--border-default);border-radius:8px;gap:.5rem;margin-bottom:1.25rem;padding:.25rem;display:flex}.food-search-tab-btn{color:var(--text-muted);cursor:pointer;background:0 0;border:none;border-radius:6px;flex:1;padding:.5rem;font-size:.9rem;font-weight:600;transition:all .2s}.food-search-tab-btn:hover{color:var(--text-primary)}.food-search-tab-btn.active{background:var(--bg-elevated);color:var(--accent-secondary);box-shadow:0 2px 6px #00000026}.food-manual-intake-form{border:1px solid var(--border-default);background:#ffffff05;border-radius:12px;flex-direction:column;gap:1.25rem;padding:1.25rem;display:flex}.quantity-shortcuts{gap:.4rem;margin-top:.5rem;display:flex}.shortcut-btn{background:var(--bg-tertiary);border:1px solid var(--border-default);color:var(--text-secondary);cursor:pointer;border-radius:6px;padding:.35rem .65rem;font-size:.8rem;font-weight:500;transition:all .2s}.shortcut-btn:hover{background:var(--accent-secondary);color:#fff;border-color:var(--accent-secondary)}.food-search-modal.embedded{max-width:100%;max-height:calc(100vh - 8.25rem);box-shadow:none;background:0 0;border:none;border-radius:0}.food-search-modal.embedded .food-search-header{display:none}.food-search-modal.embedded .food-search-body{padding:0;overflow-y:auto}@media (width<=600px){.food-search-modal-backdrop{padding:.4rem}.food-search-modal{border-radius:12px;max-width:calc(100vw - .3rem);max-height:calc(100vh - .3rem)}.food-search-header{padding:.8rem .9rem}.food-search-header h3{font-size:.95rem}.food-search-body{gap:.65rem;padding:.75rem}.food-search-input-wrapper input{padding-top:.72rem;padding-bottom:.72rem;font-size:.92rem}.food-search-results{min-height:0;max-height:min(46vh,360px)}.food-recent-section{gap:.4rem}.food-recent-section .food-search-results{max-height:160px}.food-recent-section .food-search-item{padding:.45rem .6rem}.food-search-item{padding:.75rem}.food-search-item-details{flex-wrap:wrap;gap:.35rem;font-size:.74rem}.food-config-panel{gap:.8rem;padding:.9rem}.food-preview-macros{gap:.4rem}.food-preview-macro-box{padding:.45rem .4rem}.food-inline-register-btn{text-align:center;width:100%;padding:.55rem .8rem}.food-search-modal.embedded{max-height:calc(100vh - 6.1rem)}}.nutrition-vision-grid{grid-template-columns:1fr;gap:1.5rem;width:100%;display:grid}@media (width>=768px){.nutrition-vision-grid.has-preview{grid-template-columns:1fr 1fr}}.nutrition-vision-upload-box{border:2px dashed var(--border-default);box-sizing:border-box;background:#ffffff03;border-radius:12px;flex-direction:column;justify-content:center;align-items:center;width:100%;min-height:300px;padding:2rem;display:flex}@media (width<=576px){.nutrition-vision-upload-box{min-height:220px;padding:1rem}}.nutrition-vision-results-box{border:1px solid var(--border-default);box-sizing:border-box;background:#ffffff05;border-radius:12px;flex-direction:column;gap:1rem;width:100%;padding:1.5rem;display:flex}@media (width<=576px){.nutrition-vision-results-box{padding:1rem}}.nutrition-vision-media{object-fit:cover;border:1px solid var(--border-default);box-sizing:border-box;border-radius:8px;width:100%;max-height:350px}@media (width<=576px){.nutrition-vision-media{max-height:240px}}.nutrition-vision-btn-group{box-sizing:border-box;gap:1rem;width:100%;display:flex}@media (width<=480px){.nutrition-vision-btn-group{flex-direction:column;gap:.5rem}}.nutrition-table-container{border:1px solid var(--border-default);border-radius:8px;width:100%;margin-top:.5rem;overflow-x:auto}.table-dark-premium{border-collapse:collapse;background:#0003;width:100%;font-size:.9rem}.table-dark-premium th,.table-dark-premium td{text-align:left;border-bottom:1px solid var(--border-default);padding:.75rem .5rem}.table-dark-premium th{color:var(--text-secondary);background:#ffffff08;font-weight:600}@media (width<=576px){.table-dark-premium{font-size:.78rem}.table-dark-premium th,.table-dark-premium td{padding:.5rem .35rem}}.nutrition-tracker-panel{color:var(--text-primary);box-sizing:border-box;flex-direction:column;gap:1.5rem;width:100%;padding:1.5rem;display:flex}.nutrition-tabs{border-bottom:1px solid var(--border-default);align-items:center;gap:1rem;padding-bottom:.5rem;display:flex}.nutrition-tab-btn{color:var(--text-muted);cursor:pointer;background:0 0;border:none;border-radius:8px 8px 0 0;padding:.5rem 1rem;font-size:1rem;font-weight:600;transition:all .2s;position:relative}.nutrition-tab-btn:hover{color:var(--text-primary)}.nutrition-tab-btn.active{color:var(--accent-secondary)}.nutrition-tab-btn.active:after{content:"";background:var(--accent-secondary);height:2px;position:absolute;bottom:-.5rem;left:0;right:0}.nutrition-tabs{scrollbar-width:none;overflow-x:auto}.nutrition-tabs::-webkit-scrollbar{display:none}.nutrition-pocket-toggle{background:var(--bg-elevated);border:1px solid var(--border-default);color:var(--text-secondary);cursor:pointer;white-space:nowrap;border-radius:999px;align-items:center;gap:.35rem;margin-left:auto;padding:.35rem .65rem;font-size:.78rem;font-weight:700;transition:all .2s;display:inline-flex}.nutrition-pocket-toggle:hover{color:var(--text-primary);border-color:var(--accent-secondary)}.nutrition-pocket-toggle.active{color:#0ea5e9;background:#0ea5e91f;border-color:#0ea5e973}.nutrition-energy-visual-card{background:var(--bg-elevated);border:1px solid var(--border-default);border-radius:12px;flex-direction:column;gap:.55rem;margin-top:.9rem;padding:.7rem;display:flex}.nutrition-energy-visual-title{color:var(--text-secondary);font-size:.82rem;font-weight:700}.nutrition-energy-inline-values{color:var(--text-secondary);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:.5rem;font-size:.78rem;display:flex}.nutrition-energy-horizontal{width:100%;margin-top:.15rem}.nutrition-energy-horizontal-track{background:#3b82f624;border:1px solid #3b82f64d;border-radius:999px;width:100%;height:12px;position:relative;overflow:visible}.nutrition-energy-horizontal-fill{background:linear-gradient(90deg,#f59e0b 0%,#f97316 100%);border-radius:999px;position:absolute;top:0;bottom:0;left:0}.nutrition-energy-horizontal-overflow{background:linear-gradient(90deg,#ef4444 0%,#dc2626 100%);border-radius:0 999px 999px 0;position:absolute;top:0;bottom:0;left:100%;box-shadow:0 0 0 1px #ef444466}.nutrition-energy-horizontal.superavit .nutrition-energy-horizontal-track{background:#ef444414;border-color:#ef444480}.nutrition-energy-horizontal.deficit .nutrition-energy-horizontal-track{border-color:#10b98159}.nutrition-energy-horizontal-labels{color:var(--text-muted);justify-content:space-between;margin-top:.25rem;font-size:.7rem;display:flex}.nutrition-energy-superavit-note{color:#ef4444;margin-top:.35rem;font-size:.73rem;font-weight:700}.nutrition-energy-superavit-note.deficit{color:#10b981}.nutrition-energy-visual-title-row{justify-content:space-between;align-items:center;gap:.5rem;display:flex}.nutrition-energy-edit-row{flex-wrap:wrap;align-items:center;gap:.35rem;display:flex}.nutrition-energy-edit-input{background:var(--bg-secondary);border:1px solid var(--accent-primary);width:90px;color:var(--text-primary);text-align:center;border-radius:6px;outline:none;padding:.28rem .32rem;font-size:.8rem;font-weight:700}.nutrition-energy-edit-btn{background:var(--bg-secondary);border:1px solid var(--border-default);color:var(--text-secondary);cursor:pointer;border-radius:999px;padding:.24rem .5rem;font-size:.68rem;font-weight:700;transition:all .2s}.nutrition-energy-edit-btn:hover{border-color:var(--accent-primary);color:var(--text-primary)}.nutrition-energy-edit-btn.save{color:#10b981;border-color:#10b98173}.nutrition-energy-edit-btn.cancel{color:#f59e0b;border-color:#f59e0b73}.nutrition-energy-balance-tag{border:1px solid;border-radius:999px;align-self:flex-start;padding:.22rem .6rem;font-size:.75rem;font-weight:800}.nutrition-energy-chart-box{width:100%;min-height:150px}.nutrition-pocket-mode{gap:.45rem!important;padding:.22rem!important}.nutrition-pocket-mode .nutrition-tabs{gap:.2rem;padding-bottom:.25rem}.nutrition-pocket-mode .nutrition-tab-btn{padding:.28rem .32rem;font-size:.74rem}.nutrition-pocket-mode .nutrition-pocket-toggle{gap:.25rem;padding:.24rem .5rem;font-size:.66rem}.nutrition-pocket-mode .nutrition-date-selector{gap:.32rem;padding:.28rem}.nutrition-pocket-mode .nutrition-date-display{font-size:.78rem}.nutrition-pocket-mode .nutrition-date-btn{border-radius:6px;padding:.26rem .34rem;font-size:.68rem}.nutrition-pocket-mode .nutrition-balance-card,.nutrition-pocket-mode .nutrition-macros-card,.nutrition-pocket-mode .nutrition-catalog-tab,.nutrition-pocket-mode .recipe-editor,.nutrition-pocket-mode .recipe-card,.nutrition-pocket-mode .nutrition-meal-section{border-radius:8px;padding:.42rem}.nutrition-pocket-mode .nutrition-balance-header,.nutrition-pocket-mode .nutrition-macros-title{margin-bottom:.35rem;font-size:.72rem}.nutrition-pocket-mode .nutrition-energy-visual-card{border-radius:8px;gap:.35rem;margin-top:.55rem;padding:.42rem}.nutrition-pocket-mode .nutrition-energy-visual-title{font-size:.7rem}.nutrition-pocket-mode .nutrition-energy-balance-tag{padding:.18rem .46rem;font-size:.64rem}.nutrition-pocket-mode .nutrition-energy-inline-values{gap:.3rem;font-size:.66rem}.nutrition-pocket-mode .nutrition-energy-horizontal-track{height:10px}.nutrition-pocket-mode .nutrition-energy-horizontal-labels{font-size:.6rem}.nutrition-pocket-mode .nutrition-energy-superavit-note{font-size:.62rem}.nutrition-pocket-mode .nutrition-energy-edit-input{width:78px;padding:.2rem .28rem;font-size:.72rem}.nutrition-pocket-mode .nutrition-energy-edit-btn{padding:.18rem .36rem;font-size:.62rem}.nutrition-date-selector{background:var(--bg-secondary);border:1px solid var(--border-default);border-radius:12px;justify-content:center;align-items:center;gap:1.5rem;padding:.75rem;display:flex}.nutrition-date-btn{background:var(--bg-elevated);border:1px solid var(--border-default);color:var(--text-primary);cursor:pointer;border-radius:8px;align-items:center;gap:.5rem;padding:.5rem 1rem;font-size:.9rem;transition:all .2s;display:flex}.nutrition-date-btn:hover{border-color:var(--accent-secondary);background:#ffffff0d}.nutrition-date-display{color:var(--text-primary);text-align:center;min-width:200px;font-size:1.1rem;font-weight:700}.nutrition-summary-grid{grid-template-columns:2fr 1fr;gap:1.5rem;display:grid}@media (width<=900px){.nutrition-summary-grid{grid-template-columns:1fr}}.nutrition-balance-card{background:var(--bg-secondary);border:1px solid var(--border-default);border-radius:16px;flex-direction:column;justify-content:center;padding:1.5rem;display:flex;box-shadow:0 4px 20px #0003}.nutrition-balance-header{text-transform:uppercase;color:var(--text-muted);letter-spacing:.5px;margin-bottom:1rem;font-size:.9rem;font-weight:600}.nutrition-math-row{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:1rem;display:flex}.nutrition-math-item{text-align:center;flex-direction:column;align-items:center;display:flex}.nutrition-math-val{color:var(--text-primary);font-size:1.75rem;font-weight:800}.nutrition-math-label{color:var(--text-muted);margin-top:.25rem;font-size:.8rem}.nutrition-math-operator{color:var(--text-muted);font-size:1.5rem;font-weight:700}.nutrition-math-result{background:#14b8a61a;border:1px solid #14b8a633;border-radius:12px;padding:.75rem 1.25rem}.nutrition-math-result .nutrition-math-val{color:var(--accent-secondary);font-size:2rem}.nutrition-macros-card{background:var(--bg-secondary);border:1px solid var(--border-default);border-radius:16px;flex-direction:column;gap:1rem;padding:1.5rem;display:flex;box-shadow:0 4px 20px #0003}.nutrition-macros-title{color:var(--text-primary);align-items:center;gap:.5rem;font-size:.95rem;font-weight:700;display:flex}.nutrition-macro-row{flex-direction:column;gap:.4rem;display:flex}.nutrition-macro-info{justify-content:space-between;font-size:.85rem;font-weight:500;display:flex}.nutrition-macro-label-name{color:var(--text-secondary)}.nutrition-macro-ratio{color:var(--text-primary);font-weight:600}.nutrition-macro-ratio.exceeded{color:#ef4444}.nutrition-macro-progress-bg{background:var(--bg-elevated);border-radius:4px;width:100%;height:8px;position:relative;overflow:hidden}.nutrition-macro-progress-fill{border-radius:4px;height:100%;transition:width .4s ease-out}.nutrition-macro-progress-fill.carbs{background:#00d2ff}.nutrition-macro-progress-fill.protein{background:#ff007f}.nutrition-macro-progress-fill.fat{background:#fc0}.nutrition-macro-progress-fill.fiber{background:#10b981}.nutrition-macro-progress-fill.exceeded{background:#ef4444!important}.nutrition-macro-percentages-badge{background:var(--bg-tertiary);border-radius:8px;justify-content:space-around;margin-top:.5rem;padding:.5rem;font-size:.8rem;font-weight:600;display:flex}.nutrition-meals-list{flex-direction:column;gap:1.25rem;display:flex}.nutrition-meal-section{background:var(--bg-secondary);border:1px solid var(--border-default);border-radius:12px;transition:border-color .2s;overflow:hidden}.nutrition-meal-section:hover{border-color:var(--border-default)}.nutrition-meal-header{background:var(--bg-tertiary);border-bottom:1px solid var(--border-muted);justify-content:space-between;align-items:center;padding:1rem 1.25rem;display:flex}.nutrition-meal-title{color:var(--text-primary);align-items:center;gap:.75rem;font-weight:700;display:flex}.nutrition-meal-title span{font-size:1.1rem}.nutrition-meal-summary{align-items:center;gap:1rem;display:flex}.nutrition-meal-kcal-badge{color:var(--warning);background:#f59e0b1a;border:1px solid #f59e0b33;border-radius:6px;padding:.25rem .6rem;font-size:.85rem;font-weight:700}.nutrition-add-food-btn{background:var(--bg-elevated);border:1px solid var(--border-default);color:var(--accent-secondary);cursor:pointer;border-radius:6px;justify-content:center;align-items:center;width:28px;height:28px;padding:0;font-size:.95rem;transition:all .2s;display:flex}.nutrition-add-food-btn:hover{background:var(--accent-secondary);color:#fff;border-color:var(--accent-secondary)}.nutrition-meal-logs{flex-direction:column;display:flex}.nutrition-meal-log-item{border-bottom:1px solid var(--border-muted);justify-content:space-between;align-items:center;padding:.85rem 1.25rem;transition:background .2s;display:flex}.nutrition-meal-log-item:last-child{border-bottom:none}.nutrition-meal-log-item:hover{background:#ffffff03}.nutrition-log-left{flex-direction:column;flex:1;gap:.25rem;display:flex}.nutrition-log-name{color:var(--text-primary);font-weight:500}.nutrition-log-qty-details{color:var(--text-muted);flex-wrap:wrap;align-items:center;gap:.5rem;font-size:.8rem;display:flex}.nutrition-log-macro-dot{align-items:center;gap:.2rem;font-size:.75rem;display:inline-flex}.nutrition-log-right{align-items:center;gap:1rem;display:flex}.nutrition-log-kcal{color:var(--text-secondary);font-weight:600}.nutrition-log-delete-btn{color:var(--text-muted);cursor:pointer;background:0 0;border:none;border-radius:4px;justify-content:center;align-items:center;padding:.25rem;font-size:.9rem;transition:all .2s;display:flex}.nutrition-log-delete-btn:hover{color:var(--danger);background:#ef44441a}.nutrition-empty-logs-info{text-align:center;color:var(--text-muted);padding:1.5rem;font-size:.9rem;font-style:italic}@media (width<=600px){.nutrition-tracker-panel{gap:.65rem;padding:.4rem}.nutrition-tabs{gap:.35rem;margin:0;padding-bottom:.35rem}.nutrition-tab-btn{border-radius:8px;flex:auto;min-width:max-content;padding:.42rem .5rem;font-size:.86rem}.nutrition-date-selector{border-radius:10px;flex-wrap:wrap;gap:.5rem;padding:.45rem}.nutrition-date-display{min-width:unset;text-align:center;flex:100%;order:-1;margin-bottom:.15rem;font-size:.88rem}.nutrition-date-btn{flex:1;justify-content:center;padding:.34rem .5rem;font-size:.75rem}.nutrition-summary-grid{gap:.55rem}.nutrition-balance-card,.nutrition-macros-card,.nutrition-catalog-tab,.recipe-editor{box-shadow:none;border-radius:10px;padding:.6rem}.nutrition-balance-header,.nutrition-macros-title{margin-bottom:.45rem;font-size:.8rem}.nutrition-math-row{gap:.45rem}.nutrition-math-operator{display:none}.nutrition-math-item{text-align:left;flex:calc(50% - .25rem);align-items:flex-start}.nutrition-math-val{font-size:1.15rem;line-height:1.1}.nutrition-math-label{font-size:.72rem}.nutrition-math-result{width:100%;padding:.5rem .65rem}.nutrition-math-result .nutrition-math-val{font-size:1.35rem}.nutrition-macro-info{gap:.3rem;font-size:.78rem}.nutrition-macro-percentages-badge{flex-wrap:wrap;justify-content:space-between;gap:.2rem;padding:.35rem;font-size:.68rem}.nutrition-meals-list,.recipe-tab-container,.recipe-ingredients-list{gap:.55rem}.nutrition-meal-section,.recipe-card{border-radius:10px}.nutrition-meal-header{align-items:flex-start;gap:.45rem;padding:.6rem .65rem}.nutrition-meal-title{gap:.4rem;font-size:.9rem}.nutrition-meal-title span{font-size:1rem}.nutrition-meal-summary{gap:.5rem}.nutrition-meal-kcal-badge{padding:.18rem .45rem;font-size:.74rem}.nutrition-meal-log-item{align-items:flex-start;gap:.5rem;padding:.6rem .65rem}.nutrition-log-left{min-width:0}.nutrition-log-name{font-size:.86rem}.nutrition-log-qty-details{gap:.3rem;font-size:.72rem}.nutrition-log-right{gap:.45rem;margin-left:.25rem}.nutrition-log-kcal{white-space:nowrap;font-size:.8rem}.nutrition-empty-logs-info{padding:.8rem;font-size:.78rem}.recipe-list-title{font-size:1rem}.recipe-search-bar{padding:.4rem .55rem}.recipe-search-bar input{font-size:.85rem}.recipe-cards-grid{grid-template-columns:1fr;gap:.55rem}.recipe-card{gap:.5rem;padding:.65rem}.recipe-card-actions{gap:.35rem;margin-top:.1rem;padding-top:.5rem}.recipe-action-btn{padding:.3rem .52rem;font-size:.72rem}.recipe-editor{gap:.7rem}.recipe-editor-header{gap:.45rem}.recipe-editor-title{font-size:.95rem}.recipe-form-group input{padding:.48rem .58rem;font-size:.85rem}.recipe-ingredients-empty{padding:.75rem}.recipe-ingredient-row{padding:.45rem .55rem}.recipe-ingredient-name{font-size:.82rem}.recipe-editor-actions{gap:.5rem;padding-top:.35rem}.recipe-cancel-btn,.recipe-save-btn,.recipe-new-btn,.recipe-add-ingredient-btn,.recipe-back-btn{padding:.4rem .65rem;font-size:.78rem}}@media (width<=420px){.nutrition-tracker-panel{gap:.55rem;padding:.3rem}.nutrition-tab-btn{padding:.35rem .4rem;font-size:.8rem}.nutrition-balance-card,.nutrition-macros-card,.nutrition-catalog-tab,.recipe-editor,.recipe-card{padding:.5rem}.nutrition-math-item{flex:100%}.nutrition-log-qty-details{line-height:1.35;display:block}}@media (width<=390px){.nutrition-tracker-panel{gap:.45rem;padding:.22rem}.nutrition-tabs{gap:.2rem;padding-bottom:.25rem}.nutrition-tab-btn{padding:.28rem .32rem;font-size:.74rem}.nutrition-date-selector{gap:.32rem;padding:.28rem}.nutrition-date-display{font-size:.78rem}.nutrition-date-btn{border-radius:6px;padding:.26rem .34rem;font-size:.68rem}.nutrition-balance-card,.nutrition-macros-card,.nutrition-catalog-tab,.recipe-editor,.recipe-card,.nutrition-meal-section{border-radius:8px;padding:.42rem}.nutrition-balance-header,.nutrition-macros-title{margin-bottom:.35rem;font-size:.72rem}.nutrition-math-val{font-size:1rem}.nutrition-math-label{font-size:.64rem}.nutrition-math-result .nutrition-math-val{font-size:1.18rem}.nutrition-macro-info{font-size:.7rem}.nutrition-macro-progress-bg{height:6px}.nutrition-macro-percentages-badge{margin-top:.32rem;padding:.28rem;font-size:.62rem}.nutrition-meal-header,.nutrition-meal-log-item{padding:.45rem .5rem}.nutrition-meal-title{font-size:.78rem}.nutrition-meal-kcal-badge{padding:.14rem .34rem;font-size:.66rem}.nutrition-log-name{font-size:.76rem}.nutrition-log-qty-details{font-size:.64rem;line-height:1.28}.nutrition-log-kcal{font-size:.72rem}.nutrition-log-delete-btn{padding:.16rem;font-size:.75rem}.recipe-list-title{font-size:.88rem}.recipe-search-bar{padding:.3rem .45rem}.recipe-search-bar input{font-size:.76rem}.recipe-card{gap:.38rem}.recipe-card-name{font-size:.85rem}.recipe-card-desc,.recipe-ing-pill{font-size:.68rem}.recipe-macro-chip{min-width:44px;padding:.25rem .42rem}.recipe-macro-val{font-size:.78rem}.recipe-macro-lbl{font-size:.56rem}.recipe-action-btn,.recipe-cancel-btn,.recipe-save-btn,.recipe-new-btn,.recipe-add-ingredient-btn,.recipe-back-btn{padding:.3rem .48rem;font-size:.66rem}.recipe-editor-title{font-size:.82rem}.recipe-form-group label{font-size:.68rem}.recipe-form-group input{padding:.35rem .45rem;font-size:.76rem}}.nutrition-catalog-tab{background:var(--bg-secondary);border:1px solid var(--border-default);border-radius:16px;flex-direction:column;min-height:calc(100vh - 14rem);padding:.45rem;display:flex;box-shadow:0 4px 20px #0003}.recipe-tab-container{flex-direction:column;gap:1.5rem;display:flex}.recipe-list-header{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:.75rem;display:flex}.recipe-list-title{color:var(--text-primary);align-items:center;gap:.6rem;font-size:1.25rem;font-weight:700;display:flex}.recipe-count-badge{background:var(--accent-primary);color:#fff;border-radius:20px;padding:.1rem .55rem;font-size:.8rem;font-weight:700}.recipe-new-btn{color:#fff;cursor:pointer;background:linear-gradient(135deg,#00b4d8,#0077b6);border:none;border-radius:10px;align-items:center;gap:.4rem;padding:.55rem 1.1rem;font-size:.9rem;font-weight:600;transition:all .2s;display:flex;box-shadow:0 4px 12px #00b4d84d}.recipe-new-btn:hover{transform:translateY(-2px);box-shadow:0 6px 16px #00b4d873}.recipe-search-bar{background:var(--bg-elevated);border:1px solid var(--border-default);color:var(--text-muted);border-radius:10px;align-items:center;gap:.6rem;padding:.5rem .9rem;display:flex}.recipe-search-bar input{color:var(--text-primary);background:0 0;border:none;outline:none;flex:1;font-size:.95rem}.recipe-empty-state{text-align:center;flex-direction:column;justify-content:center;align-items:center;gap:.75rem;padding:3rem 1rem;display:flex}.recipe-empty-icon{opacity:.5;font-size:3.5rem}.recipe-empty-title{color:var(--text-secondary);font-size:1.2rem;font-weight:700}.recipe-empty-sub{color:var(--text-muted);max-width:360px;font-size:.9rem}.recipe-cards-grid{grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:1.2rem;display:grid}.recipe-card{-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background:linear-gradient(145deg,#ffffff0d,#ffffff05);border:1px solid #ffffff1a;border-radius:16px;flex-direction:column;gap:.85rem;padding:1.2rem;transition:all .25s;display:flex;box-shadow:0 4px 16px #0003}.recipe-card:hover{border-color:#00b4d859;transform:translateY(-3px);box-shadow:0 8px 24px #0000004d}.recipe-card-header{justify-content:space-between;align-items:center;gap:.5rem;display:flex}.recipe-card-name{color:var(--text-primary);white-space:nowrap;text-overflow:ellipsis;flex:1;font-size:1.05rem;font-weight:700;overflow:hidden}.recipe-card-desc{color:var(--text-muted);font-size:.82rem;font-style:italic}.recipe-origen-badge{color:#d8f3dc;white-space:nowrap;letter-spacing:.05em;background:linear-gradient(135deg,#2d6a4f,#1b4332);border-radius:8px;padding:.2rem .5rem;font-size:.7rem;font-weight:700}.recipe-badge-inline{color:#d8f3dc;letter-spacing:.05em;background:linear-gradient(135deg,#2d6a4f,#1b4332);border-radius:6px;margin-bottom:.2rem;padding:.15rem .4rem;font-size:.65rem;font-weight:700;display:inline-block}.recipe-card-macros{flex-wrap:wrap;gap:.5rem;display:flex}.recipe-macro-chip{border-radius:10px;flex-direction:column;align-items:center;gap:.1rem;min-width:52px;padding:.4rem .65rem;display:flex}.recipe-macro-chip.kcal{background:#ff880026;border:1px solid #ff88004d}.recipe-macro-chip.carbs{background:#00d2ff1f;border:1px solid #00d2ff40}.recipe-macro-chip.protein{background:#ff007f1f;border:1px solid #ff007f40}.recipe-macro-chip.fat{background:#ffcc001f;border:1px solid #ffcc0040}.recipe-macro-chip.fiber{background:#32cd321f;border:1px solid #32cd3240}.recipe-macro-val{color:var(--text-primary);font-size:.95rem;font-weight:800}.recipe-macro-lbl{color:var(--text-muted);text-transform:uppercase;letter-spacing:.05em;font-size:.65rem}.recipe-card-ingredients-preview{flex-wrap:wrap;gap:.4rem;display:flex}.recipe-ing-pill{background:var(--bg-elevated);border:1px solid var(--border-default);color:var(--text-secondary);border-radius:20px;align-items:center;gap:.25rem;padding:.2rem .6rem;font-size:.75rem;display:flex}.recipe-ing-pill.more{color:var(--accent-primary);border-color:var(--accent-primary)}.recipe-ing-pill.empty{color:var(--text-muted);border-style:dashed}.recipe-ing-qty{color:var(--text-muted);font-size:.7rem}.recipe-card-actions{border-top:1px solid #ffffff12;flex-wrap:wrap;align-items:center;gap:.5rem;margin-top:.25rem;padding-top:.75rem;display:flex}.recipe-action-btn{cursor:pointer;border:1px solid;border-radius:8px;align-items:center;gap:.3rem;padding:.35rem .7rem;font-size:.8rem;font-weight:600;transition:all .15s;display:flex}.recipe-action-btn.edit{color:#00b4d8;background:#00b4d81a;border-color:#00b4d84d}.recipe-action-btn.edit:hover{background:#00b4d833}.recipe-action-btn.log{color:#32cd32;background:#32cd321f;border-color:#32cd324d}.recipe-action-btn.log:hover,.recipe-action-btn.log.confirm:hover{background:#32cd3238}.recipe-action-btn.log.confirm{background:#32cd3233;border-color:#32cd3280}.recipe-action-btn.cancel{border-color:var(--border-default);color:var(--text-muted);background:#ffffff0d}.recipe-action-btn.delete{color:#dc3545;background:#dc35451a;border-color:#dc354540;margin-left:auto}.recipe-action-btn.delete:hover{background:#dc354533}.recipe-log-popup{flex-wrap:wrap;align-items:center;gap:.4rem;display:flex}.recipe-log-popup select{background:var(--bg-elevated);border:1px solid var(--border-default);color:var(--text-primary);border-radius:6px;padding:.3rem .5rem;font-size:.8rem}.recipe-log-popup input[type=date]{background:var(--bg-elevated);border:1px solid var(--border-default);color:var(--text-primary);border-radius:6px;padding:.26rem .45rem;font-size:.78rem}.recipe-editor{background:var(--bg-secondary);border:1px solid var(--border-default);border-radius:16px;flex-direction:column;gap:1.5rem;padding:1.5rem;display:flex;box-shadow:0 4px 20px #00000040}.recipe-editor-header{align-items:center;gap:1rem;display:flex}.recipe-back-btn{border:1px solid var(--border-default);color:var(--text-muted);cursor:pointer;background:0 0;border-radius:8px;padding:.35rem .75rem;font-size:.85rem;transition:all .15s}.recipe-back-btn:hover{color:var(--text-primary);border-color:var(--text-muted)}.recipe-editor-title{color:var(--text-primary);margin:0;font-size:1.15rem;font-weight:700}.recipe-editor-form{grid-template-columns:1fr 1fr;gap:1rem;display:grid}.recipe-form-group{flex-direction:column;gap:.35rem;display:flex}.recipe-form-group label{color:var(--text-muted);text-transform:uppercase;letter-spacing:.05em;font-size:.8rem;font-weight:600}.recipe-form-group input{background:var(--bg-elevated);border:1px solid var(--border-default);color:var(--text-primary);border-radius:8px;outline:none;padding:.6rem .85rem;font-size:.95rem;transition:border-color .15s}.recipe-form-group input:focus{border-color:var(--accent-primary)}.recipe-ingredients-section{flex-direction:column;gap:.75rem;display:flex}.recipe-ingredients-header{color:var(--text-secondary);justify-content:space-between;align-items:center;font-size:.95rem;font-weight:700;display:flex}.recipe-add-ingredient-btn{color:#00b4d8;cursor:pointer;background:#00b4d81a;border:1px solid #00b4d84d;border-radius:8px;align-items:center;gap:.3rem;padding:.35rem .75rem;font-size:.82rem;font-weight:600;transition:all .15s;display:flex}.recipe-add-ingredient-btn:hover{background:#00b4d833}.recipe-ingredients-empty{text-align:center;color:var(--text-muted);border:1px dashed var(--border-default);border-radius:10px;padding:1.5rem;font-size:.85rem}.recipe-ingredients-list{flex-direction:column;gap:.5rem;display:flex}.recipe-ingredient-row{background:var(--bg-elevated);border:1px solid var(--border-default);border-radius:10px;justify-content:space-between;align-items:center;gap:.5rem;padding:.6rem .9rem;transition:border-color .15s;display:flex}.recipe-ingredient-row:hover{border-color:#00b4d84d}.recipe-ingredient-name{color:var(--text-primary);white-space:nowrap;text-overflow:ellipsis;flex:1;align-items:center;gap:.5rem;font-size:.9rem;display:flex;overflow:hidden}.recipe-ingredient-icon{font-size:.95rem}.recipe-ingredient-right{flex-shrink:0;align-items:center;gap:.5rem;display:flex}.recipe-ingredient-kcal{color:#ff8800d9;font-size:.78rem;font-weight:600}.recipe-ingredient-qty{color:#00b4d8;cursor:pointer;background:#00b4d81a;border:1px solid #00b4d840;border-radius:6px;padding:.2rem .5rem;font-size:.82rem;font-weight:700;transition:background .15s}.recipe-ingredient-qty:hover{background:#00b4d833}.recipe-qty-input{background:var(--bg-secondary);border:1px solid var(--accent-primary);width:60px;color:var(--text-primary);text-align:center;border-radius:6px;outline:none;padding:.2rem .4rem;font-size:.85rem}.recipe-remove-ingredient{color:var(--text-muted);cursor:pointer;background:0 0;border:none;border-radius:4px;padding:.2rem;font-size:.85rem;transition:color .15s}.recipe-remove-ingredient:hover{color:#dc3545}.recipe-macros-preview{background:#00b4d80f;border:1px solid #00b4d833;border-radius:12px;flex-direction:column;gap:.6rem;padding:1rem;display:flex}.recipe-preview-title{color:var(--text-muted);text-transform:uppercase;letter-spacing:.05em;font-size:.8rem;font-weight:700}.recipe-preview-chips{flex-wrap:wrap;gap:.6rem;display:flex}.recipe-editor-actions{border-top:1px solid #ffffff12;justify-content:flex-end;gap:.75rem;padding-top:.5rem;display:flex}.recipe-cancel-btn{border:1px solid var(--border-default);color:var(--text-muted);cursor:pointer;background:0 0;border-radius:8px;align-items:center;gap:.3rem;padding:.5rem 1rem;font-size:.9rem;transition:all .15s;display:flex}.recipe-cancel-btn:hover{border-color:var(--text-muted);color:var(--text-primary)}.recipe-save-btn{color:#fff;cursor:pointer;background:linear-gradient(135deg,#00b4d8,#0077b6);border:none;border-radius:8px;align-items:center;gap:.4rem;padding:.5rem 1.2rem;font-size:.9rem;font-weight:700;transition:all .2s;display:flex;box-shadow:0 4px 12px #00b4d84d}.recipe-save-btn:hover:not(:disabled){transform:translateY(-1px);box-shadow:0 6px 16px #00b4d866}.recipe-save-btn:disabled{opacity:.45;cursor:not-allowed}@media (width<=600px){.recipe-editor-form{grid-template-columns:1fr}}@media (width<=480px){.recipe-cards-grid{grid-template-columns:1fr}.recipe-card-actions{flex-direction:column;align-items:stretch}.recipe-action-btn.delete{margin-left:0}.recipe-list-header{flex-direction:column;align-items:flex-start}}.calendar-view{height:100%}.calendar-panel{color:#e2e8f0;background-color:#0f172a;flex-direction:column;height:100%;font-family:Inter,sans-serif;display:flex;overflow:auto hidden}.calendar-header{z-index:10;background-color:#1e293b;border-bottom:1px solid #334155;grid-template-columns:100px repeat(7,minmax(110px,1fr));min-width:900px;display:grid;position:sticky;top:0;box-shadow:0 4px 6px -1px #0000001a}.calendar-header-cell{text-align:center;color:#94a3b8;border-right:1px solid #334155;padding:10px;font-size:.85rem;font-weight:600}.calendar-header-cell:last-child{border-right:none}.calendar-scroll-container{flex:1;min-width:900px;padding-bottom:2rem;overflow-y:auto}.calendar-week-row{border-bottom:1px solid #334155;grid-template-columns:100px repeat(7,minmax(110px,1fr));min-height:180px;display:grid}.calendar-summary-cell{color:#94a3b8;background-color:#1e293b;border-right:1px solid #334155;flex-direction:column;padding:10px;font-size:.75rem;display:flex}.week-label{color:#f8fafc;margin-bottom:12px;font-size:.85rem;font-weight:700}.summary-stat{justify-content:space-between;margin-bottom:6px;display:flex}.summary-stat span:last-child{color:#e2e8f0;font-weight:700}.summary-stat.pmc-ctl span:last-child{color:#3b82f6}.summary-stat.pmc-atl span:last-child{color:#ec4899}.summary-stat.pmc-tsb span:last-child{color:#f59e0b}.calendar-day-cell{background-color:#0f172a;border-right:1px solid #334155;flex-direction:column;gap:4px;padding:4px;display:flex}.calendar-day-cell:last-child{border-right:none}.day-header{flex-direction:column;align-items:center;margin-bottom:4px;display:flex}.day-date{color:#94a3b8;margin-bottom:4px;font-size:.8rem}.day-health-metrics{color:#cbd5e1;flex-wrap:wrap;justify-content:center;gap:6px;font-size:.7rem;display:flex}.health-metric{align-items:center;gap:2px;display:flex}.health-metric.hrv{color:#10b981}.health-metric.rhr{color:#ef4444}.health-metric.sleep{color:#8b5cf6}.health-metric.weight{color:#cbd5e1}.health-metric.steps{color:#60a5fa}.health-metric.consumed-cal{color:#3b82f6}.health-metric.expended-cal{color:#f97316}.calendar-activity-card{cursor:pointer;background-color:#1e293b;border:1px solid #334155;border-radius:4px;font-size:.7rem;transition:transform .2s;overflow:hidden;box-shadow:0 1px 2px #0000004d}.calendar-activity-card:hover{transform:translateY(-2px);box-shadow:0 4px 6px #0006}.calendar-activity-card-header{color:#fff;background-color:#3b82f6;justify-content:space-between;align-items:center;padding:2px 4px;font-weight:700;display:flex}.calendar-activity-card-header.ride{background-color:#0ea5e9}.calendar-activity-card-header.virtual-ride{background-color:#8b5cf6}.calendar-activity-card-header.ebike-ride{background-color:#0d9488}.calendar-activity-card-header.run{background-color:#22c55e}.calendar-activity-card-header.swim{background-color:#3b82f6}.calendar-activity-card-header.workout{background-color:#f59e0b}.calendar-activity-card-body{background-color:#1e293b;flex-direction:column;gap:2px;padding:4px;display:flex}.header-left{align-items:center;gap:4px;display:flex}.header-right{opacity:.9;font-size:.65rem}.activity-metrics-row{color:#cbd5e1;flex-wrap:wrap;justify-content:flex-start;gap:6px;font-size:.65rem;display:flex}.metric-tss{color:#f59e0b;font-weight:700}.calendar-activity-card-footer{color:#94a3b8;white-space:nowrap;text-overflow:ellipsis;background-color:#0f172a;border-top:1px solid #334155;padding:2px 4px;font-size:.65rem;overflow:hidden}.calendar-loading{text-align:center;color:#94a3b8;padding:2rem}.calendar-scroll-container::-webkit-scrollbar{width:8px}.calendar-scroll-container::-webkit-scrollbar-track{background:#0f172a}.calendar-scroll-container::-webkit-scrollbar-thumb{background-color:#334155;border-radius:4px}.reports-panel-container{box-sizing:border-box;width:100%;max-width:1600px;color:var(--text-primary);flex-direction:column;gap:1.5rem;margin:0 auto;padding:1.5rem;animation:.4s ease-out fadeIn;display:flex}.reports-header-section{border-bottom:1px solid var(--border-default);flex-wrap:wrap;justify-content:space-between;align-items:flex-start;gap:1rem;padding-bottom:1rem;display:flex}.reports-header-section h2{background:linear-gradient(135deg,#38bdf8 0%,#3b82f6 100%);-webkit-text-fill-color:transparent;letter-spacing:-.02em;-webkit-background-clip:text;background-clip:text;margin:0 0 .4rem;font-size:1.8rem;font-weight:800}.reports-subtitle{color:var(--text-secondary);margin:0;font-size:.95rem}.reports-chatbot-badge{color:#a78bfa;background:#8b5cf614;border:1px solid #8b5cf633;border-radius:99px;align-items:center;gap:.6rem;padding:.5rem 1rem;font-size:.85rem;font-weight:600;display:inline-flex;box-shadow:0 4px 12px #8b5cf60a}.brain-pulse{animation:2s ease-in-out infinite pulseBrain}@keyframes pulseBrain{0%{opacity:.8;transform:scale(1)}50%{opacity:1;filter:drop-shadow(0 0 4px #a78bfa);transform:scale(1.15)}to{opacity:.8;transform:scale(1)}}.reports-filters-card{-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);border:1px solid var(--border-default);background:#1e293b80;border-radius:16px;flex-direction:column;gap:1.25rem;padding:1.25rem;display:flex;box-shadow:0 8px 32px #00000026}.filters-row-main{flex-wrap:wrap;align-items:flex-end;gap:1.5rem;display:flex}.filter-group{flex-direction:column;gap:.5rem;display:flex}.filter-group label{text-transform:uppercase;letter-spacing:.05em;color:var(--text-secondary);font-size:.8rem;font-weight:700}.preset-buttons{border:1px solid var(--border-default);background:#0f172a66;border-radius:10px;padding:.25rem;display:flex}.preset-btn{color:var(--text-secondary);cursor:pointer;background:0 0;border:none;border-radius:8px;padding:.5rem 1rem;font-size:.85rem;font-weight:600;transition:all .2s}.preset-btn:hover{color:var(--text-primary);background:#ffffff08}.preset-btn.active{color:#fff;background:#3b82f6;box-shadow:0 2px 8px #3b82f659}.date-inputs{align-items:center;gap:.5rem;display:flex}.date-inputs input[type=date]{border:1px solid var(--border-default);color:#fff;background:#0f172a80;border-radius:8px;outline:none;padding:.5rem .75rem;font-family:inherit;font-size:.9rem;transition:border-color .2s}.date-inputs input[type=date]::-webkit-calendar-picker-indicator{filter:invert();cursor:pointer}.date-inputs input[type=date]:focus{border-color:#3b82f6}.date-inputs span{color:var(--text-secondary);font-size:.85rem}.advanced-filters-toggle-btn{border:1px solid var(--border-default);color:var(--text-secondary);cursor:pointer;box-sizing:border-box;background:#0f172a4d;border-radius:10px;align-items:center;gap:.5rem;height:38px;padding:.6rem 1.1rem;font-size:.88rem;font-weight:600;transition:all .2s;display:inline-flex}.advanced-filters-toggle-btn:hover{color:var(--text-primary);background:#0f172a99;border-color:#ffffff26}.advanced-filters-toggle-btn.active{color:#3b82f6;background:#3b82f614;border-color:#3b82f6}.advanced-filters-toggle-btn.highlighted{color:#fff;background:#3b82f61f;border-color:#3b82f6}.show-averages-toggle-btn{border:1px solid var(--border-default);color:var(--text-secondary);cursor:pointer;box-sizing:border-box;background:#0f172a4d;border-radius:10px;align-items:center;gap:.5rem;height:38px;padding:.6rem 1.1rem;font-size:.88rem;font-weight:600;transition:all .2s;display:inline-flex}.show-averages-toggle-btn:hover{color:var(--text-primary);background:#0f172a99;border-color:#ffffff26}.show-averages-toggle-btn.active{color:#10b981;background:#10b98114;border-color:#10b981}.filter-count-badge{color:#fff;background:#3b82f6;border-radius:99px;padding:.1rem .4rem;font-size:.72rem;font-weight:700}.advanced-filters-dropdown{background:#0f172a66;border:1px solid #ffffff0d;border-radius:12px;margin-top:.25rem;padding:1rem}.dropdown-header{justify-content:space-between;align-items:center;margin-bottom:.75rem;display:flex}.dropdown-header h4{color:var(--text-secondary);text-transform:uppercase;letter-spacing:.03em;margin:0;font-size:.85rem;font-weight:700}.clear-filters-btn{color:#f43f5e;cursor:pointer;background:0 0;border:none;font-size:.8rem;font-weight:600}.clear-filters-btn:hover{text-decoration:underline}.activity-types-grid{flex-wrap:wrap;gap:.6rem;display:flex}.activity-type-checkbox-label{border:1px solid var(--border-default);cursor:pointer;color:var(--text-secondary);background:#0f172a59;border-radius:8px;align-items:center;gap:.4rem;padding:.4rem .8rem;font-size:.82rem;font-weight:500;transition:all .2s;display:inline-flex}.activity-type-checkbox-label:hover{color:var(--text-primary);background:#ffffff08}.activity-type-checkbox-label.checked{color:#22d3ee;background:#06b6d414;border-color:#06b6d4;font-weight:600}.activity-type-checkbox-label input{display:none}.no-types-info{color:var(--text-secondary);margin:.5rem 0 0;font-size:.85rem}.reports-layout-grid{grid-template-columns:290px 1fr;align-items:start;gap:1.5rem;display:grid}.reports-sidebar-metrics{-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);border:1px solid var(--border-default);background:#1e293b73;border-radius:16px;flex-direction:column;gap:1.25rem;max-height:800px;padding:1.25rem;display:flex;overflow-y:auto;box-shadow:0 8px 32px #0000001a}.sidebar-header{border-bottom:1px solid #ffffff0d;justify-content:space-between;align-items:center;padding-bottom:.75rem;display:flex}.sidebar-header h4{letter-spacing:-.01em;margin:0;font-size:.95rem;font-weight:700}.selected-count{color:#60a5fa;background:#3b82f626;border-radius:6px;padding:.2rem .5rem;font-size:.78rem;font-weight:700}.metrics-category-list{flex-direction:column;gap:1.25rem;display:flex}.category-group{flex-direction:column;gap:.6rem;display:flex}.category-group h5{color:var(--text-secondary);text-transform:uppercase;letter-spacing:.06em;margin:0;font-size:.75rem;font-weight:700}.metrics-checkboxes-grid{flex-direction:column;gap:.4rem;display:flex}.metric-select-btn{border:1px solid var(--border-default);cursor:pointer;text-align:left;box-sizing:border-box;background:#0f172a40;border-radius:8px;justify-content:space-between;align-items:center;padding:.5rem .75rem;transition:all .25s cubic-bezier(.4,0,.2,1);display:flex}.metric-select-btn:hover{background:#ffffff05;transform:translate(2px)}.metric-select-btn.active{border-color:var(--metric-color);box-shadow:inset 2px 0 0 var(--metric-color);background:#ffffff0d}.metric-btn-label{color:var(--text-secondary);font-size:.82rem;font-weight:500}.metric-select-btn.active .metric-btn-label{color:#fff;font-weight:600}.metric-btn-unit{color:#ffffff40;text-transform:lowercase;font-size:.72rem;font-weight:600}.metric-select-btn.active .metric-btn-unit{color:var(--metric-color)}.reports-chart-main-section{flex-direction:column;width:100%;display:flex}.reports-chart-card{-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);border:1px solid var(--border-default);box-sizing:border-box;background:#1e293b4d;border-radius:20px;flex-direction:column;gap:1.5rem;height:520px;padding:1.5rem;transition:all .3s;display:flex;position:relative;box-shadow:0 10px 40px #00000026}.chart-card-header{justify-content:space-between;align-items:center;display:flex}.chart-card-header h3{letter-spacing:-.01em;margin:0;font-size:1.15rem;font-weight:700}.warning-badge{color:#fbbf24;background:#fbbf241a;border-radius:4px;margin-left:.75rem;padding:.15rem .5rem;font-size:.75rem;font-weight:600}.reports-chart-card.is-fullscreen{z-index:1500;background:#0b0f19;border:none;border-radius:0;width:100vw;height:100vh;padding:2.5rem 2rem 2rem;position:fixed;top:0;left:0}.btn-chart-fullscreen{border:1px solid var(--border-default);color:var(--text-secondary);cursor:pointer;background:#0f172a99;border-radius:8px;align-items:center;gap:.4rem;padding:.4rem .8rem;font-size:.78rem;font-weight:700;transition:all .2s;display:inline-flex}.btn-chart-fullscreen:hover{color:#fff;background:#ffffff0d}.chart-canvas-wrapper{flex:1;width:100%;min-height:0;position:relative}.chart-placeholderloading,.chart-placeholdererror,.chart-placeholderempty{width:100%;height:100%;color:var(--text-secondary);text-align:center;border:1px dashed #ffffff0d;border-radius:12px;flex-direction:column;justify-content:center;align-items:center;gap:.75rem;font-size:.9rem;display:flex}.spin-icon{color:#3b82f6;font-size:1.5rem;animation:1.2s linear infinite spin}.reports-chart-tooltip{-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);background:#0f172ae6;border:1px solid #ffffff1a;border-radius:12px;padding:.75rem 1rem;box-shadow:0 10px 30px #0006}.tooltip-date{text-transform:capitalize;color:#a8dadc;margin:0 0 .5rem;font-size:.78rem;font-weight:700}.tooltip-items{flex-direction:column;gap:.3rem;display:flex}.tooltip-item{justify-content:space-between;gap:1.5rem;font-size:.82rem;font-weight:600;display:flex}.tooltip-item-label{color:#ffffffa6}.tooltip-item-value{font-variant-numeric:tabular-nums}.animation-fade-in{animation:.25s ease-out fadeIn}.animation-slide-down{animation:.25s cubic-bezier(.16,1,.3,1) slideDown}@media (width<=1024px){.reports-layout-grid{grid-template-columns:1fr}.reports-sidebar-metrics{max-height:380px}}@media (width<=768px){.reports-panel-container{gap:1rem;padding:1rem}.reports-header-section h2{font-size:1.5rem}.preset-buttons{flex-wrap:wrap}.preset-btn{padding:.4rem .75rem;font-size:.78rem}.reports-chart-card{height:250px;padding:1rem}.date-inputs input[type=date]{padding:.4rem .6rem;font-size:.8rem}}@media (width<=768px) and (orientation:portrait){.reports-chart-card.is-fullscreen{transform-origin:0 0;z-index:9999;position:fixed;top:0;left:100vw;transform:rotate(90deg);width:100vh!important;height:100vw!important;padding:1.5rem!important}}@media (width<=900px) and (orientation:landscape){.reports-panel-container{padding:.75rem}.reports-header-section{display:none}.reports-filters-card{padding:.75rem}.reports-chart-card{height:340px}.reports-sidebar-metrics{max-height:250px}}.active-metrics-tags-row{border-top:1px solid #ffffff0d;flex-direction:column;gap:.5rem;padding-top:.75rem;animation:.2s ease-out fadeIn;display:flex}.active-metrics-tags-row .tags-label{text-transform:uppercase;letter-spacing:.05em;color:var(--text-secondary);font-size:.75rem;font-weight:700}.metrics-tags-container{flex-wrap:wrap;gap:.5rem;display:flex}.metric-active-tag{border:1px solid #ffffff14;border-left:3px solid var(--tag-color);color:#e2e8f0;background:#0f172a59;border-radius:6px;align-items:center;gap:.45rem;padding:.3rem .6rem;font-size:.78rem;font-weight:600;transition:all .2s;display:inline-flex;box-shadow:0 2px 6px #0000001a}.metric-active-tag:hover{background:#ffffff08;border-color:#ffffff26}.tag-color-dot{border-radius:50%;flex-shrink:0;width:6px;height:6px}.tag-label-text{text-overflow:ellipsis;white-space:nowrap;max-width:140px;overflow:hidden}.tag-remove-btn{color:#ffffff4d;cursor:pointer;background:0 0;border:none;border-radius:50%;justify-content:center;align-items:center;width:14px;height:14px;margin-left:2px;padding:0;font-size:.7rem;transition:all .15s;display:inline-flex}.tag-remove-btn:hover{color:#f87171;background:#ef444426}.dashboard{background:var(--bg-primary);height:100vh;max-height:100vh;color:var(--text-primary);flex-direction:column;display:flex;overflow:hidden}.dashboard-header{background:var(--bg-secondary);border-bottom:1px solid var(--border-default);justify-content:space-between;align-items:center;padding:.25rem 2rem .25rem 1rem;display:flex;box-shadow:0 2px 12px #00000080}.header-left{flex-flow:row;flex:none;align-items:center;gap:.75rem;display:flex}.header-center{flex:1;justify-content:center;align-items:center;display:flex}.current-weather-widget{background:var(--bg-elevated);border:1px solid var(--border-default);border-radius:8px;align-items:center;gap:.5rem;min-width:180px;padding:.4rem .75rem;display:flex}.weather-icon-small{flex-shrink:0;align-items:center;font-size:1.5rem;display:flex}.weather-info-small{flex-direction:column;gap:.15rem;line-height:1.2;display:flex}.weather-main-row{align-items:baseline;gap:.4rem;display:flex}.day-of-week{color:var(--text-secondary);text-transform:uppercase;letter-spacing:.3px;font-size:.65rem;font-weight:600}.temp-main{color:var(--text-primary);font-size:1.3rem;font-weight:700}.feels-like{color:var(--text-muted);font-size:.7rem}.weather-wind-row{color:var(--text-secondary);align-items:center;gap:.3rem;font-size:.7rem;display:flex}.header-right{flex:none;justify-content:flex-end;gap:.5rem;display:flex}.logo{cursor:pointer;flex-shrink:0;justify-content:flex-start;align-items:center;display:flex}.logo img{object-fit:contain;width:auto;height:48px;transition:transform .2s}.logo img:hover{transform:scale(1.08)}.separator{background:var(--border-default);flex-shrink:0;width:1px;height:20px;margin:0 .25rem}.status-icon-container{align-items:center;gap:.35rem;display:inline-flex;position:relative}.status-icon{opacity:.3;filter:grayscale();cursor:help;flex-shrink:0;align-items:center;font-size:1.4rem;transition:all .3s;display:flex}.status-icon.connected{opacity:1;filter:grayscale(0%);color:var(--success)}.mini-sync-btn{background:var(--bg-elevated);border:1px solid var(--border-default);color:var(--text-muted);cursor:pointer;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:18px;height:18px;padding:0;font-size:.65rem;transition:all .25s cubic-bezier(.4,0,.2,1);display:flex;box-shadow:0 1px 4px #00000026}.mini-sync-btn:hover:not(:disabled){background:var(--bg-tertiary);color:var(--text-primary);transform:scale(1.15)rotate(15deg)}.mini-sync-btn.strava:hover:not(:disabled){color:#fc4c02;border-color:#fc4c02;box-shadow:0 0 6px #fc4c0266}.mini-sync-btn.garmin:hover:not(:disabled){color:#007cc3;border-color:#007cc3;box-shadow:0 0 6px #007cc366}.mini-sync-btn.withings:hover:not(:disabled){color:#00a6d6;border-color:#00a6d6;box-shadow:0 0 6px #00a6d666}.mini-sync-btn:disabled{opacity:.5;cursor:not-allowed}.mini-sync-btn.syncing{border-color:var(--accent-primary)!important;color:var(--accent-primary)!important;background:#8b5cf61a!important}.mini-sync-btn.syncing svg{animation:1.2s linear infinite spin}.header-sync-btn{background:var(--bg-elevated);border:1px solid var(--border-default);color:var(--text-secondary);cursor:pointer;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:28px;height:28px;margin-left:.25rem;padding:0;font-size:.85rem;transition:all .25s cubic-bezier(.4,0,.2,1);display:inline-flex;box-shadow:0 2px 6px #0003}.header-sync-btn:hover:not(:disabled){background:var(--bg-tertiary);color:var(--accent-primary);border-color:var(--accent-primary);transform:scale(1.1)rotate(30deg);box-shadow:0 0 8px #8b5cf666}.header-sync-btn:disabled{opacity:.5;cursor:not-allowed}.header-sync-btn.syncing svg{animation:1.2s linear infinite spin}.nav-button{background:var(--bg-elevated);border:1px solid var(--border-default);color:var(--text-secondary);cursor:pointer;border-radius:6px;padding:.55rem .65rem;font-size:1.1rem;transition:all .2s}.nav-button:hover{background:var(--bg-tertiary);border-color:var(--accent-primary);color:var(--accent-primary)}.nav-button.chat-toggle-button.active{color:#e94560;background:#e9456026;border-color:#e94560;box-shadow:0 0 10px #e945604d}.nav-button.chat-toggle-button.active:hover{color:#fff;background:#e9456040;border-color:#e94560}.nav-button.admin-button{color:#fff;background:linear-gradient(135deg,#667eea 0%,#764ba2 100%);border:none}.nav-button.admin-button:hover{background:linear-gradient(135deg,#5568d3 0%,#653a8a 100%);transform:scale(1.05);box-shadow:0 4px 12px #667eea66}.dashboard-body{flex:1;grid-template-columns:1fr 40%;min-height:0;transition:grid-template-columns .3s;display:grid;overflow:hidden}.dashboard-body.right-panel-closed{grid-template-columns:1fr}.dashboard-body.right-panel-closed .right-panel{display:none!important}.dashboard-body.tabata-mode{grid-template-columns:1fr}.timer-view{justify-content:center;align-items:center;width:100%;height:100%;display:flex}.tabata-view{width:100%;height:100%}.center-panel{background:var(--bg-primary);flex-direction:column;min-height:0;display:flex;position:relative;overflow:hidden auto}.open-right-panel{background:var(--bg-tertiary);border:1px solid var(--border-default);color:var(--text-secondary);cursor:pointer;z-index:10;border-radius:8px;justify-content:center;align-items:center;padding:.75rem;font-size:1.25rem;transition:all .2s;display:flex;position:absolute;top:1rem;right:1rem}.open-right-panel:hover{color:#fff;background:#e94560;border-color:#e94560;box-shadow:0 0 10px #e9456066}.panel-content{flex-grow:1;padding:2rem}.panel-content h2{color:var(--text-primary);align-items:center;gap:.75rem;margin:0 0 1.5rem;font-size:1.75rem;display:flex}.connections-view p,.strava-view p,.garmin-view p,.weather-view p{color:var(--text-secondary);margin-bottom:2rem}.not-connected-message{text-align:center;background:#ffffff0d;border-radius:12px;flex-direction:column;justify-content:center;align-items:center;margin-top:2rem;padding:4rem 2rem;display:flex}.not-connected-message p{margin:.5rem 0;font-size:1.1rem}.not-connected-message .help-text{opacity:.7;font-size:.9rem}.connection-warning{color:var(--text-primary);background:#fbbf241a;border:1px solid #fbbf244d;border-radius:8px;justify-content:space-between;align-items:center;gap:1rem;margin-bottom:1.5rem;padding:1rem 1.5rem;display:flex}.connection-warning p{margin:0;font-size:.95rem}.btn-secondary-small{border:1px solid var(--accent-primary);color:var(--accent-primary);cursor:pointer;white-space:nowrap;background:0 0;border-radius:6px;padding:.5rem 1rem;font-size:.9rem;transition:all .2s}.btn-secondary-small:hover{background:var(--accent-primary);color:#fff}.connections-grid{grid-template-columns:repeat(auto-fit,minmax(350px,1fr));gap:2rem;display:grid}.right-panel{background:#16213e;border-left:1px solid #ffffff1a;flex-direction:column;height:100%;min-height:0;display:flex;overflow:hidden}.chat-header{border-bottom:1px solid #ffffff1a;padding:1.5rem}.chat-header h3{color:#a8dadc;margin:0;font-size:1.25rem}.chat-messages{flex:1;padding:1.5rem;overflow-y:auto}.chat-message{background:#ffffff0d;border-radius:12px;margin-bottom:1rem;padding:1rem}.chat-message.system{background:#e945601a;border-left:3px solid #e94560}.chat-message p{color:#a8dadc;margin:0 0 .5rem;line-height:1.6}.chat-message p:last-child{margin-bottom:0}.chat-input{border-top:1px solid #ffffff1a;gap:.5rem;padding:1rem 1.5rem;display:flex}.chat-input input{color:#fff;background:#ffffff0d;border:1px solid #ffffff1a;border-radius:8px;flex:1;padding:.75rem;font-size:.9rem}.chat-input input:focus{border-color:#e94560;outline:none}.chat-input button{color:#fff;cursor:pointer;background:#e94560;border:none;border-radius:8px;padding:.75rem 1.5rem;font-weight:600}.chat-input button:disabled{opacity:.5;cursor:not-allowed}.chat-footer{text-align:center;color:#a8dadc;opacity:.6;border-top:1px solid #ffffff1a;padding:.75rem 1.5rem;font-size:.8rem}.chat-container{flex-direction:column;flex:1;min-height:0;display:flex;overflow:hidden}.dashboard-footer{background:#0f3460;border-top:2px solid #e94560;justify-content:space-between;align-items:center;padding:.75rem 2rem;font-size:.85rem;display:flex}.footer-status{color:#a8dadc;align-items:center;gap:.5rem;display:flex}.status-dot{border-radius:50%;width:8px;height:8px;display:inline-block}.status-dot.green{background:#4ade80;box-shadow:0 0 8px #4ade80}.status-dot.orange{background:#f59e0b;box-shadow:0 0 8px #f59e0b}.status-dot.red{background:#ef4444;box-shadow:0 0 8px #ef4444}.footer-info,.footer-credits{color:#a8dadc;opacity:.7}@media (width<=1024px){.header-center{display:none!important}.dashboard-body{grid-template-columns:1fr}.header-left{flex-wrap:nowrap!important}.right-panel{display:none}.center-panel{grid-column:1}.open-right-panel{display:none!important}}@media (width<=768px){.dashboard .open-right-panel{display:none!important}}.mobile-toggle-left-btn{background:var(--bg-elevated);border:1px solid var(--border-default);color:var(--text-primary);cursor:pointer;border-radius:50%;justify-content:center;align-items:center;width:36px;height:36px;margin-right:.25rem;font-size:1rem;transition:all .2s cubic-bezier(.4,0,.2,1);display:flex;box-shadow:0 2px 8px #00000040}.mobile-toggle-left-btn.active{background:var(--accent-primary);border-color:var(--accent-primary);color:#fff}.mobile-menu-overlay{-webkit-backdrop-filter:blur(5px);backdrop-filter:blur(5px);z-index:198;background:#000000a6;position:fixed;inset:0}.mobile-dropdown-menu{-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);z-index:199;background:#16213ef2;border:1px solid #ffffff1a;border-radius:12px;flex-direction:column;gap:.35rem;width:250px;padding:.75rem;animation:.25s cubic-bezier(.4,0,.2,1) forwards slideDownFade;display:flex;position:fixed;top:70px;right:1rem;box-shadow:0 10px 30px #0009}@keyframes slideDownFade{0%{opacity:0;transform:translateY(-10px)scale(.95)}to{opacity:1;transform:translateY(0)scale(1)}}.mobile-menu-item{color:var(--text-secondary);text-align:left;cursor:pointer;background:0 0;border:none;border-radius:8px;align-items:center;gap:.75rem;padding:.65rem 1rem;font-size:.95rem;transition:all .2s;display:flex}.mobile-menu-item:hover{color:var(--text-primary);background:#ffffff14}.mobile-menu-item.highlight-chat{color:#e94560;background:#e9456026;border:1px solid #e945604d;margin-top:.25rem;font-weight:600}.mobile-menu-item.highlight-chat:hover{color:#fff;background:#e94560}.mobile-menu-item.highlight-admin{color:var(--accent-primary);background:#8b5cf626;border:1px solid #8b5cf64d;font-weight:600}.mobile-menu-item.highlight-admin:hover{background:var(--accent-primary);color:#fff}.dashboard.is-mobile .dashboard-body{flex-direction:column;height:calc(100vh - 70px);display:flex;position:relative;overflow:hidden}.dashboard.is-mobile .center-panel,.dashboard.is-mobile .right-panel{z-index:10;position:absolute;inset:0;width:100%!important;max-width:100%!important;height:100%!important;display:none!important}.dashboard.is-mobile.show-content .center-panel{z-index:10;overflow-y:auto;display:block!important}.dashboard.is-mobile.show-chat .right-panel{z-index:200;background:#16213e;animation:.25s cubic-bezier(.4,0,.2,1) forwards slideInRight;top:0;height:100%!important;display:flex!important}.dashboard.is-mobile.show-chat .chat-container{height:calc(100% - 60px)!important}@keyframes slideInRight{0%{transform:translate(100%)}to{transform:translate(0)}}@media (width<=768px){.dashboard-header{height:70px;padding:.75rem 1rem}.header-left{gap:.4rem}.logo img{height:32px}.separator{display:none!important}.status-icon{font-size:1.15rem}.header-sync-btn{width:24px;height:24px;margin-left:.15rem;font-size:.75rem}.panel-content{padding:.6rem .25rem}.connections-grid{grid-template-columns:1fr;gap:1.5rem}.dashboard-footer{height:40px;padding:.5rem 1rem;font-size:.75rem}.footer-info,.footer-credits{display:none!important}}@media (width<=480px){.dashboard-header{padding:.5rem .75rem}.logo img{height:26px}.mobile-dropdown-menu{width:calc(100% - 1rem);top:65px;right:.5rem}}.admin-panel{background:var(--bg-primary);max-width:1400px;min-height:100vh;margin:0 auto;padding:2rem}.admin-header{background:var(--bg-secondary);border:1px solid var(--border-default);border-radius:12px;justify-content:space-between;align-items:center;margin-bottom:2rem;padding:1.5rem;display:flex;box-shadow:0 4px 12px #0006}.admin-header h1{background:linear-gradient(135deg, var(--accent-primary) 0%, var(--accent-secondary) 100%);-webkit-text-fill-color:transparent;-webkit-background-clip:text;background-clip:text;margin:0;font-size:2rem;font-weight:700}.back-button{background:var(--bg-elevated);color:var(--text-primary);border:1px solid var(--border-default);cursor:pointer;border-radius:8px;padding:.75rem 1.5rem;font-size:1rem;font-weight:600;transition:all .3s}.back-button:hover{background:var(--bg-tertiary);border-color:var(--accent-primary);color:var(--accent-primary);transform:translateY(-2px);box-shadow:0 4px 12px #2563eb4d}.message{background:var(--bg-secondary);border:1px solid;border-radius:8px;justify-content:space-between;align-items:center;margin-bottom:1.5rem;padding:1rem 1.5rem;animation:.3s slideIn;display:flex}.error-message{border-color:var(--danger);color:#fca5a5;background:#ef44441a}.success-message{border-color:var(--success);color:#6ee7b7;background:#10b9811a}.message button{cursor:pointer;color:inherit;opacity:.6;background:0 0;border:none;padding:0 .5rem;font-size:1.2rem;transition:opacity .2s}.message button:hover{opacity:1}.admin-tabs{gap:1rem;margin-bottom:2rem;display:flex}.tab{background:var(--bg-secondary);border:1px solid var(--border-default);cursor:pointer;color:var(--text-secondary);border-radius:8px;flex:1;padding:1rem 2rem;font-size:1.1rem;font-weight:600;transition:all .3s}.tab:hover{background:var(--bg-tertiary);border-color:var(--accent-primary);color:var(--text-primary);transform:translateY(-2px);box-shadow:0 4px 12px #2563eb33}.tab.active{background:var(--bg-elevated);border-color:var(--accent-primary);color:var(--accent-primary);box-shadow:0 4px 12px #2563eb4d}.admin-section{background:var(--bg-secondary);border:1px solid var(--border-default);border-radius:12px;padding:2rem;box-shadow:0 4px 12px #0000004d}.admin-section h2{color:var(--text-primary);margin:0 0 1rem;font-weight:700}.section-description{color:var(--text-secondary);margin-bottom:1.5rem}.users-table-container,.documents-table-container{border:1px solid var(--border-default);border-radius:8px;margin-top:1rem;overflow-x:auto}.users-table,.documents-table{border-collapse:collapse;background:var(--bg-tertiary);width:100%}.users-table thead,.documents-table thead{background:var(--bg-elevated);border-bottom:1px solid var(--border-default)}.users-table th,.documents-table th{text-align:left;color:var(--text-primary);text-transform:uppercase;letter-spacing:.5px;padding:1rem;font-size:.85rem;font-weight:600}.users-table td,.documents-table td{border-bottom:1px solid var(--border-default);color:var(--text-secondary);padding:1rem}.users-table tbody tr:hover,.documents-table tbody tr:hover{background:var(--bg-elevated)}.inactive-user{opacity:.5;background:#0003}.role-badge{border:1px solid;border-radius:20px;padding:.25rem .75rem;font-size:.85rem;font-weight:600}.role-badge.admin{border-color:var(--accent-primary);color:var(--accent-primary);background:#2563eb33}.role-badge.user{border-color:var(--text-muted);color:var(--text-muted);background:#8b949e33}.status-badge{border:1px solid;border-radius:20px;padding:.25rem .75rem;font-size:.85rem;font-weight:600}.status-badge.active{border-color:var(--success);color:var(--success);background:#10b98133}.status-badge.inactive{border-color:var(--danger);color:var(--danger);background:#ef444433}.action-buttons{gap:.5rem;display:flex}.btn-edit,.btn-toggle,.btn-delete{cursor:pointer;background:var(--bg-elevated);border:1px solid;border-radius:6px;padding:.5rem .75rem;font-size:1.2rem;transition:all .2s}.btn-edit{border-color:var(--warning);color:var(--warning)}.btn-edit:hover{background:#f59e0b33;transform:scale(1.1)}.btn-toggle{border-color:var(--info);color:var(--info)}.btn-toggle:hover{background:#3b82f633;transform:scale(1.1)}.btn-delete{border-color:var(--danger);color:var(--danger)}.btn-delete:hover:not(:disabled){background:#ef444433;transform:scale(1.1)}.btn-delete:disabled{opacity:.3;cursor:not-allowed}.upload-section{background:var(--bg-tertiary);border:1px solid var(--border-default);border-radius:8px;margin-bottom:2rem;padding:1.5rem}.upload-section h3{color:var(--accent-primary);margin-top:0;font-weight:600}.upload-form{flex-direction:column;gap:1rem;display:flex}.form-group label{color:var(--text-primary);font-size:.9rem;font-weight:600}.form-group input[type=file],.form-group input[type=text]{border:1px solid var(--border-default);background:var(--bg-elevated);color:var(--text-primary);border-radius:6px;padding:.75rem;font-size:1rem;transition:all .3s}.form-group input[type=file]:focus,.form-group input[type=text]:focus{border-color:var(--accent-primary);outline:none;box-shadow:0 0 0 3px #2563eb1a}.file-info{background:var(--bg-elevated);border:1px solid var(--border-default);color:var(--accent-primary);border-radius:6px;padding:.5rem;font-weight:500}.btn-upload{background:var(--accent-primary);color:#fff;cursor:pointer;border:none;border-radius:8px;align-self:flex-start;padding:1rem 2rem;font-size:1.1rem;font-weight:600;transition:all .3s}.btn-upload:hover:not(:disabled){background:var(--accent-primary-hover);transform:translateY(-2px);box-shadow:0 4px 12px #2563eb66}.btn-upload:disabled{opacity:.5;cursor:not-allowed}.documents-list h3{color:var(--accent-primary);margin-bottom:1rem;font-weight:600}.no-documents{text-align:center;color:var(--text-muted);padding:2rem;font-style:italic}.rag-stats{flex-wrap:wrap;gap:1rem;margin-bottom:1.5rem;display:flex}.stat-badge{background:linear-gradient(135deg, var(--accent-primary) 0%, #00b894 100%);color:#fff;border-radius:8px;padding:.5rem 1rem;font-size:.9rem;font-weight:500;box-shadow:0 2px 8px #00b89433}.loading{min-height:50vh;color:var(--text-primary);justify-content:center;align-items:center;font-size:1.2rem;display:flex}.modal-overlay{z-index:1000;background:#000c;justify-content:center;align-items:center;animation:.3s fadeIn;display:flex;position:fixed;inset:0}.modal-content{background:var(--bg-secondary);border:1px solid var(--border-default);border-radius:12px;width:90%;max-width:700px;max-height:90vh;padding:0;animation:.3s slideUp;overflow-y:auto;box-shadow:0 8px 32px #0009}.modal-header{border-bottom:1px solid var(--border-default);background:var(--bg-tertiary);border-radius:12px 12px 0 0;justify-content:space-between;align-items:center;padding:1.5rem;display:flex}.modal-header h2{color:var(--text-primary);margin:0;font-size:1.5rem}.modal-close{color:var(--text-secondary);cursor:pointer;background:0 0;border:none;border-radius:4px;padding:.25rem .5rem;font-size:1.5rem;transition:all .2s}.modal-close:hover{color:var(--text-primary);background:var(--bg-elevated)}.edit-form{padding:1.5rem}.form-row{grid-template-columns:repeat(auto-fit,minmax(250px,1fr));gap:1rem;margin-bottom:1rem;display:grid}.form-group{flex-direction:column;gap:.5rem;display:flex}.edit-form .form-group label{color:var(--text-primary);font-size:.9rem;font-weight:600}.edit-form input,.edit-form select{border:1px solid var(--border-default);background:var(--bg-elevated);color:var(--text-primary);border-radius:6px;padding:.75rem;font-size:1rem;transition:all .3s}.edit-form input:focus,.edit-form select:focus{border-color:var(--accent-primary);outline:none;box-shadow:0 0 0 3px #2563eb1a}.edit-form select{cursor:pointer}.form-section-title{color:var(--accent-primary);border-bottom:1px solid var(--border-default);margin:1.5rem 0 1rem;padding-bottom:.5rem;font-size:1rem;font-weight:600}.btn-toggle-section{border:1px solid var(--border-default);background:var(--bg-elevated);width:100%;color:var(--text-secondary);cursor:pointer;border-radius:8px;margin:.35rem 0 .9rem;padding:.55rem .75rem;font-weight:600}.btn-toggle-section:hover{border-color:var(--accent-primary);color:var(--accent-primary)}.modal-actions{border-top:1px solid var(--border-default);justify-content:flex-end;gap:1rem;margin-top:2rem;padding-top:1.5rem;display:flex}.btn-cancel{background:var(--bg-elevated);color:var(--text-secondary);border:1px solid var(--border-default);cursor:pointer;border-radius:8px;padding:.75rem 1.5rem;font-size:1rem;font-weight:600;transition:all .3s}.btn-cancel:hover{background:var(--bg-tertiary);color:var(--text-primary)}.btn-save{background:var(--accent-primary);color:#fff;cursor:pointer;border:none;border-radius:8px;padding:.75rem 1.5rem;font-size:1rem;font-weight:600;transition:all .3s}.btn-save:hover{background:var(--accent-primary-hover);transform:translateY(-2px);box-shadow:0 4px 12px #2563eb66}@media (width<=768px){.admin-panel{width:100%;max-width:100vw;padding:.75rem;overflow-x:hidden}.admin-header{text-align:center;border-radius:8px;flex-direction:column;align-items:stretch;gap:1rem;padding:1rem}.admin-header h1{font-size:1.5rem}.back-button{text-align:center;width:100%}.admin-tabs{white-space:nowrap;-webkit-overflow-scrolling:touch;flex-direction:row;gap:.5rem;width:100%;padding-bottom:.5rem;overflow-x:auto}.admin-tabs::-webkit-scrollbar{display:none}.tab{text-align:center;flex:none;width:auto;padding:.75rem 1.25rem;font-size:.95rem}.admin-section{border-radius:8px;width:100%;padding:1rem}.users-table{min-width:650px;font-size:.8rem}.documents-table,.logs-table{min-width:600px;font-size:.8rem}.users-table td,.documents-table td,.logs-table td{padding:.5rem .4rem}.users-table th,.documents-table th,.logs-table th{padding:.6rem .4rem;font-size:.75rem}.action-buttons{flex-direction:row;justify-content:flex-start;gap:.35rem}.btn-edit,.btn-toggle,.btn-delete{padding:.4rem .6rem;font-size:1rem}.networks-tabs{flex-direction:column;align-self:stretch;gap:.5rem;width:100%;padding:.4rem}.network-tab{justify-content:center;width:100%;padding:.6rem 1rem}.network-content{grid-template-columns:1fr;gap:1rem;width:100%}.config-card,.publish-card,.logs-card{width:100%;padding:1rem}.upload-section{padding:1rem}.btn-upload{text-align:center;align-self:stretch;width:100%}.modal-content{width:95%;max-height:95vh}.form-row{grid-template-columns:1fr;gap:.75rem}.modal-actions{flex-direction:column;gap:.5rem}.btn-cancel,.btn-save{width:100%}.rag-stats{flex-direction:column;gap:.5rem;width:100%}.stat-badge{text-align:center;width:100%}.btn-publish-custom{align-self:stretch;width:100%}.tdf-stage-selector-container{flex-direction:column;align-items:stretch;gap:10px}.tdf-stage-select{width:100%;min-width:unset}.publish-buttons-container{flex-direction:column;gap:.75rem}.publish-buttons-container .btn-trigger-publish{width:100%;min-width:unset}}@media (width<=480px){.admin-panel{padding:.5rem}.admin-header h1{font-size:1.3rem}.admin-section h2{font-size:1.2rem}.action-buttons{flex-wrap:wrap}.rag-subtabs{text-align:center;grid-template-columns:1fr 1fr;width:100%;display:grid}.rag-subtab-btn{text-align:center;padding:.5rem .25rem;font-size:.85rem}}.networks-section{flex-direction:column;gap:1.5rem;animation:.4s ease-out slideIn;display:flex}.networks-tabs{background:var(--bg-tertiary);border:1px solid var(--border-default);border-radius:10px;flex-wrap:wrap;align-self:flex-start;gap:.75rem;padding:.5rem;display:flex}.network-tab{color:var(--text-secondary);cursor:pointer;background:0 0;border:none;border-radius:8px;align-items:center;gap:.5rem;padding:.75rem 1.5rem;font-weight:600;transition:all .3s cubic-bezier(.4,0,.2,1);display:flex}.network-tab:hover{color:var(--text-primary);background:#ffffff0d}.network-tab.active{background:var(--bg-elevated);color:var(--accent-primary);border:1px solid #2563eb4d;box-shadow:0 4px 12px #2563eb26}.network-content{grid-template-columns:1fr 1fr;gap:1.5rem;display:grid}@media (width<=1024px){.network-content{grid-template-columns:1fr}}.config-card,.publish-card,.logs-card{background:var(--bg-tertiary);border:1px solid var(--border-default);border-radius:12px;min-width:0;padding:1.5rem;transition:all .3s;box-shadow:0 4px 20px #0003}.config-card:hover,.publish-card:hover,.logs-card:hover{border-color:#2563eb33;box-shadow:0 6px 24px #2563eb0d}.config-card h3,.publish-card h3,.logs-card h3{color:var(--text-primary);align-items:center;gap:.5rem;margin-top:0;margin-bottom:1rem;font-size:1.25rem;font-weight:700;display:flex}.placeholder-card{text-align:center;color:var(--text-secondary);border:2px dashed var(--border-default);background:0 0;grid-column:span 2;padding:3rem 1.5rem}@media (width<=1024px){.placeholder-card{grid-column:span 1}}.placeholder-card h3{color:var(--accent-primary);justify-content:center}.social-config-form{flex-direction:column;gap:1.25rem;display:flex}.social-config-form .form-group input{background:var(--bg-elevated);border:1px solid var(--border-default);color:var(--text-primary);border-radius:8px;padding:.75rem 1rem;font-size:.95rem;transition:all .25s}.social-config-form .form-group input:focus{border-color:var(--accent-primary);outline:none;box-shadow:0 0 0 3px #2563eb26}.btn-save-social{background:linear-gradient(135deg, var(--bg-elevated) 0%, var(--bg-secondary) 100%);color:var(--text-primary);border:1px solid var(--border-default);cursor:pointer;border-radius:8px;align-self:flex-start;padding:.75rem 1.5rem;font-weight:600;transition:all .3s}.btn-save-social:hover{background:var(--bg-tertiary);border-color:var(--accent-primary);color:var(--accent-primary);transform:translateY(-1px);box-shadow:0 4px 12px #2563eb1a}.publish-card p{color:var(--text-secondary);margin-bottom:1.5rem;font-size:.95rem;line-height:1.6}.custom-quote-form{flex-direction:column;gap:1rem;margin-top:1rem;display:flex}.custom-quote-form textarea{background:var(--bg-elevated);border:1px solid var(--border-default);width:100%;color:var(--text-primary);resize:vertical;border-radius:8px;padding:.75rem;font-family:inherit;font-size:.95rem;transition:all .25s}.custom-quote-form textarea:focus{border-color:var(--accent-primary);outline:none;box-shadow:0 0 0 3px #2563eb26}.custom-quote-form select,.custom-quote-form input{background:var(--bg-elevated);border:1px solid var(--border-default);color:var(--text-primary);border-radius:8px;width:100%;padding:.75rem;font-size:.95rem;transition:all .25s}.custom-quote-form select:focus,.custom-quote-form input:focus{border-color:var(--accent-primary);outline:none;box-shadow:0 0 0 3px #2563eb26}.publish-actions{flex-direction:column;gap:1.25rem;display:flex}.checkbox-container{cursor:pointer;color:var(--text-secondary);-webkit-user-select:none;user-select:none;align-items:center;min-height:1.5rem;padding-left:2rem;font-size:.95rem;display:flex;position:relative}.checkbox-container input{opacity:0;cursor:pointer;width:0;height:0;position:absolute}.checkmark{background-color:var(--bg-elevated);border:1px solid var(--border-default);border-radius:4px;width:1.25rem;height:1.25rem;transition:all .2s;position:absolute;top:.1rem;left:0}.checkbox-container:hover input~.checkmark{border-color:var(--accent-primary)}.checkbox-container input:checked~.checkmark{background-color:var(--accent-primary);border-color:var(--accent-primary)}.checkmark:after{content:"";display:none;position:absolute}.checkbox-container input:checked~.checkmark:after{display:block}.checkbox-container .checkmark:after{border:2px solid #fff;border-width:0 2px 2px 0;width:.3rem;height:.6rem;top:.15rem;left:.4rem;transform:rotate(45deg)}.publish-buttons-container{flex-wrap:wrap;gap:1rem;width:100%;display:flex}.publish-buttons-container .btn-trigger-publish{flex:1;min-width:180px}@media (width<=580px){.gpu-stats-header{flex-direction:column;align-items:flex-start;gap:1rem}.gpu-controls{justify-content:space-between;width:100%}}.btn-trigger-publish{color:#fff;cursor:pointer;background:linear-gradient(135deg,#10b981 0%,#059669 100%);border:none;border-radius:8px;justify-content:center;align-items:center;gap:.5rem;padding:1rem 2rem;font-size:1.05rem;font-weight:700;transition:all .3s cubic-bezier(.4,0,.2,1);display:flex;box-shadow:0 4px 15px #10b98133}.btn-trigger-publish:hover:not(:disabled){filter:brightness(1.1);transform:translateY(-2px);box-shadow:0 6px 20px #10b98166}.btn-trigger-publish.nutrition{background:linear-gradient(135deg,#f59e0b 0%,#d97706 100%);box-shadow:0 4px 15px #f59e0b33}.btn-trigger-publish.nutrition:hover:not(:disabled){box-shadow:0 6px 20px #f59e0b66}.btn-trigger-publish:active:not(:disabled){transform:translateY(0)}.btn-trigger-publish:disabled{opacity:.6;cursor:not-allowed;background:var(--border-default);box-shadow:none}.btn-trigger-publish.worldcup{background:linear-gradient(135deg,#ea580c 0%,#d97706 100%);box-shadow:0 4px 15px #ea580c33}.btn-trigger-publish.worldcup:hover:not(:disabled){box-shadow:0 6px 20px #ea580c66}.btn-trigger-publish.worldcup-standings{background:linear-gradient(135deg,#0284c7 0%,#0369a1 100%);box-shadow:0 4px 15px #0369a133}.btn-trigger-publish.worldcup-standings:hover:not(:disabled){box-shadow:0 6px 20px #0369a166}.btn-trigger-publish.worldcup-bracket{background:linear-gradient(135deg,#ca8a04 0%,#854d0e 100%);box-shadow:0 4px 15px #ca8a0433}.btn-trigger-publish.worldcup-bracket:hover:not(:disabled){box-shadow:0 6px 20px #ca8a0466}.btn-trigger-publish.tdf-profile{color:#0f172a;background:linear-gradient(135deg,#eab308 0%,#ca8a04 100%);font-weight:700;box-shadow:0 4px 15px #eab30833}.btn-trigger-publish.tdf-profile:hover:not(:disabled){box-shadow:0 6px 20px #eab30866}.btn-trigger-publish.tdf-classification{color:#fff;background:linear-gradient(135deg,#1e293b 0%,#0f172a 100%);border:1px solid #475569;box-shadow:0 4px 15px #0f172a33}.btn-trigger-publish.tdf-classification:hover:not(:disabled){box-shadow:0 6px 20px #0f172a66}.btn-publish-custom{background:linear-gradient(135deg,#8b5cf6 0%,#6d28d9 100%);align-self:flex-start;width:auto;box-shadow:0 4px 15px #8b5cf633}.btn-publish-custom:hover:not(:disabled){box-shadow:0 6px 20px #8b5cf666}.logs-card{grid-column:span 2}@media (width<=1024px){.logs-card{grid-column:span 1}}.no-logs{text-align:center;color:var(--text-muted);padding:3rem;font-style:italic}.logs-table-container{border:1px solid var(--border-default);border-radius:8px;margin-top:.75rem;overflow-x:auto}.logs-table{border-collapse:collapse;background:var(--bg-secondary);width:100%}.logs-table th{background:var(--bg-elevated);color:var(--text-primary);text-transform:uppercase;letter-spacing:.5px;border-bottom:1px solid var(--border-default);padding:.9rem 1rem;font-size:.85rem;font-weight:600}.logs-table td{border-bottom:1px solid var(--border-default);color:var(--text-secondary);padding:.9rem 1rem;font-size:.9rem}.logs-table tbody tr:hover{background:#ffffff05}.status-badge-net{border:1px solid #0000;border-radius:12px;align-items:center;padding:.25rem .65rem;font-size:.8rem;font-weight:600;display:inline-flex}.status-badge-net.success{color:#34d399;background:#10b9811a;border-color:#10b9814d}.status-badge-net.composed{color:#fbbf24;background:#f59e0b1a;border-color:#f59e0b4d}.status-badge-net.failed{color:#f87171;background:#ef44441a;border-color:#ef44444d}.status-badge-net.rescheduled{color:#60a5fa;background:#3b82f61a;border-color:#3b82f64d}.status-badge-net.pending{color:#9ca3af;background:#9ca3af1a;border-color:#9ca3af4d}.processing-status-indicator{background:#2563eb14;border:1px solid #2563eb40;border-radius:8px;align-items:center;gap:.75rem;margin-top:1rem;padding:.75rem 1rem;display:flex}.processing-text{color:var(--accent-primary);font-size:.9rem;font-weight:500;line-height:1.4}.spinner-media{border:2px solid #2563eb40;border-top-color:var(--accent-primary);border-radius:50%;flex-shrink:0;width:1.25rem;height:1.25rem;animation:.8s linear infinite spin-media}@keyframes spin-media{to{transform:rotate(360deg)}}.logs-card-header{justify-content:space-between;align-items:center;margin-bottom:.75rem;display:flex}.logs-card-header h3{margin:0}.btn-clear-logs{color:var(--text-muted);border:1px solid var(--border-default);cursor:pointer;background:0 0;border-radius:6px;align-items:center;gap:.35rem;padding:.4rem .8rem;font-size:.85rem;font-weight:600;transition:all .2s;display:flex}.btn-clear-logs:hover{color:#f87171;background:#ef444414;border-color:#ef44444d}.btn-clear-logs:active{transform:scale(.98)}.gpu-section{animation:.4s ease-out slideIn}.gpu-container{grid-template-columns:repeat(auto-fit,minmax(320px,1fr));gap:1.5rem;margin-top:1rem;display:grid}.status-card-gpu,.config-card-gpu,.info-card-gpu{background:var(--bg-tertiary);border:1px solid var(--border-default);border-radius:10px;padding:1.5rem;transition:transform .3s,box-shadow .3s;box-shadow:0 4px 15px #0003}.status-card-gpu:hover,.config-card-gpu:hover,.info-card-gpu:hover{transform:translateY(-2px);box-shadow:0 8px 24px #0006}.status-card-gpu h3,.config-card-gpu h3,.info-card-gpu h3{color:var(--accent-primary);border-bottom:1px solid var(--border-default);margin-top:0;margin-bottom:1rem;padding-bottom:.5rem;font-size:1.2rem}.status-info-gpu{flex-direction:column;gap:1rem;display:flex}.status-indicator-gpu{text-align:center;border:1px solid;border-radius:20px;max-width:fit-content;padding:.5rem 1rem;font-size:.95rem;font-weight:700;display:inline-block}.status-indicator-gpu.online{border-color:var(--success);color:#34d399;background:#10b98126;box-shadow:0 0 12px #10b98133}.status-indicator-gpu.offline{border-color:var(--danger);color:#f87171;background:#ef444426;box-shadow:0 0 12px #ef444433}.status-detail-gpu p{color:var(--text-secondary);margin:.5rem 0}.status-detail-gpu code{background:var(--bg-elevated);color:var(--accent-secondary);border-radius:4px;padding:.2rem .4rem;font-family:monospace}.gpu-config-form{flex-direction:column;gap:1rem;display:flex}.gpu-config-form .form-group input{background:var(--bg-elevated);border:1px solid var(--border-default);color:var(--text-primary);border-radius:6px;width:100%;padding:.75rem}.gpu-config-form .form-group input:focus{border-color:var(--accent-primary);outline:none}.help-text{color:var(--text-muted);font-size:.75rem}.gpu-actions{gap:.75rem;margin-top:.5rem;display:flex}.btn-wakeup{background:linear-gradient(135deg, var(--accent-primary) 0%, #1e40af 100%);color:#fff;cursor:pointer;text-shadow:0 1px 2px #00000080;border:none;border-radius:6px;flex:2;padding:.75rem 1.25rem;font-weight:700;transition:all .3s;box-shadow:0 2px 8px #2563eb4d}.btn-wakeup:hover:not(:disabled){filter:brightness(1.1);transform:translateY(-2px);box-shadow:0 4px 15px #2563eb80}.btn-wakeup:disabled{opacity:.6;cursor:not-allowed}.btn-shutdown{color:#fff;cursor:pointer;text-shadow:0 1px 2px #00000080;background:linear-gradient(135deg,#ef4444 0%,#b91c1c 100%);border:none;border-radius:6px;flex:2;padding:.75rem 1.25rem;font-weight:700;transition:all .3s;box-shadow:0 2px 8px #ef44444d}.btn-shutdown:hover:not(:disabled){filter:brightness(1.1);transform:translateY(-2px);box-shadow:0 4px 15px #ef444480}.btn-shutdown:disabled{opacity:.5;cursor:not-allowed;box-shadow:none;background:#4b5563}.btn-check-status{background:var(--bg-elevated);color:var(--text-primary);border:1px solid var(--border-default);cursor:pointer;border-radius:6px;flex:1;padding:.75rem 1rem;font-weight:600;transition:all .2s}.btn-check-status:hover{background:var(--bg-tertiary);border-color:var(--text-secondary)}.info-content-gpu p{color:var(--text-secondary);margin-top:0;font-size:.95rem;line-height:1.5}.info-content-gpu ul{color:var(--text-secondary);flex-direction:column;gap:.75rem;margin-bottom:0;padding-left:1.25rem;font-size:.9rem;line-height:1.4;display:flex}.info-content-gpu li strong{color:var(--text-primary)}.info-content-gpu li em{color:var(--accent-secondary);font-style:normal;font-weight:600}.text-success{color:#34d399!important}.text-danger{color:#f87171!important}@media (width<=768px){.gpu-container{grid-template-columns:1fr}.gpu-actions{flex-direction:column}}.rag-tabs-header{border-bottom:1px solid var(--border-default);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:1rem;margin-bottom:2rem;padding-bottom:1rem;display:flex}.rag-tabs-header h2{margin:0}.rag-subtabs{background:var(--bg-tertiary);border:1px solid var(--border-default);border-radius:8px;gap:.5rem;padding:.25rem;display:flex}.rag-subtab-btn{color:var(--text-secondary);cursor:pointer;background:0 0;border:none;border-radius:6px;padding:.5rem 1.25rem;font-size:.95rem;font-weight:600;transition:all .2s}.rag-subtab-btn:hover{color:var(--text-primary);background:#ffffff0d}.rag-subtab-btn.active{color:var(--accent-primary);background:var(--bg-elevated);box-shadow:0 2px 6px #0000004d}.concepts-management-container{margin-top:1.5rem}.concepts-layout{grid-template-columns:2fr 1fr;align-items:start;gap:2rem;display:grid}.concepts-list-panel{background:var(--bg-tertiary);border:1px solid var(--border-default);border-radius:12px;padding:1.5rem}.concepts-list-header{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:1rem;margin-bottom:1.5rem;display:flex}.concepts-list-header h3{color:var(--text-primary);margin:0}.concepts-search-form{flex:1;align-items:center;gap:.5rem;max-width:400px;display:flex;position:relative}.concepts-search-input{background:var(--bg-elevated);border:1px solid var(--border-default);width:100%;color:var(--text-primary);border-radius:6px;padding:.6rem 2.5rem .6rem 1rem;font-size:.9rem;transition:border-color .2s}.concepts-search-input:focus{border-color:var(--accent-primary);outline:none}.btn-clear-search{color:var(--text-muted);cursor:pointer;background:0 0;border:none;border-radius:50%;justify-content:center;align-items:center;padding:.2rem;font-size:1rem;display:flex;position:absolute;right:5.5rem}.btn-clear-search:hover{color:var(--text-primary);background:#ffffff1a}.btn-search-concepts{background:var(--bg-elevated);border:1px solid var(--border-default);color:var(--text-primary);cursor:pointer;white-space:nowrap;border-radius:6px;padding:.6rem 1.2rem;font-size:.9rem;font-weight:600;transition:all .2s}.btn-search-concepts:hover{background:var(--bg-secondary);border-color:var(--accent-primary);color:var(--accent-primary)}.concepts-loading{text-align:center;color:var(--text-muted);padding:3rem;font-style:italic}.no-concepts{text-align:center;color:var(--text-muted);border:1px dashed var(--border-default);border-radius:8px;padding:3rem;font-style:italic}.concepts-grid{grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:1.25rem;margin-bottom:1.5rem;display:grid}.concept-card{background:var(--bg-secondary);border:1px solid var(--border-default);border-radius:8px;flex-direction:column;justify-content:space-between;padding:1.25rem;transition:all .3s cubic-bezier(.4,0,.2,1);display:flex;box-shadow:0 4px 6px #0000001a}.concept-card:hover{border-color:#2563eb66;transform:translateY(-4px);box-shadow:0 8px 16px #0000004d}.concept-card-header{justify-content:space-between;align-items:center;gap:.5rem;width:100%;margin-bottom:.75rem;display:flex}.concept-card-title-group{flex-direction:column;flex:1;gap:.35rem;display:flex}.btn-delete-concept{cursor:pointer;opacity:.6;background:0 0;border:none;border-radius:4px;justify-content:center;align-items:center;padding:.35rem;font-size:1rem;transition:all .2s;display:flex}.btn-delete-concept:hover{opacity:1;color:var(--danger);background:#ef444426;transform:scale(1.1)}.concept-title{color:var(--text-primary);margin:0;font-size:1.1rem;font-weight:700;line-height:1.3}.concept-filename-badge{color:var(--accent-primary);white-space:nowrap;text-overflow:ellipsis;background:#2563eb1a;border:1px solid #2563eb40;border-radius:4px;max-width:150px;padding:.25rem .5rem;font-size:.75rem;font-weight:600;overflow:hidden}.concept-card-body{flex:1;margin-bottom:1rem}.concept-content{color:var(--text-secondary);white-space:pre-wrap;margin:0;font-size:.925rem;line-height:1.5}.btn-toggle-expand{color:var(--accent-primary);cursor:pointer;background:0 0;border:none;margin-top:.5rem;padding:.25rem 0;font-size:.85rem;font-weight:600;transition:color .2s}.btn-toggle-expand:hover{color:var(--accent-primary-hover);text-decoration:underline}.concept-card-footer{color:var(--text-muted);border-top:1px solid var(--border-default);justify-content:flex-end;padding-top:.75rem;font-size:.75rem;display:flex}.concepts-pagination{border-top:1px solid var(--border-default);justify-content:center;align-items:center;gap:1rem;margin-top:2rem;padding-top:1rem;display:flex}.btn-pagination{background:var(--bg-elevated);border:1px solid var(--border-default);color:var(--text-primary);cursor:pointer;border-radius:6px;padding:.5rem 1rem;font-size:.85rem;font-weight:600;transition:all .2s}.btn-pagination:hover:not(:disabled){background:var(--bg-secondary);border-color:var(--accent-primary);color:var(--accent-primary)}.btn-pagination:disabled{opacity:.4;cursor:not-allowed}.pagination-info{color:var(--text-secondary);font-size:.9rem;font-weight:500}.concept-form-panel{background:var(--bg-tertiary);border:1px solid var(--border-default);border-radius:12px;padding:1.5rem;position:sticky;top:2rem}.concept-form-panel h3{color:var(--text-primary);margin-top:0;margin-bottom:1.5rem}.concept-create-form{flex-direction:column;gap:1.25rem;display:flex}.concept-create-form textarea{background:var(--bg-elevated);border:1px solid var(--border-default);width:100%;color:var(--text-primary);resize:vertical;border-radius:6px;padding:.75rem;font-family:inherit;font-size:.95rem;transition:border-color .2s}.concept-create-form textarea:focus{border-color:var(--accent-primary);outline:none}.source-toggle-group{background:var(--bg-elevated);border:1px solid var(--border-default);border-radius:6px;gap:1rem;padding:.35rem;display:flex}.source-toggle-group .radio-label{cursor:pointer;color:var(--text-secondary);border-radius:4px;flex:1;justify-content:center;align-items:center;gap:.5rem;padding:.5rem;font-size:.875rem;font-weight:600;transition:all .2s;display:flex}.source-toggle-group .radio-label:has(input:checked){background:var(--bg-secondary);color:var(--text-primary);box-shadow:0 1px 3px #0003}.source-toggle-group input[type=radio]{cursor:pointer;accent-color:var(--accent-primary)}.file-selection-list{border:1px solid var(--border-default);background:var(--bg-elevated);border-radius:6px;flex-direction:column;gap:.5rem;max-height:250px;padding:.25rem;display:flex;overflow-y:auto}.file-select-card{cursor:pointer;border:1px solid var(--border-default);background:var(--bg-secondary);border-radius:6px;padding:.75rem;transition:all .2s;display:block}.file-select-card:hover{border-color:var(--text-muted);background:var(--bg-elevated)}.file-select-card.selected{border-color:var(--accent-primary);box-shadow:inset 0 0 0 1px var(--accent-primary);background:#2563eb0d}.hidden-radio{display:none}.file-select-details{justify-content:space-between;align-items:center;display:flex}.file-select-name{color:var(--text-primary);text-overflow:ellipsis;white-space:nowrap;font-size:.875rem;font-weight:600;overflow:hidden}.file-select-size{color:var(--text-muted);font-size:.75rem}.no-target-files{color:var(--danger);margin:0;font-size:.85rem;font-style:italic}.btn-save-concept{background:linear-gradient(135deg, var(--accent-primary) 0%, #1d4ed8 100%);color:#fff;cursor:pointer;border:none;border-radius:6px;justify-content:center;align-items:center;padding:.85rem 1.5rem;font-size:1rem;font-weight:700;transition:all .3s;display:flex;box-shadow:0 4px 10px #2563eb40}.btn-save-concept:hover:not(:disabled){transform:translateY(-2px);box-shadow:0 6px 15px #2563eb66}.btn-save-concept:disabled{opacity:.6;cursor:not-allowed}.concept-file-select{background:var(--bg-elevated);border:1px solid var(--border-default);width:100%;color:var(--text-primary);cursor:pointer;border-radius:6px;padding:.75rem;font-size:1rem;transition:all .3s}.concept-file-select:focus{border-color:var(--accent-primary);outline:none;box-shadow:0 0 0 3px #2563eb1a}.concept-file-select option{background:var(--bg-secondary);color:var(--text-primary)}@media (width<=1100px){.concepts-layout{grid-template-columns:1fr;gap:1.5rem}.concept-form-panel{position:static}}.gpu-stats-card{background:var(--bg-secondary);border:1px solid var(--border-default);border-radius:12px;margin-bottom:1.5rem;padding:1.5rem;box-shadow:0 2px 8px #0000004d}.gpu-stats-card h3{color:var(--text-primary);align-items:center;gap:.5rem;margin:0 0 1.5rem;font-size:1.25rem;display:flex}.gpu-stats-header{justify-content:space-between;align-items:center;margin-bottom:1.5rem;display:flex}.gpu-stats-header h3{margin:0}.gpu-controls{align-items:center;gap:.75rem;display:flex}.btn-toggle-auto{color:#fff;cursor:pointer;background:linear-gradient(135deg,#11998e 0%,#38ef7d 100%);border:none;border-radius:8px;min-width:90px;padding:.6rem 1rem;font-size:.85rem;font-weight:600;transition:all .3s;box-shadow:0 2px 8px #11998e4d}.btn-toggle-auto:hover{transform:translateY(-2px);box-shadow:0 4px 12px #11998e80}.btn-toggle-auto.active{background:linear-gradient(135deg,#ee0979 0%,#ff6a00 100%);animation:2s ease-in-out infinite pulse-auto;box-shadow:0 2px 8px #ee09794d}.btn-toggle-auto.active:hover{box-shadow:0 4px 12px #ee097980}@keyframes pulse-auto{0%,to{box-shadow:0 2px 8px #ee09794d}50%{box-shadow:0 2px 16px #ee097999}}.btn-refresh-gpu{color:#fff;cursor:pointer;background:linear-gradient(135deg,#667eea 0%,#764ba2 100%);border:none;border-radius:8px;padding:.6rem 1.2rem;font-size:.9rem;font-weight:600;transition:all .3s;box-shadow:0 2px 8px #667eea4d}.btn-refresh-gpu:hover{transform:translateY(-2px);box-shadow:0 4px 12px #667eea80}.btn-refresh-gpu:active{transform:translateY(0)}.gpu-card{background:var(--bg-elevated);border:1px solid var(--border-subtle);border-radius:8px;margin-bottom:1rem;padding:1.25rem;transition:all .3s}.gpu-card:hover{border-color:var(--accent-primary);box-shadow:0 4px 12px #2563eb33}.gpu-header{border-bottom:1px solid var(--border-subtle);justify-content:space-between;align-items:center;margin-bottom:1.25rem;padding-bottom:.75rem;display:flex}.gpu-header h4{color:var(--text-primary);margin:0;font-size:1.1rem;font-weight:600}.gpu-temp{color:#fff;background:linear-gradient(135deg,#667eea 0%,#764ba2 100%);border-radius:20px;padding:.5rem 1rem;font-size:.95rem;font-weight:600;box-shadow:0 2px 8px #667eea4d}.gpu-metrics{flex-direction:column;gap:1.25rem;display:flex}.metric-item{flex-direction:column;gap:.5rem;display:flex}.metric-item label{color:var(--text-secondary);text-transform:uppercase;letter-spacing:.5px;font-size:.9rem;font-weight:600}.progress-bar{background:var(--bg-tertiary);border-radius:12px;width:100%;height:24px;position:relative;overflow:hidden;box-shadow:inset 0 2px 4px #0000004d}.progress-fill{border-radius:12px;height:100%;transition:width .5s,background .3s;position:relative;overflow:hidden}.progress-fill:after{content:"";background:linear-gradient(90deg,#0000,#fff3,#0000);animation:2s infinite shimmer;position:absolute;inset:0}@keyframes shimmer{0%{transform:translate(-100%)}to{transform:translate(100%)}}.metric-value{color:var(--text-primary);font-size:.95rem;font-weight:600}.stats-timestamp{border-top:1px solid var(--border-subtle);color:var(--text-tertiary);text-align:center;margin:1.25rem 0 0;padding-top:1rem;font-size:.85rem}@media (width<=768px){.gpu-header{flex-direction:column;align-items:flex-start;gap:.75rem}.gpu-temp{align-self:flex-start}}.deploy-section{animation:.35s slideIn}.deploy-card{background:var(--bg-tertiary);border:1px solid var(--border-default);border-radius:12px;flex-direction:column;gap:1rem;margin-bottom:1.25rem;padding:1.5rem;display:flex}.deploy-meta p{color:var(--text-secondary);margin:.25rem 0}.btn-deploy{color:#fff;cursor:pointer;background:linear-gradient(135deg,#0ea5a4 0%,#0f766e 100%);border:none;border-radius:8px;align-self:flex-start;padding:.85rem 1.35rem;font-weight:700;transition:all .25s;box-shadow:0 4px 12px #0f766e59}.btn-deploy:hover:not(:disabled){filter:brightness(1.05);transform:translateY(-2px)}.btn-deploy:disabled{opacity:.65;cursor:not-allowed}.btn-deploy-secondary{background:linear-gradient(135deg,#334155 0%,#1e293b 100%);margin-left:.75rem;box-shadow:0 4px 12px #1e293b59}.btn-deploy-secondary:hover:not(:disabled){filter:brightness(1.08)}.deploy-result-card{background:var(--bg-tertiary);border:1px solid var(--border-default);border-radius:12px;padding:1.25rem}.deploy-result-card h3{margin-top:0}.deploy-result-grid{grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:.5rem 1rem;margin-bottom:.75rem;display:grid}.deploy-result-grid p{color:var(--text-secondary);margin:0}.deploy-output-block{margin-top:.75rem}.deploy-output-block h4{color:var(--text-primary);margin:0 0 .35rem}.deploy-output-block pre{color:#d1d5db;white-space:pre-wrap;word-break:break-word;background:#0b1220;border:1px solid #1f2937;border-radius:8px;max-height:360px;margin:0;padding:.9rem;font-size:.82rem;line-height:1.35;overflow:auto}.deploy-output-block.stderr pre{color:#fecaca;background:#1b0d10;border-color:#7f1d1d}@media (width<=768px){.btn-deploy{text-align:center;width:100%}.btn-deploy-secondary{margin-top:.65rem;margin-left:0}}.tdf-stage-selector-container{background:#1e293b;border:1px solid #334155;border-radius:8px;flex-wrap:wrap;align-items:center;gap:15px;margin-bottom:15px;padding:10px 15px;display:flex}.tdf-stage-selector-label{color:#94a3b8;font-size:14px;font-weight:600}.tdf-stage-select{color:#fff;cursor:pointer;background:#0f172a;border:1px solid #475569;border-radius:6px;outline:none;min-width:280px;padding:8px 16px;font-size:14px;font-weight:700}.tdf-stage-selector-help{color:#64748b;font-size:12px}.doc-raw-name{word-break:break-all;white-space:normal}.shared-route-container{color:#f8fafc;background:linear-gradient(135deg,#0f172a 0%,#020617 100%);flex-direction:column;gap:1.5rem;min-height:100vh;padding:1.5rem;font-family:Inter,system-ui,-apple-system,sans-serif;display:flex}.glass-panel{-webkit-backdrop-filter:blur(12px);background:#1e293b73;border:1px solid #ffffff14;border-radius:16px;transition:all .3s cubic-bezier(.4,0,.2,1);box-shadow:0 10px 30px #00000040}.glass-panel:hover{border-color:#ffffff26;box-shadow:0 15px 35px #3b82f61a}.shared-header{flex-direction:column;gap:1.5rem;padding:1.5rem 2rem;display:flex}.shared-header-main{flex-wrap:wrap;justify-content:space-between;align-items:flex-start;gap:1rem;display:flex}.shared-title-section h1{background:linear-gradient(90deg,#3b82f6,#60a5fa,#93c5fd);-webkit-text-fill-color:transparent;letter-spacing:-.02em;-webkit-background-clip:text;background-clip:text;margin:.5rem 0;font-size:2.2rem;font-weight:800}.route-desc{color:#94a3b8;max-width:800px;margin:0;font-size:1rem;line-height:1.5}.activity-badge{text-transform:uppercase;letter-spacing:.05em;border:1px solid #0000;border-radius:20px;align-items:center;gap:.5rem;padding:.35rem .85rem;font-size:.85rem;font-weight:600;display:inline-flex}.badge-ride{color:#60a5fa;background:#3b82f626;border-color:#3b82f64d}.badge-run{color:#34d399;background:#10b98126;border-color:#10b9814d}.badge-walk{color:#fbbf24;background:#f59e0b26;border-color:#f59e0b4d}.shared-branding{flex-direction:column;align-items:flex-end;display:flex}.brand-logo{letter-spacing:.1em;background:linear-gradient(135deg,#3b82f6 0%,#1d4ed8 100%);-webkit-text-fill-color:transparent;text-shadow:0 0 20px #3b82f64d;-webkit-background-clip:text;background-clip:text;font-size:1.8rem;font-weight:900}.brand-badge{color:#94a3b8;letter-spacing:.1em;text-transform:uppercase;font-size:.75rem;font-weight:700}.metrics-grid{grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:1rem;width:100%;display:grid}.metrics-grid .metric-card{background:#0f172a80;border-color:#ffffff0d;flex-direction:column;gap:.25rem;padding:1rem 1.5rem;display:flex}.metric-label{color:#64748b;text-transform:uppercase;letter-spacing:.05em;font-size:.8rem;font-weight:700}.metric-value{color:#f8fafc;align-items:baseline;gap:.25rem;font-size:1.6rem;font-weight:700;display:flex}.metric-value small{color:#94a3b8;font-size:.9rem;font-weight:500}.difficulty-stars{align-items:center;gap:.25rem;display:flex}.star-filled,.star-half{color:#eab308}.star-empty{color:#475569}.star-number{color:#94a3b8;margin-left:.5rem;font-size:1rem;font-weight:600}.shared-main-content{grid-template-columns:1.6fr 1fr;gap:1.5rem;display:grid}.section-title{color:#cbd5e1;border-left:4px solid #3b82f6;align-items:center;gap:.5rem;margin:0 0 1.25rem;padding-left:.75rem;font-size:1.25rem;font-weight:700;display:flex}.shared-visual-section{flex-direction:column;gap:1.5rem;display:flex}.map-wrapper{padding:1.25rem}.shared-leaflet-map{z-index:1;border:1px solid #ffffff0f;border-radius:12px;height:480px}.custom-map-marker{background:0 0;border:none}.map-marker-pin{background:#3b82f6;border-radius:50% 50% 50% 0;justify-content:center;align-items:center;width:30px;height:30px;margin:-15px 0 0 -15px;font-size:14px;animation:1s ease-out bouncePin;display:flex;position:absolute;top:50%;left:50%;transform:rotate(-45deg);box-shadow:0 3px 8px #00000080}.start-pin{background:#10b981}.end-pin{background:#ef4444}.map-marker-pin:after{content:"";background:#fff;border-radius:50%;width:14px;height:14px;margin:8px 0 0 8px;position:absolute}.map-hover-dot{background:#fbbf24;border:2px solid #fff;border-radius:50%;width:12px;height:12px;animation:1.5s infinite pulseDot;box-shadow:0 0 10px #fbbf24cc}@keyframes bouncePin{0%{opacity:0;transform:translateY(-20px)rotate(-45deg)}60%{transform:translateY(5px)rotate(-45deg)}to{opacity:1;transform:translateY(0)rotate(-45deg)}}@keyframes pulseDot{0%{transform:scale(.9);box-shadow:0 0 #fbbf24b3}70%{transform:scale(1.1);box-shadow:0 0 0 8px #fbbf2400}to{transform:scale(.9);box-shadow:0 0 #fbbf2400}}.chart-wrapper{padding:1.25rem}.altimetry-chart-container{padding-top:1rem}.chart-custom-tooltip{padding:.75rem 1rem;font-size:.85rem;background:#0f172ae6!important;border-color:#ffffff26!important}.tooltip-dist{color:#94a3b8;margin:0 0 .25rem}.tooltip-elev{color:#3b82f6;margin:0;font-size:.95rem}.shared-data-section{flex-direction:column;gap:1.5rem;display:flex}.weather-wrapper{padding:1.25rem}.weather-days-tabs{grid-template-columns:repeat(3,1fr);gap:.5rem;margin-bottom:1rem;display:grid}.weather-day-tab{cursor:pointer;background:#0f172a33;border-color:#ffffff08;flex-direction:column;align-items:center;gap:.25rem;padding:.75rem .5rem;display:flex}.weather-day-tab.active{background:#3b82f626;border-color:#3b82f666;box-shadow:0 5px 15px #3b82f61a}.tab-day{color:#cbd5e1;font-size:.8rem;font-weight:700}.tab-date{color:#64748b;font-size:.7rem}.tab-emoji{margin:.25rem 0;font-size:1.5rem}.tab-temp{color:#94a3b8;font-size:.8rem;font-weight:600}.weather-day-detail{background:#0f172a4d;border-color:#ffffff08;padding:1rem}.weather-detail-summary{border-bottom:1px solid #ffffff0f;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:1rem;margin-bottom:1rem;padding-bottom:1rem;display:flex}.weather-detail-main{align-items:center;gap:1rem;display:flex}.detail-emoji{font-size:2.5rem}.detail-desc h4{color:#f8fafc;margin:0 0 .15rem;font-size:1.1rem;font-weight:700}.detail-desc p{color:#64748b;margin:0;font-size:.8rem}.weather-detail-metrics{flex-direction:column;gap:.4rem;display:flex}.detail-metric{color:#94a3b8;align-items:center;gap:.5rem;font-size:.85rem;display:flex}.metric-icon{font-size:1rem}.metric-icon.humidity{color:#3b82f6}.metric-icon.wind{color:#cbd5e1}.weather-hourly-list h5{color:#94a3b8;text-transform:uppercase;letter-spacing:.05em;margin:0 0 .75rem;font-size:.9rem;font-weight:700}.weather-hours-scroll{flex-direction:column;gap:.4rem;max-height:200px;padding-right:.25rem;display:flex;overflow-y:auto}.weather-hour-row{background:#0f172a33;border-color:#ffffff08;grid-template-columns:1fr 1fr 1fr 1.5fr 1.5fr;align-items:center;padding:.5rem .75rem;font-size:.8rem;display:grid}.hour-time{color:#f8fafc;font-weight:700}.hour-emoji{text-align:center;font-size:1.1rem}.hour-temp{color:#cbd5e1;font-weight:600}.hour-precip{color:#60a5fa;font-size:.75rem}.hour-wind{color:#94a3b8;text-align:right;font-size:.75rem}.weather-hours-scroll::-webkit-scrollbar{width:4px}.weather-hours-scroll::-webkit-scrollbar-track{background:#0000001a;border-radius:4px}.weather-hours-scroll::-webkit-scrollbar-thumb{background:#ffffff1a;border-radius:4px}.segments-wrapper{padding:1.25rem}.segments-list{flex-direction:column;gap:.75rem;max-height:480px;padding-right:.25rem;display:flex;overflow-y:auto}.segments-list::-webkit-scrollbar{width:4px}.segments-list::-webkit-scrollbar-track{background:#0000001a}.segments-list::-webkit-scrollbar-thumb{background:#ffffff1a;border-radius:4px}.segment-item-card{background:#0f172a40;border-color:#ffffff0a;flex-direction:column;gap:.75rem;padding:1rem;display:flex}.segment-item-card:hover{background:#0f172a66}.segment-main-info{align-items:center;gap:.75rem;display:flex}.segment-badge{text-transform:uppercase;letter-spacing:.05em;color:#f87171;background:#ef444426;border:1px solid #ef44444d;border-radius:4px;padding:.25rem .5rem;font-size:.7rem;font-weight:700}.segment-name{color:#f1f5f9;margin:0;font-size:.95rem;font-weight:700}.segment-stats-grid{grid-template-columns:repeat(3,1fr);gap:.5rem;display:grid}.seg-stat{flex-direction:column;gap:.15rem;display:flex}.seg-stat-label{color:#64748b;text-transform:uppercase;font-size:.7rem;font-weight:600}.seg-stat-value{color:#cbd5e1;font-size:.85rem;font-weight:700}.no-segments{text-align:center;color:#64748b;padding:2rem}.no-segments p{margin:0;font-size:.9rem}.shared-footer{margin-top:auto;padding:1.5rem}.footer-content{color:#64748b;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:1rem;font-size:.85rem;display:flex}.footer-content p{margin:0}.footer-brand-link{color:#3b82f6;font-weight:600;text-decoration:none;transition:color .2s}.footer-brand-link:hover{color:#60a5fa;text-decoration:underline}.shared-viewer-loading,.shared-viewer-error{color:#f8fafc;background:linear-gradient(135deg,#0f172a 0%,#020617 100%);justify-content:center;align-items:center;min-height:100vh;padding:1.5rem;font-family:Inter,system-ui,-apple-system,sans-serif;display:flex}.loading-container{flex-direction:column;align-items:center;gap:1rem;display:flex}.spinner{border:4px solid #3b82f61a;border-top-color:#3b82f6;border-radius:50%;width:50px;height:50px;animation:1s linear infinite spin;box-shadow:0 0 15px #3b82f633}.error-card{text-align:center;flex-direction:column;align-items:center;gap:1.25rem;max-width:500px;padding:2.5rem;display:flex}.error-card h2{color:#ef4444;margin:0;font-size:1.8rem}.error-card p{color:#94a3b8;margin:0;font-size:1rem;line-height:1.6}.btn-error-back{color:#fff;background:linear-gradient(135deg,#3b82f6 0%,#1d4ed8 100%);border-radius:8px;align-items:center;gap:.5rem;padding:.75rem 1.5rem;font-weight:600;text-decoration:none;transition:all .2s;display:inline-flex;box-shadow:0 4px 15px #3b82f64d}.btn-error-back:hover{transform:translateY(-2px);box-shadow:0 6px 20px #3b82f666}@media (width<=1024px){.shared-main-content{grid-template-columns:1fr}}@media (width<=768px){.shared-route-container{gap:1rem;padding:.75rem}.shared-header{padding:1.25rem 1rem}.shared-title-section h1{font-size:1.8rem}.shared-leaflet-map{height:350px}.weather-days-tabs{grid-template-columns:1fr}.weather-detail-summary{flex-direction:column;align-items:flex-start}.footer-content{text-align:center;flex-direction:column}.shared-map-header{flex-direction:column;align-items:flex-start;gap:.75rem}.weather-form-compact{justify-content:space-between;width:100%}}.shared-map-header{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:1rem;margin-bottom:1.25rem;display:flex}.shared-map-header .section-title{margin:0}.weather-form-compact{flex-wrap:wrap;align-items:center;gap:.75rem;display:flex}.form-group-inline{white-space:nowrap;align-items:center;gap:.35rem;display:flex}.form-group-inline label{color:#94a3b8;flex-shrink:0;align-items:center;font-size:.9rem;font-weight:600;display:flex}.form-input-compact{color:#f8fafc;background:#0f172a99;border:1px solid #ffffff14;border-radius:8px;padding:.4rem .5rem;font-family:inherit;font-size:.85rem;transition:all .2s}.form-input-compact:focus{border-color:#3b82f6;outline:none;box-shadow:0 0 0 2px #3b82f640}.form-input-compact.speed-input{text-align:center;width:65px}.btn-hour-compact{color:#cbd5e1;cursor:pointer;background:#1e293b99;border:1px solid #ffffff14;border-radius:6px;flex-shrink:0;justify-content:center;align-items:center;min-width:26px;padding:.4rem .5rem;font-size:.75rem;transition:all .2s;display:flex}.btn-hour-compact:hover{color:#fff;background:#3b82f6;border-color:#3b82f6}.unit-label{color:#64748b;flex-shrink:0;font-size:.8rem}.btn-calculate-weather-compact{color:#fff;cursor:pointer;white-space:nowrap;background:linear-gradient(135deg,#3b82f6 0%,#1d4ed8 100%);border:none;border-radius:8px;flex-shrink:0;align-items:center;gap:.5rem;padding:.45rem 1rem;font-size:.85rem;font-weight:600;transition:all .2s;display:flex;box-shadow:0 4px 10px #3b82f633}.btn-calculate-weather-compact:hover:not(:disabled){transform:translateY(-1px);box-shadow:0 6px 15px #3b82f659}.btn-calculate-weather-compact:disabled{opacity:.6;cursor:not-allowed}.spinner-compact{vertical-align:middle;border:2px solid #ffffff4d;border-top-color:#fff;border-radius:50%;width:14px;height:14px;animation:.8s linear infinite spinWeatherCompact;display:inline-block}@keyframes spinWeatherCompact{to{transform:rotate(360deg)}}.weather-marker{background:0 0!important;border:none!important}.weather-marker-wind{cursor:pointer;width:95px;height:55px;transition:all .25s;position:relative}.weather-marker-wind:hover{transform:scale(1.15)}.weather-wind-circle{filter:drop-shadow(0 2px 4px #00000080);width:32px;height:32px;display:block;position:absolute;top:0;left:0}.weather-marker-wind.viento-contra-low .weather-wind-circle{animation:1.5s infinite alternate pulseGlowVientoContraLow}.weather-marker-wind.viento-contra-medium .weather-wind-circle{animation:1.5s infinite alternate pulseGlowVientoContraMedium}.weather-marker-wind.viento-contra-high .weather-wind-circle{animation:1.5s infinite alternate pulseGlowVientoContraHigh}.weather-marker-wind.viento-favor .weather-wind-circle{animation:1.5s infinite alternate pulseGlowVientoFavor}.weather-wind-speed{text-align:center;width:32px;position:absolute;top:32px;left:0}.weather-wind-speed span{color:#000;text-shadow:0 0 3px #ffffffe6,0 0 6px #ffffffb3;font-size:16px;font-weight:700;line-height:1.1}.weather-info-box{align-items:center;gap:3px;display:flex;position:absolute;top:2px;left:38px}.weather-emoji{text-shadow:0 1px 3px #000c;font-size:24px}.weather-temp{color:#000;text-shadow:0 0 3px #ffffffe6,0 0 6px #ffffffb3;font-size:19px;font-weight:700}@media (width<=640px){.weather-marker{width:65px!important;height:45px!important;margin-top:-22px!important;margin-left:-22px!important}.weather-marker-wind{width:65px;height:45px}.weather-wind-circle{width:22px;height:22px}.weather-wind-speed{width:22px;top:22px}.weather-wind-speed span{font-size:12px}.weather-info-box{gap:2px;top:0;left:26px}.weather-emoji{font-size:18px}.weather-temp{font-size:14px}}.leaflet-popup-content-wrapper{color:#f1f5f9!important;background:#0f172a!important;border:1px solid #94a3b833!important;border-radius:10px!important;box-shadow:0 4px 24px #0009!important}.leaflet-popup-tip{background:#0f172a!important}.leaflet-popup-close-button{color:#94a3b8!important}.leaflet-popup-close-button:hover{color:#f1f5f9!important}.leaflet-pane.leaflet-popup-pane{z-index:900!important}.weather-popup{min-width:180px;font-size:.85rem;line-height:1.5;color:#f1f5f9!important}.weather-popup strong{color:#38bdf8!important}.elevation-chart-actions{flex-wrap:wrap;align-items:center;gap:.5rem;display:flex}.btn-slope-toggle{background:var(--bg-tertiary);border:1px solid var(--border-default);color:var(--text-secondary);cursor:pointer;border-radius:6px;align-items:center;gap:.4rem;padding:.35rem .75rem;font-size:.8rem;font-weight:600;transition:all .2s;display:flex}.btn-slope-toggle:hover{background:var(--bg-elevated);border-color:var(--accent-primary);color:var(--accent-primary)}.btn-slope-toggle.active{color:#e94560;background:#e9456026;border-color:#e94560;box-shadow:0 0 8px #e9456033}.btn-slope-toggle.active:hover{color:#fff;background:#e9456040}.slope-legend{border:1px solid var(--border-default);background:#ffffff08;border-radius:6px;flex-wrap:wrap;gap:.75rem;margin-bottom:.5rem;padding:.4rem .75rem;display:flex}.slope-legend-item{color:var(--text-secondary);align-items:center;gap:.35rem;font-size:.75rem;font-weight:500;display:flex}.slope-color-dot{border-radius:2px;width:10px;height:10px;display:inline-block}.btn-chart-toggle{background:var(--bg-tertiary);border:1px solid var(--border-default);color:var(--text-secondary);cursor:pointer;border-radius:6px;align-items:center;gap:.4rem;padding:.35rem .75rem;font-size:.8rem;font-weight:600;transition:all .2s;display:flex}.btn-chart-toggle:hover:not(:disabled){background:var(--bg-elevated);border-color:var(--accent-primary);color:var(--accent-primary)}.btn-chart-toggle:disabled{opacity:.45;cursor:not-allowed;filter:grayscale(.8)}.btn-chart-toggle.active-temp{color:#ef4444;background:#ef444426;border-color:#ef4444;box-shadow:0 0 8px #ef444433}.btn-chart-toggle.active-temp:hover:not(:disabled){color:#fff;background:#ef444440}.btn-chart-toggle.active-wind{color:#3b82f6;background:#3b82f626;border-color:#3b82f6;box-shadow:0 0 8px #3b82f633}.btn-chart-toggle.active-wind:hover:not(:disabled){color:#fff;background:#3b82f640}.btn-chart-toggle.active-gusts{color:#a855f7;background:#a855f726;border-color:#a855f7;box-shadow:0 0 8px #a855f733}.btn-chart-toggle.active-gusts:hover:not(:disabled){color:#fff;background:#a855f740}.map-wind-stats-overlay{z-index:1000;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);pointer-events:none;background:#0f172ad9;border:1px solid #ffffff14;border-radius:8px;flex-direction:column;gap:.35rem;min-width:110px;padding:.5rem .75rem;display:flex;position:absolute;top:12px;right:12px;box-shadow:0 4px 15px #0006}.overlay-stat-item{color:var(--text-primary);align-items:center;gap:.5rem;font-size:.75rem;font-weight:600;display:flex}.overlay-dot{border-radius:50%;flex-shrink:0;width:6px;height:6px}.overlay-dot.headwind{background-color:#ef4444}.overlay-dot.crosswind{background-color:#f97316}.overlay-dot.tailwind{background-color:#10b981}.overlay-label{color:var(--text-muted);font-weight:500}.overlay-val{color:var(--text-primary);margin-left:auto;font-family:monospace;font-size:.8rem}.wind-analysis-container{-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);background:#1e293b4d;border:1px solid #ffffff14;border-radius:16px;margin-bottom:1.5rem;padding:1.5rem;transition:all .3s cubic-bezier(.4,0,.2,1);box-shadow:0 10px 30px #00000040}.wind-analysis-container:hover{border-color:#ffffff26;box-shadow:0 15px 35px #3b82f60d}.wind-analysis-grid{grid-template-columns:1fr 1.2fr;align-items:center;gap:2rem;display:grid}.wind-radar-wrapper{background:#ffffff04;border:1px solid #ffffff0a;border-radius:12px;flex-direction:column;justify-content:center;align-items:center;width:100%;padding:1rem;display:flex}.wind-radar-wrapper h4{color:var(--text-primary);text-transform:uppercase;letter-spacing:.5px;margin:0 0 .75rem;font-size:.9rem;font-weight:700}.radar-chart-container{justify-content:center;align-items:center;width:100%;display:flex}.wind-stats-wrapper{flex-direction:column;justify-content:center;gap:1.25rem;height:100%;display:flex}.wind-diagnosis{border:1px solid #0000;border-radius:10px;align-items:flex-start;gap:.85rem;padding:1rem 1.25rem;transition:all .3s;display:flex}.wind-diagnosis-icon{align-items:center;font-size:1.8rem;line-height:1;display:flex}.wind-diagnosis-text{flex-direction:column;gap:.25rem;display:flex}.wind-diagnosis-text h5{text-transform:uppercase;letter-spacing:.5px;margin:0;font-size:.9rem;font-weight:700}.wind-diagnosis-text p{color:var(--text-secondary);margin:0;font-size:.85rem;line-height:1.4}.wind-diagnosis-neutral{border-color:var(--border-default);background:#ffffff08}.wind-diagnosis-neutral h5{color:var(--text-primary)}.wind-diagnosis-dura{background:#e9456014;border-color:#e9456040}.wind-diagnosis-dura h5{color:#e94560}.wind-diagnosis-inestable{background:#f9731614;border-color:#f9731640}.wind-diagnosis-inestable h5{color:#f97316}.wind-diagnosis-asistida{background:#10b98114;border-color:#10b98140}.wind-diagnosis-asistida h5{color:#10b981}.wind-metrics-list{flex-direction:column;gap:.85rem;display:flex}.wind-metric-item{flex-direction:column;gap:.35rem;display:flex}.wind-metric-info{justify-content:space-between;align-items:center;font-size:.85rem;display:flex}.wind-metric-label{align-items:center;gap:.5rem;font-weight:600;display:flex}.indicator-dot{border-radius:50%;width:8px;height:8px;display:inline-block}.indicator-dot.headwind{background-color:#ef4444}.indicator-dot.crosswind{background-color:#f97316}.indicator-dot.tailwind{background-color:#10b981}.wind-metric-label.headwind,.wind-metric-label.crosswind,.wind-metric-label.tailwind{color:var(--text-primary)}.wind-metric-val{color:var(--text-muted);font-size:.8rem;font-weight:500}.wind-progress-bg{background:#ffffff0d;border-radius:10px;width:100%;height:7px;overflow:hidden}.wind-progress-bar{border-radius:10px;height:100%;transition:width .6s cubic-bezier(.4,0,.2,1)}.wind-progress-bar.headwind{background:linear-gradient(90deg,#ef4444,#f87171);box-shadow:0 0 6px #ef444466}.wind-progress-bar.crosswind{background:linear-gradient(90deg,#f97316,#fb923c);box-shadow:0 0 6px #f9731666}.wind-progress-bar.tailwind{background:linear-gradient(90deg,#10b981,#34d399);box-shadow:0 0 6px #10b98166}.wind-cell-content{flex-wrap:wrap;align-items:center;gap:.5rem;display:flex}.wind-speed-arrow{align-items:center;gap:.25rem;display:flex}.wind-badge{text-transform:uppercase;letter-spacing:.3px;border-radius:4px;align-items:center;padding:.15rem .4rem;font-size:.7rem;font-weight:700;display:inline-flex}.badge-contra{color:#f87171;background:#ef44441f;border:1px solid #ef444440}.badge-lateral{color:#fb923c;background:#f973161f;border:1px solid #f9731640}.badge-favor{color:#34d399;background:#10b9811f;border:1px solid #10b98140}.slope-analysis-details{-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);background:#1e293b40;border:1px solid #ffffff0f;border-radius:12px;margin-top:1.5rem;padding:1.25rem}.slope-details-grid{grid-template-columns:1.3fr 1fr;gap:2rem;display:grid}.slope-table-wrapper h4,.slope-stats-summary h4{color:var(--text-primary);letter-spacing:.5px;border-bottom:1px solid #ffffff14;margin:0 0 .85rem;padding-bottom:.4rem;font-size:.95rem;font-weight:700}.slope-details-table{border-collapse:collapse;width:100%}.slope-details-table th{color:var(--text-muted);text-transform:uppercase;text-align:left;border-bottom:1px solid #ffffff14;padding:.5rem;font-size:.75rem;font-weight:700}.slope-details-table td{color:var(--text-primary);border-bottom:1px solid #ffffff0a;padding:.65rem .5rem;font-size:.85rem}.slope-details-table tr:last-child td{border-bottom:none}.slope-badge-indicator{vertical-align:middle;border-radius:50%;width:8px;height:8px;margin-right:8px;display:inline-block}.slope-pct-badge{border-radius:4px;padding:.15rem .5rem;font-size:.75rem;font-weight:700;display:inline-block}.slope-summary-cards{flex-direction:column;gap:.75rem;display:flex}.slope-stat-card{background:#ffffff05;border:1px solid #ffffff0a;border-radius:8px;justify-content:space-between;align-items:center;padding:.75rem 1rem;transition:background .2s;display:flex}.slope-stat-card:hover{background:#ffffff0a}.stat-card-label{color:var(--text-secondary);font-size:.85rem;font-weight:500}.stat-card-value{color:var(--text-primary);font-size:1rem;font-weight:700}.text-red{color:#f87171!important}.text-orange{color:#fb923c!important}@media (width<=768px){.slope-details-grid{grid-template-columns:1fr;gap:1.5rem}}.map-water-toggles-overlay{z-index:1000;flex-direction:column;gap:6px;display:flex;position:absolute;bottom:30px;left:10px}.map-toggle-btn{-webkit-backdrop-filter:blur(8px);color:#ffffffb3;cursor:pointer;text-transform:uppercase;letter-spacing:.5px;background:#1e1e28cc;border:1px solid #ffffff14;border-radius:8px;align-items:center;gap:6px;padding:6px 12px;font-size:.8rem;font-weight:700;transition:all .2s cubic-bezier(.4,0,.2,1);display:flex;box-shadow:0 4px 12px #0003}.map-toggle-btn:hover{color:#fff;background:#282832e6}.map-toggle-btn.maro-btn.active{color:#fff;background:#22c55e;border-color:#22c55e;box-shadow:0 4px 12px #22c55e4d}.map-toggle-btn.osm-btn.active{color:#fff;background:#3b82f6;border-color:#3b82f6;box-shadow:0 4px 12px #3b82f64d}.shared-leaflet-map .custom-maro-fountain-icon-wrapper{place-items:center;background:0 0!important;border:none!important;display:grid!important}.shared-leaflet-map .maro-fountain-pulse{pointer-events:none;background:#22c55e66;border-radius:50%;grid-area:1/1;width:32px;height:32px;animation:2s cubic-bezier(.215,.61,.355,1) infinite pulse-ring-shared}.shared-leaflet-map .maro-fountain-dot{background:#22c55e;border:1.5px solid #fff;border-radius:50%;grid-area:1/1;justify-content:center;align-items:center;width:22px;height:22px;display:flex;box-shadow:0 0 6px #22c55e99}.shared-leaflet-map .maro-fountain-icon-inner{font-size:.7rem;line-height:1}@keyframes pulse-ring-shared{0%{opacity:1;transform:scale(.5)}80%,to{opacity:0;transform:scale(1.6)}}.route-map-wrapper.is-fullscreen{z-index:9999!important;border-radius:0!important;width:100vw!important;height:100vh!important;position:fixed!important;top:0!important;left:0!important}.route-map-wrapper.is-fullscreen .shared-leaflet-map{border-radius:0!important;height:100vh!important}.route-map-wrapper:fullscreen{border-radius:0!important;width:100vw!important;height:100vh!important}.route-map-wrapper:fullscreen .shared-leaflet-map{border-radius:0!important;height:100vh!important}.spinner-compact{border:2px solid #ffffff4d;border-top-color:#fff;border-radius:50%;width:10px;height:10px;animation:1s ease-in-out infinite spin;display:inline-block}.map-toggle-btn.map-mode-btn.active{color:#fff;background:#10b981;border-color:#10b981;box-shadow:0 4px 12px #10b9814d}*{box-sizing:border-box;margin:0;padding:0}#root{width:100%;height:100vh}.app{width:100%;height:100%}body{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;margin:0;padding:0;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Fira Sans,Droid Sans,Helvetica Neue,sans-serif}code{font-family:source-code-pro,Menlo,Monaco,Consolas,Courier New,monospace}::-webkit-scrollbar{width:8px;height:8px}::-webkit-scrollbar-track{background:var(--bg-secondary)}::-webkit-scrollbar-thumb{background:var(--accent-primary);border-radius:4px}::-webkit-scrollbar-thumb:hover{background:var(--accent-primary-hover)}
