:root{font-family:Inter,ui-sans-serif,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;color:#f7f8fa;background:#0b0d10;font-synthesis:none;text-rendering:optimizeLegibility;--bg-primary: #0b0d10;--bg-secondary: #0f1318;--surface-card: #141920;--surface-hover: #181e26;--border: rgba(255,255,255,.075);--text-primary: #f7f8fa;--text-secondary: #a7afba;--text-muted: #707985;--accent-primary: #22c55e;--metric-sleep: #8b5cf6;--metric-heart: #ef4444;--metric-recovery: #3b82f6;--metric-steps: #f59e0b;--warning: #facc15;--critical: #ef4444}*{box-sizing:border-box}html{background:var(--bg-primary);color-scheme:dark}body{margin:0;min-width:320px;min-height:100vh;background:radial-gradient(circle at 50% -20%,#101821 0%,var(--bg-primary) 35%)}button,input{font:inherit}button,a{-webkit-tap-highlight-color:transparent}a{color:inherit;text-decoration:none}button{color:inherit}#root{min-height:100vh}.app-shell{min-height:100vh;max-width:560px;margin:0 auto;position:relative}.app-content{padding-bottom:calc(88px + env(safe-area-inset-bottom))}.page{padding:calc(20px + env(safe-area-inset-top)) 16px 24px;min-height:100vh}.screen-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:18px}.screen-header h1,.detail-header h1{margin:0;font-size:28px;letter-spacing:-.035em;font-weight:750}.screen-header p,.detail-header p{margin:5px 0 0;color:var(--text-secondary);font-size:13px}.icon-button{width:42px;height:42px;display:grid;place-items:center;border-radius:50%;border:1px solid var(--border);background:#ffffff06;cursor:pointer}.icon-button:active{transform:scale(.97)}.bottom-nav{position:fixed;z-index:20;bottom:0;left:50%;transform:translate(-50%);width:min(100%,560px);display:grid;grid-template-columns:repeat(4,1fr);padding:10px 10px calc(8px + env(safe-area-inset-bottom));background:#0b0d10f0;-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px);border-top:1px solid var(--border)}.nav-item{color:var(--text-muted);display:flex;flex-direction:column;align-items:center;gap:4px;font-size:10px;padding:4px}.nav-item.active{color:var(--accent-primary)}.offline-banner{position:fixed;top:0;left:0;right:0;z-index:50;padding:6px;text-align:center;background:#78350f;font-size:12px}.status-hero{display:grid;grid-template-columns:1fr auto;gap:18px;padding:18px;min-height:150px;background:linear-gradient(135deg,#22c55e21,#141920fa 62%);border:1px solid rgba(34,197,94,.22);border-radius:20px;box-shadow:0 18px 42px #0000002e}.status-hero .eyebrow{color:var(--accent-primary);font-size:11px;font-weight:800;letter-spacing:.055em}.status-hero h2{margin:9px 0 6px;font-size:21px;letter-spacing:-.02em}.status-hero p{margin:0;color:var(--text-secondary);font-size:13px;line-height:1.5;max-width:280px}.status-hero small{display:block;margin-top:15px;color:var(--text-muted)}.status-orb{align-self:center;width:84px;height:84px;border-radius:50%;border:3px solid var(--accent-primary);box-shadow:inset 0 0 22px #22c55e1f,0 0 18px #22c55e14;display:flex;flex-direction:column;align-items:center;justify-content:center}.status-orb span{font-size:29px;font-weight:800}.status-orb small{margin:2px 0 0;font-size:8px;letter-spacing:.1em;color:var(--text-secondary)}.metric-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin-top:12px}.metric-card{position:relative;overflow:hidden;min-height:152px;padding:13px;border-radius:16px;background:var(--surface-card);border:1px solid var(--border);display:flex;flex-direction:column}.metric-card:before{content:"";position:absolute;inset:auto -30px -60px;height:100px;opacity:.13;filter:blur(24px)}.metric-purple:before{background:var(--metric-sleep)}.metric-red:before{background:var(--metric-heart)}.metric-blue:before{background:var(--metric-recovery)}.metric-orange:before{background:var(--metric-steps)}.metric-label{position:relative;display:flex;align-items:center;gap:6px;color:var(--text-secondary);font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.025em}.metric-purple .metric-label{color:#b69afa}.metric-red .metric-label{color:#ff8b8b}.metric-blue .metric-label{color:#76a9ff}.metric-orange .metric-label{color:#ffbd5c}.metric-value{position:relative;margin-top:10px;font-size:24px;font-weight:750;letter-spacing:-.04em;font-variant-numeric:tabular-nums}.sparkline{position:relative;width:100%;height:42px;margin-top:auto;overflow:visible}.sparkline-empty{margin-top:auto;color:var(--text-muted);font-size:10px}.metric-meta{position:relative;display:flex;justify-content:space-between;margin-top:2px;color:var(--text-muted);font-size:9px}.section-block{margin-top:20px}.section-title{display:flex;justify-content:space-between;align-items:center;margin:20px 2px 9px;color:var(--text-secondary);font-size:12px;font-weight:700;text-transform:uppercase;letter-spacing:.035em}.section-title a{color:var(--accent-primary);font-weight:600;text-transform:none}.latest-workout,.activity-card{display:flex;align-items:center;gap:12px;padding:13px;background:var(--surface-card);border:1px solid var(--border);border-radius:16px}.activity-icon{width:38px;height:38px;flex:0 0 38px;display:grid;place-items:center;border-radius:11px;background:#1d2330;color:#8aa4c8;font-weight:800}.activity-icon.strength{background:#ef444424;color:#ff8787}.activity-icon.running{background:#3b82f624;color:#7ab0ff}.activity-icon.cycling{background:#22c55e24;color:#65e38c}.activity-icon.walking{background:#f59e0b24;color:#ffc45f}.activity-copy,.activity-main{min-width:0;display:flex;flex-direction:column;gap:4px;flex:1}.activity-copy strong,.activity-main strong{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;font-size:13px}.activity-copy span{color:var(--text-muted);font-size:10px}.activity-numbers,.activity-stats{display:flex;flex-direction:column;align-items:flex-end;gap:4px;text-align:right}.activity-numbers strong,.activity-stats strong{font-size:11px}.activity-numbers span,.activity-stats span,.activity-stats time{color:var(--text-muted);font-size:9px}.week-strip{margin-top:10px;padding:12px 14px;border-radius:16px;border:1px solid var(--border);background:var(--surface-card)}.week-label{color:var(--text-secondary);font-size:10px;font-weight:700;text-transform:uppercase}.week-days{display:grid;grid-template-columns:repeat(7,1fr);gap:6px;margin-top:9px}.week-day{display:grid;place-items:center;gap:6px;color:var(--text-muted);font-size:9px;text-transform:uppercase}.day-ring{width:18px;height:18px;border-radius:50%;border:2px solid #333a45}.day-ring.strength{border-color:#ef4444}.day-ring.running{border-color:#3b82f6}.day-ring.cycling{border-color:#22c55e}.day-ring.walking{border-color:#f59e0b}.sync-footer{margin:12px 2px 0;display:flex;align-items:center;gap:6px;color:var(--text-muted);font-size:10px}.sync-footer span:last-child{margin-left:auto}.sync-dot{width:7px;height:7px;border-radius:50%;background:var(--accent-primary)}.filter-pills,.period-selector,.progress-tabs{display:flex;gap:7px;overflow:auto;scrollbar-width:none;margin-bottom:14px}.filter-pills::-webkit-scrollbar,.period-selector::-webkit-scrollbar,.progress-tabs::-webkit-scrollbar{display:none}.filter-pill,.period-selector button,.progress-tabs button{flex:0 0 auto;padding:8px 14px;border:1px solid var(--border);border-radius:999px;background:var(--surface-card);color:var(--text-secondary);font-size:11px;cursor:pointer}.filter-pill.active,.period-selector button.active,.progress-tabs button.active{background:var(--accent-primary);color:#071009;border-color:var(--accent-primary);font-weight:750}.progress-tabs button{border:none;border-radius:0;padding:8px 10px;background:transparent;border-bottom:2px solid transparent}.progress-tabs button.active{background:transparent;color:var(--accent-primary);border-color:var(--accent-primary)}.timeline-date{margin:17px 3px 7px;color:var(--text-secondary);font-size:10px;font-weight:700;text-transform:uppercase}.timeline .activity-card{margin-bottom:7px}.badges{display:flex;flex-wrap:wrap;gap:4px}.provider-badge{display:inline-flex;align-items:center;padding:2px 6px;border-radius:999px;background:#202630;color:#aeb7c3;font-size:8px}.provider-garmin{color:#78b8ff}.provider-hevy{color:#e6e6e6}.provider-strava{color:#ff8a45}.provider-combi{color:#67df8d}.detail-page{padding-top:calc(15px + env(safe-area-inset-top))}.detail-header{display:flex;align-items:flex-start;gap:12px;margin-bottom:16px}.detail-header .icon-button{width:36px;height:36px}.detail-header h1{font-size:21px}.detail-header .badges{margin-top:7px}.kpi-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:1px;padding:13px 5px;background:var(--surface-card);border:1px solid var(--border);border-radius:16px}.kpi{padding:7px 8px;text-align:center;border-right:1px solid var(--border)}.kpi:nth-child(4n){border-right:none}.kpi span{display:block;color:var(--text-muted);font-size:8px;text-transform:uppercase}.kpi strong{display:block;margin-top:5px;font-size:14px;font-variant-numeric:tabular-nums}.kpi:nth-child(n+5){margin-top:8px;padding-top:12px;border-top:1px solid var(--border)}.exercise-list{display:flex;flex-direction:column;gap:7px}.exercise-card{background:var(--surface-card);border:1px solid var(--border);border-radius:15px;overflow:hidden}.exercise-toggle{width:100%;display:flex;align-items:center;gap:10px;padding:13px;border:0;background:transparent;text-align:left;cursor:pointer}.exercise-toggle>div{display:grid;grid-template-columns:auto 1fr;column-gap:9px;row-gap:3px;flex:1}.exercise-index{grid-row:1/3;width:22px;height:22px;border-radius:7px;background:#232a34;display:grid;place-items:center;font-size:9px}.exercise-toggle strong{font-size:12px}.exercise-toggle small{grid-column:2;color:var(--text-muted);font-size:9px}.pr-badge{padding:3px 6px;border-radius:5px;background:#22c55e26;color:var(--accent-primary);font-size:8px;font-weight:800}.set-table{padding:0 13px 11px}.set-row{display:grid;grid-template-columns:.6fr 1fr .8fr .7fr 1fr;gap:5px;padding:8px 2px;border-top:1px solid var(--border);font-size:10px;font-variant-numeric:tabular-nums}.set-row.head{color:var(--text-muted);font-size:8px;text-transform:uppercase}.set-row.pr{color:#72e895}.notes-card,.state-card,.settings-card,.profile-hero,.trend-card,.full-chart-card{background:var(--surface-card);border:1px solid var(--border);border-radius:16px}.notes-card{padding:13px;margin-top:12px}.notes-card span{color:var(--text-muted);font-size:9px;text-transform:uppercase}.notes-card p{font-size:12px;margin:7px 0 0}.trend-list{display:flex;flex-direction:column;gap:9px}.trend-card{padding:13px}.trend-head{display:flex;align-items:flex-start;justify-content:space-between}.trend-head span{display:block;color:var(--text-secondary);font-size:10px}.trend-head strong{display:block;margin-top:5px;font-size:19px}.trend-head em{font-size:10px;font-style:normal}.trend-chart{height:80px;margin-top:4px}.full-chart-card{padding:12px;margin-top:12px}.profile-hero{display:flex;align-items:center;gap:12px;padding:14px}.avatar{width:48px;height:48px;border-radius:50%;background:#252b34;display:grid;place-items:center}.profile-hero>div:nth-child(2){flex:1}.profile-hero h2{font-size:16px;margin:0}.profile-hero p{font-size:10px;color:var(--text-muted);margin:5px 0 0}.small-button{border:0;background:transparent;color:var(--accent-primary);font-size:10px}.settings-card{overflow:hidden}.integration-row{display:flex;align-items:center;gap:11px;padding:12px;border-bottom:1px solid var(--border)}.integration-row:last-child{border-bottom:0}.provider-logo{width:30px;height:30px;border-radius:9px;background:#222a34;display:grid;place-items:center;font-weight:800;font-size:12px}.provider-logo.garmin{color:#4da1ff}.provider-logo.hevy{color:#fff}.provider-logo.strava{color:#ff7d35}.integration-row>div:nth-child(2){display:flex;flex-direction:column;gap:3px;flex:1}.integration-row strong{font-size:12px}.integration-row span{font-size:9px;color:var(--text-muted)}.integration-row .icon-button{width:34px;height:34px}.error-text{color:#ff8585!important;max-width:250px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.menu-list button{width:100%;display:grid;grid-template-columns:22px 1fr auto 18px;align-items:center;gap:8px;padding:13px;border:0;border-bottom:1px solid var(--border);background:transparent;text-align:left;font-size:11px}.menu-list button:last-child{border-bottom:0}.menu-list svg{width:17px;color:var(--text-muted)}.menu-list em{font-style:normal;color:var(--metric-steps)}.logout-button{display:flex;align-items:center;justify-content:center;gap:8px;width:100%;margin-top:18px;padding:12px;border-radius:13px;border:1px solid rgba(239,68,68,.25);background:#ef444414;color:#ff8383}.login-page{min-height:100vh;display:grid;place-items:center;padding:25px;background:radial-gradient(circle at 50% 10%,rgba(34,197,94,.12),transparent 35%)}.login-card{width:min(100%,380px);padding:26px;border:1px solid var(--border);border-radius:22px;background:var(--surface-card);box-shadow:0 24px 80px #00000059}.brand-mark{width:50px;height:50px;border-radius:15px;background:var(--accent-primary);color:#061009;display:grid;place-items:center;font-size:27px;font-weight:900}.login-card h1{margin:18px 0 5px;font-size:31px}.login-card>p{color:var(--text-secondary);font-size:12px;margin:0 0 24px}.login-card form{display:flex;flex-direction:column;gap:13px}.login-card label{display:flex;flex-direction:column;gap:6px;color:var(--text-secondary);font-size:10px}.login-card input{width:100%;padding:12px;border-radius:12px;border:1px solid var(--border);background:#0c1015;color:var(--text-primary);outline:none}.login-card input:focus{border-color:var(--accent-primary)}.button{padding:12px 16px;border-radius:12px;border:0;cursor:pointer}.button.primary{background:var(--accent-primary);color:#061009;font-weight:800}.button.secondary{background:#242b35}.login-card small{display:block;margin-top:15px;color:var(--text-muted);font-size:9px}.form-error{color:#ff8383;font-size:10px}.state-card{padding:18px}.state-card p{color:var(--text-secondary);font-size:12px;line-height:1.5}.error-state{border-color:#ef444440}.empty-state{text-align:center;margin-top:35px}.skeleton{background:linear-gradient(90deg,#141920,#1c222b,#141920);background-size:200% 100%;animation:shimmer 1.4s infinite;border-radius:16px}.skeleton-title{width:130px;height:32px;margin:25px 0}.skeleton-hero{height:150px}.skeleton-card{height:152px}.skeleton-trend{height:135px}@keyframes shimmer{to{background-position:-200% 0}}@media(max-width:360px){.page{padding-left:12px;padding-right:12px}.status-hero{grid-template-columns:1fr}.status-orb{display:none}.metric-grid{grid-template-columns:1fr}.metric-card{min-height:130px}.kpi-grid{grid-template-columns:repeat(2,1fr)}.kpi:nth-child(2n){border-right:none}.kpi:nth-child(n+3){border-top:1px solid var(--border)}}@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto!important;animation-duration:.01ms!important;transition-duration:.01ms!important}}.photo-section{padding:12px;background:var(--surface-card);border:1px solid var(--border);border-radius:16px}.photo-upload{display:flex;align-items:center;justify-content:center;gap:8px;width:100%;padding:11px;border:1px dashed rgba(34,197,94,.38);border-radius:12px;background:#22c55e0f;color:var(--accent-primary);font-size:11px;font-weight:700}.photo-strip{display:flex;gap:9px;overflow-x:auto;margin-top:10px;scrollbar-width:none}.photo-strip::-webkit-scrollbar{display:none}.photo-card{flex:0 0 112px;overflow:hidden;border:1px solid var(--border);border-radius:12px;background:#0f1318}.photo-card img{display:block;width:112px;height:132px;object-fit:cover}.photo-card div{display:flex;flex-direction:column;gap:2px;padding:7px}.photo-card strong{font-size:9px}.photo-card span,.photo-empty{color:var(--text-muted);font-size:8px}.photo-empty{padding:12px}
