:root{--color-bg:#fff8fb;--color-surface:#fff;--color-surface-blue:#f0f9ff;--color-surface-pink:#fff2f7;--color-text:#25364d;--color-muted:#64758b;--color-text-muted:var(--color-muted);--color-accent:#1979b8;--color-accent-strong:#11679e;--color-accent-soft:#e1f4ff;--color-pink:#df5c91;--color-pink-soft:#ffe7f1;--color-danger:#b42318;--color-success:#287a52;--color-weight:#1979b8;--color-body-fat:#df5c91;--color-sleep:#4e74d8;--color-energy:#e36f99;--color-border:#cce6f4;--shadow-card:0 .7rem 1.8rem #3b8ebe1f, 0 .15rem .6rem #df5c910d;--space-1:.25rem;--space-2:.5rem;--space-3:.75rem;--space-4:1rem;--space-5:1.5rem;--space-6:2rem;--radius-card:1.25rem;--radius-control:.875rem;--safe-area-top:env(safe-area-inset-top,0px);--safe-area-bottom:env(safe-area-inset-bottom,0px)}*{box-sizing:border-box}html{color:var(--color-text);background:var(--color-bg);font-family:system-ui,sans-serif}body{background:var(--color-bg);min-width:20rem;min-height:100vh;margin:0}button,input,select,textarea{font:inherit}button,a{min-block-size:44px}button{padding:var(--space-2) var(--space-4);color:var(--color-text);background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-control);box-shadow:0 .2rem .6rem #398bb812}:focus-visible{outline:3px solid var(--color-accent);outline-offset:3px}#root,.app-shell{min-height:100vh}.app-shell{grid-template-rows:auto 1fr auto;display:grid}.skip-link{z-index:20;min-block-size:auto;padding:var(--space-2) var(--space-3);color:var(--color-surface);background:var(--color-text);border-radius:var(--radius-control);position:fixed;inset-block-start:var(--space-2);inset-inline-start:var(--space-2);transform:translateY(-200%)}.skip-link:focus{transform:translateY(0)}.app-header{align-items:center;gap:var(--space-3);padding:calc(var(--space-3) + var(--safe-area-top)) var(--space-4) var(--space-3);border-block-end:1px solid var(--color-border);-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);background:linear-gradient(105deg,#e1f4fff0,#ffe7f1e6);display:flex;box-shadow:0 .25rem 1rem #3683b114}.app-brand{color:var(--color-accent-strong);letter-spacing:.02em;margin-inline-end:auto;font-size:1.125rem;font-weight:800}.settings-link,.bottom-tabs a{color:var(--color-accent);place-items:center;text-decoration:none;display:grid}.settings-link{padding-inline:var(--space-3)}main{width:min(100%,52rem);padding:var(--space-5) var(--space-4);margin-inline:auto}h1,h2,p{margin-block-start:0}h1{font-size:1.5rem}.bottom-tabs{gap:var(--space-2);padding:var(--space-2) var(--space-4) calc(var(--space-2) + var(--safe-area-bottom));border-block-start:1px solid var(--color-border);-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);background:#ffffffeb;grid-template-columns:repeat(2,minmax(0,1fr));display:grid;position:sticky;inset-block-end:0;box-shadow:0 -.4rem 1.5rem #3789b717}.bottom-tabs a[aria-current=page]{color:var(--color-accent-strong);background:linear-gradient(120deg, var(--color-accent-soft), var(--color-pink-soft));border-radius:var(--radius-control);font-weight:700}.fatal-state{text-align:center;place-items:center;min-height:100vh;display:grid}.empty-state{padding:var(--space-6) var(--space-4);color:var(--color-muted);text-align:center;background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-card);box-shadow:var(--shadow-card)}.empty-state h2{color:var(--color-text)}.empty-state__action{margin-block-start:var(--space-4)}.source-badge{min-block-size:1.75rem;padding-inline:var(--space-2);color:var(--color-muted);background:linear-gradient(120deg, var(--color-accent-soft), var(--color-pink-soft));border-radius:999px;align-items:center;font-size:.875rem;display:inline-flex}.dialog-backdrop,.confirm-dialog::backdrop{background:#1412188c}.dialog-backdrop{z-index:30;padding:var(--space-4);place-items:center;display:grid;position:fixed;inset:0}.confirm-dialog{width:min(100%,28rem);padding:var(--space-5);color:var(--color-text);background:var(--color-surface);border-radius:var(--radius-card);border:0;margin:auto;box-shadow:0 1rem 3rem #14121840}.confirm-dialog__actions{justify-content:flex-end;gap:var(--space-3);margin-block-start:var(--space-5);display:flex}.danger-button{color:#fff;background:var(--color-danger);border-color:var(--color-danger)}.visually-hidden{clip:rect(0 0 0 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.pwa-notice,.pwa-update-prompt{z-index:40;inset-inline:var(--space-4);width:min(calc(100% - (2 * var(--space-4))), 32rem);padding:var(--space-4);color:var(--color-text);background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-card);margin-inline:auto;position:fixed;box-shadow:0 1rem 3rem #14121833}.pwa-notice{pointer-events:none;inset-block-start:calc(var(--space-4) + var(--safe-area-top))}.pwa-update-prompt{inset-block-end:calc(4.5rem + var(--space-4) + var(--safe-area-bottom))}.pwa-update-actions{gap:var(--space-3);flex-wrap:wrap;display:flex}.pwa-update-actions button:first-child{color:#fff;background:var(--color-accent);border-color:var(--color-accent)}.page-heading-row,.trend-heading-row{justify-content:space-between;align-items:center;gap:var(--space-3);margin-block-end:var(--space-5);display:flex}.page-heading-row h1,.trend-heading-row h2{margin-block-end:0}.today-page__header{gap:var(--space-3);margin-block-end:var(--space-5);display:grid}.today-page__header h1{margin-block-end:0}.today-page__eyebrow,.today-page__privacy{color:var(--color-muted)}.today-page__eyebrow{margin-block-end:var(--space-1);font-weight:600}.today-page__privacy{align-items:center;gap:var(--space-2);width:fit-content;padding:var(--space-2) var(--space-3);background:linear-gradient(120deg,#e1f4ffcc,#ffe7f1b8);border:1px solid #ffffffe6;border-radius:999px;margin:0;font-size:.875rem;display:inline-flex;box-shadow:0 .25rem .8rem #3f92bf14}.today-page__privacy span{color:var(--color-success)}.today-page__error{padding:var(--space-5);background:var(--color-surface);border-radius:var(--radius-card)}.health-card--skeleton{background:linear-gradient(100deg, var(--color-surface) 20%, var(--color-accent-soft) 45%, var(--color-surface) 70%);background-size:220% 100%;min-block-size:10.5rem;animation:1.4s ease-in-out infinite dashboard-skeleton}@keyframes dashboard-skeleton{to{background-position-x:-220%}}@media (prefers-reduced-motion:reduce){.health-card--skeleton{animation:none}}.health-grid{gap:var(--space-3);grid-template-columns:repeat(2,minmax(0,1fr));display:grid}.health-card{min-width:0;min-height:10.5rem;padding:var(--space-4);border-radius:var(--radius-card);box-shadow:var(--shadow-card);background:linear-gradient(145deg,#fffffffa,#f1faffeb);border:1px solid #c4e5f6cc;flex-direction:column;display:flex;overflow:hidden}.health-card:nth-child(2n){background:linear-gradient(145deg,#fffffffa,#fff1f7e6);border-color:#f9cde0cc}.health-card__header{align-items:center;gap:var(--space-2);display:flex}.health-card__header h2{margin:0;font-size:.95rem}.health-card__icon{width:2rem;height:2rem;color:var(--color-weight);background:linear-gradient(145deg, var(--color-accent-soft), #f7fcff);border-radius:.85rem;place-items:center;padding:.4rem;display:grid}.health-card__icon svg{width:100%;height:100%}.health-card--bodyFat .health-card__icon{color:var(--color-body-fat);background:linear-gradient(145deg, var(--color-pink-soft), #fffafd)}.health-card--sleep .health-card__icon{color:var(--color-sleep)}.health-card--energy .health-card__icon{color:var(--color-energy);background:linear-gradient(145deg, var(--color-pink-soft), #fffafd)}.health-card__value{align-items:baseline;gap:var(--space-1);min-width:0;margin:var(--space-4) 0 var(--space-1);letter-spacing:-.03em;font-size:clamp(1.45rem,7vw,2rem);font-weight:750;display:flex}.health-card__unit{color:var(--color-muted);letter-spacing:0;font-size:.75rem;font-weight:650}.health-card__supporting,.metric-history-item p{color:var(--color-muted)}.health-card__supporting{min-height:2.5em;margin:0;font-size:.78rem}.health-card__actions,.metric-history-item__actions{gap:var(--space-3);flex-wrap:wrap;margin-block-start:var(--space-4);display:flex}.health-card__actions{justify-content:space-between;margin-block-start:auto;padding-block-start:var(--space-3)}.health-card__actions a,.metric-history-item__actions a,.primary-link,.add-data-dialog a{color:var(--color-accent);align-items:center;display:inline-flex}.health-card__actions a{gap:var(--space-1);min-block-size:44px;font-size:.875rem}.today-page__add{justify-content:center;align-items:center;gap:var(--space-2);width:100%;min-height:3.25rem;color:#165b83;background:#cfefff;border-color:#b8e2f7;margin-block-start:var(--space-4);font-weight:750;display:flex;box-shadow:0 .65rem 1.5rem #578ebe29}.add-data-dialog{width:100%;max-width:none;padding:var(--space-5) var(--space-4) calc(var(--space-5) + var(--safe-area-bottom));color:var(--color-text);background:var(--color-surface);border:0;border-radius:1.5rem 1.5rem 0 0;margin:auto 0 0;inset:auto 0 0;box-shadow:0 1rem 3rem #14121840}.add-data-dialog::backdrop{background:#1412188c}.add-data-dialog nav{gap:var(--space-2);margin-block:var(--space-4);grid-template-columns:repeat(2,minmax(0,1fr));display:grid}.dialog-backdrop{align-items:end;padding:0}.add-data-dialog a{justify-content:center;gap:var(--space-2);min-height:5.25rem;padding-inline:var(--space-3);background:linear-gradient(145deg, var(--color-accent-soft), var(--color-pink-soft));border-radius:var(--radius-control);border:1px solid #ffffffe6;place-items:center;text-decoration:none;display:grid}.add-data-dialog a svg{width:1.5rem;height:1.5rem}.add-data-dialog__choice--bodyFat svg{color:var(--color-body-fat)}.add-data-dialog__choice--sleep svg{color:var(--color-sleep)}.add-data-dialog__choice--energy svg{color:var(--color-energy)}.metric-form-page form{gap:var(--space-4);max-width:32rem;display:grid}.form-field{gap:var(--space-2);display:grid}.form-field label{font-weight:700}.form-field input,.form-field select,.form-field textarea{min-block-size:44px;width:100%;padding:var(--space-2) var(--space-3);color:var(--color-text);background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-control);box-shadow:inset 0 1px #fffc}.form-field input:focus,.form-field select:focus,.form-field textarea:focus{border-color:var(--color-accent);box-shadow:0 0 0 4px #1979b81a}.form-field textarea{resize:vertical;min-block-size:8rem}.workout-summary{margin-block-end:var(--space-5)}.workout-summary__grid{gap:var(--space-2);grid-template-columns:repeat(3,minmax(0,1fr));display:grid}.workout-summary__grid article,.workout-list-item{padding:var(--space-4);background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-card);box-shadow:var(--shadow-card)}.workout-summary__grid article:nth-child(2){background:var(--color-surface-pink);border-color:#f5cde0}.workout-summary__grid article:first-child,.workout-summary__grid article:nth-child(3){background:var(--color-surface-blue)}.workout-summary__grid article p{margin-block-end:0;font-size:1.125rem;font-weight:700}.workout-summary__grid article{min-inline-size:0;padding:var(--space-3)}.workout-summary__grid article h3{font-size:.75rem;line-height:1.35}.workout-summary__coverage{color:var(--color-text-muted);margin-block-start:var(--space-1);font-size:.6875rem;line-height:1.35;display:block}.workout-calendar{padding:var(--space-4);border:1px solid var(--color-border);border-radius:var(--radius-card);box-shadow:var(--shadow-card);background:#ffffffe0;margin-block-end:var(--space-5)}.workout-calendar__toolbar{gap:var(--space-2);grid-template-columns:44px minmax(0,1fr) 44px;align-items:center;margin-block-end:var(--space-3);display:grid}.workout-calendar__toolbar h2{text-align:center;margin:0}.workout-calendar__toolbar button{min-block-size:44px;min-inline-size:44px;padding:var(--space-2)}.workout-calendar__today-control{grid-column:1/-1;justify-self:center;inline-size:auto;padding-inline:var(--space-4)!important}.workout-calendar__table{table-layout:fixed;border-spacing:2px;inline-size:100%}.workout-calendar__table th{padding-block:var(--space-2);color:var(--color-text-muted);text-align:center;font-size:.75rem;font-weight:600}.workout-calendar__table td{vertical-align:top;padding:0}.workout-calendar__day,.workout-calendar__filler{overflow-wrap:anywhere;text-align:start;flex-direction:column;align-items:flex-start;min-block-size:52px;inline-size:100%;padding:.25rem;display:flex}.workout-calendar__day{background:linear-gradient(145deg, var(--color-surface), var(--color-surface-blue));border-radius:calc(var(--radius-control) / 2);border-color:#0000;gap:.125rem}.workout-calendar__day[aria-pressed=true]{background:linear-gradient(145deg, var(--color-accent-soft), var(--color-pink-soft));border:2px solid var(--color-pink);box-shadow:inset 0 0 0 1px var(--color-surface)}.workout-calendar__day[data-today=true] .workout-calendar__date{color:var(--color-surface);background:linear-gradient(105deg, var(--color-accent), var(--color-pink));border-radius:999px;padding-inline:.25rem}.workout-calendar__day small{color:var(--color-text-muted);font-size:.625rem}.workout-calendar__date{font-size:.75rem;font-weight:700;line-height:1.3}.workout-calendar__workout{inline-size:100%;color:var(--color-text);font-size:.6875rem;font-weight:600;line-height:1.25;display:block}.workout-calendar__workout:before{content:"";background:var(--color-pink);vertical-align:.0625rem;border-radius:50%;block-size:.375rem;inline-size:.375rem;margin-inline-end:.1875rem;display:inline-block}.workout-calendar__filler{color:var(--color-text-muted);opacity:.45}.workout-calendar__skeleton-cell{background:var(--color-border);border-radius:calc(var(--radius-control) / 2);opacity:.45;min-block-size:52px;display:block}.workout-day-details{margin-block-end:var(--space-5)}.workout-day-details__list{gap:var(--space-3);display:grid}.workouts-page__alert{justify-content:space-between;align-items:center;gap:var(--space-3);padding:var(--space-3);background:var(--color-surface);border:1px solid var(--color-border);border-inline-start:4px solid var(--color-accent);border-radius:var(--radius-control);flex-wrap:wrap;margin-block-end:var(--space-4);display:flex}.workouts-page__alert p,.workouts-page__month-status{margin:0}.workouts-page__month-status{margin-block:calc(-1 * var(--space-3)) var(--space-4);color:var(--color-text-muted);text-align:center}.workouts-page__add{inline-size:100%;color:#fff;background:linear-gradient(105deg, var(--color-accent), var(--color-pink));border-radius:var(--radius-control);justify-content:center;margin-block-start:var(--space-5);font-weight:750;text-decoration:none;display:flex;box-shadow:0 .65rem 1.5rem #578ebe33}.workout-history-list,.workout-history-list section{gap:var(--space-3);display:grid}.workout-history-list section+section{margin-block-start:var(--space-4)}.workout-list-item{gap:var(--space-3);display:grid}.workout-list-item h3,.workout-list-item p{margin-block-end:var(--space-1)}.workout-list-item__notes{white-space:pre-wrap;overflow-wrap:anywhere}.workout-list-item__readonly{color:var(--color-muted)}.form-field [aria-invalid=true]{border-color:var(--color-danger)}.field-error,.form-error{color:var(--color-danger);margin:0}.trend-section,.history-section{padding:var(--space-4);background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-card);box-shadow:var(--shadow-card);margin-block-start:var(--space-5)}.trend-range{gap:var(--space-2);display:flex}.trend-range [aria-pressed=true]{color:#fff;background:var(--color-accent);border-color:var(--color-accent)}.trend-chart__visual{max-width:100%;overflow-x:auto}.trend-chart__visual .recharts-wrapper{max-width:100%}.trend-chart__empty{color:var(--color-muted);text-align:center}.metric-history-list{gap:var(--space-3);display:grid}.metric-history-item{gap:var(--space-3);padding-block:var(--space-4);border-block-end:1px solid var(--color-border);align-items:center;display:grid}.metric-history-item:last-child{border-block-end:0}.metric-history-item p{margin-block-end:var(--space-1)}.metric-history-item__value{font-size:1.25rem;font-weight:700;color:var(--color-text)!important}@media (width>=42rem){.dialog-backdrop{padding:var(--space-4);align-items:center}.add-data-dialog{width:min(100%,28rem);padding:var(--space-5);border-radius:var(--radius-card);margin:auto;inset:0}.health-grid{gap:var(--space-4)}.health-card{padding:var(--space-5)}.metric-history-item{grid-template-columns:minmax(0,1fr) auto auto}.workout-summary__grid{grid-template-columns:repeat(3,minmax(0,1fr))}.workout-list-item{grid-template-columns:minmax(0,1fr) auto auto;align-items:center}}
