:root{--bg: #f4f6f5;--card: #ffffff;--text: #1c2321;--muted: #6b7672;--border: #e2e7e5;--accent: #0f766e;--accent-soft: #e6f3f1;--carb: #d97706;--carb-soft: #fdf3e3;--protein: #2563eb;--protein-soft: #e8effd;--ok: #15803d;--warn: #c2410c;--danger: #dc2626;--radius: 14px;color-scheme:light}@media (prefers-color-scheme: dark){:root{--bg: #0f1413;--card: #182120;--text: #e6ecea;--muted: #93a19c;--border: #2a3533;--accent: #2dd4bf;--accent-soft: #123430;--carb: #f59e0b;--carb-soft: #33270f;--protein: #60a5fa;--protein-soft: #162640;--ok: #4ade80;--warn: #fb923c;--danger: #f87171;color-scheme:dark}}*{box-sizing:border-box}html,body{margin:0}body{background:var(--bg);color:var(--text);font-family:-apple-system,BlinkMacSystemFont,PingFang SC,Hiragino Sans GB,Microsoft YaHei,Noto Sans CJK SC,sans-serif;font-size:15px;line-height:1.5;-webkit-tap-highlight-color:transparent}h2{font-size:20px;margin:8px 0 12px}h3{font-size:16px;margin:0 0 8px}input,select,textarea,button{font:inherit;color:inherit}button{cursor:pointer}.container{max-width:480px;margin:0 auto;padding:12px 16px calc(32px + env(safe-area-inset-bottom))}.topbar{position:sticky;top:0;z-index:10;display:flex;align-items:center;justify-content:space-between;gap:8px;padding:10px max(16px,calc(50% - 224px));background:var(--card);border-bottom:1px solid var(--border)}.brand{font-weight:700;color:var(--accent)}.brand-sub{font-weight:600;color:var(--text)}.topbar-user{color:var(--muted);display:flex;align-items:center}.card{background:var(--card);border:1px solid var(--border);border-radius:var(--radius);padding:14px;margin-bottom:12px}.row{display:flex;align-items:center}.row.between{justify-content:space-between;gap:8px}.row.end{justify-content:flex-end}.center{text-align:center}.muted{color:var(--muted)}.small{font-size:13px}.ok{color:var(--ok)}.error{background:color-mix(in srgb,var(--danger) 12%,transparent);color:var(--danger);padding:8px 12px;border-radius:10px;margin-bottom:12px}.btn{background:var(--accent);color:#fff;border:0;border-radius:10px;padding:9px 16px;font-weight:600}@media (prefers-color-scheme: dark){.btn{color:#06201d}}.btn.small{padding:6px 12px;font-size:14px}.btn.ghost{background:transparent;color:var(--accent);border:1px solid var(--border)}.btn.danger{color:var(--danger)}.btn.wide{width:100%;padding:12px}.icon-btn{background:transparent;border:0;padding:4px 8px;border-radius:8px;color:var(--muted);font-size:18px}.icon-btn:hover{background:var(--bg)}.chip{display:inline-block;font-size:12px;padding:1px 8px;border-radius:999px;margin-left:6px;background:var(--accent-soft);color:var(--accent)}.chip.train{background:var(--carb-soft);color:var(--carb)}.tag{display:inline-block;padding:1px 6px;border-radius:6px;font-weight:500}.tag.carb{background:var(--carb-soft);color:var(--carb)}.tag.protein{background:var(--protein-soft);color:var(--protein)}.seg{display:inline-flex;background:var(--bg);border-radius:10px;padding:3px}.seg button{border:0;background:transparent;padding:4px 12px;border-radius:8px;color:var(--muted)}.seg button.active{background:var(--card);color:var(--accent);font-weight:600;box-shadow:0 1px 2px #0002}input:not([type=checkbox]),select,textarea{border:1px solid var(--border);background:var(--card);border-radius:10px;padding:8px 10px;width:100%}input:focus,select:focus,textarea:focus{outline:2px solid var(--accent);outline-offset:-1px}.search{margin-bottom:12px}.field{display:flex;flex-direction:column;gap:4px;font-size:14px;margin-bottom:8px}.datebar{display:flex;align-items:center;justify-content:space-between;margin-bottom:12px}.datebar .icon-btn{font-size:26px;padding:0 14px}.datepick{position:relative;display:flex;align-items:center;font-size:17px}.datepick input{position:absolute;top:0;right:0;bottom:0;left:0;opacity:0;cursor:pointer}.timing-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(210px,1fr));gap:8px;margin-top:10px}.timing{display:flex;flex-direction:column;align-items:flex-start;gap:2px;text-align:left;border:1px solid var(--border);background:var(--card);border-radius:12px;padding:10px 12px}.timing:hover{border-color:var(--accent)}.timing.rest strong{color:var(--accent)}.summary-head{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:8px}.timing-chip{border:0;background:var(--accent-soft);color:var(--accent);font-weight:700;font-size:16px;border-radius:10px;padding:4px 12px;margin-right:8px}.kcal{text-align:right;display:flex;flex-direction:column}.kcal strong{font-size:22px;line-height:1.1}.meal-head{display:flex;justify-content:space-between;align-items:center;gap:8px}.meal-head h3{margin:0}.grams{width:76px!important;text-align:right;font-weight:600;font-size:16px}.remove{font-size:14px}.meal-foot{display:flex;justify-content:space-between;align-items:center;margin-top:10px;gap:8px;flex-wrap:wrap}.notes{min-height:70px;resize:vertical}.modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background:#0007;z-index:50;display:flex;align-items:flex-end;justify-content:center}.modal{background:var(--card);width:100%;max-width:560px;max-height:85vh;overflow:auto;border-radius:18px 18px 0 0;padding:16px 16px calc(16px + env(safe-area-inset-bottom))}@media (min-width: 641px){.modal-backdrop{align-items:center}.modal{border-radius:18px}}.modal-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:10px}.modal-head h3{margin:0}.pick-list{list-style:none;padding:0;margin:0}.pick-list button{width:100%;display:flex;flex-direction:column;align-items:flex-start;text-align:left;background:transparent;border:0;border-bottom:1px solid var(--border);padding:10px 4px}.pick-list button:hover:not(:disabled){background:var(--bg)}.history,.food-list{list-style:none;padding:0;margin:0}.food-row{width:100%;text-align:left}.food-row:hover{border-color:var(--accent)}.food-row{display:flex;justify-content:space-between;align-items:center;gap:8px}.macros{display:flex;gap:4px;flex-shrink:0;flex-wrap:wrap;justify-content:flex-end}.chart{height:280px;margin:8px 0}.table{width:100%;border-collapse:collapse;font-size:14px}.table th,.table td{text-align:left;padding:6px 4px;border-bottom:1px solid var(--border)}.table th{color:var(--muted);font-weight:500}.food-group{margin-bottom:8px}.group-head{width:100%;display:flex;justify-content:space-between;align-items:center;background:transparent;border:0;padding:8px 2px;font-weight:700;font-size:15px}.food-main{min-width:0}.food-list .card{margin-bottom:8px}.pick-group{position:sticky;top:-16px;background:var(--card);z-index:1;font-size:13px;font-weight:700;color:var(--accent);padding:10px 4px 4px}.calc-row{display:flex;gap:10px;flex-wrap:wrap;align-items:center}.timing-chip.select{-moz-appearance:none;appearance:none;-webkit-appearance:none;width:auto;border:0;padding:4px 12px;cursor:pointer}.entry .meal-head h3{margin:0 0 2px}.prev{margin:6px 0 4px}.link-btn{background:none;border:0;color:var(--accent);font-size:13px;padding:0 0 0 8px;text-decoration:underline}.sets{width:100%;border-collapse:collapse;margin-top:4px}.sets th{text-align:left;font-weight:500;color:var(--muted);font-size:13px;padding:2px 4px}.sets td{padding:4px;border-top:1px dashed var(--border);white-space:nowrap}.sets td:first-child{width:28px}.sets .grams{width:84px!important}.sets .grams.reps{width:64px!important}.add-move{margin:4px 0 14px}.new-move{border-top:1px solid var(--border);margin-top:12px;padding-top:4px}.new-move .calc-row input{flex:1;min-width:140px;width:auto}.new-move .calc-row select{min-width:90px;flex:0}.food-row.selected{border-color:var(--accent);background:var(--accent-soft)}.recent-row{display:flex;flex-direction:column;gap:2px;padding:8px 2px;border-bottom:1px solid var(--border);color:inherit;text-decoration:none}.pick-group.frequent{color:var(--carb)}.auth{max-width:420px;margin:0 auto;padding:32px 16px calc(32px + env(safe-area-inset-bottom))}.auth-brand{text-align:center;font-size:26px;font-weight:800;color:var(--accent);margin-bottom:16px}.auth-brand span{color:var(--text)}.auth-card h2{margin-top:0}.form{display:flex;flex-direction:column;gap:6px}.form label{font-weight:600;font-size:14px;margin-top:6px}.form input:not([type=checkbox]){border:1px solid var(--border);background:var(--bg);border-radius:10px;padding:11px 12px;width:100%;font-size:16px}.form input:focus{outline:2px solid var(--accent);outline-offset:-1px}.form .btn{margin-top:12px}.btn.big{min-height:48px;font-size:16px}.btn:disabled{opacity:.6;cursor:default}.pw{position:relative}.pw input{padding-right:56px!important}.pw .link-btn{position:absolute;right:8px;top:0;bottom:0;min-width:44px;padding:0;text-decoration:none}.check{display:flex;gap:10px;align-items:flex-start;font-weight:400!important;min-height:44px}.check input{width:20px;height:20px;margin-top:2px;accent-color:var(--accent);flex:none}.hp{position:absolute;left:-10000px;width:1px;height:1px;opacity:0}.container{padding-bottom:calc(84px + env(safe-area-inset-bottom))}.bottomnav{position:fixed;bottom:0;left:0;right:0;z-index:10;display:flex;justify-content:center;background:var(--card);border-top:1px solid var(--border);padding-bottom:env(safe-area-inset-bottom)}.bottomnav a{flex:1;max-width:96px;min-height:52px;display:flex;flex-direction:column;align-items:center;justify-content:center;font-size:11px;color:var(--muted);text-decoration:none}.bottomnav a .icon{font-size:20px;line-height:1.2;filter:grayscale(1);opacity:.7}.bottomnav a.active{color:var(--accent);font-weight:600}.bottomnav a.active .icon{filter:none;opacity:1}.soon{padding:28px 16px}.soon-badge{display:inline-block;background:var(--accent-soft);color:var(--accent);font-weight:700;border-radius:999px;padding:4px 12px;margin-bottom:8px}.num{font-variant-numeric:tabular-nums}.onboard{padding-top:4px}.onboard-head{position:sticky;top:0;z-index:5;background:var(--bg);padding:8px 0 4px}.progress{display:grid;grid-template-columns:repeat(3,1fr);gap:6px;margin-bottom:6px}.progress span{height:6px;border-radius:3px;background:var(--border);transition:background .3s}.progress span.on{background:var(--accent)}.q{margin:18px 0}.q-label{font-weight:700;margin-bottom:8px}.q-hint{margin:-4px 0 8px}.field{border:1px solid var(--border);background:var(--card);border-radius:10px;padding:11px 12px;width:100%;font-size:16px;min-height:46px}.field:focus{outline:2px solid var(--accent);outline-offset:-1px}.unit-input{position:relative;display:block;flex:1}.unit-input .field{padding-right:44px;font-variant-numeric:tabular-nums}.unit-input span{position:absolute;right:12px;top:50%;transform:translateY(-50%)}.pair{display:flex;gap:8px;margin-top:8px}.pair:first-child{margin-top:0}.choices{display:grid;gap:8px}.choices.cols-2{grid-template-columns:repeat(2,1fr)}.choices.cols-3{grid-template-columns:repeat(3,1fr)}.choices.cols-4{grid-template-columns:repeat(4,1fr)}.choices.cols-5{grid-template-columns:repeat(5,1fr)}.choice{min-height:48px;border:1px solid var(--border);background:var(--card);border-radius:12px;padding:8px 10px;display:flex;flex-direction:column;align-items:center;justify-content:center;font-weight:600;text-align:center;transition:border-color .15s,background .15s}.choice.small{font-size:14px;min-height:44px;font-weight:500}.choice.on{border-color:var(--accent);background:var(--accent-soft);color:var(--accent)}.choice-hint{font-size:12px;font-weight:400;color:var(--muted)}.wide-seg{display:flex;margin-top:8px}.wide-seg button{flex:1;min-height:40px}.onboard-foot{margin:20px 0 8px}.result-hero{text-align:center;padding:22px 16px}.phase{font-size:30px;font-weight:800;margin:4px 0 8px;color:var(--accent)}.phase-cut{color:var(--carb)}.phase-bulk{color:var(--protein)}.small-phase{font-size:15px;margin:0;font-weight:700}.stats{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-bottom:6px}.stat{background:var(--card);border:1px solid var(--border);border-radius:var(--radius);padding:12px;display:flex;flex-direction:column;align-items:flex-start}.stat b{font-size:30px;line-height:1.15}.plan-day{padding:0;overflow:hidden}.plan-day-head{width:100%;display:flex;align-items:center;gap:8px;padding:12px 14px;min-height:48px;background:none;border:0;text-align:left}.plan-day-head strong{flex:1}.plan-ex{list-style:none;margin:0;padding:0 14px 6px}.plan-ex li{display:flex;justify-content:space-between;align-items:center;gap:10px;padding:8px 0;border-top:1px solid var(--border)}.nowrap{white-space:nowrap}.me-phase{margin:8px 0 2px}a.btn{display:block;text-align:center;text-decoration:none}
