:root{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;color:#151922;background:#f5f5f8;font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;font-size:15px;line-height:1.5;--ink: #151922;--accent: #285de0;--muted: #636b79;--line: #e1e4eb;--soft: #f0f1f5;--meter: var(--accent);--danger: #a52e29}*{box-sizing:border-box}[hidden]{display:none!important}body{margin:0}body:has(dialog[open]){overflow:hidden}button,input,select,textarea{font:inherit}button,a{touch-action:manipulation}button{cursor:pointer}button:disabled{cursor:wait;opacity:.65}a{color:inherit;text-decoration:none}a:hover{color:var(--accent)}:focus-visible{outline:3px solid var(--accent);outline-offset:3px}svg{flex-shrink:0}h1,h2,h3,p{margin:0 0 16px;overflow-wrap:anywhere}h1{font-size:clamp(30px,3vw,38px);line-height:1.2;letter-spacing:-1px;font-weight:750}h2{display:flex;align-items:center;gap:10px;font-size:19px;line-height:1.4}h3{font-size:16px}strong{font-weight:650;overflow-wrap:anywhere}small,.small{font-size:13px}.muted{color:var(--muted)}.full{width:100%}.button,.text-button,.icon-button{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:44px;border:1px solid transparent;border-radius:16px;padding:10px 16px;font-size:14px;font-weight:600;line-height:1.4;text-align:center}.primary{background:var(--ink);color:#fff}.primary:hover{background:#303746;color:#fff}.secondary{background:var(--soft);border-color:var(--line);color:var(--ink)}.secondary:hover,.icon-button:hover,.text-button:hover{background:var(--soft)}.text-button{padding:8px;background:transparent;color:var(--accent);border-radius:24px}.icon-button{width:44px;padding:8px;flex-shrink:0;background:var(--soft);color:var(--muted);border-radius:50%}.danger{color:var(--danger)}.tag{display:inline-block;padding:4px 8px;border-radius:20px;background:var(--soft);color:var(--muted);font-size:12px}.brand{display:inline-flex;align-items:center;white-space:nowrap;font-size:16px;font-weight:800;min-height:44px}.brand img{width:30px;height:30px;margin-right:8px}.brand span{color:var(--ink)}.skip-link{position:fixed;top:8px;left:8px;transform:translateY(-150%);background:#fff;padding:12px;border:1px solid var(--accent);z-index:200;opacity:0;pointer-events:none}.skip-link:focus{transform:none;opacity:1;pointer-events:auto}.app-shell{min-height:100dvh;background:linear-gradient(180deg,#edf4ff 0,#f5f5f8 420px)}.sidebar{position:fixed;inset:16px auto 16px 16px;width:220px;padding:24px 16px;background:#fff;border:1px solid var(--line);border-radius:28px;z-index:10}.sidebar>.brand{margin:0 0 32px 8px}.sidebar nav{display:flex;flex-direction:column;gap:8px}.sidebar nav a{display:flex;gap:12px;align-items:center;min-height:48px;padding:12px 16px;border-radius:24px;color:var(--muted);font-weight:600}.sidebar nav a:hover{background:var(--soft)}.sidebar nav a.active{background:var(--soft);color:var(--ink)}.main-area{margin-left:236px;min-width:0}.topbar{display:flex;align-items:center;justify-content:flex-end;gap:16px;padding:12px 32px;min-height:68px}.mobile-brand{display:none}.account-link{display:inline-flex;gap:8px;align-items:center;min-height:44px;padding:8px 12px;border-radius:24px;background:#fff;border:1px solid var(--line);font-weight:600}.account-link.active{border-color:#bac8e6;color:var(--accent);background:var(--soft)}.page-content{max-width:1200px;padding:16px 32px 48px;margin:auto}.page-content:focus{outline:none}.page-heading{display:flex;justify-content:space-between;align-items:center;gap:20px;margin-bottom:28px}.page-heading h1{margin-bottom:8px}.page-heading p{margin:0}.page-heading>.button{flex-shrink:0}.panel{background:#fff;border:1px solid var(--line);border-radius:24px;padding:24px;margin-bottom:20px;min-width:0;box-shadow:0 3px 12px #202b4210}.panel>:last-child{margin-bottom:0}.section-heading{display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:12px;margin-bottom:16px}.section-heading h2,.section-heading h3,.section-heading .field{margin:0}.row-actions{display:flex;gap:8px;align-items:center;flex-wrap:wrap}.view-nav{display:flex;gap:4px;padding:4px;border:1px solid var(--line);border-radius:28px;background:#ffffffd9;box-shadow:0 4px 16px #202b4210;margin-bottom:24px;width:fit-content;max-width:100%}.view-nav a{display:flex;justify-content:center;align-items:center;min-height:44px;padding:10px 18px;border-radius:24px;color:var(--muted);font-weight:600;font-size:14px}.view-nav a[aria-current=page]{background:var(--soft);color:var(--ink)}.today-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:20px}.today-grid>.nutrition-summary{grid-column:1 / -1;margin:0}.today-card{display:flex;flex-direction:column;margin:0}.today-value{font-size:28px;font-weight:700;line-height:1.25}.today-value span{display:inline;font-size:14px;font-weight:400;color:var(--muted);margin-top:8px}.today-card>.primary{margin-top:auto}.today-card>.text-button{margin-top:8px}.nutrition-summary h2{font-size:17px;margin-bottom:12px}.calorie-values{display:flex;justify-content:space-between;align-items:center;gap:16px;margin-bottom:16px}.calorie-values p{margin:0;min-width:0}.calorie-values>p:first-child strong{font-size:32px;letter-spacing:-1px}.calorie-remaining{text-align:right;max-width:40%;font-size:13px;color:var(--muted)}.calorie-remaining strong{display:block;color:var(--ink);font-size:20px}.summary-actions{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:8px;border-top:1px solid var(--line);padding-top:16px;margin-top:20px}.nutrition-summary .primary,.app-shell[data-page=nutrition] .primary{background:var(--accent)}.nutrition-summary .primary:hover,.app-shell[data-page=nutrition] .primary:hover{background:#1f4fc4}.macro-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));margin-top:20px;gap:12px}.macro-grid>div{display:flex;flex-direction:column}.macro-grid strong{font-size:18px}.macro-label{font-size:13px;font-weight:600;margin-bottom:6px}.macro-grid p{font-size:13px;margin-bottom:12px}.macro-carbs{--meter: #31849a}.macro-fat{--meter: #8161bc}.macro-protein{--meter: #c38927}.section-label{margin-top:28px}.date-navigator{margin-bottom:24px}.date-toolbar{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:end;gap:12px;margin-bottom:16px}.date-toolbar .field{margin:0;flex:1 1 128px;min-width:0;max-width:148px}.date-toolbar .row-actions{flex-wrap:nowrap;gap:4px}.week-strip{display:flex;gap:4px;overflow-x:auto;padding:4px;scrollbar-width:thin}.week-day{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:6px;flex:1 0 44px;min-height:70px;padding:8px 0;border:1px solid transparent;border-radius:20px;background:transparent;color:var(--muted);font-size:12px}.week-day strong{display:grid;place-items:center;width:32px;height:32px;border-radius:50%;font-size:16px}.week-day[aria-current=date] strong{box-shadow:inset 0 0 0 1px var(--accent)}.week-day[aria-pressed=true]{background:#fff;border-color:var(--line);color:var(--ink)}.week-day[aria-pressed=true] strong{background:var(--ink);color:#fff;box-shadow:none}.week-day:disabled{cursor:not-allowed;opacity:.5}.meal-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:20px}.meal-group{margin:0;align-self:start}.meal-group .section-heading{margin-bottom:8px}.meal-group .icon-button{background:#eaf0ff;color:var(--accent)}progress{display:block;width:100%;height:8px;appearance:none;border:none;border-radius:8px;background:var(--soft)}progress::-webkit-progress-bar{background:var(--soft);border-radius:8px}progress::-webkit-progress-value{background:var(--meter);border-radius:8px}progress::-moz-progress-bar{background:var(--meter);border-radius:8px}.empty{text-align:center;padding:28px 12px}.empty h3{margin-bottom:8px}.empty p{max-width:380px;margin:auto}.loading{display:flex;align-items:center;justify-content:center;min-height:150px;gap:12px;color:var(--muted)}.spin{animation:spin 1s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.notice{padding:14px 16px;border:1px solid #e7d4a2;border-radius:10px;background:#fff8e7;color:#68521d;margin-bottom:16px;overflow-wrap:anywhere}.error{color:var(--danger);background:#fff2ef;border-color:#edc9c3}.success{color:#23683f;background:#edf7f0;border-color:#c7ddcf}.field{display:flex;flex-direction:column;gap:6px;margin-bottom:16px;min-width:0}.field-label{font-size:14px;font-weight:600}.field input,.field select,.field textarea,.search-field input,.section-heading>select{width:100%;min-width:0;min-height:48px;border:1px solid #c6cbd5;border-radius:16px;padding:10px 12px;color:inherit;background:#f8f9fb;font-size:16px}.field input::placeholder,.field textarea::placeholder,.search-field input::placeholder{color:#717886;opacity:1}.field select,.section-heading>select{appearance:none;padding-right:38px;background-image:linear-gradient(45deg,transparent 50%,var(--muted) 50%),linear-gradient(135deg,var(--muted) 50%,transparent 50%);background-position:calc(100% - 19px) 50%,calc(100% - 14px) 50%;background-size:5px 5px;background-repeat:no-repeat}.field textarea{resize:vertical;min-height:88px}.field input[type=date]{max-width:100%}.field input[type=file]{font-size:14px}.field input:focus-visible,.field select:focus-visible,.field textarea:focus-visible{outline-offset:1px}.form fieldset{min-width:0;padding:0;margin:0;border:0}.form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0 16px}.form .button[type=submit]{margin-top:12px}.delete-action{display:inline-block}.delete-action .notice{max-width:300px}.modal{width:min(680px,calc(100% - 32px));max-height:calc(100dvh - 48px);overflow:auto;overscroll-behavior:contain;border:1px solid var(--line);border-radius:28px;padding:24px;color:var(--ink);box-shadow:0 24px 80px #11182733}.modal::backdrop{background:#20263466;-webkit-backdrop-filter:blur(5px);backdrop-filter:blur(5px)}.modal-heading{display:flex;align-items:center;gap:12px;margin-bottom:20px}.modal-heading h2{flex:1;margin:0;font-size:22px}.modal .form>fieldset>.button[type=submit]{width:100%}summary{cursor:pointer;min-height:44px;padding:10px 0;font-weight:600;border-radius:4px}.disclosure,.builder{border-top:1px solid var(--line);margin:16px 0}.disclosure>summary>span{margin-left:8px;font-weight:400}.disclosure-body{padding-top:12px}.settings-section>summary{display:flex;align-items:center;gap:10px}.settings-section>summary:after{content:"+";margin-left:auto;font-size:22px}.settings-section[open]>summary:after{content:"-"}.settings-section>summary::-webkit-details-marker{display:none}.settings-section>.disclosure-body{padding-top:16px}.search-field{display:flex;align-items:center;gap:10px;margin-bottom:12px;border:1px solid var(--line);border-radius:28px;padding-left:14px;background:var(--soft);color:var(--muted)}.search-field:focus-within{outline:3px solid var(--accent);outline-offset:2px}.search-field input{background:transparent;border:0;border-radius:28px}.search-field input:focus-visible{outline:none}.food-list{margin-bottom:20px;display:grid;gap:8px}.food-row{display:flex;align-items:center;justify-content:space-between;gap:16px;width:100%;padding:16px;border:1px solid var(--line);border-radius:18px;background:#f8f9fb;text-align:left;color:inherit;min-height:60px}.food-row:hover{background:var(--soft)}.food-row strong,.diary-row strong,.plan-row strong,.journal-row strong{display:block}.food-row small,.diary-row small,.plan-row small,.journal-row small,.session summary small{display:block;margin-top:4px;color:var(--muted)}.diary-row{padding:12px 0;border-top:1px solid var(--line)}.diary-row .row-actions{justify-content:flex-end}.portion-preview{display:flex;flex-direction:column;gap:8px;padding:16px;background:var(--soft);border-radius:10px}.portion-preview strong{font-size:22px}.portion-preview span{color:var(--muted)}.routine-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,260px),1fr));gap:16px}.routine-card{padding:20px;border:1px solid var(--line);border-radius:20px;min-width:0}.routine-card h3{margin-bottom:8px;font-size:18px}.routine-card ul{list-style:none;padding:0;margin:12px 0}.routine-card li{display:flex;justify-content:space-between;gap:12px;padding:8px 0;border-bottom:1px solid var(--line);overflow-wrap:anywhere}.routine-card li>span{white-space:nowrap;color:var(--muted)}.routine-card .disclosure{margin-bottom:0}.plan-row{display:flex;align-items:center;gap:12px;border-top:1px solid var(--line);padding:12px 0}.plan-row>div{flex:1;min-width:0}.set-number{display:inline-grid;place-items:center;width:28px;height:28px;border-radius:8px;background:var(--soft);color:var(--muted);font-size:13px;flex-shrink:0}.workout-sets{display:grid;gap:12px;margin-bottom:16px}.workout-set{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr) 44px 44px;gap:8px;align-items:center;border:1px solid var(--line);border-radius:20px;padding:12px}.workout-set>strong{display:flex;align-items:center;gap:10px;grid-column:1 / -1;margin-bottom:4px}.workout-set .field{margin:0;align-self:end}.workout-set>.field:nth-of-type(1){grid-row:2;grid-column:1}.workout-set>.field:nth-of-type(2){grid-row:2;grid-column:2}.workout-set input{padding:10px 8px}.workout-set .field-label{font-size:13px}.workout-set.completed{border-color:#abc6b5;background:#f3f8f5}.set-complete{display:flex;align-items:center;gap:8px;min-height:44px;grid-column:1 / -1;grid-row:3;font-size:14px;cursor:pointer}.set-complete input,.checkbox input{width:22px;height:22px;accent-color:var(--ink);flex-shrink:0}.workout-set>.icon-button{grid-row:2;grid-column:3;align-self:end}.workout-set>.icon-button:last-child{grid-column:4}.exercise-options{list-style:none;padding:4px;margin:8px 0 16px;max-height:300px;overflow-y:auto;display:grid;gap:8px;scrollbar-width:thin}.exercise-options button{min-height:60px;width:100%;text-align:left;padding:12px;border:1px solid var(--line);border-radius:18px;background:#f5f6f9;color:inherit;display:flex;align-items:center;gap:10px}.exercise-options button:hover{background:#eaf0fc}.exercise-options button[aria-pressed=true]{background:#eaf0fc;border-color:#839bca}.exercise-options small{display:block;color:var(--muted);margin-top:4px}.exercise-info{flex:1;min-width:0}.exercise-marker,.exercise-add{display:grid;place-items:center;flex-shrink:0;width:32px;height:32px;border-radius:10px}.exercise-marker{background:#fff;color:var(--muted)}.exercise-add{background:var(--ink);color:#fff}.exercise-filters{padding:8px 12px;background:#f5f6f9;border:1px solid var(--line);border-radius:20px;margin-bottom:16px}.exercise-filters summary{display:flex;align-items:center;gap:8px;font-size:14px}.exercise-filters summary::-webkit-details-marker{display:none}.exercise-filters summary>svg:last-child{margin-left:auto}.exercise-filters[open] summary>svg:last-child{transform:rotate(180deg)}.muscle-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;padding:8px 0}.muscle-grid button{min-height:48px;padding:10px;background:#fff;color:var(--ink);border:1px solid var(--line);border-radius:14px;text-align:left;font-size:14px;font-weight:600;overflow-wrap:anywhere}.muscle-grid button:first-child{grid-column:1 / -1}.muscle-grid button[aria-pressed=true]{background:var(--ink);color:#fff}.picker-results-heading{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:8px;font-size:14px}.rest-timer{position:sticky;top:0;z-index:2;display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:8px;background:#edf3ff;border:1px solid #c4d4f4;border-radius:20px;padding:12px;margin:16px 0;box-shadow:0 3px 8px #202b4212}.rest-timer output{display:block;font-size:28px;font-variant-numeric:tabular-nums;font-weight:700}.rest-timer [role=status]{display:block;font-size:13px}.rest-timer .row-actions{gap:4px}.rest-timer .button{padding:10px}.session{border-bottom:1px solid var(--line)}.session>summary{display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:12px;padding:20px 0;list-style:none}.session>summary::-webkit-details-marker{display:none}.session>summary:after{content:"+";color:var(--muted);font-size:22px}.session[open]>summary:after{content:"-"}.session summary>div{flex:1;min-width:min(180px,100%)}.session-detail{padding-bottom:20px}.session-detail p,.journal-row p{white-space:pre-wrap}.set-summary{display:flex;justify-content:space-between;flex-wrap:wrap;gap:8px;border-radius:6px;background:var(--soft);padding:10px;margin-bottom:6px;font-size:14px}.session-detail .row-actions,.trend-chart{margin-top:16px}.trend-chart svg{display:block;width:100%;height:auto;min-height:140px;max-height:240px}.chart-range,.chart-dates{display:flex;justify-content:space-between;gap:16px;align-items:center}.chart-range strong{font-size:26px}.chart-range small{font-weight:400}.chart-range>span,.chart-dates{color:var(--muted);font-size:13px}.chart-dates{margin-top:8px}.chart-empty{display:grid;place-items:center;min-height:160px;padding:24px;text-align:center;color:var(--muted);border-radius:10px;background:var(--soft)}.section-heading>select{width:auto;max-width:100%}.journal-row{display:flex;justify-content:space-between;align-items:flex-start;flex-wrap:wrap;gap:12px;padding:16px 0;border-top:1px solid var(--line)}.journal-row>div:first-child{flex:1;min-width:min(220px,100%)}.journal-row p{margin:8px 0 0}.gallery-filters{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}.photo-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:16px;margin-top:20px}.photo-card{overflow:hidden;border:1px solid var(--line);border-radius:12px}.photo-card img{width:100%;aspect-ratio:3 / 4;object-fit:contain;background:var(--soft);display:block}.photo-card>div{display:flex;flex-direction:column;gap:6px;padding:12px}.photo-card span{color:var(--muted)}.account-grid{display:grid;grid-template-columns:minmax(0,1.2fr) minmax(0,1fr);gap:20px;align-items:start}.settings-section{padding-block:12px}.danger-zone{border-color:#edc9c3}.danger-zone>summary{color:var(--danger)}.danger-zone .primary{background:var(--danger)}.account-signout .primary{color:var(--muted);background:#fff;border-color:var(--line)}.connection-banner{position:sticky;top:0;z-index:30;display:flex;justify-content:center;align-items:flex-start;gap:10px;padding:12px 16px;color:#68521d;background:#fff1c9;font-size:14px}.connection-banner svg{margin-top:3px}.update-toast{position:fixed;bottom:24px;right:24px;z-index:100;max-width:380px;padding:20px;border:1px solid var(--line);border-radius:16px;background:#fff;box-shadow:0 8px 32px #202b4226}.update-toast p{margin:8px 0}.privacy-page{max-width:800px;margin:32px auto;padding:32px}.privacy-page .brand{margin-bottom:24px}.privacy-page h2{margin-top:28px}.privacy-page a:not(.brand):not(.button){color:var(--accent);text-decoration:underline}.recovery{max-width:500px;margin:48px auto}.welcome{max-width:480px;padding:40px 16px;margin:auto}.welcome-heading{margin-bottom:24px}.welcome-heading .brand{margin-bottom:12px;font-size:20px}.welcome-heading p{margin:0}.auth-card h1{font-size:28px;margin-bottom:24px}.auth-card .form .primary{width:100%}.auth-switch{display:flex;flex-direction:column;align-items:flex-start;gap:4px;margin:16px 0}.checkbox{display:block;font-size:14px;margin-bottom:16px}.checkbox input{vertical-align:middle;margin:0 8px 4px 0}.checkbox a{color:var(--accent);text-decoration:underline}.setup-card{background:var(--soft);border:1px solid var(--line);border-radius:12px;padding:16px}.setup-card ol{padding-left:20px}.setup-card li{margin-bottom:12px}@media(max-width:1100px){.today-grid{grid-template-columns:1fr}.today-value span{display:inline}.account-grid{grid-template-columns:1fr;gap:0}}@media(max-width:800px){.sidebar{inset:auto 12px calc(12px + env(safe-area-inset-bottom));width:auto;max-width:560px;margin-inline:auto;padding:6px;border:1px solid #ffffff;border-radius:40px;background:#ffffffed;-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px);box-shadow:0 8px 32px #252c4530,0 1px 4px #252c4520}.sidebar>.brand{display:none}.sidebar nav{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:4px}.sidebar nav a{flex-direction:column;gap:4px;padding:8px 2px;font-size:12px;min-width:0;border-radius:32px}.main-area{margin-left:0}.topbar{justify-content:space-between;padding:calc(8px + env(safe-area-inset-top)) max(16px,env(safe-area-inset-right)) 8px max(16px,env(safe-area-inset-left));background:transparent}.mobile-brand{display:inline-flex}.page-content{padding:24px max(16px,env(safe-area-inset-right)) calc(120px + env(safe-area-inset-bottom)) max(16px,env(safe-area-inset-left))}.meal-grid{grid-template-columns:1fr;gap:16px}.today-grid{gap:16px}.today-card{padding:20px}.today-card h2{margin-bottom:12px}.update-toast{bottom:calc(108px + env(safe-area-inset-bottom));left:16px;right:16px;max-width:none}}@media(max-width:500px){.page-heading{flex-direction:column;align-items:stretch;gap:16px;margin-bottom:24px}.page-heading>.button{width:100%}.panel{padding:20px 16px;border-radius:24px}.settings-section{padding-block:12px}.section-heading>.row-actions,.section-heading>.field{max-width:100%}.view-nav{width:100%;gap:2px}.view-nav a{flex:1;min-width:0;padding:10px 8px;font-size:13px}.modal{width:calc(100% - 16px);max-height:calc(100dvh - 24px - env(safe-area-inset-top) - env(safe-area-inset-bottom));padding:20px 16px;border-radius:24px}.modal-heading{gap:8px}.modal-heading h2{font-size:20px}.form-grid{gap:0 12px}.gallery-filters{grid-template-columns:1fr}.workout-set{grid-template-columns:minmax(0,1fr) minmax(0,1fr) 44px}.workout-set>.icon-button:last-child{grid-row:3;grid-column:3}.set-complete{grid-column:1 / 3}.photo-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.privacy-page,.recovery{margin:16px}.welcome{padding-top:24px}.summary-actions>.primary{flex:1}.exercise-marker{display:none}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation:none!important;transition:none!important}}
