:root{--bg: #f6f6f4;--card: #ffffff;--ink: #1f2933;--ink-2: #52606d;--muted: #8a9199;--line: #e8eaed;--primary: #2a9d8f;--primary-600: #21867a;--primary-soft: #e6f4f2;--accent: #f4a261;--accent-soft: #fdf1e6;--accent-ink: #b87333;--danger: #e26d5a;--radius: 16px;--radius-sm: 10px;--shadow: 0 1px 2px rgba(30, 41, 51, .04), 0 4px 16px rgba(30, 41, 51, .06);--nav-h: 62px}*{box-sizing:border-box}html{-webkit-text-size-adjust:100%}body{margin:0;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,PingFang SC,Hiragino Sans GB,Microsoft YaHei,Helvetica Neue,Arial,sans-serif;background:var(--bg);color:var(--ink);-webkit-font-smoothing:antialiased;line-height:1.4}button{font-family:inherit;cursor:pointer;-webkit-tap-highlight-color:transparent}input{font-family:inherit}.app{max-width:480px;margin:0 auto;min-height:100dvh}.app-main{padding:16px 16px calc(var(--nav-h) + env(safe-area-inset-bottom) + 20px)}.page{animation:fade .2s ease}@keyframes fade{0%{opacity:0;transform:translateY(4px)}to{opacity:1;transform:none}}.page-header{display:flex;justify-content:space-between;align-items:flex-start;margin:6px 0 16px}.brand{font-size:22px;font-weight:700;margin:0;letter-spacing:-.02em}.date-line{color:var(--muted);font-size:13px;margin:4px 0 0;display:flex;align-items:center;gap:6px}.date-tag{background:var(--primary-soft);color:var(--primary-600);font-size:11px;font-weight:600;padding:2px 8px;border-radius:999px}.seg{display:flex;background:#ecedeb;border-radius:999px;padding:3px}.seg button{border:none;background:transparent;padding:7px 14px;border-radius:999px;font-size:13px;color:var(--muted);font-weight:500}.seg button.on{background:#fff;color:var(--primary-600);font-weight:700;box-shadow:0 1px 3px #1e29331f}.card{background:var(--card);border-radius:var(--radius);padding:16px;box-shadow:var(--shadow)}.section{margin-top:22px}.section-title{font-size:15px;font-weight:700;margin:0 0 10px 2px}.hero{display:flex;align-items:center;gap:22px}.hero-stats{flex:1;display:flex;gap:22px}.stat{display:flex;flex-direction:column;gap:3px}.stat-v{font-size:24px;font-weight:700;line-height:1}.stat-l{font-size:12px;color:var(--muted)}.ring-wrap{position:relative;flex-shrink:0}.ring-bg{stroke:var(--primary-soft)}.ring-fg{stroke:var(--primary);transition:stroke-dashoffset .4s ease}.ring-label{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;flex-direction:column;align-items:center;justify-content:center}.ring-pct{font-size:20px;font-weight:700}.ring-sub{font-size:11px;color:var(--muted)}.goals{padding:4px 16px}.goal-row{display:flex;align-items:center;justify-content:space-between;padding:11px 0;border-bottom:1px solid var(--line)}.goal-row:last-child{border-bottom:none}.goal-info{display:flex;flex-direction:column;gap:2px}.goal-name{font-size:14px;font-weight:600}.goal-target{font-size:12px;color:var(--muted)}.goal-right{display:flex;align-items:center;gap:10px}.goal-value{font-size:14px;font-weight:600}.goal-check{color:var(--primary);font-weight:700;width:16px;text-align:center}.goal-row.ok .goal-value{color:var(--primary-600)}.stepper{display:flex;align-items:center;gap:10px}.stepper button{width:30px;height:30px;border-radius:50%;border:1px solid var(--line);background:#fff;font-size:18px;color:var(--ink);line-height:1}.stepper button:active{background:var(--primary-soft)}.water-val{font-size:14px;font-weight:600;min-width:62px;text-align:center}.chip-toggle{border:1px solid var(--line);background:#fff;color:var(--ink-2);border-radius:999px;padding:7px 14px;font-size:13px}.chip-toggle.on{background:var(--primary-soft);color:var(--primary-600);border-color:var(--primary);font-weight:600}.chip-group{display:flex;gap:8px;flex-wrap:wrap}.meal-card{background:var(--card);border-radius:var(--radius);padding:16px;margin-bottom:12px;box-shadow:var(--shadow);border:1px solid transparent}.meal-card.done{background:#f4fbf9;border-color:var(--primary-soft)}.meal-head{display:flex;flex-direction:column;gap:4px}.meal-type{font-size:12px;color:var(--primary-600);font-weight:700}.meal-title-row{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.meal-name{font-size:16px;font-weight:700}.tag-replaced{font-size:11px;background:var(--accent-soft);color:var(--accent-ink);padding:2px 8px;border-radius:999px}.meal-macros{display:flex;gap:12px;margin-top:2px}.macro{font-size:13px;color:var(--ink-2)}.ingredient-chips{display:flex;flex-wrap:wrap;gap:6px;margin:10px 0}.ing-chip{font-size:12px;background:#f2f3f2;border-radius:8px;padding:4px 8px;color:var(--ink-2)}.ing-chip b{color:var(--ink);font-weight:600}.meal-meta{display:flex;align-items:center;gap:12px}.cook-time{font-size:12px;color:var(--muted)}.link-btn{background:none;border:none;color:var(--primary-600);font-size:13px;padding:0;margin-left:auto}.meal-method{background:#f7f8f7;border-radius:var(--radius-sm);padding:12px;margin-top:10px;font-size:13px;color:var(--ink-2);line-height:1.65}.meal-method p{margin:0}.meal-note{color:var(--accent-ink);margin-top:6px!important}.meal-actions{display:flex;gap:10px;margin-top:12px}.meal-actions .btn{flex:1}.cook-badge{font-size:11px;padding:3px 9px;border-radius:999px;font-weight:600;white-space:nowrap}.cook-no-cook{background:var(--primary-soft);color:var(--primary-600)}.cook-microwave{background:#eaf1fb;color:#3b6cb7}.cook-airfryer{background:var(--accent-soft);color:var(--accent-ink)}.cook-simple-cook{background:#f0eef6;color:#6b5fb5}.btn{border-radius:12px;padding:13px 16px;font-size:15px;font-weight:600;border:none;transition:opacity .15s}.btn:active{opacity:.82}.btn-primary{background:var(--primary);color:#fff}.btn-done{background:var(--primary-soft);color:var(--primary-600)}.btn-ghost{background:#f2f3f2;color:var(--ink-2)}.btn-block{width:100%}.btn-sm{padding:7px 12px;font-size:13px}.btn-danger{color:var(--danger)}.btn:disabled{opacity:.4;cursor:not-allowed}.sheet-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#0f17206b;z-index:200;display:flex;align-items:flex-end;justify-content:center}.sheet{background:#fff;width:100%;max-width:480px;border-radius:20px 20px 0 0;padding:14px 16px calc(16px + env(safe-area-inset-bottom));max-height:82vh;overflow-y:auto;animation:slideUp .24s ease}@keyframes slideUp{0%{transform:translateY(24px);opacity:.6}to{transform:none;opacity:1}}.sheet-handle{width:40px;height:4px;background:#dde1e4;border-radius:999px;margin:0 auto 14px}.sheet-head{display:flex;justify-content:space-between;align-items:flex-start;gap:12px}.sheet-title{font-size:17px;font-weight:700;margin:0}.sheet-sub{font-size:13px;color:var(--muted);margin:4px 0 0}.icon-btn{background:#f2f3f2;border:none;width:32px;height:32px;border-radius:50%;flex-shrink:0}.alt-list{display:flex;flex-direction:column;gap:10px;margin:16px 0}.alt-card{text-align:left;border:1px solid var(--line);border-radius:14px;padding:14px;background:#fff;width:100%}.alt-card:active{border-color:var(--primary);background:var(--primary-soft)}.alt-main{display:flex;flex-direction:column;gap:4px}.alt-name{font-size:15px;font-weight:700}.alt-nutri{font-size:12px;color:var(--muted)}.alt-result{font-size:12px;color:var(--primary-600);margin-top:8px}.week-list{display:flex;flex-direction:column;gap:12px}.day-card{padding:0;overflow:hidden}.day-head{width:100%;display:flex;align-items:center;gap:12px;padding:16px;background:none;border:none}.day-label{font-size:16px;font-weight:700}.day-sum{font-size:13px;color:var(--muted);flex:1;text-align:right}.chevron{color:var(--muted);transition:transform .2s}.chevron.open{transform:rotate(180deg)}.week-meal{border-top:1px solid var(--line)}.week-meal-head{width:100%;display:flex;align-items:center;gap:10px;padding:13px 16px;background:none;border:none;text-align:left}.week-meal-name{font-size:14px;flex:1;font-weight:500}.week-meal-cal{font-size:12px;color:var(--muted)}.week-meal-detail{padding:2px 16px 16px}.detail-macros{display:flex;gap:12px;margin-bottom:10px}.detail-block{margin-bottom:12px}.detail-block h4{font-size:12px;color:var(--muted);margin:0 0 6px;font-weight:600}.detail-block p{font-size:14px;color:var(--ink-2);line-height:1.65;margin:0}.ing-list{list-style:none;padding:0;margin:0}.ing-list li{font-size:14px;padding:4px 0;color:var(--ink-2)}.ing-list li b{color:var(--ink);font-weight:600}.detail-meta{display:flex;align-items:center;gap:10px}.empty-state{text-align:center;padding:28px 16px}.empty-state p{color:var(--muted);font-size:14px;margin:0 0 16px;line-height:1.6}.shop-summary{display:flex;align-items:center;justify-content:space-between;margin-bottom:6px}.shop-progress{font-size:14px;font-weight:600}.shop-group{padding:6px 16px}.shop-item{display:flex;align-items:center;gap:12px;padding:13px 0;border-bottom:1px solid var(--line);cursor:pointer}.shop-item:last-child{border-bottom:none}.shop-item input{width:20px;height:20px;accent-color:var(--primary);flex-shrink:0}.shop-name{flex:1;font-size:15px}.shop-amount{font-size:12px;color:var(--muted)}.shop-item.checked .shop-name{text-decoration:line-through;color:var(--muted)}.weight-tiles{display:flex;gap:10px}.tile{flex:1;background:var(--card);border-radius:var(--radius);padding:14px;box-shadow:var(--shadow);display:flex;flex-direction:column;gap:4px}.tile-v{font-size:22px;font-weight:700}.tile-l{font-size:11px;color:var(--muted)}.tile-note{margin-top:10px;font-size:13px;color:var(--ink-2)}.chart-card{padding:12px}.weight-chart{width:100%;height:auto;display:block}.axis-label{font-size:10px;fill:var(--muted)}.tooltip-text{font-size:11px;fill:#fff}.tooltip-strong{font-weight:700}.chart-empty{text-align:center;padding:24px 8px;color:var(--ink-2);font-size:14px}.chart-empty p{margin:0 0 6px}.record-form{display:flex;flex-direction:column;gap:14px}.field{display:flex;flex-direction:column;gap:6px}.field label{font-size:13px;color:var(--ink-2);font-weight:600}.field input[type=date],.field input[type=number]{border:1px solid var(--line);border-radius:var(--radius-sm);padding:12px;font-size:15px;background:#fff;color:var(--ink);width:100%}.field input:focus{outline:none;border-color:var(--primary)}.record-list{padding:6px 16px}.record-row{display:flex;align-items:center;gap:12px;padding:13px 0;border-bottom:1px solid var(--line)}.record-row:last-child{border-bottom:none}.record-main{flex:1;display:flex;flex-direction:column;gap:4px}.record-date{font-size:14px;font-weight:600}.record-weight{color:var(--primary-600);margin-left:6px}.record-detail{font-size:12px;color:var(--muted)}.record-actions{display:flex;gap:8px;flex-shrink:0}.bottom-nav{position:fixed;bottom:0;left:50%;transform:translate(-50%);width:100%;max-width:480px;height:calc(var(--nav-h) + env(safe-area-inset-bottom));padding-bottom:env(safe-area-inset-bottom);background:#fffffff0;backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);border-top:1px solid var(--line);display:flex;z-index:100}.nav-item{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:3px;background:none;border:none;color:var(--muted);font-size:11px;padding:6px 0}.nav-item.active{color:var(--primary-600)}.nav-icon svg{width:23px;height:23px}.nav-label{font-weight:500}.footnote{text-align:center;font-size:12px;color:var(--muted);margin:20px 0 8px;line-height:1.6}.muted{color:var(--muted)}
