.rutas-hero{position:relative;overflow:hidden}.rutas-hero>img{z-index:0;object-fit:cover;object-position:center 60%;width:100%;height:100%;position:absolute;inset:0}.rutas-hero:after{content:"";z-index:1;background:linear-gradient(180deg, #0a0e1299 0%, #0a0e126b 55%, var(--bg-0) 100%);position:absolute;inset:0}.rutas-hero .hero-content{z-index:2;padding:26px 0;position:relative}.hero-eyebrow{color:var(--accent);letter-spacing:.18em;text-transform:uppercase;margin-bottom:6px;font-size:12px;font-weight:500}.rutas-hero h1{font-family:var(--font-display);text-wrap:balance;color:var(--ink-0);text-shadow:0 2px 24px #0000008c;font-size:clamp(28px,4.5vw,44px);font-weight:800;line-height:1.1}.hero-chips{flex-wrap:wrap;gap:8px;margin-top:16px;display:flex}.chip.strava i{color:#fc4c02}.chip.bot i{color:var(--warn)}.gpx-controls{background:var(--bg-1);border:1px solid var(--line);border-radius:var(--radius);flex-wrap:wrap;align-items:center;gap:12px;padding:16px 18px;transition:border-color .15s,background .15s;display:flex}.gpx-controls.dragover{background:var(--accent-dim);border-color:#1cb4958c}#gpxFileInput{display:none}.file-upload-btn,.strava-btn,.analyze-btn{cursor:pointer;height:38px;font-family:var(--font-body);border:1px solid #0000;border-radius:8px;justify-content:center;align-items:center;gap:8px;padding:0 16px;font-size:13px;font-weight:500;line-height:1;transition:all .15s;display:inline-flex}.file-upload-btn{background:var(--accent-dim);color:var(--accent);border-color:#1cb49566}.file-upload-btn:hover{background:var(--accent);color:#06231c}.strava-btn{color:#fc4c02;background:#fc4c021f;border-color:#fc4c0273}.strava-btn:hover{color:#fff;background:#fc4c02}.analyze-btn{background:var(--accent);color:#06231c;border:0}.analyze-btn:hover{filter:brightness(1.1)}.analyze-btn:disabled{opacity:.6;cursor:default;filter:none}.upload-status-wrapper{background:var(--bg-2);border:1px solid var(--line);border-radius:8px;align-items:center;gap:10px;min-width:0;height:38px;margin-left:auto;padding:0 14px;display:flex}#fileNameDisplay{color:var(--ink-1);white-space:nowrap;text-overflow:ellipsis;max-width:260px;font-family:monospace;font-size:12px;overflow:hidden}.capsule-row{text-align:center}.geo-capsule{background:var(--bg-1);border:1px solid var(--line);border-bottom:2px solid var(--accent);white-space:nowrap;border-radius:999px;align-items:center;gap:14px;max-width:100%;margin-top:16px;padding:10px 22px;display:inline-flex}.geo-item{color:var(--ink-0);align-items:center;gap:8px;font-size:13.5px;font-weight:500;display:flex}.geo-divider{background:var(--line);width:1px;height:16px}#routeHeader{text-align:center;margin:20px 0 4px}.route-title{font-family:var(--font-display);color:var(--ink-0);text-transform:uppercase;letter-spacing:.02em;text-wrap:balance;margin-bottom:10px;font-size:22px;font-weight:800;line-height:1.25}.activity-badge{background:var(--accent-dim);color:var(--accent);text-transform:uppercase;letter-spacing:.06em;border:1px solid #1cb49566;border-radius:999px;align-items:center;gap:10px;padding:6px 16px;font-size:12.5px;font-weight:500;display:inline-flex}.share-btn-icon{cursor:pointer;border:1px solid var(--warn);width:28px;height:28px;color:var(--warn);background:0 0;border-radius:50%;justify-content:center;align-items:center;margin-left:4px;transition:all .15s;display:inline-flex}.share-btn-icon:hover{background:var(--warn);color:#2a2000}.telemetry-grid{grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:12px;margin-top:18px;display:grid}.telemetry-card{background:var(--bg-1);border:1px solid var(--line);border-radius:var(--radius);text-align:left;flex-direction:column;align-items:flex-start;padding:16px 16px 14px;display:flex;position:relative;overflow:hidden}.telemetry-card:before{content:"";height:3px;position:absolute;top:0;left:0;right:0}.telemetry-card.type-total:before{background:var(--accent)}.telemetry-card.type-elev:before{background:var(--warn)}.telemetry-card.type-speed:before{background:var(--th-low)}.telemetry-card.type-climb:before{background:#9b59b6}.telemetry-card.type-stops:before{background:var(--th-vhigh)}.telemetry-card h4{font-family:var(--font-body);letter-spacing:.1em;text-transform:uppercase;color:var(--ink-1);margin-bottom:10px;font-size:11.5px;font-weight:500}.telemetry-card .value{font-family:var(--font-display);color:var(--ink-0);font-size:30px;font-weight:800;line-height:1}.telemetry-card .unit{color:var(--ink-2);margin-left:4px;font-size:.45em;font-weight:600}.telemetry-card .sub-value{color:var(--ink-2);margin-top:8px;font-size:12px}.telemetry-card i.bg-icon{opacity:.05;pointer-events:none;font-size:64px;position:absolute;bottom:-14px;right:-12px}.ai-terminal{background:var(--bg-1);border:1px solid var(--line);border-left:3px solid var(--warn);border-radius:var(--radius);margin-top:18px;overflow:hidden}.ai-header-bar{background:var(--bg-2);color:var(--warn);border-bottom:1px solid var(--line);align-items:center;gap:10px;padding:9px 16px;font-family:monospace;font-size:12px;display:flex}.ai-content-text{color:var(--ink-1);padding:16px 18px;font-family:monospace;font-size:13px;line-height:1.65}.ai-content-text:after{content:"▋";color:var(--warn);margin-left:5px;animation:1s infinite blink}@keyframes blink{50%{opacity:0}}.map-wrapper{border:1px solid var(--line);border-radius:var(--radius);width:100%;height:500px;position:relative;overflow:hidden}#mapContainer{background:var(--bg-1);z-index:1;width:100%;height:100%}.map-overlay-fx{pointer-events:none;z-index:5;position:absolute;inset:0;box-shadow:inset 0 0 42px #0000008c}.map-ctrl-btn{z-index:1001;cursor:pointer;width:36px;height:36px;color:var(--accent);background:#0a0e12e6;border:1px solid #1cb49580;border-radius:8px;justify-content:center;align-items:center;transition:all .15s;display:flex;position:absolute;left:10px}.map-ctrl-btn:hover{background:var(--accent);color:#06231c}#btnMapFullscreen{top:10px}#btnToggleAnim{display:none;top:55px}.map-fullscreen{z-index:9999;border-radius:0;top:0;left:0;width:100vw!important;height:100vh!important;position:fixed!important}.leaflet-container{background:var(--bg-1);font-family:var(--font-body)}.leaflet-bar a{color:var(--accent)!important;border-bottom:1px solid var(--line)!important;background-color:#0a0e12e6!important}.leaflet-bar a:hover{background-color:var(--accent)!important;color:#06231c!important}.leaflet-control-layers-toggle{background-color:#0a0e12f2!important;background-image:url("data:image/svg+xml;charset=utf8,%3Csvg viewBox='0 0 24 24' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath fill='%231cb495' d='M11.99 2.005L2 7.002l9.99 5 9.99-5-9.99-4.997zm0 9l2.79-1.39-2.79-1.4-2.79 1.4 2.79 1.39zM2 12l9.99 5 9.99-5V10l-9.99 5L2 10v2zm0 5l9.99 5 9.99-5V15l-9.99 5L2 15v2z'/%3E%3C/svg%3E")!important;background-size:20px 20px!important;border:1px solid #1cb49580!important;border-radius:8px!important;width:36px!important;height:36px!important}.leaflet-control-layers-expanded{color:var(--ink-0)!important;font-family:var(--font-body)!important;background:#0a0e12f2!important;border:1px solid #1cb49580!important;border-radius:10px!important;padding:10px!important}.bike-marker-icon{text-align:center;color:#2a2000;background:var(--warn);box-shadow:0 0 10px var(--warn);border:2px solid #fff;border-radius:50%;font-size:17px;line-height:30px}.poi-marker-icon{text-align:center;color:#fff;border:2px solid #fff;border-radius:50%;font-size:13px;font-weight:900;line-height:22px}.poi-start{background:var(--accent);box-shadow:0 0 12px var(--accent)}.poi-end{background:var(--th-vhigh);box-shadow:0 0 12px var(--th-vhigh)}.poi-stop-mini{background:var(--th-high);box-shadow:0 0 8px var(--th-high);font-size:9px;line-height:14px}.climb-path-neon{filter:drop-shadow(0 0 8px #00f2ff);stroke-dasharray:10 5;animation:2s linear infinite dash-move}@keyframes dash-move{to{stroke-dashoffset:-15px}}#elevationChartWrapper{background:var(--bg-1);border:1px solid var(--line);border-radius:var(--radius);margin-top:14px;padding:16px 18px}#elevationChartWrapper h3{font-family:var(--font-body);letter-spacing:.14em;text-transform:uppercase;color:var(--ink-2);margin-bottom:12px;font-size:11px;font-weight:500}#elevationChartWrapper h3 i{color:var(--warn);margin-right:5px}.modal-overlay{z-index:20000;backdrop-filter:blur(5px);background-color:#000c;justify-content:center;align-items:center;display:none;position:fixed;inset:0}.modal-overlay[style*="display: block"]{display:flex!important}.modal-content{background:var(--bg-1);border:1px solid var(--line);border-radius:var(--radius);text-align:center;flex-direction:column;width:90%;max-width:500px;max-height:90vh;padding:26px 26px 24px;animation:.25s ease-out modalPopIn;display:flex;position:relative;box-shadow:0 24px 60px #0000008c}@keyframes modalPopIn{0%{opacity:0;transform:scale(.94)}to{opacity:1;transform:scale(1)}}.modal-content h2{font-family:var(--font-display);letter-spacing:.03em;margin-bottom:12px;font-size:16px;font-weight:600}#shareModal h2{color:var(--accent)}#stravaModal h2{color:#fc4c02}.close-modal{z-index:1000;width:32px;height:32px;color:var(--ink-2);cursor:pointer;background:var(--bg-2);border-radius:50%;font-size:22px;font-weight:700;line-height:32px;transition:all .15s;position:absolute;top:10px;right:12px}.close-modal:hover{color:#fff;background:var(--th-vhigh)}.strava-list-container{border:1px solid var(--line);background:var(--bg-0);text-align:left;border-radius:10px;max-height:320px;margin-top:10px;overflow-y:auto}.strava-item{border-bottom:1px solid var(--line);cursor:pointer;justify-content:space-between;align-items:center;padding:12px 15px;transition:background .15s;display:flex}.strava-item:last-child{border-bottom:none}.strava-item:hover{background:#fc4c021f}.strava-name{color:var(--ink-0);font-size:13.5px;font-weight:500;display:block}.strava-meta{color:var(--ink-2);margin-top:2px;font-size:12px;display:block}.strava-select-icon{color:var(--ink-2)}#previewContainer{border:1px solid var(--line);background:var(--bg-0);border-radius:10px;justify-content:center;align-items:center;max-height:60vh;margin:16px 0;display:flex;overflow-y:auto}#btnDownloadImage{width:100%;margin-top:4px}.fade-in-up{opacity:0;animation:.6s ease-out forwards fadeInUp}@keyframes fadeInUp{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}.social-card-template{z-index:9999;background:#050505;flex-direction:column;width:1080px;height:1920px;font-family:Montserrat,sans-serif;display:flex;position:fixed;top:0;left:-9999px}.social-map-bg{opacity:.6;background-position:50%;background-repeat:no-repeat;background-size:cover;width:100%;height:100%;position:absolute}.social-overlay{background:linear-gradient(#000c 0%,#0000001a 30%,#000000f2 90%);width:100%;height:100%;position:absolute}.social-header{z-index:2;text-align:center;padding-top:80px;position:relative}.social-brand{color:var(--color-accent);letter-spacing:8px;text-transform:uppercase;text-shadow:0 0 20px #1cb49580;font-family:Courier New,monospace;font-size:4rem;font-weight:900}.social-date{color:#aaa;letter-spacing:2px;margin-top:10px;font-size:1.8rem}.social-stats-capsule{z-index:2;background:#000c;border:2px solid #fff3;border-radius:50px;justify-content:space-around;width:85%;margin:80px auto 0;padding:30px 0;display:flex;position:relative}.stat-item{text-align:center}.stat-val{color:#fff;letter-spacing:-1px;font-family:Montserrat,sans-serif;font-size:4.5rem;font-weight:900;line-height:.9;display:block}.stat-label{color:var(--color-warn);letter-spacing:2px;text-transform:uppercase;margin-top:12px;font-family:Montserrat,sans-serif;font-size:1rem;font-weight:700}.stat-divider{background:#ffffff4d;width:1px}.social-footer{z-index:2;text-align:center;margin-top:auto;padding:0 80px 100px;position:relative}.social-title{color:#fff;text-transform:uppercase;word-wrap:break-word;margin-bottom:40px;padding:0 40px;font-family:Montserrat,sans-serif;font-size:2.2rem;font-weight:900;line-height:1.3}.social-ai-box{border-left:10px solid var(--color-warn);text-align:left;color:#ddd;background:#141414f2;border-radius:0 15px 15px 0;gap:25px;padding:35px;font-size:1.7rem;line-height:1.5;display:flex;box-shadow:0 20px 50px #0009}@media (width<=720px){.map-wrapper{height:380px}.upload-status-wrapper{width:100%;margin-left:0}#fileNameDisplay{max-width:none}}
