:root{color:#17251f;font-synthesis:none;text-rendering:optimizelegibility;--ink:#17251f;--muted:#65716b;--paper:#fffdf7;--paper-strong:#fff;--line:#d9ded6;--green:#1e6a4b;--green-soft:#dcebe1;--orange:#e9784d;--orange-soft:#f9dfd3;--shadow:0 22px 65px #1f30281c;background:#f4f1e8;font-family:Inter,ui-sans-serif,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif}*{box-sizing:border-box}body{min-width:320px;min-height:100vh;margin:0}button,input,textarea{font:inherit}button{color:inherit}button:focus-visible,input:focus-visible,textarea:focus-visible{outline-offset:2px;outline:3px solid #1e6a4b47}h1,h2,h3,p{margin-top:0}h1{letter-spacing:-.055em;font-size:clamp(2rem,4vw,4.6rem);line-height:.98}h2{letter-spacing:-.025em;font-size:1.35rem}h3{letter-spacing:.01em;font-size:.95rem}.brand{letter-spacing:-.035em;align-items:center;gap:.65rem;font-size:1.15rem;font-weight:800;display:inline-flex}.brand-mark{width:2rem;height:2rem;color:var(--paper);background:var(--ink);box-shadow:inset 0 0 0 6px var(--orange);border-radius:50%;place-items:center;display:grid}.eyebrow{color:var(--green);letter-spacing:.14em;text-transform:uppercase;margin-bottom:.55rem;font-size:.74rem;font-weight:800}.primary-button,.quiet-button,.danger-button,.text-button,.icon-button,.nav-button{cursor:pointer;border:0;font-weight:750}.primary-button{color:#fff;background:var(--ink);border-radius:.8rem;padding:.78rem 1.05rem;box-shadow:0 8px 20px #17251f29}.primary-button:hover{background:var(--green);transform:translateY(-1px)}.primary-button:disabled{cursor:wait;opacity:.6;transform:none}.quiet-button{background:var(--green-soft);color:var(--green);border-radius:.7rem;padding:.66rem .85rem}.quiet-button:hover{background:#cce2d4}.danger-button{color:#a3422d;background:0 0;border-radius:.6rem;padding:.55rem .7rem}.danger-button:hover{background:var(--orange-soft)}.text-button{color:var(--green);text-underline-offset:.2rem;background:0 0;padding:.3rem 0;text-decoration:underline}.icon-button{color:var(--muted);background:#edf0eb;border-radius:.55rem;padding:.48rem .6rem;font-size:.78rem}.icon-button:hover{color:var(--ink);background:#e1e7e1}.icon-button:disabled{opacity:.4;cursor:not-allowed}.login-shell{background:radial-gradient(circle at 78% 18%,#e9784d3d,#0000 32%),radial-gradient(circle at 18% 82%,#1e6a4b2e,#0000 35%),#f4f1e8;place-items:center;min-height:100vh;padding:2rem;display:grid}.login-card{width:min(1080px,100%);min-height:620px;box-shadow:var(--shadow);background:#fffdf7f0;border:1px solid #17251f14;border-radius:2rem;grid-template-columns:1.05fr .95fr;align-items:center;gap:2rem 5rem;padding:clamp(2rem,5vw,5rem);display:grid}.login-card>.brand{grid-column:1/-1;align-self:start}.login-copy p:not(.eyebrow){max-width:42rem;color:var(--muted);font-size:1.04rem;line-height:1.65}.login-button{justify-self:start;padding:1rem 1.3rem}.pairing-panel{background:var(--green-soft);border-radius:1.35rem;grid-column:1/-1;grid-template-columns:minmax(220px,320px) 1fr;align-items:center;gap:2.5rem;padding:1.4rem;display:grid}.pairing-panel img{border-radius:1rem;width:100%}.pairing-panel ol{color:var(--muted);padding-left:1.25rem;line-height:1.75}.pairing-actions{flex-wrap:wrap;align-items:center;gap:.9rem;display:flex}.login-footnotes{flex-wrap:wrap;grid-column:1/-1;justify-content:space-between;align-items:baseline;gap:1rem 2rem;display:flex}.privacy-note,.tester-contact{color:var(--muted);margin:0;font-size:.78rem}.tester-contact a,.dashboard-shell footer a{color:var(--green);text-underline-offset:.2rem;font-weight:800}.error-message{border-left:4px solid var(--orange);background:var(--orange-soft);color:#7d3525;border-radius:.35rem;padding:.8rem 1rem}.loading-screen{background:var(--paper);min-height:100vh;color:var(--muted);place-content:center;justify-items:center;gap:1rem;display:grid}.loading-dot{background:var(--orange);border-radius:50%;width:18px;height:18px;animation:1s ease-in-out infinite alternate pulse}@keyframes pulse{to{opacity:.45;transform:scale(.55)}}.dashboard-shell{flex-direction:column;min-height:100vh;display:flex}.topbar{z-index:10;-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px);background:#f4f1e8e0;border-bottom:1px solid #17251f1a;grid-template-columns:1fr auto 1fr;align-items:center;gap:1rem;min-height:74px;padding:.8rem clamp(1rem,3vw,3rem);display:grid;position:sticky;top:0}.topbar nav{background:#ffffff8c;border-radius:.85rem;gap:.25rem;padding:.28rem;display:flex}.topbar>.quiet-button{justify-self:end}.nav-button{color:var(--muted);background:0 0;border-radius:.62rem;padding:.58rem .9rem}.nav-button.active{background:var(--paper-strong);color:var(--ink);box-shadow:0 3px 12px #17251f14}.dashboard-main{flex:1;width:min(1500px,100%);margin:0 auto;padding:1.5rem clamp(1rem,3vw,3rem) 4rem}.dashboard-shell footer{color:var(--muted);text-align:center;padding:1rem 2rem 1.5rem;font-size:.75rem}.summary-strip{border:1px solid var(--line);background:#fffdf7c7;border-radius:1rem;grid-template-columns:repeat(4,1fr);margin-bottom:1.5rem;display:grid;overflow:hidden}.metric{border-right:1px solid var(--line);gap:.22rem;padding:1rem 1.2rem;display:grid}.metric:last-child{border-right:0}.metric strong{letter-spacing:-.04em;font-size:1.35rem}.metric span{color:var(--muted);font-size:.74rem}.workspace-grid{border:1px solid var(--line);background:var(--paper);border-radius:1.4rem;grid-template-columns:minmax(280px,.34fr) minmax(0,1fr);min-height:650px;display:grid;overflow:hidden;box-shadow:0 12px 40px #17251f0f}.collection-panel{border-right:1px solid var(--line);background:#faf9f3}.section-heading{justify-content:space-between;align-items:center;gap:1rem;padding:1.35rem 1.45rem;display:flex}.section-heading h1{margin:0;font-size:clamp(1.7rem,3vw,2.65rem)}.count-badge{background:var(--green-soft);min-width:2rem;height:2rem;color:var(--green);border-radius:999px;place-items:center;padding:0 .55rem;font-weight:800;display:grid}.session-list{border-top:1px solid var(--line);display:grid}.session-row{border:0;border-bottom:1px solid var(--line);text-align:left;cursor:pointer;background:0 0;grid-template-columns:1fr auto;gap:1rem;width:100%;padding:1rem 1.35rem;display:grid}.session-row:hover{background:#f0f1e9}.session-row.selected{background:var(--green-soft);box-shadow:inset 4px 0 var(--green)}.session-row span{gap:.25rem;display:grid}.session-row span:last-child{text-align:right}.session-row small{color:var(--muted)}.detail-panel{min-width:0;padding:clamp(1.2rem,3vw,2.5rem)}.workout-detail{gap:1.4rem;display:grid}.detail-title,.plan-card-title{justify-content:space-between;align-items:flex-start;gap:1rem;display:flex}.detail-title h2,.plan-card-title h2{margin-bottom:0}.status-pill{color:var(--muted);text-transform:capitalize;background:#edf0eb;border-radius:999px;padding:.45rem .65rem;font-size:.75rem;font-weight:800}.status-pill.saved{background:var(--green-soft);color:var(--green)}.status-pill.failed{background:var(--orange-soft);color:#8c3a27}.plot-grid{grid-template-columns:1.15fr .85fr;gap:1rem;display:grid}.plot-card{border:1px solid var(--line);background:var(--paper-strong);border-radius:1rem;min-width:0;padding:1rem}.plot-card h3{margin-bottom:.75rem}.route-map-shell{background:#e8ebe4;border-radius:.75rem;width:100%;height:280px;overflow:hidden}.route-map{width:100%;height:100%}.heart-chart{width:100%;height:auto;display:block;overflow:visible}.heart-grid{fill:none;stroke:#e8ebe4;stroke-width:1px}.heart-line{fill:none;stroke:var(--green);stroke-width:3px;stroke-linecap:round;stroke-linejoin:round}.chart-caption{color:var(--muted);justify-content:space-between;gap:.5rem;font-size:.68rem;display:flex}.chart-caption strong{color:var(--ink)}.plot-note{color:var(--muted);margin:.55rem 0 0;font-size:.7rem}.empty-plot{min-height:170px;color:var(--muted);text-align:center;place-items:center;display:grid}.evidence-row{border:1px solid var(--line);border-radius:.9rem;grid-template-columns:repeat(3,1fr);display:grid;overflow:hidden}.content-section{gap:1rem;display:grid}.content-section>.section-heading{padding-inline:0}.card-grid{grid-template-columns:repeat(auto-fill,minmax(290px,1fr));gap:1rem;display:grid}.plan-card{border:1px solid var(--line);background:var(--paper);border-radius:1rem;padding:1.2rem;box-shadow:0 10px 30px #17251f0d}.plan-card.completed{opacity:.62}.plan-card.completed h2{text-decoration:line-through}.plan-card>p{color:var(--muted);white-space:pre-wrap;line-height:1.6}.goal-progress{gap:.5rem;margin:1rem 0;display:grid}.goal-progress>div{justify-content:space-between;align-items:baseline;gap:1rem;display:flex}.goal-progress span,.goal-progress-copy{color:var(--muted);font-size:.78rem}.goal-progress progress{width:100%;height:.65rem;accent-color:var(--green);border:0;border-radius:999px;overflow:hidden}.goal-progress progress::-webkit-progress-bar{background:#e7ebe5}.goal-progress progress::-webkit-progress-value{background:var(--green)}.plan-card .route-map-shell{height:220px;margin:1rem 0}.card-actions{justify-content:flex-end;gap:.4rem;margin-top:1rem;display:flex}.editor-card{background:var(--green-soft);border:1px solid #b8cec0;border-radius:1rem;grid-template-columns:1fr 1fr;gap:1rem;padding:1.2rem;display:grid}.editor-card label{color:var(--green);gap:.45rem;font-size:.78rem;font-weight:800;display:grid}.editor-card input,.editor-card textarea,.editor-card select{background:var(--paper-strong);width:100%;color:var(--ink);border:1px solid #b9c5bd;border-radius:.65rem;padding:.72rem .78rem}.editor-card textarea{resize:vertical;min-height:88px}.wide-field{grid-column:1/-1}.editor-actions{grid-column:1/-1;justify-content:flex-end;gap:.5rem;display:flex}.route-editor{grid-template-columns:.6fr 1.4fr}.waypoint-editor{gap:.55rem;display:grid}.waypoint-heading{justify-content:space-between;align-items:center;display:flex}.waypoint-row{grid-template-columns:2rem minmax(110px,1fr) minmax(110px,.7fr) minmax(110px,.7fr) auto;align-items:center;gap:.5rem;display:grid}.waypoint-actions,.import-actions{flex-wrap:wrap;align-items:center;gap:.35rem;display:flex}.coordinate-import{background:#ffffff73;border:1px solid #b9c5bd;border-radius:.7rem;padding:.75rem}.coordinate-import summary{cursor:pointer;color:var(--green);font-weight:800}.coordinate-import p{color:var(--muted);margin:.75rem 0 .45rem;font-size:.75rem}.file-button{background:var(--paper-strong);cursor:pointer;border-radius:.7rem;width:auto;padding:.66rem .85rem;color:var(--green)!important;display:inline-flex!important}.file-button input{clip:rect(0 0 0 0);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}.waypoint-row>span{background:var(--green);color:#fff;border-radius:50%;place-items:center;width:1.8rem;height:1.8rem;font-size:.75rem;font-weight:800;display:grid}.empty-state{min-height:190px;color:var(--muted);text-align:center;place-content:center;justify-items:center;gap:.7rem;display:grid}.empty-state>span{color:var(--orange);font-size:2rem}@media (width<=900px){.login-card{grid-template-columns:1fr}.pairing-panel{grid-template-columns:minmax(190px,260px) 1fr}.topbar{grid-template-columns:1fr auto}.topbar nav{grid-area:2/1/auto/-1;justify-self:stretch}.nav-button{flex:1}.workspace-grid{grid-template-columns:1fr}.collection-panel{border-right:0;border-bottom:1px solid var(--line)}.session-list{max-height:330px;overflow-y:auto}.plot-grid{grid-template-columns:1fr}}@media (width<=620px){.login-shell{padding:0}.login-card{border:0;border-radius:0;min-height:100vh;padding:1.4rem}.pairing-panel{grid-template-columns:1fr}.pairing-panel img{justify-self:center;max-width:280px}.topbar{position:static}.topbar>.brand span:last-child{display:none}.summary-strip{grid-template-columns:1fr 1fr}.metric:nth-child(2){border-right:0}.metric:nth-child(-n+2){border-bottom:1px solid var(--line)}.evidence-row{grid-template-columns:1fr}.evidence-row .metric{border-right:0;border-bottom:1px solid var(--line)}.editor-card,.route-editor{grid-template-columns:1fr}.editor-card>*{grid-column:1}.waypoint-row{grid-template-columns:2rem 1fr 1fr}.waypoint-row input:first-of-type{grid-column:2/-1}.waypoint-actions{grid-column:2/-1;justify-self:start}}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important}}
