:root{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;-webkit-font-smoothing:antialiased;font:16px/1.4 Geist,system-ui,Segoe UI,Roboto,sans-serif}html,body{color:#f2f3f5;background:#07080b;height:100%;margin:0}input{font-family:inherit}input::placeholder{color:#ffffff52}input[type=number]::-webkit-inner-spin-button{-webkit-appearance:none}#root{min-height:100svh}:root{--accent:oklch(86% .13 165);--accent-bg:oklch(86% .13 165/.12);--danger:oklch(72% .16 25)}.screen{flex-direction:column;min-height:100vh;display:flex}.content{padding:calc(env(safe-area-inset-top) + 20px) 20px 140px;box-sizing:border-box;flex:1;overflow-y:auto}.topbar{padding:calc(env(safe-area-inset-top) + 16px) 20px 0;z-index:5;justify-content:space-between;align-items:center;display:flex;position:absolute;top:0;left:0;right:0}.tabs{-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px);background:#ffffff0d;border:1px solid #ffffff14;border-radius:999px;gap:2px;padding:3px;display:flex}.tab{cursor:pointer;color:#ffffff8c;background:0 0;border:0;border-radius:999px;padding:7px 16px;font:500 13px Geist;transition:all .2s}.tab-active{color:#07080b;background:#ffffffeb}.date{color:#fff6;letter-spacing:.02em;white-space:nowrap;font:400 12px Geist Mono}.summary{margin:44px 0 28px;padding:0 4px}.summary-label{color:#ffffff73;margin-bottom:6px;font:400 13px Geist}.summary-value{align-items:baseline;gap:8px;display:flex}.summary-eaten{letter-spacing:-.04em;font-variant-numeric:tabular-nums;font:300 64px/1 Geist}.summary-goal{color:#ffffff59;white-space:nowrap;font:400 15px Geist Mono}.progress{background:#ffffff12;border-radius:3px;height:3px;margin-top:18px;overflow:hidden}.progress-bar{border-radius:3px;height:100%;transition:width .5s cubic-bezier(.2,.8,.2,1)}.meals,.recipe-list{flex-direction:column;gap:12px;display:flex}.recipe-list{margin-top:16px}.card{-webkit-backdrop-filter:blur(24px)saturate(140%);backdrop-filter:blur(24px)saturate(140%);background:#ffffff0a;border:1px solid #ffffff12;border-radius:24px;padding:6px}.card-header{justify-content:space-between;align-items:center;padding:12px 14px 8px;display:flex}.card-header-right{align-items:center;gap:10px;display:flex}.card-title{color:#ffffff8c;letter-spacing:.01em;font:500 13px Geist}.card-total{color:#fff6;font:400 12px Geist Mono}.card-empty,.empty-state{color:#ffffff38;padding:4px 14px 14px;font:400 13px Geist}.empty-state{text-align:center;color:#ffffff4d;padding:30px 16px;font:400 14px Geist}.round-btn{color:#ffffff8c;cursor:pointer;background:0 0;border:1px solid #ffffff1a;border-radius:50%;justify-content:center;align-items:center;width:24px;height:24px;padding:0;display:flex}.round-btn:hover{color:#fff;background:#ffffff14}.entry{border-radius:18px;transition:background .2s}.entry-expanded{background:#ffffff0f}.entry-row{cursor:pointer;align-items:center;gap:12px;padding:11px 14px;display:flex}.entry-info{flex:1;min-width:0}.entry-name-row{align-items:center;gap:7px;display:flex}.entry-name{white-space:nowrap;text-overflow:ellipsis;font:400 15px Geist;overflow:hidden}.entry-detail{color:#ffffff59;margin-top:2px;font:400 12px Geist Mono}.entry-kcal{color:#fffc;font-variant-numeric:tabular-nums;font:400 14px Geist Mono}.badge{text-transform:uppercase;letter-spacing:.06em;color:var(--accent);background:var(--accent-bg);border-radius:6px;flex:none;padding:2px 6px;font:500 9.5px Geist Mono}.entry-actions{align-items:center;gap:6px;padding:0 10px 10px;animation:.2s fade;display:flex}.chip{color:#fff9;cursor:pointer;background:0 0;border:1px solid #ffffff1a;border-radius:999px;padding:7px 12px;font:500 12px Geist}.chip-active{color:#07080b;background:#ffffffeb;border-color:#0000}.spacer{flex:1}.delete-btn{width:32px;height:32px;color:var(--danger);cursor:pointer;background:#ff5a5a1a;border:0;border-radius:50%;justify-content:center;align-items:center;padding:0;display:flex}.delete-btn:hover{background:#ff5a5a33}.page-title{padding:44px 4px 0}.page-heading{letter-spacing:-.03em;font:300 40px/1 Geist}.page-subtext{color:#fff6;margin-top:8px;font:400 13px Geist}.recipe-card{-webkit-backdrop-filter:blur(24px)saturate(140%);backdrop-filter:blur(24px)saturate(140%);cursor:pointer;background:#ffffff0a;border:1px solid #ffffff12;border-radius:24px;align-items:center;gap:14px;padding:16px 16px 16px 20px;transition:background .2s;display:flex}.recipe-card:hover{background:#ffffff12}.recipe-info{flex:1;min-width:0}.recipe-name{font:400 16px Geist}.recipe-sub{color:#ffffff59;margin-top:4px;font:400 12px Geist Mono}.log-btn{background:var(--accent-bg);color:var(--accent);cursor:pointer;border:1px solid oklch(86% .13 165/.3);border-radius:999px;padding:8px 14px;font:500 12px Geist}.log-btn:hover{background:oklch(86% .13 165/.2)}.back-btn{color:#ffffff80;cursor:pointer;background:0 0;border:0;align-items:center;gap:6px;margin-bottom:18px;padding:44px 4px 0;font:400 13px Geist;display:flex}.back-btn:hover{color:#fff}.editor-name{box-sizing:border-box;color:#fff;letter-spacing:-.03em;background:0 0;border:0;outline:none;width:100%;margin-bottom:6px;padding:0 4px;font:300 34px/1.1 Geist}.editor-total{color:#fff6;margin-bottom:22px;padding:0 4px;font:400 13px Geist Mono}.ingredient-row{align-items:center;gap:12px;padding:11px 8px 11px 14px;display:flex}.editor-actions{gap:10px;margin-top:16px;display:flex}.danger-btn{color:var(--danger);cursor:pointer;background:0 0;border:1px solid #ffffff14;border-radius:999px;padding:14px 18px;font:500 14px Geist}.primary-btn{color:#07080b;cursor:pointer;background:#f2f3f5;border:0;border-radius:999px;flex:1;padding:14px;font:500 14px Geist}.primary-btn:hover{background:#fff}.dock{left:20px;right:20px;bottom:calc(env(safe-area-inset-bottom) + 20px);gap:10px;display:flex;position:fixed}.dock-add,.dock-new{-webkit-backdrop-filter:blur(30px)saturate(160%);backdrop-filter:blur(30px)saturate(160%);color:#fff;cursor:pointer;background:#ffffff14;border:1px solid #ffffff1f;border-radius:999px;flex:1;justify-content:center;align-items:center;gap:12px;height:58px;padding:0 22px;font:400 15px Geist;transition:background .2s;display:flex;box-shadow:inset 0 1px #ffffff14}.dock-add{color:#ffffff80;justify-content:flex-start}.dock-add:hover,.dock-new:hover{background:#ffffff1f}.dock-scan{-webkit-backdrop-filter:blur(30px)saturate(160%);backdrop-filter:blur(30px)saturate(160%);color:#fff;cursor:pointer;background:#ffffff14;border:1px solid #ffffff1f;border-radius:50%;flex:none;justify-content:center;align-items:center;width:58px;height:58px;display:flex;box-shadow:inset 0 1px #ffffff14}.dock-scan:hover{background:#ffffff24}.toast{top:calc(env(safe-area-inset-top) + 16px);-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px);white-space:nowrap;z-index:30;background:#1e2024bf;border:1px solid #ffffff1a;border-radius:999px;padding:10px 18px;font:400 13px Geist;animation:2.2s forwards toast;position:fixed;left:50%;transform:translate(-50%)}.overlay{z-index:20;background:#00000080;animation:.2s fade;position:fixed;inset:0}.sheet{left:10px;right:10px;bottom:calc(env(safe-area-inset-bottom) + 10px);-webkit-backdrop-filter:blur(40px)saturate(170%);backdrop-filter:blur(40px)saturate(170%);background:#1c1e22b8;border:1px solid #ffffff1a;border-radius:34px;flex-direction:column;max-width:460px;max-height:min(640px,100% - 20px);margin:0 auto;animation:.32s cubic-bezier(.2,.9,.25,1) rise;display:flex;position:absolute;overflow:hidden;box-shadow:inset 0 1px #ffffff14,0 30px 80px #0009}.sheet-handle{background:#ffffff2e;border-radius:4px;flex:none;width:36px;height:4px;margin:10px auto 0}.search-row{flex:none;gap:8px;padding:14px 14px 8px;display:flex}.search-input-wrap{color:#ffffff73;background:#ffffff0f;border:1px solid #ffffff14;border-radius:999px;flex:1;align-items:center;gap:10px;height:50px;padding:0 16px;display:flex}.search-input-wrap input{color:#fff;background:0 0;border:0;outline:none;flex:1;min-width:0;font:400 16px Geist}.round-btn-lg{color:#fff;cursor:pointer;background:#ffffff0f;border:1px solid #ffffff14;border-radius:50%;flex:none;justify-content:center;align-items:center;width:50px;height:50px;display:flex}.round-btn-lg:hover{background:#ffffff1f}.results{max-height:400px;padding:4px 8px 14px;overflow-y:auto}.result-row{cursor:pointer;border-radius:18px;align-items:center;gap:12px;padding:13px 14px;display:flex}.result-row:hover{background:#ffffff0f}.sheet-pick{flex-direction:column;gap:22px;padding:20px 22px 22px;display:flex}.pick-header{align-items:flex-start;gap:12px;display:flex}.pick-header .round-btn{background:#ffffff12;border:0;width:32px;height:32px;margin-top:2px}.pick-info{flex:1;min-width:0}.pick-name{letter-spacing:-.01em;font:400 20px/1.2 Geist}.pick-sub{color:#fff6;margin-top:4px;font:400 12px Geist Mono}.amount-row{justify-content:space-between;align-items:center;gap:10px;display:flex}.amount-row .round-btn-lg{background:#ffffff0d;border:1px solid #ffffff1a;width:52px;height:52px}.amount-row .round-btn-lg:hover{background:#ffffff1a}.amount-display{text-align:center;flex:1;justify-content:center;align-items:baseline;gap:6px;display:flex}.amount-display input{text-align:right;color:#fff;letter-spacing:-.03em;background:0 0;border:0;outline:none;width:110px;padding:0;font:300 44px/1 Geist}.amount-unit{color:#fff6;text-align:left;width:70px;font:400 15px Geist Mono}.meal-chips{background:#ffffff0d;border:1px solid #ffffff12;border-radius:999px;grid-template-columns:repeat(3,minmax(0,1fr));gap:4px;padding:4px;display:grid}.meal-chips .chip{text-align:center;padding:10px 0}.commit-btn{color:#07080b;cursor:pointer;background:#f2f3f5;border:0;border-radius:999px;justify-content:center;align-items:center;gap:10px;height:56px;font:500 15px Geist;display:flex}.commit-btn:hover{background:#fff}.commit-kcal{color:#07080b80;font:400 14px Geist Mono}.scan-overlay{z-index:40;background:#050607;flex-direction:column;justify-content:center;align-items:center;animation:.25s fade;display:flex;position:fixed;inset:0}.scan-label{top:calc(env(safe-area-inset-top) + 24px);color:#fff6;letter-spacing:.08em;text-transform:uppercase;font:400 12px Geist Mono;position:absolute}.scan-frame{width:270px;height:170px;position:relative}.scan-corner{border:2px solid #fff;width:28px;height:28px;position:absolute}.scan-corner-tl{border-bottom:0;border-right:0;border-top-left-radius:16px;top:0;left:0}.scan-corner-tr{border-bottom:0;border-left:0;border-top-right-radius:16px;top:0;right:0}.scan-corner-bl{border-top:0;border-right:0;border-bottom-left-radius:16px;bottom:0;left:0}.scan-corner-br{border-top:0;border-left:0;border-bottom-right-radius:16px;bottom:0;right:0}.scan-line{background:var(--accent);border-radius:2px;height:2px;animation:1.8s ease-in-out infinite scan;position:absolute;left:14px;right:14px;box-shadow:0 0 18px 2px oklch(86% .13 165/.7)}.scan-hint{color:#ffffff8c;margin-top:34px;font:400 14px Geist}.cancel-btn{bottom:calc(env(safe-area-inset-bottom) + 40px);-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px);color:#fff;cursor:pointer;background:#ffffff14;border:1px solid #ffffff1f;border-radius:999px;height:52px;padding:0 28px;font:400 15px Geist;position:absolute}.cancel-btn:hover{background:#ffffff24}@keyframes rise{0%{opacity:0;transform:translateY(24px)}to{opacity:1;transform:none}}@keyframes fade{0%{opacity:0}to{opacity:1}}@keyframes scan{0%,to{top:8%}50%{top:88%}}@keyframes toast{0%{opacity:0;transform:translate(-50%,-8px)}12%,85%{opacity:1;transform:translate(-50%)}to{opacity:0}}.login{box-sizing:border-box;flex-direction:column;justify-content:center;gap:16px;min-height:100vh;padding:24px;display:flex}.login .editor-name{border-bottom:1px solid #ffffff1f;margin:0;padding:14px 0;font-size:22px}.login .primary-btn{flex:none;margin-top:8px}
