:root{--bg:#f4f6f3;--ink:#17211d;--muted:#66746e;--line:#d9e0db;--panel:#ffffff;--forest:#123b33;--green:#2f7d69;--coral:#d9624b;--gold:#dca33a;--sky:#477fa8;--shadow:0 18px 60px rgba(20,36,31,0.09)}*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--ink);font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif}button,input,select,textarea{font:inherit}button{cursor:pointer}.app-shell{min-height:100vh;padding:28px}.topbar{align-items:center;display:flex;justify-content:space-between;gap:24px;margin:0 auto 20px;max-width:1180px}.topbar h1{font-size:clamp(2rem,4vw,4rem);line-height:.98;margin:4px 0 0}.eyebrow{color:var(--green);font-size:.78rem;font-weight:800;letter-spacing:0;margin:0;text-transform:uppercase}.primary-button,.status-pill,.tab,.upload-button{align-items:center;display:inline-flex;gap:8px}.status-pill{background:var(--forest);border-radius:999px;color:#fff;font-weight:800;padding:10px 14px;white-space:nowrap}.tabs{display:grid;grid-gap:8px;gap:8px;grid-template-columns:repeat(5,1fr);margin:0 auto;max-width:1180px}.tab{background:#e6ece8;border:1px solid transparent;border-radius:8px;color:var(--ink);font-weight:800;justify-content:center;min-height:48px;padding:12px}.tab.active{background:var(--panel);border-color:var(--forest);box-shadow:var(--shadow)}.sync-status{color:var(--muted);font-size:.92rem;margin:14px auto 10px;max-width:1180px}.sync-actions{display:flex;flex-wrap:wrap;gap:8px;margin:0 auto 12px;max-width:1180px}.sync-actions button{background:#e9efeb;border:1px solid var(--line);border-radius:8px;font-size:.86rem;min-height:36px;padding:8px 11px}.save-notice,.sync-actions button{color:var(--forest);font-weight:900}.save-notice{align-items:center;background:#e7f4ee;border:1px solid #b8d9cd;border-radius:8px;display:flex;gap:10px;margin:0 auto 22px;max-width:1180px;padding:12px 14px}.view-stack{display:grid;grid-gap:18px;gap:18px;margin:0 auto;max-width:1180px}.dashboard-band{align-items:center;background:var(--forest);border-radius:8px;color:#fff;display:flex;justify-content:space-between;min-height:210px;overflow:hidden;padding:32px}.dashboard-band .eyebrow{color:#9dd6c7}.dashboard-band h2{font-size:clamp(2rem,4vw,3.7rem);line-height:1;margin:8px 0}.dashboard-band p:last-child{color:#c9ded7;margin:0}.progress-ring{--progress:0%;align-items:center;aspect-ratio:1;background:radial-gradient(circle at center,var(--forest) 0 56%,transparent 57%),conic-gradient(var(--gold) var(--progress),rgba(255,255,255,.18) 0);border-radius:50%;display:grid;flex:0 0 148px;place-items:center}.progress-ring span{color:#fff;font-size:1.7rem;font-weight:900}.goal-grid,.metric-input-grid,.stat-grid{display:grid;grid-gap:14px;gap:14px}.stat-grid{grid-template-columns:repeat(4,1fr)}.goal-grid{grid-template-columns:repeat(3,1fr)}.empty-state,.goal-card,.habit-card,.journal-entry,.surface{background:var(--panel);border:1px solid var(--line);border-radius:8px;box-shadow:var(--shadow)}.habit-card{align-items:center;display:grid;grid-gap:12px;gap:12px;grid-template-columns:auto 1fr auto;min-height:116px;padding:18px}.habit-card svg{color:var(--green)}.card-note,.goal-card p,.habit-card p{color:var(--muted);margin:0}.goal-card strong,.habit-card strong{display:block;font-size:1.45rem;margin:4px 0}.habit-card span{color:var(--muted);font-size:.9rem}.goal-card{min-height:150px;padding:18px}.goal-card-header{align-items:flex-start;display:flex;justify-content:space-between;gap:12px}.goal-card:nth-child(3n+1) svg{color:var(--green)}.goal-card:nth-child(3n+2) svg{color:var(--coral)}.goal-card:nth-child(3n+3) svg{color:var(--sky)}.meter{background:#e7ece9;border-radius:999px;height:10px;margin:18px 0 10px;overflow:hidden}.meter span{background:var(--gold);border-radius:inherit;display:block;height:100%;min-width:4px}.section-title{align-items:center;display:flex;gap:12px}.section-title svg{color:var(--coral)}.section-title h2{margin:0}.section-title p{color:var(--muted);margin:2px 0 0}.surface{padding:20px}.form-grid{display:grid;grid-gap:16px;gap:16px;grid-template-columns:repeat(3,1fr)}.field{display:grid;grid-gap:7px;gap:7px}.field span{color:var(--muted);font-size:.88rem;font-weight:800}input,select,textarea{background:#fbfcfb;border:1px solid var(--line);border-radius:8px;color:var(--ink);min-height:44px;outline:none;padding:10px 12px;width:100%}textarea{resize:vertical}input:focus,select:focus,textarea:focus{border-color:var(--green);box-shadow:0 0 0 3px rgba(47,125,105,.14)}.toggle-row{align-items:center;align-self:end;background:#f0f4f1;border:1px solid var(--line);border-radius:8px;display:flex;gap:10px;min-height:44px;padding:10px 12px}.toggle-row input{accent-color:var(--green);min-height:auto;width:18px}.metric-input-grid{grid-column:1/-1;grid-template-columns:repeat(4,1fr)}.wide{grid-column:1/-1}.photo-upload{align-items:flex-start;display:flex;gap:16px}.photo-upload img{aspect-ratio:4/3;border-radius:8px;max-width:220px;object-fit:cover;width:100%}.upload-button{background:#eef5f1;border:1px dashed var(--green);border-radius:8px;color:var(--forest);font-weight:900;justify-content:center;min-height:92px;padding:18px}.upload-button input{display:none}.upload-button.disabled{cursor:wait;opacity:.72}.primary-button{background:var(--coral);border:0;border-radius:8px;color:#fff;font-weight:900;justify-content:center;min-height:48px;padding:13px 18px}.primary-button:disabled{cursor:wait;opacity:.72}.saved-inline{align-items:center;background:#f3f7f4;border-left:4px solid var(--green);border-radius:8px;color:var(--forest);display:flex;gap:4px;justify-content:space-between;margin-bottom:14px;padding:12px 14px}.saved-inline>div{display:grid;grid-gap:4px;gap:4px}.saved-inline span{color:var(--muted);font-size:.92rem}.danger-button{align-items:center;background:#fff3f0;border:1px solid #efbfaf;border-radius:8px;color:#a33d2e;display:inline-flex;flex:0 0 auto;font-size:.9rem;font-weight:900;gap:7px;min-height:38px;padding:8px 10px}.danger-button:disabled,.photo-card-header button:disabled{cursor:wait;opacity:.65}.workout-controls{display:grid;grid-gap:14px;gap:14px;grid-template-columns:220px 260px;margin-bottom:18px}.routine-heading{align-items:center;border-bottom:1px solid var(--line);display:flex;justify-content:space-between;margin-bottom:16px;padding-bottom:16px}.routine-heading h2{margin:4px 0 0}.routine-heading>span{background:#eef5f1;border-radius:999px;color:var(--forest);font-weight:900;padding:8px 12px}.routine-stack{display:grid;grid-gap:18px;gap:18px}.routine-block{border-bottom:1px solid var(--line);padding-bottom:18px}.routine-block:last-child{border-bottom:0}.block-title{align-items:baseline;display:flex;gap:12px;margin-bottom:10px}.block-title span{color:var(--green);font-size:.86rem;font-weight:900}.block-title h3{margin:0}.plain-list{color:var(--muted);margin:0 0 12px;padding-left:20px}.exercise-row{align-items:center;display:grid;grid-gap:10px;gap:10px;grid-template-columns:minmax(220px,1fr) 96px 86px 86px minmax(160px,.8fr);padding:8px 0}.exercise-row span,.exercise-row strong{display:block}.exercise-row span{color:var(--muted);font-size:.88rem;margin-top:3px}.workout-notes{margin:18px 0}.chart-layout{display:grid;grid-gap:18px;gap:18px;grid-template-columns:1fr}.chart-panel{min-height:360px}.chart-header{align-items:flex-end;display:flex;justify-content:space-between;gap:16px;margin-bottom:12px}.chart-header .field{max-width:420px;width:100%}.chart-header p{color:var(--muted);font-weight:800;margin:0 0 10px}.line-chart{display:block;height:auto;max-height:330px;width:100%}.line-chart line{stroke:#9ca8a2;stroke-width:1.5}.line-chart .grid-line{stroke:#e6ece8;stroke-width:1}.line-chart path{fill:none;stroke:var(--green);stroke-linecap:round;stroke-linejoin:round;stroke-width:4}.line-chart circle{fill:var(--coral);stroke:#fff;stroke-width:3}.line-chart text{fill:var(--muted);font-size:12px;text-anchor:end}.line-chart .x-label{text-anchor:middle}.line-chart .point-label{fill:var(--ink);font-size:12px;font-weight:800;text-anchor:middle}.empty-chart,.empty-state{align-items:center;color:var(--muted);display:grid;min-height:240px;place-items:center;text-align:center}.photo-strip{display:grid;grid-gap:14px;gap:14px;grid-auto-columns:minmax(180px,220px);grid-auto-flow:column;overflow-x:auto;padding-bottom:12px;scroll-snap-type:x proximity}.photo-card{background:var(--panel);border:1px solid var(--line);border-radius:8px;box-shadow:var(--shadow);min-width:0;padding:10px;scroll-snap-align:start}.photo-card-header{align-items:center;display:flex;gap:8px;justify-content:space-between;margin-bottom:8px}.photo-card-header p{color:var(--muted);font-size:.78rem;font-weight:900;margin:0}.photo-card-header button{align-items:center;background:#fff3f0;border:1px solid #efbfaf;border-radius:7px;color:#a33d2e;display:inline-flex;flex:0 0 auto;height:30px;justify-content:center;padding:0;width:30px}.photo-card img{aspect-ratio:4/5;border-radius:6px;display:block;object-fit:cover;width:100%}@media (max-width:920px){.app-shell{padding:18px}.chart-header,.dashboard-band,.routine-heading,.topbar{align-items:stretch;flex-direction:column}.tabs{grid-template-columns:repeat(2,1fr)}.form-grid,.goal-grid,.metric-input-grid,.stat-grid,.workout-controls{grid-template-columns:1fr}.photo-strip{grid-auto-columns:minmax(150px,68vw)}.exercise-row{grid-template-columns:1fr 1fr}.exercise-row>div{grid-column:1/-1}.photo-upload,.saved-inline{flex-direction:column}.saved-inline{align-items:stretch;gap:12px}.progress-ring{flex-basis:130px}}@media (max-width:560px){.tabs{grid-template-columns:1fr}.tab{justify-content:flex-start}.dashboard-band{padding:22px}.exercise-row{grid-template-columns:1fr}}