:root{color-scheme:light;font-family:Trebuchet MS,Segoe UI,Tahoma,sans-serif;--bg-top: #1f58b0;--bg-mid: #2c7ac5;--bg-fog: #f4f9ff;--panel-border: rgba(43, 101, 177, .14);--text-main: #2f3f58;--text-muted: #5f6e85;--accent: #2564d9;--ink: #20365f;--sun: #ffd866;--mint: #83e7c3}*{box-sizing:border-box}html,body,#root{margin:0;min-height:100%}body{min-height:100vh;color:var(--text-main);background:radial-gradient(circle at 85% -15%,rgba(255,255,255,.45),transparent 36%),radial-gradient(circle at 15% 12%,rgba(121,183,255,.42),transparent 34%),linear-gradient(170deg,var(--bg-top) 0%,var(--bg-mid) 34%,var(--bg-fog) 76%)}button,input,select,textarea{font:inherit}.login-screen{position:relative;min-height:100vh;display:grid;place-items:center;overflow:hidden;padding:clamp(20px,4vw,40px);background-color:#95d4ff;background-size:cover;background-position:center;background-repeat:no-repeat}.login-backdrop{position:absolute;inset:0;background:linear-gradient(180deg,#0d33732e,#08235675),radial-gradient(circle at 12% 22%,rgba(255,244,164,.32),transparent 0 18%),radial-gradient(circle at 86% 16%,rgba(255,255,255,.2),transparent 0 15%),radial-gradient(circle at 76% 78%,rgba(131,231,195,.22),transparent 0 14%),radial-gradient(circle at 20% 18%,rgba(255,245,174,.34),transparent 22%),radial-gradient(circle at 82% 22%,rgba(255,255,255,.24),transparent 22%)}.login-backdrop:after{content:"";position:absolute;inset:0;background-image:radial-gradient(rgba(255,255,255,.18) 1px,transparent 1px);background-size:18px 18px;opacity:.22;mix-blend-mode:soft-light}.login-backdrop-strava{background:linear-gradient(180deg,#082a6333,#08235685),radial-gradient(circle at 80% 18%,rgba(255,165,87,.22),transparent 0 14%),radial-gradient(circle at 20% 78%,rgba(125,196,255,.22),transparent 0 16%),radial-gradient(circle at 20% 18%,rgba(255,245,174,.34),transparent 22%),radial-gradient(circle at 82% 22%,rgba(255,255,255,.24),transparent 22%)}.login-card{position:relative;z-index:1;width:min(560px,100%);padding:clamp(24px,4vw,38px);border-radius:30px;border:3px solid rgba(32,54,95,.12);box-shadow:0 28px 80px #10275342,inset 0 1px #ffffffb8;background:radial-gradient(circle at top right,rgba(255,216,102,.22),transparent 28%),linear-gradient(180deg,#fffffff0,#f5fbfff5)}.login-card-auth{max-width:580px}.login-card-loading{text-align:center}.login-badge{display:inline-flex;align-items:center;gap:12px;padding:10px 14px 10px 10px;border-radius:999px;background:#ffffffeb;border:2px solid rgba(32,54,95,.12);box-shadow:0 10px 30px #1f3c6d1f;color:#28426f;font-size:.86rem;font-weight:800}.login-badge-art{width:42px;height:42px;border-radius:14px;object-fit:cover;background:linear-gradient(180deg,#d8f0ff,#b7e1ff)}.login-kicker{margin:20px 0 0;color:#23529b;text-transform:uppercase;letter-spacing:.14em;font-size:.78rem;font-weight:900}.login-card h1{margin:12px 0 0;color:var(--ink);font-size:clamp(2rem,5vw,3.6rem);line-height:.97;max-width:10ch}.login-copy{margin:16px 0 0;font-size:1rem;line-height:1.7;color:#4c6289;max-width:48ch}.login-button{margin-top:24px;width:100%;justify-content:center;padding:16px 20px;border-radius:18px;border:0;background:linear-gradient(180deg,#2267d6,#174ea8);color:#fff;box-shadow:0 16px 34px #154aa057;font-size:1rem;font-weight:900;letter-spacing:.01em}.onboarding-card{width:min(980px,100%);padding:clamp(24px,4vw,34px)}.onboarding-topbar{display:flex;justify-content:space-between;align-items:center;gap:16px}.onboarding-brand-lockup{color:var(--ink)}.onboarding-brand{color:#2b59a5}.onboarding-caption{margin:4px 0 0;color:#54709c;font-size:.86rem;font-weight:700}.mini-ghost{background:#2353a014;color:#214e9a;border-color:#2353a029}.onboarding-grid{display:grid;grid-template-columns:minmax(0,1.3fr) minmax(260px,.7fr);gap:24px;margin-top:24px;align-items:stretch}.onboarding-copy-block h1{max-width:12ch}.login-badge-strava{background:#fffffff5}.spark-badge{width:28px;height:28px;display:inline-grid;place-items:center;border-radius:999px;background:linear-gradient(180deg,#ff9553,#ff6f3b);color:#fff;font-weight:900;box-shadow:0 8px 18px #ff6f3b47}.onboarding-status{margin-top:16px}.onboarding-actions{display:flex;gap:12px;align-items:center}.onboarding-panel{position:relative;overflow:hidden;display:grid;align-content:center;gap:14px;padding:24px;border-radius:24px;border:1px solid rgba(36,87,165,.14);background:radial-gradient(circle at top right,rgba(255,216,102,.42),transparent 22%),linear-gradient(180deg,#eff8ffe6,#e0efffeb)}.onboarding-panel:before{content:"";position:absolute;inset:auto -48px -48px auto;width:180px;height:180px;border-radius:50%;background:#2564d914}.feature-chip{position:relative;z-index:1;padding:14px 16px;border-radius:18px;background:#ffffffd1;color:#27426f;font-weight:800;border:1px solid rgba(37,100,217,.08);box-shadow:0 10px 24px #17367014}.login-button:hover{transform:translateY(-1px)}.page-shell{min-height:100vh;padding:clamp(16px,3vw,28px)}.dashboard-shell{width:min(1220px,100%);margin:0 auto}.topbar{display:flex;justify-content:space-between;align-items:flex-start;gap:20px;color:#fff;margin-bottom:18px;animation:rise-in .5s ease}.brand-lockup{display:flex;align-items:center;gap:14px}.brand-mark{width:58px;height:58px;border-radius:18px;object-fit:cover;border:2px solid rgba(255,255,255,.3);box-shadow:0 10px 20px #0d285a3d;background:linear-gradient(180deg,#d7f0ff,#b7e1ff)}.auth-actions{display:flex;gap:10px;align-items:center}.brand{margin:0;font-size:.92rem;letter-spacing:.08em;text-transform:uppercase;font-weight:700;opacity:.95}h1{margin:6px 0 0;font-size:clamp(1.6rem,3.2vw,2.3rem);line-height:1.1;text-wrap:balance}.pill{border-radius:999px;padding:9px 16px;border:1px solid rgba(255,255,255,.3);background:#113d8359;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);font-size:.84rem;font-weight:700;white-space:nowrap}.action-button{display:inline-flex;align-items:center;justify-content:center;border-radius:10px;padding:9px 14px;font-size:.88rem;font-weight:700;cursor:pointer;border:1px solid transparent;transition:transform .12s ease,box-shadow .12s ease,filter .12s ease}.action-button:hover{transform:translateY(-1px);filter:saturate(1.03)}.action-button.primary{background:linear-gradient(180deg,#fff,#e8f1ff);color:#1d4ea6;border-color:#ffffff61}.action-button.ghost{background:#ffffff29;color:#fff;border-color:#ffffff57}.status-message{margin:0 0 12px;border-radius:12px;background:#ffffffdb;border:1px solid rgba(43,101,177,.2);color:#234b91;padding:10px 12px;font-weight:700}.empty-state{padding:20px;margin-bottom:12px;display:grid;gap:8px}.empty-state h2{margin:0;font-size:1.15rem;color:#22437b}.empty-state p{margin:0;color:var(--text-muted)}.widget{background:#ffffffed;border:1px solid var(--panel-border);border-radius:16px;box-shadow:0 12px 36px #0e244714}.week-widget{padding:18px;display:flex;justify-content:space-between;align-items:center;gap:20px;animation:rise-in .68s ease}.widget-title{margin:0;font-size:1.12rem;font-weight:700}.widget-subtitle{margin:4px 0 0;font-size:.88rem;color:var(--text-muted)}.week-controls{display:flex;align-items:center;gap:12px}.week-label{min-width:160px;text-align:center;font-weight:700;color:#244578}.nav-button{border:1px solid rgba(44,103,185,.2);background:linear-gradient(180deg,#fff,#f4f8ff);color:#1b4faa;border-radius:10px;padding:8px 12px;font-weight:700;cursor:pointer;transition:transform .12s ease,box-shadow .12s ease}.nav-button:hover{transform:translateY(-1px);box-shadow:0 6px 14px #2450992e}.stats-grid{margin-top:14px;display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:12px;animation:rise-in .86s ease}.stat-card{padding:14px;min-height:102px;display:flex;flex-direction:column;justify-content:center}.stat-label{margin:0;font-size:.84rem;color:var(--text-muted);letter-spacing:.02em}.stat-value{margin:8px 0 0;font-size:clamp(1rem,1.8vw,1.25rem);font-weight:700;color:#233a66;text-wrap:balance}.breakdown-widget{margin-top:16px;padding:18px;animation:rise-in 1.04s ease}.breakdown-header{display:flex;justify-content:space-between;align-items:flex-start;gap:16px}.total-time{margin:4px 0 0;color:#3a4f74;font-weight:700}.breakdown-content{margin-top:16px;display:grid;grid-template-columns:220px 1fr;gap:20px;align-items:center}.donut-wrapper{display:grid;place-items:center}.donut{width:176px;aspect-ratio:1;border-radius:50%;display:grid;place-items:center;box-shadow:inset 0 0 0 1px #1e4e9b1a}.donut-center{width:112px;aspect-ratio:1;border-radius:50%;background:#fff;border:1px solid rgba(30,78,155,.14);display:grid;place-content:center;text-align:center}.donut-center span{font-size:1.42rem;line-height:1;font-weight:800;color:#27406b}.donut-center small{margin-top:2px;color:var(--text-muted);font-size:.78rem;font-weight:700}.zone-legend{margin:0;padding:0;list-style:none;display:grid;gap:10px}.zone-legend li{display:grid;grid-template-columns:14px 1fr auto auto;align-items:center;gap:10px;padding:10px 12px;border-radius:12px;background:linear-gradient(180deg,#fff,#f7faff);border:1px solid rgba(30,78,155,.1)}.zone-dot{width:10px;height:10px;border-radius:50%}.zone-name{font-weight:700;color:#2f466f}.zone-time,.zone-percent{font-variant-numeric:tabular-nums;color:var(--text-muted);font-weight:700}.loading-text{margin-top:12px}@keyframes rise-in{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}@media(max-width:1180px){.stats-grid{grid-template-columns:repeat(4,minmax(0,1fr))}}@media(max-width:840px){.onboarding-grid{grid-template-columns:1fr}.onboarding-topbar{flex-direction:column;align-items:flex-start}.login-card h1{max-width:none}.week-widget{flex-direction:column;align-items:stretch}.week-controls{justify-content:space-between}.breakdown-content{grid-template-columns:1fr}.auth-actions{width:100%;justify-content:flex-end;flex-wrap:wrap}.topbar{flex-direction:column}.donut-wrapper{justify-self:center}}@media(max-width:680px){.login-screen{align-items:end}.login-card{border-radius:24px}.login-badge{display:grid;grid-template-columns:42px 1fr;align-items:center}.onboarding-card{padding:22px}.onboarding-actions{flex-direction:column;align-items:stretch}.stats-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.week-label{min-width:110px;font-size:.82rem}.nav-button{padding:8px 10px;font-size:.8rem}.zone-legend li{grid-template-columns:14px 1fr auto;row-gap:4px}.zone-percent{grid-column:2 / -1;justify-self:end;font-size:.8rem}}
