:root{color-scheme:light;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;font-size:16px;-webkit-text-size-adjust:100%;color:#25352e;background:#f6f7f6;font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;--forest: #285843;--sage: #eaf1ed;--rust: #a23e32;--muted: #59675f;--border: #dce2de;--surface: #fff}*{box-sizing:border-box}html{width:100%;overflow-x:clip;scrollbar-gutter:stable}body{margin:0;min-width:320px;max-width:100%;overflow-x:clip;line-height:1.5;overflow-wrap:anywhere}#root,.app-shell{width:100%;min-width:0;max-width:100%}button,input,select,textarea{font:inherit;color:inherit;-webkit-tap-highlight-color:transparent}button{cursor:pointer;touch-action:manipulation}button:disabled{cursor:not-allowed;opacity:.55}a{color:var(--forest);text-underline-offset:3px}:focus-visible{outline:2px solid var(--forest);outline-offset:3px}svg{width:20px;height:20px;flex-shrink:0;vertical-align:middle}img{max-width:100%}h1,h2,h3,p{margin:0 0 10px}h1,h2,h3{font-family:inherit;font-weight:600;line-height:1.35}h1{margin:0;font-size:24px}h2{font-size:18px}h3{font-size:16px}p:last-child{margin-bottom:0}section,article,form,details,fieldset{min-width:0;max-width:100%}button,.button{min-height:44px;max-width:100%;padding:9px 12px;border:1px solid var(--border);border-radius:8px;background:var(--surface);font-weight:500;overflow-wrap:anywhere}button:hover:not(:disabled){background:#f0f4f1}input,select,textarea{display:block;width:100%;min-width:0;max-width:100%;min-height:44px;padding:9px 10px;border:1px solid #bbc7bf;border-radius:8px;background:var(--surface);font-size:16px;line-height:1.5}input::placeholder,textarea::placeholder{color:#68756c;opacity:1}input[type=date]{width:100%;min-inline-size:0;max-inline-size:100%}input[type=checkbox],input[type=radio]{display:inline-block;width:20px;min-height:20px;margin:0 6px 0 0;vertical-align:middle;accent-color:var(--forest)}input[type=file]{padding:7px}input::file-selector-button{margin-right:8px;padding:6px 8px;border:0;border-radius:4px;background:var(--sage);color:var(--forest);font:inherit;cursor:pointer}textarea{min-height:110px;resize:vertical}input:disabled,select:disabled,textarea:disabled{background:#f0f2f0;cursor:not-allowed}input[aria-invalid=true],textarea[aria-invalid=true]{border-color:var(--rust)}.app-shell{min-height:100dvh}.sidebar{display:none}.main-content{width:100%;max-width:1000px;min-width:0;margin:0 auto;padding:12px 12px calc(88px + env(safe-area-inset-bottom))}.page-header,.panel-header,.section-heading,.day-heading{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:10px;margin-bottom:10px}.page-header>*,.panel-header>*,.section-heading>*,.day-heading>*{min-width:0;max-width:100%}.panel-header h2,.panel-header h3,.section-heading h2,.section-heading h3,.day-heading h2{margin:0}.eyebrow{display:block;margin-bottom:4px;color:var(--muted);font-size:14px;font-weight:500}.header-actions{display:flex;flex-wrap:wrap;align-items:center;gap:6px}.brand{display:flex;align-items:center;gap:8px;font-size:18px;font-weight:600;color:var(--forest);text-decoration:none}.brand .small{display:block}.brand-mark{display:inline-flex;align-items:center;justify-content:center;width:32px;height:32px;border-radius:8px;background:var(--sage)}.nav-list{display:flex;flex-direction:column;gap:4px}.nav-list button{display:flex;align-items:center;gap:10px;width:100%;border:0;padding:10px;background:transparent;text-align:left;font-size:16px}.nav-list button.active,.mobile-nav button.active{background:var(--sage);color:var(--forest);font-weight:600}.sidebar-bottom{margin-top:auto;padding-top:12px;border-top:1px solid var(--border);color:var(--muted);font-size:14px}.mobile-nav{position:fixed;z-index:30;inset:auto 0 0;display:flex;gap:2px;padding:6px max(6px,env(safe-area-inset-right)) calc(6px + env(safe-area-inset-bottom)) max(6px,env(safe-area-inset-left));border-top:1px solid var(--border);background:var(--surface)}.mobile-nav button{display:flex;flex:1;min-width:0;flex-direction:column;align-items:center;justify-content:center;gap:3px;border:0;padding:6px 2px;font-size:12px;color:var(--muted)}.panel{width:100%;min-width:0;margin-bottom:10px;padding:12px;border:1px solid var(--border);border-radius:10px;background:var(--surface)}.panel>:last-child{margin-bottom:0}.section-heading,.day-heading{margin-top:10px}.day-heading{justify-content:flex-start}.day-heading .field{flex:0 1 180px}.muted{color:var(--muted)}.small{font-size:14px;line-height:1.5}.status-chip,.badge{display:inline-flex;align-items:center;justify-content:center;gap:5px;max-width:100%;padding:3px 7px;border-radius:6px;background:var(--sage);color:var(--forest);font-size:14px;line-height:1.4}.status-chip.local{background:#edf0ed;color:var(--muted)}.status-chip.pending{background:#fff3d8;color:#79551c}.notice{display:block;margin:10px 0;padding:10px;border:1px solid var(--border);border-radius:8px;background:#f1f4f2;font-size:14px;overflow-wrap:anywhere}.notice.error{border-color:#e4bcb6;color:#873a2f;background:#fff0ee}.notice.success{border-color:#c1d7c9;color:var(--forest);background:#edf6f0}.notice.warning{border-color:#e3d1a7;color:#71511c;background:#fff7e5}.button{display:inline-flex;align-items:center;justify-content:center;gap:6px;text-decoration:none;font-size:16px;line-height:1.4}.button.primary{background:var(--forest);border-color:var(--forest);color:#fff}.button.primary:hover:not(:disabled){background:#1e4936}.button.secondary{background:#f0f4f1}.button.danger{background:#fff0ee;border-color:#e4bcb6;color:#873a2f}.button.ghost{border-color:transparent;background:transparent;color:var(--forest)}.button.small{padding:7px 10px;font-size:14px}.icon-button{display:inline-flex;align-items:center;justify-content:center;flex-shrink:0;width:44px;height:44px;padding:10px;border-color:transparent;background:transparent;color:var(--muted)}.button-row{display:flex;flex-wrap:wrap;align-items:center;gap:8px;margin-top:10px}.button-row>*{min-width:0;max-width:100%}.field{display:flex;min-width:0;flex-direction:column;gap:4px;margin-bottom:10px}.field label{font-size:14px;font-weight:500}.field-grid,.date-grid,.mapping-grid{display:grid;grid-template-columns:minmax(0,1fr);gap:10px;margin-bottom:10px}.field-grid .field,.date-grid .field,.mapping-grid .field,.day-heading .field,.composer .button-row .field{margin-bottom:0}.file-input{max-width:100%}.paste-area{min-height:170px}.composer textarea{min-height:100px}.composer .button-row{justify-content:space-between}.tabs{display:flex;flex-wrap:wrap;gap:4px;width:fit-content;max-width:100%;margin-bottom:10px;padding:3px;border:1px solid var(--border);border-radius:8px;background:#edf0ed}.tabs button{border:0;padding:8px 10px;background:transparent;font-size:14px}.tabs button.active{background:var(--surface);color:var(--forest)}.stats-grid,.goal-grid{display:grid;gap:10px;margin-bottom:10px}.stats-grid{grid-template-columns:repeat(auto-fit,minmax(min(100%,130px),1fr))}.goal-grid{grid-template-columns:minmax(0,1fr)}.stat{min-width:0;padding:12px;border:1px solid var(--border);border-radius:8px;background:var(--surface)}.stat-value{display:block;font-size:24px;font-weight:600;line-height:1.35;font-variant-numeric:tabular-nums}.stat-label{display:block;margin-bottom:4px;font-size:14px;font-weight:500}.stat-note{display:block;margin:4px 0 0;font-size:14px;color:var(--muted)}.target-progress{display:block;width:100%;max-width:100%;height:8px;margin-top:8px;border:0;border-radius:4px;background:#e6ece8;accent-color:var(--progress-color, var(--forest));-moz-appearance:none;appearance:none;-webkit-appearance:none;overflow:hidden}.target-progress::-webkit-progress-bar{background:#e6ece8;border-radius:4px}.target-progress::-webkit-progress-value{background:var(--progress-color, var(--forest));border-radius:4px}.target-progress::-moz-progress-bar{background:var(--progress-color, var(--forest));border-radius:4px}.target-calories_kcal{--progress-color: #285843}.target-protein_g{--progress-color: #326a99}.target-fibre_g{--progress-color: #8b642c}.macro-summary{display:flex;flex-wrap:wrap;align-items:center;gap:6px 16px;margin:0 0 10px;font-size:14px}.entry-list{display:grid;gap:10px}.entry-card{min-width:0;padding:12px;border:1px solid var(--border);border-radius:10px;background:var(--surface)}.entry-header{display:flex;align-items:flex-start;justify-content:space-between;gap:8px}.entry-header>*,.entry-summary>*{min-width:0;max-width:100%}.entry-title{margin-bottom:4px;font-size:16px;overflow-wrap:anywhere}.entry-meta{display:flex;flex-wrap:wrap;align-items:center;gap:6px;margin-bottom:4px;color:var(--muted);font-size:14px}.entry-actions{display:flex;flex-shrink:0;gap:2px}.entry-body{margin-top:10px;overflow-wrap:anywhere}.food-list{list-style:none;padding:0;margin:0}.food-row{display:flex;flex-wrap:wrap;align-items:baseline;justify-content:space-between;gap:4px 10px;padding:6px 0;border-bottom:1px solid var(--border);font-size:14px}.food-row>*{min-width:0;max-width:100%}.food-row:last-child{border-bottom:0}.food-row>:last-child{color:var(--muted)}.entry-macros{display:grid;grid-template-columns:repeat(auto-fit,minmax(90px,1fr));gap:8px;margin-top:10px;padding-top:10px;border-top:1px solid var(--border)}.macro{display:flex;min-width:0;flex-direction:column;gap:2px}.macro label,.macro>span:first-child{font-size:14px;color:var(--muted)}.macro strong{font-size:15px;font-weight:600;font-variant-numeric:tabular-nums}.assumptions{margin-top:10px;padding:8px;border-radius:6px;background:#f5f6f4;font-size:14px}.assumptions ul{padding-left:18px;margin:4px 0 0}.attachment-list{display:flex;flex-wrap:wrap;gap:6px;margin-top:10px}.attachment{min-width:0;max-width:100%;font-size:14px}.attachment img{width:44px;height:44px;border-radius:4px;object-fit:cover}.empty-state{padding:12px 0}.empty-orbit{display:none}.empty-state h2{font-size:18px}.empty-state p{margin-bottom:10px;color:var(--muted)}.preview-card{min-width:0;margin-top:10px;padding:12px;border:1px solid var(--border);border-radius:8px;background:#f7f9f7}.import-toolbar{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:10px;margin:10px 0}.csv-preview{width:100%;min-width:0;max-width:100%;overflow-x:auto;border:1px solid var(--border);border-radius:8px;-webkit-overflow-scrolling:touch}table{width:100%;max-width:100%;border-collapse:collapse;table-layout:fixed;font-size:14px;text-align:left}caption{padding:8px;color:var(--muted);text-align:left;font-size:14px}th,td{padding:8px 10px;border-bottom:1px solid var(--border);vertical-align:top;overflow-wrap:anywhere}th{background:#f1f4f2;font-size:14px;font-weight:600}tr:last-child td{border-bottom:0}.csv-preview table{min-width:560px;table-layout:auto}.metric-grid,.settings-grid{display:grid;grid-template-columns:minmax(0,1fr);gap:10px;margin-bottom:10px}.metric-grid>*,.settings-grid>*,.field-grid>*,.mapping-grid>*,.date-grid>*{min-width:0;max-width:100%}.metric-card,.settings-card{min-width:0;padding:12px;border:1px solid var(--border);border-radius:8px;background:var(--surface)}.settings-grid>.panel{margin-bottom:0}.metric-card>strong{display:block;margin-bottom:4px;font-size:24px;font-weight:600}.trend-bars{display:flex;gap:8px;height:160px;margin-top:10px}.trend-bar-wrapper{display:flex;flex:1;min-width:0;flex-direction:column;justify-content:flex-end;align-items:center;gap:6px}.trend-bar{width:100%;max-width:40px;min-height:3px;border-radius:4px 4px 0 0;background:#8ba894}.trend-bar-wrapper:last-child .trend-bar{background:var(--forest)}.trend-label{color:var(--muted);font-size:14px;text-align:center}.instructions textarea{min-height:230px}.history-list{display:grid;min-width:0}.history-item{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:8px;min-width:0;max-width:100%;padding:10px 0;border-bottom:1px solid var(--border);font-size:14px;overflow-wrap:anywhere}.history-item>*,.history-item>*>*{min-width:0;max-width:100%;overflow-wrap:anywhere}.history-item>div:first-child{flex:1 1 240px}.history-item>details{flex-basis:100%}.history-item .button-row{margin-top:0}.history-item:last-child{border-bottom:0}summary{min-height:44px;padding:10px 0;font-size:16px;font-weight:500;line-height:24px;cursor:pointer;touch-action:manipulation}details[open]>summary{margin-bottom:8px}.collapsible>summary{padding:0}.collapsible[open]>summary{margin-bottom:10px}.entry-details{margin-top:8px;border-top:1px solid var(--border)}.entry-summary{overflow-wrap:anywhere}.divider{height:1px;margin:10px 0;border:0;background:var(--border)}.account-form{width:100%;max-width:420px}.account-summary{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:10px;padding:12px;border-radius:8px;background:var(--sage)}.inline-code{padding:2px 4px;border-radius:4px;background:#edf0ed;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:14px;overflow-wrap:anywhere}.loading-screen,.fatal-screen{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:100dvh;padding:20px;text-align:center}.fatal-screen p{max-width:440px;color:var(--muted)}.modal-backdrop{position:fixed;z-index:100;top:0;right:0;bottom:0;left:0;display:flex;align-items:center;justify-content:center;padding:max(12px,env(safe-area-inset-top)) 12px max(12px,env(safe-area-inset-bottom));background:#18291e70}.modal{display:flex;flex-direction:column;width:100%;max-width:620px;max-height:90dvh;min-width:0;border:1px solid var(--border);border-radius:10px;background:var(--surface);overflow:hidden}.modal-header{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:12px;border-bottom:1px solid var(--border)}.modal-header h2{margin:0}.modal pre{white-space:pre-wrap;overflow-wrap:anywhere}.modal-body{min-width:0;min-height:0;padding:12px;overflow-y:auto;overflow-x:hidden;overscroll-behavior:contain}@media(min-width:600px){.main-content{padding:20px 20px calc(88px + env(safe-area-inset-bottom))}.panel{padding:14px}.goal-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.field-grid,.date-grid,.mapping-grid,.metric-grid,.settings-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(min-width:960px){.app-shell{display:grid;grid-template-columns:220px minmax(0,1fr)}.sidebar{display:flex;position:sticky;top:0;flex-direction:column;align-self:start;min-width:0;height:100dvh;padding:20px 12px;border-right:1px solid var(--border);background:var(--surface)}.sidebar .brand{margin:0 8px 20px}.main-content{padding:20px}.mobile-nav{display:none}}@media(max-width:380px){.entry-actions{flex-direction:column}}.food-chat{display:grid;gap:12px;margin-bottom:16px;max-height:440px;overflow:auto}.chat-turn{padding:12px;border:1px solid #d8ded8;border-radius:8px;max-width:92%;white-space:pre-wrap;overflow-wrap:anywhere}.chat-turn.user{margin-left:auto;background:#edf2ee}.chat-turn p{margin:6px 0 0}.release-controls{display:flex;flex-wrap:wrap;align-items:center;gap:.6rem;margin-bottom:1rem;font-size:.8rem;color:var(--muted, #666)}.item-nutrients{display:block;font-size:14px;font-weight:400;margin:4px 0}.preview-card fieldset{margin:0;padding:8px;border:0}input[type=date]{-moz-appearance:none;appearance:none;-webkit-appearance:none;display:block;inline-size:100%;width:100%;max-width:100%;min-width:0;overflow:hidden}input[type=date]::-webkit-date-and-time-value{text-align:left;min-width:0}input[type=date]::-webkit-datetime-edit{min-width:0;padding:0}.day-heading .field{flex:0 1 180px;width:180px}.food-chat{gap:8px;margin-bottom:10px}.chat-turn{padding:8px;max-width:100%}.nutrient-rings{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:clamp(4px,1.5vw,16px);margin-bottom:18px}.nutrient-summary{min-width:0;text-align:center;display:flex;flex-direction:column;align-items:center;gap:3px}.nutrient-ring{position:relative;width:100%;max-width:112px;aspect-ratio:1}.nutrient-ring svg{display:block;width:100%;height:100%;fill:none;stroke-width:7}.ring-track{stroke:#e6ece8}.ring-fill{stroke:var(--progress-color, var(--forest))}.ring-value{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;flex-direction:column;align-items:center;justify-content:center;line-height:1.15;font-variant-numeric:tabular-nums}.ring-value strong{font-size:clamp(12px,3.5vw,23px);letter-spacing:-.5px}.ring-value span,.ring-target{font-size:clamp(9px,2.3vw,12px);color:var(--muted)}.ring-label{font-size:clamp(10px,2.6vw,14px)}#food-chat{min-width:0;margin-bottom:20px}.upload-previews{display:flex;flex-wrap:nowrap;gap:10px;margin:12px 0;max-width:100%;overflow-x:auto;overscroll-behavior-x:contain;scroll-snap-type:x proximity;padding:4px 0 10px}.upload-preview{position:relative;flex:0 0 112px;width:112px;height:112px;scroll-snap-align:start}.upload-document{display:flex;align-items:center;width:112px;height:112px;padding:30px 8px 8px;overflow-wrap:anywhere;overflow:hidden;border:1px solid currentColor;border-radius:8px;font-size:12px}.upload-remove{position:absolute;top:3px;right:3px;display:grid;place-items:center;width:30px;height:30px;padding:0;border:1px solid #777;border-radius:50%;background:#fff;color:#111;cursor:pointer}.upload-remove:disabled{opacity:.5;cursor:default}.upload-photo{width:112px;height:112px;object-fit:cover;border-radius:8px}.library-item{border-bottom:1px solid var(--border, #ddd);padding:12px 0}.library-item>summary{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;cursor:pointer}[hidden]{display:none!important}.logged-food{margin-bottom:8px}.logged-food>summary{display:flex;align-items:center;gap:12px;cursor:pointer;list-style:none}.logged-food>summary:before{content:"▸";flex:0 0 auto}.logged-food[open]>summary:before{content:"▾"}.logged-food>summary>span:first-of-type{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.logged-food-body{margin-top:16px}.logged-foods-section .entry-list{gap:4px}.logged-foods-section .logged-food{margin-bottom:4px;padding:8px;font-size:13px}.logged-food>summary{min-height:30px;padding:4px 0;gap:8px;font-size:13px;line-height:20px}.logged-food>summary .small{font-size:12px}.logged-food-body{margin-top:10px}.logged-food .entry-macros{gap:5px;margin-top:6px;padding-top:6px}.logged-food .macro label{font-size:12px}.logged-food .macro strong{font-size:13px}.nutrition-history-table{width:100%;min-width:0}.nutrition-history-table table{font-size:clamp(10px,2.8vw,14px);font-variant-numeric:tabular-nums}.nutrition-history-table th,.nutrition-history-table td{padding:6px 2px;text-align:right}.nutrition-history-table th{font-size:inherit}.nutrition-history-table th:first-child,.nutrition-history-table td:first-child{text-align:left;width:17%}.nutrition-history-table time{white-space:nowrap}.logged-foods-section,.logged-foods-section .entry-list,.logged-foods-section .entry-list>div{min-width:0;max-width:100%}.logged-foods-section .logged-food{width:100%;max-width:100%;min-width:0;padding:6px 4px}.logged-food>summary,.logged-food-columns{display:grid;grid-template-columns:8px minmax(0,2fr) repeat(5,minmax(0,1fr));gap:2px;align-items:center;font-size:clamp(9px,2.5vw,12px);line-height:1.4;font-variant-numeric:tabular-nums}.logged-food>summary{min-height:28px}.logged-food>summary:before{grid-column:1}.logged-food>summary>span{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.logged-food-value{text-align:right}.logged-food-columns{padding:6px 5px;color:var(--muted)}.logged-food-columns>span{min-width:0;text-align:right}.logged-food-columns>span:first-child{grid-column:2;text-align:left}.logged-food-body{min-width:0;overflow-wrap:anywhere}.logged-food .entry-macros{grid-template-columns:repeat(5,minmax(0,1fr))}.logged-food .entry-macros .field,.logged-food .entry-macros label{min-width:0}.logged-food .entry-macros input{min-width:0;padding:5px 2px;font-size:12px}
