:root{color:#071b49;font-synthesis:none;--background:#f9f8f5;--surface:#fff;--text:#071b49;--muted:#46516a;--border:#d8d9dc;--primary:#0759d9;--primary-dark:#0648ae;--amber:#a75a00;--progress:#f5ad06;--danger:#b42318;--radius:14px;--shadow:0 2px 8px #071b4914;background:#f9f8f5;font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif}*{box-sizing:border-box}body{background:var(--background);min-width:320px;min-height:100vh;margin:0;font-size:18px;line-height:1.45}button,input,select,textarea{font:inherit}button,select,input{min-height:48px}textarea{min-height:88px}button:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible,summary:focus-visible{outline-offset:2px;outline:4px solid #8bb8ff}button:disabled{cursor:not-allowed;opacity:.55}.app-shell{min-height:100vh}.app{width:min(100%,480px);min-height:100vh;margin:0 auto;padding:30px 18px 116px}h1,h2,p{margin-top:0}h1{letter-spacing:-.025em;margin-bottom:10px;font-size:34px;line-height:1.15}.primary-button{border-radius:var(--radius);color:#fff;background:var(--primary);width:100%;min-height:64px;box-shadow:var(--shadow);border:0;font-size:24px;font-weight:750}.primary-button:active{background:var(--primary-dark)}.setup-screen{place-items:center;padding-bottom:30px;display:grid}.setup-content{width:100%}.setup-content h1{margin-bottom:18px;font-size:42px}.setup-guidance{max-width:390px;color:var(--muted);margin-bottom:30px;font-size:21px}.setup-form{gap:18px;display:grid}.setup-form>label:first-child{font-weight:700}.number-input-wrap{position:relative}.number-input-wrap input{border:2px solid var(--border);width:100%;min-height:60px;color:var(--text);background:var(--surface);border-radius:12px;padding:10px 62px 10px 14px;font-size:22px}.number-input-wrap span{color:var(--muted);position:absolute;top:50%;right:16px;transform:translateY(-50%)}.targets-form{text-align:left}.targets-fieldset{border:1px solid var(--border);border-radius:var(--radius);background:var(--surface);margin:0;padding:14px}.targets-fieldset legend{padding:0 6px;font-size:19px;font-weight:700}.targets-optional{color:var(--muted);font-weight:400}.targets-range-row{grid-template-columns:1fr 1fr;gap:12px;display:grid}.targets-field{gap:6px;display:grid}.targets-field>span{color:var(--muted);font-size:18px}.targets-field .number-input-wrap input{min-height:56px;padding-right:48px;font-size:20px}.targets-field-error{margin-top:10px}@media (width<=374px){.targets-range-row{grid-template-columns:1fr}}.confirmation-row{grid-template-columns:48px 1fr;align-items:center;gap:10px;display:grid}.confirmation-row input{width:28px;min-height:48px;accent-color:var(--primary);margin:0 10px}.error-message{border-left:5px solid var(--danger);color:var(--danger);background:#fff2f0;padding:12px 14px;font-weight:650}.history-summary{color:var(--muted);margin:-6px 0 16px;font-size:19px}.older-days{margin-top:22px}.older-days h2{margin-bottom:10px}.show-older-button{border:2px solid var(--border);border-radius:var(--radius);background:var(--surface);width:100%;min-height:56px;color:var(--primary);margin-top:12px;font-size:19px;font-weight:700}.share-link-box{border:1px solid var(--border);border-radius:var(--radius);background:var(--surface);word-break:break-all;-webkit-user-select:all;user-select:all;margin-bottom:12px;padding:12px 14px;font-size:17px}.share-status{color:var(--muted);margin-bottom:14px;font-size:18px;font-weight:650}.backup-status{margin-top:14px;font-size:19px;font-weight:650}.backup-status--stale{color:var(--amber)}.today-summary{text-align:center}.today-summary h1{margin-bottom:0}.sodium-total{justify-content:center;align-items:baseline;gap:8px;margin-bottom:-8px;line-height:1;display:flex}.sodium-total strong{letter-spacing:.01em;font-size:clamp(76px,23vw,104px);font-weight:760}.sodium-total span{font-size:48px;font-weight:720}.sodium-target{margin-bottom:10px;font-size:30px;font-weight:700}.progress-track{background:#dededb;border-radius:999px;height:28px;position:relative;overflow:hidden}.progress-fill{border-radius:inherit;background:var(--progress);height:100%;display:block}.progress-fill--over{background:var(--danger)}.progress-status{margin:8px 0 16px;font-size:28px;font-weight:720}.progress-status--over{color:var(--danger)}.add-food-button{margin-bottom:20px}.undo-feedback{border:1px solid var(--border);border-radius:var(--radius);background:var(--surface);min-height:60px;box-shadow:var(--shadow);justify-content:space-between;align-items:center;gap:16px;margin:-4px 0 16px;padding:6px 8px 6px 14px;display:flex}.undo-feedback p{margin:0;font-weight:650}.undo-feedback button{min-width:76px;color:var(--primary);background:0 0;border:0;border-radius:10px;padding:0 12px;font-weight:750}.food-section{border-top:1px solid var(--border);text-align:left;padding:12px 0 0}.food-section+.food-section{border-top:0;margin-top:14px}.food-section h2{margin-bottom:4px;font-size:27px;line-height:1.25}.food-list{border:1px solid var(--border);border-radius:var(--radius);background:var(--surface);box-shadow:var(--shadow);margin:0;padding:0;list-style:none;overflow:hidden}.favorite-row{width:100%;min-height:58px;color:var(--text);text-align:left;background:0 0;border:0;grid-template-columns:minmax(0,1fr) 28px;align-items:center;padding:8px 10px 8px 14px;font-weight:560;display:grid}.favorite-row span{min-width:0}.chevron{stroke:currentColor;stroke-linecap:round;stroke-linejoin:round;stroke-width:1.8px;width:24px;height:24px}.entry-row{grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:8px;min-height:62px;padding:6px 8px 6px 14px;display:grid}.entry-row+.entry-row{border-top:1px solid var(--border)}.entry-description{min-width:0;font-weight:560}.remove-button{min-width:78px;color:var(--danger);background:0 0;border:0;border-radius:10px;padding:0 10px;font-size:18px;font-weight:700}.empty-message{color:var(--muted);margin:0;padding:12px 2px}.bottom-nav{z-index:5;width:min(100%,480px);min-height:96px;padding:6px 12px max(6px, env(safe-area-inset-bottom));border-top:1px solid var(--border);background:#fffffff5;grid-template-columns:repeat(3,1fr);margin:0 auto;display:grid;position:fixed;bottom:0;left:0;right:0;box-shadow:0 -2px 10px #071b490d}.bottom-nav__item{color:#111827;background:0 0;border:0;flex-direction:column;justify-content:center;align-items:center;gap:1px;min-height:72px;font-size:18px;display:flex}.bottom-nav__item--active{color:var(--primary);font-weight:700}.nav-icon{fill:none;stroke:currentColor;stroke-linecap:round;stroke-linejoin:round;stroke-width:1.8px;width:31px;height:31px}.nav-icon--home{fill:currentColor}.nav-dot{fill:currentColor;stroke:none}.simple-screen h1,.add-food-screen h1,.history-screen h1,.more-screen h1{text-align:center;font-size:36px}.history-screen h1,.more-screen h1{margin-bottom:18px;font-size:38px}.history-list,.history-entry-list{margin:0;padding:0;list-style:none}.history-list{gap:12px;display:grid}.history-row{border:1px solid var(--border);border-radius:var(--radius);width:100%;min-height:80px;color:var(--text);background:var(--surface);box-shadow:var(--shadow);text-align:left;grid-template-columns:minmax(90px,1fr) 170px 28px;align-items:center;column-gap:6px;padding:9px 9px 9px 16px;display:grid}.history-row--selected{border-color:var(--primary);box-shadow:0 0 0 1px var(--primary)}.history-row__date{font-size:25px;font-weight:740}.history-row__numbers{text-align:right;justify-items:end;line-height:1.25;display:grid}.history-row__numbers strong{white-space:nowrap;font-size:23px}.history-row__numbers small{color:var(--muted);white-space:nowrap;font-size:18px;font-weight:650}.history-details{border-top:1px solid var(--border);margin-top:22px;padding-top:18px}.history-details h2{margin-bottom:8px;font-size:27px}.history-entry-list{border:1px solid var(--border);border-radius:var(--radius);background:var(--surface);box-shadow:var(--shadow);overflow:hidden}.history-entry-list li{align-content:center;gap:2px;min-height:66px;padding:8px 14px;font-weight:560;display:grid}.history-entry-list li+li{border-top:1px solid var(--border)}.history-entry-list small{color:var(--muted);font-size:18px}.more-actions{border:1px solid var(--border);border-radius:var(--radius);background:var(--surface);box-shadow:var(--shadow);overflow:hidden}.more-actions button{width:100%;min-height:62px;color:var(--text);text-align:left;background:0 0;border:0;align-items:center;padding:8px 16px;font-size:20px;font-weight:680;display:flex}.more-actions button+button{border-top:1px solid var(--border)}.storage-warning{border-left:5px solid var(--amber);color:var(--muted);background:#fff8e8;margin:22px 2px 0;padding:14px}.storage-warning strong{color:var(--text);display:block}.success-message{color:#125c3a;background:#effaf4;border-left:5px solid #16794a;padding:12px 14px;font-weight:700}.more-panel-screen h1{font-size:34px}.more-guidance{color:var(--muted);margin-bottom:18px}.more-form{gap:15px;display:grid}.more-form>label,.nutrient-details label,.file-field{gap:5px;font-size:19px;font-weight:720;display:grid}.more-form input,.more-form textarea,.file-field input{border:2px solid var(--border);width:100%;color:var(--text);background:var(--surface);border-radius:11px;padding:9px 12px}.nutrient-details{border:1px solid var(--border);background:var(--surface);border-radius:11px}.nutrient-details summary{cursor:pointer;min-height:52px;color:var(--primary);padding:12px 14px;font-weight:720}.nutrient-details>div{gap:14px;padding:2px 14px 14px;display:grid}.review-box{border-radius:var(--radius);background:#f2f7ff;border:2px solid #9dbced;padding:15px}.review-box h2{margin-bottom:6px;font-size:25px}.review-box p{margin-bottom:14px}.compact-primary{min-height:58px;font-size:21px}.danger-button{border-radius:var(--radius);color:#fff;background:var(--danger);border:0;width:100%;min-height:58px;padding:8px 12px;font-size:21px;font-weight:750}.file-field input{min-height:58px;margin-top:3px;font-weight:500}.more-back-button{width:100%;margin-top:8px;font-size:20px}.add-food-screen{padding-top:26px;padding-bottom:30px}.add-food-screen h1{margin-bottom:12px;font-size:38px}.add-food-form{flex-direction:column;display:flex}.field-label,.serving-fieldset legend,.custom-serving-field label{color:var(--text);font-size:22px;font-weight:750;line-height:1.25}.meal-select{width:100%;min-height:60px;color:var(--text);background:var(--surface);border:2px solid #263040;border-radius:12px;padding:8px 14px;font-size:20px;font-weight:650}.food-label{margin-top:12px}.food-combobox{position:relative}.food-combobox>input{border:3px solid var(--primary);color:#111827;background:var(--surface);border-radius:12px 12px 0 0;width:100%;min-height:58px;padding:8px 58px 8px 50px;font-size:20px}.food-combobox>input[aria-expanded=false]{border-radius:12px}.search-icon{z-index:2;stroke:#111827;stroke-linecap:round;stroke-width:1.8px;width:27px;height:27px;position:absolute;top:16px;left:14px}.clear-search-button{z-index:2;color:#111827;background:0 0;border:0;width:48px;min-height:48px;padding:10px;position:absolute;top:5px;right:4px}.clear-search-button svg{stroke:currentColor;stroke-linecap:round;stroke-width:1.8px;width:27px;height:27px}.food-results{z-index:1;background:var(--surface);border:1px solid #c4c6ca;border-radius:0 0 12px 12px;margin:-1px 0 12px;padding:0 14px;list-style:none;position:relative;overflow:hidden;box-shadow:0 5px 10px #071b491f}.food-result{cursor:pointer;touch-action:manipulation;color:#111827;cursor:pointer;align-content:center;gap:1px;min-height:72px;padding:10px 4px;font-size:19px;font-weight:650;line-height:1.35;display:grid}.food-result__name{display:block}.food-result__details{white-space:nowrap;display:block}.food-result+.food-result{border-top:1px solid var(--border)}.food-result--active{background:#f4f6fa}.food-result--selected{background:#eef5ff}.serving-fieldset{border:0;min-width:0;margin:0;padding:0}.serving-fieldset legend{margin-bottom:6px}.serving-options{grid-template-columns:repeat(4,minmax(0,1fr)) minmax(78px,1.35fr);gap:8px;display:grid}.serving-button{min-width:0;min-height:54px;color:var(--text);background:var(--surface);border:2px solid #263040;border-radius:12px;padding:4px 6px;font-size:21px;font-weight:700}.serving-button--selected{border-color:var(--primary);color:#fff;background:var(--primary)}.serving-button:last-child{font-size:19px}.custom-serving-field{grid-template-columns:minmax(0,1fr) 112px;align-items:center;gap:8px 12px;margin-top:12px;display:grid}.custom-serving-field input{border:2px solid var(--border);width:100%;min-height:54px;color:var(--text);background:var(--surface);border-radius:10px;padding:7px 10px;font-size:20px}.form-error{color:var(--danger);grid-column:1/-1;margin:0;font-weight:650}.add-food-actions{margin-top:10px}.sodium-preview{text-align:center;min-height:31px;margin:0 0 10px;font-size:21px;font-weight:700}.sodium-preview--empty{visibility:hidden}.favorite-toggle-button{min-height:48px;color:var(--primary);background:0 0;border:0;margin:-2px auto 8px;padding:8px 14px;font-size:18px;font-weight:700;display:block}.cancel-add-food{width:100%;margin-top:4px;display:block}.text-button{min-height:52px;color:var(--primary);background:0 0;border:0;font-size:24px;font-weight:700}@media (width<=380px){.app{padding-inline:14px}.sodium-total strong{font-size:76px}.sodium-total span{font-size:40px}.sodium-target,.progress-status{font-size:25px}.serving-options{grid-template-columns:repeat(4,minmax(0,1fr))}.serving-button:last-child{grid-column:1/-1}.history-row{grid-template-columns:minmax(80px,1fr) 168px 24px;column-gap:4px;padding-left:12px}.history-row__date,.history-row__numbers strong{font-size:20px}.history-row__numbers small{letter-spacing:-.025em;font-size:18px}}@media (prefers-reduced-motion:no-preference){.progress-fill{transition:width .18s ease-out}}.nutrient-section h2{margin-bottom:10px}.nutrient-list{gap:14px;margin:0;padding:0;list-style:none;display:grid}.nutrient-row{border:1px solid var(--border);border-radius:var(--radius);background:var(--surface);box-shadow:var(--shadow);padding:12px 14px}.nutrient-row-header{justify-content:space-between;align-items:baseline;gap:10px;margin-bottom:6px;display:flex}.nutrient-row-label{font-weight:700}.nutrient-row-amount{font-variant-numeric:tabular-nums;font-size:20px;font-weight:700}.nutrient-row-note{color:var(--amber);margin-top:6px;font-size:18px;font-weight:650}.progress-summary--compact .progress-track{height:12px}.progress-summary--compact .progress-status{text-align:left;margin-top:6px;font-size:18px}.progress-status--none{color:var(--muted)}.progress-band{border-radius:inherit;background:#0759d924;position:absolute;top:0;bottom:0}.week-strip{grid-template-columns:repeat(7,1fr);gap:6px;margin-bottom:18px;display:grid}.week-day{border:2px solid var(--border);background:var(--surface);min-height:64px;color:var(--text);border-radius:12px;justify-items:center;gap:2px;padding:6px 2px;font-size:18px;display:grid}.week-day-name{color:var(--muted);text-transform:uppercase;font-size:15px;font-weight:700}.week-day-number{font-variant-numeric:tabular-nums;font-weight:700}.week-day-glyph{min-height:22px;font-size:19px;font-weight:700;line-height:22px}.week-day--today{border-color:var(--primary)}.week-day--today .week-day-glyph{color:var(--primary)}.week-day--in-range{border-color:var(--primary);background:#0759d914}.week-day--in-range .week-day-glyph{color:var(--primary)}.week-day--out-of-range{border-color:var(--amber)}.week-day--out-of-range .week-day-glyph{color:var(--amber)}.week-day--incomplete{border-color:var(--muted)}.week-day--incomplete .week-day-glyph{color:var(--muted)}.week-day--empty{border-style:dashed}.same-as-yesterday-summary{margin-bottom:12px;font-size:20px;font-weight:650}.quick-add-plus{color:var(--primary);font-size:28px;font-weight:700;line-height:1}.weekly-report-screen{padding:24px 16px 40px;overflow-y:auto}.weekly-report-header{margin-bottom:20px}.weekly-report-section{border:1px solid var(--border);border-radius:var(--radius);background:var(--surface);box-shadow:var(--shadow);margin-bottom:28px;padding:14px}.weekly-report-section h2{margin:0 0 10px}.weekly-chart{width:100%;height:auto;margin-bottom:12px;display:block}.weekly-chart-band{fill:#0759d924}.weekly-chart-bar{fill:var(--progress)}.weekly-chart-bar--over{fill:var(--danger)}.weekly-table{border-collapse:collapse;width:100%;font-size:18px}.weekly-table th,.weekly-table td{border-bottom:1px solid var(--border);text-align:left;padding:8px 6px}.weekly-table th[scope=row]{white-space:nowrap;font-weight:650}.scan-screen{padding:24px 16px 40px;overflow-y:auto}.scan-preview{margin:14px 0 18px}.scan-video{border-radius:var(--radius);object-fit:cover;background:#111;width:100%;max-height:260px;display:block}.scan-camera-status,.scan-message{color:var(--muted);margin-top:10px;font-size:19px;font-weight:650}.impact-preview{border:1px solid var(--border);border-radius:var(--radius);background:var(--surface);margin-bottom:16px;padding:12px 14px}.impact-preview-title{margin-bottom:8px;font-size:18px;font-weight:700}.impact-preview-list{gap:8px;margin:0;padding:0;list-style:none;display:grid}.impact-row{justify-content:space-between;gap:12px;font-size:18px;display:flex}.impact-label{color:var(--muted);font-weight:700}.impact-value{text-align:right;font-variant-numeric:tabular-nums}.impact-row--over .impact-value{color:var(--danger);font-weight:700}.impact-value--muted{color:var(--muted)}.scan-privacy{color:var(--muted);margin:4px 0 16px;font-size:18px}.scan-manual-form{margin-bottom:16px}.food-label-row{justify-content:space-between;align-items:baseline;gap:12px;display:flex}.scan-entry-button{min-height:48px;color:var(--primary);font-size:19px;font-weight:700}.welcome-screen{align-items:center;display:grid}.welcome-content{padding-bottom:24px}.welcome-eyebrow{color:var(--primary);letter-spacing:.08em;text-transform:uppercase;margin-bottom:10px;font-size:17px;font-weight:800}.welcome-greeting{text-wrap:balance;margin:0 0 14px;font-size:36px;font-weight:800;line-height:1.15}.welcome-lede{max-width:400px;color:var(--muted);margin-bottom:24px;font-size:21px;line-height:1.45}.welcome-targets{grid-template-columns:1fr 1fr;gap:10px;margin:0 0 22px;padding:0;list-style:none;display:grid}.welcome-target-card{border:1px solid var(--border);border-radius:var(--radius);background:var(--surface);box-shadow:var(--shadow);text-align:left;gap:4px;padding:14px;display:grid}.welcome-target-label{color:var(--muted);letter-spacing:.02em;font-size:17px;font-weight:700}.welcome-target-range{font-variant-numeric:tabular-nums;font-size:20px;font-weight:800}.welcome-privacy{color:var(--muted);margin-bottom:26px;font-size:19px;font-weight:650}.welcome-start-button{width:100%}@media (width<=374px){.welcome-greeting{font-size:31px}.welcome-targets{grid-template-columns:1fr}}
