@import"https://fonts.googleapis.com/css2?family=DM+Mono:wght@400;500&family=DM+Sans:opsz,wght@9..40,400;9..40,500;9..40,600;9..40,700&family=Libre+Baskerville:ital,wght@0,400;0,700;1,400&display=swap";.auth-panel{max-width:480px;margin:48px auto}.signin-brand{display:flex;justify-content:center;margin:28px auto 0}.signin-brand img{display:block;width:min(280px,100%);height:auto}.auth-panel fieldset{border:0;padding:0;margin:0}.auth-panel p{line-height:1.5}.auth-divider{display:flex;align-items:center;gap:12px;margin:18px 0;color:#9daf9f;font-size:12px}.auth-divider:before,.auth-divider:after{content:"";flex:1;height:1px;background:#3b554a}.google-button.disabled{pointer-events:none;opacity:.5}.google-unavailable{color:#9daf9f;font-size:13px}.google-placeholder{display:flex;width:320px;max-width:100%;align-items:center;justify-content:space-between;padding:11px 14px;color:#83948a;border:1px solid #53635b;border-radius:4px;background:#1a2420;text-align:left}.google-placeholder span{font-size:11px}.google-native-button{width:min(100%,320px);padding:11px 14px;color:#233028;border:1px solid #67796f;border-radius:6px;background:#f5f7f3;font-weight:600}.quick-log-toggle{margin-top:35px;padding:12px 16px;color:#142010;border:0;border-radius:6px;background:#c4fa64;font-weight:700}.quick-log-panel{margin-top:-20px}.sync-status{display:flex;align-items:center;flex-wrap:wrap;gap:12px;padding:12px 16px;border:1px solid #466055;border-radius:8px;color:#c4fa64;background:#17231f;font-size:13px}.sync-status p{flex-basis:100%;margin:0}:root{font-family:DM Sans,sans-serif;color:#e9eee8;background:#101817;font-synthesis:none}*{box-sizing:border-box}html,body,#root{min-height:100%}body{margin:0;overflow-x:hidden;background:radial-gradient(circle at 80% 0%,#274238 0,transparent 33rem),#101817}button,input{font:inherit}button{cursor:pointer}.app-shell{width:min(100% - 40px,1120px);margin:auto;padding:28px 0 48px}header{display:flex;justify-content:space-between;align-items:center;gap:20px;border-bottom:1px solid #355046;padding-bottom:20px}.brand img{display:block;width:170px;height:72px;object-fit:contain}.brand{padding:0;color:#f3f6ee;border:0;background:transparent;font:700 29px Libre Baskerville,serif;letter-spacing:-1.8px;text-decoration:none}.brand span{color:#b8f252}header p,footer,.eyebrow{color:#aebdb4;font:500 11px DM Mono,monospace;text-transform:uppercase;letter-spacing:.1em}nav{display:flex;gap:5px}nav button{color:#aebdb4;border:0;border-radius:5px;background:transparent;padding:7px 10px;text-transform:capitalize}nav button:hover,nav button.active{color:#eaf1e8;background:#273a32}.hero{padding:76px 0 10px;max-width:680px}.hero h1{margin:15px 0;font:400 clamp(38px,7vw,68px)/1.06 "Libre Baskerville",serif;letter-spacing:-3.6px}.hero em{color:#c4fa64}.hero>p:last-child{color:#b9c7be;max-width:440px;line-height:1.55}.metrics{display:grid;grid-template-columns:repeat(4,1fr);border:1px solid #355046;border-radius:10px;overflow:hidden;background:#15201d}.metric{padding:22px;border-right:1px solid #355046}.metric:last-child{border:0}.metric strong{display:block;color:#ecf2e9;font:600 23px DM Mono,monospace;letter-spacing:-1px}.metric span{color:#91a59a;font-size:13px}.history,.new-workout,.last-week{margin-top:56px}.section-heading{display:flex;align-items:end;justify-content:space-between;margin-bottom:16px}.section-heading .eyebrow{margin:0 0 6px}.section-heading h2{margin:0;font:400 26px Libre Baskerville,serif;letter-spacing:-1px}.section-heading h3{margin:0;font-size:16px}.section-heading>span{color:#91a59a;font:12px DM Mono,monospace}.empty{border:1px dashed #476055;padding:30px;border-radius:10px;display:grid;gap:8px;color:#afc0b5}.empty strong{color:#e9eee8}.empty span{font-size:14px}.workout-list{border-top:1px solid #355046}.workout-row{display:grid;grid-template-columns:40px 1fr auto 28px;gap:13px;align-items:center;padding:16px 4px;border-bottom:1px solid #355046}.workout-icon{align-content:center;text-align:center;height:32px;border-radius:50%;background:#253a32;color:#c4fa64}.workout-icon.run{color:#b6d7ff;background:#203544}.workout-icon.ride{color:#ffd18a;background:#3a3021}.workout-row strong{font-weight:600}.workout-row p{margin:4px 0 0;color:#a9bab0;font-size:13px}.workout-row time{color:#a9bab0;font:12px DM Mono,monospace}.delete{color:#93a79b;border:0;background:transparent;font-size:22px}.delete:hover{color:#ff9f91}.new-workout{border:1px solid #476055;background:#17231f;padding:28px;border-radius:12px}.type-switch{display:flex;gap:8px;margin:20px 0}.type-switch button{color:#b6c6bc;border:1px solid #4a6358;border-radius:99px;padding:7px 13px;text-transform:capitalize;background:transparent}.type-switch button.active{color:#132010;background:#c4fa64;border-color:#c4fa64;font-weight:700}label{display:grid;gap:7px;margin:14px 0;color:#b9c9be;font-size:13px}input,select,textarea{width:100%;padding:11px 12px;border:1px solid #466055;border-radius:6px;color:#eef4ec;background:#0f1815;outline-color:#c4fa64}textarea{min-height:82px;resize:vertical}.form-grid{display:grid;grid-template-columns:2fr 1fr 1fr;gap:14px}.form-grid label{margin:0}.form-grid-wide{grid-template-columns:1fr 1fr 1.5fr}.endurance-grid{grid-template-columns:repeat(4,1fr);margin-top:22px}.primary{margin-top:10px;padding:11px 18px;border:0;border-radius:6px;color:#142010;background:#c4fa64;font-weight:700}.primary:disabled{opacity:.6;cursor:progress}.form-error,.app-error{color:#ffb4a9;font-size:14px}.loading{position:fixed;right:20px;bottom:20px;padding:9px 12px;border-radius:6px;background:#263c33;font:12px DM Mono,monospace}footer{margin-top:64px;text-align:center}.text-button{color:#c4fa64;border:0;background:transparent;padding:4px 0;font-size:13px}.previous-workout{width:100%;margin-top:18px;padding:11px 13px;color:#d8f7a4;border:1px solid #527043;border-radius:7px;background:#203328;text-align:left}.previous-workout:hover{background:#294432}.set-actions{display:flex;gap:18px;margin-top:10px}.overview-links,.recent-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px}.overview-links{margin-top:20px}.overview-links button{display:flex;justify-content:space-between;padding:18px;color:#eaf0e7;border:1px solid #3f5b4f;border-radius:9px;background:#17231f;text-align:left}.overview-links button span{color:#9daf9f}.overview-links button strong{font-size:13px}.workout-card{border:1px solid #3b554a;border-radius:9px;padding:18px;background:#17231f}.workout-card h3{margin:8px 0 4px;font:400 21px Libre Baskerville,serif}.workout-card p{margin:0;color:#aebdb4;font-size:13px}.tag{display:inline-block;color:#c4fa64;font:12px DM Mono,monospace;text-transform:uppercase;letter-spacing:.05em}.tag.run{color:#b6d7ff}.tag.ride{color:#ffd18a}.workout-summary{margin-top:15px!important}.exercise-detail{display:grid;gap:12px;margin-top:18px}.exercise-detail p{display:grid;gap:3px}.exercise-detail span{color:#a6b8ac}.endurance-summary{display:flex;gap:28px;margin-top:17px}.endurance-summary span{display:grid;gap:2px;color:#92a69a;font-size:12px}.endurance-summary strong{color:#eaf0e7;font:14px DM Mono,monospace}.notes{margin-top:18px!important;border-top:1px solid #365045;padding-top:15px}.exercise-editor{margin-top:25px}.exercise-block{margin-top:14px;padding:16px;border:1px solid #395246;border-radius:8px}.exercise-title{display:flex;gap:8px;align-items:center}.set-row{display:grid;grid-template-columns:1fr 1fr 1fr 25px;gap:8px;align-items:center;margin-top:9px}.set-row span{color:#a6b8ac;font-size:12px}.set-row input{padding:8px}.calculated-detail{margin-top:15px;padding:12px;border-radius:6px;color:#c4fa64;background:#203328;font:13px DM Mono,monospace}.page{padding-top:56px}.page-heading{max-width:650px;margin-bottom:32px}.page-heading .eyebrow{margin:0 0 10px}.page-heading h1{margin:0;font:400 48px Libre Baskerville,serif;letter-spacing:-2.5px}.page-heading>p:last-child{color:#b0c0b6;line-height:1.55}.filters{display:grid;grid-template-columns:minmax(190px,2fr) repeat(2,minmax(130px,1fr)) minmax(130px,1fr) repeat(2,minmax(120px,1fr)) minmax(130px,1fr);gap:9px;padding:16px;border:1px solid #3b554a;border-radius:9px;background:#17231f}.filters label{margin:0;font-size:10px}.filters input,.filters select{padding:8px;font-size:12px}.result-count{color:#9daf9f;font:12px DM Mono,monospace}.history-results{display:grid;gap:10px}.history-item{padding:0;border:0;background:transparent;text-align:left}.history-item .workout-card{transition:border-color .15s}.history-item:hover .workout-card{border-color:#c4fa64}.modal-backdrop{position:fixed;z-index:10;top:0;right:0;bottom:0;left:0;display:grid;place-items:center;padding:20px;background:#07100dcc}.modal{position:relative;width:min(100%,720px);max-height:90vh;overflow-y:auto;padding:50px 30px 30px;border:1px solid #527261;border-radius:12px;background:#14201c;box-shadow:0 24px 80px #0009}.modal .workout-card{padding:28px;border-color:#527261;background:#182820}.modal .workout-card h3{font-size:30px}.modal .workout-card p{font-size:15px}.modal .workout-summary{font-size:16px!important}.modal .exercise-detail{gap:16px}.modal .exercise-detail p strong{font-size:17px}.modal .exercise-detail span{font-size:15px}.modal .notes{font-size:16px!important;line-height:1.55}.modal .endurance-summary strong{font-size:16px}.modal-close{position:absolute;top:13px;right:15px;color:#c4fa64;border:0;background:transparent}.analytics-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:14px}.analytics-card{min-height:170px;padding:20px;border:1px dashed #486355;border-radius:10px;background:#15211d}.analytics-card h2{margin:22px 0 7px;font:400 20px Libre Baskerville,serif}.analytics-card p{color:#afbeb4;font-size:13px}.analytics-card small{color:#82978a;font:10px DM Mono,monospace}.placeholder-line{display:block;width:55%;height:5px;border-radius:9px;background:#466054}.calendar-toolbar{display:flex;align-items:center;gap:12px;margin-bottom:20px}.calendar-toolbar h2{min-width:220px;margin:0;font:400 24px Libre Baskerville,serif}.calendar-toolbar>button:not(.text-button){width:32px;height:32px;color:#e9eee8;border:1px solid #466055;border-radius:5px;background:#17231f}.calendar-layout{display:grid;grid-template-columns:1.5fr 1fr;gap:20px}.calendar{border:1px solid #3c5549;border-radius:9px;overflow:hidden}.weekday-row,.calendar-grid{display:grid;grid-template-columns:repeat(7,1fr)}.weekday-row span{padding:10px 5px;color:#9daf9f;border-bottom:1px solid #3c5549;font:10px DM Mono,monospace;text-align:center}.calendar-day,.calendar-blank{min-height:90px;padding:8px;border:0;border-right:1px solid #334a3f;border-bottom:1px solid #334a3f;background:#14201c;text-align:left}.calendar-day{color:#dfe7dc}.calendar-day.selected{outline:2px solid #c4fa64;outline-offset:-2px;background:#203328}.calendar-day div{display:flex;flex-wrap:wrap;gap:4px;margin-top:9px}.calendar-day i{width:8px;height:8px;border-radius:50%;background:#c4fa64}.calendar-day i.run{background:#a9d4ff}.calendar-day i.ride{background:#ffd18a}.day-panel{display:grid;align-content:start;gap:10px}.day-panel .eyebrow{margin:0 0 4px}.day-panel .workout-card{padding:14px}.brand{display:flex;align-items:center}header nav{gap:8px}header nav button{min-height:60px;padding:0 18px;border-radius:8px;font-size:15px;font-weight:600}header>.text-button{min-height:60px;padding:0 14px;border-radius:8px;font-size:15px;font-weight:600}@media (max-width: 1000px){.filters{grid-template-columns:repeat(3,1fr)}.calendar-layout{grid-template-columns:1fr}}@media (max-width: 600px){.app-shell{width:min(100% - 28px,960px);padding-top:max(20px,env(safe-area-inset-top));padding-bottom:max(32px,env(safe-area-inset-bottom))}header{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:12px}header>.brand{grid-column:1;grid-row:1}.brand{font-size:25px}.brand img{width:150px;height:60px}header p{display:none}header>.text-button{grid-column:2;grid-row:1;justify-self:end;min-height:52px;padding:0 8px}nav{grid-column:1 / -1;width:100%;flex-wrap:nowrap;justify-content:flex-start;overflow-x:auto;padding-bottom:2px;-webkit-overflow-scrolling:touch}nav button{flex:0 0 auto;min-height:52px;padding:0 16px}button,input,select,textarea{font-size:16px}button:not(.brand):not(.text-button),input,select{min-height:44px}textarea{font-size:16px}.hero{padding:44px 0 34px}.hero h1{font-size:clamp(34px,11vw,48px);letter-spacing:-2.3px}.metrics{grid-template-columns:1fr 1fr}.metric{padding:17px 14px}.metric:nth-child(2){border-right:0}.metric:nth-child(-n+2){border-bottom:1px solid #355046}.new-workout{padding:18px 14px}.type-switch{overflow-x:auto;padding-bottom:3px}.type-switch button{flex:0 0 auto}.form-grid,.endurance-grid,.filters,.analytics-grid,.overview-links,.recent-grid{grid-template-columns:1fr;gap:10px}.workout-row{grid-template-columns:35px minmax(0,1fr) 25px}.workout-row time{display:none}.set-actions{flex-wrap:wrap;gap:10px 18px}.set-row{grid-template-columns:minmax(0,1fr) minmax(0,1fr) minmax(0,1fr) 30px}.calendar-toolbar{flex-wrap:wrap}.calendar-toolbar h2{min-width:180px;font-size:21px}.calendar-day,.calendar-blank{min-height:56px;padding:6px 4px}.modal-backdrop{padding:max(12px,env(safe-area-inset-top)) 12px max(12px,env(safe-area-inset-bottom))}.modal{width:100%;max-height:86vh;padding:45px 14px 14px}.modal .workout-card{padding:20px}.modal .workout-card h3{font-size:24px}.endurance-summary{gap:13px;flex-wrap:wrap}}.insight-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:14px}.insight-card{min-height:190px;padding:20px;color:#e9eee8;border:1px solid #405a4d;border-radius:10px;background:#15211d;text-align:left}.insight-card:hover{border-color:#c4fa64;background:#192a22}.insight-card h2{margin:22px 0 7px;font:400 20px Libre Baskerville,serif}.insight-card p{min-height:38px;margin:0;color:#afbeb4;font-size:13px}.insight-card strong{display:block;margin-top:13px;color:#e9eee8;font-size:14px}.insight-open{display:block;margin-top:12px;color:#c4fa64;font-size:12px}.analytics-modal{width:min(100%,880px)}.analytics-modal>h1{margin:6px 0 26px;font:400 40px Libre Baskerville,serif;letter-spacing:-2px}.analytics-summary{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin-bottom:22px}.analytics-summary>div{padding:14px;border:1px solid #3d594b;border-radius:8px;background:#14211c}.analytics-summary span{display:block;color:#9daf9f;font-size:12px}.analytics-summary strong{display:block;margin-top:7px;color:#eff5ed;font:17px DM Mono,monospace}.analytics-toggle{display:flex;gap:7px;margin-bottom:12px}.analytics-toggle button{padding:7px 12px;color:#b9c9be;border:1px solid #466055;border-radius:5px;background:transparent}.analytics-toggle button.active{color:#142010;border-color:#c4fa64;background:#c4fa64}.trend-chart{margin:18px 0}.trend-chart svg{display:block;width:100%;height:auto;overflow:visible}.chart-axis{stroke:#587166;stroke-width:1}.chart-label{fill:#a9bab0;font:11px DM Mono,monospace}.chart-line{fill:none;stroke:#c4fa64;stroke-width:3;stroke-linecap:round;stroke-linejoin:round}.chart-point{fill:#c4fa64;stroke:#14201c;stroke-width:3}.chart-bar{fill:#9fd64c}.chart-hover{min-height:28px;color:#a9bab0;font-size:13px}.chart-hover strong{margin-right:12px;color:#e9eee8}.chart-empty{padding:32px;color:#a9bab0;border:1px dashed #486355;text-align:center}.breakdown{display:flex;flex-wrap:wrap;gap:8px}.breakdown span{padding:6px 9px;color:#b7c7bd;border-radius:4px;background:#21352b;font-size:12px}.analytics-select{max-width:320px;margin:0 0 20px}.data-list{display:grid;gap:0;margin-top:22px;border-top:1px solid #3a5347}.data-list p{display:flex;justify-content:space-between;gap:12px;margin:0;padding:13px 0;border-bottom:1px solid #3a5347}.data-list span{color:#a9bab0;font-size:13px}.data-list strong{color:#e9eee8;font-size:14px;text-align:right}.records-list{display:grid;grid-template-columns:repeat(2,1fr);gap:12px}.records-list article{padding:18px;border:1px solid #415d4e;border-radius:8px;background:#182820}.records-list span{color:#9eb0a5;font:11px DM Mono,monospace}.records-list h2{margin:10px 0 8px;font:400 21px Libre Baskerville,serif}.records-list strong{color:#c4fa64}.records-list p{margin:8px 0 0;color:#afbeb4;font-size:13px}.analytics-empty{margin-top:22px}.chart-heading{margin:26px 0 0;color:#e9eee8;font:400 21px Libre Baskerville,serif}.exercise-selector{position:relative;flex:1}.selector-input{display:flex;align-items:center;gap:6px}.selector-menu{position:absolute;z-index:5;top:calc(100% + 5px);left:0;right:0;max-height:260px;overflow-y:auto;border:1px solid #587267;border-radius:7px;background:#101a16;box-shadow:0 15px 35px #0009}.selector-hint{padding:10px 12px;color:#9daf9f;border-bottom:1px solid #385146;font:11px DM Mono,monospace}.selector-option{display:grid;width:100%;gap:3px;padding:10px 12px;color:#eef4ec;border:0;border-bottom:1px solid #263b31;background:transparent;text-align:left}.selector-option:hover{background:#203429}.selector-option span{color:#9daf9f;font-size:12px}.selector-empty{padding:15px;color:#aebdb4}.progression-context{margin:-10px 0 18px;color:#aebdb4;font-size:13px}@media (max-width: 600px){.insight-grid,.analytics-summary,.records-list{grid-template-columns:1fr}.data-list p{display:grid}.data-list strong{text-align:left}}
