:root{
  --brand:#10b981; --brand-d:#059669; --brand-l:#d1fae5;
  --accent:#0ea5e9; --accent-d:#0369a1;
  --warn:#f59e0b; --danger:#ef4444; --purple:#8b5cf6;
  --bg:#f1f7f4; --surface:#ffffff; --surface2:#f7faf9;
  --text:#0f2e26; --text-mute:#6b8480; --border:#e2efe9;
  --radius:18px; --shadow:0 6px 22px rgba(16,185,129,.10);
  --tab:62px;
}
*{box-sizing:border-box;-webkit-tap-highlight-color:transparent}
html,body{margin:0;padding:0}
body{
  font-family:-apple-system,BlinkMacSystemFont,"PingFang SC","Microsoft YaHei",sans-serif;
  background:var(--bg); color:var(--text); line-height:1.55;
  max-width:430px; margin:0 auto; padding-bottom:calc(var(--tab) + 14px);
  -webkit-font-smoothing:antialiased;
}
a{color:inherit;text-decoration:none}
img{display:block;max-width:100%}
.app-top{
  position:sticky; top:0; z-index:20; padding:14px 16px 12px;
  background:linear-gradient(135deg,var(--brand),var(--accent));
  color:#fff; border-radius:0 0 22px 22px;
}
.app-top .loc{display:flex;align-items:center;gap:6px;font-size:13px;opacity:.92}
.app-top h1{margin:6px 0 0;font-size:21px;font-weight:800;letter-spacing:.5px}
.app-top .sub{font-size:12.5px;opacity:.85;margin-top:2px}
.top-search{
  margin-top:12px; display:flex; align-items:center; gap:8px;
  background:rgba(255,255,255,.92); border-radius:999px; padding:9px 14px;
  color:var(--text-mute); font-size:13.5px;
}
.top-search .ico{font-size:15px}
.card{background:var(--surface);border-radius:var(--radius);padding:15px;margin:13px 14px;box-shadow:var(--shadow)}
.card.tight{padding:13px}
.sec-title{display:flex;align-items:center;justify-content:space-between;margin:18px 18px 4px}
.sec-title h2{font-size:16px;margin:0;font-weight:800}
.sec-title .more{font-size:12.5px;color:var(--brand-d);font-weight:600}
.grid2{display:grid;grid-template-columns:1fr 1fr;gap:11px;margin:13px 14px}
.grid4{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;margin:13px 14px}
.tile{
  background:var(--surface);border-radius:16px;padding:14px 10px;text-align:center;
  box-shadow:var(--shadow);cursor:pointer;transition:transform .12s;
}
.tile:active{transform:scale(.96)}
.tile .emo{font-size:25px}
.tile .lb{font-size:12.5px;margin-top:6px;font-weight:600;color:var(--text)}
.tile .de{font-size:11px;color:var(--text-mute);margin-top:2px}
.btn{
  display:inline-flex;align-items:center;justify-content:center;gap:6px;
  border:none;border-radius:999px;padding:11px 18px;font-size:14.5px;font-weight:700;
  background:linear-gradient(135deg,var(--brand),var(--brand-d));color:#fff;cursor:pointer;
  box-shadow:0 4px 14px rgba(16,185,129,.35);transition:transform .12s;
}
.btn:active{transform:scale(.97)}
.btn.full{width:100%}
.btn.ghost{background:var(--surface);color:var(--brand-d);border:1.5px solid var(--brand-l);box-shadow:none}
.btn.sm{padding:7px 13px;font-size:13px}
.btn.warn{background:linear-gradient(135deg,#fbbf24,#f59e0b)}
.btn[disabled]{opacity:.5;filter:grayscale(.3)}
.chip{
  display:inline-block;padding:5px 12px;border-radius:999px;font-size:12.5px;font-weight:600;
  background:var(--surface2);color:var(--text-mute);margin:0 7px 8px 0;cursor:pointer;border:1px solid var(--border);
}
.chip.on{background:var(--brand);color:#fff;border-color:var(--brand)}
.pill{display:inline-flex;align-items:center;gap:4px;padding:3px 9px;border-radius:999px;font-size:11.5px;font-weight:600}
.pill.g{background:var(--brand-l);color:var(--brand-d)}
.pill.b{background:#e0f2fe;color:var(--accent-d)}
.pill.w{background:#fef3c7;color:#b45309}
.pill.r{background:#fee2e2;color:#b91c1c}
.doc{display:flex;gap:12px;align-items:center;padding:13px 0;border-bottom:1px solid var(--border)}
.doc:last-child{border-bottom:none}
.avatar{
  width:52px;height:52px;border-radius:50%;flex:none;display:flex;align-items:center;justify-content:center;
  font-size:20px;font-weight:800;color:#fff;background:linear-gradient(135deg,var(--accent),var(--brand));
}
.avatar.sm{width:40px;height:40px;font-size:15px}
.avatar.lg{width:64px;height:64px;font-size:24px}
.doc .nm{font-weight:700;font-size:15px}
.doc .mt{font-size:12.5px;color:var(--text-mute);margin-top:2px}
.doc .rt{font-size:12.5px;color:var(--warn);font-weight:700;margin-top:3px}
.row{display:flex;align-items:center;gap:10px}
.row.bt{justify-content:space-between}
.spacer{flex:1}
.list{margin:13px 14px}
.item{
  display:flex;gap:12px;align-items:center;background:var(--surface);border-radius:14px;
  padding:13px 14px;margin-bottom:10px;box-shadow:var(--shadow);cursor:pointer;transition:transform .12s;
}
.item:active{transform:scale(.98)}
.item .ic{font-size:22px;width:30px;text-align:center}
.item .tt{font-weight:700;font-size:14.5px}
.item .ds{font-size:12.5px;color:var(--text-mute);margin-top:2px}
.item .ar{color:var(--text-mute);font-size:18px}
.banner{
  margin:13px 14px;border-radius:var(--radius);padding:16px;color:#fff;
  background:linear-gradient(120deg,#0ea5e9,#10b981);box-shadow:var(--shadow);
}
.banner.b2{background:linear-gradient(120deg,#8b5cf6,#6366f1)}
.banner h3{margin:0 0 6px;font-size:16px}
.banner p{margin:0;font-size:12.5px;opacity:.92}
.banner .go{margin-top:11px;display:inline-block;background:#fff;color:var(--brand-d);padding:6px 15px;border-radius:999px;font-size:13px;font-weight:700}
.notice{
  display:flex;align-items:center;gap:8px;background:#fffbeb;border:1px solid #fde68a;
  color:#92400e;border-radius:12px;padding:10px 13px;font-size:13px;margin:13px 14px;
}
.notice .ic{font-size:16px}
.chat-area{background:var(--surface2);border-radius:14px;padding:14px;margin-top:6px}
.msg{display:flex;gap:9px;margin-bottom:13px}
.msg.me{flex-direction:row-reverse}
.msg .bubble{
  max-width:74%;padding:10px 13px;border-radius:14px;font-size:14px;line-height:1.5;
  background:#fff;box-shadow:0 2px 8px rgba(0,0,0,.05);
}
.msg.me .bubble{background:linear-gradient(135deg,var(--brand),var(--brand-d));color:#fff}
.msg .who{font-size:11px;color:var(--text-mute);margin:0 0 3px}
.rx{
  background:var(--surface);border:1px solid var(--border);border-radius:14px;padding:14px;margin-bottom:11px;
  box-shadow:var(--shadow);
}
.rx .hd{display:flex;justify-content:space-between;align-items:center;margin-bottom:8px}
.rx .drug{display:flex;justify-content:space-between;padding:7px 0;border-bottom:1px dashed var(--border);font-size:13.5px}
.rx .drug:last-child{border-bottom:none}
.rx .dn{font-weight:700}
.rx .du{color:var(--text-mute);font-size:12.5px}
.stat3{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin:13px 14px}
.stat3 .b{background:var(--surface);border-radius:14px;padding:13px;text-align:center;box-shadow:var(--shadow)}
.stat3 .n{font-size:20px;font-weight:800;color:var(--brand-d)}
.stat3 .l{font-size:11.5px;color:var(--text-mute);margin-top:2px}
.kv{display:flex;justify-content:space-between;padding:10px 0;border-bottom:1px solid var(--border);font-size:14px}
.kv:last-child{border-bottom:none}
.kv .k{color:var(--text-mute)}
.remind{
  display:flex;align-items:center;gap:11px;background:#fff;border:1px solid var(--border);
  border-radius:14px;padding:12px 14px;margin-bottom:10px;box-shadow:var(--shadow);
}
.remind .tm{font-size:18px;font-weight:800;color:var(--brand-d);min-width:46px}
.remind .nm{font-weight:700;font-size:14px}
.remind .ds{font-size:12px;color:var(--text-mute)}
.switch{width:44px;height:25px;border-radius:999px;background:var(--brand);position:relative;flex:none}
.switch.off{background:#d1d5db}
.switch::after{content:"";position:absolute;top:3px;left:3px;width:19px;height:19px;border-radius:50%;background:#fff;transition:left .15s}
.switch.off::after{left:22px}
.toast{
  position:fixed;left:50%;top:42%;transform:translate(-50%,-50%);
  background:rgba(15,46,38,.92);color:#fff;padding:13px 22px;border-radius:12px;font-size:14px;
  z-index:99;opacity:0;pointer-events:none;transition:opacity .2s;max-width:80%;text-align:center;
}
.toast.show{opacity:1}
.tabbar{
  position:fixed;bottom:0;left:50%;transform:translateX(-50%);width:100%;max-width:430px;
  height:var(--tab);background:rgba(255,255,255,.97);backdrop-filter:blur(8px);
  display:flex;border-top:1px solid var(--border);z-index:30;
}
.tabbar a{
  flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;
  font-size:11px;color:var(--text-mute);font-weight:600;
}
.tabbar a .ti{font-size:21px;line-height:1}
.tabbar a.on{color:var(--brand-d)}
.tabbar a.on .ti{transform:scale(1.12)}
.empty{text-align:center;color:var(--text-mute);padding:36px 0;font-size:13.5px}
.section-gap{padding-bottom:8px}
.sticky-bar{
  position:sticky;bottom:calc(var(--tab) + 8px);z-index:18;display:flex;gap:10px;margin:14px;
}
