/* ============ 设计令牌 ============ */
:root{
  --c-bg-1:#eaf3ff;
  --c-bg-2:#e9faf3;
  --c-primary:#2f7ff2;
  --c-primary-700:#1f5fd0;
  --c-primary-soft:#e8f1ff;
  --c-accent:#16c2a3;
  --c-accent-soft:#e3faf4;
  --c-warm:#ff8a5b;
  --c-warm-soft:#fff0e8;
  --c-ink:#1d2b3a;
  --c-ink-soft:#5b6b7b;
  --c-surface:rgba(255,255,255,.74);
  --c-surface-strong:rgba(255,255,255,.92);
  --c-line:rgba(31,95,208,.12);
  --c-line-strong:rgba(31,95,208,.22);
  --r-lg:26px;
  --r-md:18px;
  --r-sm:13px;
  --shadow-card:0 14px 38px -18px rgba(31,95,208,.38);
  --shadow-soft:0 8px 22px -14px rgba(29,43,58,.28);
  --font-sans:"Noto Sans SC",-apple-system,BlinkMacSystemFont,"PingFang SC","Microsoft YaHei",sans-serif;
  --font-disp:"Noto Serif SC","Noto Sans SC",serif;
  --tap:44px;
}

*{box-sizing:border-box;margin:0;padding:0;-webkit-tap-highlight-color:transparent;}
html{height:100%;}
body{
  font-family:var(--font-sans);
  color:var(--c-ink);
  background:
    radial-gradient(120% 80% at 12% -8%, #d8e8ff 0%, rgba(216,232,255,0) 55%),
    radial-gradient(120% 90% at 100% 0%, #d6f6ec 0%, rgba(214,246,236,0) 50%),
    linear-gradient(180deg,var(--c-bg-1) 0%, var(--c-bg-2) 100%);
  background-attachment:fixed;
  min-height:100vh;
  min-height:100dvh;
  padding:0;
  -webkit-font-smoothing:antialiased;
  line-height:1.6;
}

/* ============ H5 容器（无手机外壳 · 整屏铺开，PC 端居中最宽 430px） ============ */
.app{
  position:relative;
  width:100%;
  max-width:430px;
  margin:0 auto;
  min-height:100vh;
  min-height:100dvh;
}
/* 有底部 Tab 的页面留出安全间距，避免内容被固定 Tab 栏遮挡 */
.app.has-tab{padding-bottom:calc(66px + env(safe-area-inset-bottom));}

/* ============ 单页内容容器 ============ */
.page{position:relative;padding:calc(14px + env(safe-area-inset-top)) 18px 26px;}
.chat-page{
  height:100vh;height:100dvh;
  display:flex;flex-direction:column;min-height:0;
  padding:calc(14px + env(safe-area-inset-top)) 18px env(safe-area-inset-bottom);
}

/* ============ 通用元素 ============ */
.glass{
  background:var(--c-surface);
  border:1px solid rgba(255,255,255,.75);
  border-radius:var(--r-md);
  box-shadow:var(--shadow-card);
  backdrop-filter:blur(14px);
}
.section-title{
  display:flex;align-items:baseline;justify-content:space-between;
  margin:22px 4px 12px;
}
.section-title h2{font-size:18px;font-weight:900;letter-spacing:.3px;}
.section-title a{font-size:12.5px;color:var(--c-primary);font-weight:700;text-decoration:none;}
.muted{color:var(--c-ink-soft);font-size:13px;}
.pill{
  display:inline-flex;align-items:center;gap:5px;
  padding:5px 11px;border-radius:999px;font-size:12px;font-weight:700;
  background:var(--c-primary-soft);color:var(--c-primary-700);
}
.pill.accent{background:var(--c-accent-soft);color:#0e8f76;}
.pill.warm{background:var(--c-warm-soft);color:#d9582a;}

/* ============ 首页 ============ */
.hero{
  margin-top:6px;padding:20px 18px;border-radius:var(--r-lg);
  background:linear-gradient(135deg,var(--c-primary) 0%, #4f9bff 55%, var(--c-accent) 130%);
  color:#fff;box-shadow:0 22px 44px -20px rgba(31,95,208,.6);
  position:relative;overflow:hidden;
}
.hero::before{
  content:"";position:absolute;right:-40px;top:-50px;width:190px;height:190px;
  background:radial-gradient(circle,rgba(255,255,255,.32),transparent 70%);
  pointer-events:none; /* 装饰性伪元素会盖住定位子元素，必须让点击穿透 */
}
/* 问候卡右下角：血压管理快捷入口（底边与健康分环行底部对齐） */
.hero-bp{
  position:absolute;right:13px;bottom:20px;z-index:2;
  display:flex;flex-direction:column;align-items:center;gap:6px;
  padding:12px 12px 11px;border-radius:14px;
  background:rgba(255,255,255,.22);border:1px solid rgba(255,255,255,.5);
  -webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);
  color:#fff;text-decoration:none;line-height:1;
  box-shadow:0 10px 20px -14px rgba(8,40,90,.8);
  transition:background .18s,border-color .18s,transform .18s;
}
.hero-bp b{font-size:11px;font-weight:800;letter-spacing:.01em;white-space:nowrap;}
.hero-bp .hb-ic{display:block;width:24px;height:24px;}
.hero-bp .hb-ic svg{display:block;width:100%;height:100%;}
.hero-bp:hover{background:rgba(255,255,255,.34);border-color:rgba(255,255,255,.78);}
.hero-bp:active{transform:scale(.94);}
.hero-bp:focus-visible{outline:2px solid #fff;outline-offset:2px;}
.hero .greet{font-size:14px;opacity:.92;font-weight:500;}
.hero h1{font-family:var(--font-disp);font-size:25px;font-weight:700;margin:4px 0 14px;}
.hero .score-row{display:flex;align-items:center;gap:16px;}
.ring{position:relative;width:78px;height:78px;flex:0 0 auto;}
.ring svg{transform:rotate(-90deg);}
.ring .val{
  position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;
  font-family:var(--font-disp);font-weight:900;
}
.ring .val b{font-size:24px;line-height:1;}
.ring .val span{font-size:10px;opacity:.85;font-weight:500;}
.hero .score-meta b{font-size:15px;font-weight:800;display:block;}
.hero .score-meta p{font-size:12.5px;opacity:.9;margin-top:3px;}
/* 按钮移到右下后，让位护盾也跟着搬家：极窄视口下由健康分环行给按钮留位 */
@media (max-width:374px){.hero .score-row{padding-right:88px;}}

/* 今日用药提醒卡 */
.reminder-card{
  margin-top:16px;padding:16px;border-radius:var(--r-md);
  background:linear-gradient(135deg,#fff7f1,#ffeede);
  border:1px solid #ffd9c4;display:flex;gap:13px;align-items:center;
  box-shadow:var(--shadow-soft);
}
/* 用药卡左半区：通往「用药提醒设置」（remind.html）；右半「已服用」按钮独立在链接之外 */
.reminder-card .rc-main{
  display:flex;align-items:center;gap:13px;flex:1 1 auto;min-width:0;
  text-decoration:none;color:inherit;border-radius:12px;
  transition:transform .12s ease;
}
.reminder-card .rc-main:active{transform:scale(.985);}
.reminder-card .rc-main:focus-visible{outline:2px solid var(--c-warm);outline-offset:3px;}
@media (prefers-reduced-motion:reduce){.reminder-card .rc-main{transition:none;}}
.reminder-card .ico{
  width:46px;height:46px;border-radius:14px;flex:0 0 auto;
  background:var(--c-warm);display:flex;align-items:center;justify-content:center;
  box-shadow:0 10px 20px -10px rgba(255,138,91,.8);
}
.reminder-card .body{flex:1 1 auto;min-width:0;}
.reminder-card .body b{font-size:15px;font-weight:800;}
.reminder-card .body p{font-size:12.5px;color:#9a5a3c;margin-top:2px;}
.reminder-card .actions{display:flex;flex-direction:column;gap:8px;flex:0 0 auto;}
.btn{
  border:none;cursor:pointer;font-family:inherit;font-weight:800;font-size:13.5px;
  min-height:var(--tap);padding:0 18px;border-radius:13px;
  display:inline-flex;align-items:center;justify-content:center;gap:6px;
  transition:transform .12s ease,box-shadow .2s ease,filter .2s;
}
.btn:active{transform:scale(.96);}
.btn:focus-visible{outline:3px solid var(--c-primary);outline-offset:2px;}
.btn-primary{background:linear-gradient(135deg,var(--c-primary),#5a97ff);color:#fff;box-shadow:0 12px 24px -12px rgba(47,127,242,.75);}
.btn-ghost{background:rgba(255,255,255,.85);color:var(--c-primary-700);border:1px solid var(--c-line-strong);}
.btn-warm{background:linear-gradient(135deg,var(--c-warm),#ffa074);color:#fff;box-shadow:0 12px 22px -12px rgba(255,138,91,.7);}
.btn-sm{min-height:38px;padding:0 14px;font-size:12.5px;border-radius:11px;}

/* 资讯/权益 banner */
.benefit{
  margin-top:16px;padding:16px;border-radius:var(--r-md);
  background:linear-gradient(120deg,#fff,#f3f8ff);
  border:1px dashed var(--c-line-strong);display:flex;align-items:center;gap:13px;
}
.benefit .bico{width:42px;height:42px;border-radius:13px;background:linear-gradient(135deg,#ffd66b,#ff9f43);display:flex;align-items:center;justify-content:center;flex:0 0 auto;}
.benefit b{font-size:14.5px;font-weight:800;}
.benefit p{font-size:12px;color:var(--c-ink-soft);margin-top:2px;}

/* ============ 健康档案 ============ */
.profile-head{display:flex;align-items:center;gap:14px;margin-top:10px;}
.avatar{
  width:62px;height:62px;border-radius:20px;flex:0 0 auto;
  background:linear-gradient(135deg,var(--c-primary),var(--c-accent));
  display:flex;align-items:center;justify-content:center;color:#fff;font-family:var(--font-disp);font-size:24px;font-weight:700;
  box-shadow:0 14px 26px -12px rgba(31,95,208,.7);
}
.profile-head .info b{font-size:19px;font-weight:900;}
.profile-head .info p{font-size:13px;color:var(--c-ink-soft);margin-top:3px;}
/* 健档页右上角「血压管理」入口（取代原「编辑」按钮，原按钮无任何行为） */
.hp-bp{
  margin-left:auto;flex:0 0 auto;display:inline-flex;align-items:center;gap:6px;
  min-height:44px;padding:0 13px;border-radius:12px;text-decoration:none;
  background:var(--c-primary-soft);color:var(--c-primary-700);border:1px solid rgba(47,127,242,.22);
  font-size:12.5px;font-weight:800;white-space:nowrap;
  transition:transform .12s ease,background .18s;
}
.hp-bp svg{width:15px;height:15px;flex:0 0 auto;color:var(--c-primary);}
.hp-bp:hover{background:#dbe9ff;}
.hp-bp:active{transform:scale(.96);}
.hp-bp:focus-visible{outline:3px solid var(--c-primary);outline-offset:2px;}
@media (prefers-reduced-motion:reduce){.hp-bp{transition:none;}.hp-bp:active{transform:none;}}

.vitals{display:grid;grid-template-columns:repeat(3,1fr);gap:11px;margin-top:16px;}
.vital{padding:14px 12px;border-radius:var(--r-md);text-align:center;position:relative;}
.vitals a{text-decoration:none;color:inherit;display:block;}
.vital .vlink{position:absolute;right:9px;top:9px;font-size:10px;color:var(--c-primary);font-weight:800;}
.vital .num{font-family:var(--font-disp);font-size:22px;font-weight:900;color:var(--c-primary-700);}
.vital .num small{font-size:11px;font-weight:600;color:var(--c-ink-soft);}
.vital .lab{font-size:12px;color:var(--c-ink-soft);margin-top:4px;font-weight:600;}

.record{
  margin-top:12px;padding:15px 16px;border-radius:var(--r-md);display:flex;align-items:center;gap:13px;
}
.record .rico{width:40px;height:40px;border-radius:12px;background:var(--c-primary-soft);color:var(--c-primary);display:flex;align-items:center;justify-content:center;flex:0 0 auto;}
.record .rbody{flex:1 1 auto;}
.record .rbody b{font-size:14.5px;font-weight:800;}
.record .rbody p{font-size:12.5px;color:var(--c-ink-soft);margin-top:2px;}
.record .chev{color:var(--c-line-strong);flex:0 0 auto;}

/* ============ 智能测评 ============ */
.quiz-hero{
  margin-top:10px;border-radius:var(--r-lg);padding:22px 18px;
  background:linear-gradient(135deg,#5b5bd6,#7c6cf0 60%,var(--c-accent));
  color:#fff;position:relative;overflow:hidden;box-shadow:0 22px 44px -22px rgba(91,91,214,.7);
}
.quiz-hero::after{content:"";position:absolute;left:-30px;bottom:-50px;width:170px;height:170px;background:radial-gradient(circle,rgba(255,255,255,.25),transparent 70%);}
.quiz-hero .tag{font-size:12px;opacity:.9;font-weight:600;letter-spacing:1px;}
.quiz-hero h2{font-family:var(--font-disp);font-size:23px;font-weight:700;margin:8px 0 10px;}
.quiz-hero p{font-size:13px;opacity:.92;}
.quiz-hero .btn{margin-top:16px;}

.quiz-list{margin-top:14px;display:flex;flex-direction:column;gap:12px;}
.quiz-item{padding:16px;border-radius:var(--r-md);display:flex;gap:13px;align-items:center;}
.quiz-item .qno{width:34px;height:34px;border-radius:11px;background:var(--c-primary-soft);color:var(--c-primary-700);display:flex;align-items:center;justify-content:center;font-weight:900;font-family:var(--font-disp);flex:0 0 auto;}
.quiz-item .qbody b{font-size:14.5px;font-weight:800;display:block;}
.quiz-item .qbody p{font-size:12.5px;color:var(--c-ink-soft);margin-top:2px;}
.quiz-item .qmeta{margin-left:auto;font-size:12px;color:var(--c-ink-soft);font-weight:700;}

/* ============ 用药提醒 ============ */
.day-strip{display:flex;gap:9px;margin-top:12px;overflow-x:auto;padding-bottom:4px;scrollbar-width:none;}
.day-strip::-webkit-scrollbar{display:none;}
.day{flex:0 0 auto;width:54px;padding:11px 0;border-radius:15px;text-align:center;background:var(--c-surface);border:1px solid rgba(255,255,255,.7);box-shadow:var(--shadow-soft);cursor:pointer;}
.day .d{font-size:17px;font-weight:900;font-family:var(--font-disp);}
.day .w{font-size:11px;color:var(--c-ink-soft);margin-top:2px;}
.day.on{background:linear-gradient(135deg,var(--c-primary),#5a97ff);color:#fff;box-shadow:0 12px 22px -12px rgba(47,127,242,.7);}
.day.on .w{color:rgba(255,255,255,.85);}

.med{padding:15px 16px;border-radius:var(--r-md);margin-top:12px;display:flex;gap:13px;align-items:center;}
.med .dot{width:11px;height:11px;border-radius:50%;flex:0 0 auto;background:var(--c-warm);box-shadow:0 0 0 4px var(--c-warm-soft);}
.med.done .dot{background:var(--c-accent);box-shadow:0 0 0 4px var(--c-accent-soft);}
.med .mbody{flex:1 1 auto;}
.med .mbody b{font-size:15px;font-weight:800;}
.med .mbody p{font-size:12.5px;color:var(--c-ink-soft);margin-top:2px;}
.med .time{font-family:var(--font-disp);font-weight:900;font-size:16px;color:var(--c-primary-700);flex:0 0 auto;}
.med .state{font-size:12px;font-weight:800;flex:0 0 auto;padding:4px 10px;border-radius:999px;}
.med .state.todo{background:var(--c-warm-soft);color:#d9582a;}
.med .state.ok{background:var(--c-accent-soft);color:#0e8f76;}

.fab{
  position:fixed;right:max(18px, calc(50% - 197px));bottom:calc(26px + env(safe-area-inset-bottom));
  width:56px;height:56px;border-radius:18px;
  background:linear-gradient(135deg,var(--c-primary),#5a97ff);color:#fff;border:none;cursor:pointer;
  display:flex;align-items:center;justify-content:center;box-shadow:0 16px 30px -12px rgba(47,127,242,.8);
  z-index:9;transition:transform .14s ease;text-decoration:none;font-size:26px;line-height:1;
}
.fab:active{transform:scale(.92);}
.fab:focus-visible{outline:3px solid var(--c-primary);outline-offset:3px;}

/* ============ 商城 ============ */
.mall-hero{margin-top:8px;padding:18px;border-radius:var(--r-lg);background:linear-gradient(135deg,#0e8f76,var(--c-accent) 70%,#5fe0c4);color:#fff;position:relative;overflow:hidden;}
.mall-hero::before{content:"";position:absolute;right:-30px;top:-40px;width:160px;height:160px;background:radial-gradient(circle,rgba(255,255,255,.28),transparent 70%);}
.mall-hero .tag{font-size:11.5px;opacity:.9;font-weight:600;letter-spacing:1px;}
.mall-hero h2{font-size:20px;font-weight:900;margin-top:5px;}

.product{margin-top:14px;padding:16px;border-radius:var(--r-md);display:flex;gap:14px;}
.product .thumb{
  width:92px;height:92px;border-radius:16px;flex:0 0 auto;
  background:linear-gradient(135deg,#eef6ff,#e3faf4);
  display:flex;align-items:center;justify-content:center;color:var(--c-primary);
  border:1px solid var(--c-line);
}
.product .pbody{flex:1 1 auto;min-width:0;}
.product .pbody b{font-size:16px;font-weight:900;display:block;}
.product .pbody .spec{font-size:12px;color:var(--c-ink-soft);margin:3px 0 6px;}
.product .pbody .func{font-size:12px;color:var(--c-ink-soft);line-height:1.5;}
.product .price{margin-top:9px;display:flex;align-items:baseline;gap:8px;}
.product .price .now{font-family:var(--font-disp);font-size:21px;font-weight:900;color:var(--c-warm);}
.product .price .now small{font-size:12px;}
.product .price .old{font-size:12px;color:var(--c-ink-soft);text-decoration:line-through;}
.product .pact{display:flex;gap:8px;margin-top:11px;}
.disclaim{margin-top:14px;font-size:11.5px;color:var(--c-ink-soft);line-height:1.6;padding:12px 14px;border-radius:var(--r-sm);background:rgba(255,255,255,.5);border:1px solid var(--c-line);}

/* ---- 商城（参考「首页图标 + 横幅 + 分段 Tab + 双列商品」布局） ---- */
.mall-top{display:flex;align-items:center;gap:11px;margin:10px 0 16px;}
.mall-top .logo{width:40px;height:40px;border-radius:13px;background:linear-gradient(135deg,#0e8f76,var(--c-accent));display:flex;align-items:center;justify-content:center;color:#fff;font-size:20px;flex:0 0 auto;box-shadow:0 10px 20px -12px rgba(14,143,118,.85);}
.mall-top .brand b{font-size:19px;font-weight:900;font-family:var(--font-disp);display:block;line-height:1.2;}
.mall-top .brand p{font-size:11px;color:var(--c-ink-soft);margin-top:2px;}
.mall-top .mt-tag{margin-left:auto;font-size:11px;font-weight:800;color:#0e8f76;background:var(--c-accent-soft);padding:5px 10px;border-radius:999px;flex:0 0 auto;}

.cat-row{display:grid;grid-template-columns:repeat(4,1fr);gap:8px;}
.cat{display:flex;flex-direction:column;align-items:center;gap:7px;cursor:pointer;text-decoration:none;color:inherit;border-radius:14px;padding:4px 0;}
.cat:active{transform:scale(.96);}
.cat .cico{width:52px;height:52px;border-radius:16px;display:flex;align-items:center;justify-content:center;font-size:24px;background:var(--c-primary-soft);}
.cat:nth-child(1) .cico{background:#e3faf4;}
.cat:nth-child(2) .cico{background:#e8f1ff;}
.cat:nth-child(3) .cico{background:#fff0e8;}
.cat:nth-child(4) .cico{background:#eef0ff;}
.cat span{font-size:12px;font-weight:700;}

.mall-banner{margin-top:18px;border-radius:var(--r-md);overflow:hidden;position:relative;padding:20px 18px;background:linear-gradient(120deg,#0e8f76,#2bb39a 55%,#5fe0c4);color:#fff;box-shadow:0 20px 40px -20px rgba(14,143,118,.7);}
.mall-banner::after{content:"";position:absolute;right:-30px;bottom:-40px;width:170px;height:170px;background:radial-gradient(circle,rgba(255,255,255,.3),transparent 70%);}
.mall-banner h2{font-family:var(--font-disp);font-size:23px;font-weight:700;line-height:1.35;}
.mall-banner p{font-size:12.5px;opacity:.92;margin-top:8px;}
.mall-banner .go{margin-top:15px;display:inline-flex;align-items:center;gap:6px;background:rgba(255,255,255,.94);color:#0e8f76;font-weight:800;font-size:12.5px;padding:8px 16px;border-radius:999px;}

/* ===== 优惠券活动板块（横幅下方，引导登录领取） ===== */
.coupon-zone{
  margin-top:16px;border-radius:var(--r-md);padding:14px 0 13px;position:relative;overflow:hidden;
  background:linear-gradient(135deg,#fff4e8,#ffe9d4 55%,#fff7f0);
  border:1px solid #ffd9b8;box-shadow:0 18px 34px -22px rgba(214,120,45,.55);
}
.coupon-zone::after{content:"";position:absolute;right:-34px;top:-40px;width:132px;height:132px;border-radius:50%;background:radial-gradient(circle,rgba(255,255,255,.6),transparent 70%);}
.cz-head{display:flex;align-items:baseline;gap:8px;padding:0 14px;position:relative;z-index:1;}
.cz-head h2{font-size:16.5px;font-weight:900;font-family:var(--font-disp);color:#b8491a;line-height:1.2;}
.cz-head .cz-sub{font-size:11px;color:#c3703f;font-weight:700;}
.cz-head .cz-more{margin-left:auto;font-size:11.5px;font-weight:800;color:#c3703f;text-decoration:none;flex:0 0 auto;}
.cz-tip{
  display:flex;align-items:center;gap:9px;margin:11px 14px 0;padding:9px 11px;border-radius:var(--r-sm);
  background:rgba(255,255,255,.74);border:1px dashed #ffc79a;font-size:11.5px;color:#a3552a;
  position:relative;z-index:1;line-height:1.5;
}
.cz-tip .cz-login{
  margin-left:auto;flex:0 0 auto;border:none;font-family:inherit;cursor:pointer;
  font-size:11.5px;font-weight:800;color:#fff;background:linear-gradient(120deg,#ff8a5b,#f2562d);
  padding:6px 13px;border-radius:999px;box-shadow:0 8px 16px -10px rgba(242,86,45,.95);
}
.cz-tip .cz-login:focus-visible{outline:3px solid var(--c-primary);outline-offset:2px;}
.coupon-scroll{
  display:flex;gap:10px;margin-top:12px;padding:2px 14px 4px;position:relative;z-index:1;
  overflow-x:auto;scroll-snap-type:x proximity;scrollbar-width:none;-webkit-overflow-scrolling:touch;
}
.coupon-scroll::-webkit-scrollbar{display:none;}
.coupon{
  flex:0 0 auto;width:198px;scroll-snap-align:start;display:flex;position:relative;
  border-radius:12px;background:#fff;overflow:hidden;box-shadow:0 10px 20px -14px rgba(180,90,30,.5);
}
.coupon.got{filter:grayscale(.5);opacity:.74;}
.coupon .cp-l{
  flex:0 0 78px;padding:13px 6px;position:relative;color:#fff;
  display:flex;flex-direction:column;align-items:center;justify-content:center;
  background:linear-gradient(135deg,#ff9a6b,#f2562d);
}
.coupon .cp-l::after{content:"";position:absolute;right:0;top:9px;bottom:9px;border-right:1px dashed rgba(255,255,255,.8);}
.coupon .cp-amt{font-family:var(--font-disp);font-weight:900;font-size:26px;line-height:1;display:flex;align-items:baseline;gap:1px;}
.coupon .cp-amt small{font-size:13px;font-family:var(--font-sans);}
.coupon .cp-min{font-size:10px;margin-top:5px;opacity:.95;white-space:nowrap;}
.coupon .cp-r{flex:1 1 auto;min-width:0;padding:10px 11px;display:flex;flex-direction:column;gap:2px;}
.coupon .cp-name{font-size:13px;font-weight:800;line-height:1.3;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.coupon .cp-scope{font-size:10.5px;color:var(--c-ink-soft);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.coupon .cp-exp{font-size:10px;color:#c3703f;}
.coupon .cp-btn{
  margin-top:auto;align-self:flex-start;border:none;font-family:inherit;cursor:pointer;
  font-size:11.5px;font-weight:800;color:#fff;background:linear-gradient(120deg,#ff8a5b,#f2562d);
  padding:5px 15px;border-radius:999px;transition:transform .12s;
}
.coupon .cp-btn:active{transform:scale(.94);}
.coupon .cp-btn:focus-visible{outline:3px solid var(--c-primary);outline-offset:2px;}
.coupon .cp-btn.done{background:#e9eef5;color:var(--c-ink-soft);cursor:default;}
.coupon .cp-stamp{
  display:none;position:absolute;right:7px;top:7px;font-size:10px;font-weight:800;
  color:#f2562d;border:1.5px solid #f2562d;border-radius:4px;padding:1px 4px;transform:rotate(8deg);opacity:.85;
}
.coupon.got .cp-stamp{display:block;}

.pgrid{display:grid;grid-template-columns:repeat(2,1fr);gap:12px;margin-top:14px;}
.pcard{background:var(--c-surface);border:1px solid rgba(255,255,255,.7);border-radius:var(--r-md);overflow:hidden;box-shadow:var(--shadow-soft);cursor:pointer;display:flex;flex-direction:column;min-width:0;transition:transform .14s ease,box-shadow .2s;text-decoration:none;color:inherit;}
.pcard:active{transform:scale(.98);}
.pcard:focus-visible{outline:3px solid var(--c-primary);outline-offset:2px;}
.pcard .pimg{position:relative;aspect-ratio:1/1;display:flex;align-items:center;justify-content:center;font-size:46px;background:linear-gradient(135deg,#eef6ff,#e3faf4);}
.pcard:nth-child(2n) .pimg{background:linear-gradient(135deg,#fff2ea,#fff7f1);}
.pcard .ptag{position:absolute;left:8px;top:8px;background:linear-gradient(135deg,var(--c-warm),#ffa074);color:#fff;font-size:10px;font-weight:800;padding:3px 8px;border-radius:8px;}
.pcard .padd{position:absolute;right:8px;bottom:8px;width:30px;height:30px;border-radius:50%;border:none;background:linear-gradient(135deg,#0e8f76,var(--c-accent));color:#fff;font-size:16px;font-weight:800;cursor:pointer;display:flex;align-items:center;justify-content:center;box-shadow:0 8px 16px -8px rgba(14,143,118,.9);transition:transform .12s;}
.pcard .padd:active{transform:scale(.88);}
.pcard .pin{flex:1;display:flex;flex-direction:column;padding:11px 12px 13px;}
.pcard .ptitle{font-size:13.5px;font-weight:800;line-height:1.4;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;min-height:38px;}
.pcard .pfoot{margin-top:auto;display:flex;align-items:baseline;justify-content:space-between;gap:6px;padding-top:10px;}
.pcard .pprice{color:#0e8f76;font-family:var(--font-disp);font-weight:900;font-size:18px;}
.pcard .pprice small{font-size:11px;}
.pcard .psold{font-size:11px;color:var(--c-ink-soft);white-space:nowrap;}

/* ============ 商品分类（参考「左侧分类栏 + 右侧商品行」布局） ============ */
.cat-page{
  height:calc(100vh - 66px - env(safe-area-inset-bottom));
  height:calc(100dvh - 66px - env(safe-area-inset-bottom));
  display:flex;flex-direction:column;
  padding-top:calc(12px + env(safe-area-inset-top));
}
.cat-search{
  flex:0 0 auto;display:flex;align-items:center;gap:9px;margin:0 14px 12px;
  height:42px;padding:0 15px;border-radius:999px;border:1.5px solid var(--c-line);
  background:#fff;color:var(--c-ink-soft);font-family:inherit;font-size:13px;font-weight:600;
  cursor:pointer;text-align:left;box-shadow:var(--shadow-soft);white-space:nowrap;overflow:hidden;
}
.cat-search .cs-ico{font-size:15px;line-height:1;flex:0 0 auto;}
.cat-body{flex:1;min-height:0;display:flex;border-top:1px solid var(--c-line);}
.cat-side{
  flex:0 0 94px;overflow-y:auto;scrollbar-width:none;
  background:rgba(255,255,255,.46);border-right:1px solid var(--c-line);
}
.cat-side::-webkit-scrollbar{display:none;}
.cs-item{
  display:block;width:100%;padding:15px 6px;border:none;background:none;font-family:inherit;
  font-size:12.5px;font-weight:700;color:var(--c-ink-soft);cursor:pointer;line-height:1.35;
  position:relative;transition:background .18s,color .18s;
}
.cs-item.on{background:#fff;color:#0e8f76;font-size:13px;}
.cs-item.on::before{content:"";position:absolute;left:0;top:50%;transform:translateY(-50%);width:3px;height:18px;border-radius:0 3px 3px 0;background:#0e8f76;}
.cat-main{flex:1;min-width:0;overflow-y:auto;scrollbar-width:none;}
.cat-main::-webkit-scrollbar{display:none;}
.cat-panel{display:none;}
.cat-panel.on{display:block;}
.cat-head{
  position:sticky;top:0;z-index:2;padding:13px 12px 10px;font-size:14px;font-weight:900;
  background:linear-gradient(180deg,rgba(240,247,255,.97) 62%,rgba(240,247,255,0));
}
.crow{
  display:flex;gap:11px;padding:11px;margin:0 12px 10px;border-radius:var(--r-md);
  background:var(--c-surface);border:1px solid rgba(255,255,255,.7);
  box-shadow:var(--shadow-soft);cursor:pointer;transition:transform .14s ease;
  text-decoration:none;color:inherit;
}
.crow:active{transform:scale(.985);}
.crow:focus-visible{outline:3px solid var(--c-primary);outline-offset:2px;}
.crow .cimg{
  width:86px;height:86px;border-radius:14px;flex:0 0 auto;
  display:flex;align-items:center;justify-content:center;font-size:38px;
  background:linear-gradient(135deg,#eef6ff,#e3faf4);border:1px solid var(--c-line);
}
.crow .cinfo{flex:1 1 auto;min-width:0;display:flex;flex-direction:column;}
.crow .ctitle{font-size:13px;font-weight:800;line-height:1.4;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;}
.crow .cdesc{font-size:11.5px;color:var(--c-ink-soft);line-height:1.45;margin-top:3px;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;}
.crow .ctag{margin:6px 0 0;font-size:10.5px;font-weight:800;color:#d9582a;background:var(--c-warm-soft);border-radius:6px;padding:2px 7px;align-self:flex-start;}
.crow .cfoot{margin-top:auto;display:flex;align-items:flex-end;justify-content:space-between;gap:8px;padding-top:7px;}
.crow .cprice-wrap{min-width:0;}
.crow .cprice{color:#0e8f76;font-family:var(--font-disp);font-weight:900;font-size:18px;line-height:1;white-space:nowrap;}
.crow .cprice small{font-size:11px;}
.crow .cprice s{font-size:11px;color:var(--c-ink-soft);margin-left:5px;font-family:var(--font-sans);font-weight:600;}
.crow .csold{font-size:10.5px;color:var(--c-ink-soft);margin-top:3px;white-space:nowrap;}
.crow .cbuy{
  flex:0 0 auto;border:none;cursor:pointer;font-family:inherit;font-weight:800;font-size:12px;
  color:#fff;padding:8px 15px;border-radius:999px;
  background:linear-gradient(135deg,var(--c-warm),#ffa074);
  box-shadow:0 10px 18px -10px rgba(255,138,91,.85);transition:transform .12s;
}
.crow .cbuy:active{transform:scale(.94);}
.cat-fab{
  position:fixed;right:max(14px, calc(50% - 201px));bottom:calc(80px + env(safe-area-inset-bottom));
  width:50px;height:50px;border-radius:16px;border:none;cursor:pointer;
  background:linear-gradient(135deg,#0e8f76,var(--c-accent));color:#fff;
  display:flex;align-items:center;justify-content:center;font-size:22px;
  box-shadow:0 14px 26px -12px rgba(14,143,118,.85);z-index:9;transition:transform .14s;
}
.cat-fab:active{transform:scale(.92);}
.cat-fab:focus-visible{outline:3px solid var(--c-primary);outline-offset:3px;}
.cat-fab .badge{position:absolute;top:-5px;right:-5px;min-width:18px;height:18px;padding:0 4px;border-radius:9px;background:var(--c-warm);color:#fff;font-size:10px;font-weight:800;display:flex;align-items:center;justify-content:center;}

/* ============ 我的 ============ */
.me-head{margin-top:8px;padding:22px 18px;border-radius:var(--r-lg);background:linear-gradient(135deg,var(--c-primary-700),var(--c-primary) 60%,var(--c-accent));color:#fff;position:relative;overflow:hidden;}
.me-head::after{content:"";position:absolute;right:-40px;top:-50px;width:180px;height:180px;background:radial-gradient(circle,rgba(255,255,255,.22),transparent 70%);pointer-events:none;}
.me-head .top{display:flex;align-items:center;gap:14px;}
.me-head .top .avatar{width:56px;height:56px;font-size:22px;}
.me-head .top b{font-size:18px;font-weight:900;}
.me-head .top p{font-size:12.5px;opacity:.9;margin-top:3px;}
/* 设置入口：置于资料卡右上角（44×44 触摸目标；装饰性 ::after 已设 pointer-events:none，故按钮不会被挡） */
.me-head .top .me-set{margin-left:auto;flex:0 0 auto;text-decoration:none;width:44px;height:44px;padding:0;border-radius:50%;border:1px solid rgba(255,255,255,.34);background:rgba(255,255,255,.18);color:#fff;display:flex;align-items:center;justify-content:center;cursor:pointer;position:relative;z-index:1;transition:transform .12s,background .18s;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);}
.me-head .top .me-set:hover{background:rgba(255,255,255,.3);}
.me-head .top .me-set:active{transform:scale(.94);}
.me-head .top .me-set:focus-visible{outline:2px solid #fff;outline-offset:2px;}
@media (prefers-reduced-motion:reduce){.me-head .top .me-set{transition:none;}.me-head .top .me-set:active{transform:none;}}
.me-head .stats{display:flex;gap:10px;margin-top:18px;}
.me-head .stat{flex:1;background:rgba(255,255,255,.16);border-radius:14px;padding:11px;text-align:center;}
.me-head .stat b{font-family:var(--font-disp);font-size:19px;font-weight:900;display:block;}
.me-head .stat span{font-size:11.5px;opacity:.9;}
/* 资料卡数值位「我的分享」= 「我的团队」入口（整块可点；箭头用伪元素，不进 textContent） */
.me-head .stat.link{position:relative;z-index:1;display:block;text-decoration:none;color:inherit;cursor:pointer;transition:background .18s,transform .12s;}
.me-head .stat.link:hover{background:rgba(255,255,255,.28);}
.me-head .stat.link:active{transform:scale(.96);}
.me-head .stat.link:focus-visible{outline:2px solid #fff;outline-offset:2px;}
.me-head .stat.link span::after{content:"›";margin-left:4px;font-weight:900;opacity:.85;}
@media (prefers-reduced-motion:reduce){.me-head .stat.link{transition:none;}.me-head .stat.link:active{transform:none;}}

.me-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:10px;margin-top:14px;}
.me-cell{padding:14px 6px;border-radius:var(--r-md);text-align:center;cursor:pointer;transition:transform .12s;text-decoration:none;color:inherit;display:block;}
.me-cell:active{transform:scale(.96);}
.me-cell .mico{width:40px;height:40px;margin:0 auto 7px;border-radius:13px;background:var(--c-primary-soft);color:var(--c-primary);display:flex;align-items:center;justify-content:center;}
.me-cell:nth-child(2) .mico{background:var(--c-accent-soft);color:#0e8f76;}
.me-cell:nth-child(3) .mico{background:var(--c-warm-soft);color:#d9582a;}
.me-cell:nth-child(4) .mico{background:#eef0ff;color:#5b5bd6;}
.me-cell span{font-size:12px;font-weight:700;}

.me-row{padding:15px 16px;border-radius:var(--r-md);margin-top:11px;display:flex;align-items:center;gap:13px;cursor:pointer;text-decoration:none;color:inherit;}
.me-row .mrico{width:38px;height:38px;border-radius:11px;background:rgba(255,255,255,.7);display:flex;align-items:center;justify-content:center;flex:0 0 auto;color:var(--c-primary-700);}
.me-row b{font-size:14.5px;font-weight:800;flex:1 1 auto;}
.me-row .chev{color:var(--c-line-strong);}

/* 我的订单卡（个人中心）：全部 / 待付款 / 待发货 / 待收货 / 待评价 */
.order-hub{display:grid;grid-template-columns:repeat(5,1fr);gap:6px;padding:14px 8px;}
.oh{position:relative;display:flex;flex-direction:column;align-items:center;gap:7px;padding:6px 2px;border-radius:12px;text-decoration:none;color:inherit;cursor:pointer;transition:background .16s,transform .12s;}
.oh:hover{background:rgba(47,127,242,.07);}
.oh:active{transform:scale(.95);}
.oh:focus-visible{outline:3px solid var(--c-primary);outline-offset:2px;}
.oh .oh-ic{position:relative;width:38px;height:38px;border-radius:12px;display:flex;align-items:center;justify-content:center;background:var(--c-primary-soft);color:var(--c-primary);font-size:19px;line-height:1;}
.oh:nth-child(2) .oh-ic{background:var(--c-warm-soft);color:#d9582a;}
.oh:nth-child(3) .oh-ic{background:var(--c-accent-soft);color:#0e8f76;}
.oh:nth-child(4) .oh-ic{background:#eef0ff;color:#5b5bd6;}
.oh:nth-child(5) .oh-ic{background:#fdeef6;color:#d6489b;}
.oh .oh-tx{font-size:11.5px;font-weight:700;white-space:nowrap;color:var(--c-ink);}
.oh .oh-bd{position:absolute;top:-5px;right:-6px;min-width:17px;height:17px;padding:0 5px;border-radius:999px;background:var(--c-warm);color:#fff;font-size:10.5px;font-weight:800;font-style:normal;line-height:17px;text-align:center;box-shadow:0 2px 6px -2px rgba(255,138,91,.9);}
@media (prefers-reduced-motion:reduce){.oh{transition:none;}.oh:active{transform:none;}}


.foot-note{margin-top:20px;text-align:center;font-size:11px;color:var(--c-ink-soft);line-height:1.7;padding-bottom:6px;}

/* ============ 底部 Tab ============ */
.tabbar{
  position:fixed;left:0;right:0;bottom:0;margin:0 auto;
  width:100%;max-width:430px;z-index:8;
  display:flex;background:var(--c-surface-strong);
  border-top:1px solid rgba(255,255,255,.8);
  box-shadow:0 -10px 30px -18px rgba(29,43,58,.4);
  backdrop-filter:blur(18px);
  padding-bottom:env(safe-area-inset-bottom);
}
.tab{
  flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:3px;
  background:none;border:none;cursor:pointer;color:var(--c-ink-soft);font-family:inherit;font-size:11px;font-weight:700;
  text-decoration:none;
  transition:color .2s;position:relative;min-height:56px;
}
.tab svg{width:24px;height:24px;transition:transform .2s;}
.tab.on{color:var(--c-primary-700);}
.tab.on svg{transform:translateY(-2px);}
.tab.on::before{content:"";position:absolute;top:8px;width:32px;height:32px;border-radius:50%;background:var(--c-primary-soft);z-index:-1;}
.tab .badge{position:absolute;top:8px;right:50%;margin-right:-22px;min-width:17px;height:17px;padding:0 4px;border-radius:9px;background:var(--c-warm);color:#fff;font-size:10px;font-weight:800;display:flex;align-items:center;justify-content:center;}

/* ============ 弹层 / 浮层 ============ */
.overlay{
  position:fixed;inset:0;z-index:20;background:rgba(20,32,48,.46);
  display:flex;align-items:flex-end;justify-content:center;
  opacity:0;visibility:hidden;transition:opacity .28s ease,visibility .28s;
}
.overlay.show{opacity:1;visibility:visible;}
.sheet{
  width:100%;max-width:430px;background:linear-gradient(180deg,#fff,#f6faff);
  border-radius:26px 26px 0 0;padding:22px 20px 30px;
  transform:translateY(100%);transition:transform .32s cubic-bezier(.22,1,.36,1);
  max-height:86%;overflow-y:auto;box-shadow:0 -20px 50px -20px rgba(29,43,58,.5);
}
.overlay.show .sheet{transform:none;}
.sheet h3{font-size:18px;font-weight:900;margin-bottom:6px;}
.sheet .grip{width:42px;height:4px;border-radius:3px;background:var(--c-line-strong);margin:0 auto 16px;}
.q-progress{height:7px;border-radius:99px;background:var(--c-primary-soft);overflow:hidden;margin:6px 0 18px;}
.q-progress i{display:block;height:100%;width:0;background:linear-gradient(90deg,var(--c-primary),var(--c-accent));border-radius:99px;transition:width .35s ease;}
.q-text{font-size:17px;font-weight:800;line-height:1.5;margin-bottom:16px;}
.opt{
  display:flex;align-items:center;gap:12px;padding:15px 16px;border-radius:14px;
  background:#fff;border:1.5px solid var(--c-line);margin-bottom:11px;cursor:pointer;font-size:14.5px;font-weight:600;
  transition:border-color .15s,background .15s,transform .1s;
}
.opt:active{transform:scale(.99);}
.opt.sel{border-color:var(--c-primary);background:var(--c-primary-soft);color:var(--c-primary-700);}
.opt .mark{width:20px;height:20px;border-radius:50%;border:2px solid var(--c-line-strong);flex:0 0 auto;display:flex;align-items:center;justify-content:center;}
.opt.sel .mark{border-color:var(--c-primary);background:var(--c-primary);}
.opt.sel .mark::after{content:"";width:8px;height:8px;border-radius:50%;background:#fff;}

.result-ring{width:120px;height:120px;margin:8px auto 14px;position:relative;}
.result-ring svg{transform:rotate(-90deg);}
.result-ring .rv{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;font-family:var(--font-disp);}
.result-ring .rv b{font-size:34px;font-weight:900;color:var(--c-primary-700);line-height:1;}
.result-ring .rv span{font-size:11px;color:var(--c-ink-soft);font-weight:600;margin-top:3px;}

.check-line{display:flex;gap:11px;align-items:flex-start;padding:11px 0;border-bottom:1px solid var(--c-line);}
.check-line .ck{width:20px;height:20px;border-radius:6px;background:var(--c-accent);color:#fff;flex:0 0 auto;display:flex;align-items:center;justify-content:center;margin-top:2px;}
.check-line p{font-size:13px;line-height:1.55;}

.pay-row{display:flex;justify-content:space-between;align-items:center;padding:13px 0;border-bottom:1px solid var(--c-line);font-size:14px;}
.pay-row b{font-weight:800;}
.pay-row.total b{font-family:var(--font-disp);font-size:20px;color:var(--c-warm);}
.pay-bar{position:sticky;bottom:0;background:linear-gradient(180deg,rgba(255,255,255,0),#fff 36%);padding-top:14px;margin-top:8px;display:flex;gap:12px;align-items:center;}
.pay-bar .amt{flex:1;font-size:13px;color:var(--c-ink-soft);}
.pay-bar .amt b{font-family:var(--font-disp);font-size:22px;color:var(--c-warm);margin-left:4px;}

/* ===== 登录引导浮层 ===== */
.login-sheet h3{text-align:center;}
.login-sub{text-align:center;font-size:12px;color:var(--c-ink-soft);margin:8px 0 18px;line-height:1.6;}
.login-sub b{color:#f2562d;font-weight:800;}
.wx-btn{
  width:100%;display:flex;align-items:center;justify-content:center;gap:8px;
  background:linear-gradient(120deg,#2bb33f,#07c160);color:#fff;font-weight:800;font-size:15px;
  padding:14px;border-radius:14px;border:none;font-family:inherit;cursor:pointer;
  box-shadow:0 14px 26px -16px rgba(7,193,96,.9);transition:transform .12s;
}
.wx-btn:active{transform:scale(.985);}
.wx-btn:focus-visible{outline:3px solid var(--c-primary);outline-offset:2px;}
.wx-btn svg{flex:0 0 auto;}
.login-or{display:flex;align-items:center;gap:10px;margin:18px 0 13px;font-size:11px;color:var(--c-ink-soft);}
.login-or::before,.login-or::after{content:"";flex:1;height:1px;background:var(--c-line);}
.phone-row{display:flex;gap:8px;}
.phone-row input{
  flex:1 1 auto;min-width:0;border:1px solid var(--c-line);border-radius:12px;
  padding:12px 13px;font-size:14px;font-family:inherit;background:var(--c-surface);color:var(--c-ink);
}
.phone-row input:focus{outline:2px solid var(--c-primary);outline-offset:1px;}
.phone-row .code-btn{
  flex:0 0 auto;border:none;font-family:inherit;font-size:12.5px;font-weight:800;
  color:var(--c-primary-700);background:var(--c-primary-soft);padding:0 15px;border-radius:12px;cursor:pointer;
}
.login-ok{
  width:100%;margin-top:14px;border:none;font-family:inherit;cursor:pointer;
  background:linear-gradient(120deg,var(--c-primary),var(--c-accent));color:#fff;font-weight:800;font-size:15px;
  padding:13px;border-radius:14px;box-shadow:0 14px 26px -18px rgba(46,124,246,.95);
}
.login-agree{margin-top:14px;font-size:10.5px;color:var(--c-ink-soft);text-align:center;line-height:1.65;}
.login-agree a{color:var(--c-primary-700);}
.login-skip{
  margin-top:8px;width:100%;border:none;background:none;font-family:inherit;cursor:pointer;
  font-size:12.5px;color:var(--c-ink-soft);padding:10px;
}

/* ============ Toast ============ */
.toast{
  position:fixed;left:50%;bottom:calc(80px + env(safe-area-inset-bottom));transform:translate(-50%,16px);
  background:rgba(29,43,58,.92);color:#fff;padding:12px 20px;border-radius:14px;font-size:13.5px;font-weight:700;
  display:flex;align-items:center;gap:8px;z-index:40;opacity:0;visibility:hidden;pointer-events:none;transition:opacity .25s,transform .25s,visibility .25s;
  box-shadow:0 16px 30px -14px rgba(0,0,0,.5);max-width:min(84%,380px);
}
.toast.show{opacity:1;visibility:visible;transform:translate(-50%,0);}

/* ============ 二级页面（订单 / 咨询） ============ */
.subhead{display:flex;align-items:center;gap:10px;margin:8px 2px 14px;}
.back-btn{width:var(--tap);height:var(--tap);border:none;background:var(--c-surface);border-radius:13px;display:flex;align-items:center;justify-content:center;cursor:pointer;color:var(--c-ink);box-shadow:var(--shadow-soft);flex:0 0 auto;font-size:22px;line-height:1;text-decoration:none;}
.back-btn:active{transform:scale(.94);}
.subhead h2{font-size:18px;font-weight:900;}
.subhead .right{margin-left:auto;font-size:13px;font-weight:700;color:var(--c-primary);}

.order-status{margin-top:4px;padding:18px;border-radius:var(--r-md);background:linear-gradient(135deg,var(--c-primary),var(--c-accent));color:#fff;display:flex;align-items:center;gap:14px;}
.order-status .os-ico{width:46px;height:46px;border-radius:14px;background:rgba(255,255,255,.2);display:flex;align-items:center;justify-content:center;flex:0 0 auto;}
.order-status b{font-size:18px;font-weight:900;}
.order-status p{font-size:12.5px;opacity:.9;margin-top:2px;}

.timeline{margin-top:14px;padding:6px 16px;border-radius:var(--r-md);}
.tl-step{display:flex;gap:12px;position:relative;padding:12px 0;}
.tl-step .node{width:14px;height:14px;border-radius:50%;background:var(--c-primary);flex:0 0 auto;margin-top:3px;box-shadow:0 0 0 4px var(--c-primary-soft);}
.tl-step.past .node{background:var(--c-accent);box-shadow:0 0 0 4px var(--c-accent-soft);}
.tl-step .tl-body b{font-size:13.5px;font-weight:800;}
.tl-step .tl-body p{font-size:12px;color:var(--c-ink-soft);margin-top:2px;}
.tl-step:not(:last-child)::after{content:"";position:absolute;left:6px;top:26px;bottom:0;width:2px;background:var(--c-line);}

.info-row{display:flex;justify-content:space-between;gap:12px;padding:13px 0;border-bottom:1px solid var(--c-line);font-size:13.5px;}
.info-row:last-child{border-bottom:none;}
.info-row span{color:var(--c-ink-soft);flex:0 0 auto;}
.info-row b{font-weight:800;text-align:right;}

.chat-body{flex:1;padding:4px 2px 12px;overflow-y:auto;display:flex;flex-direction:column;gap:12px;min-height:0;}
.bubble{max-width:78%;padding:11px 14px;border-radius:16px;font-size:13.5px;line-height:1.55;box-shadow:var(--shadow-soft);}
.bubble.bot{background:#fff;align-self:flex-start;border-bottom-left-radius:5px;}
.bubble.me{background:linear-gradient(135deg,var(--c-primary),#5a97ff);color:#fff;align-self:flex-end;border-bottom-right-radius:5px;}
.bubble .t{font-size:10.5px;opacity:.6;margin-top:5px;}
.quick-q{display:flex;flex-wrap:wrap;gap:8px;padding:10px 2px 4px;}
.quick-q span{padding:7px 13px;border-radius:999px;background:var(--c-primary-soft);color:var(--c-primary-700);font-size:12px;font-weight:700;cursor:pointer;transition:transform .1s;}
.quick-q span:active{transform:scale(.96);}
.chat-input{position:sticky;bottom:0;display:flex;gap:10px;padding:12px 0 4px;background:linear-gradient(180deg,rgba(255,255,255,0),#fff 30%);}
.chat-input input{flex:1;min-height:var(--tap);border:1.5px solid var(--c-line);border-radius:13px;padding:0 15px;font-family:inherit;font-size:14px;background:#fff;}
.chat-input input:focus{outline:none;border-color:var(--c-primary);}
.chat-input .send{width:var(--tap);height:var(--tap);border:none;border-radius:13px;background:linear-gradient(135deg,var(--c-primary),#5a97ff);color:#fff;cursor:pointer;display:flex;align-items:center;justify-content:center;flex:0 0 auto;font-size:16px;}

/* ============ 任务中心 ============ */
.task-hero{margin-top:6px;padding:20px 18px;border-radius:var(--r-lg);background:linear-gradient(135deg,var(--c-warm),#ffb070 58%,var(--c-accent));color:#fff;position:relative;overflow:hidden;box-shadow:0 22px 44px -20px rgba(255,138,91,.6);}
.task-hero::before{content:"";position:absolute;right:-40px;top:-50px;width:190px;height:190px;background:radial-gradient(circle,rgba(255,255,255,.3),transparent 70%);}
.task-hero .th-top{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;}
.task-hero b{font-family:var(--font-disp);font-size:21px;font-weight:700;}
.task-hero p{font-size:12.5px;opacity:.92;margin-top:4px;}
.task-hero .points{text-align:right;flex:0 0 auto;}
.task-hero .points b{font-size:26px;display:block;line-height:1;}
.task-hero .points span{font-size:11px;opacity:.9;}

.signin-card{margin-top:14px;padding:18px;border-radius:var(--r-md);}
.signin-card .sc-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:14px;}
.signin-card .sc-head b{font-size:16px;font-weight:900;}
.week-strip{display:flex;gap:7px;margin-bottom:16px;}
.day-s{flex:1;text-align:center;padding:9px 0;border-radius:12px;background:var(--c-primary-soft);color:var(--c-primary-700);font-size:11px;font-weight:700;position:relative;}
.day-s .ds-d{font-family:var(--font-disp);font-size:15px;font-weight:900;display:block;line-height:1.2;}
.day-s.done{background:linear-gradient(135deg,var(--c-accent),#5fe0c4);color:#fff;}
.day-s.today{box-shadow:0 0 0 2px var(--c-primary);}
.day-s .ck{position:absolute;top:-6px;right:-4px;width:16px;height:16px;border-radius:50%;background:var(--c-warm);color:#fff;font-size:10px;display:flex;align-items:center;justify-content:center;}
.btn-block{width:100%;}
.signin-card .hint{font-size:11.5px;color:var(--c-ink-soft);text-align:center;margin-top:11px;}

.task-list{margin-top:6px;display:flex;flex-direction:column;gap:12px;}
.task-item{padding:15px 16px;border-radius:var(--r-md);display:flex;align-items:center;gap:13px;}
.task-item .tico{width:42px;height:42px;border-radius:13px;background:var(--c-primary-soft);color:var(--c-primary);display:flex;align-items:center;justify-content:center;flex:0 0 auto;font-size:20px;}
.task-item:nth-child(2) .tico{background:var(--c-accent-soft);color:#0e8f76;}
.task-item:nth-child(3) .tico{background:var(--c-warm-soft);color:#d9582a;}
.task-item:nth-child(4) .tico{background:#eef0ff;color:#5b5bd6;}
.task-item .tbody{flex:1 1 auto;}
.task-item .tbody b{font-size:14.5px;font-weight:800;display:block;}
.task-item .tbody p{font-size:12px;color:var(--c-ink-soft);margin-top:2px;}
.task-item .treward{font-size:12px;font-weight:800;color:var(--c-warm);margin-right:10px;flex:0 0 auto;}

/* 首页签到 banner */
.signin-banner{margin-top:16px;padding:15px 16px;border-radius:var(--r-md);background:linear-gradient(120deg,#fff,#fff4ec);border:1px solid #ffd9c4;display:flex;align-items:center;gap:13px;}
.signin-banner .sb-ico{width:42px;height:42px;border-radius:13px;background:linear-gradient(135deg,var(--c-warm),#ffb070);display:flex;align-items:center;justify-content:center;flex:0 0 auto;font-size:20px;}
.signin-banner .sb-body{flex:1 1 auto;}
.signin-banner .sb-body b{font-size:14.5px;font-weight:800;}
.signin-banner .sb-body p{font-size:12px;color:var(--c-ink-soft);margin-top:2px;}

/* ===== 家庭账号（会员中心） ===== */
.family-zone{margin-top:16px;padding:15px 15px 14px;border-radius:var(--r-md);background:linear-gradient(150deg,#eff7ff,#f4fbff 60%,#fff);border:1px solid #cfe4fb;box-shadow:0 18px 34px -24px rgba(46,124,246,.6);}
.fz-head{display:flex;align-items:center;gap:8px;}
.fz-head .fz-ico{width:34px;height:34px;border-radius:11px;flex:0 0 auto;display:flex;align-items:center;justify-content:center;font-size:17px;background:linear-gradient(135deg,var(--c-primary),var(--c-accent));box-shadow:0 10px 18px -12px rgba(46,124,246,.95);}
.fz-head h2{font-size:16px;font-weight:900;font-family:var(--font-disp);line-height:1.2;}
.fz-head .fz-sub{font-size:10.5px;color:var(--c-ink-soft);display:block;margin-top:1px;font-weight:600;}
.fz-head .fz-add{
  margin-left:auto;flex:0 0 auto;border:none;font-family:inherit;cursor:pointer;
  font-size:12px;font-weight:800;color:var(--c-primary-700);background:var(--c-primary-soft);
  padding:7px 13px;border-radius:999px;
}
.fz-add:focus-visible{outline:3px solid var(--c-primary);outline-offset:2px;}
.fz-tip{
  margin-top:11px;padding:9px 11px;border-radius:var(--r-sm);font-size:11.5px;line-height:1.55;
  color:#2c5c96;background:rgba(255,255,255,.78);border:1px dashed #bcd8f8;
}
.fz-tip b{color:var(--c-primary-700);}
.fz-list{margin-top:11px;display:flex;flex-direction:column;gap:9px;}
.fmem{
  display:flex;align-items:center;flex-wrap:wrap;gap:11px;padding:11px 12px;border-radius:14px;
  background:#fff;border:1px solid var(--c-line);box-shadow:var(--shadow-soft);cursor:pointer;
  transition:border-color .15s,transform .1s;
}
.fmem:active{transform:scale(.99);}
.fmem.open{border-color:var(--c-primary);}
.fmem.pending{opacity:.72;}
.fmem .fm-av{
  width:40px;height:40px;border-radius:13px;flex:0 0 auto;display:flex;align-items:center;justify-content:center;
  font-size:16px;font-weight:800;color:#fff;background:linear-gradient(135deg,#7aa7f0,#4f83e8);
}
.fmem[data-rel="爱人"] .fm-av{background:linear-gradient(135deg,#ff9db1,#f2648c);}
.fmem[data-rel="女儿"] .fm-av{background:linear-gradient(135deg,#ffc48a,#ff9445);}
.fmem[data-rel="儿子"] .fm-av{background:linear-gradient(135deg,#7fd8c2,#26b391);}
.fmem .fm-body{flex:1 1 auto;min-width:0;}
.fmem .fm-name{font-size:13.5px;font-weight:800;display:flex;align-items:center;gap:6px;}
.fmem .fm-rel{font-size:10px;font-weight:800;color:var(--c-primary-700);background:var(--c-primary-soft);padding:2px 7px;border-radius:999px;}
.fmem .fm-meta{font-size:11px;color:var(--c-ink-soft);margin-top:2px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.fmem .fm-meta .on{color:#0e8f76;font-weight:700;}
.fmem .fm-meta .off{color:#b3bfcd;font-weight:700;}
.fm-sw{position:relative;flex:0 0 auto;width:44px;height:26px;}
.fm-sw input{position:absolute;opacity:0;width:0;height:0;}
.fm-sw i{
  display:block;width:44px;height:26px;border-radius:999px;background:#dbe4ee;position:relative;
  transition:background .22s;cursor:pointer;
}
.fm-sw i::after{
  content:"";position:absolute;left:3px;top:3px;width:20px;height:20px;border-radius:50%;
  background:#fff;box-shadow:0 2px 6px rgba(29,43,58,.28);transition:transform .22s;
}
.fm-sw input:checked + i{background:linear-gradient(120deg,var(--c-primary),var(--c-accent));}
.fm-sw input:checked + i::after{transform:translateX(18px);}
.fm-sw input:focus-visible + i{outline:3px solid var(--c-primary);outline-offset:2px;}
.fm-tags{display:none;flex:0 0 100%;flex-wrap:wrap;gap:7px;margin-top:10px;padding-top:10px;border-top:1px dashed var(--c-line);}
.fmem.open .fm-tags{display:flex;}
.fm-tag{
  font-size:11px;font-weight:700;color:var(--c-ink-soft);background:#f1f5fa;border:1px solid var(--c-line);
  padding:5px 11px;border-radius:999px;cursor:pointer;transition:all .15s;
}
.fm-tag.on{color:#fff;background:linear-gradient(120deg,var(--c-primary),var(--c-accent));border-color:transparent;}
.fz-test{
  margin-top:12px;width:100%;border:none;font-family:inherit;cursor:pointer;
  font-size:12.5px;font-weight:800;color:#b8491a;background:rgba(255,255,255,.85);
  border:1px dashed #ffc79a;padding:11px;border-radius:12px;
}
.fz-test:focus-visible{outline:3px solid var(--c-primary);outline-offset:2px;}

/* 绑定家人浮层 */
.rel-chips{display:flex;flex-wrap:wrap;gap:9px;margin:6px 0 16px;}
.rel-chip{
  font-size:13px;font-weight:700;padding:9px 16px;border-radius:999px;cursor:pointer;
  background:#f1f5fa;border:1.5px solid var(--c-line);color:var(--c-ink-soft);font-family:inherit;
}
.rel-chip.on{color:#fff;background:linear-gradient(120deg,var(--c-primary),var(--c-accent));border-color:transparent;}
.rel-chip:focus-visible{outline:3px solid var(--c-primary);outline-offset:2px;}
.nf-row{
  display:flex;align-items:center;gap:11px;padding:12px 13px;border-radius:13px;
  background:#fff;border:1px solid var(--c-line);margin-bottom:9px;font-size:13.5px;font-weight:700;cursor:pointer;
}
.nf-row .nf-ck{
  margin-left:auto;flex:0 0 auto;width:22px;height:22px;border-radius:7px;border:2px solid var(--c-line-strong);
  display:flex;align-items:center;justify-content:center;color:#fff;font-size:12px;
}
.nf-row.on{border-color:var(--c-primary);background:var(--c-primary-soft);color:var(--c-primary-700);}
.nf-row.on .nf-ck{background:var(--c-primary);border-color:var(--c-primary);}
.nf-row .nf-note{display:block;font-size:11px;color:var(--c-ink-soft);font-weight:600;margin-top:2px;}

/* 健康告警同步浮层 */
.alert-sheet h3{text-align:center;}
.alert-hero{
  margin:12px 0 14px;padding:14px;border-radius:16px;text-align:center;
  background:linear-gradient(135deg,#fff1e8,#ffe3d2);border:1px solid #ffc9a8;
}
.alert-hero .ah-ico{font-size:26px;}
.alert-hero b{display:block;font-size:15.5px;font-weight:900;color:#b8491a;margin-top:6px;font-family:var(--font-disp);}
.alert-hero p{font-size:12px;color:#a3552a;margin-top:4px;line-height:1.55;}
.an-title{font-size:12.5px;font-weight:800;color:var(--c-ink-soft);margin-bottom:9px;}
.an-item{
  display:flex;align-items:center;gap:10px;padding:11px 12px;border-radius:13px;
  background:#fff;border:1px solid var(--c-line);margin-bottom:9px;
}
.an-item .an-av{width:34px;height:34px;border-radius:11px;flex:0 0 auto;display:flex;align-items:center;justify-content:center;color:#fff;font-weight:800;font-size:14px;background:linear-gradient(135deg,#7aa7f0,#4f83e8);}
.an-item[data-rel="爱人"] .an-av{background:linear-gradient(135deg,#ff9db1,#f2648c);}
.an-item[data-rel="女儿"] .an-av{background:linear-gradient(135deg,#ffc48a,#ff9445);}
.an-item[data-rel="儿子"] .an-av{background:linear-gradient(135deg,#7fd8c2,#26b391);}
.an-item .an-body{flex:1 1 auto;min-width:0;}
.an-item .an-body b{font-size:13.5px;font-weight:800;}
.an-item .an-body p{font-size:11px;color:var(--c-ink-soft);margin-top:2px;}
.an-item .an-ok{flex:0 0 auto;font-size:11px;font-weight:800;color:#0e8f76;background:var(--c-accent-soft);padding:4px 9px;border-radius:999px;}
.an-item.skip{opacity:.55;}
.an-item.skip .an-ok{color:var(--c-ink-soft);background:#eef2f7;}
.an-off{margin-top:6px;font-size:11px;color:var(--c-ink-soft);text-align:center;line-height:1.6;}

/* 激励视频浮层 */
#rewardOverlay{background:rgba(8,14,22,.97);align-items:center;justify-content:center;padding:0;}
.reward-video{width:100%;max-width:430px;height:100%;display:flex;flex-direction:column;justify-content:center;align-items:center;gap:22px;padding:30px;box-sizing:border-box;}
.rv-screen{width:84%;aspect-ratio:3/4;max-height:56%;border-radius:18px;background:linear-gradient(160deg,#1f3a6b,#173a52 60%,#0e8f76);position:relative;overflow:hidden;display:flex;align-items:center;justify-content:center;box-shadow:0 30px 60px -20px rgba(0,0,0,.7);}
.rv-screen::after{content:"";position:absolute;inset:0;background:radial-gradient(circle at 30% 20%,rgba(255,255,255,.18),transparent 55%);}
.rv-play{width:64px;height:64px;border-radius:50%;background:rgba(255,255,255,.85);display:flex;align-items:center;justify-content:center;color:var(--c-primary-700);font-size:24px;padding-left:5px;animation:pulse 1.6s ease-in-out infinite;}
.rv-tip{position:absolute;bottom:16px;left:0;right:0;text-align:center;color:rgba(255,255,255,.85);font-size:12.5px;font-weight:600;padding:0 12px;}
@keyframes pulse{0%,100%{transform:scale(1);opacity:.9;}50%{transform:scale(1.12);opacity:1;}}
.rv-bar{width:84%;display:flex;align-items:center;justify-content:space-between;gap:14px;}
.rv-count{color:rgba(255,255,255,.8);font-size:13px;font-weight:600;}
.rv-action{background:linear-gradient(135deg,var(--c-primary),#5a97ff);color:#fff;border:none;border-radius:13px;min-height:var(--tap);padding:0 22px;font-family:inherit;font-weight:800;font-size:14px;cursor:pointer;transition:transform .12s,filter .2s;}
.rv-action:disabled{background:rgba(255,255,255,.2);color:rgba(255,255,255,.55);cursor:not-allowed;}
.rv-action:not(:disabled):active{transform:scale(.96);}

/* ============ 健档页：健康档案 / 我的测评 分段切换 ============ */
/* ============ 通用分段切换（健档 / 我的优惠券 等） ============ */
.seg-tabs{
  display:flex;gap:6px;margin:16px 0 2px;padding:5px;
  background:rgba(255,255,255,.72);border:1px solid rgba(255,255,255,.85);
  border-radius:15px;box-shadow:var(--shadow-soft);backdrop-filter:blur(14px);
  position:sticky;top:env(safe-area-inset-top);z-index:6;
}
.seg-tab{
  flex:1;display:flex;align-items:center;justify-content:center;gap:5px;
  padding:10px 0;border-radius:11px;border:none;background:none;
  font-family:inherit;font-size:14px;font-weight:800;color:var(--c-ink-soft);
  cursor:pointer;transition:all .18s;min-height:var(--tap);
}
.seg-tab .seg-n{
  font-size:11px;font-weight:800;padding:1px 7px;border-radius:999px;
  background:rgba(47,127,242,.12);color:var(--c-primary-700);
}
.seg-tab.on{background:linear-gradient(135deg,var(--c-primary),#5a97ff);color:#fff;box-shadow:0 10px 20px -12px rgba(47,127,242,.7);}
.seg-tab.on .seg-n{background:rgba(255,255,255,.26);color:#fff;}
.seg-tab:focus-visible{outline:3px solid var(--c-primary);outline-offset:2px;}
.seg-pane{display:none;animation:segFade .22s ease;}
.seg-pane.on{display:block;}
@keyframes segFade{from{opacity:0;transform:translateY(6px);}to{opacity:1;transform:none;}}

/* ============ 订单列表 ============ */
.order-tabs{display:flex;gap:6px;margin-top:4px;background:var(--c-surface);border:1px solid rgba(255,255,255,.7);border-radius:14px;padding:5px;}
.order-tab{flex:1;text-align:center;padding:9px 0;border-radius:10px;font-size:13px;font-weight:800;color:var(--c-ink-soft);cursor:pointer;border:none;background:none;font-family:inherit;transition:all .18s;min-height:var(--tap);}
.order-tab.on{background:linear-gradient(135deg,var(--c-primary),#5a97ff);color:#fff;box-shadow:0 10px 20px -12px rgba(47,127,242,.7);}
.order-panel{margin-top:14px;display:none;}
.order-panel.on{display:block;}
.order-card{padding:15px 16px;border-radius:var(--r-md);margin-top:12px;display:block;}
.oc-head{display:flex;align-items:center;justify-content:space-between;font-size:12.5px;padding-bottom:11px;border-bottom:1px solid var(--c-line);}
.oc-no{color:var(--c-ink-soft);font-weight:600;}
.oc-status{font-weight:800;color:var(--c-warm);}
.oc-status.recv{color:var(--c-primary-700);}
.oc-status.ship{color:#0e8f76;}
.oc-status.review{color:#5b5bd6;}
.oc-product{display:flex;gap:13px;padding:13px 0;border-bottom:1px solid var(--c-line);}
.oc-product .thumb{width:64px;height:64px;border-radius:13px;flex:0 0 auto;background:linear-gradient(135deg,#eef6ff,#e3faf4);display:flex;align-items:center;justify-content:center;color:var(--c-primary);border:1px solid var(--c-line);}
.oc-product .oc-body{flex:1 1 auto;min-width:0;}
.oc-product .oc-body b{font-size:14.5px;font-weight:900;display:block;}
.oc-product .oc-body p{font-size:12px;color:var(--c-ink-soft);margin:3px 0 5px;}
.oc-product .price{font-family:var(--font-disp);font-weight:900;color:var(--c-warm);font-size:17px;}
.oc-actions{display:flex;gap:9px;justify-content:flex-end;margin-top:12px;}

/* ============ 商品详情页（主视觉 + 价格 + 规格 + 产品介绍 + 底部操作栏） ============ */
.detail-page{padding-bottom:calc(84px + env(safe-area-inset-bottom));}

.dp-hero{
  position:relative;overflow:hidden;padding:calc(14px + env(safe-area-inset-top)) 18px 30px;
  border-radius:0 0 28px 28px;color:#fff;
  background:linear-gradient(158deg,#0e8f76 0%,#2bb39a 46%,#7ce3cb 100%);
  box-shadow:0 22px 44px -26px rgba(14,143,118,.8);
}
.dp-hero::after{content:"";position:absolute;right:-46px;bottom:-64px;width:220px;height:220px;border-radius:50%;background:radial-gradient(circle,rgba(255,255,255,.32),transparent 70%);}
.dp-nav{position:relative;z-index:2;display:flex;align-items:center;gap:9px;}
.dp-back{width:38px;height:38px;border-radius:50%;font-size:21px;background:rgba(255,255,255,.92);color:#0e8f76;box-shadow:0 8px 18px -12px rgba(0,0,0,.45);}
.dp-nav .dp-ico{margin-left:auto;display:flex;gap:9px;}
.dp-nav .dp-round{
  width:38px;height:38px;border-radius:50%;border:none;cursor:pointer;font-family:inherit;
  background:rgba(255,255,255,.92);color:#0e8f76;font-size:16px;
  display:flex;align-items:center;justify-content:center;text-decoration:none;
  box-shadow:0 8px 18px -12px rgba(0,0,0,.45);
}
.dp-nav .dp-round:active{transform:scale(.93);}
.dp-nav .dp-round:focus-visible{outline:3px solid #fff;outline-offset:2px;}
.dp-slogan{position:relative;z-index:2;margin-top:20px;}
.dp-slogan h1{font-family:var(--font-disp);font-size:28px;font-weight:700;line-height:1.32;letter-spacing:.5px;}
.dp-pill{
  display:inline-flex;align-items:center;gap:6px;margin-top:12px;
  background:rgba(255,255,255,.94);color:#0e8f76;font-weight:800;font-size:12.5px;
  padding:7px 15px;border-radius:999px;
}
.dp-visual{
  position:relative;z-index:2;width:148px;height:148px;margin:12px auto 0;border-radius:36px;
  display:flex;align-items:center;justify-content:center;font-size:70px;
  background:rgba(255,255,255,.22);border:1px solid rgba(255,255,255,.5);
  transform:rotate(-6deg);
}

.dp-price{
  position:relative;z-index:3;margin:-18px 14px 0;padding:16px 16px 15px;
  border-radius:var(--r-md);background:#fff;box-shadow:0 18px 36px -22px rgba(29,43,58,.5);
}
.dp-prow{display:flex;align-items:flex-start;gap:10px;}
.dp-pcol{flex:1 1 auto;min-width:0;}
.dp-now{display:flex;align-items:baseline;font-family:var(--font-disp);font-weight:900;color:#0e8f76;font-size:30px;line-height:1;}
.dp-now small{font-size:16px;}
.dp-old{margin-top:5px;font-size:12px;color:var(--c-ink-soft);}
.dp-old s{text-decoration:line-through;}
.dp-share{
  flex:0 0 auto;width:36px;height:36px;border-radius:12px;cursor:pointer;font-family:inherit;
  border:1px solid var(--c-line);background:#fff;color:var(--c-primary-700);font-size:16px;
  display:flex;align-items:center;justify-content:center;
}
.dp-share:active{transform:scale(.93);}
.dp-trow{display:flex;align-items:flex-start;gap:10px;margin-top:12px;}
.dp-title{flex:1 1 auto;min-width:0;font-size:14.5px;font-weight:800;line-height:1.45;}
.dp-stats{flex:0 0 auto;font-size:11px;color:var(--c-ink-soft);text-align:right;line-height:1.8;font-weight:600;}
.dp-stats b{color:var(--c-ink);font-weight:800;}

.dp-spec{
  display:flex;align-items:center;gap:8px;width:calc(100% - 28px);margin:12px 14px 0;
  padding:15px 16px;border-radius:var(--r-md);background:#fff;border:1px solid var(--c-line);
  box-shadow:var(--shadow-soft);cursor:pointer;font-family:inherit;font-size:13.5px;color:inherit;text-align:left;
  transition:transform .12s;
}
.dp-spec:active{transform:scale(.99);}
.dp-spec .k{color:var(--c-ink-soft);flex:0 0 auto;}
.dp-spec .v{flex:1 1 auto;min-width:0;font-weight:800;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.dp-spec .chev{flex:0 0 auto;color:var(--c-line-strong);}

.dp-sechead{display:flex;align-items:center;gap:12px;margin:24px 14px 0;font-size:13px;font-weight:800;color:var(--c-ink-soft);}
.dp-sechead::before,.dp-sechead::after{content:"";flex:1;height:1px;background:var(--c-line);}
.dp-desc{margin:14px 14px 0;display:flex;flex-direction:column;gap:12px;}
.dp-fig{border-radius:var(--r-md);overflow:hidden;border:1px solid var(--c-line);background:#fff;box-shadow:var(--shadow-soft);}
.dp-fig .fig-img{height:156px;display:flex;align-items:center;justify-content:center;font-size:62px;background:linear-gradient(150deg,#e4f4ff,#dcf9ee);}
.dp-fig:nth-child(2n) .fig-img{background:linear-gradient(150deg,#fff2ea,#eafaf2);}
.dp-fig .fig-cap{padding:12px 14px;font-size:13px;font-weight:800;}
.dp-fig .fig-cap p{font-size:11.5px;color:var(--c-ink-soft);font-weight:600;margin-top:4px;line-height:1.6;}
.dp-params{margin:14px 14px 0;padding:4px 16px;border-radius:var(--r-md);}

/* 底部固定操作栏 */
.dp-bar{
  position:fixed;left:0;right:0;bottom:0;margin:0 auto;width:100%;max-width:430px;z-index:9;
  display:flex;align-items:center;gap:8px;
  padding:9px 12px calc(9px + env(safe-area-inset-bottom));
  background:var(--c-surface-strong);border-top:1px solid rgba(255,255,255,.8);
  box-shadow:0 -10px 30px -18px rgba(29,43,58,.4);backdrop-filter:blur(18px);
}
.dp-icobtn{
  flex:0 0 auto;width:50px;display:flex;flex-direction:column;align-items:center;gap:2px;position:relative;
  background:none;border:none;font-family:inherit;font-size:10px;font-weight:700;color:var(--c-ink-soft);
  cursor:pointer;text-decoration:none;padding:2px 0;
}
.dp-icobtn .i{font-size:19px;line-height:1;}
.dp-icobtn .badge{position:absolute;top:-4px;right:4px;min-width:17px;height:17px;padding:0 4px;border-radius:9px;background:var(--c-warm);color:#fff;font-size:10px;font-weight:800;display:flex;align-items:center;justify-content:center;}
.dp-act{
  flex:1 1 0;min-width:0;min-height:46px;border:none;border-radius:999px;cursor:pointer;font-family:inherit;
  font-weight:800;font-size:14px;color:#fff;transition:transform .12s;
}
.dp-act:active{transform:scale(.97);}
.dp-cart{background:linear-gradient(135deg,#ff9a5b,#f2562d);box-shadow:0 12px 24px -14px rgba(242,86,45,.95);}
.dp-buy{background:linear-gradient(135deg,#0e8f76,#16c2a3);box-shadow:0 12px 24px -14px rgba(14,143,118,.95);}

/* 规格选择浮层 */
.spec-head{display:flex;align-items:center;gap:12px;margin:4px 0 14px;}
.spec-head .spec-img{width:76px;height:76px;border-radius:18px;flex:0 0 auto;display:flex;align-items:center;justify-content:center;font-size:34px;background:linear-gradient(135deg,#eef6ff,#e3faf4);border:1px solid var(--c-line);}
.spec-head .spec-info{flex:1 1 auto;min-width:0;}
.spec-head .spec-info b{font-family:var(--font-disp);font-size:23px;font-weight:900;color:#0e8f76;}
.spec-head .spec-info p{font-size:11.5px;color:var(--c-ink-soft);margin-top:4px;}
.spec-close{flex:0 0 auto;width:34px;height:34px;border-radius:12px;border:1px solid var(--c-line);background:#fff;color:var(--c-ink-soft);cursor:pointer;font-size:15px;font-family:inherit;}
.spec-label{font-size:12.5px;font-weight:800;margin-top:16px;}
.spec-chips{display:flex;flex-wrap:wrap;gap:9px;margin-top:10px;}
.spec-chip{
  font-family:inherit;font-size:12.5px;font-weight:700;padding:10px 15px;border-radius:12px;cursor:pointer;
  background:#f1f5fa;border:1.5px solid var(--c-line);color:var(--c-ink-soft);transition:all .15s;
}
.spec-chip.on{color:#0e8f76;background:var(--c-accent-soft);border-color:#0e8f76;}
.qty-row{display:flex;align-items:center;margin-top:10px;}
.qbtn{width:42px;height:42px;border:1px solid var(--c-line);background:#fff;color:var(--c-ink);font-size:18px;font-weight:800;cursor:pointer;font-family:inherit;}
.qbtn:first-child{border-radius:11px 0 0 11px;}
.qbtn:last-child{border-radius:0 11px 11px 0;}
.qbtn:disabled{color:var(--c-line-strong);cursor:not-allowed;}
.qval{width:60px;height:42px;border-top:1px solid var(--c-line);border-bottom:1px solid var(--c-line);display:flex;align-items:center;justify-content:center;font-weight:800;font-size:15px;}

/* ============ 健康讲堂（列表 + 详情） ============ */
.lec-hero{padding:20px;border-radius:var(--r-lg);background:linear-gradient(135deg,#e8f1ff,#e3faf4);border:1px solid rgba(255,255,255,.85);}
.lec-hero h2{font-size:19px;font-weight:900;}
.lec-hero p{font-size:12.5px;color:var(--c-ink-soft);margin-top:6px;line-height:1.7;}
.lec-cats{display:flex;gap:8px;overflow-x:auto;padding:14px 2px 4px;scrollbar-width:none;}
.lec-cats::-webkit-scrollbar{display:none;}
.lec-chip{flex:0 0 auto;padding:9px 15px;border-radius:999px;border:1px solid var(--c-line);background:var(--c-surface);font-family:inherit;font-size:12.5px;font-weight:800;color:var(--c-ink-soft);cursor:pointer;transition:all .18s;min-height:var(--tap);}
.lec-chip.on{background:var(--c-primary);border-color:transparent;color:#fff;box-shadow:0 8px 18px -10px rgba(47,127,242,.85);}
.lcard{display:flex;gap:13px;padding:13px;margin-top:12px;border-radius:var(--r-md);background:var(--c-surface);border:1px solid rgba(255,255,255,.75);box-shadow:var(--shadow-soft);cursor:pointer;transition:transform .14s ease;text-decoration:none;color:inherit;}
.lcard:active{transform:scale(.985);}
.lcard:focus-visible{outline:3px solid var(--c-primary);outline-offset:2px;}
.lcard .lcover{width:96px;height:96px;border-radius:15px;flex:0 0 auto;display:flex;align-items:center;justify-content:center;font-size:40px;background:linear-gradient(135deg,#eef6ff,#e3faf4);border:1px solid var(--c-line);position:relative;}
.lcard .lcover .ltag{position:absolute;left:6px;top:6px;font-size:9.5px;font-weight:800;color:#fff;background:rgba(47,127,242,.92);border-radius:6px;padding:2px 6px;font-style:normal;}
.lcard .lbody{flex:1 1 auto;min-width:0;display:flex;flex-direction:column;}
.lcard .ltitle{font-size:14.5px;font-weight:800;line-height:1.42;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;}
.lcard .ldesc{font-size:12px;color:var(--c-ink-soft);line-height:1.5;margin-top:5px;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;}
.lcard .lmeta{margin-top:auto;padding-top:9px;display:flex;align-items:center;gap:10px;font-size:11px;color:var(--c-ink-soft);}
.lcard .lmeta .lk{margin-left:auto;color:var(--c-primary);font-weight:800;}
.lec-more{margin-top:26px;text-align:center;font-size:12px;color:var(--c-ink-soft);}

/* 讲堂详情（图文排版） */
.art-head{padding:20px;border-radius:var(--r-lg);background:linear-gradient(135deg,#e8f1ff,#e3faf4);border:1px solid rgba(255,255,255,.85);}
.art-head .atag{display:inline-block;font-size:11px;font-weight:800;color:var(--c-primary-700);background:var(--c-primary-soft);border-radius:999px;padding:3px 10px;}
.art-head h1{font-size:20px;font-weight:900;line-height:1.4;margin-top:10px;}
.art-head .ameta{display:flex;gap:14px;font-size:11.5px;color:var(--c-ink-soft);margin-top:10px;}
.art-fig{height:152px;border-radius:var(--r-md);margin-top:16px;display:flex;align-items:center;justify-content:center;font-size:54px;background:linear-gradient(135deg,#eef6ff,#e3faf4);border:1px solid var(--c-line);}
.art-body{margin-top:6px;}
.art-body h3{font-size:15.5px;font-weight:900;margin:20px 0 8px;padding-left:12px;position:relative;}
.art-body h3::before{content:"";position:absolute;left:0;top:4px;bottom:4px;width:4px;border-radius:3px;background:linear-gradient(180deg,var(--c-primary),var(--c-accent));}
.art-body p{font-size:13.5px;color:#33465a;line-height:1.85;margin-top:6px;}
.art-body ul{margin:6px 0 0;padding:0;list-style:none;}
.art-body li{font-size:13.5px;color:#33465a;line-height:1.8;padding-left:18px;position:relative;}
.art-body li::before{content:"";position:absolute;left:4px;top:10px;width:6px;height:6px;border-radius:50%;background:var(--c-accent);}
.art-tip{margin-top:18px;padding:13px 15px;border-radius:var(--r-sm);background:var(--c-warm-soft);border:1px solid rgba(255,138,91,.28);}
.art-tip b{font-size:13px;color:#d9582a;}
.art-tip p{font-size:12.5px;color:#8a5238;line-height:1.7;margin-top:4px;}
.art-rel{margin-top:18px;}
.art-rel .rl{font-size:13.5px;font-weight:900;margin-bottom:10px;}
.art-rel a{display:flex;align-items:center;gap:10px;padding:12px 14px;border-radius:var(--r-sm);background:var(--c-surface);border:1px solid var(--c-line);margin-top:9px;font-size:13px;font-weight:700;text-decoration:none;color:inherit;}
.art-rel a span{margin-left:auto;color:var(--c-line-strong);}
.art-bar{position:fixed;left:0;right:0;bottom:0;z-index:9;max-width:430px;margin:0 auto;padding:12px 18px calc(12px + env(safe-area-inset-bottom));background:var(--c-surface-strong);border-top:1px solid rgba(255,255,255,.8);backdrop-filter:blur(18px);display:flex;gap:10px;}
.art-bar .ab-fav{flex:0 0 auto;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;min-width:56px;border:none;background:none;font-family:inherit;font-size:10.5px;font-weight:700;color:var(--c-ink-soft);cursor:pointer;}
.art-bar .ab-fav.on{color:var(--c-warm);}
.art-bar .ab-fav i{font-style:normal;font-size:19px;}
.bar-space{height:88px;}

/* ============ 限时活动 ============ */
.act-hero{padding:20px;border-radius:var(--r-lg);background:linear-gradient(135deg,#ffe9dd,#fff4ec);border:1px solid rgba(255,255,255,.85);}
.act-hero .ah-tag{display:inline-block;font-size:11px;font-weight:800;color:#fff;background:linear-gradient(135deg,#ff8a5b,#ff6f3c);border-radius:999px;padding:3px 11px;}
.act-hero h2{font-size:19px;font-weight:900;color:#b8451f;margin-top:10px;}
.act-hero p{font-size:12.5px;color:#8a5238;margin-top:6px;}
.act-cd{display:flex;gap:6px;align-items:center;margin-top:14px;font-size:12px;color:#8a5238;font-weight:800;}
.act-cd i{font-style:normal;font-family:var(--font-disp);font-weight:900;font-size:15px;color:#fff;background:#d9582a;border-radius:8px;padding:3px 8px;min-width:34px;text-align:center;}
.act-card{margin-top:12px;padding:14px;border-radius:var(--r-md);background:var(--c-surface);border:1px solid rgba(255,255,255,.75);box-shadow:var(--shadow-soft);}
.act-top{display:flex;align-items:center;gap:11px;}
.act-top .ai{width:46px;height:46px;border-radius:14px;flex:0 0 auto;display:flex;align-items:center;justify-content:center;font-size:23px;background:var(--c-warm-soft);}
.act-top .ab{flex:1 1 auto;min-width:0;}
.act-top .ab b{font-size:14.5px;font-weight:800;display:block;}
.act-top .ab p{font-size:11.5px;color:var(--c-ink-soft);margin-top:3px;}
.act-top .astate{flex:0 0 auto;font-size:11px;font-weight:800;padding:4px 9px;border-radius:999px;background:var(--c-primary-soft);color:var(--c-primary-700);}
.act-top .astate.soon{background:var(--c-warm-soft);color:#d9582a;}
.act-top .astate.ended{background:var(--c-line);color:var(--c-ink-soft);}
.act-bar{height:9px;border-radius:999px;background:var(--c-primary-soft);overflow:hidden;margin-top:13px;}
.act-bar i{display:block;height:100%;border-radius:999px;background:linear-gradient(90deg,var(--c-warm),#ffb08a);transition:width .5s ease;}
.act-prog{display:flex;justify-content:space-between;font-size:11px;color:var(--c-ink-soft);margin-top:6px;}
.act-goods{display:flex;gap:9px;margin-top:13px;overflow-x:auto;padding-bottom:3px;scrollbar-width:none;}
.act-goods::-webkit-scrollbar{display:none;}
.act-g{flex:0 0 96px;border-radius:14px;border:1px solid var(--c-line);background:#fff;padding:10px 9px;text-align:center;text-decoration:none;color:inherit;display:block;}
.act-g .gico{font-size:26px;}
.act-g b{display:block;font-size:11.5px;font-weight:800;margin-top:5px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.act-g span{display:block;font-size:13px;font-weight:900;color:#0e8f76;font-family:var(--font-disp);margin-top:3px;}
.act-tip{margin-top:16px;padding:13px 15px;border-radius:var(--r-sm);background:rgba(255,255,255,.6);border:1px solid var(--c-line);font-size:11.5px;color:var(--c-ink-soft);line-height:1.75;}

/* ============ 我的优惠券 ============ */
.mycp{padding:15px;border-radius:var(--r-md);display:flex;gap:13px;background:var(--c-surface);border:1px solid rgba(255,255,255,.75);box-shadow:var(--shadow-soft);margin-top:12px;position:relative;overflow:hidden;}
.mycp .cl{width:96px;flex:0 0 auto;text-align:center;border-right:1px dashed var(--c-line-strong);padding-right:10px;}
.mycp .cl b{display:block;font-family:var(--font-disp);font-weight:900;font-size:29px;color:#e2603a;line-height:1.05;}
.mycp .cl b small{font-size:13px;}
.mycp .cl span{display:block;font-size:10.5px;color:var(--c-ink-soft);margin-top:6px;}
.mycp .cr{flex:1 1 auto;min-width:0;}
.mycp .cr .cn{font-size:14px;font-weight:800;}
.mycp .cr .cs{font-size:11.5px;color:var(--c-ink-soft);margin-top:3px;}
.mycp .cr .ce{font-size:11px;color:var(--c-ink-soft);margin-top:7px;}
/* 右侧操作列：与文字列同级，垂直居中于卡片 */
.mycp .cact{flex:0 0 auto;display:flex;align-items:center;justify-content:center;padding-left:2px;}
.mycp .cbtn{display:inline-flex;align-items:center;justify-content:center;min-height:38px;padding:0 16px;border-radius:10px;border:none;background:linear-gradient(135deg,#ff8a5b,#ff6f3c);color:#fff;font-family:inherit;font-size:12.5px;font-weight:800;white-space:nowrap;cursor:pointer;text-decoration:none;box-shadow:0 8px 16px -10px rgba(255,111,60,.85);transition:filter .16s,transform .16s;}
.mycp .cbtn:hover{filter:brightness(1.05);}
.mycp .cbtn:active{transform:scale(.96);}
.mycp .cbtn:focus-visible{outline:2px solid #ff6f3c;outline-offset:2px;}
.mycp .cstamp{position:absolute;right:18px;top:13px;font-size:10.5px;font-weight:800;color:var(--c-ink-soft);border:1px solid var(--c-line-strong);border-radius:6px;padding:2px 8px;transform:rotate(-6deg);background:rgba(255,255,255,.75);}
.mycp.used,.mycp.expired{opacity:.7;}
.mycp.used .cl b,.mycp.expired .cl b{color:var(--c-ink-soft);}
.mycp-empty{text-align:center;padding:52px 20px;color:var(--c-ink-soft);font-size:13px;}
.mycp-empty .ei{font-size:42px;display:block;margin-bottom:10px;}
.cp-note{margin-top:16px;font-size:11.5px;color:var(--c-ink-soft);line-height:1.75;padding:13px 15px;border-radius:var(--r-sm);background:rgba(255,255,255,.55);border:1px solid var(--c-line);}

/* ============ 用药提醒表单 ============ */
.form-card{padding:16px;border-radius:var(--r-md);margin-top:14px;}
.f-label{font-size:13.5px;font-weight:800;display:flex;align-items:center;gap:6px;}
.f-label .req{color:var(--c-warm);font-size:12px;}
.f-input{width:100%;margin-top:10px;border:1px solid var(--c-line);border-radius:12px;padding:12px 13px;font-size:14px;font-family:inherit;background:var(--c-surface-strong);color:var(--c-ink);}
.f-input::placeholder{color:#9aa9b8;}
.f-input:focus{outline:none;border-color:var(--c-primary);box-shadow:0 0 0 3px rgba(47,127,242,.14);}
.f-chips{display:flex;flex-wrap:wrap;gap:8px;margin-top:11px;}
.f-chip{padding:9px 14px;border-radius:11px;border:1px solid var(--c-line);background:var(--c-surface-strong);font-family:inherit;font-size:13px;font-weight:700;color:var(--c-ink-soft);cursor:pointer;transition:all .16s;min-height:var(--tap);}
.f-chip.on{background:var(--c-primary);border-color:transparent;color:#fff;box-shadow:0 8px 18px -10px rgba(47,127,242,.85);}
.f-chip:focus-visible{outline:3px solid var(--c-primary);outline-offset:2px;}
.f-help{font-size:11.5px;color:var(--c-ink-soft);margin-top:9px;line-height:1.65;}
.f-err{font-size:11.5px;color:#e04f4f;margin-top:8px;font-weight:700;display:none;}
.f-err.show{display:block;}
.f-drug{display:flex;align-items:center;gap:11px;padding:11px;border-radius:13px;border:1px solid var(--c-line);background:var(--c-surface-strong);cursor:pointer;margin-top:9px;transition:all .16s;}
.f-drug.on{border-color:var(--c-primary);background:var(--c-primary-soft);}
.f-drug .di{width:38px;height:38px;border-radius:11px;background:#fff;display:flex;align-items:center;justify-content:center;font-size:20px;flex:0 0 auto;}
.f-drug .db{flex:1 1 auto;min-width:0;}
.f-drug .db b{font-size:13.5px;font-weight:800;display:block;}
.f-drug .db p{font-size:11.5px;color:var(--c-ink-soft);margin-top:2px;}
.f-drug .ck{margin-left:auto;width:22px;height:22px;border-radius:50%;border:2px solid var(--c-line-strong);display:flex;align-items:center;justify-content:center;color:#fff;font-size:13px;flex:0 0 auto;}
.f-drug.on .ck{background:var(--c-primary);border-color:var(--c-primary);}
.f-sw{display:flex;align-items:center;gap:12px;padding:13px 0;border-bottom:1px solid var(--c-line);position:relative;}
.f-sw:last-child{border-bottom:none;}
.f-sw .sw-body{flex:1 1 auto;}
.f-sw .sw-body b{font-size:13.5px;font-weight:800;display:block;}
.f-sw .sw-body p{font-size:11.5px;color:var(--c-ink-soft);margin-top:2px;}
.f-sw input{position:absolute;opacity:0;width:0;height:0;}
.f-sw i{width:48px;height:28px;border-radius:999px;background:var(--c-line-strong);position:relative;flex:0 0 auto;transition:background .2s;display:block;cursor:pointer;}
.f-sw i::after{content:"";position:absolute;left:3px;top:3px;width:22px;height:22px;border-radius:50%;background:#fff;box-shadow:0 2px 5px rgba(0,0,0,.2);transition:transform .2s;}
.f-sw input:checked + i{background:var(--c-primary);}
.f-sw input:checked + i::after{transform:translateX(20px);}
.f-bar{position:fixed;left:0;right:0;bottom:0;z-index:9;max-width:430px;margin:0 auto;padding:12px 18px calc(12px + env(safe-area-inset-bottom));background:var(--c-surface-strong);border-top:1px solid rgba(255,255,255,.8);backdrop-filter:blur(18px);display:flex;gap:12px;}
.f-bar .btn{flex:1;}
.form-sum{margin-top:16px;padding:14px 16px;border-radius:var(--r-sm);background:var(--c-primary-soft);border:1px solid var(--c-line);}
.form-sum b{font-size:13px;color:var(--c-primary-700);}
.form-sum p{font-size:12.5px;color:#33465a;line-height:1.75;margin-top:6px;}

/* ============ 血压管理 ============ */
.bp-time{text-align:center;font-size:12.5px;color:var(--c-ink-soft);}
.bp-gauge{margin-top:8px;position:relative;display:flex;justify-content:center;}
.bp-gauge svg{display:block;max-width:100%;}
.bp-core{position:absolute;left:0;right:0;top:46px;text-align:center;}
.bp-core .blab{font-size:12px;color:var(--c-ink-soft);}
.bp-num{font-family:var(--font-disp);font-weight:900;font-size:40px;line-height:1.15;letter-spacing:-1px;}
.bp-num small{font-size:13px;font-weight:700;color:var(--c-ink-soft);letter-spacing:0;}
.bp-unit{font-size:11.5px;color:var(--c-ink-soft);}
.bp-tag{display:inline-flex;margin-top:7px;padding:3px 13px;border-radius:999px;background:var(--c-accent-soft);color:#0e8f76;font-size:12px;font-weight:800;}
.bp-pulse{display:flex;align-items:center;justify-content:center;gap:8px;margin-top:14px;font-size:12.5px;color:var(--c-ink-soft);}
.bp-pulse b{font-family:var(--font-disp);font-weight:900;font-size:16px;color:var(--c-ink);}
.bp-advice{margin-top:18px;padding:15px 16px;border-radius:var(--r-md);}
.bp-advice .ah{display:flex;align-items:center;gap:8px;font-size:14px;font-weight:900;}
.bp-advice .ah .ai{width:26px;height:26px;border-radius:9px;background:var(--c-accent-soft);display:flex;align-items:center;justify-content:center;font-size:15px;}
.bp-advice p{font-size:13px;color:#33465a;line-height:1.85;margin-top:9px;}
.bp-card{margin-top:14px;padding:15px 16px;border-radius:var(--r-md);}
.bp-card .ch{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:10px;}
.bp-card .ch b{font-size:14px;font-weight:900;position:relative;padding-left:12px;}
.bp-card .ch b::before{content:"";position:absolute;left:0;top:4px;bottom:4px;width:4px;border-radius:3px;background:var(--c-warm);}
.bp-card .ch .dlink{font-size:11.5px;font-weight:800;color:var(--c-primary);text-decoration:none;white-space:nowrap;}
.bp-segs{display:flex;gap:4px;background:var(--c-primary-soft);border-radius:10px;padding:3px;}
.bp-segs button{border:none;background:none;font-family:inherit;font-size:12px;font-weight:800;color:var(--c-ink-soft);padding:6px 13px;border-radius:8px;cursor:pointer;transition:all .16s;}
.bp-segs button.on{background:#fff;color:var(--c-primary-700);box-shadow:var(--shadow-soft);}
.bp-chart{width:100%;height:auto;display:block;}
.bp-legend{display:flex;gap:18px;justify-content:center;font-size:11px;color:var(--c-ink-soft);margin-top:8px;}
.bp-legend span{display:inline-flex;align-items:center;gap:6px;}
.bp-legend i{width:15px;height:3px;border-radius:2px;display:inline-block;}
.bp-row{display:flex;align-items:center;gap:11px;padding:12px 14px;border-radius:var(--r-sm);background:var(--c-surface);border:1px solid var(--c-line);margin-top:9px;font-size:13px;}
.bp-row .bt{font-size:11.5px;color:var(--c-ink-soft);flex:0 0 auto;width:96px;}
.bp-row b{font-family:var(--font-disp);font-weight:900;font-size:15px;}
.bp-row .bstate{margin-left:auto;font-size:11px;font-weight:800;padding:3px 9px;border-radius:999px;background:var(--c-accent-soft);color:#0e8f76;}
.bp-row .bstate.warn{background:var(--c-warm-soft);color:#d9582a;}
.bp-bar{position:fixed;left:0;right:0;bottom:0;z-index:9;max-width:430px;margin:0 auto;padding:12px 18px calc(12px + env(safe-area-inset-bottom));background:var(--c-surface-strong);border-top:1px solid rgba(255,255,255,.8);backdrop-filter:blur(18px);}
.bp-bar .btn{width:100%;}

/* ============ 我的团队（推荐码 + 分享注册好友 + 消费奖励） ============ */
.team-hero{margin-top:6px;padding:20px 18px;border-radius:var(--r-lg);background:linear-gradient(135deg,var(--c-primary-700),var(--c-primary) 58%,var(--c-accent));color:#fff;position:relative;overflow:hidden;box-shadow:0 22px 44px -22px rgba(47,127,242,.7);}
.team-hero::after{content:"";position:absolute;right:-40px;top:-50px;width:190px;height:190px;background:radial-gradient(circle,rgba(255,255,255,.24),transparent 70%);pointer-events:none;}
.team-hero .th-row{display:flex;align-items:center;gap:12px;position:relative;z-index:1;}
.team-hero .th-lab{font-size:12.5px;opacity:.9;}
.team-hero .th-code{display:block;font-family:var(--font-disp);font-size:30px;font-weight:900;letter-spacing:5px;line-height:1.3;}
.team-hero .th-sub{font-size:11.5px;opacity:.88;margin-top:2px;}
.team-hero .th-copy{margin-left:auto;flex:0 0 auto;min-height:40px;padding:0 16px;border-radius:11px;border:1px solid rgba(255,255,255,.45);background:rgba(255,255,255,.18);color:#fff;font-family:inherit;font-size:12.5px;font-weight:800;cursor:pointer;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);transition:transform .12s,background .18s;}
.team-hero .th-copy:hover{background:rgba(255,255,255,.3);}
.team-hero .th-copy:active{transform:scale(.96);}
.team-hero .th-copy:focus-visible{outline:2px solid #fff;outline-offset:2px;}

.team-stats{display:flex;gap:10px;margin-top:12px;}
.team-stats .ts{flex:1;padding:12px 8px;text-align:center;}
.team-stats .ts b{display:block;font-family:var(--font-disp);font-size:19px;font-weight:900;color:var(--c-primary-700);}
.team-stats .ts.warm b{color:#d9582a;}
.team-stats .ts span{font-size:11px;color:var(--c-ink-soft);}
.team-share-cta{margin-top:12px;width:100%;}

.tmem{display:flex;gap:12px;padding:14px;margin-top:12px;align-items:flex-start;}
.tmem .tm-av{width:44px;height:44px;flex:0 0 auto;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:16px;font-weight:900;color:var(--c-primary-700);background:linear-gradient(135deg,var(--c-primary-soft),var(--c-accent-soft));border:1px solid var(--c-line);}
.tmem .tm-body{flex:1 1 auto;min-width:0;}
.tmem .tm-body > b{display:flex;align-items:center;gap:7px;font-size:14.5px;font-weight:900;}
.tmem .tm-body p{font-size:11.5px;color:var(--c-ink-soft);margin-top:3px;}
.tmem .tm-meta{display:flex;flex-wrap:wrap;gap:6px 14px;margin-top:9px;font-size:11.5px;color:var(--c-ink-soft);}
.tmem .tm-meta b{font-weight:900;color:var(--c-ink);}
.tmem .tm-meta .rw b{color:#d9582a;}

.trew{display:flex;gap:12px;padding:13px 14px;margin-top:10px;align-items:center;}
.trew .tr-ico{width:38px;height:38px;flex:0 0 auto;border-radius:12px;background:var(--c-warm-soft);display:flex;align-items:center;justify-content:center;font-size:18px;}
.trew .tr-body{flex:1 1 auto;min-width:0;}
.trew .tr-body b{display:block;font-size:13.5px;font-weight:800;}
.trew .tr-body p{font-size:11.5px;color:var(--c-ink-soft);margin-top:2px;}
.trew .tr-amt{flex:0 0 auto;text-align:right;}
.trew .tr-amt > b{display:block;font-family:var(--font-disp);font-size:16px;font-weight:900;color:#d9582a;}
.trew .tr-amt .pill{margin-top:5px;font-size:10.5px;padding:3px 9px;}
.trew.pending .tr-ico{background:var(--c-primary-soft);}
.trew.pending .tr-amt > b{color:var(--c-ink-soft);}

.tr-sum{display:flex;flex-wrap:wrap;gap:6px 18px;margin-top:14px;padding:12px 15px;border-radius:var(--r-sm);background:rgba(255,255,255,.6);border:1px solid var(--c-line);font-size:12px;color:var(--c-ink-soft);}
.tr-sum b{font-weight:900;color:var(--c-ink);}
.team-note,.dev-note,.rc-note,.fav-note,.qz-help,.stg-note,.fb-note{margin-top:16px;padding:13px 15px;border-radius:var(--r-sm);background:rgba(255,255,255,.55);border:1px solid var(--c-line);font-size:11.5px;color:var(--c-ink-soft);line-height:1.85;}
.team-note b,.dev-note b,.rc-note b,.fav-note b,.qz-help b,.stg-note b,.fb-note b{color:var(--c-ink);}

/* ============ 我的设备（血压仪 + 其他健康设备） ============ */
.subhead button.right{background:none;border:none;font-family:inherit;cursor:pointer;min-height:var(--tap);padding:0 2px;}
.subhead button.right:hover{text-decoration:underline;}
.subhead button.right:active{transform:scale(.96);}

.dev-card{padding:14px;margin-top:12px;}
.dev-card .dv-top{display:flex;gap:12px;align-items:flex-start;}
.dev-card .dv-ico{width:44px;height:44px;flex:0 0 auto;border-radius:14px;background:var(--c-primary-soft);display:flex;align-items:center;justify-content:center;font-size:20px;position:relative;}
.dev-card .dv-dot{position:absolute;right:-1px;bottom:-1px;width:13px;height:13px;border-radius:50%;background:#c7d2de;border:2px solid #fff;}
.dev-card[data-on="1"] .dv-dot{background:var(--c-accent);}
.dev-card[data-on="0"] .dv-ico{background:#eef2f7;}
.dev-card .dv-body{flex:1 1 auto;min-width:0;}
.dev-card .dv-body > b{display:block;font-size:14.5px;font-weight:800;}
.dev-card .dv-body > b .pill{margin-left:6px;font-size:10px;padding:2px 8px;vertical-align:1px;}
.dev-card .dv-body > p{font-size:12px;color:var(--c-ink-soft);margin-top:2px;}
.dev-card .dv-meta{display:flex;flex-wrap:wrap;gap:3px 12px;margin-top:6px;font-size:11.5px;color:var(--c-ink-soft);}
.dev-card .dv-meta b{font-weight:900;color:var(--c-ink);}
.dev-card .dv-top > .pill{flex:0 0 auto;font-size:10.5px;padding:3px 9px;margin-top:1px;}
.dev-card .dv-sn{margin-top:9px;font-size:11px;color:var(--c-ink-soft);}
.dev-card .dv-act{display:flex;align-items:center;gap:10px;margin-top:12px;padding-top:12px;border-top:1px dashed var(--c-line);}
.dev-card .dv-unbind{margin-right:auto;background:none;border:none;font-family:inherit;font-size:12.5px;font-weight:700;color:var(--c-ink-soft);cursor:pointer;min-height:var(--tap);padding:0 8px 0 2px;}
.dev-card .dv-unbind:hover{color:#d9582a;}
.dev-card .dv-unbind:focus-visible{outline:3px solid var(--c-primary);outline-offset:2px;border-radius:8px;}

.dev-add{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:4px;width:100%;margin-top:12px;padding:16px;border-radius:var(--r-md);border:1.5px dashed var(--c-line-strong);background:rgba(255,255,255,.5);font-family:inherit;font-size:13.5px;font-weight:800;color:var(--c-primary);cursor:pointer;transition:background .18s,border-color .18s;}
.dev-add span{font-size:16px;line-height:1;}
.dev-add small{font-size:11px;font-weight:600;color:var(--c-ink-soft);}
.dev-add:hover{background:rgba(255,255,255,.85);border-color:var(--c-primary);}
.dev-add:focus-visible{outline:3px solid var(--c-primary);outline-offset:2px;}

.dev-set{padding:4px 14px;margin-top:12px;}

/* 添加设备浮层 */
.dv-kinds{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:14px;}
.dv-kind{flex:1 1 28%;min-width:86px;display:flex;flex-direction:column;align-items:center;gap:5px;padding:10px 4px;border-radius:var(--r-sm);border:1px solid var(--c-line);background:rgba(255,255,255,.7);font-family:inherit;font-size:12px;font-weight:800;color:var(--c-ink);cursor:pointer;transition:transform .1s,background .18s,border-color .18s;}
.dv-kind .dk-ic{font-size:19px;line-height:1;}
.dv-kind.on{border-color:var(--c-primary);background:var(--c-primary-soft);color:var(--c-primary-700);}
.dv-kind:active{transform:scale(.96);}
.dv-kind:focus-visible{outline:3px solid var(--c-primary);outline-offset:2px;}
.dv-scan{display:flex;align-items:center;justify-content:center;gap:8px;font-size:12.5px;color:var(--c-ink-soft);padding:2px 0 4px;}
.dv-scan .dot{width:7px;height:7px;border-radius:50%;background:var(--c-primary);animation:dvPulse 1.2s ease-in-out infinite;}
@keyframes dvPulse{0%,100%{opacity:.3;transform:scale(.8);}50%{opacity:1;transform:scale(1.2);}}
.dv-found{margin-bottom:14px;}
.dv-find{display:flex;align-items:center;gap:11px;padding:11px 13px;border-radius:var(--r-sm);background:rgba(255,255,255,.75);border:1px solid var(--c-line);margin-top:8px;}
.dv-find .df-ico{width:36px;height:36px;flex:0 0 auto;border-radius:11px;background:var(--c-primary-soft);display:flex;align-items:center;justify-content:center;font-size:17px;}
.dv-find .df-body{flex:1 1 auto;min-width:0;}
.dv-find .df-body b{display:block;font-size:13px;font-weight:800;}
.dv-find .df-body p{font-size:11px;color:var(--c-ink-soft);margin-top:1px;}
.dv-find .df-link{flex:0 0 auto;background:none;border:none;font-family:inherit;font-size:12.5px;font-weight:800;color:var(--c-primary);cursor:pointer;min-height:var(--tap);padding:0 6px;}
.dv-find .df-link:hover{text-decoration:underline;}
.dv-find .df-link:focus-visible{outline:3px solid var(--c-primary);outline-offset:2px;border-radius:8px;}

/* 分享邀请浮层 */
.share-sub{font-size:12.5px;color:var(--c-ink-soft);line-height:1.7;margin:2px 0 14px;}
.share-sub b{font-family:var(--font-disp);font-weight:900;letter-spacing:2px;color:var(--c-primary-700);}
.share-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:8px;margin-bottom:14px;}
.share-item{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:6px;min-height:calc(var(--tap) + 18px);padding:12px 4px;border-radius:var(--r-sm);border:1px solid var(--c-line);background:rgba(255,255,255,.7);font-family:inherit;font-size:11.5px;font-weight:700;color:var(--c-ink);cursor:pointer;transition:transform .1s,background .18s;}
.share-item:hover{background:#fff;}
.share-item:active{transform:scale(.95);}
.share-item:focus-visible{outline:3px solid var(--c-primary);outline-offset:2px;}
.share-item .si-ico{font-size:20px;line-height:1;}

/* ============ 档案明细二级页（record.html?t=…） ============ */
/* 健档页的 .record 由 <div> 变为 <a>（既往病史 / 过敏史 / 当前用药 / 体检记录 各自进二级页），补链接态样式 */
.record{text-decoration:none;color:inherit;cursor:pointer;transition:transform .12s ease,box-shadow .2s;}
.record:active{transform:scale(.99);}
.record:focus-visible{outline:3px solid var(--c-primary);outline-offset:2px;}

.rc-hero{padding:16px;border-radius:var(--r-md);display:flex;align-items:center;gap:13px;margin-top:2px;}
.rc-hero .rh-ic{width:44px;height:44px;border-radius:14px;background:var(--c-primary-soft);color:var(--c-primary);display:flex;align-items:center;justify-content:center;font-size:20px;flex:0 0 auto;}
.rc-hero p{flex:1 1 auto;min-width:0;font-size:12.5px;color:var(--c-ink-soft);line-height:1.7;}

.rc-item{padding:15px 16px;border-radius:var(--r-md);margin-top:12px;}
.rc-top{display:flex;align-items:center;gap:9px;}
.rc-top .ric{width:30px;height:30px;border-radius:10px;background:var(--c-primary-soft);color:var(--c-primary);display:flex;align-items:center;justify-content:center;font-size:15px;flex:0 0 auto;}
.rc-top .rc-n{font-size:15px;font-weight:800;min-width:0;}
.rc-top .pill{margin-left:auto;flex:0 0 auto;}
.rc-meta{margin-top:10px;display:flex;flex-direction:column;gap:5px;}
.rc-meta span{font-size:12.5px;color:var(--c-ink-soft);line-height:1.6;}
.rc-meta b{color:var(--c-ink);font-weight:700;}
.rc-empty{margin-top:12px;padding:22px 16px;border-radius:var(--r-md);text-align:center;font-size:13px;color:var(--c-ink-soft);background:rgba(255,255,255,.6);border:1px dashed var(--c-line-strong);}

.rec-field{margin-top:14px;}
.rec-acts{display:flex;gap:12px;margin-top:20px;}
.rec-acts .btn{flex:1;}

/* ============ 我的收藏（fav.html） ============ */
/* 顶栏右侧「管理」：.right 只定义了文字样式，button 需要自己清掉原生边框 */
.subhead .hd-btn{margin-left:auto;flex:0 0 auto;border:none;background:none;padding:0 2px;font-family:inherit;font-size:13px;font-weight:800;color:var(--c-primary);cursor:pointer;min-height:var(--tap);min-width:44px;transition:transform .12s,color .16s;}
.subhead .hd-btn:hover{color:var(--c-primary-700);}
.subhead .hd-btn:active{transform:scale(.94);}
.subhead .hd-btn:focus-visible{outline:3px solid var(--c-primary);outline-offset:2px;border-radius:8px;}

.fav-hero{padding:16px;border-radius:var(--r-md);display:flex;align-items:center;gap:13px;}
.fav-hero .fh-ic{width:44px;height:44px;border-radius:14px;flex:0 0 auto;background:linear-gradient(135deg,#fff3dd,#ffe3b4);color:#d9880f;display:flex;align-items:center;justify-content:center;font-size:21px;}
.fav-hero .fh-body{flex:1 1 auto;min-width:0;}
.fav-hero .fh-body b{font-size:15px;font-weight:900;}
.fav-hero .fh-body p{font-size:12px;color:var(--c-ink-soft);line-height:1.65;margin-top:3px;}
.fav-hero .pill{margin-left:auto;flex:0 0 auto;}

.fcard{padding:12px;border-radius:var(--r-md);margin-top:12px;transition:transform .12s ease,box-shadow .2s;}
.fcard .fmain{display:flex;align-items:center;gap:13px;text-decoration:none;color:inherit;border-radius:12px;}
.fcard .fmain:active{transform:scale(.99);}
.fcard .fmain:focus-visible{outline:3px solid var(--c-primary);outline-offset:3px;}
.fcard .fcover{position:relative;width:78px;height:78px;border-radius:15px;flex:0 0 auto;display:flex;align-items:center;justify-content:center;font-size:32px;background:linear-gradient(135deg,#eef6ff,#e3faf4);border:1px solid var(--c-line);}
.fcard[data-kind="article"] .fcover{background:linear-gradient(135deg,#eef0ff,#f5ecff);}
.fcard .ftag{position:absolute;left:5px;top:5px;font-style:normal;font-size:9.5px;font-weight:800;color:#fff;background:var(--c-warm);border-radius:6px;padding:1px 6px;}
.fcard .fbody{flex:1 1 auto;min-width:0;}
.fcard .ftitle{font-size:14px;font-weight:800;line-height:1.42;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;}
.fcard .fmeta{font-size:11.5px;color:var(--c-ink-soft);margin-top:5px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.fcard .ftime{font-size:11px;color:#9aa9b8;margin-top:5px;}
/* 「取消收藏」默认不显示，仅在 .page.editing（点「管理」后）露出，避免浏览时误删 */
.fcard .fdel{display:none;width:100%;margin-top:11px;min-height:40px;border-radius:11px;border:1px solid var(--c-line-strong);background:var(--c-surface-strong);font-family:inherit;font-size:12.5px;font-weight:800;color:#d9582a;cursor:pointer;transition:background .16s,transform .12s;}
.page.editing .fcard .fdel{display:block;}
.fcard .fdel:hover{background:var(--c-warm-soft);}
.fcard .fdel:active{transform:scale(.98);}
.fcard .fdel:focus-visible{outline:3px solid var(--c-warm);outline-offset:2px;}

/* 空态：注意不要给它写 display，否则会盖掉 hidden 属性 */
.fav-empty{margin-top:12px;padding:38px 20px 32px;border-radius:var(--r-md);text-align:center;font-size:13px;color:var(--c-ink-soft);background:rgba(255,255,255,.6);border:1px dashed var(--c-line-strong);}
.fav-empty .ei{display:block;font-size:40px;margin-bottom:10px;}
.fav-empty .fe-sub{display:block;font-size:11.5px;margin-top:6px;line-height:1.7;}
.fav-empty .fav-go{display:inline-flex;align-items:center;justify-content:center;margin-top:15px;min-height:40px;padding:0 24px;border-radius:999px;background:linear-gradient(135deg,var(--c-primary),#5a97ff);color:#fff;font-size:12.5px;font-weight:800;text-decoration:none;box-shadow:0 10px 20px -12px rgba(47,127,242,.8);}
.fav-empty .fav-go:active{transform:scale(.96);}

/* ============ 健康测评（独立页 quiz.html?t=basic|sleep|diet） ============ */
/* <a> 套用 .btn / .quiz-item 时补链接默认样式的差异（.btn 未定义 text-decoration，会带下划线） */
a.btn{text-decoration:none;}
/* 禁用态按钮（测评第 1 题的「上一题」）：保留占位不跳动，只压暗 */
.btn:disabled{opacity:.42;cursor:not-allowed;box-shadow:none;}
a.quiz-item{text-decoration:none;color:inherit;transition:transform .12s ease;}
a.quiz-item:active{transform:scale(.99);}
/* 本页 3 个测评项目名较长，窄屏下略缩字号，避免 Tab 文字折行 */
.qz-tabs .seg-tab{font-size:13px;letter-spacing:-.2px;}

.qz-hero{padding:16px;border-radius:var(--r-md);margin-top:16px;display:flex;align-items:center;gap:13px;}
.qz-hero .qh-ic{width:44px;height:44px;border-radius:14px;flex:0 0 auto;display:flex;align-items:center;justify-content:center;font-size:21px;background:linear-gradient(135deg,#eef6ff,#e6fbf3);}
.qz-hero[data-qz="sleep"] .qh-ic{background:linear-gradient(135deg,#eef0ff,#f4ecff);}
.qz-hero[data-qz="diet"] .qh-ic{background:linear-gradient(135deg,#eafbf1,#e4f8ee);}
.qz-hero .qh-body{flex:1 1 auto;min-width:0;}
.qz-hero .qh-body b{font-size:15px;font-weight:900;}
.qz-hero .qh-body p{font-size:12px;color:var(--c-ink-soft);line-height:1.65;margin-top:3px;}
.qz-hero .pill{margin-left:auto;flex:0 0 auto;}

.qz-step{display:flex;align-items:baseline;justify-content:space-between;gap:10px;margin:20px 4px 0;font-size:12px;font-weight:700;color:var(--c-ink-soft);}
.qz-card{padding:18px 16px;border-radius:var(--r-md);}
.qz-card .opt:last-child{margin-bottom:0;}
.qz-actions{display:flex;gap:12px;margin-top:16px;}
.qz-actions .btn{flex:1;}

.qz-score{padding:20px 16px 18px;border-radius:var(--r-md);margin-top:16px;text-align:center;}
.qz-score .pill{font-size:13px;padding:6px 16px;}
.qz-lv{margin-top:10px;font-size:12.5px;color:var(--c-ink-soft);line-height:1.7;}
.qz-tips{padding:2px 16px;border-radius:var(--r-md);}
.qz-tips .check-line:last-child{border-bottom:none;}

/* ============ 设置（settings.html） ============ */
.stg-card{padding:4px 14px;margin-top:12px;}
.stg-acc{display:flex;align-items:center;gap:12px;width:100%;padding:14px 0;border:none;border-bottom:1px solid var(--c-line);background:none;font-family:inherit;text-align:left;color:inherit;cursor:pointer;transition:transform .12s;}
.stg-acc:active{transform:scale(.99);}
.stg-acc:focus-visible{outline:3px solid var(--c-primary);outline-offset:-2px;border-radius:10px;}
.sa-av{width:42px;height:42px;border-radius:14px;flex:0 0 auto;background:linear-gradient(135deg,var(--c-primary),var(--c-accent));color:#fff;font-weight:900;font-size:17px;display:flex;align-items:center;justify-content:center;}
.sa-av.off{background:var(--c-line-strong);}
.sa-body{flex:1 1 auto;min-width:0;}
.sa-body b{display:block;font-size:14.5px;font-weight:800;}
.sa-sub{display:block;font-size:11.5px;color:var(--c-ink-soft);margin-top:2px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.stg-row{display:flex;align-items:center;gap:12px;width:100%;padding:14px 0;border:none;border-bottom:1px solid var(--c-line);background:none;font-family:inherit;text-align:left;color:inherit;text-decoration:none;cursor:pointer;transition:transform .12s;}
.stg-row:last-child{border-bottom:none;}
.stg-row:active{transform:scale(.99);}
.stg-row:focus-visible{outline:3px solid var(--c-primary);outline-offset:-2px;border-radius:10px;}
.stg-lab{flex:1 1 auto;min-width:0;}
.stg-lab b{display:block;font-size:13.5px;font-weight:800;}
.stg-sub{display:block;font-size:11.5px;color:var(--c-ink-soft);margin-top:2px;}
.stg-val{flex:0 0 auto;font-size:12.5px;font-weight:700;color:var(--c-ink-soft);white-space:nowrap;}
.stg-val.warm{color:#d9582a;}
.stg-row .chev,.stg-acc .chev{flex:0 0 auto;font-size:17px;line-height:1;color:var(--c-line-strong);}
.stg-out{width:100%;min-height:48px;margin-top:16px;border-radius:var(--r-md);border:1px solid rgba(255,138,91,.45);background:rgba(255,255,255,.92);color:#d9582a;font-family:inherit;font-size:14.5px;font-weight:800;cursor:pointer;transition:background .18s,transform .12s;}
.stg-out:hover{background:var(--c-warm-soft);}
.stg-out:active{transform:scale(.99);}
.stg-out:focus-visible{outline:3px solid var(--c-primary);outline-offset:2px;}
.lo-act{display:flex;flex-direction:column;gap:10px;margin-top:4px;}
@media (prefers-reduced-motion:reduce){.stg-acc,.stg-row,.stg-out{transition:none;}.stg-acc:active,.stg-row:active,.stg-out:active{transform:none;}}

/* ============ 意见反馈（feedback.html） ============ */
.fb-tip{margin-top:12px;padding:13px 15px;border-radius:var(--r-sm);background:rgba(255,255,255,.55);border:1px solid var(--c-line);font-size:11.5px;color:var(--c-ink-soft);line-height:1.85;}
.fb-types{display:flex;flex-wrap:wrap;gap:9px;margin-top:12px;}
.fb-type{flex:1 1 calc(50% - 9px);min-height:48px;display:flex;align-items:center;justify-content:center;gap:6px;padding:0 10px;border-radius:13px;border:1px solid var(--c-line);background:rgba(255,255,255,.72);font-family:inherit;font-size:13px;font-weight:800;color:var(--c-ink);cursor:pointer;white-space:nowrap;transition:background .18s,color .16s,border-color .18s,transform .12s;}
.fb-type .ft-ic{font-size:15px;line-height:1;}
.fb-type.on{border-color:transparent;background:linear-gradient(135deg,var(--c-primary),#5a97ff);color:#fff;box-shadow:0 10px 20px -12px rgba(47,127,242,.7);}
.fb-type:active{transform:scale(.97);}
.fb-type:focus-visible{outline:3px solid var(--c-primary);outline-offset:2px;}
.fb-field{margin-top:12px;padding:14px 15px;}
.fb-field textarea{width:100%;min-height:112px;border:none;background:none;font-family:inherit;font-size:13.5px;line-height:1.7;color:var(--c-ink);resize:none;}
.fb-field textarea:focus{outline:none;}
.fb-field.err{border-color:rgba(217,88,42,.5);}
.fb-err{display:none;margin-top:8px;font-size:11.5px;color:#d9582a;}
.fb-err.show{display:block;}
.fb-ups{display:flex;flex-wrap:wrap;gap:10px;margin-top:12px;}
.fb-add{width:88px;height:88px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;border-radius:13px;border:1px dashed var(--c-line-strong);background:rgba(255,255,255,.6);font-family:inherit;font-size:19px;font-weight:800;color:var(--c-ink-soft);cursor:pointer;transition:transform .12s,border-color .18s,color .18s;}
.fb-add span{font-size:10.5px;font-weight:700;}
.fb-add:hover{border-color:var(--c-primary);color:var(--c-primary);}
.fb-add:active{transform:scale(.96);}
.fb-add:focus-visible{outline:3px solid var(--c-primary);outline-offset:2px;}
.fb-add[disabled]{opacity:.45;cursor:not-allowed;}
.fb-up{width:88px;height:88px;position:relative;border-radius:13px;background:linear-gradient(135deg,#dbeafe,#e9f2ff);border:1px solid var(--c-line);display:flex;align-items:center;justify-content:center;}
.fb-up .fu-ic{font-size:22px;}
.fb-up .fu-n{position:absolute;left:7px;bottom:5px;font-size:10.5px;font-weight:800;color:var(--c-primary-700);}
.fb-up-x{position:absolute;right:-6px;top:-6px;width:24px;height:24px;padding:0;border-radius:50%;border:none;background:#3c4657;color:#fff;font-size:14px;line-height:1;cursor:pointer;}
.fb-up-x:focus-visible{outline:3px solid var(--c-primary);outline-offset:2px;}
.fb-contact{margin-top:12px;padding:4px 15px 10px;}
.fb-phone{display:flex;align-items:center;gap:10px;padding:13px 0;border-bottom:1px solid var(--c-line);}
.fb-phone span{flex:0 0 auto;font-size:12.5px;font-weight:700;color:var(--c-ink-soft);}
.fb-phone input{flex:1 1 auto;min-width:0;border:none;background:none;font-family:inherit;font-size:14px;font-weight:800;color:var(--c-ink);text-align:right;}
.fb-phone input:focus{outline:none;}
.fb-check{display:flex;align-items:flex-start;gap:10px;padding:12px 0 4px;font-size:12.5px;color:var(--c-ink-soft);line-height:1.65;cursor:pointer;}
.fb-check input{flex:0 0 auto;width:19px;height:19px;margin:1px 0 0;accent-color:var(--c-primary);}
.fb-hist{margin-top:12px;display:flex;flex-direction:column;gap:11px;}
.fb-item{padding:14px 15px;}
.fi-top{display:flex;align-items:center;gap:8px;}
.fi-type{font-size:12.5px;font-weight:800;}
.fi-time{margin-left:auto;font-size:11px;color:var(--c-ink-soft);white-space:nowrap;}
.fi-text{margin-top:9px;font-size:13px;line-height:1.7;}
.fi-reply{margin-top:10px;padding:10px 12px;border-radius:10px;background:rgba(47,127,242,.07);font-size:12px;line-height:1.7;color:var(--c-ink-soft);}
.fi-reply b{color:var(--c-primary-700);margin-right:6px;}
.fb-empty{margin-top:12px;padding:26px 16px;text-align:center;border-radius:var(--r-md);background:rgba(255,255,255,.55);border:1px solid var(--c-line);font-size:13px;font-weight:800;color:var(--c-ink-soft);}
.fb-empty .fe-sub{display:block;margin-top:6px;font-size:11.5px;font-weight:600;}
.fb-ok{width:56px;height:56px;margin:2px auto 10px;border-radius:50%;background:rgba(22,194,163,.14);display:flex;align-items:center;justify-content:center;font-size:26px;}
@media (prefers-reduced-motion:reduce){.fb-type,.fb-add{transition:none;}.fb-type:active,.fb-add:active{transform:none;}}

/* ============ 无障碍 / 动效 ============ */
@media (prefers-reduced-motion:reduce){
  *{transition:none!important;animation:none!important;}
}
:focus-visible{outline:3px solid var(--c-primary);outline-offset:2px;border-radius:8px;}
