@font-face{font-family:Nunito;src:url(./nunito_body-Dc_862cp.ttf)format("truetype");font-weight:400 700;font-display:swap}@font-face{font-family:Nunito;src:url(./nunito_black-6hPrAvID.ttf)format("truetype");font-weight:800 900;font-display:swap}:root{--bg:#0f1013;--surface:#17191e;--surface-hi:#1f222a;--divider:#2b2f38;--text-hi:#f4f5f7;--text-lo:#c2c7ce;--text-dim:#949aa3;--accent:#37c8a3;--accent-soft:#37c8a324;--range:#f2b33d;--warn:#e5934b;--danger:#e5484d;--danger-soft:#e5484d24;--insulin:#5aa9ff;--radius:16px;--radius-sm:12px;--nav-h:64px;--safe-b:env(safe-area-inset-bottom,0px);--safe-t:env(safe-area-inset-top,0px);--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}*{box-sizing:border-box;-webkit-tap-highlight-color:transparent}html,body{background:var(--bg);height:100%;margin:0}body{color:var(--text-hi);-webkit-font-smoothing:antialiased;overscroll-behavior-y:none;font-family:Nunito,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Noto Sans,Ubuntu,Cantarell,Helvetica Neue,sans-serif;font-size:16px;font-weight:650;line-height:1.35}button,input,select,textarea{font:inherit;color:inherit}#app{min-height:100%}.screen{padding:calc(var(--safe-t) + 22px) 16px calc(var(--nav-h) + var(--safe-b) + 24px);max-width:640px;margin:0 auto}.screen-title{margin:4px 0 14px;font-size:22px;font-weight:800}.muted{color:var(--text-dim)}.lo{color:var(--text-lo)}.small{font-size:13px}.row{align-items:center;gap:10px;display:flex}.spacer{flex:1}.stack>*+*{margin-top:10px}.card{background:var(--surface);border-radius:var(--radius);padding:14px 16px}.card.tap{cursor:pointer;transition:background .15s}.card.tap:active{background:var(--surface-hi)}.card-label{color:var(--text-lo);font-size:13px}.hero{align-items:flex-start;gap:12px;padding:6px 2px 14px;display:flex}.hero-value{letter-spacing:-1px;font-size:64px;font-weight:900;line-height:1}.hero-value.stale{color:var(--text-dim);text-decoration:line-through}.hero-value.out{color:var(--range)}.hero-arrow{color:var(--text-lo);font-size:40px;line-height:1.2}.hero-meta{text-align:right;color:var(--text-lo);margin-left:auto;padding-top:6px;font-size:14px}.hero-meta b{color:var(--text-hi);font-size:17px}.chips{scrollbar-width:none;gap:8px;padding-bottom:2px;display:flex;overflow-x:auto}.chip{border:1px solid var(--divider);background:var(--surface);white-space:nowrap;cursor:pointer;border-radius:999px;padding:7px 14px;font-size:14px}.chip.on{border-color:var(--accent);color:var(--accent);background:var(--accent-soft)}.chart{touch-action:pan-y;width:100%;height:280px;display:block}.chart text{font-family:inherit}.btn{cursor:pointer;background:var(--surface-hi);border:0;border-radius:999px;padding:13px 20px;font-weight:800}.btn-primary{background:var(--accent);color:#062019}.btn-ghost{border:1px solid var(--divider);background:0 0}.btn-danger{border:1px solid var(--danger);color:var(--danger);background:0 0}.btn-block{width:100%}.btn:disabled{opacity:.5;cursor:default}.fab{right:max(16px,50% - 304px);bottom:calc(var(--nav-h) + var(--safe-b) + 16px);background:var(--accent);color:#062019;text-align:center;cursor:pointer;border:0;border-radius:50%;width:58px;height:58px;font-size:32px;font-weight:800;line-height:58px;position:fixed;box-shadow:0 6px 20px #00000073}.nav{height:calc(var(--nav-h) + var(--safe-b));padding-bottom:var(--safe-b);background:var(--surface);border-top:1px solid var(--divider);z-index:10;justify-content:center;display:flex;position:fixed;bottom:0;left:0;right:0}.nav-inner{width:100%;max-width:640px;display:flex}.nav button{cursor:pointer;color:var(--text-dim);background:0 0;border:0;flex-direction:column;flex:1;justify-content:center;align-items:center;gap:3px;font-size:12px;display:flex}.nav button svg{width:24px;height:24px}.nav button.on{color:var(--text-hi)}.nav button.on svg{color:var(--accent)}.field{margin-top:14px;display:block}.field>span{color:var(--text-lo);margin-bottom:6px;font-size:13px;display:block}.input{background:var(--surface-hi);border-radius:var(--radius-sm);border:1px solid #0000;outline:none;width:100%;height:52px;padding:0 14px;font-size:18px}.input:focus{border-color:var(--accent)}.input-big{text-align:center;height:62px;font-size:28px;font-weight:800}.input-big.unit-ph::placeholder{font-size:15px;font-weight:700}.grid2{grid-template-columns:1fr 1fr;align-items:end;gap:0 10px;display:grid}.grid3{grid-template-columns:1fr 1fr 1fr;align-items:end;gap:0 10px;display:grid}select.input{-webkit-appearance:none;appearance:none;background-image:linear-gradient(45deg, transparent 50%, var(--text-dim) 50%), linear-gradient(135deg, var(--text-dim) 50%, transparent 50%);text-overflow:ellipsis;background-position:calc(100% - 18px) 55%,calc(100% - 13px) 55%;background-repeat:no-repeat;background-size:5px 5px;padding-right:30px;font-size:16px}.radios{flex-wrap:wrap;gap:6px 16px;display:flex}.radio{cursor:pointer;align-items:center;gap:8px;padding:6px 0;font-size:15px;display:inline-flex}.radio input{-webkit-appearance:none;appearance:none;border:2px solid var(--text-dim);border-radius:50%;place-content:center;width:20px;height:20px;margin:0;display:grid}.radio input:checked{border-color:var(--accent)}.radio input:checked:after{content:"";background:var(--accent);border-radius:50%;width:10px;height:10px}.caption{color:var(--text-dim);margin-top:2px;font-size:13px}.backdrop{z-index:20;background:#0000008c;justify-content:center;align-items:flex-end;display:flex;position:fixed;top:0;bottom:0;left:0;right:0}.sheet{background:var(--surface);width:100%;max-width:640px;padding:10px 18px calc(18px + var(--safe-b));border-radius:22px 22px 0 0;max-height:92vh;animation:.18s ease-out up;overflow-y:auto}.sheet-grip{background:var(--divider);border-radius:3px;width:40px;height:5px;margin:0 auto 10px}@keyframes up{0%{opacity:.4;transform:translateY(24px)}to{opacity:1;transform:none}}.meal-line{align-items:baseline;gap:8px;display:flex}.meal-uk{color:var(--accent);margin-top:4px;font-size:15px}.meal-uk.estimate{color:var(--text-lo)}.badge{background:var(--surface-hi);color:var(--text-lo);border-radius:999px;padding:2px 8px;font-size:12px;display:inline-block}.badge.accent{background:var(--accent-soft);color:var(--accent)}.badge.warn{color:var(--warn);background:#e5934b26}.kv{border-bottom:1px solid var(--divider);justify-content:space-between;gap:12px;padding:7px 0;display:flex}.kv span:last-child{white-space:nowrap;text-align:right}.kv:last-child{border-bottom:0}.kv span:first-child{color:var(--text-lo)}.big-number{font-size:44px;font-weight:900;line-height:1.05}.banner{border-radius:var(--radius-sm);padding:10px 14px;font-size:14px}.banner.error{background:var(--danger-soft);color:#ffb4b6}.banner.info{background:var(--accent-soft);color:var(--accent)}.toast{left:50%;bottom:calc(var(--nav-h) + var(--safe-b) + 90px);background:var(--surface-hi);color:var(--text-hi);z-index:30;border-radius:999px;padding:10px 18px;font-size:14px;position:fixed;transform:translate(-50%);box-shadow:0 4px 16px #0006}.empty{text-align:center;color:var(--text-dim);padding:30px 10px}.spinner{border:2px solid var(--divider);border-top-color:var(--accent);border-radius:50%;width:18px;height:18px;animation:.8s linear infinite spin;display:inline-block}@keyframes spin{to{transform:rotate(360deg)}}.scanner{z-index:40;background:#000;flex-direction:column;display:flex;position:fixed;top:0;bottom:0;left:0;right:0}.scanner-video{object-fit:cover;flex:1;width:100%;height:100%;min-height:0}.scanner-frame{aspect-ratio:1;border:3px solid var(--accent);pointer-events:none;border-radius:22px;width:min(68vw,300px);position:absolute;top:42%;left:50%;transform:translate(-50%,-50%);box-shadow:0 0 0 100vmax #00000073}.scanner-bar{padding:18px 16px calc(18px + var(--safe-b));background:var(--surface);border-radius:22px 22px 0 0;align-items:center;gap:12px;display:flex;position:absolute;bottom:0;left:0;right:0}.scanner-text{color:var(--text-hi);flex:1;font-size:15px}.home{height:calc(100dvh - var(--nav-h) - var(--safe-b));max-width:1100px;padding-top:var(--safe-t);flex-direction:column;margin:0 auto;display:flex}.home-head{background:var(--surface);align-items:flex-start;gap:12px;padding:22px 16px 12px;display:flex}.last-meal{min-width:0;color:inherit;text-align:left;cursor:pointer;font:inherit;background:0 0;border:0;flex:1;padding:2px 0}.last-meal-title{color:var(--text-lo);white-space:nowrap;text-overflow:ellipsis;font-size:13px;overflow:hidden}.last-meal-uk{color:var(--accent);white-space:nowrap;margin-top:2px;font-size:24px;font-weight:900;line-height:1.2}.last-meal-until{color:var(--text-dim);margin-left:8px;font-size:12px;font-weight:700}.glu{text-align:right;flex:none}.glu-row{justify-content:flex-end;align-items:center;gap:6px;display:flex}.glu-value{letter-spacing:-1px;font-size:54px;font-weight:900;line-height:1}.glu-value.stale{color:var(--text-dim);text-decoration:line-through}.glu-value.out{color:var(--range)}.glu-arrow{color:var(--text-hi);min-width:.6em;font-size:34px;line-height:1}.glu-meta{color:var(--text-lo);white-space:nowrap;margin-top:4px;font-size:13px}.home-chart{flex:1;min-height:220px;position:relative}.gchart{position:absolute;top:0;bottom:0;left:0;right:0;overflow:hidden}.gchart-svg{touch-action:none;-webkit-user-select:none;user-select:none;-webkit-touch-callout:none;cursor:grab;display:block}.gchart-svg:active{cursor:grabbing}.gchart-tip{pointer-events:none;white-space:nowrap;background:var(--surface-hi);color:var(--text-hi);border-radius:999px;padding:5px 10px;font-size:13px;position:absolute;transform:translate(-50%);box-shadow:0 2px 10px #00000073}.chart-fab{z-index:2;background:var(--accent);color:#062019;cursor:pointer;border:0;border-radius:50%;width:52px;height:52px;font-size:30px;font-weight:800;line-height:52px;position:absolute;top:10px;right:14px;box-shadow:0 6px 18px #00000073}.chart-now{z-index:2;position:absolute;bottom:34px;right:12px}.overview{border-top:1px solid var(--divider);background:var(--bg);flex:none;height:80px}.overview svg{touch-action:none;-webkit-user-select:none;user-select:none;cursor:pointer;display:block}@media (min-width:900px){.home-head{border-radius:0 0 var(--radius) var(--radius)}.glu-value{font-size:64px}}.swipe-row{border-radius:var(--radius);position:relative;overflow:hidden}.swipe-actions{z-index:2;width:176px;transition:transform .18s;display:flex;position:absolute;top:0;bottom:0;right:0}.swipe-actions.dragging{transition:none}.swipe-actions button{font:inherit;color:#fff;cursor:pointer;border:0;flex:1;font-size:14px;font-weight:800}.swipe-edit{background:#3a4150}.swipe-delete{background:var(--danger)}.swipe-front{z-index:1;touch-action:pan-y;position:relative}
