/* MERIDIAN App Shell · iOS 原生质感 */
:root{
  --paper:#FCFCFA; --paper-2:#F5F4F0; --paper-3:#EDEBE5;
  --ink:#0F3D33; --ink-2:#1B5449; --ink-soft:#2E6B5E;
  --seal:#A8332A; --gray:#6B6B66; --gray-2:#757570; --line:#E2E0D9;
  --white:#fff; --gold:#2E6B5E;  /* 原古铜金是第二个色相，破坏饱和度孤立 → 收敛到墨绿系中性 */
  --r:10px; --r-s:6px;
  --serif:-apple-system,BlinkMacSystemFont,"SF Pro Text","SF Pro Display","PingFang SC","Hiragino Sans GB","Microsoft YaHei","Helvetica Neue",Arial,sans-serif;
  --sans:-apple-system,BlinkMacSystemFont,"SF Pro Text","SF Pro Display","PingFang SC","Hiragino Sans GB","Microsoft YaHei","Helvetica Neue",Arial,sans-serif;
  --tabh:58px; --sab:env(safe-area-inset-bottom,0px); --sat:env(safe-area-inset-top,0px);
}
*,*::before,*::after{box-sizing:border-box}
html,body{margin:0;padding:0;height:100%}
body{background:var(--paper);color:var(--ink);font-family:var(--sans);font-size:16px;
  line-height:1.6;-webkit-font-smoothing:antialiased;
  -webkit-tap-highlight-color:transparent;overscroll-behavior-y:none}
img{max-width:100%;display:block}
a{color:inherit;text-decoration:none}
button{font:inherit;cursor:pointer}
h1,h2,h3{font-family:var(--serif);font-weight:400;margin:0;letter-spacing:-.015em;line-height:1.15}
.num{font-variant-numeric:tabular-nums}

/* ---- 顶栏 ---- */
.app-top{position:sticky;top:0;z-index:40;background:rgba(252,252,250,.9);
  backdrop-filter:saturate(180%) blur(16px);border-bottom:1px solid var(--line);
  padding:calc(var(--sat) + 10px) 18px 10px;display:flex;align-items:center;gap:.6rem}
.app-top .logo{font-family:var(--serif);font-size:1.06rem;display:flex;align-items:center;gap:.45rem}
.app-top svg{width:21px;height:21px;flex:none}
.langpick{margin-left:auto;border:1px solid var(--line);background:var(--white);
  color:var(--ink-soft);font-size:.74rem;padding:.3rem .45rem;border-radius:var(--r-s)}

/* ---- 页面 ---- */
main{padding-bottom:calc(var(--tabh) + var(--sab) + 18px);min-height:100%}
[data-page]{display:none;padding:20px 18px 8px;animation:fade .28s ease}
body[data-tab="home"]  [data-page="home"],
body[data-tab="care"]  [data-page="care"],
body[data-tab="build"] [data-page="build"],
body[data-tab="trip"]  [data-page="trip"],
body[data-tab="me"]    [data-page="me"]{display:block}
@keyframes fade{from{opacity:0;transform:translateY(6px)}to{opacity:1;transform:none}}
@media (prefers-reduced-motion:reduce){[data-page]{animation:none}}

.big-title{font-size:clamp(1.85rem,6.4vw,2.3rem);line-height:1.1;margin-bottom:.5rem}
.big-title em{font-style:normal;color:var(--seal)}
.sub{color:var(--gray);font-size:.92rem;margin:0 0 1.5rem}
.eyebrow{font-size:.68rem;letter-spacing:.16em;text-transform:uppercase;color:var(--gray);
  font-weight:600;display:block;margin:1.8rem 0 .8rem}
.eyebrow:first-child{margin-top:0}

/* ---- 卡片 / 列表 ---- */
.card{background:var(--white);color:var(--ink);border:1px solid var(--line);
  border-radius:var(--r);padding:15px 16px;margin-bottom:10px}
.row{display:flex;align-items:center;gap:12px;background:var(--white);border:1px solid var(--line);
  border-radius:var(--r);padding:14px 16px;margin-bottom:9px;width:100%;text-align:left;color:var(--ink)}
.row:active{background:var(--paper-2)}
.row .rt{flex:1;min-width:0}
.row .rt b{display:block;font-weight:600;font-size:.95rem}
.row .rt span{display:block;color:var(--gray);font-size:.8rem;margin-top:.15rem}
.row .chev{color:var(--gray-2);flex:none;font-size:1.1rem}
.stats{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin-bottom:1.5rem}
.stat{background:var(--ink);color:var(--paper);border-radius:var(--r);padding:14px 12px}
.stat b{display:block;font-family:var(--serif);font-size:clamp(1.3rem,4.6vw,1.6rem);line-height:1}
.stat span{display:block;font-size:.68rem;color:rgba(252,252,250,.72);margin-top:.4rem;line-height:1.3}
.tag{display:inline-block;font-size:.66rem;letter-spacing:.08em;text-transform:uppercase;
  border:1px solid var(--line);padding:.2rem .5rem;border-radius:var(--r-s);color:var(--gray);
  margin:0 .28rem .28rem 0;background:var(--paper)}
.tag-seal{border-color:var(--seal);color:var(--seal)}
.tag-gold{border-color:var(--gold);color:var(--gold)}
.chip{display:inline-block;font-size:.8rem;padding:.5rem .8rem;border-radius:var(--r-s);
  border:1px solid var(--line);background:var(--white);color:var(--ink);margin:0 .4rem .4rem 0}
.chip.on{background:var(--ink);border-color:var(--ink);color:var(--paper);font-weight:600}
.chip.on-seal{background:var(--seal);border-color:var(--seal);color:#fff;font-weight:600}
.btn{display:flex;align-items:center;justify-content:center;gap:.5rem;width:100%;
  padding:.95rem 1.2rem;border-radius:var(--r);border:1px solid transparent;font-size:.93rem;font-weight:600}
.btn-p{background:var(--ink);color:var(--paper)}
.btn-p:active{background:var(--ink-2)}
.btn-s{background:var(--white);border-color:var(--line);color:var(--ink)}

/* ---- 时间线 ---- */
.tl{position:relative;padding-left:26px}
.tl::before{content:'';position:absolute;left:7px;top:6px;bottom:6px;width:1.5px;background:var(--line)}
.tl-i{position:relative;padding-bottom:20px}
.tl-i::before{content:'';position:absolute;left:-24px;top:4px;width:15px;height:15px;border-radius:50%;
  background:var(--paper);border:2px solid var(--line)}
.tl-i.done::before{background:var(--ink);border-color:var(--ink)}
.tl-i.now::before{background:var(--seal);border-color:var(--seal);
  box-shadow:0 0 0 4px rgba(168,51,42,.15)}
.tl-i b{display:block;font-size:.94rem;font-weight:600}
.tl-i span{display:block;color:var(--gray);font-size:.81rem;margin-top:.15rem}
.tl-i .st{font-size:.65rem;letter-spacing:.1em;text-transform:uppercase;font-weight:600;
  color:var(--gray-2);margin-top:.3rem;display:block}
.tl-i.done .st{color:var(--ink-soft)}
.tl-i.now .st{color:var(--seal)}

/* ---- 报价 ---- */
.qline{display:flex;justify-content:space-between;gap:12px;padding:.55rem 0;
  border-bottom:1px solid var(--line);font-size:.88rem}
.qline.tot{border-bottom:0;border-top:2px solid var(--ink);margin-top:.4rem;padding-top:.85rem;
  font-weight:600;font-size:1rem}
.qbox{background:var(--paper-2);border-radius:var(--r);padding:12px 14px;margin:.9rem 0}
.qsave{background:rgba(168,51,42,.06);border-left:2px solid var(--seal);
  padding:.7rem .85rem;border-radius:0 var(--r-s) var(--r-s) 0;margin:.8rem 0}

/* ---- 底部 tab 栏（这里只许有 tab 栏 · T68） ---- */
.tabbar{position:fixed;left:0;right:0;bottom:0;z-index:50;
  background:rgba(252,252,250,.94);backdrop-filter:saturate(180%) blur(18px);
  border-top:1px solid var(--line);
  padding-bottom:var(--sab);
  display:grid;grid-template-columns:repeat(5,1fr);align-items:end}
.tabbtn{background:none;border:0;padding:7px 2px 9px;display:flex;flex-direction:column;
  align-items:center;gap:3px;color:var(--gray-2);height:var(--tabh);justify-content:center}
.tabbtn svg{width:22px;height:22px;stroke:currentColor;fill:none;stroke-width:1.6;
  stroke-linecap:round;stroke-linejoin:round}
.tabbtn small{font-size:.62rem;letter-spacing:.01em;font-weight:600}
body[data-tab="home"]  .tabbtn[data-go="home"],
body[data-tab="care"]  .tabbtn[data-go="care"],
body[data-tab="trip"]  .tabbtn[data-go="trip"],
body[data-tab="me"]    .tabbtn[data-go="me"]{color:var(--ink)}
/* 中间凸起主钮 */
.tabbtn.main{position:relative}
.tabbtn.main .bubble{position:absolute;top:-17px;left:50%;transform:translateX(-50%);
  width:50px;height:50px;border-radius:50%;background:var(--ink);color:var(--paper);
  display:flex;align-items:center;justify-content:center;
  box-shadow:0 4px 14px rgba(15,61,51,.28);border:3px solid var(--paper)}
.tabbtn.main .bubble svg{width:22px;height:22px}
.tabbtn.main small{margin-top:32px}



.muted{color:var(--gray);font-size:.84rem}
.sect{margin-bottom:1.6rem}
.hr{height:1px;background:var(--line);margin:1.5rem 0}
@media(min-width:700px){ main{max-width:560px;margin:0 auto} .tabbar{max-width:560px;left:50%;transform:translateX(-50%)} }

/* 2026-09-25: plain system type - no display serif, no italics. */
h1,h2,h3,h4,.logo,.app-top .logo,.hero-stat .big,.cell .idx,.step-n,.stat b{letter-spacing:0}
h1,h2,h3,h4{font-weight:700}
.hero h1 em,.big-title em{font-style:normal;color:inherit}
.tabbtn.main{color:var(--gray-2)}
.tabbtn.main .bubble{position:static;transform:none;width:auto;height:auto;border-radius:0;background:none;box-shadow:none;border:0;color:inherit}
.tabbtn.main small{margin-top:0}
body[data-tab="build"] .tabbtn[data-go="build"]{color:var(--ink)}
