@import"https://fonts.googleapis.com/css2?family=Archivo:wdth,wght@62..125,400..900&family=IBM+Plex+Mono:wght@400;500;600&display=swap";:root{color-scheme:light;--paper: #f3efe6;--paper-2: #e9e3d6;--card: #fbf9f4;--ink: #141210;--ink-2: #4a453d;--ink-3: #8a8377;--rule: #141210;--hair: rgba(20, 18, 16, .18);--accent: #ff4a1c;--accent-ink: #fff6f0;--ok: #1f7a4d;--sans: "Archivo", "Helvetica Neue", sans-serif;--mono: "IBM Plex Mono", ui-monospace, monospace;--nav-h: 68px;--safe-bottom: env(safe-area-inset-bottom, 0px);--ease: cubic-bezier(.2, .8, .2, 1)}*{box-sizing:border-box}html,body,#root{min-height:100%}body{margin:0;font-family:var(--sans);font-variation-settings:"wdth" 100;background-color:var(--paper);background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='160' height='160'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='2' stitchTiles='stitch'/%3E%3CfeColorMatrix values='0 0 0 0 0.08 0 0 0 0 0.07 0 0 0 0 0.06 0 0 0 0.09 0'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");color:var(--ink);line-height:1.4;-webkit-font-smoothing:antialiased;-webkit-tap-highlight-color:transparent}button,input,select,textarea{font:inherit;color:inherit}button{cursor:pointer}a{color:inherit;text-decoration:none}:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.num{font-family:var(--mono);font-variant-numeric:tabular-nums}.app-shell{max-width:460px;margin:0 auto;min-height:100dvh;padding:18px 18px calc(var(--nav-h) + var(--safe-bottom) + 28px)}.masthead{display:flex;align-items:flex-end;justify-content:space-between;gap:12px;padding-bottom:10px;border-bottom:3px solid var(--rule);margin-bottom:18px}.eyebrow{font-family:var(--mono);font-size:.72rem;letter-spacing:.08em;text-transform:uppercase;color:var(--ink-2)}.title{margin:2px 0 0;font-size:clamp(2.6rem,13vw,3.6rem);line-height:.86;font-weight:900;font-variation-settings:"wdth" 70;letter-spacing:-.01em;text-transform:uppercase}.stepper{display:flex;border:2px solid var(--ink)}.stepper button{width:38px;height:38px;border:0;background:var(--card);font-family:var(--mono);font-size:1rem;font-weight:600}.stepper button+button{border-left:2px solid var(--ink)}.stepper button:active{background:var(--ink);color:var(--paper)}.label{background:var(--card);border:2px solid var(--ink);padding:10px 12px 12px;box-shadow:6px 6px 0 var(--ink)}.label-head{display:flex;justify-content:space-between;align-items:baseline;font-weight:900;font-variation-settings:"wdth" 75;font-size:1.9rem;line-height:1;text-transform:uppercase;padding-bottom:6px}.label-head small{font-family:var(--mono);font-weight:500;font-size:.7rem;letter-spacing:.06em;color:var(--ink-2)}.rule-xl{height:12px;background:var(--ink);margin:0 -2px}.rule-md{height:5px;background:var(--ink);margin:0 -2px}.rule-sm{height:1px;background:var(--ink)}.cal-row{display:flex;justify-content:space-between;align-items:flex-end;padding:8px 0 4px}.cal-row .k{font-weight:900;font-variation-settings:"wdth" 80;font-size:1.5rem;text-transform:uppercase;line-height:1}.cal-row .v{font-family:var(--mono);font-weight:600;font-size:3.4rem;line-height:.9;letter-spacing:-.04em}.cal-row .v.over{color:var(--accent)}.meter{position:relative;height:22px;border:2px solid var(--ink);background:repeating-linear-gradient(90deg,transparent 0 calc(10% - 1px),var(--hair) calc(10% - 1px) 10%);margin:8px 0 6px;overflow:hidden}.meter>span{position:absolute;inset:0 auto 0 0;background:var(--ink);transform-origin:left;animation:grow .9s var(--ease) both}.meter>span.over{background:var(--accent)}.meter-legend{display:flex;justify-content:space-between;font-family:var(--mono);font-size:.72rem;color:var(--ink-2);padding-bottom:8px}.meter-legend strong{color:var(--ink);font-weight:600}.dv-head{text-align:right;font-weight:800;font-size:.78rem;padding:4px 0}.nrow{display:grid;grid-template-columns:1fr auto 52px;align-items:center;gap:10px;padding:7px 0;border-top:1px solid var(--ink);animation:rise .5s var(--ease) both;animation-delay:calc(var(--i, 0) * 60ms + .15s)}.nrow .name{font-weight:800}.nrow .name span{font-weight:400;font-family:var(--mono);font-size:.85rem;margin-left:6px}.nrow .mini{width:72px;height:6px;background:var(--paper-2);position:relative}.nrow .mini>span{position:absolute;inset:0 auto 0 0;background:var(--ink);animation:grow .9s var(--ease) both;animation-delay:.25s}.nrow .mini>span.over{background:var(--accent)}.nrow .pct{text-align:right;font-family:var(--mono);font-weight:600}.nrow .pct.over{color:var(--accent)}.label-foot{border-top:5px solid var(--ink);margin-top:2px;padding-top:6px;font-size:.72rem;color:var(--ink-2);line-height:1.35}.section{margin-top:30px;animation:rise .5s var(--ease) both;animation-delay:calc(var(--i, 0) * 70ms + .3s)}.section-head{display:flex;justify-content:space-between;align-items:baseline;border-bottom:3px solid var(--ink);padding-bottom:4px}.section-head h2{margin:0;font-size:1.35rem;font-weight:900;font-variation-settings:"wdth" 72;text-transform:uppercase;letter-spacing:.01em}.section-head .num{font-weight:600;font-size:.95rem}.section-head .add{border:0;background:none;padding:0;font-family:var(--mono);font-size:.75rem;text-transform:uppercase;letter-spacing:.06em;text-decoration:underline;text-underline-offset:3px}.item{display:grid;grid-template-columns:1fr auto auto;gap:12px;align-items:center;padding:10px 0;border-bottom:1px dashed var(--hair)}.item-name{font-weight:600;line-height:1.2}.item-meta{font-family:var(--mono);font-size:.72rem;color:var(--ink-3);margin-top:3px}.item-kcal{font-family:var(--mono);font-weight:600}.x{width:28px;height:28px;border:1.5px solid var(--hair);background:transparent;font-family:var(--mono);font-size:.9rem;line-height:1;color:var(--ink-3);transition:all .15s}.x:hover,.x:active{border-color:var(--accent);background:var(--accent);color:var(--accent-ink)}.empty{padding:12px 0;font-family:var(--mono);font-size:.78rem;color:var(--ink-3);border-bottom:1px dashed var(--hair)}.btn{display:flex;align-items:center;justify-content:space-between;gap:10px;width:100%;border:2px solid var(--ink);background:var(--ink);color:var(--paper);padding:14px 16px;font-weight:800;font-variation-settings:"wdth" 85;font-size:1.05rem;text-transform:uppercase;letter-spacing:.02em;transition:transform .12s var(--ease),box-shadow .12s var(--ease);box-shadow:4px 4px 0 var(--accent)}.btn:active{transform:translate(3px,3px);box-shadow:1px 1px 0 var(--accent)}.btn.ghost{justify-content:center;background:transparent;color:var(--ink);box-shadow:none}.btn:disabled{opacity:.35;cursor:not-allowed;transform:none}.btn .arrow{font-family:var(--mono)}.field{display:grid;gap:6px}.field>label,.lbl{font-family:var(--mono);font-size:.7rem;letter-spacing:.08em;text-transform:uppercase;color:var(--ink-2)}.input{width:100%;border:2px solid var(--ink);background:var(--card);padding:12px;font-size:1rem;border-radius:0;-webkit-appearance:none;-moz-appearance:none;appearance:none}.input.big{font-family:var(--mono);font-size:1.6rem;font-weight:600;padding:10px 12px}.input::placeholder{color:var(--ink-3)}.search{display:grid;grid-template-columns:1fr auto}.search .input{border-right:0}.search button{border:2px solid var(--ink);background:var(--ink);color:var(--paper);padding:0 16px;font-weight:800;text-transform:uppercase;font-size:.85rem}.search button:disabled{opacity:.4}.seg{display:grid;grid-auto-flow:column;grid-auto-columns:1fr;border:2px solid var(--ink);background:var(--card)}.seg button{border:0;background:transparent;padding:11px 4px;font-weight:700;font-size:.82rem;text-transform:uppercase;letter-spacing:.02em}.seg button+button{border-left:2px solid var(--ink)}.seg button.on{background:var(--ink);color:var(--paper)}.chips{display:flex;flex-wrap:wrap;gap:6px}.chip{border:1.5px solid var(--ink);background:transparent;padding:6px 10px;font-family:var(--mono);font-size:.8rem}.chip.on{background:var(--accent);border-color:var(--accent);color:var(--accent-ink)}.stack{display:grid;gap:16px}.row2{display:grid;grid-template-columns:1fr 1fr;gap:10px}.error{border-left:4px solid var(--accent);background:#ff4a1c14;padding:10px 12px;font-size:.9rem}.note{font-family:var(--mono);font-size:.75rem;color:var(--ink-2)}.results{border-top:3px solid var(--ink)}.product{display:grid;grid-template-columns:52px 1fr auto;gap:12px;align-items:center;width:100%;padding:10px 0;border:0;border-bottom:1px solid var(--hair);background:transparent;text-align:left;animation:rise .4s var(--ease) both;animation-delay:calc(var(--i, 0) * 35ms)}.product:active{background:var(--paper-2)}.thumb{width:52px;height:52px;border:1.5px solid var(--ink);background:#fff;display:grid;place-items:center;overflow:hidden;font-family:var(--mono);font-size:.6rem;color:var(--ink-3)}.thumb img{width:100%;height:100%;object-fit:contain}.product .pname{font-weight:700;line-height:1.15}.product .pbrand{font-family:var(--mono);font-size:.72rem;color:var(--ink-3);margin-top:2px}.product .pk{text-align:right;font-family:var(--mono);font-weight:600;line-height:1.1}.product .pk small{display:block;font-weight:400;font-size:.65rem;color:var(--ink-3)}.pick{display:grid;grid-template-columns:76px 1fr;gap:14px;align-items:center}.pick .thumb{width:76px;height:76px}.pick h3{margin:0;font-size:1.3rem;font-weight:900;font-variation-settings:"wdth" 78;line-height:1.05;text-transform:uppercase}.preview{display:grid;grid-template-columns:repeat(4,1fr);border:2px solid var(--ink);background:var(--card)}.preview>div{padding:10px 8px;text-align:center}.preview>div+div{border-left:1px solid var(--ink)}.preview .v{font-family:var(--mono);font-weight:600;font-size:1.15rem}.preview .k{font-size:.65rem;font-weight:800;text-transform:uppercase;letter-spacing:.06em;color:var(--ink-2)}.preview>div:first-child{background:var(--ink);color:var(--paper)}.preview>div:first-child .k{color:var(--paper-2)}.scanner{position:relative;aspect-ratio:4 / 3;border:2px solid var(--ink);background:var(--ink);overflow:hidden}.scanner video{width:100%;height:100%;object-fit:cover}.scanner .reticle{position:absolute;top:28%;right:12%;bottom:28%;left:12%;border:2px solid var(--accent);pointer-events:none}.scanner .reticle:after{content:"";position:absolute;left:0;right:0;top:50%;height:2px;background:var(--accent);animation:sweep 1.6s ease-in-out infinite alternate}.scanner .idle{position:absolute;top:0;right:0;bottom:0;left:0;display:grid;place-items:center;color:var(--paper-2);font-family:var(--mono);font-size:.8rem;text-transform:uppercase;letter-spacing:.08em}.week{display:grid;grid-template-columns:repeat(7,1fr);gap:6px;align-items:end;height:180px;position:relative;padding-top:18px;border-bottom:3px solid var(--ink)}.week .goal-line{position:absolute;left:0;right:0;border-top:2px dashed var(--accent);pointer-events:none}.week .goal-line span{position:absolute;right:0;top:-18px;font-family:var(--mono);font-size:.65rem;color:var(--accent)}.day{border:0;background:transparent;padding:0;height:100%;display:flex;flex-direction:column;justify-content:flex-end;align-items:stretch}.day .bar{background:var(--ink);min-height:3px;transform-origin:bottom;animation:growY .7s var(--ease) both;animation-delay:calc(var(--i, 0) * 50ms)}.day .bar.over{background:var(--accent)}.day.sel .bar{outline:2px solid var(--ink);outline-offset:2px}.week-labels{display:grid;grid-template-columns:repeat(7,1fr);gap:6px;margin-top:6px;text-align:center;font-family:var(--mono);font-size:.68rem;color:var(--ink-3)}.week-labels .sel{color:var(--ink);font-weight:600}.stats{display:grid;grid-template-columns:repeat(3,1fr);border:2px solid var(--ink);background:var(--card)}.stats>div{padding:10px}.stats>div+div{border-left:1px solid var(--ink)}.stats .v{font-family:var(--mono);font-weight:600;font-size:1.3rem}.split{display:flex;height:14px;border:2px solid var(--ink)}.split>span{transition:flex-grow .4s var(--ease)}.split>span+span{border-left:2px solid var(--ink)}.split .p{background:var(--ink)}.split .c{background:repeating-linear-gradient(45deg,var(--ink) 0 2px,transparent 2px 6px)}.split .f{background:var(--accent)}.legend{display:flex;justify-content:space-between;font-family:var(--mono);font-size:.72rem;color:var(--ink-2)}.gate{min-height:100dvh;display:grid;align-content:center;gap:22px}.gate .title{font-size:clamp(3.4rem,19vw,5rem)}.nav{position:fixed;left:0;right:0;bottom:0;z-index:20;background:var(--ink);padding-bottom:var(--safe-bottom)}.nav-inner{max-width:460px;margin:0 auto;height:var(--nav-h);display:grid;grid-template-columns:1fr 1fr 76px 1fr 1fr;align-items:stretch}.nav a{display:grid;place-items:center;align-content:center;gap:3px;color:var(--ink-3);font-weight:700;font-size:.72rem;text-transform:uppercase;letter-spacing:.06em;position:relative}.nav a:before{content:"";width:5px;height:5px;background:transparent}.nav a.active{color:var(--paper)}.nav a.active:before{background:var(--accent)}.nav a.plus{margin-top:-18px;background:var(--accent);color:var(--accent-ink);font-family:var(--mono);font-size:2rem;font-weight:500;border:3px solid var(--ink);box-shadow:0 0 0 3px var(--paper)}.nav a.plus:before{display:none}.nav a.plus.active{background:var(--paper);color:var(--ink)}@keyframes rise{0%{opacity:0;transform:translateY(8px)}}@keyframes grow{0%{transform:scaleX(0)}}@keyframes growY{0%{transform:scaleY(0)}}@keyframes sweep{0%{transform:translateY(-40px)}to{transform:translateY(40px)}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation:none!important;transition:none!important}}
