:root{color-scheme:light;--ink:#202723;--muted:#657169;--line:#e0e5df;--paper:#f5f7f3;--white:#fff;--lime:#b9ef52;--forest:#183d30;--blue:#426ee0;--orange:#ba7532;--radius:18px;font-family:Inter,ui-sans-serif,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;font-size:16px}*{box-sizing:border-box}body{margin:0;background:var(--paper);color:var(--ink)}button,input,textarea,select{font:inherit}button,a,input,textarea,select{-webkit-tap-highlight-color:transparent}button{cursor:pointer}button:disabled{opacity:.55;cursor:wait}button:focus-visible,a:focus-visible,input:focus-visible,textarea:focus-visible,select:focus-visible{outline:3px solid #5278d7;outline-offset:3px}a{color:var(--forest)}button{border:1px solid var(--line);background:white;border-radius:10px;padding:10px 15px;color:var(--ink);font-weight:600;font-size:.875rem;display:inline-flex;align-items:center;justify-content:center;gap:8px}button:hover{background:#f1f5eb}.primary{background:var(--forest);border-color:var(--forest);color:white}.primary:hover{background:#26513f}.lime{background:var(--lime);color:#16331e;border:0}.lime:hover{background:#a9e13b}.quiet{background:transparent}.danger{color:#a73030}.shell{display:grid;grid-template-columns:224px 1fr;min-height:100vh}.sidebar{background:#16261f;color:#c4cfc5;padding:36px 22px;position:fixed;inset:0 auto 0 0;width:224px;display:flex;flex-direction:column}.brand{display:flex;align-items:center;gap:11px;color:white;font-size:1.4rem;font-weight:750;letter-spacing:3px}.brand img{width:34px;height:34px}.sidebar .eyebrow{color:#7f9689;margin:40px 12px 12px}.nav{display:flex;flex-direction:column;gap:5px}.nav button{border:0;color:#c4cfc5;background:transparent;justify-content:flex-start;padding:13px 14px;font-size:.9375rem;font-weight:500}.nav button:hover{background:#22382b}.nav button.active{background:var(--lime);color:#132819;font-weight:650}.nav svg{width:19px;height:19px;stroke:currentColor;fill:none;stroke-width:1.7}.sidebar-bottom{margin-top:auto;padding-top:36px}.profile{display:flex;align-items:center;gap:10px;padding:18px 2px;border-top:1px solid #35483b}.avatar{height:36px;width:36px;background:#34493a;border-radius:50%;display:grid;place-items:center;color:#d7e2d4;font-size:.8125rem}.profile small{color:#9fb1a4}.main{grid-column:2;min-width:0;padding:34px 42px 48px;max-width:1700px;width:100%;margin:0 auto}.topline{display:flex;align-items:center;justify-content:space-between;margin-bottom:32px;gap:16px}.breadcrumb{font-size:.875rem;color:var(--muted)}.breadcrumb span{color:var(--ink);margin-left:10px}.top-date{font-size:.875rem;color:var(--muted)}.heading{display:flex;justify-content:space-between;align-items:flex-start;gap:20px;margin-bottom:25px}.heading h1{font-size:2.2rem;font-weight:650;letter-spacing:-1.3px;margin:0 0 8px}.heading p{margin:0;color:var(--muted);line-height:1.6}.actions{display:flex;gap:8px;flex-wrap:wrap}.eyebrow{font-size:.75rem;font-weight:700;letter-spacing:1.6px;text-transform:uppercase}.overview-grid{display:grid;grid-template-columns:minmax(0,1.8fr) minmax(280px,1fr);gap:22px}.hero{background:var(--forest);color:#eef6ed;border-radius:var(--radius);padding:27px 30px;position:relative;overflow:hidden;min-height:247px;display:flex;flex-direction:column}.hero .eyebrow{color:#bacebe}.hero h2{font-size:1.75rem;font-weight:560;margin:21px 0 8px;letter-spacing:-.6px}.hero .workout-values{display:flex;gap:30px;margin:13px 0 22px}.hero .workout-values strong{font-size:2.25rem;font-weight:550;letter-spacing:-1px}.hero .workout-values small{color:#bacebe;font-size:.875rem;margin-left:7px}.hero-foot{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-top:auto}.hero-foot p{font-size:.875rem;color:#bfd0c4;margin:0;max-width:330px;line-height:1.5}.hero .track{position:absolute;right:-64px;top:-8px;width:250px;height:290px;opacity:.12;pointer-events:none}.hero .track path{stroke:#c9f19c;stroke-width:2;fill:none}.hero>*:not(.track){z-index:1}.card{background:var(--white);border:1px solid var(--line);border-radius:var(--radius);padding:25px;min-width:0}.card h2{font-size:1.06rem;font-weight:650;letter-spacing:-.2px;margin:0}.card-head{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:22px}.card-head a,.linkbtn{color:var(--forest);font-weight:650;font-size:.8125rem;border:0;padding:0;background:transparent}.checkin-card{display:flex;flex-direction:column}.checkin-card p{color:var(--muted);line-height:1.65;margin:16px 0}.checkin-card button{align-self:flex-start;margin-top:auto}.checkin-scale{display:flex;gap:7px;margin:0 0 20px}.checkin-scale span{flex:1;height:6px;background:#e9eee6;border-radius:3px}.checkin-scale span.filled{background:#a7d85a}.metrics{display:grid;grid-template-columns:repeat(4,1fr);gap:16px;margin:22px 0}.metric{padding:21px 23px;background:var(--white);border:1px solid var(--line);border-radius:14px}.metric .label{color:var(--muted);font-size:.875rem;display:flex;justify-content:space-between;gap:8px}.metric strong{display:block;font-size:2.05rem;font-weight:570;margin:15px 0 9px;letter-spacing:-1px}.metric strong small{font-size:.875rem;font-weight:400;letter-spacing:0;color:var(--muted);margin-left:5px}.metric .meta{font-size:.75rem;color:var(--muted);line-height:1.5}.lower-grid{display:grid;grid-template-columns:minmax(0,1.8fr) minmax(280px,1fr);gap:22px}.chart-wrap{min-height:210px;display:flex;align-items:center}.chart{width:100%;height:auto;overflow:visible}.chart text{font-family:inherit;font-size:12px;fill:#738077}.chart .bar{fill:#9ec874}.chart .bar.peak{fill:#193e30}.chart .gridline{stroke:#edf0eb}.legend{font-size:.75rem;color:var(--muted);display:flex;align-items:center;gap:7px}.legend i{width:8px;height:8px;display:inline-block;background:#9ec874;border-radius:2px}.note{font-size:.8125rem;color:var(--muted);line-height:1.6}.source-note{border-top:1px solid var(--line);padding-top:13px;margin:15px 0 0}.session-list{display:flex;flex-direction:column}.session-row{display:flex;align-items:center;gap:13px;padding:16px 0;border-bottom:1px solid #edf0eb}.session-row:last-child{border:0;padding-bottom:0}.date-box{width:42px;flex-shrink:0;text-align:center}.date-box small{display:block;color:var(--muted);font-size:.6875rem;letter-spacing:.7px;text-transform:uppercase}.date-box strong{display:block;font-size:1.35rem;font-weight:550;margin-top:2px}.sport-icon{width:39px;height:39px;border-radius:12px;background:#eff4e8;color:#526c40;display:grid;place-items:center;flex-shrink:0}.sport-icon.cycling{background:#eaf0ff;color:var(--blue)}.session-main{flex:1;min-width:0}.session-main b{display:block;font-size:.875rem;font-weight:600;line-height:1.4}.session-main small{display:block;color:var(--muted);font-size:.75rem;margin-top:4px;line-height:1.4}.session-row button{padding:7px;border:0;font-size:1.05rem}.badge{display:inline-flex;padding:5px 9px;border-radius:5px;background:#eff3eb;color:#56614f;font-size:.6875rem;font-weight:650;letter-spacing:.4px;white-space:nowrap}.badge.blue{background:#ebf0ff;color:#4862a8}.badge.warning{background:#fff3dd;color:#946320}.badge.good{background:#e5f2d9;color:#41682c}.connection-strip{display:flex;flex-wrap:wrap;gap:17px;align-items:center;font-size:.8125rem;color:var(--muted);margin:24px 2px 0}.connection-strip button{margin-left:auto;padding:0;border:0;background:transparent;font-size:.8125rem}.connection-strip span{display:flex;align-items:center;gap:7px}.connection-strip i{width:6px;height:6px;background:#9ca69a;border-radius:50%}.connection-strip i.on{background:#61a153}.banner{padding:13px 17px;background:#ecf2e4;border:1px solid #dce8cc;border-radius:10px;font-size:.875rem;line-height:1.5;margin-bottom:20px;display:flex;align-items:center;justify-content:space-between;gap:12px}.calendar-tools{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:20px}.calendar-tools strong{font-size:1.125rem}.calendar{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));border-top:1px solid var(--line);border-left:1px solid var(--line);background:white;border-radius:12px;overflow:hidden}.day-name{padding:13px;text-align:center;font-size:.75rem;font-weight:600;color:var(--muted);border-right:1px solid var(--line);border-bottom:1px solid var(--line)}.day{min-height:140px;border-right:1px solid var(--line);border-bottom:1px solid var(--line);padding:10px;display:flex;flex-direction:column;gap:6px}.day.dim{background:#f8faf6;color:#aaa}.day.today{background:#f5fbe9}.day-top{display:flex;align-items:center;justify-content:space-between;font-size:.8125rem;margin-bottom:5px}.day-top button{padding:0 4px;background:transparent;border:0;color:#84917f;font-weight:400}.day.today .day-number{background:var(--forest);color:white;border-radius:50%;height:26px;width:26px;display:grid;place-items:center}.calendar-session{width:100%;display:block;text-align:left;background:#edf4e4;border:0;border-left:3px solid #7ba947;border-radius:5px;padding:8px;font-size:.75rem;font-weight:550;line-height:1.4}.calendar-session.cycling{background:#ecf1ff;border-color:#7a96df}.calendar-session.completed{opacity:.65}.calendar-session small{display:block;font-size:.6875rem;margin-top:3px;font-weight:400}.empty-day{font-size:.6875rem;color:#939d91;margin-top:auto;line-height:1.4}.plan-source{padding-top:15px;color:var(--muted);font-size:.8125rem;line-height:1.6}.two-column{display:grid;grid-template-columns:1fr 1fr;gap:22px}.settings-card{margin-bottom:20px}.settings-card h2{font-size:1.2rem;margin:0 0 9px}.settings-card p{color:var(--muted);line-height:1.6;font-size:.9375rem}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:15px}.field{display:flex;flex-direction:column;gap:7px;margin-bottom:15px;min-width:0}.field.full{grid-column:1/-1}.field label{font-size:.875rem;font-weight:550}.field input,.field textarea,.field select{width:100%;padding:11px 12px;border:1px solid #cfd7cc;border-radius:8px;background:white;color:var(--ink);font-size:.9375rem}.field textarea{resize:vertical;min-height:100px;line-height:1.5}.field small{font-size:.75rem;color:var(--muted);line-height:1.5}.code{font-family:ui-monospace,SFMono-Regular,Consolas,monospace;font-size:.75rem;word-break:break-all;background:#f3f5f0;padding:10px 12px;border-radius:6px}.error{color:#a32d30;background:#fff0f0;padding:11px 14px;border-radius:8px;font-size:.875rem;line-height:1.5}.empty{padding:32px 20px;text-align:center;color:var(--muted);line-height:1.65}.empty h3{color:var(--ink);font-weight:550;margin:0 0 10px}.chat-layout{display:grid;grid-template-columns:minmax(0,2fr) minmax(260px,1fr);gap:22px}.chat-card{display:flex;flex-direction:column;min-height:570px}.messages{flex:1;max-height:570px;overflow:auto;padding-right:8px}.message{margin:0 0 20px;padding:16px 18px;background:#f0f4eb;border-radius:12px;line-height:1.7;white-space:pre-wrap;font-size:.9375rem;overflow-wrap:anywhere}.message.user{background:#edf1f8;margin-left:42px}.message-label{font-size:.6875rem;font-weight:700;letter-spacing:1.2px;color:var(--muted);margin-bottom:8px}.chat-form{border-top:1px solid var(--line);margin-top:20px;padding-top:18px;display:flex;gap:10px}.chat-form textarea{flex:1;border:1px solid var(--line);border-radius:10px;padding:12px;resize:vertical;min-height:53px;max-height:180px;font-size:.9375rem}.chat-form button{align-self:flex-end;height:50px}.prompts{display:flex;flex-direction:column;gap:10px;margin-top:25px}.prompts button{font-weight:400;line-height:1.5;text-align:left;justify-content:flex-start}.proposal{border:1px solid #d8e7bd;background:#f4f9eb;padding:18px;border-radius:12px;margin:15px 0}.proposal h3{font-size:1rem;margin:0 0 8px}.proposal p{font-size:.875rem;line-height:1.6}.history-item{padding:18px 0;border-bottom:1px solid var(--line);display:flex;justify-content:space-between;gap:16px}.history-item p{font-size:.875rem;color:var(--muted);line-height:1.5;margin:6px 0}.history-item button{align-self:center;white-space:nowrap}.table-wrap{overflow:auto}.data-table{width:100%;border-collapse:collapse;font-size:.875rem}.data-table th{text-align:left;padding:12px 10px;color:var(--muted);font-weight:500;border-bottom:1px solid var(--line);white-space:nowrap}.data-table td{padding:14px 10px;border-bottom:1px solid #edf0eb;line-height:1.4}.details-copy{white-space:pre-wrap;line-height:1.7;font-size:.875rem;max-height:420px;overflow:auto}.login-page{min-height:100vh;display:grid;grid-template-columns:1fr 1fr}.login-art{background:var(--forest);color:white;padding:12%;display:flex;flex-direction:column;justify-content:center}.login-art h1{font-size:3.2rem;line-height:1.15;font-weight:500;letter-spacing:-2px;margin:65px 0 25px;max-width:460px}.login-art p{color:#bdcfbe;font-size:1.05rem;line-height:1.8;max-width:390px}.login-form{display:flex;justify-content:center;align-items:center;padding:45px}.login-inner{max-width:400px;width:100%}.login-inner h2{font-size:1.9rem;font-weight:550;letter-spacing:-.6px}.login-inner p{color:var(--muted);line-height:1.6}.login-inner button{width:100%;margin-top:9px}.loading{padding:50px;color:var(--muted)}dialog{border:1px solid var(--line);border-radius:18px;padding:28px;width:600px;max-width:calc(100% - 28px);max-height:90vh;color:var(--ink);box-shadow:0 20px 100px #12271f22}dialog::backdrop{background:#14231dcc;backdrop-filter:blur(3px)}.modal-heading{display:flex;justify-content:space-between;align-items:center;margin-bottom:23px;gap:16px}.modal-heading h2{font-size:1.35rem;margin:0;font-weight:600}.modal-heading button{border:0;padding:5px;background:transparent;font-size:1.3rem}.modal-actions{display:flex;justify-content:flex-end;gap:10px;margin-top:12px}.import-preview{max-height:300px;overflow:auto;margin:20px 0}.file-zone{border:1px dashed #bacab0;border-radius:12px;padding:25px;background:#f8faf4;margin:20px 0}.file-zone input{max-width:100%;font-size:.875rem}.tagline{font-size:.75rem;color:#85947f;text-transform:uppercase;letter-spacing:1.8px}.toast-show{position:fixed;bottom:25px;left:50%;transform:translateX(-50%);background:#173d2e;color:white;padding:13px 20px;border-radius:10px;z-index:1000;max-width:90vw;box-shadow:0 4px 30px #10271822;font-size:.875rem}.text-muted{color:var(--muted)}.mt{margin-top:22px}.sr-only{position:absolute;left:-9999px}.health-source{display:flex;justify-content:space-between;align-items:center;gap:12px;margin:20px 0 0}.health-source select{border:1px solid var(--line);padding:8px 10px;border-radius:8px;background:white;font-size:.875rem}
@media(min-width:1450px){.main{padding:40px 55px}.hero{min-height:278px}.chart-wrap{min-height:240px}}
@media(max-width:1100px){.sidebar{width:190px;padding:30px 15px}.shell{grid-template-columns:190px 1fr}.main{padding:26px}.overview-grid,.lower-grid{grid-template-columns:1.5fr 1fr}.metrics{gap:10px}.metric{padding:18px 16px}.heading h1{font-size:1.9rem}.hero{padding:24px}.chat-layout{grid-template-columns:1fr}.calendar-session{font-size:.6875rem;padding:6px}.day{padding:7px}.two-column{grid-template-columns:1fr}}
@media(max-width:800px){.shell{display:block}.sidebar{position:relative;inset:auto;width:100%;padding:17px 20px;display:block}.brand{font-size:1.15rem}.brand img{width:29px;height:29px}.sidebar .eyebrow,.sidebar-bottom{display:none}.nav{flex-direction:row;overflow:auto;margin-top:17px;gap:4px}.nav button{font-size:.8125rem;padding:10px 11px;white-space:nowrap}.nav svg{width:16px;height:16px}.main{padding:24px 20px}.topline{margin-bottom:23px}.heading{align-items:flex-start}.heading h1{font-size:1.75rem}.heading p{font-size:.875rem}.heading .actions{justify-content:flex-end}.overview-grid,.lower-grid{grid-template-columns:1fr}.checkin-card{display:none}.metrics{grid-template-columns:repeat(2,1fr)}.hero{min-height:250px}.day-name{padding:9px 2px;font-size:.6875rem}.day{min-height:110px;padding:5px}.calendar-session{font-size:.625rem;padding:5px 3px;border-left-width:2px;word-break:normal;overflow-wrap:anywhere}.calendar-session small{font-size:.625rem}.empty-day{font-size:.625rem}.calendar-tools{flex-wrap:wrap}.calendar-tools .actions{gap:4px}.calendar-tools button{padding:8px 10px}.login-page{grid-template-columns:1fr}.login-art{padding:30px;min-height:auto}.login-art h1{font-size:2rem;margin:30px 0 12px;max-width:400px}.login-art p{margin:0;font-size:.875rem}.login-form{padding:30px 22px}.connection-strip button{margin-left:0}.top-date{font-size:.75rem}.two-column{grid-template-columns:1fr}.metric strong{font-size:1.9rem}}
@media(max-width:440px){.heading{flex-direction:column}.heading .actions{justify-content:flex-start}.main{padding:20px 14px}.nav button{font-size:.75rem;padding:10px}.nav svg{display:none}.card{padding:20px}.form-grid{grid-template-columns:1fr}.hero{padding:23px}.hero-foot{gap:10px}.hero-foot p{font-size:.75rem}.hero .workout-values strong{font-size:1.9rem}.calendar .empty-day{display:none}.day{min-height:95px}.day-top button{font-size:.7rem}.chat-form{flex-wrap:wrap}.chat-form textarea{min-width:0}.banner{font-size:.8125rem}}
@media(max-width:900px){.calendar{grid-template-columns:repeat(2,minmax(0,1fr))}.day-name,.day.dim{display:none}.day{min-height:116px;padding:12px}.day-top{font-size:.875rem}.calendar-session{font-size:.875rem;padding:10px}.calendar-session small,.empty-day{font-size:.75rem}.calendar .empty-day{display:block}.day-top button{font-size:1rem}}
@media(max-width:500px){.calendar{grid-template-columns:1fr}.day{min-height:86px}.calendar-session{font-size:.875rem}.nav button{font-size:.8125rem}.metric .meta,.note{font-size:.8125rem}}
@media(prefers-reduced-motion:no-preference){button{transition:background .14s ease}.card,.metric,.hero{animation:arrive .3s ease-out both}@keyframes arrive{from{opacity:.6;transform:translateY(4px)}to{opacity:1;transform:translateY(0)}}}
