:root{--bg:#10140f;--bg-2:#171c16;--panel:#e8f0e20a;--line:#e8f0e21f;--text:#e8f0e2;--muted:#9aab97;--accent:#c8f25a;--accent-ink:#14200a;--warn:#ff8a5b;--ok:#7dffa8;--shadow:0 24px 60px #00000059;--radius:18px;--font-display:"Syne", sans-serif;--font-body:"IBM Plex Sans", system-ui, sans-serif;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}*,:before,:after{box-sizing:border-box}html,body{background:radial-gradient(1200px 600px at 80% -10%, #c8f25a1f, transparent 55%), radial-gradient(900px 500px at -10% 20%, #7dffa814, transparent 50%), linear-gradient(180deg, #141a13 0%, var(--bg) 40%, #0c100c 100%);max-width:100%;min-height:100%;color:var(--text);font-family:var(--font-body);margin:0;font-size:16px;line-height:1.5;overflow-x:clip}body:before{content:"";pointer-events:none;opacity:.035;z-index:0;background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 200 200' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.85' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");position:fixed;inset:0}a{color:inherit;text-decoration:none}button,input,select,textarea{font:inherit;color:inherit}h1,h2,h3{font-family:var(--font-display);letter-spacing:-.03em;margin:0;line-height:1.1}p{margin:0}.shell{z-index:1;width:min(1120px,100% - 2rem);margin:0 auto;padding:1.25rem 0 4rem;position:relative}.nav{border-bottom:1px solid var(--line);justify-content:space-between;align-items:center;gap:1rem;margin-bottom:2rem;padding:.85rem 0;display:flex}.brand{font-family:var(--font-display);letter-spacing:-.04em;font-size:1.35rem;font-weight:800}.brand span{color:var(--accent)}.nav-links{flex-wrap:wrap;gap:.35rem;display:flex}.nav-links a{color:var(--muted);border-radius:999px;padding:.45rem .75rem;transition:color .16s,background .16s}.nav-links a:hover,.nav-links a.active{color:var(--text);background:var(--panel)}.hero{gap:1.25rem;margin-bottom:2rem;animation:.6s both rise;display:grid}.hero h1{max-width:12ch;font-size:clamp(2.4rem,6vw,4.2rem)}.hero p{max-width:42ch;color:var(--muted);font-size:1.05rem}.actions{flex-wrap:wrap;gap:.75rem;display:flex}.btn{cursor:pointer;border:0;border-radius:999px;justify-content:center;align-items:center;gap:.4rem;padding:.75rem 1.15rem;transition:transform .16s,background .16s,opacity .16s;display:inline-flex}.btn:hover{transform:translateY(-1px)}.btn:disabled{opacity:.55;cursor:not-allowed;transform:none}.btn-primary{background:var(--accent);color:var(--accent-ink);font-weight:600}.btn-ghost{border:1px solid var(--line);color:var(--text);background:0 0}.btn-danger{color:var(--warn);border-color:#ff8a5b59}.btn-danger:hover{border-color:var(--warn);background:#ff8a5b1a}.btn-icon{box-sizing:border-box;border-radius:50%;flex:none;align-self:center;width:2.5rem;min-width:2.5rem;height:2.5rem;min-height:2.5rem;padding:0;line-height:0}:is(.actions>form:has(.btn-icon),.timeline-actions>form:has(.btn-icon),.run-actions>form:has(.btn-icon)){align-self:center;align-items:center;margin:0;display:inline-flex}.grid{gap:1rem;display:grid}.grid-3{grid-template-columns:repeat(3,minmax(0,1fr))}.grid-2{grid-template-columns:repeat(2,minmax(0,1fr))}@media (width<=860px){.grid-3,.grid-2{grid-template-columns:1fr}}.stat,.panel{background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);padding:1.1rem 1.2rem}.stat .label{color:var(--muted);font-size:.85rem}.stat .value{font-family:var(--font-display);margin-top:.35rem;font-size:1.85rem}.stats-strip{border-top:1px solid var(--line);border-bottom:1px solid var(--line);grid-template-columns:repeat(6,minmax(0,1fr));gap:0;margin:0 0 .55rem;padding:.85rem 0;display:grid}.stats-strip-item{border-right:1px solid var(--line);min-width:0;padding:.15rem .85rem .15rem 0}.stats-strip-item:last-child{border-right:0;padding-right:0}.stats-strip-item:not(:first-child){padding-left:.85rem}.stats-strip-label{color:var(--muted);letter-spacing:.02em;font-size:.78rem;display:block}.stats-strip-value{font-family:var(--font-display);letter-spacing:-.03em;margin-top:.2rem;font-size:1.35rem;font-weight:700;line-height:1.15;display:block}.stats-strip-unit{color:var(--muted);letter-spacing:0;font-size:.85rem;font-weight:500}.stats-meta{margin:0 0 1.75rem;font-size:.88rem}.map-section{margin:0 0 .25rem}.map-section-head{margin-top:.5rem}.section-title{justify-content:space-between;align-items:end;gap:1rem;margin:2rem 0 .85rem;display:flex}.section-title h2{font-size:1.45rem}.section-title p,.muted{color:var(--muted)}.week-strip{border-top:1px solid var(--line);border-bottom:1px solid var(--line);margin:1.75rem 0 .25rem;padding:1rem 0 .15rem}.week-strip-head{margin-bottom:.85rem}.week-strip-head h2{font-size:1.2rem;font-weight:700}.week-strip-head p{margin-top:.3rem;font-size:.92rem}.week-shoes{color:var(--accent);opacity:.85}.week-sessions{grid-template-columns:repeat(3,minmax(0,1fr));gap:0;display:grid}.week-session{border-right:1px solid var(--line);grid-template-columns:auto 1fr auto;grid-template-areas:"day label km""detail detail detail";align-items:baseline;gap:.2rem .55rem;padding:.65rem 1rem .75rem 0;display:grid}.week-session:last-child{border-right:0;padding-right:0}.week-session:not(:first-child){padding-left:1rem}.week-day{letter-spacing:.06em;text-transform:uppercase;color:var(--accent);grid-area:day;font-size:.72rem;font-weight:600}.week-label{font-family:var(--font-display);letter-spacing:-.02em;grid-area:label;font-size:1rem;font-weight:700}.week-km{color:var(--text);white-space:nowrap;grid-area:km;font-size:.88rem;font-weight:600}.week-detail{grid-area:detail;margin-top:.15rem;font-size:.86rem;line-height:1.35}@media (width<=860px){.week-sessions{grid-template-columns:1fr}.week-session{border-right:0;border-bottom:1px solid var(--line);padding:.75rem 0}.week-session:not(:first-child){padding-left:0}.week-session:last-child{border-bottom:0;padding-bottom:.35rem}}.run-row{border:1px solid var(--line);background:#ffffff05;border-radius:14px;grid-template-columns:1.2fr .8fr .7fr .7fr;align-items:center;gap:.75rem;padding:1rem 1.1rem;transition:border-color .16s,background .16s,transform .16s;animation:.5s both rise;display:grid}.run-row:hover{background:#c8f25a0a;border-color:#c8f25a59;transform:translateY(-1px)}.run-title{align-items:center;gap:.4rem;display:inline-flex}.map-badge{color:var(--accent);opacity:.9;flex-shrink:0;justify-content:center;align-items:center;display:inline-flex}.map-badge-lg{vertical-align:middle;margin-left:.15rem}.field-hint{margin-top:.35rem;font-size:.78rem;display:block}@media (width<=760px){.run-row{grid-template-columns:1fr 1fr}}@media (width<=640px){.shell{width:min(1120px,100% - 1.25rem);padding:.85rem 0 3rem}.nav{flex-direction:column;align-items:stretch;gap:.55rem;margin-bottom:1.35rem;padding:.65rem 0}.brand{padding:.15rem 0;font-size:1.2rem}.nav-links{flex-wrap:wrap;gap:.25rem}.nav-links a{justify-content:center;align-items:center;min-height:44px;padding:.5rem .8rem;font-size:.92rem;display:inline-flex}.hero{gap:.95rem;margin-bottom:1.35rem}.hero h1{max-width:none;font-size:clamp(1.85rem,9.5vw,2.55rem)}.hero p{max-width:none;font-size:.98rem}.actions{gap:.55rem}.section-title .actions,.hero .actions{width:100%}.section-title .actions .btn,.hero .actions .btn{flex:auto;min-width:min(100%,9rem)}.section-title .actions .btn-icon,.hero .actions .btn-icon,.timeline-actions .btn-icon,.run-actions .btn-icon{border-radius:50%;flex:none;align-self:center;width:2.75rem;min-width:2.75rem;height:2.75rem;min-height:2.75rem;padding:0}.btn{min-height:44px;padding:.7rem 1.05rem}.btn.btn-icon{min-height:2.75rem;padding:0}.form>.actions,.form .actions,.form>.actions .btn,.form .actions .btn,.form>.btn{width:100%}.grid{gap:.75rem}.stat,.panel{padding:.9rem 1rem}.stat .value{font-size:1.55rem}.stats-strip{grid-template-columns:repeat(3,minmax(0,1fr));row-gap:.85rem;padding:.75rem 0}.stats-strip-item:nth-child(3n){border-right:0;padding-right:0}.stats-strip-item:nth-child(3n+1){padding-left:0}.stats-strip-item:nth-child(n+4){border-top:1px solid var(--line);padding-top:.75rem}.stats-strip-value{font-size:1.2rem}.section-title{flex-direction:column;align-items:flex-start;gap:.55rem;margin:1.45rem 0 .7rem}.section-title h2{font-size:1.28rem}.run-row{grid-template-columns:1fr;gap:.3rem;padding:.85rem .95rem}.file-box{padding:.85rem}.file-box input[type=file]{font-size:.88rem}.metrics{gap:.45rem}.metric{flex:calc(50% - .45rem);padding:.55rem .7rem}.metric b{overflow-wrap:anywhere;font-size:1.05rem}.timeline{gap:.45rem}.timeline-item{grid-template-columns:1rem 1fr;gap:.65rem}.timeline-card{padding:.85rem .95rem}.timeline-metrics{gap:.45rem .75rem;font-size:.88rem}.timeline-actions .btn:not(.btn-icon),.run-actions .btn:not(.btn-icon){flex:auto;min-height:44px}.context-card{overflow:hidden}.context-card summary{align-items:flex-start;gap:.35rem .55rem}.context-title{overflow-wrap:anywhere;font-size:1.05rem}.context-path{overflow-wrap:anywhere;word-break:break-word;flex:100%;font-size:.8rem}textarea.editor{min-height:16rem;font-size:.86rem}.md{font-size:.95rem}.md pre,.md table,.bubble{max-width:100%}.chat-form{padding:.75rem;bottom:.5rem}.prompts button{min-height:44px;padding:.5rem .85rem}.flash{overflow-wrap:anywhere;padding:.75rem .9rem}}.tag{border:1px solid var(--line);color:var(--muted);border-radius:999px;padding:.2rem .55rem;font-size:.78rem;display:inline-flex}.tag.accent{color:var(--accent);border-color:#c8f25a66}.form{gap:1rem;display:grid}.form-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:.9rem;display:grid}@media (width<=720px){.form-grid{grid-template-columns:1fr}}label.field{color:var(--muted);gap:.35rem;font-size:.9rem;display:grid}label.field span.req:after{content:" *";color:var(--accent)}input,select,textarea{border:1px solid var(--line);background:#00000040;border-radius:12px;outline:none;width:100%;max-width:100%;padding:.7rem .8rem}input[type=file]{box-shadow:none;background:0 0;border:0;padding:.45rem 0}input:focus,select:focus,textarea:focus{border-color:#c8f25a8c;box-shadow:0 0 0 3px #c8f25a1f}textarea{resize:vertical;min-height:110px}.file-box{background:#c8f25a08;border:1px dashed #c8f25a59;border-radius:14px;padding:1rem}.chat{gap:.85rem;display:grid}.bubble{border:1px solid var(--line);white-space:pre-wrap;border-radius:16px;max-width:80ch;padding:.95rem 1.05rem}.bubble.user{background:#c8f25a1a;border-color:#c8f25a40;justify-self:end}.bubble.assistant{background:#ffffff08;justify-self:start}.chat-form{border:1px solid var(--line);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);box-shadow:var(--shadow);background:#10140feb;border-radius:16px;gap:.75rem;padding:.85rem;display:grid;position:sticky;bottom:.75rem}.prompts{flex-wrap:wrap;gap:.5rem;display:flex}.prompts button{border:1px solid var(--line);color:var(--muted);cursor:pointer;background:0 0;border-radius:999px;padding:.4rem .7rem}.prompts button:hover{color:var(--text);border-color:#c8f25a59}.flash{color:#ffd4c2;background:#ff8a5b1a;border:1px solid #ff8a5b66;border-radius:12px;margin-bottom:1rem;padding:.8rem 1rem}.ok-flash{color:#d9ffe8;background:#7dffa814;border-color:#7dffa859}.metrics{flex-wrap:wrap;gap:.5rem;display:flex}.metric{border:1px solid var(--line);background:#ffffff08;border-radius:12px;flex:6.5rem;min-width:0;padding:.65rem .8rem}.metric b{font-family:var(--font-display);font-size:1.15rem;display:block}.metric span{color:var(--muted);font-size:.8rem}.metric-emph{background:#c8f25a0d;border-color:#c8f25a38}.metric-emph b{font-size:1.35rem}.metric-hr{flex:1.4 9rem}.metric-hr-vals{align-items:baseline;gap:.25rem;display:flex}.metric-hr-vals b{font-size:1.25rem}.metric-hr-sep{color:var(--muted);font-size:.95rem}.metric-hr-max{font-family:var(--font-display);color:var(--warn);font-size:1.05rem}.hr-bar{background:#ffffff14;border-radius:999px;height:4px;margin-top:.45rem;overflow:hidden}.hr-bar-fill{border-radius:inherit;background:linear-gradient(90deg, var(--accent), var(--warn));height:100%}.shot{border:1px solid var(--line);border-radius:14px;width:100%;display:block}.context-card summary{cursor:pointer;flex-wrap:wrap;align-items:baseline;gap:.45rem .75rem;list-style:none;display:flex}.context-card summary::-webkit-details-marker{display:none}.context-title{font-family:var(--font-display);font-size:1.15rem}.context-path{font-size:.85rem}textarea.editor{width:100%;max-width:100%;min-height:22rem;font-family:ui-monospace,Cascadia Code,Segoe UI Mono,monospace;font-size:.9rem;line-height:1.45;display:block}.md{color:var(--text);margin-top:1rem;overflow-x:auto}.md>:first-child{margin-top:0}.md h1,.md h2,.md h3,.md h4{font-family:var(--font-display);letter-spacing:-.03em;margin:1.4rem 0 .55rem;line-height:1.15}.md h1{font-size:1.55rem}.md h2{font-size:1.28rem}.md h3{font-size:1.1rem}.md p,.md ul,.md ol,.md blockquote,.md pre{margin:.65rem 0}.md ul,.md ol{color:var(--muted);padding-left:1.25rem}.md li+li{margin-top:.25rem}.md li{color:var(--text)}.md strong{color:#f2f7ec}.md a{color:var(--accent);text-underline-offset:2px;text-decoration:underline}.md blockquote{color:var(--muted);border-left:3px solid #c8f25a73;padding:.15rem 0 .15rem .9rem}.md code{border:1px solid var(--line);background:#00000047;border-radius:6px;padding:.1rem .35rem;font-family:ui-monospace,Cascadia Code,Segoe UI Mono,monospace;font-size:.88em}.md pre{border:1px solid var(--line);background:#00000052;border-radius:12px;padding:.9rem 1rem;overflow-x:auto}.md pre code{color:#d7e6cf;background:0 0;border:0;padding:0;font-size:.86rem}.md table{border-collapse:collapse;width:100%;margin:.9rem 0;font-size:.92rem;display:block;overflow-x:auto}.md thead{background:#c8f25a14}.md th,.md td{border:1px solid var(--line);text-align:left;vertical-align:top;padding:.55rem .7rem}.md th{color:var(--accent);white-space:nowrap;font-weight:600}.md tr:nth-child(2n) td{background:#ffffff05}.md hr{border:0;border-top:1px solid var(--line);margin:1.25rem 0}.timeline{gap:.35rem;margin-bottom:1.5rem;display:grid}.timeline-item{grid-template-columns:1.4rem 1fr;align-items:stretch;gap:.85rem;animation:.5s both rise;display:grid}.timeline-rail{justify-content:center;display:flex;position:relative}.timeline-rail:before{content:"";background:#c8f25a38;width:2px;position:absolute;top:0;bottom:-.35rem}.timeline-item:last-child .timeline-rail:before{bottom:50%}.timeline-dot{z-index:1;background:var(--accent);border-radius:50%;width:.7rem;height:.7rem;margin-top:1.25rem;position:relative;box-shadow:0 0 0 4px #c8f25a1f}.timeline-card{border:1px solid var(--line);background:#ffffff05;border-radius:14px;padding:1rem 1.1rem;transition:border-color .16s,background .16s,transform .16s;position:relative}.timeline-link{color:inherit;padding-right:2.4rem;display:block}.timeline-delete{opacity:.55;align-items:center;margin:0;transition:opacity .16s;display:inline-flex;position:absolute;top:.65rem;right:.65rem}.timeline-card:hover .timeline-delete,.timeline-delete:focus-within{opacity:1}.timeline-item:hover .timeline-card{background:#c8f25a0a;border-color:#c8f25a59;transform:translateY(-1px)}.timeline-head{flex-wrap:wrap;align-items:center;gap:.4rem;display:flex}.timeline-metrics{color:var(--muted);flex-wrap:wrap;gap:.65rem 1rem;margin-top:.65rem;font-size:.92rem;display:flex}.timeline-notes{-webkit-line-clamp:2;-webkit-box-orient:vertical;margin-top:.55rem;display:-webkit-box;overflow:hidden}.timeline-actions,.run-actions{flex-wrap:wrap;gap:.5rem;margin-top:.75rem;display:flex}@keyframes rise{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}.range-filter{border-top:1px solid var(--line);border-bottom:1px solid var(--line);gap:.75rem;margin:0 0 1.5rem;padding:.85rem 0;display:grid}.range-presets{flex-wrap:wrap;gap:.45rem;display:flex}.range-chip{border:1px solid var(--line);min-height:2.5rem;color:var(--muted);cursor:pointer;background:0 0;border-radius:999px;justify-content:center;align-items:center;padding:.45rem .9rem;transition:color .16s,background .16s,border-color .16s;display:inline-flex}a.range-chip{text-decoration:none}.range-chip:hover{color:var(--text);border-color:#c8f25a59}.range-chip.active{color:var(--accent-ink);background:var(--accent);border-color:var(--accent);font-weight:600}.range-custom{flex-wrap:wrap;align-items:end;gap:.75rem;display:flex}.range-date{flex:9rem;min-width:0}.range-date input[type=date]{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;min-height:2.75rem}.range-apply{flex:none;min-height:2.75rem}.range-empty{justify-items:start;gap:.85rem;display:grid}@media (width<=720px){.range-custom{grid-template-columns:1fr 1fr;align-items:end;display:grid}.range-date{flex:unset}.range-apply{grid-column:1/-1;width:100%}.range-presets{gap:.4rem}.range-chip{flex:calc(50% - .4rem);padding:.55rem .75rem}}.map-wrap{isolation:isolate}.map-chrome{z-index:500;pointer-events:auto;flex-direction:column;gap:.35rem;display:flex;position:absolute;top:.65rem;right:.65rem}.map-chrome-btn{border:1px solid var(--line);width:2.15rem;height:2.15rem;color:var(--text);cursor:pointer;background:#10140fe0;border-radius:10px;justify-content:center;align-items:center;padding:0;transition:background .14s,border-color .14s,color .14s;display:inline-flex;box-shadow:0 8px 20px #00000059}.map-chrome-btn:hover{color:var(--accent);border-color:#c8f25a73}.map-chrome-btn:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.map-chrome-sr{clip:rect(0, 0, 0, 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.map-chrome-ico{line-height:0;display:flex}:-webkit-any(.map-wrap.is-fullscreen,.map-wrap:fullscreen,.map-wrap:-webkit-full-screen){box-sizing:border-box!important;background:#0c100c!important;border:none!important;border-radius:0!important;width:100vw!important;max-width:none!important;height:100dvh!important;max-height:none!important;overflow:hidden!important}:is(.map-wrap.is-fullscreen,.map-wrap:fullscreen,.map-wrap:fullscreen){box-sizing:border-box!important;background:#0c100c!important;border:none!important;border-radius:0!important;width:100vw!important;max-width:none!important;height:100dvh!important;max-height:none!important;overflow:hidden!important}:-webkit-any(.map-wrap.is-fullscreen .leaflet-container,.map-wrap:fullscreen .leaflet-container,.map-wrap:-webkit-full-screen .leaflet-container,.map-wrap.is-fullscreen .route-map,.map-wrap.is-fullscreen .heatmap-map,.map-wrap:fullscreen .route-map,.map-wrap:fullscreen .heatmap-map,.map-wrap:-webkit-full-screen .route-map,.map-wrap:-webkit-full-screen .heatmap-map){width:100vw!important;min-width:100%!important;max-width:none!important;height:100dvh!important;min-height:100dvh!important;max-height:none!important;display:block!important}:is(.map-wrap.is-fullscreen .leaflet-container,.map-wrap:fullscreen .leaflet-container,.map-wrap:fullscreen .leaflet-container,.map-wrap.is-fullscreen .route-map,.map-wrap.is-fullscreen .heatmap-map,.map-wrap:fullscreen .route-map,.map-wrap:fullscreen .heatmap-map,.map-wrap:fullscreen .route-map,.map-wrap:fullscreen .heatmap-map){width:100vw!important;min-width:100%!important;max-width:none!important;height:100dvh!important;min-height:100dvh!important;max-height:none!important;display:block!important}html.map-fs-active,body.map-fs-active{overflow:hidden!important}body.map-fs-active .map-wrap.is-fullscreen:not(:fullscreen):not(:-webkit-full-screen){z-index:10000!important;width:100vw!important;height:100dvh!important;position:fixed!important;inset:0!important}body.map-fs-active .map-wrap.is-fullscreen:not(:fullscreen):not(:fullscreen){z-index:10000!important;width:100vw!important;height:100dvh!important;position:fixed!important;inset:0!important}.km-marker{background:0 0!important;border:none!important}.km-marker-pill{min-width:1.35rem;height:1.35rem;color:var(--accent);font-family:var(--font-display);background:#10140fe0;border:1px solid #c8f25a8c;border-radius:999px;justify-content:center;align-items:center;padding:0 .25rem;font-size:.68rem;font-weight:700;line-height:1;display:inline-flex;box-shadow:0 4px 12px #0006}.leaflet-bottom.leaflet-left{z-index:400}@media (width<=640px){.map-chrome{gap:.3rem;top:.5rem;right:.5rem}.map-chrome-btn{width:2.4rem;height:2.4rem}}.spark-root{touch-action:manipulation;min-width:0;display:block;position:relative}.sparkline{cursor:crosshair;touch-action:manipulation;display:block;overflow:visible}.spark-area{opacity:.14;pointer-events:none}.spark-hit{stroke:#0000;stroke-width:16px;stroke-linecap:round;stroke-linejoin:round;vector-effect:non-scaling-stroke;pointer-events:stroke}.spark-line{stroke-width:1.75px;stroke-linecap:round;stroke-linejoin:round;vector-effect:non-scaling-stroke;pointer-events:none}.spark-marker{z-index:1;pointer-events:none;border-radius:50%;width:7px;height:7px;margin:-3.5px 0 0 -3.5px;position:absolute;box-shadow:0 0 0 2px #10140fe6,0 0 8px #c8f25a73}.spark-tip{z-index:2;border:1px solid var(--line);pointer-events:none;white-space:nowrap;background:#1a2218;border-radius:8px;flex-direction:column;align-items:center;gap:.05rem;max-width:min(11rem,70vw);padding:.28rem .45rem;display:flex;position:absolute;transform:translate(-50%,calc(-100% - 10px));box-shadow:0 8px 22px #0006}.spark-tip:after{content:"";border:5px solid #0000;border-top-color:#1a2218;position:absolute;top:100%;left:50%;transform:translate(-50%)}.spark-tip-value{font-family:var(--font-display);letter-spacing:-.02em;color:var(--accent);font-size:.78rem;font-weight:700;line-height:1.15}.spark-tip-label{color:var(--muted);text-overflow:ellipsis;max-width:100%;font-size:.68rem;line-height:1.15;overflow:hidden}.splits-panel{padding:1.1rem 1.2rem 1.25rem}.splits-head{flex-wrap:wrap;align-items:baseline;gap:.45rem .85rem;margin-bottom:.85rem;display:flex}.splits-sub{font-size:.85rem}.splits-list{flex-direction:column;gap:.2rem;display:flex}.splits-row{border-bottom:1px solid #e8f0e20f;grid-template-columns:2.6rem 3.4rem 3.2rem 2.6rem minmax(4rem,1fr);align-items:center;gap:.45rem .65rem;padding:.28rem 0;font-size:.92rem;display:grid}.splits-row-head{text-transform:uppercase;letter-spacing:.06em;color:var(--muted);border-bottom-color:var(--line);padding-bottom:.45rem;font-size:.72rem}.splits-row.partial{opacity:.78}.splits-unit{color:var(--muted);font-size:.75rem}.splits-pace{font-family:var(--font-display);color:var(--accent);font-weight:700}.splits-bar-col{align-items:center;min-height:.55rem;display:flex}.splits-bar{background:linear-gradient(90deg, #c8f25a59, var(--accent));border-radius:999px;min-width:.4rem;height:.45rem;display:block}.zones-spaced{border-top:1px solid var(--line);margin-top:1.35rem;padding-top:1.15rem}.zone-stack{background:#ffffff0f;border-radius:999px;height:.55rem;margin-bottom:.85rem;display:flex;overflow:hidden}.zone-stack-seg{min-width:2px}.zone-grid{grid-template-columns:repeat(auto-fit,minmax(8.5rem,1fr));gap:.55rem;display:grid}.zone-card{border:1px solid var(--line);background:#0000002e;border-radius:12px;padding:.55rem .65rem}.zone-card.empty{opacity:.45}.zone-card-top{align-items:center;gap:.35rem;margin-bottom:.25rem;font-size:.85rem;display:flex}.zone-dot{border-radius:999px;flex-shrink:0;width:.45rem;height:.45rem}.zone-card-vals{align-items:baseline;gap:.45rem;display:flex}.zone-card-vals b{font-family:var(--font-display);font-size:1.1rem}.zone-pct{font-size:.8rem}.zone-bpm{margin-top:.15rem;font-size:.75rem}.zone-avg-only{margin:0;font-size:.95rem}@media (width<=520px){.splits-row{grid-template-columns:2.4rem 3.1rem 2.8rem 2.2rem minmax(2.5rem,1fr);gap:.3rem .4rem;font-size:.85rem}}.trends{border-top:1px solid var(--line);margin:0 0 1.75rem;padding:1.1rem 0 .15rem}.trends-head{margin-bottom:.95rem}.trends-head h2{font-size:1.2rem;font-weight:700}.trends-head p{margin-top:.25rem;font-size:.9rem}.trends-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:1.15rem 1.5rem;display:grid}.trend-item.trend-bars{grid-column:1/-1}.trend-meta{justify-content:space-between;align-items:flex-start;gap:.75rem;margin-bottom:.55rem;display:flex}.trend-title{font-family:var(--font-display);letter-spacing:-.02em;font-size:.98rem;font-weight:700;display:block}.trend-sub{margin-top:.15rem;font-size:.78rem;display:block}.trend-readout{text-align:right;flex-shrink:0}.trend-readout strong{font-family:var(--font-display);letter-spacing:-.03em;font-size:1.15rem;line-height:1.1;display:block}.trend-unit{color:var(--muted);margin-left:.15rem;font-size:.75rem;font-weight:500}.trend-delta{color:var(--muted);margin-top:.15rem;font-size:.78rem;display:inline-block}.trend-delta.better,.trend-delta.up{color:var(--ok)}.trend-delta.worse{color:var(--warn)}.spark-wrap{min-width:0;margin-top:-1.85rem;padding-top:1.85rem;overflow:visible}.spark-ends{justify-content:space-between;margin-top:.2rem;font-size:.72rem;display:flex}.bar-chart{align-items:stretch;gap:.28rem;min-width:0;height:4.6rem;margin-top:-1.85rem;padding-top:1.85rem;display:flex;overflow:visible}.bar-col{min-width:0;color:inherit;font:inherit;cursor:pointer;touch-action:manipulation;-webkit-tap-highlight-color:transparent;background:0 0;border:0;flex-direction:column;flex:1 1 0;align-items:center;gap:.28rem;margin:0;padding:0;display:flex;position:relative}.bar-track{flex:1;justify-content:center;align-items:flex-end;width:100%;display:flex}.bar{background:linear-gradient(180deg, var(--accent) 0%, #c8f25a73 100%);border-radius:3px 3px 1px 1px;width:100%;max-width:1.35rem;min-height:3px;transition:filter .12s,opacity .12s;display:block}.bar-col.active .bar:not(.empty),.bar-col:hover .bar:not(.empty){filter:brightness(1.08)}.bar.empty{opacity:.22;background:var(--line);min-height:2px;height:4%!important}.bar-label{text-align:center;white-space:nowrap;text-overflow:ellipsis;max-width:100%;font-size:.62rem;line-height:1.1;overflow:hidden}.bar-tip{z-index:3;border:1px solid var(--line);pointer-events:none;white-space:nowrap;background:#1a2218;border-radius:8px;flex-direction:column;align-items:center;gap:.05rem;padding:.28rem .45rem;display:flex;position:absolute;bottom:calc(100% - .1rem);left:50%;transform:translate(-50%);box-shadow:0 8px 22px #0006}.bar-tip:after{content:"";border:5px solid #0000;border-top-color:#1a2218;position:absolute;top:100%;left:50%;transform:translate(-50%)}.bar-tip-value{font-family:var(--font-display);letter-spacing:-.02em;color:var(--accent);font-size:.78rem;font-weight:700;line-height:1.15}.bar-tip-label{color:var(--muted);font-size:.68rem;line-height:1.15}@media (width<=720px){.trends-grid{grid-template-columns:1fr;gap:1.25rem}.bar-chart{gap:.18rem;height:4.2rem}.bar-label{font-size:.58rem}.bar-col:nth-child(2n) .bar-label{visibility:hidden}}.route-map-wrap{border-radius:var(--radius);border:1px solid var(--line);background:#00000059;position:relative;overflow:hidden}.route-map{z-index:0;width:100%;height:min(420px,55vh)}@media (width<=640px){.route-map{height:min(280px,42vh);min-height:240px}}:-webkit-any(.route-map-wrap.is-fullscreen .route-map,.route-map-wrap:fullscreen .route-map,.route-map-wrap:-webkit-full-screen .route-map){width:100vw!important;height:100dvh!important;min-height:100dvh!important;max-height:none!important}:is(.route-map-wrap.is-fullscreen .route-map,.route-map-wrap:fullscreen .route-map,.route-map-wrap:fullscreen .route-map){width:100vw!important;height:100dvh!important;min-height:100dvh!important;max-height:none!important}.route-map-status{z-index:2;border:1px solid var(--line);color:var(--muted);background:#10140fd9;border-radius:999px;margin:0;padding:.35rem .65rem;font-size:.85rem;position:absolute;top:.85rem;left:.85rem}.route-map-status.error{color:#ffd4c2;border-color:#ff8a5b66}.heatmap-wrap{border-radius:var(--radius);border:1px solid var(--line);background:#00000059;position:relative;overflow:hidden}.heatmap-map{z-index:0;width:100%;height:300px}@media (width<=640px){.heatmap-map{height:260px;min-height:240px}}:-webkit-any(.heatmap-wrap.is-fullscreen .heatmap-map,.heatmap-wrap:fullscreen .heatmap-map,.heatmap-wrap:-webkit-full-screen .heatmap-map){width:100vw!important;height:100dvh!important;min-height:100dvh!important;max-height:none!important}:is(.heatmap-wrap.is-fullscreen .heatmap-map,.heatmap-wrap:fullscreen .heatmap-map,.heatmap-wrap:fullscreen .heatmap-map){width:100vw!important;height:100dvh!important;min-height:100dvh!important;max-height:none!important}.heatmap-empty{text-align:center;border:1px dashed var(--line);border-radius:var(--radius);background:#0003;padding:2rem 1.2rem}.heatmap-status{z-index:2;border:1px solid var(--line);color:var(--muted);background:#10140fd9;border-radius:999px;margin:0;padding:.35rem .65rem;font-size:.85rem;position:absolute;top:.85rem;left:.85rem}.heatmap-status.error{color:#ffd4c2;border-color:#ff8a5b66}.route-map .leaflet-control-attribution,.heatmap-map .leaflet-control-attribution,.map-wrap .leaflet-control-attribution{max-width:min(52vw,14rem);line-height:1.25;color:var(--muted)!important;background:#10140fb8!important;margin:0!important;padding:.15rem .35rem!important;font-size:.65rem!important}.route-map .leaflet-control-attribution a,.heatmap-map .leaflet-control-attribution a,.map-wrap .leaflet-control-attribution a{color:var(--accent)!important}
