:root{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;--color-canvas:#f7f5fb;--color-ink:#211b2c;--color-muted:#6d6878;--color-purple-800:#4e347a;--color-green-700:#277448;--color-purple-soft:#eee8f8;--color-green-soft:#e8f4ec;--surface:#fff;--surface-2:#f1edf8;--line:#e4dfea;--accent:#5b3a94;--accent-deep:#4e347a;--accent-soft:#eee8f8;--on-accent:#fff;--green:#277448;--green-soft:#e8f4ec;--warn:#a35a00;--warn-soft:#fff1dc;--bad:#b3261e;--bad-soft:#fbe4e1;--shadow:0 .6rem 1.4rem #2a184a4d;--nav-height:4.9rem;--chevron:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%236d6878' stroke-width='2.2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M6 9l6 6 6-6'/%3E%3C/svg%3E")}@media (prefers-color-scheme:dark){:root{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--color-canvas:#15111c;--color-ink:#f0ecf6;--color-muted:#a49db3;--color-purple-800:#cdb9f5;--color-green-700:#6fce93;--color-purple-soft:#2e2445;--color-green-soft:#1b2e23;--surface:#1e1928;--surface-2:#272033;--line:#342c42;--accent:#b79cf0;--accent-deep:#cdb9f5;--accent-soft:#2e2445;--on-accent:#1a1027;--green:#6fce93;--green-soft:#1b2e23;--warn:#f0b566;--warn-soft:#33260f;--bad:#ff8f86;--bad-soft:#3a1a18;--shadow:0 .6rem 1.4rem #00000080;--chevron:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23a49db3' stroke-width='2.2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M6 9l6 6 6-6'/%3E%3C/svg%3E")}}*{box-sizing:border-box}body{background:var(--color-canvas);color:var(--color-ink);margin:0;font-family:Inter,ui-sans-serif,system-ui,sans-serif;font-size:14px;line-height:1.45}h1,h2,h3,p{margin:0}h1,h2,h3{text-wrap:balance}.num{font-variant-numeric:tabular-nums}.sr-only{clip:rect(0, 0, 0, 0);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}button,select,input{font:inherit}input,select,textarea{font-size:16px}select{appearance:none;border:1px solid var(--line);background-color:var(--color-canvas);background-image:var(--chevron);width:100%;min-height:2.75rem;color:var(--color-ink);text-overflow:ellipsis;background-position:right .8rem center;background-repeat:no-repeat;background-size:1.1rem;border-radius:.8rem;padding:0 2.5rem 0 .85rem;font-weight:500}select:focus-visible{border-color:var(--accent)}button{cursor:pointer;color:inherit}button:disabled{opacity:.6;cursor:wait}:focus-visible{outline:3px solid var(--accent);outline-offset:2px}.icon{stroke:currentColor;fill:none;stroke-width:1.8px;stroke-linecap:round;stroke-linejoin:round;flex:none;width:22px;height:22px}.icon-button{width:2.75rem;height:2.75rem;color:var(--color-ink);background:0 0;border:0;border-radius:50%;place-items:center;padding:0;display:grid}.icon-button:hover,.icon-button.soft{background:var(--surface-2)}.icon-button.accent{color:var(--accent)}.icon-button.danger:hover{background:var(--bad-soft);color:var(--bad)}.btn-primary,.btn-ghost,.btn-dashed{border-radius:.9rem;justify-content:center;align-items:center;gap:.5rem;min-height:3rem;padding:0 1rem;font-weight:700;text-decoration:none;display:inline-flex}.btn-primary{background:var(--accent);color:var(--on-accent);border:0}.btn-ghost{border:1px solid var(--line);color:var(--accent-deep);background:0 0;font-size:.85rem;font-weight:600}.btn-ghost:hover{background:var(--accent-soft)}.btn-dashed{border:1px dashed var(--accent);color:var(--accent-deep);background:0 0;font-weight:600}.btn-danger{border:1px solid var(--line);color:var(--bad);background:0 0}.chip{background:var(--accent-soft);color:var(--accent-deep);border:0;border-radius:99px;align-items:center;gap:.3rem;padding:.05rem .5rem;font-size:.7rem;font-weight:600;display:inline-flex}.chip.plain{border:1px solid var(--line);background:var(--surface);color:var(--color-muted);font-weight:500}.chip.ok{background:var(--green-soft);color:var(--green)}.chip.warn{background:var(--warn-soft);color:var(--warn)}.chip.bad{background:var(--bad-soft);color:var(--bad)}.chip.neutral{background:var(--surface-2);color:var(--color-muted)}.chip .dot{background:var(--green);border-radius:50%;width:.45rem;height:.45rem}.panel{border:1px solid var(--line);background:var(--surface);border-radius:1.25rem;gap:.25rem;padding:.4rem 1rem 1rem;display:grid}.panel>h3,.section-label{color:var(--color-muted);letter-spacing:.08em;text-transform:uppercase;margin:.75rem 0 .25rem;font-size:.72rem;font-weight:700}.page-title{color:var(--color-ink);letter-spacing:-.02em;margin:.25rem .15rem 0;font-size:1.5rem;font-weight:800}.input{border:1px solid var(--line);background:var(--color-canvas);border-radius:.8rem;align-items:center;min-height:3rem;padding-inline:.75rem;display:flex}.input:focus-within{border-color:var(--accent);box-shadow:0 0 0 3px color-mix(in srgb, var(--accent) 25%, transparent)}.input input,.input select{min-width:0;min-height:2.75rem;color:var(--color-ink);background:0 0;border:0;outline:none;flex:1;padding:0;font-weight:600}.input input::placeholder{color:var(--color-muted);font-weight:400}.input em{width:1.9rem;color:var(--color-muted);flex:none;padding-left:.25rem;font-size:.8rem;font-style:normal}.input.spacer em{width:2.4rem}.field-stack{gap:.3rem;min-width:0;display:grid}.field-stack>span:first-child{color:var(--color-muted);font-size:.78rem;font-weight:600}.field-grid{gap:.65rem;display:grid}.field-row{grid-template-columns:minmax(0,2fr) minmax(0,1fr);align-items:center;gap:.75rem;display:grid}.field-row>span:first-child{font-size:.9rem;font-weight:600}.field-row .input{padding-inline:.6rem}.field-row .input input{text-align:right}.field-row .input input[type=date]{appearance:none;width:100%;min-width:0}.field-row-wide{grid-template-columns:minmax(0,1fr) minmax(0,2fr)}.field-row .input em:empty{display:none}@media (width<=26rem){.field-row:not(.field-row-wide){grid-template-columns:minmax(0,3fr) minmax(0,2fr)}}@media (width<=22rem){.field-row{gap:.5rem}.field-row .input{padding-inline:.5rem}.field-row .input input{font-size:.9rem}.field-row .input em{width:1.6rem;padding-left:.15rem}}.field-row .input input[type=date]::-webkit-calendar-picker-indicator{margin:0 0 0 .35rem;padding:0}.help{color:var(--color-muted);font-size:.75rem}.error-message{background:var(--bad-soft);color:var(--bad);border-radius:.8rem;padding:.6rem .75rem;font-size:.82rem}.segmented{background:var(--surface-2);border-radius:.9rem;grid-auto-columns:1fr;grid-auto-flow:column;gap:.2rem;padding:.2rem;display:grid}.segmented button{min-height:2.75rem;color:var(--color-muted);background:0 0;border:0;border-radius:.7rem;padding:0 .5rem;font-size:.85rem;font-weight:600}.segmented button[aria-pressed=true]{background:var(--surface);color:var(--accent-deep);box-shadow:0 1px 3px #00000024}.sheet-backdrop{z-index:40;overscroll-behavior:contain;background:#140a2373;justify-content:center;align-items:flex-end;display:flex;position:fixed;inset:0}.sheet{width:min(100%,42rem);max-height:92dvh;padding:.5rem 1rem max(1.25rem, env(safe-area-inset-bottom));background:var(--surface);border-radius:1.6rem 1.6rem 0 0;grid-template-columns:minmax(0,1fr);align-content:start;gap:.9rem;display:grid;overflow-y:auto}.sheet:before{content:"";background:var(--line);border-radius:99px;justify-self:center;width:2.5rem;height:5px}.sheet-header{justify-content:space-between;align-items:center;gap:.5rem;display:flex}.sheet-header h2{font-size:1.15rem}.sheet button,.sheet select,.sheet input,.sheet .input input{min-height:2.75rem}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}.form-hint{color:var(--color-muted);margin:0;font-size:.78rem}.field-row .input input[name=timezone],.field-row .input input[type=date]{text-align:center}.field-row .input input[type=date]::-webkit-date-and-time-value{text-align:center}.app-shell{width:min(100% - 2rem,42rem);padding:1rem 0 calc(var(--nav-height) + 6.5rem + env(safe-area-inset-bottom));margin:0 auto}.app-content{gap:.9rem;display:grid}.loading-screen{justify-items:start;gap:.5rem;padding-top:3rem;display:grid}.loading-screen h1{color:var(--accent-deep);letter-spacing:-.02em;font-size:1.6rem}.loading-screen p{color:var(--color-muted)}.offline-notice{background:var(--bad-soft);color:var(--bad);border-radius:1rem;padding:.75rem 1rem;font-weight:600}.passkey-banner{background:var(--accent-soft);color:var(--accent-deep);border-radius:1rem;grid-template-columns:1fr auto;align-items:center;gap:.5rem .75rem;padding:.6rem .75rem .6rem 1rem;display:grid}.passkey-banner p{font-size:.82rem;font-weight:600}.passkey-banner button{background:var(--accent);min-height:2.75rem;color:var(--on-accent);border:0;border-radius:.7rem;padding:0 .9rem;font-size:.8rem;font-weight:700}.passkey-banner [role=status]{grid-column:1/-1;font-size:.78rem;font-weight:500}.bottom-navigation{z-index:20;padding:.5rem max(.5rem, env(safe-area-inset-left)) calc(.6rem + env(safe-area-inset-bottom)) max(.5rem, env(safe-area-inset-right));border-top:1px solid var(--line);background:color-mix(in srgb, var(--surface) 94%, transparent);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);grid-template-columns:repeat(4,1fr);gap:.25rem;display:grid;position:fixed;bottom:0;left:0;right:0}.bottom-navigation a{min-height:2.75rem;color:var(--color-muted);border-radius:.8rem;justify-items:center;gap:.1rem;padding:.25rem 0;font-size:.7rem;font-weight:600;text-decoration:none;display:grid}.bottom-navigation .nav-pill{border-radius:99px;place-items:center;width:3.4rem;height:1.8rem;display:grid}.bottom-navigation a[aria-current=page]{color:var(--accent-deep)}.bottom-navigation a[aria-current=page] .nav-pill{background:var(--accent-soft)}.settings-footer{display:grid}.settings-footer .btn-danger{min-height:3rem}.today-view{gap:.9rem;width:100%;display:grid}.day-header{grid-template-columns:2.75rem minmax(0,1fr) 2.75rem;align-items:center;gap:.25rem;display:grid}.day-title{text-align:center;min-width:0}.day-title h1{color:var(--color-ink);letter-spacing:-.01em;font-size:1.15rem;font-weight:700}.day-meta{flex-wrap:wrap;justify-content:center;align-items:center;gap:.35rem;margin-top:.15rem;display:flex}.sync-chip{cursor:pointer;position:relative}.sync-chip:after{content:"";position:absolute;inset:-.7rem -.3rem}.sync-chip .dot.problem{background:var(--warn)}.net-hero{--hero-sub:color-mix(in srgb, var(--on-accent) 75%, transparent);background:var(--accent);color:var(--on-accent);border-radius:1.25rem;gap:.75rem;padding:1rem 1.15rem .85rem;display:grid}.net-hero.empty{gap:.35rem;padding-bottom:1rem}.hero-label{color:var(--hero-sub);letter-spacing:.08em;text-transform:uppercase;font-size:.75rem;font-weight:600}.hero-value{align-items:baseline;gap:.4rem;margin-top:.2rem;display:flex}.hero-value strong{letter-spacing:-.03em;font-size:clamp(2.3rem,11vw,2.9rem);font-weight:800;line-height:1}.hero-value span{color:var(--hero-sub);font-weight:600}.hero-split{border-top:1px solid color-mix(in srgb, var(--on-accent) 22%, transparent);grid-template-columns:1fr 1fr;gap:.75rem;margin:0;padding-top:.75rem;display:grid}.hero-split>div{flex-direction:column-reverse;display:flex}.hero-split dt{color:var(--hero-sub);font-size:.72rem}.hero-split dd{margin:0;font-size:1.15rem;font-weight:700}.hero-details{color:var(--hero-sub);font-size:.78rem}.hero-details summary{cursor:pointer;align-items:center;gap:.25rem;min-height:1.75rem;list-style:none;display:inline-flex}.hero-details summary::-webkit-details-marker{display:none}.hero-details .icon{width:14px;height:14px}.hero-details[open] .icon{transform:rotate(180deg)}.hero-details p{margin-top:.3rem}.macro-goals{border:1px solid var(--line);background:var(--surface);border-radius:1.25rem;gap:.9rem;padding:1rem;display:grid}.macro-head{justify-content:space-between;align-items:center;gap:.5rem;display:flex}.macro-head h3{font-size:.9rem;font-weight:600}.macro-values{color:var(--color-muted);margin-top:.05rem;font-size:.75rem}.macro-track{margin-top:.45rem;padding-bottom:1rem;position:relative}.macro-bar{background:var(--surface-2);border-radius:99px;height:.65rem;position:relative;overflow:hidden}.macro-bar.has-goal{--zone:var(--green-soft);background:linear-gradient(to right, var(--surface-2) 80%, var(--zone) 80%)}.macro-bar.has-goal.max{--zone:var(--bad-soft)}.macro-bar i{border-radius:99px;position:absolute;inset:0 auto 0 0}.macro-bar .planned{background:color-mix(in srgb, var(--accent) 35%, transparent)}.macro-bar .consumed{background:var(--accent)}.macro-title{align-items:center;gap:.1rem;display:flex}.info-button{width:2rem;height:2rem;color:var(--warn);background:0 0;border:0;border-radius:50%;place-items:center;margin:-.4rem 0 -.4rem -.2rem;padding:0;display:grid}.info-button .icon{width:.9rem;height:.9rem}.goal-breakdown{gap:.5rem;margin:.5rem 0 1rem;display:grid}.goal-breakdown>div{background:var(--surface-2);border-radius:.8rem;justify-content:space-between;align-items:baseline;gap:1rem;padding:.55rem .7rem;display:flex}.goal-breakdown dt small{color:var(--color-muted);font-size:.72rem;display:block}.goal-breakdown dd{margin:0;font-weight:700}.goal-breakdown .total{border-top:1px solid var(--line);background:0 0;border-radius:0;font-weight:700}.macro-tick{background:var(--color-ink);border-radius:2px;width:2px;height:1.05rem;margin-left:-1px;position:absolute;top:-.2rem;left:80%}.macro-goal-label{color:var(--color-muted);white-space:nowrap;font-size:.68rem;font-weight:600;position:absolute;top:.95rem;left:80%;transform:translate(-50%)}.macro-legend{color:var(--color-muted);flex-wrap:wrap;gap:.3rem .9rem;margin:0;padding:0;font-size:.72rem;list-style:none;display:flex}.macro-legend li{align-items:center;gap:.35rem;display:inline-flex}.swatch{background:var(--accent);border-radius:99px;width:.9rem;height:.4rem}.swatch.planned{background:color-mix(in srgb, var(--accent) 35%, transparent)}.swatch.tick{background:var(--color-ink);width:2px;height:.8rem}.swatch.zone-min{border:1px solid var(--green);background:var(--green-soft);border-radius:3px;height:.7rem}.swatch.zone-max{border:1px solid var(--bad);background:var(--bad-soft);border-radius:3px;height:.7rem}.yesterday-banner{border:1px solid color-mix(in srgb, var(--warn) 35%, transparent);background:var(--warn-soft);border-radius:1rem;flex-direction:column;gap:.35rem;padding:.85rem .9rem .9rem;display:flex;position:relative}.yesterday-banner p{margin:0}.yesterday-banner-title{padding-inline-end:2rem;font-size:.9375rem;font-weight:650;line-height:1.3}.yesterday-banner-body{color:var(--color-muted);font-size:.8125rem;line-height:1.4}.yesterday-banner-error{color:var(--bad);font-size:.8125rem}.yesterday-banner-dismiss{width:2.75rem;height:2.75rem;color:var(--color-muted);background:0 0;border:0;border-radius:50%;font-size:1.1rem;position:absolute;top:.15rem;right:.15rem}.yesterday-banner-actions{gap:.5rem;margin-top:.35rem;display:flex}.yesterday-banner-actions button{text-align:center;border:1px solid #0000;border-radius:.75rem;flex:1 1 0;min-width:0;min-height:2.75rem;padding-inline:1rem;font-size:.875rem;font-weight:600}.yesterday-banner-actions .yesterday-confirm{border-color:var(--green);background:var(--green-soft);color:var(--green)}.yesterday-banner-actions .yesterday-review{border-color:color-mix(in srgb, var(--warn) 35%, transparent);color:var(--color-ink);background:0 0}.yesterday-banner-actions button:disabled{opacity:.7}.day-actions{grid-template-columns:1fr 1fr;align-items:start;gap:.5rem;display:grid}.day-actions>*,.day-actions .btn-ghost{min-width:0}.day-copy-action{display:grid}.day-actions .btn-ghost{width:100%;min-height:2.75rem;padding-inline:.5rem}.day-copy-status,.save-state{color:var(--color-muted);font-size:.8rem}.fab{z-index:15;right:max(1rem,50vw - 21rem);bottom:calc(var(--nav-height) + 1rem + env(safe-area-inset-bottom));background:var(--accent);min-height:3.2rem;color:var(--on-accent);box-shadow:var(--shadow);border:0;border-radius:99px;align-items:center;gap:.5rem;padding:0 1.15rem 0 .9rem;font-weight:700;display:inline-flex;position:fixed}.meal-list{gap:.75rem;display:grid}.meal-section{border:1px solid var(--line);background:var(--surface);border-radius:1.25rem;min-width:0}.meal-section.workout{border-color:color-mix(in srgb, var(--green) 45%, var(--line))}.meal-card{display:grid}.meal-heading{align-items:center;gap:.1rem;padding:.3rem .3rem .3rem 1rem;display:flex;position:relative}.meal-done{border:solid var(--green);border-width:0 2px 2px 0;flex:none;width:.35rem;height:.7rem;margin:-.25rem 0 0 .7rem;transform:rotate(45deg)}.meal-done.pending{border-color:color-mix(in srgb, var(--color-muted) 55%, transparent)}.meal-heading h2{flex:1;font-size:1rem;font-weight:700}.meal-kcal{color:var(--color-muted);margin-right:.4rem;font-size:.82rem}.meal-state:not(.sr-only){color:var(--color-muted);margin-right:.4rem;font-size:.72rem}.meal-menu{position:relative}.meal-menu summary{cursor:pointer;list-style:none}.meal-menu summary::-webkit-details-marker{display:none}.meal-menu .menu-warn{color:var(--warn)}.meal-menu .menu-danger{color:var(--bad)}.meal-menu .menu{z-index:5;border:1px solid var(--line);background:var(--surface);min-width:13.5rem;box-shadow:var(--shadow);border-radius:.9rem;padding:.35rem;display:grid;position:absolute;top:100%;right:0}.meal-menu .menu button{text-align:left;background:0 0;border:0;border-radius:.6rem;min-height:2.75rem;padding:0 .75rem;font-weight:600}.meal-menu .menu button:hover{background:var(--surface-2)}.meal-empty{padding:.25rem .75rem .75rem 1rem}.swipe-row{border-top:1px solid var(--line);position:relative;overflow:hidden}.meal-card>.swipe-row:last-child{border-bottom-right-radius:calc(1.25rem - 1px);border-bottom-left-radius:calc(1.25rem - 1px)}.swipe-action{background:var(--bad);color:#fff;opacity:0;border:0;place-items:center;width:5.5rem;padding:0;transition:opacity .12s;display:grid;position:absolute;top:0;bottom:0;right:0}.swipe-row.open .swipe-action,.swipe-row.peek .swipe-action{opacity:1}.swipe-action .icon{width:22px;height:22px}.diary-entry-with-delete{background:var(--surface);touch-action:pan-y;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:.1rem;padding:.3rem .3rem .3rem 1rem;transition:transform .18s ease-out;display:grid}.diary-entry-with-delete.dragging{transition:none}.diary-entry-row{grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:.5rem;display:grid}.entry-main{cursor:pointer;align-items:center;gap:.65rem;min-width:0;min-height:2.75rem;display:flex}.entry-check{appearance:none;border:2px solid var(--line);background:var(--surface);cursor:pointer;border-radius:50%;flex:none;place-items:center;width:1.6rem;height:1.6rem;margin:0;display:grid}.entry-check:checked{border-color:var(--green);background:var(--green)}.entry-check:checked:after{content:"";border:2px solid #fff;border-width:0 2px 2px 0;width:.35rem;height:.7rem;margin-top:-2px;transform:rotate(45deg)}.meal-card.all-consumed .diary-entry-row .entry-check:checked{background:0 0;border-color:#0000}.meal-card.all-consumed .diary-entry-row .entry-check:checked:after{border-color:var(--green)}.entry-name{min-width:0;display:grid}.entry-name b{overflow-wrap:anywhere;font-size:.9rem;font-weight:600}.entry-name small{color:var(--color-muted);font-size:.75rem}.diary-entry-row[data-consumed=false] .entry-name b{color:var(--color-muted);font-weight:500}.qty-group{align-items:center;gap:.25rem;display:inline-flex}.qty-step{border:1px solid var(--line);background:var(--surface-2);width:1.9rem;height:1.9rem;color:var(--color-ink);border-radius:50%;flex:none;place-items:center;padding:0;font-size:1.15rem;font-weight:600;line-height:1;display:grid}.qty-step:hover{border-color:var(--accent)}.entry-multiple{color:var(--accent);font-weight:700}.qty{border:1px solid var(--line);background:var(--color-canvas);border-radius:.7rem;align-items:center;display:inline-flex}.qty input{width:3.6rem;min-height:2.75rem;color:var(--color-ink);text-align:right;background:0 0;border:0;outline:none;padding:0 .1rem 0 .5rem;font-weight:600}.qty:focus-within{border-color:var(--accent)}.qty span{color:var(--color-muted);padding-right:.6rem;font-size:.8rem}.entry-status:not(.sr-only){color:var(--color-muted);grid-column:1/-1;font-size:.72rem}.entry-retry{min-height:2.75rem}.undo-row{background:var(--surface-2);border-radius:.8rem;justify-content:space-between;align-items:center;gap:.5rem;margin:.25rem .5rem;padding:.3rem .4rem .3rem .75rem;font-size:.85rem;display:flex}.meal-macros{color:var(--color-muted);align-items:center;gap:.9rem;margin:0;padding:0 1rem .4rem;font-size:.78rem;display:flex}.meal-macros .entry-check{margin-right:-.25rem}.activity-tag{background:var(--green-soft);color:var(--green);border-radius:.8rem;align-items:center;gap:.5rem;margin:.4rem .75rem .2rem 1rem;padding:.5rem .65rem;font-size:.8rem;font-weight:600;display:flex}.activity-tag .icon{width:18px;height:18px}.unlink-all{width:2.75rem;height:2.75rem;color:var(--green);background:0 0;border:0;border-radius:50%;flex:none;place-items:center;margin:-.4rem -.4rem -.4rem auto;padding:0;display:grid}.unlink-all:hover{background:color-mix(in srgb, var(--green) 18%, transparent)}.unlink-all .icon{width:20px;height:20px}.entry-link{color:var(--color-muted)}.entry-link.linked,.entry-link[aria-expanded=true]{color:var(--green)}.activity-unlinked{color:var(--color-muted);text-transform:uppercase;letter-spacing:.04em;gap:.4rem;margin:.5rem 1rem .1rem;font-size:.75rem;font-weight:600;display:grid}.activity-unlinked select{text-transform:none;letter-spacing:0;min-height:2.5rem;font-size:.8rem;font-weight:500}.swipe-row.child{border-top:0}.swipe-row.aligned .diary-entry-with-delete{padding-left:.45rem}.swipe-row.child .diary-entry-with-delete{background:linear-gradient(to right, transparent calc(1.25rem - 1px), var(--green-soft) calc(1.25rem - 1px), var(--green-soft) calc(1.25rem + 1px), transparent calc(1.25rem + 1px)), var(--surface)}.entry-activity{grid-column:1/-1;min-height:2.5rem;margin:0 .7rem .35rem 0;font-size:.8rem}.sheet-message{font-size:1rem;font-weight:600}.sheet-actions{gap:.5rem;display:grid}.activity-picker ul{gap:.5rem;margin:0;padding:0;list-style:none;display:grid}.activity-picker li button{text-align:left;justify-content:space-between;width:100%}.meal-toggle{min-height:2.75rem;color:inherit;text-align:left;cursor:pointer;background:0 0;border:0;flex:1;align-items:center;gap:.4rem;padding:0;display:flex}.meal-toggle h2{flex:0 auto}.meal-toggle svg{width:1.1rem;height:1.1rem;color:var(--color-muted);flex:none;transition:transform .15s;transform:rotate(-90deg)}.meal-toggle svg.open{transform:none}.meal-chips{scrollbar-width:none;gap:.4rem;margin-inline:-1rem;padding-inline:1rem;display:flex;overflow-x:auto}.meal-chips::-webkit-scrollbar{display:none}.meal-chips button{border:1px solid var(--line);min-height:2.75rem;color:var(--color-muted);background:0 0;border-radius:99px;flex:none;padding:0 .9rem;font-size:.82rem;font-weight:600}.meal-chips button[aria-pressed=true]{border-color:var(--accent);background:var(--accent);color:var(--on-accent)}.search-form{gap:.4rem;display:grid}.search-field{border:1px solid var(--line);background:var(--color-canvas);min-height:3rem;color:var(--color-muted);border-radius:.9rem;align-items:center;gap:.5rem;padding:0 .35rem 0 .75rem;display:flex}.search-field:focus-within{border-color:var(--accent);box-shadow:0 0 0 3px color-mix(in srgb, var(--accent) 25%, transparent)}.search-field input{min-width:0;min-height:2.75rem;color:var(--color-ink);background:0 0;border:0;outline:none;flex:1;padding:0}.search-field button{background:var(--accent-soft);min-height:2.5rem;color:var(--accent-deep);border:0;border-radius:.7rem;padding:0 .85rem;font-weight:700}.brand-filter summary{min-height:2.75rem;color:var(--color-muted);cursor:pointer;align-items:center;font-size:.8rem;font-weight:600;display:inline-flex}.scan-button{background:var(--accent-soft);min-height:3.4rem;color:var(--accent-deep);text-align:left;border:0;border-radius:.9rem;align-items:center;gap:.75rem;padding:0 .9rem;font-weight:700;display:flex}.scan-button small{color:var(--color-muted);font-size:.75rem;font-weight:500;display:block}.barcode-head{align-items:center;gap:.75rem;display:flex}.barcode-head h3{font-size:1rem}.food-list{margin:0;padding:0;list-style:none;display:grid}.food-list li{border-bottom:1px solid var(--line);grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:.6rem;min-height:3.5rem;padding:.35rem 0;display:grid}.food-info{min-width:0;display:grid}.food-info b{overflow-wrap:anywhere;font-size:.9rem;font-weight:600}.food-info small{color:var(--color-muted);font-size:.75rem}.add-circle{background:var(--accent-soft);width:2.75rem;height:2.75rem;color:var(--accent-deep);border:0;border-radius:50%;place-items:center;padding:0;display:grid}.fab.sheet-fab{z-index:2;justify-self:end;width:auto;margin-top:0;position:sticky;bottom:.25rem;right:auto}.manual-backdrop{z-index:41}.notice{background:var(--surface-2);color:var(--color-muted);border-radius:.8rem;padding:.6rem .75rem;font-size:.82rem}.food-form{gap:.65rem;display:grid}.food-form>h3,.add-food-sheet .section-label{color:var(--color-muted);letter-spacing:.08em;text-transform:uppercase;margin-top:.4rem;font-size:.72rem;font-weight:700}.add-food-sheet .section-label{margin-bottom:.2rem}.barcode-scanner{gap:.6rem;display:grid}.barcode-scanner video{object-fit:cover;background:#000;border-radius:1rem;width:100%;max-height:16rem}.barcode-scanner form{gap:.5rem;display:grid}.search-field .search-clear{width:2.5rem;color:var(--color-muted);background:0 0;place-items:center;padding:0;display:grid}.search-field .search-clear svg{width:1.1rem;height:1.1rem}.search-field input[type=search]::-webkit-search-cancel-button{-webkit-appearance:none;display:none}.show-more{width:100%;margin-top:.6rem}.add-food-sheet{padding-bottom:5rem}.search-field input{flex:1 1 0;width:0}.search-field button{flex:none}.settings-view{gap:.9rem;display:grid}.setting-row{border-bottom:1px solid var(--line);justify-content:space-between;align-items:center;gap:.75rem;min-height:3.25rem;padding-block:.4rem;display:flex}.setting-row:last-child{border-bottom:0}.setting-row b{font-size:.9rem;font-weight:600;display:block}.setting-row small{color:var(--color-muted);font-size:.75rem}.goal-current{display:flex}.settings-view form .btn-primary{margin-top:.4rem}.history{margin:0;padding:0;list-style:none;display:grid}.history li{gap:.1rem;padding:.5rem 0 .5rem 1.4rem;display:grid;position:relative}.history li:before{content:"";background:var(--line);border-radius:50%;width:.6rem;height:.6rem;position:absolute;top:.95rem;left:0}.history li.current:before{background:var(--accent);box-shadow:0 0 0 4px var(--accent-soft)}.history b{font-size:.88rem;font-weight:600}.history small{color:var(--color-muted);font-size:.75rem}.history:empty:after{content:"No earlier versions yet.";color:var(--color-muted);font-size:.82rem}.row-actions{align-items:center;gap:.25rem;display:flex}.icon-action{width:2.75rem;height:2.75rem;color:var(--color-muted);background:0 0;border:0;border-radius:50%;flex:none;place-items:center;margin-block:-.4rem;padding:0;display:grid}.icon-action:hover{background:var(--surface-2);color:var(--bad)}.icon-action .icon{width:20px;height:20px}.confirm-row{border-bottom:1px solid var(--line);flex-wrap:wrap;align-items:center;gap:.5rem;padding:.6rem 0;font-size:.85rem;display:flex}.confirm-row span{flex:100%}.confirm-row button{height:3rem;font-size:.85rem;line-height:1.2}.setting-link{color:inherit;text-decoration:none}.setting-link .icon{width:20px;height:20px;color:var(--color-muted);flex:none}.api-docs{gap:.9rem;min-width:0;display:grid}.api-docs-head{align-items:center;gap:.75rem;display:flex}.api-docs-head .page-title{margin:0}.api-back{min-height:2.75rem;color:var(--accent-deep);background:0 0;border:0;align-items:center;gap:.15rem;padding:0 .5rem 0 0;font-size:.9rem;font-weight:600;display:inline-flex}.api-back .icon{width:18px;height:18px}.api-search{border:1px solid var(--line);background:var(--surface);color:var(--color-muted);border-radius:.9rem;align-items:center;gap:.5rem;padding:0 .85rem;display:flex}.api-search .icon{flex:none;width:18px;height:18px}.api-search input{min-width:0;min-height:2.75rem;color:var(--color-ink);background:0 0;border:0;flex:1;font-size:1rem}.api-search input:focus{outline:none}.api-search:focus-within{border-color:var(--accent)}.api-conventions{border:1px solid var(--line);background:var(--surface);border-radius:1rem;padding:.25rem 1rem;font-size:.85rem}.api-conventions summary{cursor:pointer;align-items:center;min-height:2.75rem;font-weight:600;display:flex}.api-group{gap:.5rem;display:grid}.api-group .section-label{margin:.5rem .15rem 0}.api-endpoint{border:1px solid var(--line);background:var(--surface);border-radius:1rem;min-width:0;overflow:hidden}.api-endpoint summary{cursor:pointer;align-items:center;gap:.6rem;height:2.9rem;padding:0 .85rem;list-style:none;display:flex}.api-endpoint summary::-webkit-details-marker{display:none}.api-method{background:var(--accent-soft);min-width:3.4rem;color:var(--accent-deep);text-align:center;border-radius:.4rem;flex:none;padding:.15rem .4rem;font:700 .66rem ui-monospace,SFMono-Regular,Menlo,monospace}.api-method.get{background:var(--green-soft);color:var(--green)}.api-method.put,.api-method.patch{background:var(--warn-soft);color:var(--warn)}.api-method.delete{background:var(--bad-soft);color:var(--bad)}.api-path{text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0;font:.78rem ui-monospace,SFMono-Regular,Menlo,monospace;overflow:hidden}.api-body{border-top:1px solid var(--line);gap:.6rem;padding:.75rem .85rem .9rem;font-size:.85rem;display:grid}.api-body p{overflow-wrap:anywhere;margin:0}.api-body code,.api-conventions code{background:var(--accent-soft);border-radius:.3rem;padding:.05rem .3rem;font-size:.78rem}.api-table{border:1px solid var(--line);border-radius:.6rem;overflow-x:auto}.api-table table{border-collapse:collapse;width:100%;font-size:.76rem}.api-table caption{color:var(--color-muted);letter-spacing:.08em;text-align:left;text-transform:uppercase;padding:.4rem .6rem;font-size:.68rem;font-weight:700}.api-table th,.api-table td{border-top:1px solid var(--line);text-align:left;vertical-align:top;padding:.4rem .6rem}.api-table th{white-space:nowrap;font:600 .74rem ui-monospace,SFMono-Regular,Menlo,monospace}.api-table em{color:var(--color-muted);font-style:normal}.api-response{align-items:baseline;gap:.5rem;display:flex}.api-body pre{background:var(--accent-soft);border-radius:.6rem;max-height:18rem;margin:0;padding:.6rem .75rem;font:.72rem/1.45 ui-monospace,SFMono-Regular,Menlo,monospace;overflow:auto}.api-tokens{gap:.9rem;min-width:0;display:grid}.api-tokens>*,.api-tokens .panel>*{min-width:0}.api-tokens .page-title{margin-top:0}.api-tokens .api-docs-head:empty{display:none}.token-row{border-bottom:1px solid var(--line);gap:.35rem;padding-block:.65rem;display:grid}.token-row:last-child{border-bottom:0}.token-head{justify-content:space-between;align-items:center;gap:.5rem;display:flex}.token-head b{text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0;font-size:.9rem;font-weight:600;overflow:hidden}.token-head .icon-action{margin-block:-.65rem -.4rem;margin-inline-end:-.5rem}.token-meta{color:var(--color-muted);flex-wrap:wrap;gap:.1rem .8rem;font-size:.75rem;display:flex}.token-field{gap:.3rem;font-size:.8rem;display:grid}.token-field>span:first-child{color:var(--color-muted)}.api-tokens form .btn-primary{margin-top:.4rem}.token-once{background:var(--warn-soft);color:var(--warn);border-radius:.9rem;margin:0;padding:.75rem .9rem;font-size:.85rem}.token-secret{background:var(--accent-soft);overflow-wrap:anywhere;-webkit-user-select:all;user-select:all;border-radius:.8rem;padding:.7rem .8rem;font:.78rem/1.5 ui-monospace,SFMono-Regular,Menlo,monospace;display:block}.token-curl{border:1px solid var(--line);background:var(--color-canvas);border-radius:.7rem;margin:0;padding:.6rem .75rem;font:.72rem/1.45 ui-monospace,SFMono-Regular,Menlo,monospace;overflow-x:auto}.api-tokens .passkey-button:disabled{opacity:.7}.api-tokens form>.btn-ghost{margin-top:1rem}.calendar-view{gap:.9rem;display:grid}.calendar-card{border:1px solid var(--line);background:var(--surface);border-radius:1.25rem;gap:.5rem;padding:.75rem;display:grid}.calendar-controls{grid-template-columns:2.75rem 1fr 2.75rem;align-items:center;gap:.25rem;display:grid}.calendar-controls h3{text-align:center;font-size:1.05rem}.calendar-grid{grid-template-columns:repeat(7,minmax(0,1fr));gap:.3rem;display:grid}.calendar-grid>span{min-width:0;display:grid}.calendar-weekday{color:var(--color-muted);letter-spacing:.06em;text-align:center;text-transform:uppercase;padding-block:.25rem;font-size:.68rem;font-weight:700}.calendar-day{aspect-ratio:1;width:100%;min-height:2.75rem;color:var(--color-ink);background:0 0;border:1px solid #0000;border-radius:.9rem;place-items:center;padding:0;font-size:.95rem;font-weight:600;display:grid;position:relative}.calendar-day:hover{background:var(--surface-2)}.calendar-day[data-has-entries=true]:after{content:"";background:var(--green);border-radius:50%;width:5px;height:5px;margin-left:-2.5px;position:absolute;bottom:.35rem;left:50%}.calendar-day.today{border-color:var(--accent);color:var(--accent-deep)}.calendar-day.selected{border-color:var(--accent);background:var(--accent);color:var(--on-accent)}.calendar-day.selected[data-has-entries=true]:after{background:var(--on-accent)}.calendar-legend{color:var(--color-muted);flex-wrap:wrap;gap:.3rem 1rem;margin:0;padding:.3rem .25rem 0;font-size:.75rem;list-style:none;display:flex}.calendar-legend li{align-items:center;gap:.4rem;display:inline-flex}.calendar-legend .key{border-radius:4px;width:.75rem;height:.75rem}.calendar-legend .key.selected{background:var(--accent)}.calendar-legend .key.today{border:1.5px solid var(--accent)}.calendar-legend .key.marker{background:var(--green);border-radius:50%;width:.4rem;height:.4rem}.selected-day{border:1px solid var(--line);background:var(--surface);border-radius:1.25rem;gap:.75rem;padding:1rem;display:grid}.selected-day-title{justify-content:space-between;align-items:center;gap:.75rem;display:flex}.selected-day-title h3{font-size:1.05rem}.foods-view{gap:.75rem;display:grid}.search-field.solo{background:var(--surface)}.foods-list{border:1px solid var(--line);background:var(--surface);border-radius:1.25rem;margin:0;padding:0;list-style:none;display:grid;overflow:hidden}.foods-list li{border-bottom:1px solid var(--line);grid-template-columns:minmax(0,1fr) 2.75rem;align-items:center;gap:.25rem;padding:.3rem .4rem .3rem 1rem;display:grid}.foods-list li:last-child{border-bottom:0}.food-main{text-align:left;background:0 0;border:0;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:.6rem;min-height:3.5rem;padding:0;display:grid}.food-text{min-width:0;display:grid}.food-text strong{overflow-wrap:anywhere;font-size:.92rem;font-weight:600}.food-text small{color:var(--color-muted);font-size:.75rem}.food-text .macros b{color:var(--accent-deep);font-weight:700}.food-kcal{justify-items:end;font-size:.95rem;font-weight:700;display:grid}.food-kcal small{color:var(--color-muted);font-size:.68rem;font-weight:500}.food-sheet{max-height:94dvh}.food-sheet h3{font-size:1.15rem}.food-sheet .section-label{margin:.3rem 0 0}.sheet-buttons{grid-template-columns:1fr 1fr;gap:.5rem;display:grid}.login-view{align-content:center;gap:1.5rem;min-height:calc(100dvh - 2rem);padding-block:1.5rem;display:grid}.brand{justify-items:start;gap:.6rem;display:grid}.brand-mark{background:var(--accent);width:3.4rem;height:3.4rem;color:var(--on-accent);border-radius:1.1rem;place-items:center;display:grid}.brand-mark .icon{width:28px;height:28px}.brand small{color:var(--green);letter-spacing:.12em;font-size:.72rem;font-weight:700}.brand h1{color:var(--accent-deep);letter-spacing:-.03em;font-size:clamp(1.8rem,8vw,2.2rem);line-height:1.1}.brand p{color:var(--color-muted)}.login-card{border:1px solid var(--line);background:var(--surface);border-radius:1.25rem;gap:1rem;padding:1.1rem 1rem 1rem;display:grid}.login-form{gap:.9rem;display:grid}.keep-signed-in{align-items:center;gap:.65rem;min-height:2.75rem;font-size:.88rem;display:flex}.keep-signed-in input{width:1.2rem;height:1.2rem;accent-color:var(--accent)}.or-divider{color:var(--color-muted);align-items:center;gap:.75rem;font-size:.75rem;display:flex}.or-divider:before,.or-divider:after{content:"";background:var(--line);flex:1;height:1px}.passkey-button{border:1px solid var(--accent);min-height:3rem;color:var(--accent-deep);background:0 0;border-radius:.9rem;justify-content:center;align-items:center;gap:.6rem;font-weight:700;display:flex}.passkey-button:hover{background:var(--accent-soft)}
