@import url('https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;500;600;700&family=Noto+Sans+TC:wght@400;500;600;700;800&display=swap');
:root{--bg:#f6f7f3;--paper:#fff;--ink:#232a24;--muted:#8a9189;--line:#e9ece6;--green:#547b5e;--deep:#315a3c;--soft:#eaf1e9;--lime:#cadba7;--orange:#de986e;--pink:#c78c94;--shadow:0 10px 30px rgba(32,52,36,.045);font-family:'DM Sans','Noto Sans TC',sans-serif;color:var(--ink);background:var(--bg);font-synthesis:none}*{box-sizing:border-box}body{margin:0;min-width:320px;background:var(--bg)}button,input,select{font:inherit}button{cursor:pointer}.app-shell{max-width:1140px;margin:auto;min-height:100vh;padding:0 48px 70px}.topbar{height:82px;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid var(--line)}.brand{display:flex;gap:10px;align-items:center;color:var(--ink);text-decoration:none;font-size:9px;line-height:1.2;letter-spacing:1.3px}.brand b{font-size:11px;letter-spacing:2px}.brand-mark{width:33px;height:33px;border-radius:11px;background:var(--deep);display:flex;align-items:center;justify-content:center;gap:2px;transform:rotate(-8deg)}.brand-mark span{display:block;width:3px;border-radius:3px;background:#dbe8cc;transform:rotate(8deg)}.brand-mark span:nth-child(1){height:11px}.brand-mark span:nth-child(2){height:17px}.brand-mark span:nth-child(3){height:13px}.top-actions{display:flex;gap:12px;align-items:center}.icon-btn,.avatar{width:37px;height:37px;border:1px solid var(--line);border-radius:50%;background:var(--paper);color:var(--green);font-size:18px}.avatar{background:#dce6d6;border:0;font-size:13px;font-weight:700}.welcome{padding:42px 0 29px;display:flex;align-items:end;justify-content:space-between}.eyebrow{font:700 9px 'DM Sans',sans-serif;letter-spacing:1.75px;color:var(--green);display:flex;gap:8px;align-items:center}.live-dot{height:7px;width:7px;background:#88ab72;border-radius:50%;box-shadow:0 0 0 3px #e4ecdf}h1,h2,h3,p{margin:0}h1{font-size:clamp(31px,4.4vw,46px);line-height:1.35;letter-spacing:-1.3px;margin:11px 0 9px;font-weight:700}h1 em{font-style:normal;color:var(--green)}.subtle,.label{font-size:12px;color:var(--muted)}.date-chip{padding:9px 14px;border-radius:20px;border:1px solid var(--line);background:var(--paper);color:#616961;font-size:11px;margin-bottom:4px}.date-chip span{margin-right:5px;color:var(--green)}.summary-grid{display:grid;grid-template-columns:1fr 1fr;gap:17px}.card{background:var(--paper);border:1px solid #edf0e9;border-radius:19px;box-shadow:var(--shadow)}.weight-card,.fat-card{padding:20px 22px 14px;min-height:187px;position:relative;overflow:hidden}.card-head,.card-foot{display:flex;align-items:center;justify-content:space-between}.mini-icon{height:28px;width:28px;border-radius:9px;background:#f1f5ef;color:var(--green);display:grid;place-items:center;font-size:15px}.metric-line{display:flex;align-items:baseline;gap:5px;margin:12px 0 2px}.metric-line strong{font-size:38px;letter-spacing:-1.4px;font-weight:600}.metric-line>span{font-size:13px;color:var(--muted)}.delta{font-size:10px;color:var(--green)}.sparkline{position:absolute;width:114px;height:45px;right:21px;top:75px;opacity:.88}.sparkline svg{width:100%;height:100%;overflow:visible}.card-foot{position:absolute;bottom:15px;left:22px;right:22px;color:var(--muted);font-size:10px}.card-foot b{color:#5d655e;font-weight:500}.text-button,.select-link{border:0;background:transparent;color:var(--green);font-size:11px;font-weight:600;padding:4px}.fat-progress{margin-top:18px;height:5px;width:65%;border-radius:5px;background:#edf0eb}.fat-progress span{display:block;height:100%;width:50%;background:var(--green);border-radius:5px}.section-block{margin-top:41px}.section-title{display:flex;align-items:end;justify-content:space-between;margin-bottom:15px}.section-title h2{font-size:20px;letter-spacing:-.35px;margin-top:6px}.round-add{border:0;background:var(--deep);color:#fff;width:35px;height:35px;border-radius:50%;font-size:21px;font-weight:300}.nutrition-card{padding:21px 24px 20px}.nutrition-top{display:flex;justify-content:space-between;align-items:center}.calorie-number{margin-top:6px}.calorie-number strong{font-size:31px;font-weight:600;letter-spacing:-1px}.calorie-number span{font-size:12px;color:var(--muted)}.calorie-number b{color:#555e56;font-weight:500}.ring{width:73px;height:73px;border-radius:50%;background:conic-gradient(var(--green) 0deg,#edf0e9 0deg);display:grid;place-items:center;position:relative}.ring:before{content:'';position:absolute;inset:6px;border-radius:50%;background:white}.ring>div{position:relative;text-align:center;display:grid}.ring b{font-size:12px}.ring small{font-size:7px;color:var(--muted);letter-spacing:1px}.calorie-track,.macro-track{height:6px;border-radius:8px;background:#eff1ed;overflow:hidden}.calorie-track{margin:16px 0 21px}.calorie-track span,.macro-track span{display:block;width:0;height:100%;border-radius:8px;background:var(--green);transition:width .4s}.macro-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:23px}.macro-caption{display:grid;grid-template-columns:9px 1fr auto;align-items:center;gap:6px;color:#778077;font-size:10px;margin-bottom:8px}.macro-caption strong{font-size:13px;color:var(--ink);font-weight:600}.macro-caption strong span{font-weight:400;color:var(--muted);font-size:9px;margin-left:2px}.macro-dot{width:6px;height:6px;border-radius:50%}.protein{background:#547b5e!important}.carbs{background:#d5a177!important}.fats{background:#bd8e98!important}.macro-track{height:4px}.meal-heading{display:flex;justify-content:space-between;align-items:center;margin:19px 2px 9px}.meal-heading h3{font-size:12px}.meal-list{display:grid;gap:8px}.meal-item{background:var(--paper);border:1px solid #edf0e9;border-radius:13px;padding:10px 13px;display:flex;align-items:center;gap:11px}.meal-thumb{width:40px;height:40px;background:#eef3e9;border-radius:10px;display:grid;place-items:center;font-size:19px;overflow:hidden}.meal-thumb img{width:100%;height:100%;object-fit:cover}.meal-info{flex:1;min-width:0}.meal-info b{font-size:11px;display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.meal-info small{font-size:9px;color:var(--muted)}.meal-kcal{text-align:right;font-size:11px;font-weight:600}.meal-kcal small{display:block;color:var(--muted);font-size:9px;font-weight:400}.meal-delete{border:0;background:none;color:#b4bbb1;padding:3px;font-size:16px}.segmented{display:flex;padding:3px;background:#e9ede6;border-radius:9px;gap:2px}.segmented button{border:0;background:transparent;border-radius:7px;color:#7d857a;padding:6px 11px;font-size:10px}.segmented button.active{background:#fff;color:var(--deep);box-shadow:0 1px 4px #22332212}.chart-card{padding:20px 22px 15px}.chart-summary{display:flex;justify-content:space-between;align-items:start}.chart-summary>div>div{display:flex;align-items:baseline;gap:3px;margin-top:7px}.chart-summary strong{font-size:25px;font-weight:600;letter-spacing:-.6px}.chart-summary small{font-size:10px;color:var(--muted)}.chart-change{margin-left:9px;font-size:9px;color:var(--green)}.select-link{color:#6b756b}.trend-chart{height:175px;margin-top:10px}.trend-chart svg{width:100%;height:100%;overflow:visible}.chart-axis{display:flex;justify-content:space-between;color:#a1a8a0;font-size:9px;margin-top:2px}.legend{display:flex;gap:17px;justify-content:center;margin-top:15px;color:#818981;font-size:9px}.legend span{display:flex;align-items:center;gap:5px}.legend-dot{height:6px;width:6px;border-radius:50%}.weight-legend{background:var(--green)}.fat-legend{background:var(--orange)}.plan-card{padding:20px 22px}.plan-intro{display:flex;align-items:center;gap:11px}.plan-icon{width:36px;height:36px;border-radius:11px;background:#eef3e9;color:var(--green);display:grid;place-items:center;font-size:18px}.plan-intro>div:nth-child(2){flex:1}.plan-intro h3{font-size:12px}.plan-intro p{font-size:10px;color:var(--muted);margin-top:4px}.plan-stats{border-top:1px solid var(--line);margin-top:17px;padding-top:15px;display:grid;grid-template-columns:repeat(3,1fr);gap:12px}.plan-stats>div{display:grid;gap:6px}.plan-stats span{font-size:9px;color:var(--muted)}.plan-stats b{font-size:16px;font-weight:600}.plan-stats small{font-size:9px;color:var(--muted);font-weight:400}.disclaimer{font-size:9px;color:#92998f;margin:19px 2px 30px}.disclaimer span{margin-right:4px}.bottom-nav{position:fixed;z-index:5;bottom:0;left:50%;transform:translateX(-50%);width:min(100%,1140px);height:65px;padding:6px 18px calc(6px + env(safe-area-inset-bottom));background:#ffffffed;backdrop-filter:blur(14px);border-top:1px solid var(--line);display:flex;justify-content:space-around}.nav-item{border:0;background:none;text-decoration:none;color:#929a90;display:grid;justify-items:center;align-content:center;gap:2px;font-size:9px;min-width:56px}.nav-item span{font-size:20px;line-height:1.1}.nav-item.selected{color:var(--deep);font-weight:600}.modal{border:0;padding:0;border-radius:20px;width:min(470px,calc(100% - 30px));max-height:90vh;box-shadow:0 24px 90px #19271944}.modal::backdrop{background:#17231977;backdrop-filter:blur(3px)}.modal form{padding:23px;display:grid;gap:14px;max-height:90vh;overflow:auto}.modal-head{display:flex;align-items:start;justify-content:space-between;margin-bottom:3px}.modal h2{font-size:21px;margin-top:5px}.close-btn{border:0;background:#f1f3ef;border-radius:50%;height:30px;width:30px;font-size:20px;color:#758073}.modal label{display:grid;gap:6px;font-size:11px;font-weight:600;color:#5d675d}.modal label small{display:inline;color:var(--muted);font-weight:400}.modal input,.modal select{width:100%;height:42px;padding:0 11px;border-radius:10px;border:1px solid #e5e9e1;background:#fbfcfa;color:var(--ink);font-size:12px;outline:none}.modal input:focus,.modal select:focus{border-color:#8ca78d;box-shadow:0 0 0 3px #e9f0e7}.form-row{display:grid;grid-template-columns:1fr 1fr;gap:10px}.form-row.three{grid-template-columns:repeat(3,1fr);gap:7px}.photo-picker{min-height:75px;border:1px dashed #cbd5c8;border-radius:12px;background:#f8faf6;display:flex!important;align-items:center;gap:10px;padding:11px;cursor:pointer}.photo-picker input{display:none}.photo-icon{width:38px;height:38px;border-radius:10px;background:#e9f0e6;display:grid;place-items:center;color:var(--green);font-size:22px}.photo-picker b,.photo-picker small{display:block}.photo-picker small{font-size:9px;color:var(--muted);font-weight:400;margin-top:4px}.photo-picker img{display:none;margin-left:auto;width:49px;height:49px;object-fit:cover;border-radius:8px}.primary-btn{height:45px;border:0;border-radius:11px;background:var(--deep);color:white;font-weight:600;font-size:12px;margin-top:3px}.form-note{padding:10px 12px;background:#f4f6f1;border-radius:9px;font-size:9px;color:#798279;line-height:1.7}.toast{position:fixed;z-index:8;bottom:80px;left:50%;transform:translate(-50%,12px);background:#28372a;color:white;padding:10px 16px;border-radius:30px;font-size:11px;opacity:0;pointer-events:none;transition:.25s;white-space:nowrap}.toast.show{opacity:1;transform:translate(-50%,0)}@media(min-width:900px){main{max-width:790px;margin:0 auto}.welcome{padding-top:52px}.summary-grid{gap:20px}.nutrition-card{padding:24px 29px}.weight-card,.fat-card{min-height:200px}}@media(max-width:620px){.app-shell{padding:0 18px 76px}.topbar{height:67px}.welcome{padding:30px 0 22px}h1{font-size:33px}.summary-grid{gap:10px}.weight-card,.fat-card{padding:15px 14px 12px;min-height:165px;border-radius:16px}.metric-line strong{font-size:32px}.card-foot{left:14px;right:14px;bottom:13px;font-size:9px}.sparkline{right:12px;width:79px;top:73px}.fat-progress{width:100%;margin-top:14px}.section-block{margin-top:32px}.section-title h2{font-size:18px}.nutrition-card{padding:18px 16px}.macro-grid{gap:12px}.macro-caption{font-size:9px;grid-template-columns:7px 1fr auto;gap:4px}.macro-caption strong{font-size:11px}.chart-card{padding:17px 15px 14px}.trend-chart{height:160px}.plan-card{padding:17px 15px}.plan-stats{gap:6px}.plan-stats span{font-size:8px}.plan-stats b{font-size:14px}.bottom-nav{height:66px}.date-chip{font-size:10px;padding:8px 11px}}@media(max-width:375px){.app-shell{padding-left:13px;padding-right:13px}.metric-line strong{font-size:29px}.weight-card,.fat-card{padding-left:12px;padding-right:12px}.card-foot{left:12px;right:12px}.macro-grid{gap:7px}}
