.activity-shell{display:grid;grid-template-columns:minmax(0,1fr);gap:18px;min-width:0}
.upload-card{overflow:hidden}
.upload-intro{display:flex;align-items:flex-start;justify-content:space-between;gap:18px;margin-bottom:18px}
.upload-intro h2{margin-bottom:6px}
.upload-intro p{margin:0;color:var(--muted);line-height:1.55}
.privacy-badge{display:inline-flex;align-items:center;gap:8px;flex:0 0 auto;padding:8px 12px;border:1px solid rgba(22,101,52,.2);border-radius:999px;background:#f0fdf4;color:#166534;font-size:.86rem;font-weight:750}
.privacy-badge svg{width:16px;height:16px}
.drop-zone{position:relative;display:grid;place-items:center;min-height:250px;padding:34px 22px;border:2px dashed #cbd5e1;border-radius:16px;background:linear-gradient(145deg,#fff,#f8fafc);text-align:center;transition:border-color .18s ease,background .18s ease,transform .18s ease}
.drop-zone.is-dragging{border-color:var(--accent);background:rgba(206,102,50,.07);transform:translateY(-2px)}
.drop-zone:focus-within{outline:3px solid rgba(206,102,50,.22);outline-offset:3px}
.drop-icon{display:grid;place-items:center;width:58px;height:58px;margin:0 auto 14px;border-radius:16px;background:linear-gradient(135deg,var(--grad-a),var(--grad-b));box-shadow:var(--shadow);color:#fff}
.drop-icon svg{width:30px;height:30px}
.drop-zone h3{margin:0 0 7px;font-size:1.25rem}
.drop-zone p{margin:0 0 16px;color:var(--muted)}
.file-input{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap}
.file-label{display:inline-flex;align-items:center;justify-content:center;padding:10px 17px;border-radius:999px;background:var(--accent-2);color:#fff;font-weight:750;cursor:pointer;box-shadow:var(--shadow-sm)}
.file-label:hover{background:var(--accent)}
.format-list{display:flex;flex-wrap:wrap;justify-content:center;gap:8px;margin-top:17px}
.format-list span{padding:5px 9px;border:1px solid var(--border);border-radius:999px;background:#fff;color:#475569;font-size:.8rem;font-weight:800;letter-spacing:.04em}
.upload-status{min-height:1.5em;margin:12px 0 0;color:var(--muted);font-size:.93rem}
.upload-status.is-error{color:#b91c1c;font-weight:650}
.upload-status.is-success{color:#166534;font-weight:650}
.activity-results[hidden],.activity-empty[hidden]{display:none!important}
.activity-result-ad{min-width:0}
.result-heading{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;margin-bottom:14px}
.result-heading h2{margin:0 0 4px}
.result-heading p{margin:0;color:var(--muted);overflow-wrap:anywhere}
.text-button{appearance:none;border:1px solid var(--border);border-radius:999px;background:#fff;padding:8px 12px;color:#334155;font:inherit;font-weight:700;cursor:pointer}
.text-button:hover{border-color:#cbd5e1;background:#f8fafc}
.summary-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px}
.summary-stat{padding:15px;border:1px solid var(--border);border-radius:14px;background:#fff;box-shadow:var(--shadow-sm)}
.summary-stat span{display:block;margin-bottom:4px;color:var(--muted);font-size:.82rem;font-weight:700;text-transform:uppercase;letter-spacing:.045em}
.summary-stat strong{display:block;font-size:clamp(1.18rem,2.7vw,1.55rem);font-variant-numeric:tabular-nums;line-height:1.2}
.summary-stat small{display:block;margin-top:5px;color:var(--muted)}
.data-note{display:flex;align-items:flex-start;gap:9px;margin:14px 0 0;padding:11px 13px;border-radius:11px;background:#f8fafc;color:#475569;font-size:.9rem;line-height:1.5}
.data-note svg{flex:0 0 auto;width:17px;height:17px;margin-top:2px;color:var(--accent-2)}
.analysis-grid{display:grid;grid-template-columns:minmax(0,1.1fr) minmax(300px,.9fr);gap:18px}
.chart-card,.splits-card,.next-card{min-width:0}
.chart-head,.splits-head{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;margin-bottom:12px}
.chart-head h2,.splits-head h2{margin:0}
.chart-head p,.splits-head p{margin:4px 0 0;color:var(--muted);font-size:.92rem}
.chart-tabs{display:flex;flex-wrap:wrap;gap:6px}
.chart-tabs button{appearance:none;border:1px solid var(--border);border-radius:999px;background:#fff;padding:7px 10px;color:#475569;font:inherit;font-size:.84rem;font-weight:700;cursor:pointer}
.chart-tabs button.active{border-color:transparent;background:var(--accent-2);color:#fff}
.activity-chart{display:block;width:100%;height:260px;border:1px solid var(--border);border-radius:12px;background:#fff}
.chart-placeholder{display:grid;place-items:center;min-height:260px;border:1px dashed var(--border);border-radius:12px;color:var(--muted);text-align:center;padding:20px}
.chart-placeholder[hidden]{display:none!important}
.chart-caption{margin:8px 0 0;color:var(--muted);font-size:.86rem}
.table-scroll{max-height:420px;overflow:auto;border:1px solid var(--border);border-radius:12px}
.splits-table{font-variant-numeric:tabular-nums}
.splits-table th{position:sticky;top:0;z-index:1}
.splits-table td,.splits-table th{white-space:nowrap}
.split-partial{color:var(--muted);font-size:.78rem}
.unit-toggle{display:inline-flex;border:1px solid var(--border);border-radius:999px;overflow:hidden;background:#f8fafc}
.unit-toggle button{appearance:none;border:0;background:transparent;padding:7px 10px;color:#475569;font:inherit;font-size:.84rem;font-weight:700;cursor:pointer}
.unit-toggle button.active{background:var(--accent-2);color:#fff}
.route-card{min-width:0}
.route-head{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;margin-bottom:12px}
.route-head h2{margin:0}
.route-head p{margin:4px 0 0;color:var(--muted);font-size:.92rem}
.local-map-badge{display:inline-flex;align-items:center;gap:7px;flex:0 0 auto;padding:7px 11px;border:1px solid rgba(22,101,52,.2);border-radius:999px;background:#f0fdf4;color:#166534;font-size:.82rem;font-weight:750}
.local-map-badge svg{width:15px;height:15px}
.route-frame{position:relative;overflow:hidden;border:1px solid var(--border);border-radius:14px;background:#f8fafc}
.route-map{display:block;width:100%;height:340px}
.route-legend{position:absolute;right:12px;bottom:12px;display:flex;align-items:center;gap:12px;padding:7px 10px;border:1px solid rgba(203,213,225,.8);border-radius:999px;background:rgba(255,255,255,.92);box-shadow:var(--shadow-sm);color:#475569;font-size:.78rem;font-weight:700;backdrop-filter:blur(4px)}
.route-legend span{display:inline-flex;align-items:center;gap:5px}
.route-dot{display:inline-block;width:9px;height:9px;border:2px solid #fff;border-radius:50%;box-shadow:0 0 0 1px rgba(15,23,42,.2)}
.route-dot-start{background:#15803d}
.route-dot-finish{background:#7c2d12}
.north-marker{padding-left:3px;border-left:1px solid #cbd5e1}
.what-if-card{overflow:hidden}
.what-if-heading{display:flex;align-items:flex-start;justify-content:space-between;gap:18px;margin-bottom:16px}
.what-if-heading h2{margin:2px 0 5px}
.what-if-heading p{margin:0;color:var(--muted)}
.what-if-eyebrow,.scenario-label{display:block;color:var(--accent-2);font-size:.76rem;font-weight:850;letter-spacing:.08em;text-transform:uppercase}
.estimate-badge{display:inline-flex;flex:0 0 auto;padding:7px 11px;border:1px solid rgba(154,63,24,.18);border-radius:999px;background:#fff7ed;color:#9a3f18;font-size:.8rem;font-weight:800}
.what-if-layout{display:grid;grid-template-columns:minmax(250px,.72fr) minmax(0,1.28fr);gap:14px}
.flat-scenario,.race-scenario{min-width:0;padding:18px;border:1px solid var(--border);border-radius:15px;background:linear-gradient(145deg,#fff,#f8fafc)}
.flat-scenario h3,.race-scenario h3{margin:5px 0 6px;font-size:1.08rem}
.scenario-copy{margin:0;color:var(--muted);font-size:.9rem;line-height:1.5}
.flat-result{display:flex;align-items:baseline;flex-wrap:wrap;gap:7px 10px;margin:19px 0 4px}
.flat-result strong{font-size:clamp(1.7rem,4vw,2.35rem);font-variant-numeric:tabular-nums;line-height:1}
.flat-result span{color:var(--muted);font-size:.88rem}
.scenario-detail{margin:8px 0 0;color:#475569;font-size:.86rem;line-height:1.45}
.what-if-races{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;margin-top:14px}
.what-if-race{padding:11px;border:1px solid var(--border);border-radius:11px;background:#fff}
.what-if-race span,.what-if-race small{display:block;color:var(--muted)}
.what-if-race span{margin-bottom:4px;font-size:.76rem;font-weight:750;text-transform:uppercase;letter-spacing:.035em}
.what-if-race strong{display:block;font-size:1.02rem;font-variant-numeric:tabular-nums}
.what-if-race small{margin-top:3px;font-size:.74rem;font-variant-numeric:tabular-nums}
.what-if-note{margin:14px 0 0;padding:11px 13px;border-radius:11px;background:#f8fafc;color:#475569;font-size:.84rem;line-height:1.5}
.what-if-editorial{margin:8px 0 0;color:var(--muted);font-size:.8rem}
.insight-heading{display:flex;align-items:flex-start;justify-content:space-between;gap:18px;margin-bottom:16px}
.insight-heading h2{margin:2px 0 5px}
.insight-heading p{margin:0;color:var(--muted)}
.quality-verdict{display:inline-flex;flex:0 0 auto;padding:7px 11px;border:1px solid var(--border);border-radius:999px;background:#f8fafc;color:#475569;font-size:.8rem;font-weight:800}
.quality-verdict.is-strong{border-color:rgba(22,101,52,.2);background:#f0fdf4;color:#166534}
.quality-verdict.is-usable{border-color:rgba(180,83,9,.2);background:#fffbeb;color:#92400e}
.quality-verdict.is-limited{border-color:rgba(185,28,28,.2);background:#fef2f2;color:#991b1b}
.quality-metrics{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:9px}
.quality-metric{padding:12px;border:1px solid var(--border);border-radius:12px;background:#fff}
.quality-metric-head{display:flex;align-items:baseline;justify-content:space-between;gap:8px;margin-bottom:8px}
.quality-metric-head span{color:#475569;font-size:.8rem;font-weight:750}
.quality-metric-head strong{font-size:.86rem;font-variant-numeric:tabular-nums}
.quality-track{height:7px;overflow:hidden;border-radius:999px;background:#e2e8f0}
.quality-track i{display:block;height:100%;border-radius:inherit;background:var(--accent)}
.quality-metric small{display:block;margin-top:7px;color:var(--muted);font-size:.72rem}
.quality-findings{margin-top:13px;padding:13px 15px;border-radius:12px;background:#f8fafc}
.quality-findings h3{margin:0 0 7px;font-size:.9rem}
.quality-findings ul{display:grid;gap:5px;margin:0;padding-left:19px;color:#475569;font-size:.85rem;line-height:1.45}
.insights-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px}
.insight-card{min-width:0}
.insight-card h2{margin:5px 0 5px}
.insight-intro{margin:0 0 14px;color:var(--muted);font-size:.9rem;line-height:1.5}
.insight-stat-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:9px}
.insight-stat-grid>div,.heart-summary-grid>div{padding:12px;border:1px solid var(--border);border-radius:12px;background:#fff}
.insight-stat-grid span,.heart-summary-grid span{display:block;margin-bottom:4px;color:var(--muted);font-size:.73rem;font-weight:750;text-transform:uppercase;letter-spacing:.035em}
.insight-stat-grid strong,.heart-summary-grid strong{display:block;font-size:1.08rem;font-variant-numeric:tabular-nums}
.insight-stat-grid small,.heart-summary-grid small{display:block;margin-top:4px;color:var(--muted);font-size:.75rem;line-height:1.35}
.insight-summary{margin:12px 0 0;padding:10px 12px;border-left:3px solid var(--accent);border-radius:8px;background:#fff7ed;color:#475569;font-size:.84rem;line-height:1.45}
.climb-list-wrap{margin-top:12px}
.climb-list-wrap h3{margin:0 0 7px;font-size:.9rem}
.climb-list{display:grid;gap:6px;margin:0;padding:0;list-style:none}
.climb-list li{display:flex;justify-content:space-between;gap:10px;padding:8px 10px;border-radius:9px;background:#f8fafc;color:#475569;font-size:.8rem}
.climb-list li strong{color:var(--text);font-variant-numeric:tabular-nums}
.heart-heading{align-items:flex-end}
.max-hr-control{display:grid;gap:5px;flex:0 0 auto;color:#475569;font-size:.76rem;font-weight:750;text-transform:uppercase;letter-spacing:.035em}
.max-hr-control span{display:flex;align-items:center;gap:6px;color:var(--muted);font-size:.78rem;font-weight:600;text-transform:none;letter-spacing:0}
.max-hr-control input{width:116px;padding:8px 9px;border:1px solid var(--border);border-radius:9px;background:#fff;color:var(--text);font:inherit;font-size:.9rem}
.heart-summary-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:9px}
.zone-section{margin-top:15px}
.zone-heading{display:flex;align-items:baseline;justify-content:space-between;gap:12px;margin-bottom:9px}
.zone-heading h3{margin:0;font-size:.95rem}
.zone-heading span{color:var(--muted);font-size:.78rem}
.heart-zones{display:grid;gap:7px}
.heart-zone{display:grid;grid-template-columns:86px minmax(80px,1fr) 62px;align-items:center;gap:9px;color:#475569;font-size:.8rem}
.heart-zone-label strong,.heart-zone-label span{display:block}
.heart-zone-label strong{color:var(--text);font-size:.8rem}
.heart-zone-label span{font-size:.7rem}
.heart-zone-track{height:10px;overflow:hidden;border-radius:999px;background:#e2e8f0}
.heart-zone-track i{display:block;height:100%;min-width:0;border-radius:inherit;background:linear-gradient(90deg,var(--grad-a),var(--grad-b))}
.heart-zone-time{text-align:right;font-variant-numeric:tabular-nums;font-weight:750}
.next-card h2{margin:0 0 5px}
.next-card>p{margin:0 0 14px;color:var(--muted)}
.handoff-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:11px}
.handoff-link{display:block;padding:14px;border:1px solid var(--border);border-radius:13px;background:#fff;color:inherit;text-decoration:none;transition:transform .15s ease,border-color .15s ease,box-shadow .15s ease}
.handoff-link:hover{transform:translateY(-2px);border-color:rgba(206,102,50,.45);box-shadow:var(--shadow-sm);text-decoration:none}
.handoff-link span{display:block;margin-bottom:5px;color:var(--accent-2);font-size:.78rem;font-weight:800;text-transform:uppercase;letter-spacing:.04em}
.handoff-link strong{display:block;margin-bottom:4px}
.handoff-link small{display:block;color:var(--muted);line-height:1.4}
.activity-empty{padding:18px;border:1px solid var(--border);border-radius:14px;background:#fff}
.activity-empty h2{margin:0 0 6px}
.activity-empty p{margin:0;color:var(--muted)}
.content-disclaimer{padding:14px;border-left:4px solid var(--accent);border-radius:8px;background:#fff7ed;line-height:1.55}
.content-disclaimer strong{color:var(--accent-2)}
.activity-shell~* .copyright-meta,.copyright-meta{opacity:1;color:#596273}
@media(max-width:850px){.summary-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.analysis-grid,.what-if-layout,.insights-grid{grid-template-columns:1fr}.quality-metrics{grid-template-columns:repeat(3,minmax(0,1fr))}.handoff-grid{grid-template-columns:1fr}}
@media(max-width:600px){.upload-intro,.result-heading,.chart-head,.splits-head,.route-head,.what-if-heading,.insight-heading{align-items:stretch;flex-direction:column}.privacy-badge,.local-map-badge,.estimate-badge,.quality-verdict{align-self:flex-start}.summary-grid,.insight-stat-grid{grid-template-columns:1fr 1fr}.quality-metrics,.heart-summary-grid{grid-template-columns:1fr}.what-if-races{grid-template-columns:repeat(2,minmax(0,1fr))}.max-hr-control{align-self:flex-start}.drop-zone{min-height:230px;padding:28px 16px}.activity-chart{height:225px}.route-map{height:280px}.route-legend{right:8px;bottom:8px;gap:8px}}
@media(max-width:390px){.summary-grid{grid-template-columns:1fr}}
