:root{color:#edf4f3;font-synthesis:none;text-rendering:optimizelegibility;background:#050c12;font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif}*{box-sizing:border-box}body{background:radial-gradient(circle at 76% -10%,#00c28117,#0000 30rem),#050c12;min-width:320px;min-height:100vh;margin:0}a{color:inherit;text-decoration:none}.app-shell{min-height:100vh;display:flex}.sidebar{background:linear-gradient(#071119 0%,#07121a 70%,#061017 100%);border-right:1px solid #8daab524;flex-direction:column;flex:0 0 238px;width:238px;padding:27px 16px 16px;display:flex}.brand{color:#f4faf9;letter-spacing:-.04em;align-items:center;gap:11px;font-size:21px;font-weight:750;display:flex}.brand-mark{color:#061018;background:#32d597;border-radius:8px 2px;place-items:center;width:29px;height:29px;font-size:20px;font-style:italic;font-weight:900;display:grid}.main-nav{gap:7px;margin-top:57px;display:grid}.nav-item{color:#afbec2;border-left:2px solid #0000;border-radius:0 9px 9px 0;align-items:center;gap:15px;padding:12px 14px;font-size:14px;transition:background .15s,color .15s;display:flex}.nav-item:hover,.nav-active{color:#38e29c;background:#256f6829;border-left-color:#24d98f}.nav-icon{color:currentColor;text-align:center;width:19px;font-size:20px;line-height:1}.sidebar-sync{background:#091b23bd;border:1px solid #8daab51f;border-radius:10px;margin-top:auto;padding:16px 12px}.sidebar-sync .sync-state{gap:9px;font-size:11px;display:grid}.workspace{flex:1;min-width:0;padding:24px 30px 40px}.topbar{justify-content:space-between;align-items:center;max-width:1420px;margin:0 auto 19px;display:flex}.athlete-heading{align-items:center;gap:14px;display:flex}.athlete-avatar{color:#03100e;background:linear-gradient(145deg,#f1f7f5,#7baaa0);border:2px solid #2ddc98;border-radius:50%;place-items:center;width:49px;height:49px;font-size:21px;font-weight:800;display:grid}.eyebrow,.panel-kicker{color:#789096;letter-spacing:.12em;text-transform:uppercase;font-size:10px;display:block}.topbar h1{color:#f4faf9;letter-spacing:-.025em;margin:2px 0 6px;font-size:19px}.topbar-context{color:#7f979d;font-size:12px}.sync-state{color:#7f999d;align-items:center;gap:10px;font-size:11px;display:flex}.status-badge{align-items:center;gap:6px;font-size:12px;display:inline-flex}.status-dot{background:#18d886;border-radius:50%;width:7px;height:7px;box-shadow:0 0 10px}.status-current{color:#1fe08b}.status-delayed{color:#f0b746}.status-delayed .status-dot{background:#f0b746}.status-disconnected{color:#fa6d66}.status-disconnected .status-dot{background:#fa6d66}.overview-page{max-width:1420px;margin:0 auto}.metric-grid{grid-template-columns:repeat(5,minmax(0,1fr));gap:12px;display:grid}.metric-card,.chart-card,.facts-panel{background:linear-gradient(145deg,#0b1b24f5,#071119f7);border:1px solid #7d9da72b;border-radius:11px;box-shadow:inset 0 1px #ffffff06}.metric-card{min-height:132px;padding:15px 16px 13px}.metric-label{color:#b9c6c8;text-transform:uppercase;letter-spacing:.025em;align-items:center;gap:9px;font-size:12px;display:flex}.metric-icon{background:color-mix(in srgb, currentColor 16%, transparent);width:30px;height:30px;box-shadow:0 0 18px color-mix(in srgb, currentColor 13%, transparent);border-radius:50%}.metric-value{color:#f3f8f7;letter-spacing:-.05em;margin-top:11px;font-size:28px;font-weight:720;line-height:1}.metric-value small{color:inherit;letter-spacing:0;margin-left:6px;font-size:14px;font-weight:500}.metric-detail{color:#80979c;min-height:15px;margin:13px 0 0;font-size:11px}.metric-green{color:#2adb91}.metric-blue{color:#4bb8ff}.metric-red{color:#fb625d}.metric-yellow{color:#f5c72f}.metric-neutral{color:#a8b8ba}.metric-green .metric-value,.metric-blue .metric-value,.metric-red .metric-value,.metric-yellow .metric-value{color:currentColor}.dashboard-grid{grid-template-columns:minmax(0,2.1fr) minmax(260px,1fr);gap:12px;margin-top:12px;display:grid}.chart-card{min-height:280px;padding:16px 18px}.chart-empty{position:relative;overflow:hidden}.chart-empty:after{content:"";background:repeating-linear-gradient(0deg,#0000 0 44px,#6d979e0f 45px),repeating-linear-gradient(90deg,#0000 0 84px,#6d979e0a 85px);border:1px dashed #5e808a26;border-radius:7px;position:absolute;inset:88px 19px 20px}.chart-heading{z-index:1;justify-content:space-between;gap:15px;display:flex;position:relative}.chart-heading h2,.facts-panel h2{color:#eff6f4;letter-spacing:-.035em;margin:0;font-size:21px}.chart-heading p{color:#899da0;margin:5px 0 0;font-size:12px}.chart-chip{color:#849a9d;letter-spacing:.1em;border:1px solid #799da333;border-radius:6px;align-self:start;padding:5px 9px;font-size:10px}.insufficient-state{z-index:2;color:#94a8ab;text-align:center;gap:8px;width:min(360px,75%);display:grid;position:absolute;top:50%;left:50%;transform:translate(-50%,-20%)}.insufficient-state strong{color:#d6e2e0;font-size:13px;font-weight:600}.insufficient-state span:last-child{color:#72898e;font-size:11px;line-height:1.45}.insufficient-line{background:linear-gradient(90deg,#0000,#2adb91,#0000);width:48px;height:2px;margin:0 auto 5px}.facts-panel{min-height:280px;padding:17px 19px}.panel-heading{border-bottom:1px solid #7d9da721;padding-bottom:14px}.panel-heading h2{margin-top:7px;font-size:17px}.fact-emphasis{color:#f3f8f7;letter-spacing:-.06em;margin:20px 0 17px;font-size:33px;font-weight:720}.fact-emphasis small{color:#8ba2a4;letter-spacing:0;font-size:14px;font-weight:500}.fact-list{gap:11px;margin:0;display:grid}.fact-list div{color:#91a5a7;justify-content:space-between;gap:10px;font-size:12px;display:flex}.fact-list dt,.fact-list dd{margin:0}.fact-list dd{color:#e4efec;font-weight:600}.facts-note{color:#688086;margin:24px 0 0;font-size:10px;line-height:1.4}.chart-row{grid-column:1/-1;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;display:grid}.chart-row .chart-card{min-height:246px}.overview-trend-card{overflow:hidden}.overview-trend-card .factual-chart{margin-top:10px}.trends-page,.records-page,.training-page,.coach-page{max-width:1420px;margin:0 auto}.trends-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;display:grid}.trends-grid .trends-panel:first-child{grid-column:1/-1;min-height:340px}.trends-panel{min-height:300px}.weekly-volume-chart{margin-top:21px}.weekly-bars{border-bottom:1px solid #7d9da726;align-items:end;gap:10px;min-height:220px;padding:14px 10px 0;display:flex;overflow-x:auto}.weekly-bar-group{text-align:center;flex:1 0 52px;grid-template-rows:20px 1fr 22px;align-items:end;gap:5px;min-width:52px;height:200px;display:grid}.weekly-bar-value,.weekly-bar-label{color:#82999d;white-space:nowrap;font-size:10px}.weekly-bar-track{justify-content:center;align-items:end;height:100%;display:flex}.weekly-bar{background:linear-gradient(#43e2a0,#168f76);border-radius:5px 5px 0 0;width:min(34px,70%);min-height:8px;display:block}.weekly-bar-label{text-overflow:ellipsis;overflow:hidden}.record-grid{grid-template-columns:repeat(5,minmax(0,1fr));gap:12px;display:grid}.record-card{background:linear-gradient(145deg,#0b1b24f5,#071119f7);border:1px solid #7d9da72b;border-radius:11px;gap:13px;min-height:135px;padding:18px;display:grid}.record-card span,.record-card small{color:#899da0;font-size:12px}.record-card strong{color:#2adb91;letter-spacing:-.04em;font-size:27px}.record-card small{font-size:10px}.training-page .empty-panel,.coach-page .empty-panel{min-height:280px}.overview-empty .chart-card{min-height:205px;box-shadow:none;background:0 0;border:0;padding:0}.login-page{background:radial-gradient(circle at 50% 0,#2cd49221,#0000 32rem),#050c12;place-items:center;min-height:100vh;padding:24px;display:grid}.login-card{background:linear-gradient(145deg,#0b1d25f5,#061118f7);border:1px solid #7d9da72e;border-radius:16px;width:min(100%,460px);padding:43px;box-shadow:0 28px 80px #0000004d}.login-brand{margin-bottom:63px}.login-card h1{color:#f5fbf9;letter-spacing:-.055em;max-width:330px;margin:12px 0;font-size:34px;line-height:1.05}.login-copy{color:#91a7aa;margin:0 0 28px;font-size:14px;line-height:1.6}.strava-button{color:#03110d;letter-spacing:.08em;background:#2ed996;border-radius:8px;justify-content:center;width:100%;padding:14px 17px;font-size:12px;font-weight:800;display:inline-flex}.strava-button:hover{background:#55e7ad}.login-note{color:#688085;text-align:center;margin:15px 0 0;font-size:10px}.app-state{color:#9eb0b3;text-align:center;align-content:center;place-items:center;gap:20px;min-height:100vh;padding:24px;display:grid}.app-state h1{color:#ecf6f2;font-size:22px}.activities-page,.activity-detail-page{max-width:1420px;margin:0 auto}.page-heading{justify-content:space-between;align-items:flex-end;gap:24px;margin:17px 0 20px;display:flex}.page-heading h1{color:#eff7f4;letter-spacing:-.055em;margin:7px 0 6px;font-size:31px}.page-heading p{color:#82999d;margin:0;font-size:13px}.data-scope{color:#82999d;letter-spacing:.08em;text-transform:uppercase;white-space:nowrap;border:1px solid #7d9da729;border-radius:6px;padding:7px 10px;font-size:10px}.activity-table-card,.split-card,.map-card{background:linear-gradient(145deg,#0b1b24f5,#071119f7);border:1px solid #7d9da72b;border-radius:11px;box-shadow:inset 0 1px #ffffff06}.activity-table-wrap{overflow-x:auto}.activity-table{border-collapse:collapse;color:#9eb1b3;white-space:nowrap;width:100%;font-size:12px}.activity-table th{color:#6f888d;letter-spacing:.1em;text-align:left;text-transform:uppercase;border-bottom:1px solid #7d9da724;padding:15px 17px;font-size:10px;font-weight:600}.activity-table td{border-bottom:1px solid #7d9da714;padding:16px 17px}.activity-table tbody tr:last-child td{border-bottom:0}.activity-table tbody tr:hover{background:#24d98f09}.activity-link{color:#e9f4f1;font-weight:650}.activity-link:hover,.back-link:hover{color:#39e19b}.empty-panel{color:#82999d;text-align:center;border:1px dashed #7d9da733;border-radius:11px;align-content:center;place-items:center;gap:9px;min-height:230px;padding:30px;display:grid}.empty-panel strong{color:#dceae6;font-size:14px}.compact-empty{min-height:120px;margin-top:18px}.back-link{color:#8da5a8;margin-top:16px;font-size:12px;display:inline-block}.detail-heading{margin-top:18px}.detail-heading h1{font-size:34px}.detail-metric-grid{grid-template-columns:repeat(5,minmax(0,1fr))}.analysis-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin-top:12px;display:grid}.analysis-wide{grid-column:1/-1}.analysis-card{min-height:318px}.factual-chart{color:var(--chart-accent,#43b9ff);margin-top:16px;position:relative}.factual-chart svg{width:100%;min-height:220px;display:block;overflow:visible}.chart-axis-note{color:#71898e;letter-spacing:.04em;text-align:right;font-size:10px}.chart-series-state{color:#879da0;text-align:center;place-items:center;min-height:245px;font-size:12px;display:grid}.chart-legend{color:#82999d;flex-wrap:wrap;gap:16px;margin:16px 0 0;font-size:10px;display:flex}.legend-pace:before,.legend-heart-rate:before{content:"";width:18px;height:2px;margin:0 6px 3px 0;display:inline-block}.legend-pace:before{background:#43b9ff}.legend-heart-rate:before{background:#fb625d}.combined-chart{color:#b6c8ca;margin-top:0}.split-card{margin-top:12px;padding:18px}.split-card .chart-heading{margin-bottom:16px}.split-table th,.split-table td{padding-inline:11px}.map-card{margin-top:12px;padding:20px}.map-card h2{color:#eaf5f2;margin:8px 0 6px;font-size:17px}.map-card p{color:#82999d;margin:0;font-size:12px}@media (width<=1100px){.sidebar{flex-basis:205px;width:205px}.workspace{padding-inline:20px}.metric-grid,.detail-metric-grid{grid-template-columns:repeat(3,minmax(0,1fr))}}@media (width<=760px){.app-shell{display:block}.sidebar{border-bottom:1px solid #8daab524;border-right:0;width:100%;padding:16px}.main-nav{gap:4px;margin-top:21px;display:flex;overflow-x:auto}.nav-item{border-bottom:2px solid #0000;border-left:0;border-radius:7px;flex:none;padding:9px 10px}.nav-active{border-bottom-color:#24d98f;border-left:0}.sidebar-sync{display:none}.workspace{padding:18px 14px 28px}.topbar-context{display:none}.metric-grid,.detail-metric-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.metric-card{min-height:120px;padding:13px}.metric-value{font-size:24px}.dashboard-grid{display:block}.facts-panel,.chart-row{margin-top:12px}.chart-row{display:block}.chart-row .chart-card+.chart-card{margin-top:12px}.page-heading{align-items:flex-start}.page-heading h1,.detail-heading h1{font-size:26px}.analysis-grid{display:block}.analysis-grid>*+*{margin-top:12px}.trends-grid{display:block}.trends-grid>*+*{margin-top:12px}.record-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (width<=460px){.athlete-avatar{width:41px;height:41px}.topbar h1{font-size:16px}.metric-grid{gap:8px}.metric-label{font-size:10px}.metric-value{font-size:20px}.login-card{padding:28px 23px}.detail-metric-grid{gap:8px}.activity-table th,.activity-table td{padding-inline:12px}}
