:root{--bg:#faf9fc;--card:#fff;--ink:#201b2b;--muted:#817b8e;--line:#e9e5ef;--accent:#7651ed;--soft:#f0ecff}html[data-theme=dark]{--bg:#201b2b;--card:#2a2438;--ink:#f8f5ff;--muted:#b8b0c3;--line:#41394f;--accent:#9b75ff;--soft:#393047}*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--ink);font:16px system-ui,sans-serif}main,.screen{max-width:560px;margin:auto;padding:18px 16px 100px}header,nav,.date-row{display:flex;justify-content:space-between;align-items:center}header h1{font-size:28px}.icon,button{border:0;border-radius:14px;background:var(--accent);color:#fff;padding:13px;font-weight:700;font-size:15px}.icon{width:42px;height:42px;padding:0;background:var(--soft);color:var(--accent);font-size:22px}.date-row{margin:22px}.date-arrow,.date-button{background:transparent;color:var(--ink);padding:0}.date-arrow{font-size:34px}.date-button{font-size:24px}.hero{display:grid;grid-template-columns:1fr 145px 1fr;gap:8px;text-align:center;padding:20px 8px;border-radius:28px;background:var(--card)}.side b{display:block;font-size:23px}.side span,.muted{color:var(--muted)}.ring{width:145px;height:145px;border:11px solid var(--soft);border-top-color:var(--accent);border-radius:50%;display:grid;place-content:center}.ring b{font-size:32px}.macros{grid-column:1/-1;display:grid;grid-template-columns:repeat(3,1fr);gap:7px}.macros b,.result span,.meal-item span{display:block;color:var(--muted);font-size:12px}.water{display:flex;justify-content:space-between;align-items:center;background:var(--soft);padding:13px 15px;border-radius:16px;margin:14px 0}.secondary{background:var(--soft);color:var(--accent)}.add-main{width:100%;margin:16px 0}.section-title{margin:26px 0 12px}#meals{display:grid;grid-template-columns:1fr 1fr;gap:12px}.meal-card{background:var(--card);padding:16px;border-radius:20px;min-height:128px;text-align:left;color:var(--ink)}.meal-card h2{font-size:19px;margin:0}.meal-card p{color:var(--muted);margin-top:22px}.screen{position:fixed;inset:0;z-index:10;overflow:auto;background:var(--bg)}nav{position:sticky;top:-18px;padding:18px 0 8px;background:var(--bg);z-index:2}nav:has([data-back]){justify-content:space-between}form{display:flex;gap:8px;margin:14px 0}form.stack{display:block;background:var(--card);padding:16px;border:1px solid var(--line);border-radius:20px}input,select{min-width:0;width:100%;border:1px solid var(--line);border-radius:12px;padding:12px;background:var(--card);color:var(--ink)}.stack input{margin:5px 0}.stack button{width:100%;margin-top:10px}.nutrients{display:grid;grid-template-columns:1fr 1fr;gap:8px}.result,.favorite,.dish-row{display:flex;align-items:center;gap:8px;padding:13px 0;border-bottom:1px solid var(--line)}.result>div,.favorite>button:first-child,.dish-row>button:first-child{flex:1;text-align:left;background:transparent;color:var(--ink);padding:0}.heart{background:transparent;color:var(--accent);font-size:23px;padding:6px}.summary,.card{padding:15px;background:var(--soft);border-radius:16px;margin:14px 0}.meal-item{display:block;width:100%;text-align:left;background:var(--card);color:var(--ink);margin:8px 0}.danger{background:#d84949}.choice-grid{display:grid;gap:12px;margin-top:24px}.choice-grid button{padding:22px;text-align:left;background:var(--card);color:var(--ink);border:1px solid var(--line)}.choice-grid b,.choice-grid span{display:block}.choice-grid b{font-size:20px}.choice-grid span{color:var(--muted);font-weight:400;margin-top:6px}.row{display:flex;justify-content:space-between;width:100%;background:var(--card);color:var(--ink);margin:12px 0}.card h3{margin-top:0}.card label{display:flex;justify-content:space-between;align-items:center;padding:12px 0;border-bottom:1px solid var(--line)}.card label:last-child{border:0}.card input{width:44px;height:24px;accent-color:var(--accent)}.card select{width:auto;padding:8px}#reader{margin:16px 0;overflow:hidden;border-radius:18px}@media(max-width:360px){.hero{grid-template-columns:1fr 125px 1fr}.ring{width:125px;height:125px}}
#calendar-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:8px;margin-top:20px}.weekday{text-align:center;color:var(--muted);font-size:12px}.day{aspect-ratio:1;padding:0;background:var(--card);color:var(--ink);border:1px solid var(--line);border-radius:50%}.day.marked{background:#d8f4df;color:#20753c;border-color:#8bd39f}.day.selected{outline:3px solid var(--accent);outline-offset:1px}
.header-actions,.periods,.inline{display:flex;gap:8px;align-items:center}.periods button{flex:1}.chart{background:var(--card);border:1px solid var(--line);border-radius:20px;padding:14px;margin:14px 0}.chart h3{margin:0 0 4px;font-size:16px}.chart-meta{color:var(--muted);font-size:13px}.bars{display:flex;align-items:end;gap:3px;height:130px;margin-top:12px}.bar-wrap{height:100%;flex:1;display:flex;align-items:end}.bar{width:100%;min-height:2px;border-radius:5px 5px 2px 2px;background:var(--accent)}.bar.empty{background:var(--line)}.bar-labels{display:flex;justify-content:space-between;color:var(--muted);font-size:11px;margin-top:5px}.inline input{flex:1}.inline button{white-space:nowrap}
.wide{width:100%;margin:8px 0}.stack label{display:block;margin:10px 0;color:var(--muted);font-size:13px}.stack label select{display:block;margin-top:5px}
textarea{width:100%;resize:vertical;border:1px solid var(--line);border-radius:12px;padding:12px;background:var(--card);color:var(--ink);font:inherit}
.onboarding{z-index:30;padding-top:32px}.onboarding form{display:block}.onboarding section{background:var(--card);border:1px solid var(--line);border-radius:22px;padding:20px;margin-top:22px}.onboarding h1,.onboarding h2{margin-top:0}.onboarding label{display:block;padding:12px 0;border-bottom:1px solid var(--line);color:var(--ink)}.onboarding label:last-of-type{border-bottom:0}.onboarding label select,.onboarding input:not([type=radio]):not([type=checkbox]){margin-top:7px}.onboarding input[type=radio],.onboarding input[type=checkbox]{width:auto}.onboarding-progress{display:flex;gap:6px}.onboarding-progress i{height:5px;background:var(--line);border-radius:99px;flex:1}.onboarding-progress i.active{background:var(--accent)}.onboarding-actions{display:flex;gap:8px;margin-top:16px}.onboarding-actions button{flex:1}.onboarding .safety{margin-top:12px;border:0;background:var(--soft);border-radius:12px;padding:12px}
.onboarding-goals .nutrients label{font-size:12px;color:var(--muted);border:0;padding:0}.onboarding-goals .nutrients input{color:var(--ink);font-size:16px}.stack label{font-size:13px;color:var(--muted)}.stack label input{display:block;margin-top:5px}
.water[hidden]{display:none!important}
.mode-empty{margin:26px 0;padding:24px;border:1px solid var(--line);border-radius:20px;background:var(--card)}.mode-empty p{color:var(--muted)}
