.macro-bar{margin:7px 0 2px}.macro-bar-row{display:flex;justify-content:space-between;align-items:baseline;font-family:var(--mono);font-size:13px;margin-bottom:3px}.macro-bar-label--kcal{color:var(--kcal)}.macro-bar-label--protein{color:var(--protein)}.macro-bar-value{font-family:var(--mono);font-size:19px;font-weight:600}.macro-bar-track{height:12px;border-radius:3px;background:var(--track);overflow:hidden;display:flex;gap:2px;padding:2px}.macro-bar-track i{flex:1;border-radius:1px;background:#233038}.macro-bar-track i.macro-bar-seg--kcal{background:var(--kcal)}.macro-bar-track i.macro-bar-seg--protein{background:var(--protein)}.when-field{display:flex;gap:8px;flex-wrap:wrap}.when-field .field{flex:1 1 140px}.when-field input{flex:1;min-width:0;font-family:var(--mono);font-size:16px}.when-label{font-family:var(--mono);font-size:12.5px;letter-spacing:.08em;color:var(--txt-dim)}.day-nav{display:flex;align-items:center;justify-content:space-between;margin-top:2px}.day-nav-arrow{width:42px;height:42px;display:flex;align-items:center;justify-content:center;border:1px solid var(--line);border-radius:10px;background:var(--panel);color:var(--txt);font-size:18px;cursor:pointer}.day-nav-arrow:disabled{color:#3f4f59;cursor:default}.day-nav-centre{display:flex;flex-direction:column;align-items:center;gap:1px}.day-nav-date{font-family:var(--disp);font-size:16px;font-weight:700}.day-nav-tag{font-family:var(--mono);font-size:12.5px;letter-spacing:.14em;color:var(--txt-dim)}.day-nav-tag--link{background:none;border:0;cursor:pointer;letter-spacing:.06em}.entry{border-bottom:1px solid var(--line)}.entry:last-child{border-bottom:0}.entry-main{display:flex;gap:8px;width:100%;padding:7px 2px;background:none;border:0;color:inherit;font:inherit;text-align:left;cursor:pointer}.entry-time{font-family:var(--mono);font-size:13px;color:var(--txt-dim);min-width:38px;padding-top:2px}.entry-what{flex:1}.entry-macros{display:block;font-family:var(--mono);font-size:13px;color:var(--txt-dim)}.entry-actions{display:flex;gap:8px;padding:0 2px 8px 46px}.entry-action{border:1px solid var(--line);border-radius:8px;background:var(--panel);color:var(--txt);font-size:13.5px;padding:5px 12px;cursor:pointer}.entry-action:disabled{opacity:.5;cursor:default}.entry-action--danger{color:#e07a5f;border-color:#5a3a34}.entry-hint{font-size:13px}.diary-add{position:fixed;left:0;right:0;bottom:0;z-index:15;margin:0 auto;max-width:480px;padding:8px max(13px,env(safe-area-inset-right)) max(12px,calc(env(safe-area-inset-bottom) - 14px)) max(13px,env(safe-area-inset-left));background:linear-gradient(transparent,var(--bg) 32%)}.diary{display:flex;flex-direction:column;gap:10px;padding-bottom:var(--dock-height)}.diary-top{position:sticky;top:var(--header-height);z-index:10;background:var(--bg);padding-bottom:8px;display:flex;flex-direction:column;gap:10px}.diary-log{display:flex;flex-direction:column;gap:6px}.entry-actions{align-items:center;flex-wrap:wrap}.entry-qty{display:inline-flex;align-items:center;gap:5px;font-size:13.5px}.entry-qty input{width:92px;background:var(--track);border:1px solid var(--line);border-radius:8px;color:var(--txt);font-family:var(--mono);font-size:16px;padding:7px 8px;min-height:40px}.entry-open{display:flex;flex-direction:column;gap:8px;padding:2px 2px 10px}.sheet{position:fixed;inset:0;z-index:20;display:flex;flex-direction:column;background:var(--bg);max-width:480px;margin:0 auto;padding:max(12px,env(safe-area-inset-top)) max(13px,env(safe-area-inset-right)) max(10px,calc(env(safe-area-inset-bottom) - 14px)) max(13px,env(safe-area-inset-left))}.sheet-bar{display:flex;align-items:center;gap:8px;font-family:var(--mono);font-size:13px;letter-spacing:.12em;color:var(--txt-dim);border-bottom:1px solid var(--line);padding-bottom:8px}.sheet-title{flex:1;text-transform:uppercase}.sheet-back,.sheet-close{width:40px;height:40px;display:flex;align-items:center;justify-content:center;line-height:1;border:0;background:none;color:var(--txt-dim);font-size:17px;cursor:pointer}.sheet-body{flex:1;overflow-y:auto;overflow-x:hidden;padding:8px 2px 12px;display:flex;flex-direction:column;gap:8px}.sheet-body>*{flex-shrink:0}.sheet-footer{position:fixed;left:0;right:0;bottom:0;z-index:15;margin:0 auto;max-width:480px;padding:10px max(13px,env(safe-area-inset-right)) max(12px,calc(env(safe-area-inset-bottom) - 14px)) max(13px,env(safe-area-inset-left));background:linear-gradient(transparent,var(--bg) 34%)}.sheet-body--docked{padding-bottom:var(--dock-height)}.field{display:flex;align-items:center;gap:8px;font-size:14px}.field input,.field select,.text-input{background:var(--track);border:1px solid var(--line);border-radius:8px;color:var(--txt);font-family:var(--mono);font-size:16px;padding:10px;min-height:44px;width:100%}.field input[type=number]{max-width:120px}.describe-box{resize:vertical;font-family:var(--body);font-size:16px;line-height:1.45}.chip{display:inline-block;border:1px solid var(--line);border-radius:999px;background:var(--panel);color:var(--txt);font-size:13.5px;padding:9px 13px;margin:0 6px 6px 0;cursor:pointer;min-height:40px}.chip[aria-pressed=true]{background:var(--chip);border-color:#3d6076;color:#cfe6f2}.chip-row{display:flex;flex-wrap:wrap;align-items:center}.live{font-family:var(--mono);font-size:14px;color:var(--txt)}.warn{color:var(--warn)}.error-note{color:#e07a5f;font-size:13.5px}.btn.small{padding:10px;font-size:14px}.btn-row{display:flex;gap:8px}.add-hint{font-size:13px}.add-batch{margin-top:8px}.result,.recent{display:flex;gap:10px;width:100%;padding:9px 2px;background:none;border:0;border-bottom:1px solid var(--line);color:inherit;font:inherit;font-size:14px;text-align:left;cursor:pointer}.result:last-child,.recent:last-child{border-bottom:0}.result{flex-direction:column;gap:3px}.recent{justify-content:space-between;align-items:baseline}.result--split{cursor:default;flex-direction:row;flex-wrap:wrap;justify-content:space-between;align-items:center}.result-macros,.recent-qty{font-family:var(--mono);font-size:13px;color:var(--txt-dim);white-space:nowrap}.result-macros{display:block;white-space:normal}.recent-name{flex:1}.rule{border:0;border-top:1px solid var(--line);margin:6px 0}.portion-head{font-size:13.5px}.portion-source{display:block;margin-top:4px}.kcal-text{color:var(--kcal)}.protein-text{color:var(--protein)}.photo-drop{display:block;text-align:center;border:1px dashed var(--line);border-radius:12px;padding:22px 12px;color:var(--txt-dim);cursor:pointer}.photo-preview{max-width:100%;border-radius:10px;border:1px solid var(--line)}.items-total-note{font-size:13px;margin-top:4px}.barcode-row{display:flex;gap:8px;align-items:center}.scanner{position:relative;width:100%;aspect-ratio:4 / 3;background:var(--track);border:1px solid var(--line);border-radius:12px;overflow:hidden}.scanner-video{width:100%;height:100%;object-fit:cover}.scanner-reticle{position:absolute;inset:28% 12%;border:2px solid var(--protein);border-radius:8px;opacity:.75}.photo-busy{display:flex;align-items:center;gap:8px;font-size:13.5px;color:var(--txt-dim)}.spinner{width:14px;height:14px;border:2px solid var(--line);border-top-color:var(--protein);border-radius:50%;animation:spin .8s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}@media(prefers-reduced-motion:reduce){.spinner{animation:pulse 1.6s ease-in-out infinite}@keyframes pulse{50%{opacity:.3}}}.clarify{border:1px solid var(--line);border-radius:12px;padding:8px 11px 11px;background:var(--panel)}.clarify-q{margin-bottom:8px}.clarify-text{font-size:13.5px;margin-bottom:5px}.clarify-other{flex:1 1 160px;min-width:140px}.clarify-other--answered{border-color:#3d6076;background:var(--chip);color:#cfe6f2}.clarify-note{font-size:13px;margin-top:6px}.attachments{display:flex;flex-wrap:wrap;gap:8px}.attachment{position:relative;width:76px;height:76px;border:1px solid var(--line);border-radius:10px;overflow:hidden;background:var(--track)}.attachment img{width:100%;height:100%;object-fit:cover}.attachment-remove{position:absolute;top:2px;right:2px;width:24px;height:24px;display:flex;align-items:center;justify-content:center;border:0;border-radius:50%;background:#080c0ec7;color:var(--txt);font-size:13.5px;cursor:pointer}.attachment-add{border-style:dashed;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:3px;color:var(--txt-dim);font-size:12.5px;text-align:center;cursor:pointer}.attachment-add-label{padding:0 4px}.ing{border-bottom:1px solid var(--line)}.ing:last-of-type{border-bottom:0}.ing-row{display:flex;justify-content:space-between;gap:8px;width:100%;padding:8px 2px;background:none;border:0;color:inherit;font:inherit;text-align:left;cursor:pointer}.ing-name{font-size:14px}.ing-note{display:block;font-size:13px;color:var(--txt-dim)}.ing-macros{font-family:var(--mono);font-size:13px;color:var(--txt-dim);white-space:nowrap}.ing-edit{display:flex;flex-direction:column;gap:7px;padding:4px 2px 10px}.ing-warn{font-size:13px}.ing-label{font-family:var(--mono);font-size:12.5px;letter-spacing:.08em;color:var(--txt-dim);min-width:56px}.ing-macro-grid{display:grid;grid-template-columns:1fr 1fr;gap:6px}.ing-add{margin-top:8px}.batch-head{font-size:13.5px}.batch-nudge{margin-top:4px;font-size:13px}.tare-hint{font-size:13px;margin-top:2px}.fraction-free input{width:68px}.finishes{color:var(--txt);font-size:14px;gap:10px;padding:6px 2px}.finishes input{width:20px;height:20px}.food-title{font-family:var(--disp);font-size:18px;font-weight:700}.food-macros{font-size:13.5px}.food-source{margin-top:4px;font-size:13px}.food-edit{margin-left:8px}.food-edit-form{display:flex;flex-direction:column;gap:7px}.food-label{font-family:var(--mono);font-size:12.5px;letter-spacing:.08em;color:var(--txt-dim);min-width:62px}.food-note{font-size:13px}.pack-head{font-size:14px;margin-bottom:5px}.price-now{color:var(--protein);font-family:var(--mono)}.price-since{font-size:13px}.price-history{font-family:var(--mono);font-size:13px;color:var(--txt-dim);margin:4px 0 8px;line-height:1.6}.price-note{font-size:12.5px;margin-top:3px}.price-form{display:flex;flex-direction:column;gap:7px;margin-top:8px}.recipe-line{display:flex;justify-content:space-between;gap:10px;align-items:baseline;padding:8px 2px;border-bottom:1px solid var(--line);font-size:14px}.recipe-line:last-child{border-bottom:0}.recipe-name{font:inherit;text-align:left}.setting-rows{display:flex;flex-direction:column;gap:8px}.setting-label{font-size:13.5px;flex:0 0 116px}.setting-rows .field select{flex:1;min-width:0}.setting-rows .field-stacked{flex-direction:column;align-items:stretch;gap:4px}.field-stacked>*{align-self:stretch;flex:0 0 auto}.setting-rows .field .text-input{flex:1 1 auto;min-width:96px}.setting-rows .field{align-items:center}.setting-rows .field input[type=number]{max-width:96px}.import-label{display:block;text-align:center;cursor:pointer}.setting-toggle{gap:10px;cursor:pointer}.setting-toggle input[type=checkbox]{flex:0 0 auto;width:20px;height:20px;margin:0;accent-color:var(--protein)}.layout-debug{position:fixed;top:env(safe-area-inset-top);left:0;right:0;z-index:100;margin:0 auto;max-width:480px;padding:8px 10px;background:#080c0eeb;border-bottom:1px solid var(--protein);color:var(--txt);font-family:var(--mono);font-size:11px;line-height:1.5;pointer-events:none}.layout-debug-hide{position:absolute;bottom:6px;right:8px;pointer-events:auto;border:1px solid var(--line);border-radius:8px;background:var(--panel);color:var(--txt-dim);font:inherit;padding:4px 10px;min-height:32px}.layout-debug-key{display:inline-block;min-width:122px;color:var(--txt-dim)}:root{--bg: #171d21;--panel: #20282e;--line: #2d383f;--txt: #e8edef;--txt-dim: #8fa0aa;--kcal: #e8a13c;--protein: #5bc489;--warn: #e2b93b;--chip: #2a3d4a;--track: #10161a;--header-height: 42px;--dock-height: 74px;--mono: ui-monospace, "Cascadia Code", "SF Mono", Menlo, Consolas, monospace;--disp: "Futura", "Century Gothic", "Trebuchet MS", Avenir, system-ui, sans-serif;--body: system-ui, "Segoe UI", Roboto, Helvetica, Arial, sans-serif}*{box-sizing:border-box;margin:0;padding:0}html{height:100%;overflow-x:hidden;overscroll-behavior-x:none}body,#root{min-height:100%;max-width:100%}body{background:var(--bg);color:var(--txt);font-family:var(--body);font-size:14px;-webkit-font-smoothing:antialiased}.shell{margin:0 auto;max-width:480px;min-height:100%;padding:max(14px,env(safe-area-inset-top)) max(13px,env(safe-area-inset-right)) max(12px,calc(env(safe-area-inset-bottom) - 14px)) max(13px,env(safe-area-inset-left));display:flex;flex-direction:column;gap:10px}.shell-header{position:sticky;top:0;z-index:12;height:var(--header-height);display:flex;align-items:center;justify-content:space-between;padding:2px 4px 4px;background:var(--bg)}.tabs{display:flex;gap:18px;font-family:var(--disp);font-size:17px;letter-spacing:.02em;font-weight:700}.tab{background:none;border:0;font:inherit;color:var(--txt);cursor:pointer;padding:0}.tab[aria-selected=false]{color:#4a5a64}.header-tools{display:flex;align-items:center;gap:8px}.icon-btn{width:34px;height:34px;display:flex;align-items:center;justify-content:center;border:1px solid var(--line);border-radius:10px;background:var(--panel);color:var(--txt-dim);font-size:16px;cursor:pointer}.icon-btn[hidden]{display:none}.icon-btn:disabled{opacity:.5;cursor:default}input,select,textarea{font-size:16px;max-width:100%}.panel{background:var(--panel);border:1px solid var(--line);border-radius:12px;padding:10px 11px}.sec{font-family:var(--mono);font-size:12.5px;letter-spacing:.12em;color:var(--txt-dim);margin:6px 0 2px}.dim{color:var(--txt-dim)}.mono{font-family:var(--mono)}.link-btn{background:none;border:0;padding:0;font:inherit;color:var(--protein);text-decoration:underline;cursor:pointer}.btn{display:block;width:100%;text-align:center;border-radius:10px;padding:12px;font-family:var(--disp);font-size:15px;letter-spacing:.03em;border:1px solid var(--line);color:var(--txt);background:var(--panel);cursor:pointer}.btn.primary{background:var(--protein);border-color:var(--protein);color:#0d1a13;font-weight:700}.btn:disabled{opacity:.5;cursor:default}@media(display-mode:standalone){.shell{min-height:calc(100vh + 1px)}}
