:root{--bg: #f5f7fa;--bg-accent: #eef1f6;--card: #ffffff;--ink: #101828;--ink-soft: #344054;--muted: #667085;--border: #e7eaf0;--border-strong: #d4d8e0;--brand: #16a34a;--brand-dark: #15803d;--brand-tint: #ecfdf5;--danger: #dc2626;--ring: rgba(22, 163, 74, .32);--radius: 14px;--radius-sm: 9px;--shadow-sm: 0 1px 2px rgba(16, 24, 40, .04), 0 1px 3px rgba(16, 24, 40, .06);--shadow-md: 0 4px 14px rgba(16, 24, 40, .07);--shadow-lg: 0 18px 40px rgba(16, 24, 40, .14);font-family:Inter,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica,Arial,sans-serif;font-feature-settings:"cv02","cv03","cv04","cv11"}*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--ink);line-height:1.5;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}h1{font-size:1.6rem;margin:0;font-weight:700;letter-spacing:-.02em}h3{margin:0;font-size:1rem;font-weight:650;letter-spacing:-.01em}a{color:var(--brand-dark);text-decoration:none}a:hover{text-decoration:underline}.muted{color:var(--muted)}.small{font-size:.85rem}.centered{display:flex;justify-content:center;padding:4rem;color:var(--muted)}button{background:var(--brand);color:#fff;border:1px solid transparent;border-radius:var(--radius-sm);padding:.6rem 1.05rem;font-size:.92rem;cursor:pointer;font-weight:600;font-family:inherit;letter-spacing:-.01em;box-shadow:var(--shadow-sm);transition:background .15s ease,box-shadow .15s ease,border-color .15s ease,transform .05s ease}button:hover{background:var(--brand-dark)}button:active{transform:translateY(.5px)}button:focus-visible{outline:none;box-shadow:0 0 0 3px var(--ring)}button:disabled{opacity:.55;cursor:not-allowed;box-shadow:none}button.secondary{background:var(--card);color:var(--ink-soft);border-color:var(--border-strong);box-shadow:var(--shadow-sm)}button.secondary:hover{background:var(--bg-accent)}button.link{background:none;color:var(--brand-dark);padding:0;font-weight:600;box-shadow:none;border:none}button.link:hover{text-decoration:underline}button.link.danger{color:var(--danger)}input,select,textarea{width:100%;padding:.6rem .7rem;border:1px solid var(--border-strong);border-radius:var(--radius-sm);font-size:.92rem;font-family:inherit;color:var(--ink);background:#fff;transition:border-color .15s ease,box-shadow .15s ease}input:focus,select:focus,textarea:focus{outline:none;border-color:var(--brand);box-shadow:0 0 0 3px var(--ring)}input::placeholder{color:#98a2b3}label{display:flex;flex-direction:column;gap:.35rem;font-size:.82rem;font-weight:600;color:var(--ink-soft)}.topbar{display:flex;align-items:center;gap:2rem;background:#ffffffd1;-webkit-backdrop-filter:saturate(180%) blur(12px);backdrop-filter:saturate(180%) blur(12px);border-bottom:1px solid var(--border);padding:.7rem 1.5rem;position:sticky;top:0;z-index:10}.brand{font-weight:750;font-size:1.15rem;letter-spacing:-.02em;color:var(--ink);text-decoration:none}.brand:hover{text-decoration:none;color:var(--brand-dark)}.brand-lg{font-size:1.35rem;color:var(--brand-dark)}.nav{display:flex;gap:.25rem;flex:1}.nav a{color:var(--muted);font-weight:600;font-size:.9rem;padding:.4rem .7rem;border-radius:8px;transition:background .15s ease,color .15s ease}.nav a:hover{color:var(--ink);background:var(--bg-accent);text-decoration:none}.nav a.active{color:var(--brand-dark);background:var(--brand-tint)}.user{display:flex;align-items:center;gap:.8rem;font-size:.85rem;color:var(--muted)}.avatar{border-radius:50%;object-fit:cover;display:inline-block;flex-shrink:0}.avatar-initials{display:inline-flex;align-items:center;justify-content:center;color:#fff;font-weight:700;line-height:1}.user-menu{position:relative}.avatar-btn{padding:0;background:none;border:none;border-radius:50%;cursor:pointer;line-height:0}.avatar-btn:focus-visible{outline:2px solid var(--brand);outline-offset:2px}.menu{position:absolute;top:calc(100% + 8px);right:0;min-width:220px;background:var(--card);border:1px solid var(--border);border-radius:12px;box-shadow:0 8px 24px #0000001f;padding:.4rem;z-index:20;display:flex;flex-direction:column}.menu-head{display:flex;align-items:center;gap:.6rem;padding:.5rem .6rem .6rem;border-bottom:1px solid var(--border);margin-bottom:.3rem}.menu-email{font-size:.85rem;color:var(--muted);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.menu-item{text-align:left;background:none;border:none;color:var(--ink);font-size:.9rem;font-weight:500;padding:.55rem .6rem;border-radius:8px;cursor:pointer}.menu-item:hover{background:#f3f4f6}.menu-item.danger{color:var(--danger)}.menu-sep{height:1px;background:var(--border);margin:.3rem 0}.avatar-section{display:flex;gap:1rem;align-items:flex-start}.avatar-controls{flex:1}.avatar-controls h3{margin-top:0}.content{max-width:960px;margin:0 auto;padding:1.5rem}.card{background:var(--card);border:1px solid var(--border);border-radius:var(--radius);padding:1.35rem;margin-bottom:1rem;box-shadow:var(--shadow-sm)}.page-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:1.25rem;gap:1rem}.page-head h1{letter-spacing:-.02em}.btn-link{background:var(--brand);color:#fff;padding:.55rem .95rem;border-radius:var(--radius-sm);font-weight:600;font-size:.92rem;box-shadow:var(--shadow-sm);transition:background .15s ease}.btn-link:hover{text-decoration:none;background:var(--brand-dark)}.auth-page{min-height:100vh;display:flex;align-items:center;justify-content:center;padding:1.5rem;background:radial-gradient(1100px 520px at 50% -10%,var(--brand-tint),transparent 60%),var(--bg)}.auth-card{width:100%;max-width:392px;display:flex;flex-direction:column;gap:.95rem;padding:2rem 1.75rem;box-shadow:var(--shadow-lg)}.auth-card h1{font-size:1.5rem}.auth-card.wide{max-width:560px}.auth-links{display:flex;justify-content:space-between;gap:1rem;flex-wrap:wrap;margin:0}.error{background:#fef2f2;color:var(--danger);padding:.6rem .8rem;border-radius:8px;font-size:.9rem}.warn{background:#fffbeb;color:#92400e;padding:.7rem .9rem;border-radius:8px;font-size:.88rem;display:flex;flex-direction:column;gap:.3rem}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:.9rem}.span2{grid-column:span 2}.row{display:flex;gap:.8rem}.target-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:.8rem}.stat{background:var(--bg);border-radius:10px;padding:.9rem;text-align:center}.stat.big{grid-column:span 3;background:#ecfdf5}.stat-val{font-size:1.3rem;font-weight:700}.stat.big .stat-val{font-size:2rem;color:var(--brand-dark)}.stat-label{font-size:.8rem;color:var(--muted)}.summary-card{display:flex;gap:2rem;align-items:center}.macros{flex:1;display:flex;flex-direction:column;gap:1rem}.macro-head{display:flex;justify-content:space-between;font-size:.9rem;font-weight:600;margin-bottom:.3rem}.bar{height:10px;background:var(--border);border-radius:6px;overflow:hidden}.bar-fill{height:100%;border-radius:6px;transition:width .3s}.ring-bg{stroke:var(--border)}.ring-fg{stroke:var(--brand);transition:stroke-dashoffset .4s}.ring-fg.over{stroke:var(--danger)}.ring-num{font-size:2rem;font-weight:700;fill:var(--ink)}.ring-sub{font-size:.9rem;fill:var(--muted)}.meal-grid{display:grid;grid-template-columns:1fr 1fr;gap:1rem}.meal-card{margin:0}.meal-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:.6rem}.entry-list{list-style:none;padding:0;margin:0 0 .6rem}.entry-list li{display:flex;justify-content:space-between;font-size:.9rem;padding:.25rem 0;border-bottom:1px solid var(--border)}.add-row{font-size:.88rem;font-weight:600}.search-bar{display:flex;gap:.6rem;margin-bottom:1rem}.results{display:flex;flex-direction:column;gap:.5rem;margin-bottom:1rem}.result{text-align:left;background:#fff;color:var(--ink);border:1px solid var(--border);font-weight:400;padding:.7rem .9rem}.result:hover{background:#f9fafb;border-color:var(--brand)}.result.selected{border-color:var(--brand);background:#ecfdf5}.result-name{font-weight:600}.add-panel{position:sticky;bottom:1rem;box-shadow:0 4px 20px #00000014}.add-grid{display:grid;grid-template-columns:1fr 1fr 1fr;gap:.8rem;margin:.8rem 0}.preview{margin-bottom:.8rem;font-size:.95rem}.success-inline{margin-left:.8rem;color:var(--brand-dark);font-weight:600}.burned{display:flex;align-items:flex-end;flex-wrap:wrap;gap:.8rem}.burned>span{align-self:center}.burned-input{font-size:.78rem}.burned-input input{width:auto;min-width:7rem}.burned-hint{flex-basis:100%;margin:.2rem 0 0}.totals-row{display:flex;justify-content:space-around;text-align:center}.tot-val{font-weight:700}.entry-table{width:100%;border-collapse:collapse;font-size:.9rem}.entry-table td{padding:.4rem .3rem;border-bottom:1px solid var(--border)}.entry-actions{display:flex;gap:.3rem;justify-content:flex-end;white-space:nowrap}.icon-btn{background:none;border:none;padding:.35rem;border-radius:6px;color:var(--muted);cursor:pointer;display:inline-flex;align-items:center;justify-content:center}.icon-btn:hover{background:var(--bg);color:var(--ink)}.icon-btn.danger:hover{background:#fef2f2;color:var(--danger)}.icon-btn:disabled{opacity:.5;cursor:not-allowed}.edit-row{display:flex;flex-wrap:wrap;align-items:flex-end;gap:.8rem;padding:.4rem 0}.edit-row label{font-size:.78rem}.edit-row select,.edit-row input{width:auto;min-width:8rem}.progress{display:flex;flex-direction:column;gap:1rem}.stat-row{display:flex;gap:1rem;justify-content:space-around;text-align:center}.stat{display:flex;flex-direction:column;gap:.25rem}.stat strong{font-size:1.4rem}.stat strong.down{color:var(--brand-dark)}.stat strong.up{color:var(--danger)}.weight-chart{width:100%;height:auto;display:block}.wc-grid{stroke:var(--border);stroke-width:1}.wc-axis{fill:var(--muted);font-size:11px}.wc-goal{stroke:var(--muted);stroke-width:1;stroke-dasharray:4 4}.wc-line{stroke:var(--brand);stroke-width:2.5;stroke-linejoin:round;stroke-linecap:round}.wc-dot{fill:var(--brand-dark)}.weight-form{display:flex;gap:1rem;align-items:flex-end;flex-wrap:wrap;margin:.5rem 0}.weight-form label{display:flex;flex-direction:column;gap:.25rem;font-size:.85rem;color:var(--muted)}.weight-list{list-style:none;padding:0;margin:.5rem 0 0}.weight-list li{display:grid;grid-template-columns:1fr auto auto;gap:1rem;align-items:center;padding:.5rem 0;border-top:1px solid var(--border)}.weight-list li:first-child{border-top:none}.history-page,.settings-page{display:flex;flex-direction:column;gap:1rem}.range-tabs{display:flex;gap:.25rem}.range-tab{background:var(--card);color:var(--muted);border:1px solid var(--border);padding:.3rem .7rem;font-size:.85rem}.range-tab.active{background:var(--brand);color:#fff;border-color:var(--brand)}.cal-chart{width:100%;height:auto;display:block}.cal-bar{fill:var(--brand)}.cal-bar.over{fill:#f59e0b}.cal-bar.empty{fill:var(--border)}.cal-target-dot{fill:var(--danger);stroke:var(--card);stroke-width:1.5}.legend-dot{display:inline-block;width:9px;height:9px;border-radius:50%;background:var(--danger);vertical-align:baseline}.myfoods-page{display:flex;flex-direction:column;gap:1rem}.head-actions{display:flex;gap:.5rem;align-items:center}.btn-link.secondary-link{background:#e5e7eb;color:var(--ink)}.btn-link.secondary-link:hover{background:#d1d5db}.food-row-main{display:flex;justify-content:space-between;align-items:flex-start;gap:1rem}.food-row-actions{display:flex;gap:.5rem;align-items:center;flex-shrink:0}.ftin{display:flex;gap:.4rem}.units-select{max-width:280px;margin-top:.5rem}.about-list{margin:.5rem 0 0;padding-left:1.1rem;line-height:1.6}.about-list li{margin-bottom:.25rem}.about-sub{margin:1.1rem 0 .4rem;font-size:.9rem;font-weight:650;letter-spacing:-.01em}.about-formula{font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:.82rem;background:var(--bg-accent);border:1px solid var(--border);border-radius:var(--radius-sm);padding:.65rem .85rem;line-height:1.8;color:var(--ink-soft);overflow-x:auto}.about-table{border-collapse:collapse;width:100%;font-size:.88rem;margin:.25rem 0}.about-table td{padding:.4rem .5rem;border-bottom:1px solid var(--border);color:var(--muted)}.about-table tr:last-child td{border-bottom:none}.about-table td:last-child{text-align:right;font-weight:600;color:var(--ink-soft);width:4.5rem;font-variant-numeric:tabular-nums}.source-list{margin:.5rem 0 0;padding-left:1.1rem;line-height:1.55}.source-list li{margin-bottom:.55rem}.calibration .stat-row{margin:.75rem 0}.cal-msg{margin:0;padding:.6rem .8rem;border-radius:8px;background:#fffbeb;color:#92400e;font-size:.9rem}.cal-msg.good{background:#ecfdf5;color:var(--brand-dark)}[data-theme=dark] .cal-msg{background:#2a2410;color:#fcd34d}[data-theme=dark] .cal-msg.good{background:#0f2a1c}.logo{display:inline-flex;align-items:center;gap:.5rem}.logo-mark{flex-shrink:0;border-radius:9px;box-shadow:var(--shadow-sm)}.logo-word{font-weight:750;letter-spacing:-.03em;color:inherit}.page-skeleton{display:flex;flex-direction:column;gap:1rem}.skeleton-card{display:flex;flex-direction:column;gap:.75rem}.skeleton{background:linear-gradient(100deg,var(--bg-accent) 30%,rgba(255,255,255,.55) 50%,var(--bg-accent) 70%);background-size:200% 100%;animation:skeleton-shimmer 1.3s ease-in-out infinite}[data-theme=dark] .skeleton{background:linear-gradient(100deg,#1c2330 30%,#283246,#1c2330 70%);background-size:200% 100%}@keyframes skeleton-shimmer{0%{background-position:200% 0}to{background-position:-200% 0}}.empty-state{display:flex;flex-direction:column;align-items:center;text-align:center;gap:.5rem;padding:2.5rem 1.5rem}.empty-icon{width:52px;height:52px;display:flex;align-items:center;justify-content:center;border-radius:14px;background:var(--brand-tint);color:var(--brand-dark);font-size:1.5rem;margin-bottom:.25rem}.empty-title{font-size:1.05rem}.empty-text{max-width:30rem;margin:0;font-size:.92rem}.empty-action{margin-top:.75rem}.meals-page{display:flex;flex-direction:column;gap:1rem}.meal-card-head{display:flex;justify-content:space-between;align-items:baseline;gap:1rem;margin-bottom:.5rem}.meal-items{margin:0 0 .75rem;padding-left:1.1rem}.meal-card-actions{display:flex;gap:.5rem;align-items:center;flex-wrap:wrap}.meal-card-actions select{width:auto}.meal-editor{display:flex;flex-direction:column;gap:.75rem}.meal-editor>label{display:flex;flex-direction:column;gap:.25rem;font-size:.85rem;color:var(--muted)}.meal-edit-table select,.meal-edit-table input{width:auto}.qty-input{width:5rem}.meal-search{display:flex;gap:.5rem}.meal-quick-main{cursor:default}.hydration-page{display:flex;flex-direction:column;gap:1rem}.water-total{font-size:1.6rem;margin-bottom:.6rem}.bar-fill.water{background:#3b82f6}.quick-water{display:flex;gap:.5rem;flex-wrap:wrap;margin:.5rem 0 .8rem}.water-form{display:flex;gap:1rem;align-items:flex-end;flex-wrap:wrap}.water-form label{display:flex;flex-direction:column;gap:.25rem;font-size:.85rem;color:var(--muted)}.water-list{list-style:none;padding:0;margin:.5rem 0 0}.water-list li{display:grid;grid-template-columns:1fr auto auto;gap:1rem;align-items:center;padding:.5rem 0;border-top:1px solid var(--border)}.water-list li:first-child{border-top:none}.recent{margin-bottom:1rem}.recent-title{margin-bottom:.5rem}.recent-row{display:flex;align-items:stretch;padding:0;overflow:hidden}.recent-main{flex:1;text-align:left;background:none;border:none;color:inherit;font:inherit;padding:.7rem .9rem;cursor:pointer}.quick-add{width:48px;flex-shrink:0;background:none;border:none;border-left:1px solid var(--border);color:var(--brand-dark);font-size:1.4rem;line-height:1;cursor:pointer}.quick-add:hover{background:#ecfdf5}.quick-add:disabled{color:var(--muted);cursor:default}[data-theme=dark]{--bg: #0d1117;--bg-accent: #1b2230;--card: #161b24;--ink: #e8ebf0;--ink-soft: #c2c8d4;--muted: #95a0b3;--border: #262d3a;--border-strong: #333c4d;--brand: #22c55e;--brand-dark: #4ade80;--brand-tint: #15291d;--danger: #f87171;--ring: rgba(34, 197, 94, .35);--shadow-sm: 0 1px 2px rgba(0, 0, 0, .3);--shadow-md: 0 4px 14px rgba(0, 0, 0, .4);--shadow-lg: 0 18px 40px rgba(0, 0, 0, .55)}[data-theme=dark] input,[data-theme=dark] select,[data-theme=dark] textarea{background:#0f141d;color:var(--ink)}[data-theme=dark] label{color:var(--ink-soft)}[data-theme=dark] .topbar{background:#161b24d9}[data-theme=dark] .error{background:#2a1416;color:#fca5a5}[data-theme=dark] .warn{background:#2a2410;color:#fcd34d}[data-theme=dark] .menu{box-shadow:var(--shadow-lg)}[data-theme=dark] button.secondary,[data-theme=dark] .btn-link.secondary-link{background:#2b3240;color:var(--ink)}[data-theme=dark] .btn-link.secondary-link:hover{background:#374151}[data-theme=dark] .menu-item:hover{background:#232a36}[data-theme=dark] .result,[data-theme=dark] .range-tab{background:var(--card)}[data-theme=dark] .result:hover,[data-theme=dark] .result.selected,[data-theme=dark] .quick-add:hover{background:#232a36}@media(max-width:640px){.summary-card,.meal-grid,.form-grid,.add-grid,.target-grid{grid-template-columns:1fr;flex-direction:column}.nav{gap:.8rem}}
