:root{--bg:#f6f6f8;--bg-tint:#faf7f8;--glass:#ffffff9e;--glass-strong:#ffffffc7;--glass-input:#f4f4f7d9;--ink:#1c1c1e;--text:#2c2c2e;--muted:#6b6b72;--tertiary:#9a9aa1;--faint:#b6b6bd;--border:#14141e14;--border-strong:#14141e24;--accent:#d96d8a;--accent-ink:#b84e6c;--accent-soft:#d96d8a1f;--accent-line:#d96d8a59;--ok:#34b27b;--partial:#dca33f;--over:#e26a62;--shadow-sm:0 0 0 1px #14141e0a, 0 1px 2px -1px #14141e14, 0 2px 6px -2px #14141e0f;--shadow-md:0 0 0 1px #14141e0d, 0 2px 6px -2px #14141e1a, 0 12px 28px -8px #28141e1f;--shadow-pop:0 0 0 1px #14141e0f, 0 8px 24px -6px #2814232e, 0 24px 56px -12px #28142338;--radius-xs:8px;--radius-sm:11px;--radius:18px;--radius-lg:24px;--ease:cubic-bezier(.23, 1, .32, 1);--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;font-family:-apple-system,BlinkMacSystemFont,SF Pro Text,SF Pro Display,system-ui,Segoe UI,sans-serif}*{box-sizing:border-box}html,body,#root{height:100%}body{color:var(--text);background:var(--bg);-webkit-font-smoothing:antialiased;text-rendering:optimizelegibility;margin:0;font-size:15px;line-height:1.5}body:before{content:"";z-index:-1;background:radial-gradient(620px 460px at 82% -8%, #d96d8a29, transparent 60%), radial-gradient(560px 520px at 6% 8%, #96a0be24, transparent 58%), radial-gradient(700px 600px at 60% 108%, #d98ca01a, transparent 60%), linear-gradient(180deg, var(--bg-tint), var(--bg));position:fixed;inset:0}button{cursor:pointer;font-family:inherit}input,select{font-family:inherit}::selection{background:var(--accent-soft)}.mono{font-variant-numeric:tabular-nums;font-feature-settings:"tnum"}.app{max-width:1180px;margin:0 auto;padding:0 22px 90px}.topbar{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:16px;padding:26px 0 18px;display:flex}.brand{align-items:baseline;gap:11px;display:flex}.brand h1{letter-spacing:.16em;text-transform:uppercase;color:var(--ink);margin:0;font-size:19px;font-weight:700}.brand .dot{color:var(--accent)}.brand small{color:var(--tertiary);letter-spacing:.02em;font-size:12px}.tabs{background:var(--glass);border:1px solid var(--border);box-shadow:var(--shadow-sm);-webkit-backdrop-filter:blur(20px)saturate(180%);border-radius:13px;gap:3px;padding:4px;display:flex}.tabs button{color:var(--muted);background:0 0;border:0;border-radius:9px;align-items:center;gap:7px;padding:7px 14px;font-size:13.5px;font-weight:500;transition:color .15s,background .15s;display:inline-flex}.tabs button svg{flex:none}.tabs button:hover{color:var(--ink)}.tabs button.active{background:var(--glass-strong);color:var(--ink);box-shadow:var(--shadow-sm)}.daybar{flex-wrap:wrap;gap:8px;margin:8px 0 20px;display:flex}.daybar button{background:var(--glass);border:1px solid var(--border);color:var(--muted);transition:.18s var(--ease);-webkit-backdrop-filter:blur(14px)saturate(160%);border-radius:999px;align-items:center;gap:7px;padding:9px 16px;font-size:13px;font-weight:500;display:inline-flex}.daybar button:hover{color:var(--ink);border-color:var(--border-strong);transform:translateY(-1px)}.daybar button:active{transform:scale(.98)}.daybar button.active{background:var(--accent);border-color:var(--accent);color:#fff;font-weight:600;box-shadow:0 6px 16px -6px #d96d8a8c}.row-between{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;display:flex}.view-toggle{background:var(--glass);border:1px solid var(--border);box-shadow:var(--shadow-sm);-webkit-backdrop-filter:blur(16px)saturate(170%);border-radius:11px;gap:2px;padding:3px;display:flex}.view-toggle button{color:var(--muted);background:0 0;border:0;border-radius:8px;padding:6px 14px;font-size:12.5px;font-weight:500;transition:all .15s}.view-toggle button.active{background:var(--glass-strong);color:var(--ink);box-shadow:var(--shadow-sm)}.btn-ghost{background:var(--glass);border:1px solid var(--border);color:var(--muted);transition:.15s var(--ease);-webkit-backdrop-filter:blur(14px);border-radius:10px;padding:7px 14px;font-size:12.5px;font-weight:500}.btn-ghost:hover{color:var(--ink);border-color:var(--border-strong)}.btn-ghost:active{transform:scale(.97)}.daytotals{grid-template-columns:repeat(4,1fr);gap:12px;margin:18px 0 24px;display:grid}.tot{background:var(--glass);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow-sm);-webkit-backdrop-filter:blur(22px)saturate(180%);padding:15px 17px}.tot .k{letter-spacing:.09em;text-transform:uppercase;color:var(--tertiary);font-size:10.5px;font-weight:600}.tot .v{color:var(--ink);letter-spacing:-.02em;margin-top:4px;font-size:25px;font-weight:650}.tot .v small{color:var(--faint);letter-spacing:0;font-size:13px;font-weight:500}.meals{grid-template-columns:repeat(auto-fill,minmax(340px,1fr));gap:16px;display:grid}.card{background:var(--glass);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow-sm);transition:box-shadow .2s var(--ease), transform .2s var(--ease);-webkit-backdrop-filter:blur(24px)saturate(180%);padding:18px}.card:hover{box-shadow:var(--shadow-md)}.card-head{justify-content:space-between;align-items:baseline;gap:8px;margin-bottom:14px;display:flex}.card-head h3{color:var(--ink);letter-spacing:-.01em;margin:0;font-size:16px;font-weight:600}.card-head .note{color:var(--tertiary);font-size:12px;font-weight:500}.tags{flex-wrap:wrap;gap:6px;margin-bottom:12px;display:flex}.tag{letter-spacing:.04em;text-transform:uppercase;color:var(--accent-ink);background:var(--accent-soft);border-radius:6px;padding:3px 8px;font-size:10px;font-weight:600}.macro{margin:11px 0}.macro-top{justify-content:space-between;align-items:baseline;font-size:12.5px;display:flex}.macro-top .lbl{color:var(--muted);font-weight:500}.macro-top .val{color:var(--ink);font-weight:600}.macro-top .val .rem{color:var(--faint);margin-left:6px;font-weight:500}.bar{background:#14141e12;border-radius:4px;height:6px;margin-top:6px;overflow:hidden}.bar>span{height:100%;transition:width .3s var(--ease);border-radius:4px;display:block}.s-empty>span{background:var(--faint)}.s-partial>span{background:var(--partial)}.s-ok>span{background:var(--ok)}.s-over>span{background:var(--over)}.dot-status{vertical-align:middle;border-radius:50%;width:7px;height:7px;margin-right:7px;display:inline-block}.s-empty.dot-status{background:var(--faint)}.s-partial.dot-status{background:var(--partial)}.s-ok.dot-status{background:var(--ok)}.s-over.dot-status{background:var(--over)}.macro.clickable{cursor:pointer;border-radius:11px;margin:11px -10px;padding:7px 10px;transition:background .14s}.macro.clickable:hover{background:var(--accent-soft)}.macro .see{color:var(--accent-ink);opacity:0;margin-left:8px;font-size:11px;font-weight:600;transition:all .14s}.macro.clickable:hover .see{opacity:1}.entries{flex-direction:column;gap:7px;margin:13px 0 4px;display:flex}.entry{background:var(--glass-input);border:1px solid var(--border);border-radius:var(--radius-sm);align-items:center;gap:9px;padding:9px 11px;font-size:13px;display:flex}.entry .name{text-overflow:ellipsis;white-space:nowrap;min-width:0;color:var(--text);flex:1;font-weight:500;overflow:hidden}.entry .grams{color:var(--accent-ink);white-space:nowrap;font-variant-numeric:tabular-nums;font-weight:700}.entry .grams small{color:var(--faint);font-weight:500}.entry input[type=number]{border:1px solid var(--border);width:50px;color:var(--ink);text-align:right;font-variant-numeric:tabular-nums;background:#fff;border-radius:7px;padding:4px 6px;font-size:12px;transition:border-color .15s,box-shadow .15s}.entry input[type=number]:focus{border-color:var(--accent-line);box-shadow:0 0 0 3px var(--accent-soft);outline:0}.entry .x{color:var(--faint);background:0 0;border:0;padding:0 2px;font-size:17px;line-height:1;transition:color .15s}.entry .x:hover{color:var(--over)}.entry .sec{color:var(--partial);white-space:nowrap;font-size:11px;font-weight:600}.entry .mac{color:var(--tertiary);font-size:11px;font-weight:600}.add-row{flex-wrap:wrap;gap:7px;margin-top:10px;display:flex}.add-row button{border:1px dashed var(--border-strong);color:var(--muted);transition:.15s var(--ease);background:0 0;border-radius:10px;padding:7px 12px;font-size:12px;font-weight:500}.add-row button:hover{color:var(--accent-ink);border-color:var(--accent-line);background:var(--accent-soft)}.add-row button:active{transform:scale(.97)}.fav-row{margin-top:11px}.fav-chip{background:var(--accent-soft);border:1px solid var(--accent-line);color:var(--accent-ink);transition:.15s var(--ease);border-radius:999px;padding:6px 12px;font-size:12px;font-weight:600}.fav-chip:hover{background:#d96d8a33}.fav-chip:active{transform:scale(.97)}.tablewrap{border:1px solid var(--border);border-radius:var(--radius);background:var(--glass);box-shadow:var(--shadow-sm);-webkit-backdrop-filter:blur(22px)saturate(180%);overflow-x:auto}table.grid{border-collapse:collapse;width:100%;min-width:560px;font-size:13px}table.grid th,table.grid td{text-align:left;border-bottom:1px solid var(--border);padding:11px 14px}table.grid thead th{color:var(--tertiary);letter-spacing:.07em;text-transform:uppercase;font-size:10.5px;font-weight:600}table.grid tbody tr{transition:background .12s}table.grid tbody tr:hover{background:#d96d8a0d}table.grid tbody tr:last-child td{border-bottom:0}table.grid .rowhead{color:var(--ink);font-weight:600}table.grid td.num{text-align:right;font-variant-numeric:tabular-nums}table.grid .muted{color:var(--faint)}table.grid .star{color:var(--faint);cursor:pointer;background:0 0;border:0;padding:0;font-size:15px;line-height:1;transition:color .15s}table.grid .star.on,table.grid .star:hover{color:var(--accent)}.modal-bg{-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);z-index:50;animation:fade .18s var(--ease);background:#281e2338;justify-content:center;align-items:flex-start;padding:64px 16px;display:flex;position:fixed;inset:0}@keyframes fade{0%{opacity:0}}.modal{background:var(--glass-strong);border:1px solid var(--border-strong);border-radius:var(--radius-lg);width:100%;max-width:520px;max-height:78vh;box-shadow:var(--shadow-pop);-webkit-backdrop-filter:blur(34px)saturate(190%);animation:pop .22s var(--ease);flex-direction:column;display:flex;overflow:hidden}@keyframes pop{0%{opacity:0;transform:scale(.96)translateY(6px)}}.modal-head{border-bottom:1px solid var(--border);padding:18px 20px}.modal-head h3{color:var(--ink);margin:0 0 12px;font-size:15.5px;font-weight:600}.modal-head h3 .muted{color:var(--muted);font-weight:500}.modal-search{border:1px solid var(--border);width:100%;color:var(--ink);background:#fff;border-radius:11px;padding:10px 13px;font-size:14px;transition:border-color .15s,box-shadow .15s}.modal-search:focus{border-color:var(--accent-line);box-shadow:0 0 0 3px var(--accent-soft);outline:0}.chips{flex-wrap:wrap;gap:6px;margin-top:12px;display:flex}.chip{border:1px solid var(--border);color:var(--muted);background:#ffffff80;border-radius:999px;padding:5px 12px;font-size:12px;font-weight:500;transition:all .15s}.chip:hover{color:var(--ink);border-color:var(--border-strong)}.chip.active{background:var(--accent);border-color:var(--accent);color:#fff}.foodlist{padding:7px;overflow-y:auto}.fooditem{border-radius:11px;align-items:center;gap:10px;padding:9px 12px;transition:background .12s;display:flex}.fooditem:hover{background:var(--accent-soft)}.fooditem .star{color:var(--faint);background:0 0;border:0;padding:0 2px;font-size:16px;line-height:1;transition:color .15s}.fooditem .star.on,.fooditem .star:hover{color:var(--accent)}.fooditem .fname{cursor:pointer;color:var(--text);flex:1;font-weight:500}.fooditem .fname small{color:var(--tertiary);margin-left:7px;font-weight:400}.fooditem .fpct{color:var(--accent-ink);font-variant-numeric:tabular-nums;cursor:pointer;font-size:13px;font-weight:600}.fooditem .fcat{text-transform:uppercase;letter-spacing:.05em;color:var(--tertiary);font-size:9.5px;font-weight:600}.modal-foot{border-top:1px solid var(--border);text-align:right;padding:13px 20px}.section{margin-top:8px}.section h2{color:var(--ink);letter-spacing:-.02em;text-wrap:balance;margin:28px 0 14px;font-size:19px;font-weight:650}.muted{color:var(--muted)}.faint{color:var(--faint)}.lead{color:var(--muted);text-wrap:pretty;max-width:720px;margin:0 0 18px}.foot{color:var(--tertiary);text-wrap:pretty;margin-top:12px;font-size:12px}.concept{background:var(--glass);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow-sm);-webkit-backdrop-filter:blur(20px)saturate(170%);margin-bottom:12px;padding:18px 20px}.concept h3{color:var(--ink);margin:0 0 9px;font-size:15px;font-weight:600}.concept p{color:var(--muted);text-wrap:pretty;margin:7px 0;font-size:13.5px}.faq details{background:var(--glass);border:1px solid var(--border);border-radius:var(--radius-sm);box-shadow:var(--shadow-sm);-webkit-backdrop-filter:blur(18px)saturate(160%);margin-bottom:9px;padding:0 18px}.faq summary{cursor:pointer;color:var(--ink);padding:14px 0;font-size:14px;font-weight:600;list-style:none}.faq summary::-webkit-details-marker{display:none}.faq summary:before{content:"+";color:var(--accent);margin-right:11px;font-weight:600}.faq details[open] summary:before{content:"−"}.faq p{color:var(--muted);text-wrap:pretty;margin:0 0 15px;font-size:13.5px}.form{background:var(--glass);border:1px solid var(--border);border-radius:var(--radius);max-width:560px;box-shadow:var(--shadow-sm);-webkit-backdrop-filter:blur(22px)saturate(180%);padding:20px}.form label{color:var(--muted);margin:13px 0 6px;font-size:12.5px;font-weight:500;display:block}.form input,.form select{border:1px solid var(--border);width:100%;color:var(--ink);background:#fff;border-radius:10px;padding:10px 13px;font-size:14px;transition:border-color .15s,box-shadow .15s}.form input:focus,.form select:focus{border-color:var(--accent-line);box-shadow:0 0 0 3px var(--accent-soft);outline:0}.form .grid2{grid-template-columns:1fr 1fr;gap:12px;display:grid}.btn-primary{background:var(--accent);color:#fff;transition:.16s var(--ease);border:0;border-radius:11px;margin-top:18px;padding:11px 20px;font-size:14px;font-weight:600;box-shadow:0 8px 18px -6px #d96d8a8c}.btn-primary:hover:not(:disabled){background:var(--accent-ink)}.btn-primary:active:not(:disabled){transform:scale(.97)}.btn-primary:disabled{opacity:.4;cursor:not-allowed;box-shadow:none}.result-box{background:var(--accent-soft);border:1px solid var(--accent-line);color:var(--text);border-radius:11px;margin-top:14px;padding:13px 15px;font-size:14px}.result-box b{color:var(--accent-ink)}.customlist{margin-top:20px}.customlist .entry{max-width:560px}.add-row button,.fav-chip,.btn-primary{align-items:center;gap:6px;display:inline-flex}.add-row button svg,.fav-chip svg{flex:none}.entry .x{align-items:center;display:inline-flex}.icon-btn{width:30px;height:30px;color:var(--tertiary);transition:.15s var(--ease);background:0 0;border:0;border-radius:9px;justify-content:center;align-items:center;display:inline-flex}.icon-btn:hover{color:var(--ink);background:#14141e0d}.icon-btn:active{transform:scale(.92)}.card-head-r{align-items:center;gap:8px;display:flex}.card-head-r .note{color:var(--tertiary);font-size:12px;font-weight:500}.datenav{justify-content:space-between;align-items:center;gap:10px;display:flex}.datelabel{color:var(--ink);letter-spacing:-.01em;text-transform:capitalize;align-items:center;gap:9px;font-size:15px;font-weight:600;display:inline-flex}.datelabel svg{color:var(--accent)}.datelabel em{text-transform:none;color:var(--accent-ink);background:var(--accent-soft);border-radius:6px;padding:2px 8px;font-size:11px;font-style:normal;font-weight:600}.cal{background:var(--glass);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow-sm);-webkit-backdrop-filter:blur(22px)saturate(180%);max-width:460px;padding:16px}.cal-head{justify-content:space-between;align-items:center;margin-bottom:14px;display:flex}.cal-head strong{color:var(--ink);text-transform:capitalize;letter-spacing:-.01em;font-size:16px}.cal-grid{grid-template-columns:repeat(7,1fr);gap:4px;display:grid}.cal-wd{text-align:center;color:var(--tertiary);padding-bottom:4px;font-size:11px;font-weight:600}.cal-cell{aspect-ratio:1;color:var(--text);cursor:pointer;transition:.14s var(--ease);background:0 0;border:0;border-radius:10px;justify-content:center;align-items:center;font-size:13.5px;font-weight:500;display:flex;position:relative}.cal-cell.empty{cursor:default}.cal-cell:not(.empty):hover{background:var(--accent-soft)}.cal-cell .mark{background:var(--accent);border-radius:50%;width:5px;height:5px;position:absolute;bottom:6px}.cal-cell.today{color:var(--accent-ink);font-weight:700}.cal-cell.today:after{content:"";border:1.5px solid var(--accent-line);border-radius:9px;position:absolute;inset:4px}.cal-cell.selected{background:var(--accent);color:#fff;box-shadow:0 6px 14px -6px #d96d8a8c}.cal-cell.selected .mark{background:#fff}.cal-cell.selected.today:after{display:none}@media (width<=640px){.app{padding:0 14px calc(76px + env(safe-area-inset-bottom))}.topbar{padding:16px 0 12px}.brand h1{letter-spacing:.1em;font-size:16px}.tab-label{font-size:10px;font-weight:600}.tabs{z-index:40;border:0;border-top:1px solid var(--border);padding:7px 6px calc(7px + env(safe-area-inset-bottom));-webkit-backdrop-filter:blur(24px)saturate(180%);background:#ffffffd1;border-radius:0;justify-content:space-around;gap:0;position:fixed;bottom:0;left:0;right:0;box-shadow:0 -6px 20px -10px #28141e2e}.tabs button{border-radius:10px;flex-direction:column;flex:1;gap:3px;padding:4px 6px}.tabs button svg{width:22px;height:22px}.tabs button.active{color:var(--accent-ink);box-shadow:none;background:0 0}.daytotals{grid-template-columns:repeat(2,1fr);gap:9px}.tot .v{font-size:22px}.meals{grid-template-columns:1fr;gap:12px}.section h2{margin:22px 0 12px;font-size:17px}.modal-bg{align-items:flex-end;padding:40px 10px 10px}.modal{border-radius:22px 22px 0 0;max-height:86vh}.cal{max-width:none}.datelabel{font-size:14px}.daybar{gap:6px}.daybar button{padding:8px 13px;font-size:12.5px}}.login{justify-content:center;align-items:center;min-height:100vh;padding:24px;display:flex}.login-card{background:var(--glass-strong);border:1px solid var(--border);border-radius:var(--radius-lg);width:100%;max-width:360px;box-shadow:var(--shadow-pop);-webkit-backdrop-filter:blur(30px)saturate(190%);padding:30px 28px}.login-brand{letter-spacing:.14em;text-transform:uppercase;color:var(--ink);margin-bottom:6px;font-size:17px;font-weight:700}.login-brand .dot{color:var(--accent)}.login-field{border:1px solid var(--border);background:#fff;border-radius:11px;align-items:center;gap:9px;padding:0 13px;transition:border-color .15s,box-shadow .15s;display:flex}.login-field:focus-within{border-color:var(--accent-line);box-shadow:0 0 0 3px var(--accent-soft)}.login-field svg{color:var(--tertiary);flex:none}.login-field input{color:var(--ink);background:0 0;border:0;outline:0;flex:1;padding:11px 0;font-size:15px}.login-err{color:var(--over);margin:12px 0 0;font-size:13px}.loader{color:var(--muted);text-align:center;padding:60px 0}.topbar .logout{color:var(--tertiary)}.topbar .logout:hover{color:var(--over);background:#e26a621a}.off-search{border:1px solid var(--border);background:#fff;border-radius:11px;align-items:center;gap:9px;padding:0 13px;display:flex}.off-search:focus-within{border-color:var(--accent-line);box-shadow:0 0 0 3px var(--accent-soft)}.off-search svg{color:var(--tertiary);flex:none}.off-search input{color:var(--ink);background:0 0;border:0;outline:0;flex:1;padding:10px 0;font-size:14px}.off-search .btn-ghost{flex:none}.off-results{flex-direction:column;gap:5px;max-height:320px;margin-top:12px;display:flex;overflow-y:auto}.off-item{text-align:left;background:var(--glass-input);border:1px solid var(--border);transition:.13s var(--ease);border-radius:10px;justify-content:space-between;align-items:center;gap:12px;padding:10px 12px;display:flex}.off-item:hover{border-color:var(--accent-line);background:var(--accent-soft)}.off-item:active{transform:scale(.99)}.off-name{color:var(--text);font-size:13.5px;font-weight:500}.off-name small{color:var(--tertiary);font-weight:400}.off-macros{color:var(--accent-ink);white-space:nowrap;font-size:12px;font-weight:600}@media (prefers-reduced-motion:reduce){*{transition-duration:.01ms!important;animation-duration:.01ms!important}}
