: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}.login-page{display:grid;place-items:center;min-height:100vh;padding:24px 16px}.login-card{width:min(400px,100%);padding:32px;border:1px solid var(--line);border-radius:16px;background:var(--surface);box-shadow:var(--shadow)}.login-card h1{margin:4px 0 0;font-size:clamp(2rem,7vw,2.7rem);letter-spacing:-.055em}.login-description{margin:12px 0 26px;color:var(--muted);line-height:1.55}.login-form{display:grid;gap:16px}.login-field{display:grid;gap:6px}.login-field label{color:var(--text);font-size:.78rem;font-weight:800}.login-field input{width:100%;min-height:44px;padding:9px 11px;border:1px solid var(--line);border-radius:9px;color:var(--text);background:var(--surface)}.login-field input[aria-invalid=true]{border-color:var(--coral);box-shadow:0 0 0 2px var(--coral-soft)}.login-field-error,.login-form-error{color:var(--coral);font-size:.74rem;line-height:1.4}.login-form-error{margin:0}.login-submit{width:100%;min-height:44px;margin-top:4px}.app-heading-row{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:16px}.header-menu{position:relative;flex-shrink:0;margin-left:auto}.header-menu-trigger{display:grid;place-items:center;width:44px;height:44px;border:0;color:var(--muted);background:transparent;border-radius:10px}.header-menu-trigger:hover,.header-menu-trigger[aria-expanded=true]{color:var(--violet);background:var(--violet-soft)}.header-menu-panel{position:absolute;top:calc(100% + 6px);right:0;z-index:30;width:max-content;max-width:calc(100vw - 24px);padding:6px;border:1px solid var(--line);border-radius:12px;background:var(--surface);box-shadow:0 8px 28px #2a184824}.header-menu-panel button{display:block;width:100%;min-height:44px;padding:10px 14px;border:0;border-radius:7px;background:transparent;color:var(--text);text-align:left;font-size:.9rem;font-weight:700}.header-menu-panel button:hover,.header-menu-panel button:focus-visible{color:var(--violet);background:var(--violet-soft)}.header-menu-panel button:last-child{margin-top:4px;border-top:1px solid var(--line);border-radius:0 0 7px 7px}.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[aria-disabled=false]{color:var(--violet);cursor:pointer}.calendar-day.is-untracked.is-today{font-weight:800}.calendar-day.is-tracked:hover,.calendar-day.is-untracked[aria-disabled=false]: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:30;display:grid;place-items:center;padding:20px;background:#2d174847}.action-dialog{width:min(680px,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(4,minmax(0,1fr));gap:7px}.activity-source-choice-group{grid-template-columns:repeat(3,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}.photo-import-panel,.photo-import-results{display:grid;gap:14px}.photo-picker{display:grid;min-height:96px;place-items:center;padding:16px;border:1px dashed var(--violet);border-radius:12px;color:var(--violet);background:var(--violet-soft);cursor:pointer}.photo-picker span,.photo-extract-button,.icon-text-button,.photo-results-heading,.photo-row-heading{display:flex;align-items:center;gap:8px}.photo-picker span{font-size:.86rem;font-weight:800}.photo-picker input{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0,0,0,0)}.photo-preview{display:grid;grid-template-columns:92px minmax(0,1fr);align-items:center;gap:12px;padding:10px;border:1px solid var(--line);border-radius:11px;background:var(--surface-muted)}.photo-preview img{width:92px;height:72px;border-radius:8px;object-fit:cover}.photo-preview>div{display:grid;min-width:0;gap:6px}.photo-preview strong{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.text-button,.icon-text-button{width:fit-content;padding:0;border:0;color:var(--violet);background:transparent;font-size:.76rem;font-weight:800}.photo-extract-button{justify-content:center;width:100%}.photo-warnings{padding:11px 13px;border:1px solid #e5cc84;border-radius:10px;color:#705314;background:#fff8df;font-size:.78rem}.photo-warnings ul{margin:7px 0 0;padding-left:18px}.photo-results-heading,.photo-row-heading{justify-content:space-between}.photo-results-heading h3{margin:0;font-size:1rem}.photo-import-row{display:grid;gap:12px;padding:14px;border:1px solid var(--line);border-radius:12px;background:var(--surface-muted)}.photo-import-row label{display:grid;gap:6px;min-width:0;color:var(--text);font-size:.75rem;font-weight:800}.photo-import-row input,.photo-import-row select,.photo-import-row textarea{width:100%;min-height:40px;padding:8px 10px;border:1px solid var(--line);border-radius:9px;color:var(--text);background:var(--surface);font:inherit;font-weight:500}.photo-import-row textarea{resize:vertical}.photo-nutrition-grid{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:8px}.graph-stage{margin-top:18px}.chart-view{min-width:0;overflow:hidden;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-controls{display:flex;flex:0 0 auto;align-items:end;gap:10px}.chart-mode-toggle{min-height:44px;padding:0 12px;border:1px solid var(--line);border-radius:10px;color:var(--muted);background:var(--surface);font-size:.8rem;font-weight:800;white-space:nowrap}.chart-mode-toggle:hover{color:var(--violet);background:var(--violet-soft)}.chart-mode-toggle[aria-pressed=true]{border-color:#6542d547;color:var(--violet);background:var(--violet-soft);box-shadow:inset 0 0 0 1px #6542d51f}.chart-range{display:grid;flex:0 0 auto;gap:5px;color:var(--muted);font-size:.75rem;font-weight:750}.chart-range-options{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:2px;padding:3px;border:1px solid var(--line);border-radius:10px;background:var(--surface)}.chart-range-option{min-width:42px;min-height:36px;padding:0 10px;border:0;border-radius:7px;color:var(--muted);background:transparent;font-size:.8rem;font-weight:800}.chart-range-option:hover{color:var(--violet);background:var(--violet-soft)}.chart-range-option[aria-pressed=true]{color:var(--violet);background:var(--violet-soft);box-shadow:inset 0 0 0 1px #6542d52e}.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-blue{border-top:3px solid var(--blue)}.chart-legend-line-violet{border-top:3px dashed var(--violet)}.chart-legend-line-amber{border-top:3px dashed #241a30;filter:drop-shadow(0 -1px 0 #fff) drop-shadow(0 1px 0 #fff)}.chart-legend-bar-balance{border:1px solid rgb(101 66 213 / 35%);background:linear-gradient(90deg,var(--coral) 0 50%,var(--violet) 50% 100%)}.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;min-width:0;height:390px;margin-top:12px;padding:18px 6px 0 0}.chart-plot-consumed-burned,.chart-plot-deficit-surplus{display:grid;grid-template-rows:auto minmax(0,1fr);padding-bottom:28px}.chart-plot-deficit-surplus .chart-responsive-container,.chart-plot-consumed-burned .chart-responsive-container{min-width:0;min-height:0}.chart-plot-body-trend{display:grid;grid-template-rows:auto minmax(0,1fr);height:430px}.chart-plot-body-trend .chart-responsive-container{min-width:0;min-height: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){.login-card{padding:24px}.app-heading-row{align-items:flex-start}.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}.dialog-backdrop{padding:12px}.action-dialog{max-height:calc(100dvh - 24px)}.source-choice-group{grid-template-columns:repeat(2,minmax(0,1fr))}.activity-source-choice-group{grid-template-columns:repeat(3,minmax(0,1fr))}.source-choice{padding-inline:4px;font-size:.72rem}.photo-nutrition-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.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-view{min-width:0;width:100%;gap:14px;padding:14px 12px calc(83px + env(safe-area-inset-bottom));border:1px solid var(--line);border-radius:13px;background:var(--surface);box-shadow:0 3px 12px #2d174808}.food-bank-header,.food-bank-toolbar,.food-bank-state,.food-bank-table-wrap{min-width:0}.food-bank-header{gap:14px;padding:0 2px}.food-bank-header p:not(.eyebrow){overflow-wrap:anywhere}.food-bank-actions{width:100%}.food-bank-toolbar{gap:10px;padding:10px}.food-bank-search{width:100%;min-width:0}.food-bank-filter{justify-content:space-between;width:100%}.food-bank-filter select{min-width:0;flex:1}.food-bank-count{align-self:flex-start}.food-bank-table-wrap{overflow:hidden;border:1px solid var(--line);border-radius:12px;background:var(--surface)}.food-bank-table{display:block;width:100%;min-width:0;font-size:.7rem}.food-bank-table thead{display:block;width:100%;height:auto;margin:0;overflow:visible;clip:auto;white-space:normal;border:0;background:var(--surface-muted)}.food-bank-table tbody{display:block}.food-bank-table thead tr,.food-bank-table tbody tr{display:grid;grid-template-columns:minmax(0,1.5fr) repeat(3,minmax(0,1.1fr)) 40px;grid-template-areas:"food context serving calories actions" "category protein carbs fat actions";min-width:0;column-gap:4px}.food-bank-table thead tr{padding:8px;border-bottom:1px solid var(--line)}.food-bank-table tbody tr{padding:10px 8px;border:0;border-bottom:1px solid var(--line);background:var(--surface)}.food-bank-table tbody tr:last-child{border-bottom:0}.food-bank-table thead th,.food-bank-table tbody th,.food-bank-table tbody td{display:block;min-width:0;padding:0;border:0;overflow-wrap:anywhere}.food-bank-table thead th{position:relative;color:transparent;font-size:0;font-weight:800;letter-spacing:.04em;line-height:1.15;text-transform:uppercase}.food-bank-table thead th:after{color:var(--muted);font-size:.55rem}.food-bank-table thead th:nth-child(1):after{content:"Food"}.food-bank-table thead th:nth-child(2):after{content:"Meal"}.food-bank-table thead th:nth-child(3):after{content:"Category"}.food-bank-table thead th:nth-child(4):after{content:"Serving"}.food-bank-table thead th:nth-child(5):after{content:"Kcal"}.food-bank-table thead th:nth-child(6):after{content:"Prot."}.food-bank-table thead th:nth-child(7):after{content:"Carbs"}.food-bank-table thead th:nth-child(8):after{content:"Fat"}.food-bank-table thead th:nth-child(1),.food-bank-table tbody th[scope=row]{grid-area:food;min-width:0}.food-bank-table thead th:nth-child(2),.food-bank-table tbody td:nth-of-type(1){grid-area:context}.food-bank-table thead th:nth-child(3),.food-bank-table tbody td:nth-of-type(2){grid-area:category}.food-bank-table thead th:nth-child(4),.food-bank-table tbody td:nth-of-type(3){grid-area:serving}.food-bank-table thead th:nth-child(5),.food-bank-table tbody td:nth-of-type(4){grid-area:calories}.food-bank-table thead th:nth-child(6),.food-bank-table tbody td:nth-of-type(5){grid-area:protein}.food-bank-table thead th:nth-child(7),.food-bank-table tbody td:nth-of-type(6){grid-area:carbs}.food-bank-table thead th:nth-child(8),.food-bank-table tbody td:nth-of-type(7){grid-area:fat}.food-bank-table thead th:last-child,.food-bank-table tbody td:last-child{grid-area:actions}.food-bank-table tbody th[scope=row]:before,.food-bank-table td:before{display:block;margin-bottom:2px;color:var(--muted);font-size:.62rem;font-weight:800;letter-spacing:.06em;line-height:1.2;text-transform:uppercase}.food-bank-table tbody th[scope=row]:before{content:"Food"}.food-bank-table td:before{content:attr(data-label)}.food-bank-table-name,.food-bank-table-id{overflow-wrap:anywhere}.food-bank-table-actions{display:grid;justify-content:end;gap:4px}.food-bank-table td.food-bank-table-actions-cell:before{content:none}.food-bank-table-actions .entry-row-action{width:38px;height:38px}.food-bank-table-calories,.food-bank-table-macro{white-space:normal}.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;grid-template-columns:minmax(0,1fr) auto;align-items:start;gap:8px 12px}.chart-header>div{min-width:0}.chart-controls{grid-column:2;grid-row:1;align-self:start;justify-self:end}.chart-controls-with-mode{grid-column:1 / -1;grid-row:2;width:100%;justify-content:flex-end}.chart-range{gap:0}.chart-range-label{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.chart-range-option{min-width:36px;padding-right:7px;padding-left:7px}.chart-plot{height:310px;padding-right:0}.chart-plot-consumed-burned{height:340px;padding:18px 0 32px}.chart-plot-body-trend{height:390px;padding-bottom:8px}.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)}}.summary-bar-mobile,.entry-actions-mobile,.entries-mobile-hint,.daily-log-header,.daily-log-tabs{display:none}.entry-actions-desktop{display:inline-flex;align-items:center;gap:4px}.entry-row-actions{position:relative}@media(max-width:620px){body{padding-bottom:calc(73px + env(safe-area-inset-bottom))}.app-shell{padding-bottom:0}.summary-bar{display:none}.summary-bar-mobile{display:grid;overflow:visible;border:1px solid var(--line);border-radius:13px;background:var(--surface);box-shadow:0 3px 12px #2d174808}.summary-mobile-date-row{padding:8px 10px;border-bottom:1px solid var(--line)}.summary-mobile-date-row .date-navigator{width:100%;min-width:0;border:0;border-radius:8px}.summary-mobile-date-row .date-navigator>button:not(.date-navigator-current){width:42px;min-height:42px}.summary-mobile-date-row .date-navigator-current{min-height:42px;padding:0 6px;border:0;font-size:.85rem}.summary-mobile-calories-row{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:7px;padding:11px 11px 9px;border-bottom:1px solid var(--line)}.summary-mobile-metric{min-width:0;text-align:center}.summary-mobile-metric>span{display:block;min-height:1.05rem;color:var(--muted);font-size:.68rem;font-weight:800;line-height:1.2;overflow-wrap:anywhere}.summary-mobile-metric>strong{display:block;margin-top:2px;color:var(--text);font-size:clamp(1rem,4.8vw,1.35rem);font-variant-numeric:tabular-nums;letter-spacing:-.05em;line-height:1.1;white-space:nowrap}.summary-mobile-metric-coral>strong{color:var(--coral)}.summary-mobile-metric-violet>strong{color:var(--violet)}.summary-mobile-metric-amber>strong{color:var(--amber)}.summary-mobile-progress{grid-column:1 / -1;min-width:0}.summary-mobile-progress-track{height:7px;overflow:hidden;border-radius:999px;background:var(--violet-soft)}.summary-mobile-progress-track span{display:block;height:100%;border-radius:inherit;background:var(--deficit)}.summary-mobile-progress small{display:block;margin-top:4px;color:var(--muted);font-size:.62rem;font-weight:750;line-height:1.2;text-align:center;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.summary-mobile-details-row{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:2px;padding:10px 8px 11px}.summary-mobile-details-row .summary-mobile-metric>span{font-size:.61rem}.summary-mobile-details-row .summary-mobile-metric>strong{font-size:clamp(.84rem,4vw,1.02rem)}.summary-mobile-weight-action{min-width:0;min-height:44px;margin:-6px 0;padding:6px 0;border:0;border-radius:8px;color:inherit;background:transparent;font:inherit;text-align:center}.summary-mobile-weight-action:hover{background:var(--violet-soft)}.summary-mobile-weight-action>strong{display:inline-flex;align-items:center;justify-content:center;gap:2px;color:var(--violet)}.dashboard-shell{display:block;min-height:0;width:100%;max-width:100%;margin-top:12px;overflow:visible;border:0;border-radius:0;background:transparent;box-shadow:none}.view-navigation{position:fixed;inset:auto 0 0;z-index:20;display:flex;flex-direction:row;align-items:stretch;width:100%;min-height:61px;padding:0 0 env(safe-area-inset-bottom);border:0;border-top:1px solid var(--line);background:#fffffff7;box-shadow:0 -5px 18px #2d174814}.view-navigation-button{flex:1 1 0;width:auto;min-width:44px;min-height:61px;padding:10px 4px;border-right:1px solid var(--line);border-bottom:0}.view-navigation-button:last-child{border-right:0}.view-navigation-button.is-active:before{inset:0 0 auto;width:auto;height:4px}.view-frame{min-width:0;width:100%;max-width:100%;padding:0}.view-frame-header{display:none}.daily-stage{margin-top:0;width:100%;max-width:100%}.daily-view{gap:12px;min-width:0;width:100%}.daily-view-title,.calorie-balance{display:none}.daily-log{min-width:0;width:100%;overflow:visible;padding:14px 12px 12px;border:1px solid var(--line);border-radius:13px;background:var(--surface);box-shadow:0 3px 12px #2d174808}.daily-log-header{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:0 2px 11px;border-bottom:1px solid var(--line)}.daily-log-header h2{margin:0;color:var(--text);font-size:1.05rem;letter-spacing:-.04em}.daily-log-header strong{color:var(--coral);font-size:.9rem;white-space:nowrap}.daily-log-header-total{display:inline-flex;align-items:baseline;justify-content:flex-end;gap:7px;min-width:0;color:var(--muted);white-space:nowrap}.daily-log-header-total span{font-size:.72rem;font-weight:750}.daily-log-tabs{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));margin:0 -12px;border-bottom:1px solid var(--line)}.daily-log-tab{display:inline-flex;align-items:center;justify-content:center;gap:7px;min-width:0;min-height:50px;padding:9px 7px;border:0;border-right:1px solid var(--line);border-radius:0;color:var(--muted);background:transparent;font-size:.78rem;font-weight:800}.daily-log-tab-label,.entries-header-icon{display:none}.daily-log-tab svg{width:26px;height:26px}.daily-log-tab:last-child{border-right:0}.daily-log-tab.is-active{color:var(--violet);background:var(--violet-soft);box-shadow:inset 0 -3px 0 var(--violet)}.daily-log-tab:hover{color:var(--violet);background:var(--violet-soft)}.daily-log-tab:focus-visible{position:relative;z-index:1;outline:3px solid rgb(106 72 184 / 25%);outline-offset:-3px}.entries-grid{display:block;min-width:0;width:100%}.entries-grid .entries-section[hidden]{display:none}.entries-grid .entries-section:not([hidden]){margin-top:0;padding-top:12px;border-top:0}.entries-section{min-height:0;min-width:0;width:100%;padding:12px 2px 0;border:0;border-radius:0;background:transparent}.entries-section+.entries-section{margin-top:12px;padding-top:13px;border-top:1px solid var(--line)}.entries-header{padding-bottom:0;border-bottom:0}.entries-header h2{font-size:.96rem}.entries-header-caption{display:none}.entries-header>strong,.entries-header>div.entries-header-calories{display:none}.entries-mobile-hint{display:block;margin:5px 0 0;padding-bottom:10px;border-bottom:1px solid var(--line);color:var(--muted);font-size:.72rem;line-height:1.35}.entries-list{max-height:none;overflow:visible;padding-right:0}.entry-row{min-width:0;width:100%;gap:8px;padding:0}.entry-row-main strong,.food-entry-name strong{font-size:.86rem}.entry-row-main span,.food-entry-meal,.food-entry-quantity{font-size:.72rem}.food-entry-table-head{display:none}.food-entry-row{grid-template-columns:minmax(0,1fr) auto;row-gap:0}.entry-row:not(.food-entry-row){display:grid;grid-template-columns:minmax(0,1fr) auto;gap:0}.entry-row-select{display:grid;width:100%;min-width:0;min-height:58px;padding:9px 0;border:0;border-radius:0;color:inherit;background:transparent;text-align:left}.entry-row-select:focus-visible{position:relative;z-index:1;outline:3px solid rgb(106 72 184 / 25%);outline-offset:-3px}.food-entry-row-select{grid-column:1 / -1;grid-template-columns:minmax(0,1fr) minmax(76px,auto);grid-template-rows:auto auto;column-gap:8px;row-gap:2px}.entry-row:not(.food-entry-row) .entry-row-select{grid-column:1 / -1;grid-template-columns:minmax(0,1fr) minmax(76px,auto);align-items:center;column-gap:8px}.entry-row.is-selected .entry-row-select{grid-column:1;background:transparent}.entry-row.is-selected{padding:8px 0;background:#6542d512;box-shadow:inset 3px 0 0 var(--violet)}.food-entry-row.is-selected .food-entry-row-select{grid-template-columns:minmax(0,1fr);grid-template-rows:auto auto;padding-left:8px}.entry-row:not(.food-entry-row).is-selected .entry-row-select{grid-template-columns:minmax(0,1fr);padding-left:8px}.entry-row-select .food-entry-name,.entry-row-select .entry-row-main{min-width:0}.entry-row-select .food-entry-name{grid-column:1;grid-row:1}.entry-row-select .food-entry-meal{grid-column:1;grid-row:2}.entry-row-select .food-entry-kcal{grid-column:2;grid-row:1;justify-self:end;padding-right:0}.entry-row-select .food-entry-quantity{grid-column:2;grid-row:2;justify-self:end;padding-right:0}.entry-row-select .entry-row-main{grid-column:1;grid-row:1}.entry-row-select .entry-row-meta{grid-column:2;grid-row:1;justify-self:end}.food-entry-kcal{font-size:.78rem}.food-entry-quantity{text-align:right}.food-entry-name{padding-right:0}.food-entry-meal{min-width:0}.entry-actions-desktop{display:none}.entry-actions-mobile{display:grid;grid-column:2;grid-row:1;align-self:stretch;grid-template-columns:repeat(2,minmax(0,1fr));width:120px;min-width:120px;column-gap:6px}.entry-actions-mobile .entry-row-action{display:grid;width:100%;height:100%;min-width:0;min-height:54px;place-items:center;align-content:center;gap:3px;padding:5px 4px;border:1px solid var(--line);border-radius:8px;color:var(--violet);background:var(--surface);font-size:.68rem;font-weight:750}.entry-actions-mobile .entry-row-action-edit{border-color:#cfc3ff;color:var(--violet);background:var(--surface-muted)}.entry-actions-mobile .entry-row-action:hover,.entry-actions-mobile .entry-row-action:focus-visible{background:var(--violet-soft)}.entry-actions-mobile .entry-row-action-danger{border-color:#f1b9bc;color:var(--coral);background:var(--coral-soft)}.entry-actions-mobile .entry-row-action-danger:hover,.entry-actions-mobile .entry-row-action-danger:focus-visible{background:var(--coral-soft)}.bottom-action{width:100%;min-height:42px;margin-top:7px;border:1px solid var(--violet);border-radius:9px;color:var(--violet);background:transparent}.bottom-action:hover{background:var(--violet-soft)}}@keyframes spin{to{transform:rotate(360deg)}}
