:root,:host{--fa-font-solid: normal 900 1em/1 "Font Awesome 7 Free";--fa-font-regular: normal 400 1em/1 "Font Awesome 7 Free";--fa-font-light: normal 300 1em/1 "Font Awesome 7 Pro";--fa-font-thin: normal 100 1em/1 "Font Awesome 7 Pro";--fa-font-duotone: normal 900 1em/1 "Font Awesome 7 Duotone";--fa-font-duotone-regular: normal 400 1em/1 "Font Awesome 7 Duotone";--fa-font-duotone-light: normal 300 1em/1 "Font Awesome 7 Duotone";--fa-font-duotone-thin: normal 100 1em/1 "Font Awesome 7 Duotone";--fa-font-brands: normal 400 1em/1 "Font Awesome 7 Brands";--fa-font-sharp-solid: normal 900 1em/1 "Font Awesome 7 Sharp";--fa-font-sharp-regular: normal 400 1em/1 "Font Awesome 7 Sharp";--fa-font-sharp-light: normal 300 1em/1 "Font Awesome 7 Sharp";--fa-font-sharp-thin: normal 100 1em/1 "Font Awesome 7 Sharp";--fa-font-sharp-duotone-solid: normal 900 1em/1 "Font Awesome 7 Sharp Duotone";--fa-font-sharp-duotone-regular: normal 400 1em/1 "Font Awesome 7 Sharp Duotone";--fa-font-sharp-duotone-light: normal 300 1em/1 "Font Awesome 7 Sharp Duotone";--fa-font-sharp-duotone-thin: normal 100 1em/1 "Font Awesome 7 Sharp Duotone";--fa-font-slab-regular: normal 400 1em/1 "Font Awesome 7 Slab";--fa-font-slab-press-regular: normal 400 1em/1 "Font Awesome 7 Slab Press";--fa-font-whiteboard-semibold: normal 600 1em/1 "Font Awesome 7 Whiteboard";--fa-font-thumbprint-light: normal 300 1em/1 "Font Awesome 7 Thumbprint";--fa-font-notdog-solid: normal 900 1em/1 "Font Awesome 7 Notdog";--fa-font-notdog-duo-solid: normal 900 1em/1 "Font Awesome 7 Notdog Duo";--fa-font-etch-solid: normal 900 1em/1 "Font Awesome 7 Etch";--fa-font-graphite-thin: normal 100 1em/1 "Font Awesome 7 Graphite";--fa-font-jelly-regular: normal 400 1em/1 "Font Awesome 7 Jelly";--fa-font-jelly-fill-regular: normal 400 1em/1 "Font Awesome 7 Jelly Fill";--fa-font-jelly-duo-regular: normal 400 1em/1 "Font Awesome 7 Jelly Duo";--fa-font-chisel-regular: normal 400 1em/1 "Font Awesome 7 Chisel";--fa-font-utility-semibold: normal 600 1em/1 "Font Awesome 7 Utility";--fa-font-utility-duo-semibold: normal 600 1em/1 "Font Awesome 7 Utility Duo";--fa-font-utility-fill-semibold: normal 600 1em/1 "Font Awesome 7 Utility Fill"}.svg-inline--fa{box-sizing:content-box;display:var(--fa-display, inline-block);height:1em;overflow:visible;vertical-align:-.125em;width:var(--fa-width, 1.25em)}.svg-inline--fa.fa-2xs{vertical-align:.1em}.svg-inline--fa.fa-xs{vertical-align:0em}.svg-inline--fa.fa-sm{vertical-align:-.0714285714em}.svg-inline--fa.fa-lg{vertical-align:-.2em}.svg-inline--fa.fa-xl{vertical-align:-.25em}.svg-inline--fa.fa-2xl{vertical-align:-.3125em}.svg-inline--fa.fa-pull-left,.svg-inline--fa .fa-pull-start{float:inline-start;margin-inline-end:var(--fa-pull-margin, .3em)}.svg-inline--fa.fa-pull-right,.svg-inline--fa .fa-pull-end{float:inline-end;margin-inline-start:var(--fa-pull-margin, .3em)}.svg-inline--fa.fa-li{width:var(--fa-li-width, 2em);inset-inline-start:calc(-1 * var(--fa-li-width, 2em));inset-block-start:.25em}.fa-layers-counter,.fa-layers-text{display:inline-block;position:absolute;text-align:center}.fa-layers{display:inline-block;height:1em;position:relative;text-align:center;vertical-align:-.125em;width:var(--fa-width, 1.25em)}.fa-layers .svg-inline--fa{top:0;right:0;bottom:0;left:0;margin:auto;position:absolute;transform-origin:center center}.fa-layers-text{left:50%;top:50%;transform:translate(-50%,-50%);transform-origin:center center}.fa-layers-counter{background-color:var(--fa-counter-background-color, #ff253a);border-radius:var(--fa-counter-border-radius, 1em);box-sizing:border-box;color:var(--fa-inverse, #fff);line-height:var(--fa-counter-line-height, 1);max-width:var(--fa-counter-max-width, 5em);min-width:var(--fa-counter-min-width, 1.5em);overflow:hidden;padding:var(--fa-counter-padding, .25em .5em);right:var(--fa-right, 0);text-overflow:ellipsis;top:var(--fa-top, 0);transform:scale(var(--fa-counter-scale, .25));transform-origin:top right}.fa-layers-bottom-right{bottom:var(--fa-bottom, 0);right:var(--fa-right, 0);top:auto;transform:scale(var(--fa-layers-scale, .25));transform-origin:bottom right}.fa-layers-bottom-left{bottom:var(--fa-bottom, 0);left:var(--fa-left, 0);right:auto;top:auto;transform:scale(var(--fa-layers-scale, .25));transform-origin:bottom left}.fa-layers-top-right{top:var(--fa-top, 0);right:var(--fa-right, 0);transform:scale(var(--fa-layers-scale, .25));transform-origin:top right}.fa-layers-top-left{left:var(--fa-left, 0);right:auto;top:var(--fa-top, 0);transform:scale(var(--fa-layers-scale, .25));transform-origin:top left}.fa-1x{font-size:1em}.fa-2x{font-size:2em}.fa-3x{font-size:3em}.fa-4x{font-size:4em}.fa-5x{font-size:5em}.fa-6x{font-size:6em}.fa-7x{font-size:7em}.fa-8x{font-size:8em}.fa-9x{font-size:9em}.fa-10x{font-size:10em}.fa-2xs{font-size:.625em;line-height:.1em;vertical-align:calc((6 / 10 - .375) * 1em)}.fa-xs{font-size:.75em;line-height:calc(1 / 12 * 1em);vertical-align:.125em}.fa-sm{font-size:.875em;line-height:calc(1 / 14 * 1em);vertical-align:calc((6 / 14 - .375) * 1em)}.fa-lg{font-size:1.25em;line-height:.05em;vertical-align:calc((6 / 20 - .375) * 1em)}.fa-xl{font-size:1.5em;line-height:calc(1 / 24 * 1em);vertical-align:-.125em}.fa-2xl{font-size:2em;line-height:.03125em;vertical-align:-.1875em}.fa-width-auto{--fa-width: auto}.fa-fw,.fa-width-fixed{--fa-width: 1.25em}.fa-ul{list-style-type:none;margin-inline-start:var(--fa-li-margin, 2.5em);padding-inline-start:0}.fa-ul>li{position:relative}.fa-li{inset-inline-start:calc(-1 * var(--fa-li-width, 2em));position:absolute;text-align:center;width:var(--fa-li-width, 2em);line-height:inherit}.fa-border{border-color:var(--fa-border-color, #eee);border-radius:var(--fa-border-radius, .1em);border-style:var(--fa-border-style, solid);border-width:var(--fa-border-width, .0625em);box-sizing:var(--fa-border-box-sizing, content-box);padding:var(--fa-border-padding, .1875em .25em)}.fa-pull-left,.fa-pull-start{float:inline-start;margin-inline-end:var(--fa-pull-margin, .3em)}.fa-pull-right,.fa-pull-end{float:inline-end;margin-inline-start:var(--fa-pull-margin, .3em)}.fa-beat{animation-name:fa-beat;animation-delay:var(--fa-animation-delay, 0s);animation-direction:var(--fa-animation-direction, normal);animation-duration:var(--fa-animation-duration, 1s);animation-iteration-count:var(--fa-animation-iteration-count, infinite);animation-timing-function:var(--fa-animation-timing, ease-in-out)}.fa-bounce{animation-name:fa-bounce;animation-delay:var(--fa-animation-delay, 0s);animation-direction:var(--fa-animation-direction, normal);animation-duration:var(--fa-animation-duration, 1s);animation-iteration-count:var(--fa-animation-iteration-count, infinite);animation-timing-function:var(--fa-animation-timing, cubic-bezier(.28, .84, .42, 1))}.fa-fade{animation-name:fa-fade;animation-delay:var(--fa-animation-delay, 0s);animation-direction:var(--fa-animation-direction, normal);animation-duration:var(--fa-animation-duration, 1s);animation-iteration-count:var(--fa-animation-iteration-count, infinite);animation-timing-function:var(--fa-animation-timing, cubic-bezier(.4, 0, .6, 1))}.fa-beat-fade{animation-name:fa-beat-fade;animation-delay:var(--fa-animation-delay, 0s);animation-direction:var(--fa-animation-direction, normal);animation-duration:var(--fa-animation-duration, 1s);animation-iteration-count:var(--fa-animation-iteration-count, infinite);animation-timing-function:var(--fa-animation-timing, cubic-bezier(.4, 0, .6, 1))}.fa-flip{animation-name:fa-flip;animation-delay:var(--fa-animation-delay, 0s);animation-direction:var(--fa-animation-direction, normal);animation-duration:var(--fa-animation-duration, 1s);animation-iteration-count:var(--fa-animation-iteration-count, infinite);animation-timing-function:var(--fa-animation-timing, ease-in-out)}.fa-shake{animation-name:fa-shake;animation-delay:var(--fa-animation-delay, 0s);animation-direction:var(--fa-animation-direction, normal);animation-duration:var(--fa-animation-duration, 1s);animation-iteration-count:var(--fa-animation-iteration-count, infinite);animation-timing-function:var(--fa-animation-timing, linear)}.fa-spin{animation-name:fa-spin;animation-delay:var(--fa-animation-delay, 0s);animation-direction:var(--fa-animation-direction, normal);animation-duration:var(--fa-animation-duration, 2s);animation-iteration-count:var(--fa-animation-iteration-count, infinite);animation-timing-function:var(--fa-animation-timing, linear)}.fa-spin-reverse{--fa-animation-direction: reverse}.fa-pulse,.fa-spin-pulse{animation-name:fa-spin;animation-direction:var(--fa-animation-direction, normal);animation-duration:var(--fa-animation-duration, 1s);animation-iteration-count:var(--fa-animation-iteration-count, infinite);animation-timing-function:var(--fa-animation-timing, steps(8))}@media (prefers-reduced-motion: reduce){.fa-beat,.fa-bounce,.fa-fade,.fa-beat-fade,.fa-flip,.fa-pulse,.fa-shake,.fa-spin,.fa-spin-pulse{animation:none!important;transition:none!important}}@keyframes fa-beat{0%,90%{transform:scale(1)}45%{transform:scale(var(--fa-beat-scale, 1.25))}}@keyframes fa-bounce{0%{transform:scale(1) translateY(0)}10%{transform:scale(var(--fa-bounce-start-scale-x, 1.1),var(--fa-bounce-start-scale-y, .9)) translateY(0)}30%{transform:scale(var(--fa-bounce-jump-scale-x, .9),var(--fa-bounce-jump-scale-y, 1.1)) translateY(var(--fa-bounce-height, -.5em))}50%{transform:scale(var(--fa-bounce-land-scale-x, 1.05),var(--fa-bounce-land-scale-y, .95)) translateY(0)}57%{transform:scale(1) translateY(var(--fa-bounce-rebound, -.125em))}64%{transform:scale(1) translateY(0)}to{transform:scale(1) translateY(0)}}@keyframes fa-fade{50%{opacity:var(--fa-fade-opacity, .4)}}@keyframes fa-beat-fade{0%,to{opacity:var(--fa-beat-fade-opacity, .4);transform:scale(1)}50%{opacity:1;transform:scale(var(--fa-beat-fade-scale, 1.125))}}@keyframes fa-flip{50%{transform:rotate3d(var(--fa-flip-x, 0),var(--fa-flip-y, 1),var(--fa-flip-z, 0),var(--fa-flip-angle, -180deg))}}@keyframes fa-shake{0%{transform:rotate(-15deg)}4%{transform:rotate(15deg)}8%,24%{transform:rotate(-18deg)}12%,28%{transform:rotate(18deg)}16%{transform:rotate(-22deg)}20%{transform:rotate(22deg)}32%{transform:rotate(-12deg)}36%{transform:rotate(12deg)}40%,to{transform:rotate(0)}}@keyframes fa-spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.fa-rotate-90{transform:rotate(90deg)}.fa-rotate-180{transform:rotate(180deg)}.fa-rotate-270{transform:rotate(270deg)}.fa-flip-horizontal{transform:scaleX(-1)}.fa-flip-vertical{transform:scaleY(-1)}.fa-flip-both,.fa-flip-horizontal.fa-flip-vertical{transform:scale(-1)}.fa-rotate-by{transform:rotate(var(--fa-rotate-angle, 0))}.svg-inline--fa .fa-primary{fill:var(--fa-primary-color, currentColor);opacity:var(--fa-primary-opacity, 1)}.svg-inline--fa .fa-secondary{fill:var(--fa-secondary-color, currentColor);opacity:var(--fa-secondary-opacity, .4)}.svg-inline--fa.fa-swap-opacity .fa-primary{opacity:var(--fa-secondary-opacity, .4)}.svg-inline--fa.fa-swap-opacity .fa-secondary{opacity:var(--fa-primary-opacity, 1)}.svg-inline--fa mask .fa-primary,.svg-inline--fa mask .fa-secondary{fill:#000}.svg-inline--fa.fa-inverse{fill:var(--fa-inverse, #fff)}.fa-stack{display:inline-block;height:2em;line-height:2em;position:relative;vertical-align:middle;width:2.5em}.fa-inverse{color:var(--fa-inverse, #fff)}.svg-inline--fa.fa-stack-1x{--fa-width: 1.25em;height:1em;width:var(--fa-width)}.svg-inline--fa.fa-stack-2x{--fa-width: 2.5em;height:2em;width:var(--fa-width)}.fa-stack-1x,.fa-stack-2x{top:0;right:0;bottom:0;left:0;margin:auto;position:absolute;z-index:var(--fa-stack-z-index, auto)}:root{font-family:Nunito,ui-rounded,Avenir Next,system-ui,-apple-system,sans-serif;line-height:1.5;color-scheme:light;color:var(--text);background:var(--bg);--bg: #f8fdff;--bg-gradient: radial-gradient(circle at 84% 4%, rgba(171, 225, 255, .55), transparent 30rem), linear-gradient(180deg, #f8fdff 0%, #eef8ff 100%);--text: #17344f;--text-muted: #5b7184;--text-subtle: #7a8fa3;--text-secondary: #3d5870;--text-label: #3d5870;--text-emphasis: #0e2941;--text-dialog: #3d5870;--text-plan: #3d5870;--text-stats: #17344f;--text-stats-label: #5b7184;--text-badge: #3d5870;--surface: #ffffff;--surface-muted: #e6f5ff;--surface-subtle: #f5fbff;--surface-accent: #eef8ff;--surface-input-disabled: #eef2f5;--surface-hover: #eef8ff;--surface-active: #f5fbff;--border: #ceeaff;--border-subtle: #dceaf3;--border-light: #e6f1f8;--border-faint: #edf1f4;--border-neutral: #d8e4ec;--primary: #41bd19;--primary-hover: #249808;--primary-subtle: #ebffe5;--primary-border: #9ee08a;--primary-text: #249808;--primary-text-dark: #1c7a06;--primary-text-mid: #2fab0e;--brand: #ff8b18;--brand-yellow: #ffc928;--brand-gradient: linear-gradient(145deg, #ffe02e, #ff921f);--danger: #ff6652;--danger-hover: #e84d39;--success: #249808;--warning: #ff8b18;--error-status: #ff6652;--tag-chip-bg: #e6f5ff;--tag-chip-hover: #ceeaff;--badge-bg: #e6f5ff;--progress-bg: #e7edf0;--progress-fill: #ff8b18;--input-disabled-text: #7a8fa3;--card-shadow: 0 10px 28px rgba(31, 92, 135, .1);--focus-ring: 0 0 0 3px rgba(65, 189, 25, .22);--fab-shadow: 0 10px 20px rgba(56, 183, 20, .28);--event-hover-shadow: 0 10px 24px rgba(31, 92, 135, .14);--modal-shadow: 0 18px 45px rgba(31, 92, 135, .16);--tooltip-shadow: 0 8px 20px rgba(31, 92, 135, .12);--backdrop: rgba(14, 41, 65, .4);--chart-intake: #ff8b18;--chart-burn: #5b7184;--chart-deficit: #41bd19;--chart-grid: #e6f1f8;--chart-axis: #5b7184;--chart-axis-line: #dceaf3;--chart-baseline: #91c9ef;--chart-workout: #ffc928;--chart-legend-text: #5b7184;--target-under: #ff6652;--target-over: #249808;--target-way-over: #ff8b18;--target-none: #9aaebd;--radius-sm: 14px;--radius-md: 22px;--radius-lg: 26px;--radius-pill: 999px}[data-theme=dark]{color-scheme:dark;--bg: #0e2941;--bg-gradient: radial-gradient(circle at 84% 4%, rgba(65, 189, 25, .08), transparent 28rem), linear-gradient(180deg, #0e2941 0%, #0a1f32 100%);--text: #e8f1f8;--text-muted: #9aaebd;--text-subtle: #7a8fa3;--text-secondary: #c5d4e0;--text-label: #c5d4e0;--text-emphasis: #f5fbff;--text-dialog: #c5d4e0;--text-plan: #c5d4e0;--text-stats: #e8f1f8;--text-stats-label: #9aaebd;--text-badge: #c5d4e0;--surface: #17344f;--surface-muted: #1f425f;--surface-subtle: #143048;--surface-accent: #1a3a56;--surface-input-disabled: #1f425f;--surface-hover: #1f425f;--surface-active: #254a68;--border: #2a4d6b;--border-subtle: #2a4d6b;--border-light: #1f425f;--border-faint: #1f425f;--border-neutral: #2a4d6b;--primary: #56d51f;--primary-hover: #41bd19;--primary-subtle: #1a3d1a;--primary-border: #3a7a28;--primary-text: #8aef5a;--primary-text-dark: #a8f57a;--primary-text-mid: #6dde35;--brand: #ff8b18;--brand-yellow: #ffc928;--tag-chip-bg: #1a3a56;--tag-chip-hover: #1f425f;--badge-bg: #1f425f;--progress-bg: #1f425f;--progress-fill: #ff8b18;--input-disabled-text: #7a8fa3;--card-shadow: 0 12px 32px rgba(0, 0, 0, .35);--focus-ring: 0 0 0 3px rgba(86, 213, 31, .28);--fab-shadow: 0 10px 22px rgba(0, 0, 0, .4);--event-hover-shadow: 0 10px 24px rgba(0, 0, 0, .3);--modal-shadow: 0 18px 45px rgba(0, 0, 0, .5);--tooltip-shadow: 0 8px 20px rgba(0, 0, 0, .4);--backdrop: rgba(0, 0, 0, .65);--chart-intake: #ff8b18;--chart-burn: #9aaebd;--chart-deficit: #56d51f;--chart-grid: #1f425f;--chart-axis: #9aaebd;--chart-axis-line: #2a4d6b;--chart-workout: #ffc928;--chart-legend-text: #9aaebd}*{box-sizing:border-box;margin:0;padding:0}body{min-height:100vh;background:var(--bg-gradient);color:var(--text)}.app{max-width:480px;margin:0 auto;padding:0 1rem 2rem}.app:not(.dashboard){padding-top:2rem}.dashboard{padding-bottom:5rem}h1{font-size:1.75rem;font-weight:900;letter-spacing:-.04em;margin-bottom:.25rem}h2{font-size:1.1rem;margin-bottom:.75rem}.subtitle{color:var(--text-secondary);margin-bottom:1.5rem}.hint{color:var(--text-muted);font-size:.9rem;margin-bottom:1rem}.card{background:var(--surface);border-radius:var(--radius-md);padding:1.25rem;box-shadow:var(--card-shadow)}.error{color:var(--danger);font-size:.9rem;margin-top:.5rem}.loading{color:var(--text-muted);text-align:center;padding:1rem 0}.empty-state{color:var(--text-subtle);text-align:center;padding:2rem 0}.btn{display:inline-flex;align-items:center;justify-content:center;padding:.65rem 1.35rem;border:none;border-radius:var(--radius-pill);font-size:1rem;font-weight:800;cursor:pointer;transition:background .15s,transform .15s,box-shadow .15s}.btn:disabled{opacity:.6;cursor:not-allowed}.btn-primary{background:linear-gradient(180deg,#56d51f,#2fab0e);color:#fff;box-shadow:0 10px 20px #38b71442,inset 0 1px #ffffff59}.btn-primary:hover:not(:disabled){background:linear-gradient(180deg,#4fc918,#249808);transform:translateY(-1px)}.btn-secondary{background:var(--surface-muted);color:var(--text);box-shadow:var(--card-shadow)}.btn-secondary:hover:not(:disabled){background:var(--tag-chip-hover)}.btn-text{background:none;color:var(--brand);padding:.25rem .5rem;font-size:.9rem;font-weight:700;box-shadow:none}.btn-text:hover{text-decoration:underline}.btn-icon{display:inline-flex;align-items:center;justify-content:center;width:2.25rem;height:2.25rem;padding:0;border:none;border-radius:var(--radius-sm);background:transparent;color:var(--brand);cursor:pointer;font-size:1rem;flex-shrink:0;font-weight:700;box-shadow:none;transition:background .15s,color .15s}.btn-icon:hover{background:var(--surface-muted)}.btn-icon-primary{background:linear-gradient(180deg,#56d51f,#2fab0e);color:#fff}.btn-icon-primary:hover{background:linear-gradient(180deg,#4fc918,#249808)}.btn-danger{background:none;color:var(--danger);border:1px solid var(--danger);padding:.6rem 1rem;box-shadow:none}.btn-danger:hover:not(:disabled){background:var(--danger);color:#fff}.login-form{display:flex;flex-direction:column;gap:.5rem}.login-form label{font-size:.9rem;font-weight:500;margin-top:.25rem}.login-form input{padding:.6rem .75rem;border:1px solid var(--border);border-radius:var(--radius-sm);font-size:1rem;transition:border-color .15s,box-shadow .15s}input:focus,select:focus,textarea:focus{outline:none;border-color:var(--primary);box-shadow:var(--focus-ring)}.login-form .btn-primary{margin-top:.75rem}.pwa-install-section{margin-top:1rem}.pwa-install-section .btn{margin-top:.75rem}.dashboard-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:1rem;gap:.75rem}.app-chrome-header.dashboard-header{margin-bottom:.85rem}.brand-lockup{display:flex;align-items:center;gap:.65rem}.brand-mark{width:2.5rem;display:grid;place-items:center;line-height:0;flex-shrink:0}.brand-mark img{width:2.5rem;height:auto;display:block;object-fit:contain}.brand-lockup h1{margin-bottom:0}.username-label{color:var(--text-muted);font-size:.85rem;margin-top:.15rem}.login-brand{display:flex;flex-direction:column;align-items:flex-start;gap:.75rem;margin-bottom:.5rem}.login-brand .brand-mark,.login-brand .brand-mark img{width:3.25rem}.login-brand .brand-lockup h1{font-size:2.25rem}.app-toolbar{display:flex;align-items:center;gap:.5rem}.btn-profile{display:inline-flex;align-items:center;justify-content:center;padding:.2rem;border:1.5px solid var(--primary);border-radius:999px;background:transparent;color:var(--primary);cursor:pointer;transition:background .15s,color .15s}.btn-profile:hover{background:var(--primary-subtle)}.btn-profile-active{background:var(--primary);color:#fff}.btn-profile-active:hover{background:var(--primary-hover)}.btn-profile-avatar{display:inline-flex;align-items:center;justify-content:center;width:1.6rem;height:1.6rem;border-radius:50%;background:var(--primary);color:#fff;font-size:.7rem;font-weight:700;flex-shrink:0;letter-spacing:.02em}.btn-profile-active .btn-profile-avatar{background:#ffffff40;color:#fff}.app-nav{display:flex;gap:.35rem;margin-bottom:1.25rem;padding:.35rem;border-radius:var(--radius-md);background:#ffffffe6;border:1px solid rgba(255,255,255,.8);box-shadow:var(--card-shadow);-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px)}[data-theme=dark] .app-nav{background:#17344feb;border-color:var(--border)}.app-nav-tab{flex:1;display:flex;align-items:center;justify-content:center;padding:.7rem .75rem;border:none;border-radius:var(--radius-sm);background:transparent;font-size:1.15rem;color:var(--text-muted);cursor:pointer}.app-nav-tab:hover{color:var(--brand);background:var(--surface-muted)}.app-nav-tab-active{color:var(--primary-text-dark);background:var(--primary-subtle)}.app-chrome{position:sticky;top:0;z-index:90;background:transparent;margin:0 -1rem;padding:1.25rem 1rem 0}.app-chrome-header{overflow:hidden;max-height:6.5rem;padding:.85rem 1rem;margin-bottom:.85rem;border-radius:var(--radius-lg);background:#ffffffe6;border:1px solid rgba(255,255,255,.8);box-shadow:var(--card-shadow);-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);transition:max-height .2s ease,opacity .2s ease,margin .2s ease,padding .2s ease,border-width .2s ease}[data-theme=dark] .app-chrome-header{background:#17344feb;border-color:var(--border)}.app-chrome--header-hidden .app-chrome-header{max-height:0;opacity:0;margin-bottom:0;padding-top:0;padding-bottom:0;border-width:0;pointer-events:none}.app-chrome--header-hidden .dashboard-header{margin-bottom:0}.app-chrome--header-hidden{box-shadow:0 1px 0 var(--border-subtle)}.page-title{font-size:1.1rem;margin-bottom:1rem}.modal-subtitle{flex-shrink:0;color:var(--text-secondary);font-size:.95rem;margin:0;padding:0 1.5rem .75rem}.date-nav{display:flex;align-items:center;justify-content:center;gap:.5rem;margin-bottom:.5rem}.date-nav-btn{width:2.5rem;height:2.5rem;border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--surface);font-size:1rem;cursor:pointer;display:flex;align-items:center;justify-content:center;box-shadow:var(--card-shadow)}.date-nav-btn:hover:not(:disabled){background:var(--surface-hover)}.date-nav-btn:disabled{opacity:.35;cursor:not-allowed}.date-picker{padding:.5rem .75rem;border:1px solid var(--border);border-radius:var(--radius-sm);font-size:.95rem;background:var(--surface);transition:border-color .15s,box-shadow .15s}.selected-date-label{text-align:center;color:var(--text-secondary);font-size:.9rem;margin-bottom:1rem}.calorie-summary{text-align:left;margin-bottom:1.25rem;padding:1.25rem;background:linear-gradient(145deg,#fff,#f8fbfd)}[data-theme=dark] .calorie-summary{background:linear-gradient(145deg,var(--surface),var(--surface-subtle))}.calorie-label{display:block;font-size:.75rem;color:var(--text-muted);text-transform:uppercase;letter-spacing:.05em;margin-bottom:.2rem;font-weight:800}.calorie-total{font-size:2.5rem;font-weight:900;color:var(--brand)}.day-balance-hero{display:grid;grid-template-columns:7.75rem 1fr;align-items:center;gap:.85rem}.day-balance-ring{width:7.75rem;aspect-ratio:1;padding:.8rem;border-radius:50%;background:conic-gradient(var(--ring-color, var(--brand)) 0 calc(var(--ring-progress, 0) * 1%),var(--progress-bg) calc(var(--ring-progress, 0) * 1%) 100%);transform:rotate(-35deg)}.day-balance-ring-inner{width:100%;height:100%;display:grid;place-items:center;border-radius:inherit;background:var(--surface);transform:rotate(35deg);text-align:center;line-height:1.05;padding:.35rem}.day-balance-ring-value{display:block;font-size:1.45rem;font-weight:900;letter-spacing:-.03em;color:var(--text)}.day-balance-ring-label{display:block;margin-top:.15rem;font-size:.68rem;font-weight:700;color:var(--text-muted)}.day-balance-remaining strong{display:block;font-size:1.15rem;font-weight:900;color:var(--success)}.day-balance-remaining span{display:block;margin-top:.15rem;font-size:.85rem;color:var(--text-muted);font-weight:700}.day-balance-remaining--over strong{color:var(--danger)}.day-balance-macro-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:.55rem;margin-top:1rem}.day-balance-macro{padding:.8rem .55rem;text-align:center;border-radius:17px;background:var(--surface);box-shadow:0 7px 16px #18466817}[data-theme=dark] .day-balance-macro{background:var(--surface-muted);box-shadow:none}.day-balance-macro-icon{display:block;margin-bottom:.2rem;color:var(--brand);font-size:.95rem}.day-balance-macro-name{display:block;font-size:.7rem;font-weight:800;color:var(--text-muted);text-transform:uppercase;letter-spacing:.04em}.day-balance-macro-value{display:block;margin:.25rem 0 .45rem;font-size:.85rem;font-weight:900;color:var(--text);line-height:1.2}.day-balance-macro-guide{font-weight:700;color:var(--text-muted)}.day-balance-macro-bar{height:6px;overflow:hidden;border-radius:var(--radius-pill);background:var(--progress-bg)}.day-balance-macro-bar>i{display:block;height:100%;border-radius:inherit;background:var(--macro-bar-color, var(--primary));width:var(--macro-bar-width, 0%)}.day-balance-grid{display:grid;grid-template-columns:1fr 1fr;gap:.75rem}.day-balance-grid--with-projection{grid-template-columns:1fr 1fr 1fr}.day-balance-metric{text-align:center}.day-balance-value{display:block;font-size:1.75rem;font-weight:900;color:var(--brand)}.day-balance-unit{display:block;font-size:.75rem;color:var(--text-muted);margin-top:.15rem;font-weight:700}.day-balance-deficit-section{margin-top:1rem;padding-top:.9rem;border-top:1px solid var(--border-faint)}.day-balance-section-heading{margin:0 0 .65rem;text-align:center;font-size:.75rem;font-weight:800;color:var(--text-muted);text-transform:uppercase;letter-spacing:.05em}.day-balance-metric--deficit .day-balance-value{font-size:.95rem}.day-balance-budget-remaining{margin:.75rem 0 0;text-align:center;font-size:.9rem;color:var(--text-secondary);font-weight:700}.day-balance-value--weight{margin-top:.35rem}.day-balance-deficit{margin-top:1rem;font-size:1.1rem;font-weight:800;text-align:center}.day-balance-deficit-projected{margin-top:.5rem;font-size:1rem}.deficit-positive{color:var(--target-over)}.deficit-negative{color:var(--target-way-over)}.target-under{color:var(--target-under)}.target-over{color:var(--target-over)}.target-way-over{color:var(--target-way-over)}.day-balance-projected-note{margin-top:.75rem;font-size:.85rem;color:var(--text-muted);text-align:center}.event-list{list-style:none;display:flex;flex-direction:column;gap:.75rem;padding-bottom:6rem}.event-card{display:flex;align-items:center;gap:.5rem;width:100%;text-align:left;background:var(--surface);border:1px solid transparent;border-radius:var(--radius-md);padding:1rem .75rem 1rem 1.25rem;box-shadow:var(--card-shadow);font:inherit;color:inherit}.event-card-body{flex:1;min-width:0}.event-card-actions{display:flex;align-items:center;gap:.25rem;flex-shrink:0}button.event-card{cursor:pointer;transition:border-color .15s,box-shadow .15s}button.event-card:hover{border-color:var(--primary-border);box-shadow:var(--event-hover-shadow)}button.event-card:active{background:var(--surface-active)}.event-header{display:flex;justify-content:space-between;align-items:baseline}.event-time{font-size:.85rem;color:var(--text-muted)}.event-calories{font-weight:600;font-size:1rem}.event-title{margin-top:.35rem;font-size:1rem}.event-macros{margin-top:.25rem;font-size:.8rem;color:var(--text-subtle)}.event-edit-hint{display:block;margin-top:.35rem;font-size:.8rem;color:var(--text-subtle)}.fab-stack{position:fixed;right:1.5rem;bottom:1.5rem;display:flex;flex-direction:column;align-items:center;gap:.75rem;z-index:100}.fab{position:fixed;bottom:1.5rem;right:1.5rem;width:3.5rem;height:3.5rem;border-radius:50%;border:none;background:linear-gradient(180deg,#56d51f,#2fab0e);color:#fff;font-size:1.75rem;line-height:1;cursor:pointer;box-shadow:var(--fab-shadow);transition:background .15s,transform .15s;z-index:100;display:inline-flex;align-items:center;justify-content:center}.fab-stack .fab{position:relative;bottom:auto;right:auto}.fab-secondary{background:var(--brand-gradient);color:#5d3800;border:none;font-size:1.25rem;box-shadow:0 8px 18px #ff8b184d}.fab-secondary:hover{filter:brightness(1.03)}.fab:hover{background:linear-gradient(180deg,#4fc918,#249808);transform:scale(1.05)}.fab-secondary:hover{transform:scale(1.05)}@media (max-width: 380px){.day-balance-hero{grid-template-columns:1fr;justify-items:center;text-align:center}.day-balance-remaining{text-align:center}.day-balance-macro-value{font-size:.78rem}}@media (min-width: 520px){.fab,.fab-stack{right:calc(50% - 240px + 1.5rem)}.fab-stack .fab{right:auto}}html.scroll-locked,body.scroll-locked{overflow:hidden}body.scroll-locked{position:fixed;width:100%;left:0;right:0}.modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background:var(--backdrop);display:flex;align-items:center;justify-content:center;z-index:200;padding:1rem;overscroll-behavior:none}.modal{display:flex;flex-direction:column;background:var(--surface);border-radius:var(--radius-lg);padding:0;width:100%;max-width:400px;max-height:90vh;overflow:hidden;box-shadow:var(--modal-shadow)}.modal-header{display:flex;align-items:center;gap:.75rem;flex-shrink:0;padding:1.25rem 1rem 0 1.5rem}.modal-title{flex:1;min-width:0;margin:0;font-size:1.1rem}.modal-close{flex-shrink:0}.modal-body:has(.offfood-workflow),.modal-body:has(.add-log-tabs),.modal-body:has(.add-log-add-panel){display:flex;flex-direction:column;overflow:hidden}.modal-body{flex:1;min-height:0;overflow-x:hidden;overflow-y:auto;padding:.75rem 1.5rem 1rem}.modal-footer{flex-shrink:0;padding:1rem 1.5rem 1.25rem;border-top:1px solid var(--border-light)}.modal-form-footer{display:flex;flex-direction:column;gap:.75rem}.modal-delete-btn{display:block;width:100%;text-align:center}.event-form{display:flex;flex-direction:column;gap:.4rem}.event-form label{font-size:.85rem;font-weight:500;margin-top:.35rem}.event-form input{width:100%;min-width:0;max-width:100%;padding:.55rem .75rem;border:1px solid var(--border);border-radius:var(--radius-sm);font-size:1rem;transition:border-color .15s,box-shadow .15s}.macro-grid>div,.serving-row>div{min-width:0}.macro-grid{display:grid;grid-template-columns:1fr 1fr;gap:.75rem;margin-top:.5rem}.modal-actions{display:flex;justify-content:space-between;align-items:center;gap:.75rem;margin-top:0}.modal-actions-left{display:flex;flex-wrap:wrap;align-items:center;gap:.5rem}.modal-actions-right{display:flex;flex-wrap:wrap;align-items:center;gap:.5rem;margin-left:auto}.split-button{position:relative;display:inline-flex;flex-direction:column;align-items:stretch}.split-button-group{display:inline-flex;align-items:stretch}.split-button-main{border-top-right-radius:0;border-bottom-right-radius:0;padding-right:1rem}.split-button-toggle{border-top-left-radius:0;border-bottom-left-radius:0;padding-left:.7rem;padding-right:.7rem;border-left:1px solid rgba(255,255,255,.28);box-shadow:none}.split-button-toggle:hover:not(:disabled){transform:none}.split-button-menu{position:absolute;right:0;bottom:calc(100% + .35rem);min-width:100%;padding:0;background:transparent;box-shadow:none;z-index:5}.split-button-menu-item{display:flex;width:100%;white-space:nowrap}@media (max-width: 519px){.modal-backdrop{padding:0;align-items:stretch}.modal-backdrop .modal{max-width:none;width:100%;height:100%;max-height:100dvh;border-radius:0;box-shadow:none}.confirm-dialog-backdrop{padding:1rem;align-items:center}.confirm-dialog-backdrop:has(.food-photo-capture-modal){padding:0;align-items:stretch}.confirm-dialog-backdrop .food-photo-capture-modal{max-width:none;width:100%;height:100%;max-height:100dvh;border-radius:0;box-shadow:none}.confirm-dialog-backdrop .confirm-dialog{width:100%;max-width:360px;height:auto;max-height:calc(100dvh - 2rem);border-radius:10px;box-shadow:var(--modal-shadow)}}.confirm-dialog-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background:var(--backdrop);display:flex;align-items:center;justify-content:center;z-index:300;padding:1rem;overscroll-behavior:none}.confirm-dialog{max-width:360px}.confirm-dialog .modal-body{flex:0 1 auto;overflow-y:visible}.confirm-dialog-message{color:var(--text-dialog);line-height:1.5;margin:0}.export-confirm-dialog .modal-body{display:flex;flex-direction:column;gap:1rem}.export-confirm-checkbox{display:flex;align-items:flex-start;gap:.75rem;margin-top:1rem;color:var(--text-dialog)}.export-confirm-checkbox input{margin-top:.2rem}.library-section{margin-bottom:1rem}.library-page-header .page-title{margin-bottom:0}.library-list{list-style:none;display:flex;flex-direction:column;gap:.75rem}.library-card{display:flex;align-items:center;gap:.5rem;padding:0;overflow:hidden}.library-card-body{flex:1;min-width:0;padding:1rem 0 1rem 1.25rem}.library-card-actions{display:flex;align-items:center;gap:.25rem;flex-shrink:0;padding-right:.75rem}.library-card-header{display:flex;justify-content:space-between;align-items:baseline;gap:.5rem}.library-name{font-weight:600;font-size:1rem}.library-calories{font-weight:600;white-space:nowrap}.library-brand{margin-top:.25rem;font-size:.9rem;color:var(--text-muted)}.library-serving{margin-top:.35rem;font-size:.85rem;color:var(--text-secondary)}.library-macros{margin-top:.25rem;font-size:.8rem;color:var(--text-subtle)}.btn-sm{padding:.45rem .9rem;font-size:.9rem}.serving-row{display:grid;grid-template-columns:1fr 1fr;gap:.75rem;margin-top:.35rem}.library-preview{margin-top:.5rem;font-size:.95rem;font-weight:500;color:var(--primary)}.field-hint{margin:.25rem 0 .5rem;font-size:.8rem;color:var(--text-muted)}.serving-size-section{border:1px solid var(--border);border-radius:var(--radius-sm);margin:.35rem 0 0;padding:.65rem .75rem .75rem}.serving-size-section>legend{font-size:.85rem;font-weight:500;padding:0 .35rem;margin-left:-.15rem}.serving-size-section .field-hint:first-of-type{margin-top:0}.library-equivalent{margin:.35rem 0 0;font-size:.8rem;color:var(--text-muted)}.add-log-tabs{display:flex;flex-shrink:0;gap:.25rem;margin:0 0 .85rem;padding:.25rem;border:1px solid var(--border-neutral);border-radius:var(--radius-sm);background:var(--surface-subtle)}.add-log-tab{flex:1;border:0;border-radius:var(--radius-sm);background:transparent;color:var(--text-muted);font:inherit;font-weight:600;padding:.5rem .75rem;cursor:pointer}.add-log-tab--active{background:var(--primary);color:#fff;box-shadow:0 1px 2px #0f172a1f}.add-log-find-list{flex:1;min-height:0;overflow-y:auto;margin-top:.75rem;display:flex;flex-direction:column;gap:.85rem}.add-log-find-group{display:flex;flex-direction:column;gap:.35rem;min-width:0}.add-log-find-heading{margin:0;font-size:.75rem;font-weight:700;letter-spacing:.04em;text-transform:uppercase;color:var(--text-muted)}.add-log-find .offfood-results{margin-top:0;flex:none;overflow:visible}.switch-toggle{display:flex;align-items:center;justify-content:space-between;gap:.75rem;font-weight:600;cursor:pointer;-webkit-user-select:none;user-select:none}.switch-toggle-label{flex:1;min-width:0}.switch-toggle input{position:absolute;opacity:0;width:1px;height:1px;margin:0;pointer-events:none}.switch-toggle-track{position:relative;width:2.75rem;height:1.55rem;flex-shrink:0;border-radius:999px;background:var(--border);box-shadow:inset 0 1px 2px #00000014;transition:background .2s ease,box-shadow .2s ease}.switch-toggle-thumb{position:absolute;top:.15rem;left:.15rem;width:1.25rem;height:1.25rem;border-radius:50%;background:#fff;box-shadow:0 1px 3px #0003;transition:transform .2s ease}.switch-toggle input:checked+.switch-toggle-track{background:var(--primary);box-shadow:inset 0 1px 2px #0000001f}.switch-toggle input:checked+.switch-toggle-track .switch-toggle-thumb{transform:translate(1.2rem)}.switch-toggle input:focus-visible+.switch-toggle-track{outline:2px solid var(--primary);outline-offset:2px}.switch-toggle:has(input:disabled){opacity:.55;cursor:not-allowed}@media (prefers-reduced-motion: reduce){.switch-toggle-track,.switch-toggle-thumb{transition:none}}.add-log-add-panel{display:flex;flex-direction:column;flex:1;min-height:0;overflow:hidden}.add-log-add-toolbar{flex-shrink:0;margin-bottom:.75rem}.add-log-add-toolbar .btn{width:100%}.add-log-add-form{flex:1;min-height:0;overflow-y:auto}.offfood-workflow{display:flex;flex-direction:column;flex:1;min-height:0;overflow:hidden}.offfood-search-row{display:flex;gap:.5rem;align-items:stretch}.offfood-search-row input{flex:1;min-width:0}.offfood-search-row .btn{flex-shrink:0}.quick-add-basis-row{display:flex;gap:.5rem;align-items:stretch}.quick-add-basis-row input{flex:1;min-width:0}.event-form .quick-add-basis-row select{width:auto;flex-shrink:0;min-width:5.5rem;max-width:40%}.offfood-scan-toggle{flex-shrink:0}.offfood-scan-panel{margin-top:.75rem;padding:.75rem;border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--surface-subtle);display:flex;flex-direction:column;gap:.75rem}.offfood-scan-live{display:flex;flex-direction:column;gap:.75rem;min-height:0;flex-shrink:1}.offfood-scan-video-wrap{position:relative;flex:1;min-height:0;max-height:min(360px,35vh);display:flex;align-items:center;justify-content:center;background:#000;border-radius:var(--radius-sm);overflow:hidden;touch-action:manipulation}.offfood-scan-video-wrap--focusable{cursor:crosshair}.offfood-scan-video-wrap--scanning:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;background:#00000040;pointer-events:none}.camera-focus-reticle{position:absolute;width:52px;height:52px;margin-left:-26px;margin-top:-26px;border:2px solid rgba(255,255,255,.95);border-radius:4px;box-shadow:0 0 0 1px #00000059;pointer-events:none;animation:camera-focus-reticle-fade .7s ease-out forwards}@keyframes camera-focus-reticle-fade{0%{opacity:1;transform:scale(1.15)}70%{opacity:1;transform:scale(1)}to{opacity:0;transform:scale(.92)}}.offfood-scan-video,.offfood-scan-preview{width:100%;height:100%;max-height:100%;object-fit:contain}.offfood-scan-capture{flex-shrink:0}.offfood-camera-label{display:flex;flex-direction:column;gap:.35rem;font-size:.9rem}.offfood-camera-label select{width:100%}.food-photo-capture-modal .modal-body{display:flex;flex-direction:column;overflow:hidden}.food-photo-capture-modal .offfood-scan-panel{flex:1;min-height:0;margin-top:0;padding:0;border:none;border-radius:0;background:transparent}.food-photo-capture-modal .offfood-scan-live{flex:1;min-height:0}.food-photo-capture-modal .offfood-scan-video-wrap{flex:1;max-height:none;min-height:200px}.food-photo-capture-modal .offfood-scan-toolbar{display:flex;justify-content:flex-end;flex-shrink:0}.food-photo-capture-modal .modal-footer .modal-actions{width:100%}.food-photo-capture-modal .modal-footer .btn{text-align:center}.food-photo-staged-strip{display:flex;gap:.5rem;flex-shrink:0;overflow-x:auto}.food-photo-staged-thumb-wrap{position:relative;flex:0 0 auto}.food-photo-staged-thumb{width:56px;height:56px;object-fit:cover;border-radius:var(--radius-sm);border:1px solid var(--border);background:#000;display:block}.food-photo-staged-remove{position:absolute;top:-.35rem;right:-.35rem;width:1.4rem;height:1.4rem;border-radius:999px;background:var(--surface);border:1px solid var(--border);font-size:.7rem}.extraction-picker-list{list-style:none;margin:.75rem 0 0;padding:0;display:flex;flex-direction:column;gap:.5rem}.extraction-picker-item{display:flex;flex-direction:column;align-items:flex-start;gap:.2rem;width:100%;padding:.75rem 1rem;border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--surface);text-align:left;cursor:pointer}.extraction-picker-item:hover{border-color:var(--accent)}.extraction-picker-title{font-weight:600}.extraction-picker-meta{font-size:.85rem;color:var(--text-muted)}.offfood-results{list-style:none;margin:.75rem 0 0;padding:0;display:flex;flex-direction:column;gap:.5rem;flex:1;min-height:0;overflow-y:auto}.offfood-results>li{min-width:0}.offfood-result-item{display:flex;flex-direction:column;align-items:flex-start;gap:.2rem;width:100%;padding:.75rem 1rem;border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--surface);text-align:left;font:inherit;cursor:pointer;transition:border-color .15s,background .15s}.offfood-result-item:hover{border-color:var(--primary);background:var(--surface-subtle)}.offfood-result-item--library{border-left:3px solid var(--primary)}.offfood-result-name{font-weight:600;font-size:.95rem}.offfood-result-meta{font-size:.85rem;color:var(--text-muted)}.offfood-basis-toggle{margin-bottom:.5rem}.offfood-basis-label{display:block;font-size:.85rem;font-weight:500;margin-top:.35rem;margin-bottom:.35rem}.offfood-basis-buttons{display:grid;grid-template-columns:1fr 1fr;gap:.5rem}.offfood-basis-btn{width:100%;padding:.55rem .75rem;border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--surface);font:inherit;font-size:.9rem;line-height:1.3;text-align:center;cursor:pointer;transition:border-color .15s,background .15s,color .15s}.offfood-basis-btn[aria-pressed=true]{background:var(--primary);color:#fff;border-color:var(--primary)}.offfood-basis-btn:hover:not(:disabled):not([aria-pressed=true]){border-color:var(--primary);background:var(--surface-subtle)}.offfood-basis-btn:disabled{opacity:.5;cursor:not-allowed}.library-filters{display:flex;flex-direction:column;gap:.75rem;margin-bottom:1rem}.library-search{width:100%;padding:.6rem .75rem;border:1px solid var(--border);border-radius:var(--radius-sm);font:inherit;transition:border-color .15s,box-shadow .15s}.tag-filter-row{display:flex;flex-wrap:wrap;gap:.4rem}.tag-list{display:flex;flex-wrap:wrap;gap:.4rem;margin-top:.35rem}.tag-list-inline{margin-top:.5rem}.tag-input-row input{width:100%}.tag-chip{display:inline-flex;align-items:center;gap:.25rem;padding:.2rem .55rem;border-radius:999px;font-size:.8rem;background:var(--primary-subtle);color:var(--primary-text);border:1px solid var(--primary-border)}.tag-chip-static{pointer-events:none}.tag-chip-filter{cursor:pointer;font:inherit;background:var(--tag-chip-bg);color:var(--primary-text-mid);border:1px solid var(--border)}.tag-chip-filter:hover{background:var(--tag-chip-hover)}.tag-chip-active{background:var(--primary-subtle);color:var(--primary-text);border-color:var(--primary)}.tag-chip-remove{display:inline-flex;align-items:center;justify-content:center;padding:0;margin:0;border:none;background:transparent;color:inherit;font-size:1rem;line-height:1;cursor:pointer}.tag-chip-remove:hover{opacity:.7}.profile-section{margin-bottom:1.25rem}.targets-note,.weekly-targets-summary{margin:0 0 .75rem;font-size:.9rem;color:var(--text-secondary)}.weekly-targets-grid{display:grid;gap:.5rem}.weekly-target-row{display:grid;grid-template-columns:2.5rem 1fr;gap:.5rem;align-items:center}.weekly-target-row label{margin:0;font-weight:600}.weekly-targets-summary{margin-top:.75rem;margin-bottom:0}.profile-bmr{margin-top:.5rem;font-size:.95rem;color:var(--text-secondary)}.bmr-estimate{margin:.75rem 0;padding:.75rem;border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--surface-accent)}.bmr-estimate summary{cursor:pointer;font-weight:500}.bmr-estimate-note{margin:.5rem 0 .75rem;font-size:.85rem;color:var(--text-muted)}.bmr-estimate .btn{margin-top:.5rem}.bmr-panel-note,.bmr-auto-note{margin:0 0 .75rem;font-size:.85rem;color:var(--text-muted)}.bmr-mode-label{margin:0 0 .35rem;font-size:.85rem;font-weight:500;color:var(--text-label)}.bmr-mode-toggle{display:grid;grid-template-columns:1fr 1fr;gap:.5rem;margin-bottom:.75rem}.bmr-mode-btn{width:100%;padding:.55rem .75rem;border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--surface);font:inherit;font-size:.9rem;line-height:1.3;text-align:center;cursor:pointer;transition:border-color .15s,background .15s,color .15s}.bmr-mode-btn[aria-pressed=true]{background:var(--primary);color:#fff;border-color:var(--primary)}.bmr-mode-btn:hover:not(:disabled):not([aria-pressed=true]){border-color:var(--primary);background:var(--surface-subtle)}.bmr-preview{margin-top:.75rem;padding:.75rem;border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--surface-accent)}.bmr-preview-label{display:block;font-size:.85rem;font-weight:500;color:var(--text-label)}.bmr-preview-value{margin:.35rem 0 0;font-size:1.15rem;font-weight:600;color:var(--primary-text-dark)}.bmr-preview-hint{margin:.35rem 0 0;font-size:.85rem;color:var(--text-muted)}.profile-form>.btn-primary{width:100%;margin-bottom:1.25rem}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.timezone-note{margin:.25rem 0 .5rem;font-size:.85rem;color:var(--text-muted)}.timezone-row{display:flex;flex-wrap:wrap;gap:.5rem;align-items:center}.timezone-row input{flex:1 1 12rem;min-width:0}.timezone-hint{margin:.35rem 0 0;font-size:.85rem;color:var(--text-muted)}.success{color:var(--success);font-size:.9rem}.section-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:.75rem}.btn-small{padding:.4rem .75rem;font-size:.85rem}.app-bottom-strip{position:fixed;bottom:0;left:0;right:0;z-index:99;display:flex;justify-content:center}html.scroll-locked .app-bottom-strip{visibility:hidden;pointer-events:none}.app-bottom-strip-btn{width:100%;max-width:480px;margin:0;padding:.75rem 1rem;border:none;font-size:.85rem;line-height:1.35;text-align:center;color:#000;cursor:pointer}.app-bottom-strip-btn:focus-visible{outline:2px solid #000;outline-offset:-2px}.app-bottom-strip--warning{background:#f97316}.app-bottom-strip--upgrade{background:var(--primary)}.has-app-bottom-strip{--app-bottom-strip-height: 3.25rem}.has-app-bottom-strip .fab-stack,.has-app-bottom-strip .fab{bottom:calc(1.5rem + var(--app-bottom-strip-height, 3.25rem))}.has-app-bottom-strip .fab-stack .fab{bottom:auto}.has-app-bottom-strip .dashboard{padding-bottom:calc(5rem + var(--app-bottom-strip-height, 3.25rem))}.has-app-bottom-strip .app{padding-bottom:calc(2rem + var(--app-bottom-strip-height, 3.25rem))}.pwa-updating-overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:500;display:flex;align-items:center;justify-content:center;padding:1.5rem;background:color-mix(in srgb,var(--bg) 92%,transparent);-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}.pwa-updating-overlay-body{width:min(100%,320px);padding:1.25rem 1.5rem;border:1px solid var(--primary-border);border-radius:12px;background:var(--surface);box-shadow:var(--modal-shadow);text-align:center}.pwa-updating-overlay-body strong{display:block;margin-bottom:.35rem}.pwa-updating-overlay-body p{color:var(--text-secondary);font-size:.9rem}.event-form select{width:100%;min-width:0;max-width:100%;padding:.55rem .75rem;border:1px solid var(--border);border-radius:var(--radius-sm);font-size:1rem;background:var(--surface);transition:border-color .15s,box-shadow .15s}.burn-summary-detail{margin-top:.35rem;font-size:.85rem;color:var(--text-muted)}.burn-chart-section{margin-bottom:1.25rem}.burn-chart-section h2{margin-bottom:1rem}.weight-trend-section{margin-bottom:1.25rem}.weight-trend-header{display:flex;align-items:center;justify-content:space-between;gap:.75rem;margin-bottom:.75rem}.weight-trend-header h2{margin:0}.weight-trend-section .weight-trend-tabs{flex-shrink:0;margin:0;min-width:9.5rem}.weight-trend-tooltip{background:var(--surface);border:1px solid var(--border-subtle);border-radius:var(--radius-sm);padding:.5rem .65rem;font-size:.8rem;box-shadow:var(--tooltip-shadow)}.weight-trend-tooltip-title{margin:0 0 .25rem;font-weight:600;color:var(--text-emphasis)}.weight-trend-tooltip-value{margin:0 0 .15rem;color:var(--text-emphasis)}.weight-trend-tooltip-raw{margin:0;color:var(--text-muted)}.burn-chart-tooltip{background:var(--surface);border:1px solid var(--border-subtle);border-radius:var(--radius-sm);padding:.5rem .65rem;font-size:.8rem;box-shadow:var(--tooltip-shadow)}.daily-balance-legend{display:flex;flex-wrap:wrap;justify-content:center;gap:.5rem;margin-top:.75rem}.daily-balance-legend-item{display:inline-flex;align-items:center;gap:.35rem;padding:.25rem .6rem;border:1px solid var(--border-subtle);border-radius:999px;background:var(--surface);font-size:.8rem;color:var(--text-secondary);cursor:pointer;transition:background .15s,opacity .15s}.daily-balance-legend-item:hover{background:var(--primary-subtle)}.daily-balance-legend-item--hidden{opacity:.4;text-decoration:line-through}.daily-balance-legend-swatch{width:12px;height:12px;border-radius:3px;flex-shrink:0}.daily-balance-legend-swatch--deficit{background:var(--chart-deficit)}.daily-balance-legend-swatch--target{background:color-mix(in srgb,var(--chart-deficit) 18%,var(--surface));background-image:repeating-linear-gradient(-45deg,transparent,transparent 2px,var(--chart-axis) 2px,var(--chart-axis) 3px);border:1px solid var(--border-subtle)}.daily-balance-legend-target{display:inline-flex;align-items:center;gap:.35rem;padding:.25rem .6rem;font-size:.8rem;color:var(--text-secondary)}.burn-chart-tooltip-title{margin:0 0 .25rem;font-weight:600;color:var(--text-emphasis)}.burn-chart-tooltip-total{margin:0 0 .15rem;color:var(--text-emphasis)}.burn-chart-tooltip-breakdown{margin:0;color:var(--text-muted)}.dashboard-history{margin-top:1rem;margin-bottom:1.25rem}.dashboard-history-heading{font-size:.9rem;font-weight:600;color:var(--text-secondary);text-align:center;margin-bottom:1rem}.dashboard-history-details{margin-top:1rem;padding:.75rem;border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--surface-accent)}.dashboard-history-details summary{cursor:pointer;font-weight:500;font-size:.9rem;color:var(--text-secondary);text-align:center;list-style-position:inside}.dashboard-history-table{width:100%;margin-top:.75rem;border-collapse:collapse;font-size:.9rem}.dashboard-history-table th,.dashboard-history-table td{padding:.45rem .5rem;text-align:center;border-bottom:1px solid var(--border-subtle)}.dashboard-history-table th{font-size:.75rem;font-weight:600;color:var(--text-muted);text-transform:uppercase;letter-spacing:.04em}.dashboard-history-summary{margin-top:1rem;padding-top:1rem;border-top:1px solid var(--border-faint)}.events-section h2{margin-bottom:.75rem}.google-health-section{margin-bottom:1.25rem}.google-health-note,.google-health-meta{margin:.5rem 0 1rem;font-size:.9rem;color:var(--text-muted)}.google-health-status{margin:.25rem 0 .5rem;font-weight:500;color:var(--success)}.google-health-actions{display:flex;gap:.5rem;flex-wrap:wrap}.subscription-section{margin-bottom:1.25rem}.subscription-note,.subscription-meta{margin:.5rem 0 1rem;font-size:.9rem;color:var(--text-muted)}.subscription-status{margin:.25rem 0 .5rem;font-weight:500}.subscription-status--ok{color:var(--success)}.subscription-status--warn{color:var(--warning)}.subscription-plans{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:1rem}.subscription-interval-toggle{display:inline-flex;gap:.25rem;margin:0 0 1rem;padding:.25rem;border:1px solid var(--border-neutral);border-radius:999px;background:var(--surface-subtle)}.subscription-interval-toggle-btn{border:0;border-radius:999px;background:transparent;color:var(--text-muted);font:inherit;font-weight:600;padding:.45rem .85rem}.subscription-interval-toggle-btn--active{background:var(--surface);color:var(--text);box-shadow:0 1px 2px #0f172a1f}.subscription-plan-card{border:1px solid var(--border-neutral);border-radius:var(--radius-sm);padding:1rem}.subscription-plan-card h3{margin:0 0 .25rem;font-size:1.1rem}.subscription-plan-interval{margin:0 0 .75rem;font-size:.9rem;color:var(--text-muted);text-transform:capitalize}.subscription-plan-price{margin:0 0 .75rem;font-size:1.4rem;font-weight:700;color:var(--text)}.subscription-plan-features{margin:0 0 1rem 1.1rem;padding:0;font-size:.9rem;color:var(--text-label)}.food-sync-stats{margin:.75rem 0 1rem;padding:.75rem 1rem;background:var(--surface-subtle);border:1px solid var(--badge-bg);border-radius:var(--radius-sm)}.food-sync-stats-heading{margin:0 0 .5rem;font-size:.95rem;font-weight:600}.food-sync-stats-grid{display:grid;grid-template-columns:minmax(8rem,auto) 1fr;gap:.35rem 1rem;margin:0;font-size:.875rem}.food-sync-stats-grid dt{margin:0;color:var(--text-stats-label);font-weight:500}.food-sync-stats-grid dd{margin:0;color:var(--text-stats)}.food-sync-progress{margin-top:.75rem;background:var(--progress-bg);border-radius:999px;height:.5rem;overflow:hidden;position:relative}.food-sync-progress-bar{height:100%;background:var(--progress-fill);border-radius:999px;transition:width .3s ease}.food-sync-progress-label{display:block;margin-top:.35rem;font-size:.8rem;color:var(--text-stats-label)}.sync-reminder{margin:.35rem 0 .5rem;padding:.6rem .75rem;font-size:.85rem;color:var(--primary-text-dark);background:var(--primary-subtle);border:1px solid var(--primary-border);border-radius:var(--radius-sm)}.input-disabled{background:var(--surface-input-disabled);color:var(--input-disabled-text);cursor:not-allowed}.source-badge{display:inline-block;margin-left:.5rem;padding:.1rem .4rem;font-size:.7rem;font-weight:500;color:var(--text-badge);background:var(--badge-bg);border-radius:4px;vertical-align:middle}.event-card-readonly{cursor:default;text-align:left;width:100%}
