:root{color-scheme:light;--page: #f7f6fa;--surface: #ffffff;--surface-muted: #fcfbfe;--text: #2d1748;--muted: #70667d;--line: #ded8e6;--coral: #d84045;--coral-soft: #fde8e9;--deficit: #2f8a63;--violet: #6542d5;--violet-soft: #eee9ff;--amber: #a96c00;--focus: #3c74d8;--shadow: 0 14px 36px rgb(45 23 72 / 10%);font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif}*{box-sizing:border-box}body{min-width:320px;min-height:100vh;margin:0;color:var(--text);background:var(--page)}button,input,select,textarea{font:inherit}button{cursor:pointer}:focus-visible{outline:3px solid var(--focus);outline-offset:3px}.bootstrap-state{display:grid;place-content:center;gap:14px;min-height:100vh;max-width:680px;margin:0 auto;padding:32px;text-align:center}.app-shell{width:min(1440px,100%);margin:0 auto;padding:28px clamp(16px,2.2vw,32px) 42px}.app-heading{margin-bottom:17px}.app-heading .eyebrow{margin-bottom:4px}.app-heading h1{margin:0;font-size:clamp(2rem,3vw,3.25rem);letter-spacing:-.055em}.summary-bar{--summary-label-row: 1.8rem;--summary-value-row: 2.1rem;display:grid;grid-template-columns:1.05fr repeat(3,minmax(0,1fr)) 1.2fr 1fr;align-items:stretch;overflow:hidden;border:1px solid var(--line);border-radius:16px;background:var(--surface);box-shadow:0 3px 12px #2d174808}.summary-date,.summary-metric,.summary-macros,.summary-body{min-width:0;padding:14px 18px}.summary-date,.summary-metric,.summary-macros{border-right:1px solid var(--line)}.summary-date{display:flex;align-items:center;justify-content:center;gap:13px;color:var(--coral);text-align:center}.summary-date>div{min-width:0;text-align:center}.summary-date strong,.summary-date time{display:block}.summary-date strong{font-size:1rem;line-height:1.2}.summary-metric small{color:var(--muted);font-size:.76rem}.summary-metric>span,.summary-macros>span,.summary-body>span{display:block;color:var(--muted);font-size:.8rem;font-weight:700}.summary-metric{display:grid;grid-template-rows:minmax(var(--summary-label-row),auto) minmax(var(--summary-value-row),auto) auto;align-content:center;justify-items:center;text-align:center}.summary-metric-label{min-width:0;line-height:1.28;overflow-wrap:anywhere}.summary-metric strong{display:block;min-width:0;min-height:var(--summary-value-row);margin-top:0;color:var(--text);font-size:clamp(1.25rem,2vw,1.7rem);font-variant-numeric:tabular-nums;line-height:1.2;letter-spacing:-.045em;overflow-wrap:anywhere}.summary-metric-coral strong{color:var(--coral)}.summary-metric-violet strong{color:var(--violet)}.summary-metric-amber strong{color:var(--amber)}.summary-metric-detail{min-width:0;margin-top:0;line-height:1.25;overflow-wrap:anywhere}.summary-macros,.summary-body{display:grid;grid-template-rows:minmax(var(--summary-label-row),auto) auto;align-content:center;justify-items:center;text-align:center}.summary-macros>span,.summary-body>span{min-height:var(--summary-label-row);line-height:1.28;overflow-wrap:anywhere}.summary-macros>div,.summary-body>div{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:9px;margin-top:0}.summary-body>div{grid-template-columns:repeat(2,minmax(0,1fr))}.summary-macros .summary-metric,.summary-body .summary-metric{grid-template-rows:minmax(1.1rem,auto) minmax(1.45rem,auto) auto;padding:0;border:0}.summary-macros .summary-metric-label,.summary-body .summary-metric-label{min-height:1.1rem;line-height:1.15}.summary-macros .summary-metric strong,.summary-body .summary-metric strong{min-height:1.45rem;margin-top:0;font-size:1.07rem;line-height:1.2}.dashboard-shell{display:grid;grid-template-columns:88px minmax(0,1fr);min-height:620px;margin-top:17px;overflow:hidden;border:1px solid var(--line);border-radius:16px;background:var(--surface);box-shadow:var(--shadow)}.view-navigation{display:flex;align-items:center;flex-direction:column;padding:23px 12px;border-right:1px solid var(--line);background:var(--surface-muted)}.view-navigation-button{display:flex;align-items:center;justify-content:center;width:56px;min-height:78px;padding:14px 10px;border:0;border-bottom:1px solid var(--line);color:var(--text);background:transparent}.view-navigation-button:last-child{border-bottom:0}.view-navigation-button:hover{color:var(--violet);background:var(--violet-soft)}.view-navigation-button.is-active{position:relative;color:var(--violet);background:var(--violet-soft)}.view-navigation-button.is-active:before{position:absolute;inset:0 auto 0 0;width:5px;background:var(--violet);content:""}.view-frame{min-width:0;padding:25px 27px}.view-frame-header{display:grid;grid-template-columns:minmax(0,1fr);align-items:center;gap:18px;padding-bottom:17px;border-bottom:1px solid var(--line)}.food-bank-view{display:grid;gap:18px;padding-top:22px}.food-bank-header{display:flex;align-items:flex-start;justify-content:space-between;gap:20px}.food-bank-header h2{margin:2px 0 6px;font-size:clamp(1.5rem,2.6vw,2.15rem);letter-spacing:-.045em}.food-bank-header p:not(.eyebrow){max-width:680px;margin:0;color:var(--muted);font-size:.84rem;line-height:1.5}.food-bank-actions{display:flex;flex-shrink:0;align-items:center;gap:8px}.food-bank-actions .button{white-space:nowrap}.food-bank-toolbar{display:flex;align-items:center;gap:12px;padding:12px;border:1px solid var(--line);border-radius:12px;background:var(--surface-muted)}.food-bank-search{display:flex;flex:1;align-items:center;gap:8px;min-width:180px;padding:0 10px;border:1px solid var(--line);border-radius:8px;color:var(--muted);background:var(--surface)}.food-bank-search input{width:100%;min-height:36px;border:0;outline:0;color:var(--text);background:transparent}.food-bank-filter{display:flex;align-items:center;gap:7px;color:var(--muted);font-size:.76rem;font-weight:750;white-space:nowrap}.food-bank-filter select{min-height:36px;padding:0 8px;border:1px solid var(--line);border-radius:8px;color:var(--text);background:var(--surface)}.food-bank-count{color:var(--muted);font-size:.76rem;white-space:nowrap}.food-bank-table-wrap{overflow-x:auto;border:1px solid var(--line);border-radius:12px;background:var(--surface)}.food-bank-table{width:100%;min-width:1080px;border-collapse:collapse;color:var(--text);font-size:.78rem}.food-bank-table th,.food-bank-table td{padding:13px 15px;border-bottom:1px solid var(--line);text-align:left;vertical-align:middle}.food-bank-table thead th{color:var(--muted);background:var(--surface-muted);font-size:.68rem;font-weight:800;letter-spacing:.07em;text-transform:uppercase;white-space:nowrap}.food-bank-table tbody tr:last-child th,.food-bank-table tbody tr:last-child td{border-bottom:0}.food-bank-table tbody tr:hover{background:color-mix(in srgb,var(--violet-soft) 35%,var(--surface))}.food-bank-table th[scope=row]{min-width:190px;font-weight:700}.food-bank-table-name,.food-bank-table-id{display:block}.food-bank-table-name{color:var(--text);font-size:.82rem}.food-bank-table-id{margin-top:3px;color:var(--muted);font-size:.66rem;font-weight:500}.food-bank-context{padding:3px 7px;border-radius:999px;color:var(--violet);background:var(--violet-soft);font-size:.68rem;font-weight:800;text-transform:capitalize}.food-bank-context.is-uncategorised{color:var(--muted);background:var(--surface-muted)}.food-bank-table-calories{color:var(--coral);font-weight:800;white-space:nowrap}.food-bank-table-macro{color:var(--muted);font-size:.7rem;white-space:nowrap}.food-bank-table-actions{display:flex;justify-content:flex-end;gap:6px}.food-bank-state{display:grid;place-items:center;gap:8px;min-height:190px;padding:24px;border:1px dashed var(--line);border-radius:12px;color:var(--muted);text-align:center}.food-bank-state strong{color:var(--text)}.food-bank-state-error{color:var(--coral)}.sr-only{position:absolute;width:1px;height:1px;padding:0;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.date-navigator{position:relative;display:flex;min-width:250px;border:1px solid var(--line);border-radius:10px;overflow:visible;color:var(--text);background:var(--surface)}.date-navigator>button,.date-navigator-current{display:inline-grid;place-items:center;min-height:42px;border:0;background:transparent}.date-navigator>button:not(.date-navigator-current){width:43px;color:var(--violet)}.date-navigator>button:not(.date-navigator-current):hover:not(:disabled){background:var(--violet-soft)}.date-navigator>button:not(.date-navigator-current):disabled{cursor:not-allowed;color:#b9b1c2}.date-navigator-current{flex:1;grid-template-columns:auto 1fr;gap:8px;padding:0 10px;border-right:1px solid var(--line);border-left:1px solid var(--line);font-size:.88rem;font-weight:750;text-align:center}.date-navigator .date-navigator-current{width:auto;color:var(--text);cursor:pointer}.date-navigator .date-navigator-current:hover{background:var(--violet-soft)}.calendar-popover{position:absolute;top:calc(100% + 8px);left:0;z-index:5;width:min(330px,calc(100vw - 32px));padding:13px;border:1px solid var(--line);border-radius:12px;background:var(--surface);box-shadow:var(--shadow)}.calendar-popover-header{display:grid;grid-template-columns:32px minmax(0,1fr) 32px;align-items:center;gap:8px}.calendar-popover-header strong{color:var(--text);font-size:.9rem;text-align:center}.calendar-popover-header button{display:grid;place-items:center;width:32px;height:32px;padding:0;border:1px solid var(--line);border-radius:7px;color:var(--violet);background:var(--surface)}.calendar-popover-header button:hover:not(:disabled){background:var(--violet-soft)}.calendar-popover-header button:disabled{cursor:not-allowed;color:#b9b1c2}.calendar-weekdays,.calendar-grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:4px}.calendar-weekdays{margin-top:12px;color:var(--muted);font-size:.66rem;font-weight:800;text-align:center;text-transform:uppercase}.calendar-grid{margin-top:5px}.calendar-day,.calendar-day-spacer{display:grid;place-items:center;min-width:0;min-height:34px;border-radius:7px}.calendar-day{position:relative;padding:0;border:1px solid transparent;color:var(--muted);background:transparent;font-size:.8rem}.calendar-day.is-tracked{color:var(--text);font-weight:750}.calendar-day.is-tracked:after{position:absolute;right:5px;bottom:4px;width:4px;height:4px;border-radius:50%;background:var(--violet);content:""}.calendar-day.is-untracked{color:#b9b1c2;cursor:default}.calendar-day.is-untracked.is-today{color:var(--violet);cursor:pointer;font-weight:800}.calendar-day.is-tracked:hover,.calendar-day.is-untracked.is-today:hover,.calendar-day.is-selected{border-color:var(--violet);background:var(--violet-soft)}.calendar-day.is-selected{color:var(--violet)}.calendar-help{margin:10px 0 0;color:var(--muted);font-size:.7rem}.daily-stage{margin-top:18px}.daily-view{display:grid;gap:17px}.daily-view-title{display:flex;align-items:center;justify-content:space-between}.daily-view-title h2{margin:0;color:var(--text);font-size:clamp(1.45rem,3vw,2.05rem);letter-spacing:-.045em}.calorie-balance{display:grid;gap:0;min-height:0;padding:clamp(22px,3vw,34px);border:1px solid var(--line);border-radius:13px;background:var(--surface-muted)}.calorie-balance-main{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.6fr) minmax(0,1fr);grid-template-areas:"summary progress remaining";align-items:center;gap:clamp(22px,3vw,42px);padding-bottom:24px}.calorie-progress-summary{display:grid;justify-items:center;grid-area:summary;min-width:0;text-align:center;border-right:1px solid var(--line)}.calorie-summary-label,.calorie-consumed-label,.calorie-remaining>span,.calorie-remaining small,.calorie-progress-meta{color:var(--muted)}.calorie-summary-label{display:block;font-size:.78rem;font-weight:800;letter-spacing:.02em}.calorie-consumed-value{display:flex;align-items:baseline;gap:7px;margin-top:12px}.calorie-consumed-value strong{color:var(--text);font-size:clamp(2.35rem,4vw,3.25rem);font-variant-numeric:tabular-nums;letter-spacing:-.07em;line-height:.95}.calorie-consumed-value .calorie-unit{color:var(--text);font-size:1.05rem;font-weight:800}.calorie-consumed-label{display:block;margin-top:7px;color:var(--text);font-size:.98rem}.calorie-remaining{display:grid;justify-items:center;grid-area:remaining;align-self:center;min-width:0;text-align:center;border-left:1px solid var(--line)}.calorie-remaining>span,.calorie-remaining small{display:block}.calorie-remaining>span{font-size:.8rem;font-weight:800}.calorie-remaining strong{display:inline-block;margin-top:8px;color:var(--coral);font-size:clamp(2rem,3vw,2.9rem);font-variant-numeric:tabular-nums;letter-spacing:-.065em;line-height:.98}.calorie-remaining small{margin-top:7px;font-size:.82rem;font-weight:750}.calorie-remaining-surplus strong{color:var(--coral)}.calorie-remaining-neutral strong{color:var(--muted)}.calorie-remaining-target strong{color:var(--violet)}.calorie-progress-wrap{grid-area:progress;align-self:center;display:grid;justify-items:center;min-width:0}.calorie-progress{--calorie-progress: 0%;--calorie-progress-projected: 0%;--calorie-progress-color: var(--deficit);--calorie-progress-track: var(--violet-soft);position:relative;width:100%;max-width:620px;height:16px;overflow:hidden;border-radius:999px;background:var(--calorie-progress-track)}.calorie-progress-fill{position:relative;z-index:2;width:var(--calorie-progress);height:100%;border-radius:inherit;background:var(--calorie-progress-color);transition:width .18s ease-out}.calorie-progress-projected-fill{position:absolute;z-index:1;inset:0 auto 0 0;width:var(--calorie-progress-projected);border-radius:inherit;background:var(--violet-soft);background:color-mix(in srgb,var(--calorie-progress-color) 35%,var(--calorie-progress-track));transition:width .18s ease-out}.calorie-progress-surplus{--calorie-progress-color: var(--coral);--calorie-progress-track: var(--coral-soft)}.calorie-progress-neutral{--calorie-progress-color: var(--muted);--calorie-progress-track: var(--line)}.calorie-progress-target{--calorie-progress-color: var(--violet)}.calorie-progress-meta{display:flex;justify-content:space-between;gap:14px;margin-top:9px;width:100%;max-width:620px;font-size:.74rem;font-weight:750}.balance-macros{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}.balance-macros-block{display:grid;align-content:start;gap:9px;min-width:0}.balance-macros-label{color:var(--muted);font-size:.68rem;font-weight:800;letter-spacing:.04em;text-align:center;text-transform:uppercase}.balance-macros>div{min-width:0}.balance-macro{display:flex;align-items:center;gap:10px;justify-content:center;padding-right:18px;border-right:1px solid var(--line)}.balance-macro:first-child{padding-left:0}.balance-macro:last-child{padding-right:0;border-right:0}.macro-icon{display:grid;flex:0 0 46px;place-items:center;width:46px;height:46px;border:1px solid var(--line);border-radius:50%;color:var(--violet);background:var(--surface)}.macro-copy{min-width:0;text-align:center}.macro-copy>span,.macro-copy>strong,.daily-body-metric span,.daily-body-metric strong{display:block}.macro-copy>span,.daily-body-metric span{color:var(--muted);font-size:.75rem;line-height:1.2;font-weight:750}.macro-copy>strong,.daily-body-metric strong{margin-top:4px;color:var(--violet);font-size:1rem;line-height:1.2;font-variant-numeric:tabular-nums;white-space:nowrap}.macro-projected{display:block;margin-top:3px;color:var(--muted);font-size:.76rem;font-weight:750;letter-spacing:0}.balance-footer{display:grid;grid-template-columns:minmax(0,1.1fr) minmax(250px,1fr);gap:clamp(24px,4vw,60px);padding-top:20px;border-top:1px solid var(--line)}.daily-body-summary{align-content:center;min-width:0;padding-left:clamp(24px,2vw,34px);border-left:1px solid var(--line)}.body-summary-action{display:inline-flex;align-self:center;justify-self:center;align-items:center;gap:6px;padding:5px 8px;border:1px solid var(--line);border-radius:999px;color:var(--violet);background:var(--surface);font-size:.74rem;font-weight:800;white-space:nowrap}.body-summary-action:hover{border-color:var(--violet);background:var(--violet-soft)}.daily-body-metrics{display:grid;grid-template-columns:repeat(2,minmax(0,1fr)) auto;align-items:center;gap:clamp(12px,2vw,24px)}.daily-body-metric strong{color:var(--text)}.daily-body-metric{text-align:center}.daily-body-empty{margin:10px 0 0;color:var(--muted);font-size:.78rem}.entries-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:17px}.entries-section{display:flex;flex-direction:column;min-width:0;min-height:295px;padding:17px;border:1px solid var(--line);border-radius:13px;background:var(--surface)}.entries-header{display:flex;align-items:center;justify-content:space-between;gap:12px;padding-bottom:13px;border-bottom:1px solid var(--line)}.entries-header>div{display:flex;align-items:center;gap:10px;color:var(--violet)}.entries-header h2{margin:0;color:var(--text);font-size:1.03rem}.entries-header-caption{color:var(--muted);font-size:.72rem;font-weight:750;letter-spacing:0}.entries-header>strong{color:var(--coral);white-space:nowrap}.entries-header-calories{display:flex;align-items:baseline;gap:7px;text-align:right;white-space:nowrap}.entries-header-calories strong{color:var(--coral);font-size:.88rem}.entries-header-calories span{color:var(--muted);font-size:.72rem;font-weight:750}.entries-section:nth-child(2) .entries-header>strong{color:var(--violet)}.entries-list{display:grid;gap:0;max-height:250px;overflow-y:auto;overflow-x:hidden;margin:0;padding:0 5px 0 0;list-style:none}.entry-row{display:flex;align-items:center;justify-content:space-between;gap:14px;padding:11px 0;border-bottom:1px solid var(--line)}.entry-row-main{min-width:0}.entry-row-main strong,.entry-row-main span{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.entry-row-main strong{color:var(--text);font-size:.9rem}.entry-row-main span{margin-top:4px;color:var(--muted);font-size:.77rem}.entry-row-meta{display:flex;flex-shrink:0;align-items:center;gap:8px}.entry-row-actions{display:inline-flex;flex-shrink:0;align-items:center;gap:4px;justify-self:end}.entry-row-action{display:grid;place-items:center;width:28px;height:28px;padding:0;border:1px solid transparent;border-radius:7px;color:var(--muted);background:transparent}.entry-row-action:hover{border-color:var(--line);color:var(--violet);background:var(--violet-soft)}.entry-row-action-danger:hover{color:var(--coral);background:var(--coral-soft)}.entry-row-meta strong{color:var(--text);font-size:.84rem;white-space:nowrap}.entry-table-head,.food-entry-row{display:grid;grid-template-columns:minmax(0,1.5fr) minmax(76px,.75fr) minmax(42px,.35fr) minmax(76px,auto) 60px;align-items:center;gap:10px}.entry-table-head{padding:9px 5px 6px 0;color:var(--muted);font-size:.68rem;font-weight:800;letter-spacing:.04em;text-transform:uppercase}.food-entry-table-head span:nth-child(3){text-align:center}.food-entry-row{justify-content:initial;min-width:0;padding:11px 0}.food-entry-row>span,.food-entry-name,.food-entry-name strong{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.food-entry-name strong{display:block;color:var(--text);font-size:.9rem}.food-entry-name .status-badge{margin-top:4px}.food-entry-meal,.food-entry-quantity{color:var(--muted);font-size:.77rem}.food-entry-quantity{text-align:center}.food-entry-kcal{color:var(--coral);font-size:.84rem;white-space:nowrap}.status-badge{display:inline-flex;align-items:center;min-height:20px;padding:2px 7px;border-radius:999px;font-size:.68rem;font-weight:800;white-space:nowrap}.status-confirmed_estimated{color:#7b4d00;background:#fff2d3}.status-planned{color:#4a38a3;background:var(--violet-soft)}.entries-empty{display:grid;flex:1;place-content:center;justify-items:center;gap:7px;min-height:150px;color:var(--violet);text-align:center}.entries-empty p,.entries-empty span{margin:0}.entries-empty p{color:var(--text);font-weight:750}.entries-empty span{color:var(--muted);font-size:.79rem}.bottom-action{display:inline-flex;align-items:center;justify-content:center;gap:7px;width:100%;margin-top:auto;padding:12px 8px 3px;border:0;border-top:1px solid var(--line);color:var(--violet);background:transparent;font-weight:800}.bottom-action:hover{color:var(--coral)}.dialog-backdrop{position:fixed;inset:0;z-index:10;display:grid;place-items:center;padding:20px;background:#2d174847}.action-dialog{width:min(480px,100%);max-height:calc(100vh - 40px);overflow-y:auto;padding:24px;border:1px solid var(--line);border-radius:16px;color:var(--text);background:var(--surface);box-shadow:var(--shadow)}.action-dialog header{display:flex;align-items:start;justify-content:space-between;gap:16px}.action-dialog h2{margin:4px 0 0;font-size:1.55rem;letter-spacing:-.04em}.action-dialog p:not(.eyebrow){margin:22px 0;color:var(--muted);line-height:1.6}.dialog-form{display:grid;gap:15px}.dialog-form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:13px}.dialog-field{display:grid;gap:6px;min-width:0}.dialog-field>label{color:var(--text);font-size:.78rem;font-weight:800}.dialog-field-label{color:var(--text);font-size:.78rem;font-weight:800}.source-choice-group{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:7px}.activity-source-choice-group{grid-template-columns:repeat(2,minmax(0,1fr))}.source-choice{min-width:0;min-height:40px;padding:7px 9px;border:1px solid var(--line);border-radius:9px;color:var(--muted);background:var(--surface);font-size:.76rem;font-weight:750;line-height:1.25}.source-choice:hover{border-color:var(--violet);color:var(--violet);background:var(--violet-soft)}.source-choice[aria-pressed=true]{border-color:var(--violet);color:var(--violet);background:var(--violet-soft);box-shadow:0 0 0 2px #6542d51a}.checkbox-field{display:inline-flex;align-items:center;gap:9px;width:fit-content;color:var(--text);font-size:.84rem;font-weight:750;cursor:pointer}.checkbox-field input{width:17px;height:17px;margin:0;accent-color:var(--violet)}.food-bank-no-match{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:9px 10px;border:1px solid var(--line);border-radius:9px;color:var(--muted);background:var(--surface-muted);font-size:.75rem;line-height:1.35}.food-bank-no-match .button{flex-shrink:0;min-height:32px;padding:5px 9px;font-size:.72rem}.dialog-field input,.dialog-field select,.dialog-field textarea{width:100%;border:1px solid var(--line);border-radius:9px;color:var(--text);background:var(--surface);font-size:.88rem}.dialog-field input,.dialog-field select{min-height:40px;padding:8px 10px}.dialog-field textarea{min-height:74px;padding:9px 10px;resize:vertical}.dialog-field input[aria-invalid=true],.dialog-field select[aria-invalid=true],.dialog-field textarea[aria-invalid=true]{border-color:var(--coral);box-shadow:0 0 0 2px var(--coral-soft)}.field-error{color:var(--coral);font-size:.74rem;line-height:1.35}.dialog-error{display:flex;align-items:start;gap:8px;margin:0 0 16px;padding:10px 12px;border:1px solid #f2b9bc;border-radius:9px;color:#9b3037;background:var(--coral-soft);font-size:.82rem;line-height:1.45}.dialog-submit{display:inline-flex;align-items:center;justify-content:center;gap:8px;width:100%;min-height:43px}.dialog-submit:disabled{cursor:wait;opacity:.65}.dialog-actions{display:flex;justify-content:end;gap:10px;margin-top:22px}.dialog-actions .button{justify-self:auto}.button-danger{border-color:var(--coral);color:#fff;background:var(--coral)}.button-danger:disabled{cursor:wait;opacity:.65}.spin{animation:spin .7s linear infinite}.graph-stage{margin-top:18px}.chart-view{min-width:0;padding:clamp(20px,3vw,32px);border:1px solid var(--line);border-radius:13px;background:var(--surface-muted)}.chart-header{display:flex;align-items:start;justify-content:space-between;gap:24px;padding-bottom:15px;border-bottom:1px solid var(--line)}.chart-header .eyebrow{margin:0 0 5px}.chart-header h2{margin:0;color:var(--text);font-size:clamp(1.45rem,3vw,2.05rem);letter-spacing:-.045em}.chart-header p:not(.eyebrow){max-width:650px;margin:8px 0 0;color:var(--muted);line-height:1.5}.chart-range{display:grid;flex:0 0 auto;gap:5px;color:var(--muted);font-size:.75rem;font-weight:750}.chart-range select{min-height:38px;padding:0 28px 0 10px;border:1px solid var(--line);border-radius:9px;color:var(--text);background:var(--surface);font:inherit;font-size:.8rem}.chart-summary{margin:14px 0 0;color:var(--muted);font-size:.84rem;line-height:1.5}.chart-legend{display:flex;flex-wrap:wrap;gap:8px 16px;margin-top:12px;color:var(--muted);font-size:.76rem;line-height:1.4}.chart-legend-item{display:inline-flex;align-items:center;gap:7px}.chart-legend-swatch{display:inline-block;flex:0 0 auto;width:22px;height:10px;border-radius:999px}.chart-legend-line-coral{border-top:3px solid var(--coral)}.chart-legend-line-violet{border-top:3px dashed var(--violet)}.chart-legend-fill-deficit{border:1px solid rgb(47 138 99 / 45%);background:#2f8a6333}.chart-legend-fill-surplus{border:1px solid rgb(216 64 69 / 45%);background:#d8404533}.chart-plot{position:relative;height:390px;margin-top:12px;padding:18px 6px 0 0}.chart-unit{position:absolute;top:1px;left:4px;z-index:1;color:var(--muted);font-size:.72rem;font-weight:750;letter-spacing:.04em;text-transform:uppercase}.chart-empty{display:grid;place-content:center;justify-items:center;height:100%;gap:8px;color:var(--muted);text-align:center}.chart-empty strong{color:var(--text)}.chart-empty span{font-size:.84rem}.chart-tooltip{min-width:170px;padding:11px 13px;border:1px solid var(--line);border-radius:9px;color:var(--text);background:#fffffff5;box-shadow:var(--shadow)}.chart-tooltip>strong{display:block;margin-bottom:7px;font-size:.78rem}.chart-tooltip>div{display:flex;justify-content:space-between;gap:18px;padding-top:4px;font-size:.78rem}.chart-tooltip b{color:var(--text)}.dialog-close{display:grid;place-items:center;width:38px;height:38px;border:0;border-radius:9px;color:var(--muted);background:transparent}.dialog-close:hover{color:var(--text);background:var(--violet-soft)}.dialog-dismiss{width:100%}.view-stage{display:grid;grid-template-columns:90px minmax(0,1fr);align-content:center;gap:24px;min-height:500px;margin-top:18px;padding:clamp(24px,5vw,64px);border:1px solid var(--line);border-radius:13px;background:var(--surface-muted)}.stage-icon{display:grid;place-items:center;width:84px;height:84px;border-radius:50%;color:var(--violet);background:var(--violet-soft)}.view-stage .eyebrow{margin:0 0 8px}.view-stage h2{margin:0;font-size:clamp(1.55rem,3vw,2.25rem);letter-spacing:-.045em}.view-stage p:not(.eyebrow){max-width:540px;margin:11px 0 0;color:var(--muted);line-height:1.6}.bootstrap-state h1,.bootstrap-state p{margin:0}.bootstrap-state h1{font-size:clamp(2rem,6vw,3.5rem);letter-spacing:-.04em}.bootstrap-state p:not(.eyebrow){color:var(--muted);font-size:1rem;line-height:1.6}.eyebrow{color:var(--violet);font-size:.8rem;font-weight:750;letter-spacing:.09em;text-transform:uppercase}.button{justify-self:center;border:1px solid var(--line);border-radius:10px;padding:10px 15px;color:var(--text);background:var(--surface);font-weight:700}.button-primary{border-color:var(--violet);color:#fff;background:var(--violet)}@media(prefers-reduced-motion:no-preference){.bootstrap-state{animation:state-enter .18s ease-out}}@media(max-width:1120px){.summary-bar{grid-template-columns:repeat(3,minmax(0,1fr))}.summary-body{border-top:1px solid var(--line)}.summary-macros{border-top:1px solid var(--line);border-right:0}}@media(max-width:900px){.calorie-progress-summary{padding-right:0;border-right:0}.calorie-balance-main{grid-template-columns:minmax(0,1fr) minmax(0,1fr);grid-template-areas:"summary remaining" "progress progress";gap:22px 28px}.balance-footer{grid-template-columns:1fr;gap:18px}.daily-body-summary{padding-top:18px;padding-left:0;border-top:1px solid var(--line);border-left:0}}@media(max-width:800px){.dashboard-shell{grid-template-columns:minmax(0,1fr)}.view-navigation{flex-direction:row;overflow-x:auto;align-items:stretch;padding:0;border-right:0;border-bottom:1px solid var(--line)}.view-navigation-button{flex:0 0 auto;width:72px;min-height:64px;padding:12px 14px;border-right:1px solid var(--line);border-bottom:0}.view-navigation-button.is-active:before{inset:auto 0 0;width:auto;height:4px}.date-navigator{display:none}}@media(max-width:620px){.app-shell{padding:20px 12px 28px}.summary-bar{grid-template-columns:repeat(2,minmax(0,1fr))}.summary-date,.summary-metric,.summary-macros,.summary-body{padding:14px;border-bottom:1px solid var(--line)}.summary-date,.summary-metric:nth-child(3),.summary-body{border-right:0}.summary-macros,.summary-body{grid-column:span 2}.summary-body{border-bottom:0}.dialog-form-grid{grid-template-columns:1fr}.source-choice-group{grid-template-columns:repeat(3,minmax(0,1fr))}.activity-source-choice-group{grid-template-columns:repeat(2,minmax(0,1fr))}.source-choice{padding-inline:4px;font-size:.72rem}.food-bank-no-match{align-items:stretch;flex-direction:column}.food-bank-no-match .button{width:100%}.view-frame{padding:19px 15px}.food-bank-header,.food-bank-toolbar{align-items:stretch;flex-direction:column}.food-bank-actions{flex-wrap:wrap}.food-bank-actions .button{flex:1;justify-content:center}.date-navigator{display:flex;min-width:0}.date-navigator-current{font-size:.76rem}.calorie-balance{padding:20px 17px}.calorie-balance-main{grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:20px 18px}.calorie-consumed-value strong{font-size:2.45rem}.calorie-remaining{padding-left:0}.calorie-remaining strong{font-size:2rem}.calorie-progress-meta{font-size:.68rem}.balance-macros{gap:8px}.balance-macro{gap:7px;padding-right:8px}.macro-icon{flex-basis:36px;width:36px;height:36px}.daily-body-metrics{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.daily-body-metrics .body-summary-action{grid-column:1 / -1;justify-self:center}.entries-grid{grid-template-columns:1fr}.food-entry-table-head,.food-entry-row{grid-template-columns:minmax(0,1fr) minmax(76px,auto)}.food-entry-table-head span:nth-child(2),.food-entry-table-head span:nth-child(3){display:none}.food-entry-row{row-gap:4px}.food-entry-name{grid-column:1;grid-row:1}.food-entry-kcal{grid-column:2;grid-row:1;justify-self:end}.food-entry-meal{grid-column:1;grid-row:2}.food-entry-quantity{grid-column:2;grid-row:2;text-align:right}.food-entry-row .entry-row-actions{grid-column:1 / -1;grid-row:3;justify-self:end}.chart-header{display:grid;gap:14px}.chart-range{justify-self:start}.chart-plot{height:310px;padding-right:0}.view-stage{grid-template-columns:1fr;min-height:340px;gap:18px;padding:26px}}@keyframes state-enter{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}@keyframes spin{to{transform:rotate(360deg)}}
