:root{--ro-dark:#1e2b1a;--ro-green:#3d6b2b;--ro-leaf:#6aa84f;--ro-mint:#eef5ea;--ro-mint-2:#d9ead3;--ro-slate:#50808e;--ro-orange:#ed561b;--ro-amber:#f2b134;--bg:var(--ro-mint);--surface:#fff;--text:var(--ro-dark);--muted:#55634f;--line:#d3dfcd;--accent:var(--ro-green);--accent-text:#fff;--accent-soft:var(--ro-mint-2);--warn-bg:#fdf0d2;--warn-text:#5c4300;--error-bg:#fde3d8;--error-text:#7a2508;--ok-bg:var(--ro-mint-2);--ok-text:#24451a;--danger:#b23a0e;--food:var(--ro-amber);--sleep:var(--ro-slate);--move:var(--ro-leaf);--radius:14px;--shadow:0 1px 2px #1e2b1a0f, 0 2px 8px #1e2b1a0f;--tabbar-h:64px;color:var(--text);background:var(--bg);-webkit-text-size-adjust:100%;font-family:system-ui,-apple-system,Segoe UI,Roboto,sans-serif;line-height:1.5}@media (prefers-color-scheme:dark){:root{--bg:#141c12;--surface:var(--ro-dark);--text:var(--ro-mint);--muted:#a9b8a3;--line:#34452e;--accent:var(--ro-leaf);--accent-text:#10180d;--accent-soft:#2a3a24;--warn-bg:#3a3014;--warn-text:#f3dd9b;--error-bg:#42200f;--error-text:#f6c2ab;--ok-bg:#24361e;--ok-text:#cfe6c4;--danger:#f08a62;--sleep:#8fb3bd;--shadow:none}}*{box-sizing:border-box}body{background:var(--bg);-webkit-tap-highlight-color:transparent;margin:0}img{display:block}.icon{flex:none;width:22px;height:22px}h1{margin:.5rem 0 1rem;font-size:1.4rem}h2{margin:1.5rem 0 .5rem;font-size:1.1rem}.card h2{margin-top:0}button,input,select,textarea{font:inherit;color:inherit}button{touch-action:manipulation;border:1px solid var(--line);border-radius:var(--radius);background:var(--surface);cursor:pointer;min-height:44px;padding:.5rem 1rem}button:disabled{opacity:.5;cursor:not-allowed}button.primary{background:var(--accent);color:var(--accent-text);border-color:var(--accent);border-radius:999px;padding-inline:1.25rem;font-weight:600}button.danger{background:var(--danger);color:#fff;border-color:var(--danger)}button.link{min-height:32px;color:var(--accent);background:0 0;border:none;padding:.25rem 0;text-decoration:underline}button.link.danger{color:var(--danger)}input,select,textarea{border:1px solid var(--line);background:var(--surface);border-radius:8px;max-width:100%;min-height:44px;padding:.5rem .75rem}textarea{width:100%;min-height:80px}:focus-visible{outline:3px solid var(--accent);outline-offset:2px}.app{min-height:100dvh;padding-bottom:calc(var(--tabbar-h) + env(safe-area-inset-bottom) + 1rem)}.topbar{z-index:10;padding:calc(.5rem + env(safe-area-inset-top)) max(1rem, env(safe-area-inset-right)) .5rem max(1rem, env(safe-area-inset-left));background:var(--surface);border-bottom:1px solid var(--line);align-items:center;gap:.75rem;display:flex;position:sticky;top:0}.brand{letter-spacing:.01em;color:var(--text);flex:1;align-items:center;gap:.5rem;font-weight:700;display:flex}.brand img{width:30px;height:auto}.page{max-width:40rem;padding:1rem max(1rem, env(safe-area-inset-left));margin:0 auto}.tabs{z-index:10;padding-bottom:env(safe-area-inset-bottom);background:var(--surface);border-top:1px solid var(--line);grid-template-columns:repeat(3,1fr);display:grid;position:fixed;bottom:0;left:0;right:0}.tabs button{min-height:var(--tabbar-h);color:var(--muted);background:0 0;border:none;border-radius:0;flex-direction:column;justify-content:flex-end;align-items:center;gap:2px;padding:0 0 10px;font-size:.8rem;font-weight:600;display:flex}.tabs button[aria-current=true],.tabs .tab-add{color:var(--accent)}.tab-add-circle{background:var(--accent);width:52px;height:52px;color:var(--accent-text);border:4px solid var(--surface);border-radius:50%;place-items:center;margin-top:-22px;display:grid;box-shadow:0 4px 12px #1e2b1a40}.tab-add-circle .icon{stroke-width:2.5px;width:26px;height:26px}@media (width>=48rem){.tabs{border:1px solid var(--line);border-radius:var(--radius) var(--radius) 0 0;border-bottom:none;width:40rem;left:50%;right:auto;transform:translate(-50%)}}.card{text-align:left;background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);width:100%;box-shadow:var(--shadow);margin-bottom:.5rem;padding:.75rem 1rem;display:block}.card.excluded{opacity:.6}li.card{flex-wrap:wrap;align-items:center;column-gap:.4rem;display:flex}li.card>button.link{margin-left:auto}li.card.row-editor{display:block}.list,.plain,.results,.sources{margin:0;padding:0;list-style:none}.sources li{color:var(--muted);font-size:.9rem}.meal{gap:.25rem;display:grid}.meal-head{align-items:center;gap:.5rem;display:flex}.meal-foods{text-overflow:ellipsis;overflow:hidden}.badge{background:var(--bg);border:1px solid var(--line);border-radius:999px;margin-left:.5rem;padding:0 .5rem;font-size:.8rem;display:inline-block}.badge.warn{background:var(--warn-bg);color:var(--warn-text)}.muted{color:var(--muted)}.small{font-size:.875rem}.lead{font-size:1.1rem}.nutrients{flex-wrap:wrap;gap:.25rem 1rem;display:flex}.banner{border-radius:var(--radius);margin:.5rem 0;padding:.75rem 1rem}ul.banner{padding-left:2rem}.banner.warn{background:var(--warn-bg);color:var(--warn-text)}.banner.error{background:var(--error-bg);color:var(--error-text)}.banner.ok{background:var(--ok-bg);color:var(--ok-text)}.daynav{grid-template-columns:44px 1fr 44px;align-items:center;gap:.5rem;display:grid}.daynav button{color:var(--accent);border-radius:50%;place-items:center;padding:0;display:grid}.section-title{align-items:center;gap:.5rem;display:flex}.section-title .icon{background:var(--accent-soft);width:32px;height:32px;color:var(--accent);border-radius:10px;padding:6px}.section-title .icon.food{color:#8a5a00;background:#fbecc8}.section-title .icon.sleep{color:#2f5560;background:#dbe8ec}@media (prefers-color-scheme:dark){.section-title .icon.food{color:var(--ro-amber);background:#3a3014}.section-title .icon.sleep{color:var(--sleep);background:#22333a}}.daynav h1{text-align:center;margin:0}.daynav h1:first-letter{text-transform:uppercase}.row{flex-wrap:wrap;align-items:center;gap:.5rem;display:flex}.fields{gap:.35rem;margin:.75rem 0;display:grid}.fields>label,fieldset legend{margin-top:.5rem;font-weight:600}.check{align-items:center;gap:.35rem;display:inline-flex}.check input{min-height:auto}.seg{border:none;flex-wrap:wrap;gap:.5rem;margin:.5rem 0;padding:0;display:flex}.seg label{border:1px solid var(--line);border-radius:var(--radius);background:var(--surface);align-items:center;gap:.35rem;min-height:44px;padding:.25rem .75rem;display:inline-flex}.seg label.on{border-color:var(--accent);box-shadow:inset 0 0 0 1px var(--accent)}.seg input{min-height:auto}.row-head{flex-wrap:wrap;align-items:center;display:flex}.alternatives{flex-wrap:wrap;align-items:center;gap:.35rem;margin-top:.35rem;display:flex}.chip{border-radius:999px;min-height:36px;padding:.25rem .75rem;font-size:.9rem}.search{gap:.5rem;display:grid}.results button{text-align:left;border-width:0 0 1px;border-radius:0;justify-content:space-between;gap:1rem;width:100%;display:flex}.choices{gap:.75rem;display:grid}.choice{border:1px solid var(--line);border-radius:var(--radius);background:var(--surface);cursor:pointer;text-align:left;gap:.25rem;padding:1rem;display:grid}.choice input[type=file]{opacity:0;width:1px;height:1px;position:absolute}.choice:focus-within{outline:3px solid var(--accent)}.choice.small{color:var(--accent);margin:.5rem 0;padding:.75rem 1rem}.actions{margin:1rem 0 .5rem}table.nutrition{border-collapse:collapse;width:100%;margin:.5rem 0}table.nutrition caption{text-align:left;color:var(--muted)}table.nutrition th,table.nutrition td{border-bottom:1px solid var(--line);text-align:left;padding:.25rem 0;font-weight:400}table.nutrition td{text-align:right}.danger-zone{border-color:var(--danger)}.danger-zone input{margin:.25rem 0 .75rem;display:block}.signin{min-height:100dvh;padding:calc(2rem + env(safe-area-inset-top)) 1.5rem calc(2rem + env(safe-area-inset-bottom));text-align:center;background:radial-gradient(120% 80% at 50% 0%, var(--ro-green) 0%, var(--ro-dark) 70%);color:var(--ro-mint);flex-direction:column;justify-content:center;align-items:center;gap:1rem;display:flex}.signin-logo{margin:0}.signin-logo img{width:min(55vw,220px);height:auto}.signin .lead{max-width:22rem;color:var(--ro-mint-2);margin:0 0 1rem}.signin button.primary{background:var(--ro-leaf);border-color:var(--ro-leaf);color:#10180d;min-height:52px}.signin .card{max-width:24rem;color:var(--ro-mint);text-align:center;background:#ffffff14;border-color:#ffffff2e}.signin .card .muted{color:var(--ro-mint-2)}.signin .row{justify-content:center}.signin .banner.error{max-width:24rem}
