: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}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}.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 input:focus{background:#ffffff26;border-color:#e94560;outline:none}.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}.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}.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}}.modal-overlay{z-index:1000;background:#000000d9;justify-content:center;align-items:center;padding:2rem;display:flex;position:fixed;inset:0;overflow-y:auto}.modal-content{background:#16213e;border-radius:16px;width:100%;max-width:1200px;max-height:90vh;animation:.3s modalFadeIn;overflow-y:auto;box-shadow:0 20px 60px #00000080}@keyframes modalFadeIn{0%{opacity:0;transform:translateY(-20px)}to{opacity:1;transform:translateY(0)}}.modal-header{border-bottom:2px solid #e945604d;justify-content:space-between;align-items:flex-start;padding:2rem;display:flex}.activity-meta{align-items:center;gap:1rem;display:flex}.activity-type{color:#e94560;background:#e9456033;border-radius:12px;padding:.25rem .75rem;font-size:.85rem;font-weight:600}.activity-date{color:#a8dadc;opacity:.8;font-size:.9rem}.close-button{color:#a8dadc;cursor:pointer;background:#ffffff1a;border:none;border-radius:50%;justify-content:center;align-items:center;width:40px;height:40px;font-size:1.25rem;transition:all .3s;display:flex}.close-button:hover{color:#fff;background:#e94560;transform:rotate(90deg)}.modal-body{padding:2rem}.activity-summary{background:#ffffff0d;border-radius:12px;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:1.5rem;margin-bottom:2rem;padding:1.5rem;display:grid}.summary-item{align-items:center;gap:1rem;display:flex}.summary-icon{color:#e94560;font-size:1.75rem}.summary-item div{flex-direction:column;display:flex}.summary-value{color:#fff;font-size:1.5rem;font-weight:700;line-height:1}.summary-label{color:#a8dadc;opacity:.8;margin-top:.25rem;font-size:.85rem}.chart-tabs{flex-wrap:wrap;gap:.5rem;margin-bottom:1.5rem;display:flex}.tab{color:#a8dadc;cursor:pointer;background:#ffffff0d;border:1px solid #ffffff1a;border-radius:8px;align-items:center;gap:.5rem;padding:.75rem 1.5rem;font-weight:600;transition:all .3s;display:flex}.tab:hover{color:#fff;background:#ffffff1a}.tab.active{color:#fff;background:#e94560;border-color:#e94560}.chart-container{background:#ffffff0d;border-radius:12px;min-height:350px;padding:1.5rem}.custom-tooltip{background:#000000e6;border:1px solid #e94560;border-radius:8px;padding:.75rem}.custom-tooltip .label{color:#a8dadc;margin:0 0 .5rem;font-size:.85rem}.custom-tooltip p{margin:.25rem 0;font-size:.9rem;font-weight:600}.loading-charts,.error-charts{color:#a8dadc;text-align:center;justify-content:center;align-items:center;min-height:300px;display:flex}.error-charts{color:#ff6b6b}@media (width<=768px){.modal-overlay{padding:1rem}.modal-content{max-height:95vh}.modal-header,.modal-body{padding:1.5rem}.modal-header h2{font-size:1.25rem}.activity-summary{grid-template-columns:repeat(2,1fr)}.summary-value{font-size:1.25rem}.chart-tabs{gap:.25rem}.tab{padding:.5rem 1rem;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}.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}}.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);border-radius:12px;width:100%;position:relative;overflow:hidden}.route-map-full{width:100%;height:676px;overflow:hidden}.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}.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}.weather-popup{min-width:180px;font-size:.9rem;line-height:1.6}@media (width<=968px){.route-detail-modal{padding:1rem}.route-detail-content{padding:1.5rem}.route-map-full{height:288px}.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}.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-wind{width:50px;height:35px}.weather-marker-wind svg{width:18px;height:18px}}.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-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}.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-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}}.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}.header-actions{align-items:center;gap:1rem;display:flex}.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}.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);background:#1e293b80;border:1px solid #334155;border-radius:12px;margin-bottom:1.5rem;padding:1.5rem}.chart-wrapper{margin-bottom:2rem}.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}@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:500px;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}@media (width<=600px){.settings-menu{width:95%;max-height:95vh}.settings-header,.settings-content{padding:1rem}}.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-content-wrapper{color:#fff!important;background:#0f172a!important;border:1px solid #ffffff26!important;border-radius:10px!important;box-shadow:0 10px 25px #00000080!important}.leaflet-popup-tip{background:#0f172a!important;border:1px solid #ffffff26!important}@media (width<=1024px){.wind-map-layout{grid-template-columns:1fr}.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}}.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-result{background:#2563eb1a;border:1px solid #2563eb4d;border-radius:12px;align-items:start;gap:1rem;margin-top:1.5rem;padding:1.5rem;display:flex}.ai-icon{flex-shrink:0;font-size:2rem}.ai-summary-result p{color:var(--text-primary);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}.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{margin-top:1rem}.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:1fr 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:1rem}.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}}.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}}.dashboard{background:var(--bg-primary);min-height:100vh;color:var(--text-primary);flex-direction:column;display:flex}.dashboard-header{background:var(--bg-secondary);border-bottom:1px solid var(--border-default);justify-content:space-between;align-items:center;padding:1rem 2rem 1rem 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;filter:drop-shadow(0 2px 8px #2563eb4d);width:auto;height:28px;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: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}.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:340px 1fr 560px;transition:grid-template-columns .3s;display:grid}.dashboard-body.left-panel-closed{grid-template-columns:1fr 560px}.dashboard-body.right-panel-closed{grid-template-columns:340px 1fr}.dashboard-body.left-panel-closed.right-panel-closed,.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%}.left-panel{background:var(--bg-secondary);border-right:1px solid var(--border-default);flex-direction:column;display:flex;overflow:hidden auto}.left-panel::-webkit-scrollbar{width:6px}.left-panel::-webkit-scrollbar-track{background:var(--bg-secondary)}.left-panel::-webkit-scrollbar-thumb{background:var(--border-default);border-radius:3px}.left-panel::-webkit-scrollbar-thumb:hover{background:var(--accent-primary)}.panel-overlay{display:none}.panel-header{border-bottom:1px solid var(--border-default);justify-content:space-between;align-items:center;padding:1.5rem;display:flex}.panel-header h2{color:var(--text-primary);margin:0;font-size:1.25rem}.close-panel{color:var(--text-secondary);cursor:pointer;background:0 0;border:none;padding:.25rem;font-size:1.5rem;line-height:1;transition:color .2s}.close-panel:hover{color:var(--accent-primary)}.user-profile{text-align:center;border-bottom:1px solid var(--border-default);padding:1.5rem}.user-avatar{background:linear-gradient(135deg, var(--accent-primary), var(--accent-secondary));border-radius:50%;justify-content:center;align-items:center;width:80px;height:80px;margin:0 auto 1rem;font-size:2rem;font-weight:700;display:flex;box-shadow:0 4px 12px #8b5cf64d}.user-profile h3{color:var(--text-primary);margin:0 0 .25rem}.user-id{color:var(--text-muted);margin:0;font-size:.85rem}.panel-nav{padding:1rem}.nav-item{width:100%;color:var(--text-secondary);text-align:left;cursor:pointer;background:0 0;border:none;border-radius:8px;align-items:center;gap:.75rem;margin-bottom:.5rem;padding:.75rem 1rem;font-size:1rem;transition:all .2s;display:flex}.nav-item:hover{background:var(--bg-elevated);color:var(--text-primary)}.nav-item.active{border:1px solid var(--accent-primary);color:var(--accent-primary);background:#8b5cf626;font-weight:600}.panel-footer{border-top:1px solid var(--border-default);color:var(--text-muted);padding:1rem 1.5rem;font-size:.85rem}.center-panel{background:var(--bg-primary);position:relative;overflow-y:auto}.open-panel{background:var(--bg-tertiary);border:1px solid var(--border-default);color:var(--text-secondary);cursor:pointer;z-index:10;border-radius:8px;padding:.75rem 1rem;font-size:1.25rem;transition:all .2s;position:absolute;top:1rem;left:1rem}.open-panel:hover{background:var(--accent-primary);border-color:var(--accent-primary);color:#fff}.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{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:calc(100vh - 80px);display:flex;position:sticky;top:0}.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;height:calc(100vh - 140px);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.red{background:#ef4444;box-shadow:0 0 8px #ef4444}.footer-info,.footer-credits{color:#a8dadc;opacity:.7}@media (width<=1024px){.dashboard-body{grid-template-columns:1fr}.header-left{flex-wrap:nowrap!important}.left-panel{z-index:100;width:340px;position:fixed;top:0;bottom:0;left:0;box-shadow:4px 0 16px #0000004d}.panel-overlay{z-index:99;background:#00000080;display:block;position:fixed;inset:0}.right-panel{display:none}.center-panel{grid-column:1}.open-panel{z-index:50;top:5rem;left:1rem;display:flex!important;position:fixed!important}.open-right-panel{display:none!important}}@media (width<=768px){.dashboard-header{padding:1rem 1rem 1rem .75rem}.header-left{flex-flow:row;gap:.5rem}.logo img{height:24px}.status-icon{font-size:1.2rem}.nav-button{padding:.65rem;font-size:1.1rem}.panel-content{padding:1rem}.connections-grid{grid-template-columns:1fr}.left-panel{width:90%;max-width:280px}}@media (width<=480px){.dashboard-header{padding:.75rem .75rem .75rem .5rem}.header-left{flex-flow:row;gap:.4rem}.logo img{height:22px}.status-icon{font-size:1rem}.current-weather-widget,.header-center{display:none}.nav-button{padding:.5rem;font-size:1rem}.header-right{gap:.4rem}}.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}.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}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes slideUp{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}@media (width<=768px){.admin-panel{padding:1rem}.admin-header{flex-direction:column;gap:1rem}.admin-tabs{flex-direction:column}.users-table,.documents-table{font-size:.85rem}.users-table td,.documents-table td{padding:.5rem}.action-buttons{flex-direction:column;gap:.25rem}.modal-content{width:95%;max-height:95vh}.form-row{grid-template-columns:1fr}.modal-actions{flex-direction:column}.btn-cancel,.btn-save{width:100%}}.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;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;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}.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)}.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:active:not(:disabled){transform:translateY(0)}.btn-trigger-publish:disabled{opacity:.6;cursor:not-allowed;background:var(--border-default);box-shadow:none}.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}.text-danger{color:#f87171}.text-success{color:#34d399}.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:75px;height:45px;transition:all .25s;position:relative}.weather-marker-wind:hover{transform:scale(1.15)}.weather-marker-wind svg{filter:drop-shadow(0 2px 4px #00000080);display:block}.weather-popup{color:#1e293b;min-width:180px;font-size:.85rem;line-height:1.5}.weather-popup strong{color:#2563eb}.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}}*{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)}
