*{box-sizing:border-box;-webkit-tap-highlight-color:transparent}
body{margin:0;background:#f2f5f4;color:#1f2d2b;
  font-family:-apple-system,BlinkMacSystemFont,"PingFang SC","Helvetica Neue",sans-serif;
  font-size:14px;line-height:1.6;padding-bottom:60px}
h1,h3{margin:0}
.hide{display:none}

header{background:#3dbfa3;background:linear-gradient(135deg,#3dbfa3,#2b9d87);color:#fff;
  padding:calc(20px + env(safe-area-inset-top,0px)) 18px 18px;border-radius:0 0 20px 20px}
.hdate{font-size:12px;opacity:.85;margin:0}
header h1{font-size:20px;font-weight:600;margin:2px 0 4px}
.hsub{font-size:12px;opacity:.9;margin:0}

.tabs{display:flex;background:#fff;margin:12px;border-radius:12px;padding:4px;
  box-shadow:0 1px 3px rgba(0,0,0,.05)}
.tab{flex:1;text-align:center;padding:9px;font-size:14px;color:#6b7c79;border-radius:9px;cursor:pointer}
.tab.on{background:#e1f5ee;color:#0f6e56;font-weight:500}

main{padding:0 12px}
.page{display:none}
.page.on{display:block}
.card{background:#fff;border-radius:14px;padding:15px;margin-bottom:12px}
.card h3{font-size:15px;font-weight:600;margin-bottom:10px}
.hint{font-size:12px;color:#8b9a97;margin:8px 0 0}
.empty{text-align:center;color:#9aa8a5;padding:22px 8px;font-size:13px}

.grid3{display:flex;gap:8px}
.stat{flex:1;background:#f6f9f8;border-radius:10px;padding:10px 6px;text-align:center}
.stat b{display:block;font-size:19px;font-weight:600;color:#1f2d2b}
.stat span{display:block;font-size:11px;color:#6b7c79}
.stat small{display:block;font-size:10px;color:#9aa8a5}

.barwrap{height:8px;background:#eef2f1;border-radius:6px;overflow:hidden;margin-top:10px}
.barfill{height:100%;background:#3dbfa3;border-radius:6px;transition:width .3s}
.barfill.over{background:#d9534f}
.barnote{font-size:12px;color:#6b7c79;margin-top:6px}
.barnote b{color:#d9534f}

.btn{width:100%;border:1px solid #3dbfa3;background:#fff;color:#0f6e56;padding:11px;
  border-radius:10px;font-size:15px;font-family:inherit;cursor:pointer;margin-top:8px}
.btn.primary{background:#3dbfa3;color:#fff;border-color:#3dbfa3}
.btn.ghost{border-color:#dde5e3;color:#6b7c79}
.btn.big{padding:15px;font-size:16px;margin-top:0}
.btns{display:flex;gap:10px}
.btns .btn{flex:1}

.preview{display:none;margin-top:10px}
.preview.on{display:block}
.preview img{width:100%;border-radius:10px;display:block}

.editor{display:none}
.editor.on{display:block}
label{display:block;font-size:12px;color:#6b7c79;margin:12px 0 5px}
input[type=text],input[type=number]{width:100%;border:1px solid #e0e8e6;border-radius:9px;
  padding:10px;font-size:15px;font-family:inherit;background:#fbfdfc;color:#1f2d2b}
.row4{display:flex;gap:8px}
.row4>div{flex:1}
.row2{display:flex;gap:10px}
.row2>div{flex:1}

.chips{display:flex;flex-wrap:wrap;gap:6px}
.chip{font-size:12px;padding:6px 11px;border-radius:16px;background:#f1f4f3;color:#6b7c79;cursor:pointer}
.chip.on{background:#e1f5ee;color:#0f6e56;font-weight:500}
.chips.small .chip{padding:5px 9px;min-width:30px;text-align:center}

.sug{padding:9px 10px;border-bottom:1px solid #eef2f1;font-size:14px;cursor:pointer}
.sug span{float:right;font-size:11px;color:#9aa8a5}
.sug.empty{color:#9aa8a5;cursor:default}

.rec{display:flex;gap:10px;align-items:center;padding:10px 0;border-bottom:1px solid #eef2f1}
.rec:last-child{border-bottom:0}
.thumb{width:46px;height:46px;border-radius:9px;object-fit:cover;background:#eef2f1;flex:none}
.thumb.nopic{background:#eef2f1}
.rinfo{flex:1;min-width:0}
.rname{font-size:14px;font-weight:500;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.rmeta{font-size:11px;color:#8b9a97;margin-top:2px}
.rkcal{font-size:15px;font-weight:600;text-align:right;flex:none}
.rkcal small{font-size:10px;color:#8b9a97;font-weight:400;margin-left:2px}
.rp{font-size:11px;color:#6b7c79;font-weight:400}
.rdel{font-size:20px;color:#c9d4d2;padding:0 2px 0 6px;flex:none;cursor:pointer}

.rrow{display:flex;align-items:center;gap:8px;margin:7px 0}
.rl{width:56px;font-size:12px;color:#4a5a57;flex:none}
.rbar{flex:1;height:8px;background:#eef2f1;border-radius:6px;overflow:hidden}
.rbar i{display:block;height:100%;border-radius:6px}
.rbar i.ok{background:#3dbfa3}
.rbar i.warn{background:#e08a5a}
.rv{width:78px;text-align:right;font-size:12px;color:#4a5a57;flex:none}
.rv small{color:#9aa8a5;margin-left:3px}

.tagwrap{display:flex;flex-wrap:wrap;gap:6px}
.tag{font-size:12px;padding:5px 10px;border-radius:14px;background:#f1f4f3;color:#4a5a57}
.big{font-size:26px;font-weight:600;color:#0f6e56}

.adv{border-left:3px solid #3dbfa3;padding:0 0 0 10px;margin-bottom:12px}
.adv:last-child{margin-bottom:0}
.adv b{font-size:13px;color:#0f6e56}
.adv p{font-size:13px;color:#4a5a57;margin:3px 0 0}
.coach{background:#e1f5ee;color:#0f6e56;border-radius:10px;padding:11px 13px;font-size:14px;margin-top:12px}

.viewer{display:none;position:fixed;left:0;top:0;right:0;bottom:0;background:rgba(0,0,0,.9);
  z-index:99;align-items:center;justify-content:center;flex-direction:column;padding:20px}
.viewer.on{display:flex}
.viewer img{max-width:100%;max-height:80%;border-radius:10px}
.viewer .hint{color:#fff;text-align:center}

.toast{position:fixed;left:50%;bottom:30px;transform:translateX(-50%) translateY(20px);
  background:rgba(0,0,0,.8);color:#fff;padding:9px 18px;border-radius:20px;font-size:13px;
  opacity:0;pointer-events:none;transition:.25s;z-index:100}
.toast.on{opacity:1;transform:translateX(-50%) translateY(0)}
/* ===== AI 教练点评 ===== */
.card.ai{border:1.5px solid #bfe8dc;background:linear-gradient(180deg,#f6fcfa,#fff)}
.card.ai h3 small{font-size:10px;color:#8b9a97;font-weight:400;margin-left:8px}
.rvhead{font-size:16px;font-weight:600;color:#0f6e56;line-height:1.5;margin-bottom:12px}
.rvpts{margin-bottom:14px}
.rvpt{border-left:3px solid #3dbfa3;padding:0 0 0 10px;margin-bottom:10px}
.rvpt b{display:block;font-size:13px;color:#0f6e56}
.rvpt p{font-size:13px;color:#4a5a57;margin:3px 0 0;line-height:1.6}

.plan{background:#0f6e56;color:#fff;border-radius:14px;padding:14px 15px;margin-bottom:10px}
.ptitle{font-size:12px;opacity:.75;margin-bottom:6px}
.pname{font-size:20px;font-weight:600;line-height:1.35;margin-bottom:12px}
.prow{display:flex;align-items:center;gap:8px;font-size:13px;margin-bottom:8px}
.prow span{flex:0 0 34px;opacity:.7;font-size:12px}
.prow b{flex:1;font-weight:500;line-height:1.5}
.cp{flex:0 0 auto;background:rgba(255,255,255,.18);border:0;color:#fff;font-size:11px;
  padding:3px 10px;border-radius:12px;cursor:pointer;font-family:inherit}
.cp:active{background:rgba(255,255,255,.35)}
.pwhy{font-size:12px;opacity:.8;margin:10px 0 0;line-height:1.5}
.pavoid{font-size:12px;color:#b4694e;background:#fdf1ec;border-radius:10px;padding:9px 12px;margin:10px 0}
.loading{text-align:center;color:#8b9a97;font-size:13px;padding:16px 0}
#aiReview .btn{margin-top:4px}
#aiReview .hint{margin:8px 0 0}
