:root{
  --bg:#f4f4f0;--surface:#fff;--ink:#111;--muted:#73736e;--line:#deded8;--soft:#ecece7;
}
*{box-sizing:border-box} body{margin:0;background:var(--bg);color:var(--ink);font-family:-apple-system,BlinkMacSystemFont,"Helvetica Neue","Hiragino Sans","Yu Gothic",sans-serif}
button,input,textarea,select{font:inherit} button{cursor:pointer}.hidden{display:none!important}
.topbar{height:68px;position:sticky;top:0;z-index:20;display:flex;align-items:center;justify-content:space-between;padding:0 18px;background:rgba(244,244,240,.93);backdrop-filter:blur(14px);border-bottom:1px solid rgba(0,0,0,.07)}
.brand{display:flex;align-items:center;gap:10px;font-weight:800;font-size:13px;letter-spacing:.06em}.brand small{display:block;font-size:8px;color:var(--muted);letter-spacing:.2em;margin-top:2px}.mark{width:34px;height:34px;border-radius:50%;display:grid;place-items:center;background:#111;color:#fff}
.wrap{width:min(760px,100%);margin:auto;padding:28px 14px 80px}
.card{background:#fff;border:1px solid var(--line);border-radius:22px;padding:20px;box-shadow:0 9px 30px rgba(0,0,0,.05);margin-bottom:16px}
h1,h2,p{margin-top:0}h2{font-size:22px;letter-spacing:-.03em}.eyebrow{font-size:10px;letter-spacing:.18em;font-weight:800;color:var(--muted);margin:0 0 8px}.light{color:#aaa}
label{display:block;font-size:12px;font-weight:700;margin-bottom:14px}input,textarea,select{width:100%;border:1px solid var(--line);border-radius:14px;background:#fff;padding:13px 14px;margin-top:7px;outline:none}input:focus,textarea:focus,select:focus{border-color:#111;box-shadow:0 0 0 3px rgba(0,0,0,.05)}
.primary,.secondary{border:0;border-radius:999px;padding:13px 17px;font-weight:800}.primary{width:100%;background:#111;color:white}.secondary{background:var(--soft);border:1px solid var(--line);color:#111}.note{font-size:11px;color:var(--muted);line-height:1.6;margin:12px 0 0}.msg{margin-top:12px;padding:11px 12px;background:var(--soft);border-radius:12px;font-size:12px;line-height:1.6}.msg.error{background:#f5e7e7}.center{text-align:center;padding:46px 22px;margin-top:45px}

/* Auth v2 */
.authPage{max-width:540px;margin:0 auto;padding-top:22px}
.authIntro{text-align:center;padding:14px 8px 26px}
.authIntro h1{font-size:clamp(44px,12vw,72px);line-height:.95;letter-spacing:-.06em;margin:8px 0 14px}
.authIntro>p:last-child{font-size:14px;color:var(--muted);margin:0}
.authCard{background:#fff;border:1px solid var(--line);border-radius:26px;padding:7px 20px 22px;box-shadow:0 12px 36px rgba(0,0,0,.06)}
.authSwitch{display:grid;grid-template-columns:1fr 1fr;gap:4px;background:#ededE8;padding:4px;border-radius:999px;margin:12px 0 25px}
.authSwitchBtn{border:0;border-radius:999px;background:transparent;padding:12px 8px;font-size:13px;font-weight:800;color:var(--muted)}
.authSwitchBtn.active{background:#111;color:#fff;box-shadow:0 3px 10px rgba(0,0,0,.12)}
.authFormHead{margin-bottom:22px}
.authFormHead h2{font-size:28px;margin:0 0 8px}
.authFormHead>p:last-child{font-size:12px;color:var(--muted);line-height:1.7;margin:0}
.authForm .primary{margin-top:4px;padding:15px}
.authForm input{font-size:16px}

.tabs{display:grid;grid-template-columns:1fr 1fr;background:#e9e9e4;border-radius:999px;padding:4px;margin-bottom:18px}.tab{border:0;background:transparent;border-radius:999px;padding:11px;font-weight:800}.tab.active{background:white;box-shadow:0 2px 8px rgba(0,0,0,.08)}
.today{background:#111;color:#fff;border-radius:26px;padding:20px;margin-bottom:16px;display:flex;justify-content:space-between;gap:16px;align-items:end}.today h2{margin:0}.stats{display:grid;grid-template-columns:repeat(4,1fr);gap:12px}.stats div{display:flex;flex-direction:column}.stats b{font-size:18px}.stats small{font-size:9px;color:#aaa}
.mealtypes{display:grid;grid-template-columns:repeat(4,1fr);gap:6px;margin-bottom:14px}.mealtype{border:1px solid var(--line);background:#fff;border-radius:11px;padding:10px 2px;font-size:12px;font-weight:700}.mealtype.active{background:#111;color:#fff;border-color:#111}
.photo{height:220px;border:1px dashed #bbb;border-radius:18px;background:#f7f7f4;display:grid;place-items:center;overflow:hidden;position:relative;text-align:center}.photo input{display:none}.photo div{display:flex;flex-direction:column;gap:6px;color:var(--muted)}.photo b{color:#111}.photo img{width:100%;height:100%;object-fit:cover}
.macro{display:grid;grid-template-columns:repeat(4,1fr);gap:6px}.macro label{text-align:center;font-size:10px}.macro input{text-align:center;padding:11px 3px}
.trainerHead{display:flex;justify-content:space-between;align-items:end;margin:6px 2px 20px}.trainerHead h1{font-size:36px;letter-spacing:-.05em;margin:0}.summary{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin-bottom:16px}.summary>div{background:#111;color:#fff;border-radius:17px;padding:14px}.summary span{display:block;color:#aaa;font-size:10px;margin-bottom:7px}.summary b{font-size:27px}
.approvalRow{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:11px 0;border-bottom:1px solid var(--line)}.approvalRow:last-child{border-bottom:0}.approvalRow strong,.approvalRow small{display:block}.approvalRow small{color:var(--muted);margin-top:3px}
.toolbar{display:flex;gap:8px;margin:16px 0}.toolbar select{margin:0;flex:1}.feed{display:grid;gap:14px}.empty{padding:45px 20px;text-align:center;color:var(--muted);border:1px dashed var(--line);border-radius:20px}
.mealCard{background:#fff;border:1px solid var(--line);border-radius:22px;overflow:hidden;box-shadow:0 9px 30px rgba(0,0,0,.05)}.mealMeta{display:flex;justify-content:space-between;align-items:center;gap:10px;padding:14px}.mealMeta>div{display:flex;align-items:center;gap:8px}.badge{font-size:10px;background:var(--soft);padding:5px 8px;border-radius:999px;font-weight:800}.mealMeta time,.comment time{font-size:10px;color:var(--muted)}.mealImage{width:100%;max-height:480px;object-fit:cover;display:block}.mealNotes{padding:15px 15px 4px;font-size:14px;line-height:1.7}
.macroRow{display:grid;grid-template-columns:repeat(4,1fr);margin:12px 14px 14px;border:1px solid var(--line);border-radius:13px;overflow:hidden}.macroRow div{text-align:center;padding:9px 2px;border-right:1px solid var(--line)}.macroRow div:last-child{border-right:0}.macroRow span{display:block;color:var(--muted);font-size:9px}.macroRow b{font-size:14px}
.comments{border-top:1px solid var(--line);background:#fafaf8;padding:12px 14px 14px}.comment{background:#fff;border:1px solid var(--line);border-radius:11px;padding:9px 10px;margin-bottom:7px}.comment.trainerComment{border-color:#111}.comment>div{display:flex;justify-content:space-between}.comment strong{font-size:10px}.comment p{font-size:12px;line-height:1.5;margin:5px 0 0}.commentForm{display:flex;gap:6px}.commentForm input{margin:0;padding:10px 11px;font-size:12px}.commentForm button{border:0;background:#111;color:#fff;border-radius:11px;padding:0 13px;font-size:11px;font-weight:800}
#account{font-size:11px;font-weight:700}#account button{border:0;background:transparent;color:var(--muted);font-size:11px}.toast{position:fixed;bottom:24px;left:50%;transform:translateX(-50%);background:#111;color:#fff;border-radius:999px;padding:11px 16px;font-size:12px;font-weight:800;z-index:100;white-space:nowrap}
@media(max-width:520px){.wrap{padding-top:18px}.authPage{padding-top:8px}.authIntro{padding-bottom:20px}.authCard{padding-left:16px;padding-right:16px}.today{flex-direction:column;align-items:flex-start}.stats{width:100%}.trainerHead{align-items:flex-start}.card{padding:17px}.summary>div{padding:11px}.summary b{font-size:23px}}
