:root{--font-sans:-apple-system, "SF Pro Text", "Segoe UI", system-ui, "Helvetica Neue", Arial, sans-serif;--font-display:ui-rounded, -apple-system, "SF Pro Text", "Segoe UI", system-ui, "Helvetica Neue", Arial, sans-serif;--bg-0:#eaf4fb;--bg-1:#dceefa;--bg-2:#cde3f5;--glass-tint:255, 255, 255;--glass-a:.42;--glass-a-strong:.58;--card-bg:linear-gradient(155deg, rgba(var(--glass-tint), var(--glass-a-strong)) 0%, rgba(var(--glass-tint), var(--glass-a)) 55%, rgba(var(--glass-tint), .28) 100%);--card-border:#ffffff8c;--glass-highlight:#ffffffd9;--glass-shadow-edge:#083c501a;--text-0:#0b2436;--text-1:#345066;--text-2:#6b8598;--accent:#0ea5e9;--accent-2:#38bdf8;--accent-strong:#0284c7;--success:#16a34a;--danger:#dc2626;--warning:#d97706;--wave-a-top:#38bdf8;--wave-a-bottom:#0ea5e9;--wave-b-top:#7dd3fc;--wave-b-bottom:#0284c7;--shadow-soft:0 10px 34px #083c5024, inset 0 1px 0 #ffffffb3, inset 0 -10px 18px -14px #083c502e;--shadow-strong:0 20px 50px #083c503d, inset 0 1px 0 #fff9;--glass-blur:22px;--radius-lg:26px;--radius-md:18px;--radius-sm:12px;--space-1:4px;--space-2:8px;--space-3:12px;--space-4:16px;--space-5:24px;--space-6:32px;--text-2xs:.66rem;--text-xs:.74rem;--text-sm:.82rem;--text-base:.88rem;--text-md:.92rem;--text-lg:1.02rem;--text-xl:1.2rem;--text-2xl:1.55rem;--accent-b:#7c6ce8;--accent-b-strong:#5b4bd6;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}:root[data-theme=dark]{--bg-0:#071726;--bg-1:#0b2033;--bg-2:#0e2940;--glass-tint:255, 255, 255;--glass-a:.07;--glass-a-strong:.14;--card-bg:linear-gradient(155deg, rgba(var(--glass-tint), var(--glass-a-strong)) 0%, rgba(var(--glass-tint), var(--glass-a)) 55%, rgba(var(--glass-tint), .03) 100%);--card-border:#ffffff1f;--glass-highlight:#ffffff38;--text-0:#eaf6fb;--text-1:#b7d2e0;--text-2:#7d9bb0;--accent:#38bdf8;--accent-2:#7dd3fc;--accent-strong:#0ea5e9;--accent-b:#9c8ff2;--accent-b-strong:#7c6ce8;--shadow-soft:0 10px 34px #0006, inset 0 1px 0 #ffffff14, inset 0 -10px 18px -14px #00000080;--shadow-strong:0 20px 55px #0000008c, inset 0 1px 0 #ffffff14;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}@media (prefers-color-scheme:dark){:root:not([data-theme=light]){--bg-0:#071726;--bg-1:#0b2033;--bg-2:#0e2940;--glass-a:.07;--glass-a-strong:.14;--card-bg:linear-gradient(155deg, rgba(var(--glass-tint), var(--glass-a-strong)) 0%, rgba(var(--glass-tint), var(--glass-a)) 55%, rgba(var(--glass-tint), .03) 100%);--card-border:#ffffff1f;--glass-highlight:#ffffff38;--text-0:#eaf6fb;--text-1:#b7d2e0;--text-2:#7d9bb0;--accent:#38bdf8;--accent-2:#7dd3fc;--accent-strong:#0ea5e9;--accent-b:#9c8ff2;--accent-b-strong:#7c6ce8;--shadow-soft:0 10px 34px #0006, inset 0 1px 0 #ffffff14, inset 0 -10px 18px -14px #00000080;--shadow-strong:0 20px 55px #0000008c, inset 0 1px 0 #ffffff14;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}}*{box-sizing:border-box;-webkit-tap-highlight-color:transparent}html,body{height:100%}body{font-family:var(--font-sans);color:var(--text-0);background:radial-gradient(900px 600px at 8% -8%, var(--bg-2), transparent 60%), radial-gradient(800px 650px at 105% 8%, var(--bg-1), transparent 60%), radial-gradient(700px 500px at 50% 115%, var(--bg-2), transparent 60%), var(--bg-0);-webkit-font-smoothing:antialiased;background-attachment:fixed;min-height:100%;margin:0;overflow-x:hidden}h1,h2,h3{letter-spacing:-.01em;margin:0 0 12px}h1{font-family:var(--font-display);font-size:var(--text-2xl);letter-spacing:-.015em;color:var(--text-0);font-weight:700}h2{font-size:var(--text-lg);color:var(--text-1);font-weight:700}p{color:var(--text-1)}.icon-tile{color:var(--tile-color,var(--accent-strong));background:linear-gradient(155deg, color-mix(in srgb, var(--tile-color,var(--accent)) 32%, transparent) 0%, color-mix(in srgb, var(--tile-color,var(--accent)) 9%, transparent) 100%);border:1px solid color-mix(in srgb, var(--tile-color,var(--accent)) 40%, transparent);box-shadow:inset 0 1px 0 #ffffff8c, inset 0 -8px 12px -10px color-mix(in srgb, var(--tile-color,var(--accent)) 65%, transparent);flex-shrink:0;justify-content:center;align-items:center;display:inline-flex;position:relative;overflow:hidden}.icon-tile:after{content:"";border-radius:inherit;pointer-events:none;background:linear-gradient(160deg,#ffffff80,#0000 45%);position:absolute;inset:0}:root[data-theme=dark] .icon-tile{box-shadow:inset 0 1px 0 #ffffff24, inset 0 -8px 12px -10px color-mix(in srgb, var(--tile-color,var(--accent)) 45%, transparent)}@media (prefers-color-scheme:dark){:root:not([data-theme=light]) .icon-tile{box-shadow:inset 0 1px 0 #ffffff24, inset 0 -8px 12px -10px color-mix(in srgb, var(--tile-color,var(--accent)) 45%, transparent)}}button{cursor:pointer;-webkit-tap-highlight-color:transparent;font-family:inherit}input,select{font-family:inherit}a:focus-visible,button:focus-visible,input:focus-visible,select:focus-visible,[tabindex]:focus-visible{outline:2px solid var(--accent-strong);outline-offset:2px}.tab-btn:focus-visible,.fab:focus-visible,.icon-btn:focus-visible{outline-offset:-2px}.hidden{display:none!important}.app-shell{max-width:720px;padding:calc(12px + env(safe-area-inset-top)) 12px calc(166px + env(safe-area-inset-bottom));min-height:100vh;margin:0 auto;position:relative}.card,.tabbar,.streak-pill,.icon-btn,.secondary-btn,.danger-btn,.quick-add-btn,.category-chip,.volume-chip,.modal,.search-input,.form-card input,.form-card select{background:var(--card-bg);-webkit-backdrop-filter:blur(var(--glass-blur)) saturate(180%);border:1px solid var(--card-border)}.card,.tabbar,.streak-pill,.icon-btn,.modal{isolation:isolate;position:relative}.stat-card,.quick-add-btn{isolation:auto}.stat-card:before,.quick-add-btn:before{content:none}.card:before,.tabbar:before,.modal:before{content:"";border-radius:inherit;pointer-events:none;background:linear-gradient(160deg, var(--glass-highlight), transparent 35%, transparent 70%, #ffffff1f);-webkit-mask-composite:xor;z-index:1;padding:1px;position:absolute;inset:0;-webkit-mask-image:linear-gradient(#fff 0 0),linear-gradient(#fff 0 0);-webkit-mask-position:0 0,0 0;-webkit-mask-size:auto,auto;-webkit-mask-repeat:repeat,repeat;-webkit-mask-clip:content-box,border-box;-webkit-mask-origin:content-box,border-box;-webkit-mask-composite:xor;mask-composite:exclude;-webkit-mask-source-type:auto,auto;mask-mode:match-source,match-source}.card>*,.tabbar>*,.modal>*{z-index:2;position:relative}.topbar{justify-content:space-between;align-items:center;padding:6px 4px 18px;display:flex}.brand{align-items:center;gap:var(--space-2);display:flex}.brand-mark{filter:drop-shadow(0 2px 6px #0891b266);display:inline-flex}.brand-name{font-family:var(--font-display);letter-spacing:-.01em;background:linear-gradient(120deg, var(--accent-strong), var(--accent-2));color:#0000;-webkit-background-clip:text;background-clip:text;font-size:1.4rem;font-weight:700}.topbar-actions{align-items:center;gap:10px;display:flex}.streak-pill{font-weight:700;font-size:var(--text-base);box-shadow:var(--shadow-soft);color:#f59e0b;border-radius:999px;align-items:center;gap:5px;padding:6px 14px;display:inline-flex}.streak-pill svg{color:#f59e0b}.icon-btn{width:40px;height:40px;color:var(--text-1);box-shadow:var(--shadow-soft);border-radius:50%;justify-content:center;align-items:center;transition:transform .15s,box-shadow .15s;display:flex}.icon-btn:active{transform:scale(.9)}.tabbar{z-index:40;padding:8px 6px calc(8px + env(safe-area-inset-bottom));box-shadow:var(--shadow-strong);border-radius:28px;justify-content:space-around;display:flex;position:fixed;bottom:12px;left:12px;right:12px}.tab-btn{max-width:100px;color:var(--text-2);font-size:var(--text-2xs);background:0 0;border:none;border-radius:16px;flex-direction:column;flex:1;align-items:center;gap:3px;padding:7px 2px;font-weight:600;transition:color .2s,background .2s,transform .15s;display:flex}.tab-icon{transition:transform .2s;display:flex}.tab-btn.active .tab-icon{transform:translateY(-1px)scale(1.06)}.tab-btn.active{color:var(--accent-strong);background:linear-gradient(160deg,#ffffff8c,#0891b224);box-shadow:inset 0 1px #fff9,0 4px 12px #0891b22e}:root[data-theme=dark] .tab-btn.active{background:linear-gradient(160deg,#ffffff24,#22d3ee1f)}@media (prefers-color-scheme:dark){:root:not([data-theme=light]) .tab-btn.active{background:linear-gradient(160deg,#ffffff24,#22d3ee1f)}}.tab-btn:active{transform:scale(.93)}.views{padding-top:4px}.view{animation:.35s fadeUp;display:none}.view.active{display:block}@keyframes fadeUp{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:none}}.page-title-row{margin:4px 0 14px}.section-title-row{margin:var(--space-6) 0 var(--space-3)}.card{border-radius:var(--radius-lg);margin-bottom:var(--space-3);box-shadow:var(--shadow-soft);padding:14px}.card-title-row{justify-content:space-between;align-items:center;margin-bottom:10px;display:flex}.card-title-row h2{margin:0}.dash-greeting{font-family:var(--font-display);font-size:var(--text-xl);letter-spacing:-.01em;color:var(--text-0);margin:0 0 10px;font-weight:800}.reveal-in{animation:.5s cubic-bezier(.16,1,.3,1) backwards revealIn;animation-delay:calc(var(--stagger,0) * 70ms)}@keyframes revealIn{0%{opacity:0;transform:translateY(14px)}to{opacity:1;transform:none}}@media (prefers-reduced-motion:reduce){.reveal-in{animation:none}}.gauge-card{align-items:center;gap:var(--space-4);display:flex}.gauge-wrap{filter:drop-shadow(0 6px 16px #0891b240);flex-shrink:0;width:132px;height:132px;position:relative}.onboarding-gauge-wrap{width:108px;height:108px;margin:4px auto var(--space-4);filter:drop-shadow(0 6px 16px #0891b240)}.wave-gauge{width:100%;height:100%}.gauge-track{fill:#0891b20f}.gauge-ring{fill:none;stroke:var(--card-border);stroke-width:3px}.wave-group{transition:transform 1s cubic-bezier(.4,0,.2,1)}.wave{animation:6s linear infinite waveMove}.wave-back{opacity:.65;animation-duration:8s}.wave-front{animation-duration:5.5s;animation-direction:reverse}@keyframes waveMove{0%{transform:translate(0)}to{transform:translate(-200px)}}.gauge-readout{flex:1}.gauge-percent{font-family:var(--font-display);color:var(--accent-strong);font-size:2.1rem;font-weight:800;line-height:1}.gauge-sub{color:var(--text-2);font-size:var(--text-sm);margin-top:4px}.gauge-remaining{font-size:var(--text-2xs);color:var(--accent-strong);background:color-mix(in srgb, var(--accent) 16%, transparent);border-radius:999px;margin-top:8px;padding:3px 10px;font-weight:700;display:inline-block}.fab{right:20px;bottom:calc(88px + env(safe-area-inset-bottom));z-index:39;color:#fff;background:linear-gradient(135deg, var(--accent-2), var(--accent-strong));border:none;border-radius:50%;justify-content:center;align-items:center;width:58px;height:58px;transition:transform .15s,box-shadow .15s;display:flex;position:fixed;box-shadow:0 12px 28px #0891b273,inset 0 1px #fff6}.fab:active{transform:scale(.92)}@media (width>=760px){.fab{bottom:24px}}.coach-card{background:linear-gradient(120deg, #0891b229, #67e8f929), var(--card-bg);align-items:center;gap:14px;display:flex}.coach-avatar{--tile-color:var(--accent);border-radius:12px;width:40px;height:40px}.coach-message{color:var(--text-0);font-weight:600;font-size:var(--text-md);margin:0}.quick-add-grid{gap:var(--space-2);grid-template-columns:repeat(3,1fr);display:grid}.quick-add-btn{border-radius:var(--radius-md);color:var(--text-0);box-shadow:var(--shadow-soft);background:linear-gradient(155deg, color-mix(in srgb, var(--cat-color) 20%, var(--card-bg)) 0%, var(--card-bg) 65%);border-color:#0000;flex-direction:column;justify-content:center;align-items:center;gap:5px;width:100%;min-width:0;padding:10px 6px;transition:transform .15s,box-shadow .15s;display:flex}.quick-add-btn:active{transform:scale(.94)}.quick-add-btn:hover{box-shadow:var(--shadow-strong)}.quick-add-icon{--tile-color:var(--cat-color);border-radius:10px;width:34px;height:34px}.quick-add-label{font-size:var(--text-xs);white-space:nowrap;text-overflow:ellipsis;max-width:100%;font-weight:700;overflow:hidden}.quick-add-ml{font-size:var(--text-2xs);color:var(--text-2)}.stat-row{gap:var(--space-2);margin-bottom:var(--space-3);grid-template-columns:repeat(3,1fr);display:grid}.stat-row-4{grid-template-columns:repeat(2,1fr)}.stat-card{text-align:center;background:linear-gradient(160deg, color-mix(in srgb, var(--stat-color) 16%, var(--card-bg)) 0%, var(--card-bg) 70%);border-color:#0000;margin-bottom:0;padding:12px 6px}.stat-icon{--tile-color:var(--stat-color);border-radius:9px;width:30px;height:30px;margin:0 auto 6px}.stat-value{font-size:var(--text-xl);letter-spacing:-.01em;color:var(--stat-color,var(--accent-strong));font-weight:800}.stat-label{font-size:var(--text-2xs);color:var(--text-2);margin-top:2px;font-weight:600}.limit-meter{background:color-mix(in srgb, var(--text-2) 18%, transparent);border-radius:999px;height:5px;margin-top:8px;overflow:hidden}.limit-meter-fill{border-radius:999px;height:100%;transition:width .5s,background .3s}.limit-meter-fill.zone-safe{background:linear-gradient(90deg, var(--accent), var(--accent-strong))}.limit-meter-fill.zone-warn{background:linear-gradient(90deg, #f0b429, var(--warning))}.limit-meter-fill.zone-danger{background:linear-gradient(90deg, var(--warning), var(--danger))}.primary-btn{background:linear-gradient(120deg, var(--accent-strong), var(--accent-2));color:#fff;font-weight:700;font-size:var(--text-md);border:none;border-radius:999px;padding:12px 20px;transition:transform .15s,box-shadow .15s;position:relative;overflow:hidden;box-shadow:0 10px 24px #0891b266,inset 0 1px #fff6}.primary-btn:after{content:"";pointer-events:none;background:linear-gradient(160deg,#ffffff80,#0000 45%);position:absolute;inset:0}.primary-btn:active{transform:scale(.97)}.primary-btn.wide{width:100%}.secondary-btn{color:var(--accent-strong);font-weight:700;font-size:var(--text-base);box-shadow:var(--shadow-soft);background:color-mix(in srgb, var(--accent) 10%, var(--card-bg));border-color:color-mix(in srgb, var(--accent) 32%, var(--card-border));border-radius:999px;padding:10px 16px;transition:transform .15s,box-shadow .15s}.secondary-btn:active{transform:scale(.96)}.danger-btn{color:var(--danger);font-weight:700;font-size:var(--text-base);background:linear-gradient(155deg,#dc262629,#dc26260f);border:1px solid #dc26264d;border-radius:999px;padding:10px 16px;transition:transform .15s}.danger-btn:active{transform:scale(.96)}.link-btn{color:var(--accent-strong);font-weight:700;font-size:var(--text-base);padding:var(--space-1);background:0 0;border:none}.log-item{align-items:center;gap:var(--space-3);border-bottom:1px solid var(--card-border);padding:10px 0;display:flex}.log-item:last-child{border-bottom:none}.log-icon{--tile-color:var(--cat-color,var(--accent));border-radius:10px;width:34px;height:34px}.log-main{flex:1}.log-name{font-weight:700;font-size:var(--text-md)}.log-meta{font-size:var(--text-xs);color:var(--text-2)}.log-remove{color:var(--text-2);background:0 0;border:none;border-radius:50%;justify-content:center;align-items:center;margin:-14px;padding:14px;transition:background .15s,color .15s;display:flex}.log-remove:hover{color:var(--danger);background:color-mix(in srgb, var(--danger) 10%, transparent)}.empty-note{color:var(--text-2);font-size:var(--text-base);text-align:center;padding:10px 0}.history-day{margin-bottom:14px}.history-day-header{font-weight:700;font-size:var(--text-base);color:var(--text-1);justify-content:space-between;align-items:center;margin-bottom:6px;display:flex}.history-day-header .icon-tile{--tile-color:var(--success);border-radius:6px;width:20px;height:20px;margin-left:6px}.bar-chart{width:100%;height:auto}.bar{fill:var(--accent);opacity:.55}.bar-met{fill:var(--accent-strong);opacity:1}.bar-empty{fill:var(--text-2);opacity:.25}.bar-label{fill:var(--text-2);font-size:8px;font-weight:600}.goal-line{stroke:var(--warning);stroke-width:1.5px;stroke-dasharray:4 3}.donut-row{align-items:center;gap:20px;display:flex}.donut-chart{flex-shrink:0;width:130px;height:130px}.donut-empty{fill:none;stroke:var(--card-border);stroke-width:16px}.legend-col{gap:var(--space-2);flex-direction:column;flex:1;display:flex}.legend-row{align-items:center;gap:var(--space-2);font-size:var(--text-sm);display:flex}.legend-dot{--tile-color:var(--cat-color);border-radius:7px;flex-shrink:0;width:22px;height:22px}.legend-label{color:var(--text-1);flex:1;font-weight:600}.legend-value{color:var(--text-2);font-weight:700}.fasting-timer-card{text-align:center}.fasting-timer{font-family:var(--font-display);font-variant-numeric:tabular-nums;color:var(--accent-strong);font-size:2.8rem;font-weight:700;transition:opacity .2s,color .2s}.fasting-timer.idle{color:var(--text-2);opacity:.5}.fasting-status{color:var(--text-2);margin-bottom:var(--space-2);font-weight:700;font-size:var(--text-base)}.fasting-countdown{font-family:var(--font-display);font-size:var(--text-xl);color:var(--accent-strong);margin-bottom:4px;font-weight:800}.fasting-encouragement{font-size:var(--text-sm);color:var(--text-1);margin-bottom:var(--space-4);font-weight:600;line-height:1.4}.fasting-goal-block{margin:var(--space-4) 0 var(--space-4);padding-top:var(--space-4);border-top:1px dashed var(--card-border);text-align:left}.fasting-goal-label{font-size:var(--text-sm);color:var(--text-2);font-weight:700}.fast-slider{padding:22px 6px 28px}.fast-slider-track{background:#0891b21f;border-radius:999px;height:8px;margin:0 6px;position:relative;box-shadow:inset 0 1px 3px #083c501f}.fast-slider-fill{background:linear-gradient(90deg, var(--accent-strong), var(--accent-2));border-radius:999px;height:100%;transition:width .6s;position:absolute;top:0;left:0}.fast-slider-target{background:#f0b429;border-radius:2px;width:3px;height:18px;transition:left .3s;position:absolute;top:50%;transform:translate(-50%,-50%);box-shadow:0 0 0 3px #f0b42933}.fast-slider-tick{z-index:1;flex-direction:column;align-items:center;display:flex;position:absolute;top:50%;transform:translate(-50%,-50%)}.fast-slider-tick-dot{background:var(--bg-0);border:2px solid var(--card-border);border-radius:50%;width:10px;height:10px;transition:background .2s,border-color .2s,transform .2s;box-shadow:0 1px 2px #083c5026}.fast-slider-tick.reached .fast-slider-tick-dot{background:var(--accent-strong);border-color:var(--accent-strong);transform:scale(1.2)}.fast-slider-tick-label{color:var(--text-2);white-space:nowrap;font-size:.58rem;font-weight:700;position:absolute;top:15px}.fast-slider-tick.stagger-low .fast-slider-tick-label{top:27px}.fast-slider-tick.reached .fast-slider-tick-label{color:var(--accent-strong)}.fast-slider-caption{text-align:center;font-size:var(--text-sm);color:var(--text-2);margin-top:22px;font-weight:600}.fast-target-controls{align-items:center;gap:var(--space-2);display:flex}.fast-target-btn{background:color-mix(in srgb, var(--accent-strong) 14%, transparent);width:26px;height:26px;color:var(--accent-strong);border:none;border-radius:50%;justify-content:center;align-items:center;transition:opacity .2s,transform .15s;display:flex}.fast-target-btn:active{transform:scale(.9)}.fast-target-btn:disabled{opacity:.35}.fast-target-value{font-size:var(--text-sm);color:var(--text-1);text-align:center;min-width:58px;font-weight:700}.safety-avoid{border-left:4px solid var(--danger)}.safety-caution{border-left:4px solid var(--warning)}.safety-standard{border-left:4px solid var(--success)}.safety-title{margin-bottom:6px;font-weight:800}.safety-flag{font-size:var(--text-sm);color:var(--text-1);align-items:flex-start;gap:6px;margin:4px 0;display:flex}.safety-flag svg{color:var(--warning);flex-shrink:0;margin-top:1px}.safety-note{font-size:var(--text-sm);color:var(--text-1);margin:8px 0 0;line-height:1.5}.form-card label:not(.checkbox-row):not(.switch-row):not(.settings-row){font-size:var(--text-sm);color:var(--text-2);margin-bottom:var(--space-3);font-weight:700;display:block}.form-card input,.form-card select{border-radius:var(--radius-sm);width:100%;color:var(--text-0);font-size:var(--text-md);margin-top:5px;padding:11px 13px;transition:border-color .15s,box-shadow .15s;display:block;box-shadow:inset 0 1px 3px #083c5014}.form-card input:focus,.form-card select:focus{border-color:var(--accent-strong);box-shadow:inset 0 1px 3px #083c5014, 0 0 0 3px color-mix(in srgb, var(--accent) 25%, transparent);outline:none}.form-card select{appearance:none;cursor:pointer;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%236b8598' stroke-width='2.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='6 9 12 15 18 9'/%3E%3C/svg%3E");background-position:right 12px center;background-repeat:no-repeat;background-size:14px;padding-right:34px}.form-grid{grid-template-columns:1fr 1fr;gap:0 12px;display:grid}.settings-label{font-size:var(--text-sm);color:var(--text-2);margin:0 0 8px;font-weight:700}.settings-group{border-radius:var(--radius-md);background:var(--card-bg);-webkit-backdrop-filter:blur(var(--glass-blur)) saturate(180%);border:1px solid var(--card-border);box-shadow:var(--shadow-soft);margin-bottom:14px;overflow:hidden}.settings-row{justify-content:space-between;align-items:center;gap:var(--space-3);border-bottom:1px solid var(--card-border);cursor:pointer;padding:12px 14px;display:flex}.settings-row:last-child{border-bottom:none}.settings-row-label{font-size:var(--text-base);color:var(--text-0);flex-shrink:0;font-weight:600}.settings-row-control{color:var(--text-2);align-items:center;gap:2px;min-width:0;display:flex}.settings-row input,.settings-row select{color:var(--text-1);font-size:var(--text-base);text-align:right;appearance:none;width:auto;min-width:0;font-weight:500;box-shadow:none!important;background:0 0!important;border:none!important;margin:0!important;padding:0!important}.settings-row input[type=number],.settings-row input[type=text],.settings-row input[type=time]{max-width:110px}.settings-row input::placeholder{color:var(--text-2)}.settings-row input:focus-visible,.settings-row select:focus-visible{outline:2px solid var(--accent-strong);outline-offset:2px;border-radius:6px}.settings-row-control svg{color:var(--text-2);opacity:.7;flex-shrink:0}.row-inline-btn{background:color-mix(in srgb, var(--accent-strong) 14%, transparent);width:26px;height:26px;color:var(--accent-strong);border:none;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;margin-right:2px;transition:opacity .2s,transform .15s;display:flex}.row-inline-btn:active{transform:scale(.9)}.row-inline-btn:disabled{opacity:.45}.row-inline-btn svg{opacity:1;color:inherit}.icon-spin{animation:1s linear infinite iconSpin}@keyframes iconSpin{to{transform:rotate(360deg)}}@media (prefers-reduced-motion:reduce){.icon-spin{animation:none}}.settings-row-full{border-bottom:1px solid var(--card-border);padding:12px 14px;display:block}.settings-row-full:last-child{border-bottom:none}.settings-row-full .settings-row-label{margin-bottom:var(--space-2);display:block}.settings-row-full input{color:var(--text-0);font-size:var(--text-base);width:100%;font-weight:500;box-shadow:none!important;background:0 0!important;border:none!important;margin:0!important;padding:0!important}.settings-row-full input::placeholder{color:var(--text-2)}.chip-group{gap:var(--space-2);flex-wrap:wrap;display:flex}.choice-chip{font-size:var(--text-sm);color:var(--text-1);background:rgba(var(--glass-tint), calc(var(--glass-a) * .7));border:1px solid #0000;border-radius:999px;padding:8px 14px;font-weight:600;transition:background .2s,color .2s,transform .15s}.choice-chip:active{transform:scale(.96)}.choice-chip.active{background:linear-gradient(120deg, var(--accent-strong), var(--accent-2));color:#fff;box-shadow:0 4px 10px color-mix(in srgb, var(--accent) 35%, transparent)}.checkbox-row{color:var(--text-1);align-items:center;gap:10px;font-weight:600;display:flex}.checkbox-row input[type=checkbox]{appearance:none;border:1.5px solid var(--card-border);cursor:pointer;background:#ffffff59;border-radius:7px;flex-shrink:0;width:21px;height:21px;margin:0;transition:background .15s,border-color .15s;position:relative}:root[data-theme=dark] .checkbox-row input[type=checkbox]{background:#ffffff0f}.checkbox-row input[type=checkbox]:checked{background:linear-gradient(120deg, var(--accent-strong), var(--accent-2));border-color:var(--accent-strong)}.checkbox-row input[type=checkbox]:checked:after{content:"";border:2px solid #fff;border-width:0 2px 2px 0;width:5px;height:10px;position:absolute;top:3px;left:7px;transform:rotate(45deg)}.checkbox-row input[type=checkbox]:focus-visible{box-shadow:0 0 0 3px color-mix(in srgb, var(--accent) 30%, transparent);outline:none}.switch-row{font-size:var(--text-base);color:var(--text-0);justify-content:space-between;align-items:center;display:flex}.switch-row input[type=checkbox]{appearance:none;border:1px solid var(--card-border);cursor:pointer;background:#fff6;border-radius:999px;flex-shrink:0;width:46px;height:27px;transition:background .2s;position:relative}:root[data-theme=dark] .switch-row input[type=checkbox]{background:#ffffff14}.switch-row input[type=checkbox]:before{content:"";background:#fff;border-radius:50%;width:21px;height:21px;transition:transform .2s;position:absolute;top:2px;left:2px;box-shadow:0 1px 4px #0000004d}.switch-row input[type=checkbox]:checked{background:linear-gradient(120deg, var(--accent-strong), var(--accent-2));border-color:#0000}.switch-row input[type=checkbox]:checked:before{transform:translate(19px)}.switch-row input[type=checkbox]:focus-visible{box-shadow:0 0 0 3px color-mix(in srgb, var(--accent) 30%, transparent);outline:none}.disclaimer-text{font-size:var(--text-xs);color:var(--text-2);font-style:italic}.goal-result-box{border-radius:var(--radius-md);margin-bottom:var(--space-4);background:linear-gradient(155deg,#0891b224,#0891b20a);padding:14px}.goal-result-label{font-size:var(--text-xs);color:var(--text-2);font-weight:700}.goal-result-value{letter-spacing:-.01em;color:var(--accent-strong);margin:4px 0 10px;font-size:1.5rem;font-weight:800}.custom-goal-input{margin-top:8px}.notif-actions{flex-wrap:wrap;gap:10px;margin-top:6px;display:flex}.modal-backdrop{-webkit-backdrop-filter:blur(6px);z-index:100;background:#04142073;justify-content:center;align-items:flex-end;display:flex;position:fixed;inset:0}@media (width>=640px){.modal-backdrop{align-items:center}}.modal{width:100%;max-width:480px;max-height:88vh;box-shadow:var(--shadow-strong);background:linear-gradient(155deg, rgba(var(--glass-tint), calc(var(--glass-a-strong) + .28)) 0%, rgba(var(--glass-tint), var(--glass-a-strong)) 60%, rgba(var(--glass-tint), var(--glass-a)) 100%), var(--bg-0);border-radius:28px 28px 0 0;animation:.3s slideUp;overflow-y:auto}@media (width>=640px){.modal{border-radius:28px}}@keyframes slideUp{0%{opacity:0;transform:translateY(30px)}to{opacity:1;transform:none}}.modal-header{justify-content:space-between;align-items:center;padding:18px 18px 6px;display:flex}.modal-body{padding:8px 18px 22px;position:relative}.search-input{width:100%;margin-bottom:var(--space-3);font-size:var(--text-md);border-radius:999px;padding:12px 16px;box-shadow:inset 0 1px 3px #083c5014}.category-chip-row{gap:var(--space-2);margin-bottom:var(--space-2);padding-bottom:10px;display:flex;overflow-x:auto;-webkit-mask-image:linear-gradient(90deg,#000 calc(100% - 28px),#0000 100%);mask-image:linear-gradient(90deg,#000 calc(100% - 28px),#0000 100%)}.category-chip{font-size:var(--text-sm);color:var(--text-1);border-radius:999px;flex-shrink:0;align-items:center;gap:6px;padding:7px 14px;font-weight:700;transition:background .2s,color .2s;display:inline-flex}.category-chip svg{color:var(--cat-color,currentColor)}.category-chip.active{background:linear-gradient(120deg, var(--accent-strong), var(--accent-2));color:#fff;border-color:#0000}.category-chip.active svg{color:#fff}.drink-list{max-height:40vh;overflow-y:auto}.drink-row{align-items:center;gap:var(--space-3);border-bottom:1px solid var(--card-border);padding:10px 4px;display:flex}.drink-row:last-child{border-bottom:none}.drink-row-icon{--tile-color:var(--cat-color);border-radius:10px;width:32px;height:32px}.drink-row-main{flex:1}.drink-row-name{font-weight:700;font-size:var(--text-base)}.drink-row-meta{font-size:var(--text-xs);color:var(--text-2)}.drink-row-add{background:linear-gradient(120deg, var(--accent-strong), var(--accent-2));color:#fff;border:none;border-radius:50%;justify-content:center;align-items:center;width:30px;height:30px;display:flex;box-shadow:0 4px 10px #0891b259}.custom-drink-form{border-top:1px dashed var(--card-border);margin-top:10px;padding-top:10px}.volume-quick-row{gap:var(--space-2);flex-wrap:wrap;margin:12px 0;display:flex}.volume-chip{font-weight:700;font-size:var(--text-sm);border-radius:999px;padding:8px 14px;transition:background .2s,color .2s}.volume-chip.active{background:linear-gradient(120deg, var(--accent-strong), var(--accent-2));color:#fff;border-color:#0000}.back-btn{position:absolute;top:-2px;left:-4px}.toast-region{top:calc(14px + env(safe-area-inset-top));z-index:200;gap:var(--space-2);flex-direction:column;align-items:center;display:flex;position:fixed;left:50%;transform:translate(-50%)}.toast{background:var(--text-0);color:var(--bg-0);font-size:var(--text-base);box-shadow:var(--shadow-strong);border-radius:999px;padding:10px 18px;font-weight:700;animation:.25s toastIn}@keyframes toastIn{0%{opacity:0;transform:translateY(-10px)}to{opacity:1;transform:none}}@media (width>=760px){.app-shell{padding-bottom:104px}.tabbar{border-radius:999px;margin:0 0 20px;position:sticky;inset:12px auto auto}}.auth-screen{justify-content:center;align-items:center;min-height:100vh;padding:24px 16px;display:flex}.auth-card{width:100%;max-width:400px}.auth-brand{align-items:center;gap:var(--space-2);margin-bottom:var(--space-4);justify-content:flex-start;display:flex}.auth-toggle-row{text-align:left;margin-top:var(--space-4);font-size:var(--text-base);color:var(--text-2)}.auth-divider{align-items:center;gap:var(--space-2);margin:var(--space-4) 0 var(--space-3);color:var(--text-2);font-size:var(--text-sm);display:flex}.auth-divider:before,.auth-divider:after{content:"";background:color-mix(in srgb, var(--text-2) 35%, transparent);flex:1;height:1px}.auth-error{color:var(--danger);font-size:var(--text-sm);margin:var(--space-1) 0 var(--space-3);font-weight:600}.auth-oauth-row{gap:var(--space-2);flex-direction:column;display:flex}.auth-inline-link{margin-top:var(--space-3);display:block}.secondary-btn.wide{width:100%}.splash-screen{background:linear-gradient(160deg, var(--accent-strong), var(--accent));justify-content:center;align-items:center;min-height:100vh;display:flex}.splash-content{flex-direction:column;align-items:center;gap:14px;display:flex}.splash-drop{filter:drop-shadow(0 6px 16px #083c5059);line-height:1;animation:1.4s ease-in-out infinite splashBounce}.splash-brand{font-family:var(--font-display);letter-spacing:-.01em;color:#fff;text-shadow:0 2px 10px #083c5040;font-size:1.7rem;font-weight:700}@keyframes splashBounce{0%,to{transform:translateY(0)scale(1)}50%{transform:translateY(-10px)scale(1.06)}}@media (prefers-reduced-motion:reduce){.splash-drop{animation:none}}.hero-screen{justify-content:center;align-items:center;min-height:100vh;padding:24px 16px;display:flex;position:relative}.hero-content{text-align:center;flex-direction:column;align-items:center;gap:10px;width:100%;max-width:320px;display:flex}.hero-drop{filter:drop-shadow(0 6px 16px #0891b266);line-height:1}.hero-ripple{margin-bottom:var(--space-2);justify-content:center;align-items:center;display:inline-flex;position:relative}.hero-ripple:before,.hero-ripple:after{content:"";border:1.5px solid color-mix(in srgb, var(--accent) 45%, transparent);border-radius:50%;width:64px;height:64px;margin:auto;animation:3.2s ease-out infinite heroRipple;position:absolute;inset:0}.hero-ripple:after{animation-delay:1.6s}@keyframes heroRipple{0%{opacity:.6;transform:scale(.9)}to{opacity:0;transform:scale(2.2)}}@media (prefers-reduced-motion:reduce){.hero-ripple:before,.hero-ripple:after{opacity:0;animation:none}}.hero-title{font-family:var(--font-display);letter-spacing:-.01em;margin:0;font-size:2rem;font-weight:700}.hero-tagline{color:var(--text-1);margin:0 0 18px;font-size:1rem;line-height:1.5}.hero-actions{gap:var(--space-3);flex-direction:column;align-items:center;width:100%;display:flex}.theme-toggle-fixed{top:calc(16px + env(safe-area-inset-top));z-index:60;position:fixed;right:16px}
