 :root{--bg:#f6f2eb;--card:#fffdf9;--ink:#26251f;--muted:#777168;--line:#dfd8cd;--accent:#667052;--accent-soft:#e1e5d8;--warm:#eee5da;--danger:#a05e56}
*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--ink);font-family:ui-sans-serif,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif}button,input,select,textarea{font:inherit}button{min-height:44px}
.app{max-width:780px;margin:auto;padding:18px 16px 56px}.header,.panel-heading,.review-title{display:flex;justify-content:space-between;align-items:center;gap:12px}.brand-wrap{display:flex;align-items:center;gap:10px}.brand-logo{width:40px;height:40px;border-radius:10px;object-fit:contain}.brand{font:700 31px/1 Georgia,serif;letter-spacing:-1px}.tagline,.panel-heading p,.status,footer{font-size:13px;color:var(--muted)}
.panel,.summary-card{background:var(--card);border:1px solid var(--line);border-radius:18px}.panel{padding:16px;margin:12px 0}.panel h2{font-size:17px;margin:0 0 12px}.panel-heading h2{margin:0}.day-nav{display:grid;grid-template-columns:48px 1fr 48px;align-items:end;gap:8px;padding:10px 12px}.day-arrow{border:1px solid var(--line);border-radius:12px;background:transparent}.date-label{margin:0}.date-label span{display:block;font-size:12px;color:var(--muted);margin-bottom:5px}.date-label input{margin:0}
.hero{display:flex;justify-content:space-between;align-items:end;gap:18px;margin:24px 0 18px}.hero h1{font:700 34px/1.05 Georgia,serif;margin:4px 0 8px}.hero p{margin:0;color:var(--muted);max-width:510px;line-height:1.45}.eyebrow{font-size:12px;text-transform:uppercase;letter-spacing:.11em;color:var(--muted)}.goal-pill{background:var(--accent-soft);padding:12px 14px;border-radius:18px;white-space:nowrap}.goal-pill strong,.goal-pill span{display:block}.goal-pill span{font-size:12px;color:var(--muted);margin-top:2px}
.summary-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:8px}.summary-card{padding:12px}.summary-card span,.summary-card small{display:block;font-size:12px;color:var(--muted)}.summary-card strong{display:block;font-size:24px;margin:3px 0}
.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px}label{display:block;font-size:13px;color:var(--muted);margin:10px 0}input,select,textarea{width:100%;margin-top:6px;border:1px solid var(--line);border-radius:12px;background:#fff;padding:12px;color:var(--ink);font-size:16px}textarea{resize:vertical}
.primary,.secondary{border-radius:12px;padding:10px 14px;border:1px solid var(--line)}.primary{background:var(--accent);color:#fff;border-color:var(--accent);font-weight:700}.secondary{background:transparent;color:var(--ink)}.small{min-height:38px;padding:7px 10px}.full{width:100%;margin-top:10px}
.photo-box{min-height:90px;border:1px dashed var(--line);border-radius:16px;display:grid;place-items:center;background:var(--warm);text-align:center;padding:12px;cursor:pointer}.photo-box input{position:absolute;opacity:0;pointer-events:none}.photo-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin-top:10px}.photo-card{position:relative}.photo-card img{display:block;width:100%;aspect-ratio:1/1;object-fit:cover;border-radius:12px}.photo-remove{position:absolute;top:5px;right:5px;width:34px;height:34px;min-height:34px;border-radius:999px;border:0;background:rgba(0,0,0,.68);color:#fff}
.status{min-height:20px;margin:8px 2px}.review-panel{margin-top:14px;border-top:1px solid var(--line);padding-top:14px}.review-title h3{margin:3px 0 0;font-size:20px}.review-items{display:grid;gap:8px;margin:12px 0}.review-item{display:grid;grid-template-columns:1fr auto;gap:10px;border:1px solid var(--line);border-radius:12px;padding:10px}.review-item strong{display:block;font-size:14px}.review-item span{font-size:12px;color:var(--muted)}.totals-edit{background:var(--warm);border-radius:14px;padding:4px 10px}
.guidance-panel{background:#f1f3eb}.guidance-panel p{line-height:1.55;margin-bottom:8px}.balance-line{font-size:13px;color:var(--muted)}.entries{display:grid;gap:10px}.entry{display:grid;grid-template-columns:84px 1fr auto;gap:12px;align-items:start;border-top:1px solid var(--line);padding-top:12px}.entry:first-child{border-top:0;padding-top:0}.entry-thumb{display:grid;grid-template-columns:1fr 1fr;gap:3px}.entry-thumb img{width:100%;aspect-ratio:1/1;border-radius:8px;object-fit:cover}.entry h3{font-size:15px;margin:0 0 4px}.entry p{margin:4px 0;font-size:13px;color:var(--muted);line-height:1.45}.entry .numbers{color:var(--ink);font-weight:650}.remove{background:transparent;border:0;color:var(--danger);min-height:auto;padding:4px}
.week-view{display:grid;gap:7px}.week-row{width:100%;display:grid;grid-template-columns:1.4fr 1fr 1fr 1fr;gap:8px;align-items:center;border:0;border-top:1px solid var(--line);padding:10px 0;background:transparent;text-align:left;font-size:13px}.week-row:first-child{border-top:0}.week-row span{color:var(--muted)}.week-row.active{background:var(--accent-soft);padding:10px 8px;border-radius:10px;border-top-color:transparent}footer{padding:18px 4px;line-height:1.5}
@media(max-width:600px){.summary-grid{grid-template-columns:1fr 1fr}.form-grid{grid-template-columns:1fr}.hero{align-items:start;flex-direction:column}.hero h1{font-size:30px}.photo-grid{grid-template-columns:repeat(2,1fr)}.entry{grid-template-columns:66px 1fr auto}.week-row{grid-template-columns:1.4fr 1fr 1fr}.week-protein{display:none}}

.header-actions{display:flex;gap:8px;flex-wrap:wrap}
.auth-screen{min-height:70vh;display:grid;place-items:center;padding:28px 16px}
.auth-card{width:min(100%,460px);background:var(--card);border:1px solid var(--line);border-radius:22px;padding:20px}
.auth-brand{margin-bottom:18px}
.auth-card h1{font:700 30px/1.08 Georgia,serif;margin:8px 0}
.auth-copy,.privacy-note,.account-copy{color:var(--muted);line-height:1.5}
.privacy-note{font-size:12px;margin-top:14px}
.auth-tabs{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin:18px 0 6px}
.auth-tab{border:1px solid var(--line);background:transparent;border-radius:12px}
.auth-tab.active{background:var(--accent-soft);border-color:var(--accent)}
body.auth-mode .app{display:none}
body.auth-mode .auth-screen{display:grid}

.input-choice-grid{
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:10px;
  margin:14px 0 8px;
}
.input-choice-card{
  border:1px solid var(--line);
  border-radius:14px;
  padding:12px;
  background:var(--card);
  display:flex;
  gap:10px;
  align-items:flex-start;
}
.input-choice-card h3{
  margin:0 0 3px;
  font-size:14px;
}
.input-choice-card p{
  margin:0;
  color:var(--muted);
  font-size:12px;
  line-height:1.4;
}
.choice-number{
  width:28px;
  height:28px;
  border-radius:999px;
  background:var(--accent-soft);
  display:grid;
  place-items:center;
  font-weight:700;
  flex:0 0 auto;
}
.or-note{
  color:var(--muted);
  font-size:12px;
  text-align:center;
  margin:8px 0 14px;
}
.meal-input-block{
  border:1px solid var(--line);
  border-radius:16px;
  padding:12px;
  background:#fff;
}
.meal-input-label{
  display:flex;
  justify-content:space-between;
  align-items:center;
  gap:8px;
  margin-bottom:6px;
}
.meal-input-label strong{
  font-size:15px;
}
.meal-input-label span{
  font-size:12px;
  color:var(--muted);
}
.meal-input-divider{
  display:flex;
  align-items:center;
  justify-content:center;
  margin:12px 0;
  color:var(--muted);
  font-size:12px;
}
.meal-input-divider::before,
.meal-input-divider::after{
  content:"";
  height:1px;
  background:var(--line);
  flex:1;
}
.meal-input-divider span{
  padding:0 10px;
}
.ai-estimate-button{
  font-size:17px;
  padding:13px 16px;
}
.ai-helper{
  margin:8px 0 0;
  text-align:center;
  color:var(--muted);
  font-size:12px;
  line-height:1.45;
}
.review-instruction{
  margin:8px 0 12px;
  color:var(--muted);
  font-size:13px;
  line-height:1.45;
}
@media(max-width:600px){
  .input-choice-grid{grid-template-columns:1fr}
}

/* v1.6.1: explicit auth/app separation */
#authScreen{display:none}
#appMain{display:none}
body[data-auth-state="signed-out"] #authScreen{display:grid}
body[data-auth-state="signed-in"] #appMain{display:block}

/* Avoid showing both screens during auth transitions */
body[data-auth-state="loading"] #authScreen,
body[data-auth-state="loading"] #appMain{display:none}
