/* ==========================================================================
   肥胖控制・体重管理  |  32 体质联动版
   配色：健康绿主色 + 浅蓝辅助，干净医疗科普风
   ========================================================================== */

:root{
  --green:#0f8a52;
  --green-d:#0a6b3f;
  --green-l:#e9f7ef;
  --green-l2:#d6efe1;
  --blue:#2f7fe0;
  --blue-l:#ebf3fd;
  --amber:#b4780c;
  --amber-l:#fdf4e3;
  --red:#cf4040;
  --red-l:#fdeced;
  --ink:#152019;
  --ink2:#586a60;
  --ink3:#8a9a92;
  --line:#e3ece7;
  --bg:#f5faf7;
  --card:#fff;
  --r:14px;
  --r-lg:20px;
  --sh:0 1px 2px rgba(17,56,38,.04), 0 8px 24px -12px rgba(17,56,38,.12);
  --sh2:0 2px 6px rgba(17,56,38,.06), 0 18px 40px -20px rgba(17,56,38,.22);
  --max:1120px;
}

*{box-sizing:border-box}
html{-webkit-text-size-adjust:100%}
body{
  margin:0;background:var(--bg);color:var(--ink);
  font:16px/1.72 -apple-system,BlinkMacSystemFont,"Segoe UI","PingFang SC","Hiragino Sans GB","Microsoft YaHei",sans-serif;
  -webkit-font-smoothing:antialiased;
}
img{max-width:100%;display:block}
a{color:var(--green-d);text-decoration:none}
a:hover{text-decoration:underline}
h1,h2,h3,h4{line-height:1.35;margin:0 0 .6em;font-weight:700;letter-spacing:-.01em}
h1{font-size:clamp(26px,4.4vw,40px)}
h2{font-size:clamp(21px,2.8vw,27px)}
h3{font-size:17px}
p{margin:0 0 1em}
ul,ol{margin:0 0 1em;padding-left:1.25em}
li{margin:.32em 0}
small,.small{font-size:13px}
.muted{color:var(--ink2)}
.dim{color:var(--ink3)}

/* ---------- 布局 ---------- */
.wrap{max-width:var(--max);margin:0 auto;padding:0 20px}
.sec{padding:56px 0}
.sec--tight{padding:32px 0}
.wrapper-grid{display:grid}
.grid{display:grid;gap:18px}
/* 关键：grid/flex 子项默认 min-width:auto，表格会把自己的 min-content 宽度顶出去，
   导致整页横向溢出（窄屏内容被裁切）。这里统一放开收缩。 */
.grid > *,.metrics > *,.stat > *,.type-hero > *,.spread > *{min-width:0}
.tbl__scroll{min-width:0}
.g2{grid-template-columns:repeat(2,1fr)}
.g3{grid-template-columns:repeat(3,1fr)}
.g4{grid-template-columns:repeat(4,1fr)}
.row{display:flex;gap:12px;flex-wrap:wrap;align-items:center}
.spread{display:flex;gap:16px;align-items:flex-start;justify-content:space-between;flex-wrap:wrap}

/* ---------- 顶部导航 ---------- */
.nav{position:sticky;top:0;z-index:60;background:rgba(255,255,255,.92);backdrop-filter:blur(12px);border-bottom:1px solid var(--line)}
.nav__in{max-width:var(--max);margin:0 auto;padding:10px 20px;display:flex;align-items:center;justify-content:space-between;gap:16px}
.nav__logo{display:flex;align-items:center;gap:9px;font-weight:800;color:var(--ink);font-size:16px}
.nav__logo:hover{text-decoration:none}
.nav__mark{width:28px;height:28px;border-radius:9px;background:linear-gradient(140deg,var(--green),#37b47b);color:#fff;display:grid;place-items:center;font-size:15px}
.nav__txt em{display:block;font-style:normal;font-size:11px;font-weight:600;color:var(--ink3);letter-spacing:.06em}
.nav__links{display:flex;align-items:center;gap:4px}
.nav__links a{padding:8px 12px;border-radius:10px;color:var(--ink2);font-size:14.5px;font-weight:600}
.nav__links a:hover{background:var(--green-l);color:var(--green-d);text-decoration:none}
.nav__links a.is-on{color:var(--green-d);background:var(--green-l)}
.nav__cta{background:var(--green)!important;color:#fff!important;padding:9px 16px!important;box-shadow:0 6px 16px -8px rgba(15,138,82,.9)}
.nav__cta:hover{background:var(--green-d)!important}

/* ---------- 首屏 ---------- */
.hero{position:relative;overflow:hidden;background:
   radial-gradient(1100px 420px at 82% -12%, #d9f0e4 0%, transparent 62%),
   radial-gradient(760px 340px at 8% 0%, #e4f0fd 0%, transparent 58%),
   #fff;
   border-bottom:1px solid var(--line)}
.hero__in{max-width:var(--max);margin:0 auto;padding:64px 20px 58px;display:grid;grid-template-columns:1.15fr .85fr;gap:44px;align-items:center}
.hero__tag{display:inline-flex;align-items:center;gap:7px;background:var(--green-l);color:var(--green-d);border:1px solid var(--green-l2);padding:5px 12px;border-radius:999px;font-size:12.5px;font-weight:700;margin-bottom:18px}
.hero h1{margin-bottom:16px}
.hero h1 b{color:var(--green-d)}
.hero__sub{font-size:16.5px;color:var(--ink2);max-width:40em}
.hero__key{margin:22px 0 26px;display:grid;gap:9px}
.hero__key div{display:flex;gap:10px;align-items:flex-start;font-size:14.5px;color:var(--ink2)}
.hero__key i{flex:0 0 auto;width:18px;height:18px;border-radius:6px;background:var(--green-l);color:var(--green-d);display:grid;place-items:center;font-size:11px;font-style:normal;font-weight:800;margin-top:4px}
.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;border:0;cursor:pointer;font-family:inherit;
  padding:13px 24px;border-radius:12px;font-size:15.5px;font-weight:700;transition:.16s}
.btn--primary{background:var(--green);color:#fff;box-shadow:0 10px 26px -12px rgba(15,138,82,.95)}
.btn--primary:hover{background:var(--green-d);transform:translateY(-1px);text-decoration:none}
.btn--ghost{background:#fff;color:var(--green-d);border:1.5px solid var(--green-l2)}
.btn--ghost:hover{background:var(--green-l);text-decoration:none}
.btn--sm{padding:8px 14px;font-size:13.5px;border-radius:9px}
.btn--block{width:100%}
.btn[disabled]{opacity:.55;cursor:not-allowed;transform:none!important}

/* 首屏右侧示意卡 */
.hero__card{background:#fff;border:1px solid var(--line);border-radius:var(--r-lg);box-shadow:var(--sh2);padding:22px}
.hero__card h4{font-size:13px;color:var(--ink3);letter-spacing:.08em;margin-bottom:14px;text-transform:uppercase}
.mini{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.mini__i{background:var(--bg);border:1px solid var(--line);border-radius:12px;padding:12px}
.mini__i b{display:block;font-size:19px;color:var(--green-d)}
.mini__i span{font-size:12px;color:var(--ink3)}

/* ---------- 卡片 ---------- */
.card{background:var(--card);border:1px solid var(--line);border-radius:var(--r);padding:22px;box-shadow:var(--sh)}
.card--flat{box-shadow:none}
.card--soft{background:var(--green-l);border-color:var(--green-l2);box-shadow:none}
.card--warn{background:var(--red-l);border-color:#f6d4d6;box-shadow:none}
.card--amber{background:var(--amber-l);border-color:#f3e2c0;box-shadow:none}
.card--blue{background:var(--blue-l);border-color:#d5e6fb;box-shadow:none}
.card h3{margin-bottom:8px}
.card__hd{display:flex;align-items:center;gap:10px;margin-bottom:12px}
.card__hd h3{margin:0}
.ico{flex:0 0 auto;width:34px;height:34px;border-radius:10px;background:var(--green-l);color:var(--green-d);display:grid;place-items:center;font-size:16px;font-weight:800}

/* ---------- 章节标题 ---------- */
.sec-hd{margin-bottom:26px;max-width:46em}
.sec-hd .kicker{display:inline-block;font-size:12.5px;font-weight:800;letter-spacing:.1em;color:var(--green);margin-bottom:8px}
.sec-hd h2{margin-bottom:8px}
.sec-hd p{color:var(--ink2);margin:0}

/* ---------- 徽标 / 条形 / 星级 ---------- */
.badge{display:inline-flex;align-items:center;gap:5px;padding:3px 10px;border-radius:999px;font-size:12.5px;font-weight:700;line-height:1.7;white-space:nowrap}
.badge--green{background:var(--green-l);color:var(--green-d)}
.badge--blue{background:var(--blue-l);color:#1f66bd}
.badge--amber{background:var(--amber-l);color:var(--amber)}
.badge--red{background:var(--red-l);color:var(--red)}
.badge--gray{background:#eef2f0;color:var(--ink2)}

.bar{height:9px;border-radius:999px;background:#eef3f0;overflow:hidden}
.bar__fill{display:block;height:100%;border-radius:999px;background:var(--green);transition:width .5s cubic-bezier(.2,.8,.2,1)}
.bar__fill--green{background:linear-gradient(90deg,#37b47b,var(--green))}
.bar__fill--blue{background:linear-gradient(90deg,#7db4f2,var(--blue))}
.bar__fill--amber{background:linear-gradient(90deg,#e8b45c,var(--amber))}
.bar__fill--red{background:linear-gradient(90deg,#e77b7b,var(--red))}
.bar__fill--gray{background:#c9d5cf}

.stars{color:#e9a825;letter-spacing:2px;font-size:14px}

/* ---------- 表格 ---------- */
.tbl{width:100%;border-collapse:collapse;font-size:14.5px}
.tbl th,.tbl td{padding:11px 12px;border-bottom:1px solid var(--line);text-align:left;vertical-align:top}
.tbl th{background:#f7fbf9;font-weight:700;color:var(--ink2);font-size:13px;white-space:nowrap}
.tbl tr:last-child td{border-bottom:0}
.tbl--zebra tbody tr:nth-child(even){background:#fafdfb}
.tbl__scroll{overflow-x:auto;-webkit-overflow-scrolling:touch}

/* ---------- 表单 ---------- */
.form{display:grid;gap:18px}
.field{display:grid;gap:7px}
.field > label{font-size:14px;font-weight:700;color:var(--ink)}
.field .hint{font-size:12.5px;color:var(--ink3);font-weight:400}
.input,input[type=text],input[type=number],input[type=date],input[type=tel],input[type=password],select,textarea{
  width:100%;padding:11px 13px;border:1.5px solid var(--line);border-radius:11px;background:#fff;font:inherit;font-size:15px;color:var(--ink);
  transition:.15s;-webkit-appearance:none;appearance:none}
select{background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='12' height='8'><path d='M1 1l5 5 5-5' stroke='%23586a60' stroke-width='1.8' fill='none' stroke-linecap='round'/></svg>");background-repeat:no-repeat;background-position:right 13px center;padding-right:34px}
input:focus,select:focus,textarea:focus{outline:0;border-color:var(--green);box-shadow:0 0 0 4px rgba(15,138,82,.1)}
.input--err{border-color:var(--red)!important;box-shadow:0 0 0 4px rgba(207,64,64,.1)!important}
.field__err{font-size:12.5px;color:var(--red);font-weight:600;display:none}
.field__err.is-on{display:block}
.unit{position:relative}
.unit input{padding-right:46px}
.unit::after{content:attr(data-unit);position:absolute;right:13px;top:50%;transform:translateY(-50%);font-size:12.5px;color:var(--ink3);pointer-events:none}

/* 复选/单选 pill */
.chips{display:flex;flex-wrap:wrap;gap:9px}
.chip{position:relative;display:inline-flex}
.chip input{position:absolute;opacity:0;width:0;height:0}
.chip span{display:inline-block;padding:8px 14px;border:1.5px solid var(--line);border-radius:999px;background:#fff;font-size:14px;cursor:pointer;transition:.14s;user-select:none;color:var(--ink2)}
.chip span:hover{border-color:var(--green-l2);background:var(--green-l)}
.chip input:checked + span{background:var(--green);border-color:var(--green);color:#fff;font-weight:700}
.chip input:focus-visible + span{box-shadow:0 0 0 3px rgba(15,138,82,.22)}
.chip--red input:checked + span{background:var(--red);border-color:var(--red)}
.chip--sm span{padding:6px 11px;font-size:13px}

/* 步骤条 */
.steps{display:flex;gap:6px;margin-bottom:26px;overflow-x:auto;padding-bottom:4px;-webkit-overflow-scrolling:touch}
.steps__i{flex:1 0 auto;min-width:104px;padding:9px 12px;border-radius:11px;background:#fff;border:1.5px solid var(--line);font-size:13px;color:var(--ink3);font-weight:700;text-align:center;transition:.16s}
.steps__i b{display:block;font-size:11px;font-weight:700;color:var(--ink3);letter-spacing:.08em}
.steps__i.is-on{background:var(--green);border-color:var(--green);color:#fff}
.steps__i.is-on b{color:rgba(255,255,255,.75)}
.steps__i.is-done{background:var(--green-l);border-color:var(--green-l2);color:var(--green-d)}
.steps__i.is-done b{color:var(--green)}

.step{display:none}
.step.is-on{display:block;animation:slideIn .28s ease}
@keyframes slideIn{from{transform:translateY(6px)}to{transform:none}}

/* 量表题 */
.q{border-bottom:1px solid var(--line);padding:14px 0}
.q:last-child{border-bottom:0}
.q__t{font-size:15px;margin-bottom:10px;font-weight:600}
.q__t i{display:inline-block;min-width:24px;color:var(--ink3);font-style:normal;font-weight:700;font-size:13px}
.scale{display:flex;gap:6px;flex-wrap:wrap}
.scale label{position:relative;flex:1 1 0;min-width:62px}
.scale input{position:absolute;opacity:0;width:0;height:0}
.scale span{display:block;text-align:center;padding:8px 4px;border:1.5px solid var(--line);border-radius:9px;font-size:13px;color:var(--ink2);cursor:pointer;transition:.13s;background:#fff}
.scale label:hover span{border-color:var(--green-l2);background:var(--green-l)}
.scale input:checked + span{background:var(--green);border-color:var(--green);color:#fff;font-weight:700}
.scale input:focus-visible + span{box-shadow:0 0 0 3px rgba(15,138,82,.2)}

/* ---------- 结果页 ---------- */
.res-hero{background:linear-gradient(160deg,#0d7f4b,#14a061 55%,#2aa978);color:#fff;padding:38px 0 46px;position:relative;overflow:hidden}
.res-hero::after{content:"";position:absolute;right:-80px;top:-80px;width:340px;height:340px;border-radius:50%;background:rgba(255,255,255,.07)}
.res-hero h1{color:#fff;margin-bottom:6px;font-size:clamp(24px,3.6vw,34px)}
.res-hero p{color:rgba(255,255,255,.86);margin:0}
.res-hero .kicker{font-size:12.5px;letter-spacing:.14em;font-weight:800;color:rgba(255,255,255,.7);margin-bottom:10px}

.metrics{display:grid;grid-template-columns:repeat(4,1fr);gap:14px}
.metric{background:#fff;border:1px solid var(--line);border-radius:var(--r);padding:16px 16px 14px;box-shadow:var(--sh)}
.metric__k{font-size:12.5px;color:var(--ink3);font-weight:700;margin-bottom:6px}
.metric__v{font-size:26px;font-weight:800;line-height:1.15;letter-spacing:-.02em}
.metric__v small{font-size:13px;font-weight:700;color:var(--ink3);margin-left:2px}
.metric__n{font-size:12.5px;color:var(--ink2);margin-top:5px}
.metric--red .metric__v{color:var(--red)}
.metric--amber .metric__v{color:var(--amber)}
.metric--green .metric__v{color:var(--green-d)}
.metric--blue .metric__v{color:var(--blue)}

.type-hero{display:grid;grid-template-columns:auto 1fr;gap:22px;align-items:center}
.type-hero__sym{width:96px;height:96px;border-radius:24px;background:linear-gradient(145deg,var(--green-l),#d3eddf);color:var(--green-d);display:grid;place-items:center;font-size:44px;font-weight:400;line-height:1}
.type-hero__name{font-size:26px;font-weight:800;margin:0 0 4px;letter-spacing:-.01em}
.type-hero__meta{font-size:13.5px;color:var(--ink2)}

.kv{display:grid;grid-template-columns:auto 1fr;gap:6px 16px;font-size:14px}
.kv dt{color:var(--ink3);font-weight:600}
.kv dd{margin:0;color:var(--ink)}

.li-check{list-style:none;padding:0;margin:0}
.li-check li{position:relative;padding-left:26px;margin:.5em 0}
.li-check li::before{content:"✓";position:absolute;left:0;top:0;width:18px;height:18px;border-radius:6px;background:var(--green-l);color:var(--green-d);font-size:11px;font-weight:800;display:grid;place-items:center;margin-top:4px}
.li-cross{list-style:none;padding:0;margin:0}
.li-cross li{position:relative;padding-left:26px;margin:.5em 0}
.li-cross li::before{content:"×";position:absolute;left:0;top:0;width:18px;height:18px;border-radius:6px;background:var(--red-l);color:var(--red);font-size:12px;font-weight:800;display:grid;place-items:center;margin-top:4px}
.li-dot{list-style:none;padding:0;margin:0}
.li-dot li{position:relative;padding-left:20px;margin:.5em 0}
.li-dot li::before{content:"";position:absolute;left:4px;top:.72em;width:6px;height:6px;border-radius:50%;background:var(--green)}

.phase{border:1px solid var(--line);border-radius:var(--r);overflow:hidden;background:#fff}
.phase + .phase{margin-top:12px}
.phase__hd{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:14px 18px;background:#f7fbf9;border-bottom:1px solid var(--line);flex-wrap:wrap}
.phase__hd b{font-size:15.5px}
.phase__bd{padding:16px 18px}

.spark{width:100%;height:auto;display:block}

/* ---------- 提示条 ---------- */
.note{border-left:4px solid var(--green);background:var(--green-l);padding:14px 16px;border-radius:0 12px 12px 0;font-size:14px;color:var(--ink2)}
.note b{color:var(--green-d)}
.note--red{border-color:var(--red);background:var(--red-l)}
.note--red b{color:var(--red)}
.note--amber{border-color:var(--amber);background:var(--amber-l)}
.note--amber b{color:var(--amber)}

/* ---------- 分区标题小条 ---------- */
.hdline{display:flex;align-items:center;gap:12px;margin:0 0 16px}
.hdline::after{content:"";flex:1;height:1px;background:var(--line)}
.hdline h3{margin:0;font-size:16.5px}

/* ---------- 页脚 ---------- */
.foot{background:#0d2a1e;color:#b9cec3;margin-top:56px;font-size:13.5px}
.foot__in{max-width:var(--max);margin:0 auto;padding:44px 20px 30px;display:grid;grid-template-columns:1fr 1.4fr 1.4fr;gap:32px}
.foot__col strong{display:block;color:#fff;font-size:14px;margin-bottom:8px}
.foot__col p{margin:0;line-height:1.8;color:#9fb8ab}
.foot__bar{max-width:var(--max);margin:0 auto;padding:14px 20px 26px;border-top:1px solid rgba(255,255,255,.09);display:flex;justify-content:space-between;gap:14px;flex-wrap:wrap;color:#7d9a8b;font-size:12.5px}
.foot__links{display:flex;gap:16px}
.foot__links a{color:#9fb8ab}

/* ---------- 后台 ---------- */
.admin{background:#f2f6f4}
.admin .nav__in{max-width:1280px}
.adminwrap{max-width:1280px;margin:0 auto;padding:26px 20px 60px}
.stat{display:grid;grid-template-columns:repeat(4,1fr);gap:14px;margin-bottom:22px}
.stat__i{background:#fff;border:1px solid var(--line);border-radius:var(--r);padding:16px}
.stat__i b{display:block;font-size:25px;color:var(--green-d);line-height:1.2}
.stat__i span{font-size:12.5px;color:var(--ink3)}
.login{min-height:100vh;display:grid;place-items:center;background:linear-gradient(150deg,#0d7f4b,#13a063)}
.login__box{width:min(400px,92vw);background:#fff;border-radius:var(--r-lg);padding:32px;box-shadow:0 30px 70px -30px rgba(0,0,0,.45)}
.login__box h1{font-size:21px;margin-bottom:6px}
.login__box p{font-size:13.5px;color:var(--ink2);margin-bottom:20px}

.actions{display:flex;gap:8px;flex-wrap:wrap}
.pager{display:flex;gap:6px;align-items:center;justify-content:center;margin-top:20px;flex-wrap:wrap}
.pager a,.pager span{padding:6px 12px;border-radius:8px;border:1px solid var(--line);background:#fff;font-size:13.5px;color:var(--ink2)}
.pager a:hover{background:var(--green-l);text-decoration:none}
.pager .is-on{background:var(--green);color:#fff;border-color:var(--green)}

.toolbar{display:flex;gap:10px;flex-wrap:wrap;align-items:center;margin-bottom:16px}
.toolbar input,.toolbar select{width:auto;min-width:150px}

/* ---------- 打印 ---------- */
@media print{
  .nav,.foot,.no-print,.steps{display:none!important}
  body{background:#fff;font-size:12.5px}
  .wrap{max-width:none;padding:0}
  .card,.metric,.phase{box-shadow:none;break-inside:avoid;border-color:#ccc}
  .res-hero{background:#0f8a52!important;-webkit-print-color-adjust:exact;print-color-adjust:exact}
  .sec{padding:16px 0}
  a{color:inherit}
}

/* ---------- 响应式 ---------- */
@media (max-width:960px){
  .hero__in{grid-template-columns:1fr;gap:28px;padding:44px 20px 44px}
  .hero__card{order:2}
  .g4,.metrics,.stat{grid-template-columns:repeat(2,1fr)}
  .g3{grid-template-columns:1fr 1fr}
  .foot__in{grid-template-columns:1fr;gap:24px}
}
@media (max-width:720px){
  body{font-size:15.5px}
  .sec{padding:38px 0}
  .nav__links a:not(.nav__cta){display:none}
  .nav__links .is-on{display:block}
  .g2,.g3,.g4,.metrics,.stat{grid-template-columns:1fr}
  .hero h1{font-size:27px}
  .type-hero{grid-template-columns:1fr;gap:14px;text-align:left}
  .type-hero__sym{width:72px;height:72px;font-size:34px;border-radius:20px}
  .card{padding:17px}
  .metric__v{font-size:23px}
  .tbl{font-size:13.5px}
  .tbl th,.tbl td{padding:9px 10px}
  .scale label{min-width:calc(20% - 6px);flex:1 0 calc(20% - 6px)}
  .scale span{padding:9px 2px;font-size:12px}
  .res-hero{padding:28px 0 34px}
  .btn{padding:12px 20px;font-size:15px}
  /* 长文案徽标在窄屏允许换行，避免右侧被裁切 */
  .spread .badge{white-space:normal}
  .metrics .metric{padding:14px}
}
