/* 惠达诚养老管家 · 并入模块样式（8 个同源单页工具 + 健康管家）
   作用域：.eld 包住每个模块的内容，避免与宿主及其他工具互相污染。
   改动须知：改完把 pension_ledger/index.html 里的 ?v= 日期改新。 */

/* ---------- 8 个同源模块（原 medication_reminder 等模板）---------- */
:root{--blue:#0F52BA;--blue-d:#0c439a;--ink:#1f2733;--mut:#6b7484;--line:#e1e6ef;--ok:#16a34a;--err:#dc2626;--warn:#d97706;--bg:#f3f6fb;}
*{box-sizing:border-box;}
html,body{margin:0;padding:0;}
body{background:var(--bg);color:var(--ink);font-family:system-ui,-apple-system,"PingFang SC","Microsoft YaHei",sans-serif;font-size:18px;line-height:1.6;}
.wrap{max-width:720px;margin:0 auto;padding:14px 14px 60px;}
.topbar{background:var(--blue);color:#fff;border-radius:0 0 14px 14px;padding:14px 16px;display:flex;align-items:center;gap:10px;}
.topbar .ic{font-size:26px;}
.topbar .nm{font-size:21px;font-weight:700;}
.topbar .st{margin-left:auto;font-size:14px;opacity:.95;}
.banner{background:#eef5ff;border:1px solid #cfe0fb;border-radius:12px;padding:12px 14px;margin:14px 0;font-size:14.5px;color:#28436e;line-height:1.7;}
.banner b{color:var(--blue);}
.card{background:#fff;border:1px solid var(--line);border-radius:14px;padding:16px;margin-bottom:16px;box-shadow:0 2px 8px rgba(20,40,80,.04);}
.card h3{margin:0 0 12px;font-size:19px;color:var(--blue);}
.lbl{display:block;font-size:16px;font-weight:600;margin:12px 0 6px;color:#33405a;}
input[type=text],input[type=number],input[type=date],select,textarea{width:100%;padding:14px;font-size:18px;border:2px solid var(--line);border-radius:10px;background:#fff;color:var(--ink);font-family:inherit;}
textarea{resize:vertical;min-height:84px;}
input:focus,select:focus,textarea:focus{outline:none;border-color:var(--blue);box-shadow:0 0 0 3px rgba(15,82,186,.12);}
.btn{display:block;width:100%;padding:16px;margin-top:12px;border:none;border-radius:12px;background:var(--blue);color:#fff;font-size:19px;font-weight:700;cursor:pointer;text-align:center;}
.btn:active{background:var(--blue-d);}
.btn.green{background:var(--ok);}
.btn.ghost{background:#eef2f8;color:var(--blue);}
.btn.sm{display:inline-block;width:auto;padding:11px 18px;font-size:16px;margin-top:0;}
.list{margin-top:6px;}
.item{background:#fafbfe;border:1px solid var(--line);border-radius:12px;padding:14px;margin-bottom:12px;}
.item .t{font-size:18px;font-weight:700;color:#1f2733;}
.item .m{font-size:15.5px;color:#46506a;margin-top:6px;line-height:1.7;white-space:pre-wrap;word-break:break-word;}
.item .row{display:flex;gap:10px;align-items:center;margin-top:10px;flex-wrap:wrap;}
.empty{color:var(--mut);font-size:16px;text-align:center;padding:18px 0;}
.sum{background:#eafaef;border:1px solid #bfe6cc;border-radius:12px;padding:14px;font-size:17px;color:#16612e;margin-top:8px;line-height:1.8;}
.toast{position:fixed;top:16px;left:50%;transform:translateX(-50%);z-index:99999;background:var(--blue);color:#fff;padding:12px 20px;border-radius:10px;font-size:16px;box-shadow:0 6px 20px rgba(0,0,0,.2);max-width:86vw;}
.toast.err{background:var(--err);}.toast.ok{background:var(--ok);}.toast.warn{background:var(--warn);}
.lock{position:fixed;inset:0;z-index:100000;background:rgba(243,246,251,.98);display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;padding:24px;}
.lock .ic{font-size:56px;margin-bottom:14px;}
.lock .tt{font-size:23px;font-weight:700;color:#b91c1c;}
.lock .msg{font-size:16px;color:#444;line-height:1.8;max-width:560px;margin-top:10px;}
.lock .spin{width:40px;height:40px;border:5px solid #cfe0fb;border-top-color:var(--blue);border-radius:50%;animation:sp 1s linear infinite;margin:16px 0;}
@keyframes sp{to{transform:rotate(360deg);}}
.lock .lb{padding:13px 28px;background:var(--blue);color:#fff;border:none;border-radius:11px;font-size:18px;margin-top:18px;cursor:pointer;}
.lock .note{margin-top:16px;font-size:13px;color:#888;max-width:480px;}

/* ---------- 健康管家专属（.hm-* 已自带命名空间，原样引入）---------- */
/* ===== 外壳：左导航 + 主区 ===== */
.hm-app{display:flex;min-height:100vh;align-items:stretch;}
.hm-side{width:248px;flex:0 0 248px;background:var(--side);color:#eaf1ff;display:flex;flex-direction:column;
  position:sticky;top:0;align-self:flex-start;height:100vh;}
.hm-brand{padding:20px 18px;border-bottom:1px solid rgba(255,255,255,.12);}
.hm-brand .ava{width:54px;height:54px;border-radius:50%;background:var(--blue);display:flex;align-items:center;
  justify-content:center;font-size:30px;margin-bottom:10px;}
.hm-brand .nm{font-size:21px;font-weight:800;}
.hm-brand .meta{font-size:14px;color:#a9c0e8;margin-top:4px;}
.hm-pnavs{flex:1;overflow-y:auto;padding:12px 10px;}
.hm-grp{font-size:13px;color:#7e98c4;padding:14px 10px 6px;letter-spacing:1px;}
.hm-pnav{display:flex;align-items:center;gap:12px;width:100%;text-align:left;border:none;background:transparent;color:#eaf1ff;
  font-size:19px;font-weight:600;padding:14px 14px;border-radius:12px;cursor:pointer;margin-bottom:6px;font-family:inherit;}
.hm-pnav .ic{font-size:24px;width:30px;text-align:center;}
.hm-pnav:hover{background:rgba(255,255,255,.08);}
.hm-pnav.on{background:var(--blue);box-shadow:0 4px 12px rgba(15,82,186,.4);}
.hm-side .foot{padding:14px 16px;border-top:1px solid rgba(255,255,255,.12);font-size:13px;color:#9fb6dd;line-height:1.7;}
.hm-side .foot a{color:#cfe0fb;cursor:pointer;text-decoration:underline;}
/* ===== 主区 ===== */
.hm-main{flex:1;min-width:0;display:flex;flex-direction:column;}
.hm-topbar{background:#fff;border-bottom:2px solid var(--line);padding:14px 22px;display:flex;align-items:center;gap:14px;
  position:sticky;top:0;z-index:30;}
.hm-topbar .tt{font-size:22px;font-weight:800;color:var(--blue);}
.hm-topbar .cr{margin-left:auto;display:flex;align-items:center;gap:10px;font-size:15px;color:var(--mut);}
.hm-tag{background:#e7f3ec;color:var(--ok);padding:6px 12px;border-radius:20px;font-size:14px;font-weight:700;}
.hm-tag.db{background:#e6f0ff;color:var(--blue);}
.hm-content{padding:20px 22px 60px;max-width:1100px;width:100%;}
.hm-panel{display:none;}
.hm-panel.on{display:block;}
.hm-disclaimer{background:#fff4e5;border:1.5px solid #f3c98b;border-radius:12px;padding:12px 16px;margin-bottom:18px;
  font-size:15.5px;color:#8a5a16;line-height:1.7;}
.hm-disclaimer b{color:var(--err);}
.hm-card{background:#fff;border:1px solid var(--line);border-radius:16px;padding:20px;margin-bottom:18px;
  box-shadow:0 2px 10px rgba(20,40,80,.05);}
.hm-card h3{margin:0 0 16px;font-size:20px;color:var(--blue);display:flex;align-items:center;gap:10px;}
.hm-card h3 .sub{font-size:14px;font-weight:500;color:var(--mut);margin-left:auto;}
.hm-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:16px;}
.hm-stat{background:#f6f9ff;border:1px solid #dce6fb;border-radius:14px;padding:16px;}
.hm-stat .k{font-size:15px;color:var(--mut);}
.hm-stat .v{font-size:26px;font-weight:800;color:var(--blue);margin-top:6px;}
.hm-stat .v small{font-size:15px;color:var(--mut);font-weight:500;}
.lbl{display:block;font-size:17px;font-weight:700;margin:14px 0 7px;color:#33405a;}
.row2{display:grid;grid-template-columns:1fr 1fr;gap:14px;}
.row3{display:grid;grid-template-columns:1fr 1fr 1fr;gap:14px;}
input,select,textarea{width:100%;padding:14px;font-size:18px;border:2px solid var(--line);border-radius:10px;
  background:#fff;color:var(--ink);font-family:inherit;}
textarea{resize:vertical;min-height:80px;}
input:focus,select:focus,textarea:focus{outline:none;border-color:var(--blue);box-shadow:0 0 0 3px rgba(15,82,186,.12);}
.btn{display:inline-block;padding:15px 26px;border:none;border-radius:12px;background:var(--blue);color:#fff;font-size:19px;
  font-weight:800;cursor:pointer;font-family:inherit;margin-top:16px;}
.btn:active{background:var(--blue-d);}
.btn.green{background:var(--ok);}
.btn.teal{background:var(--teal);}
.btn.ghost{background:#eef2f8;color:var(--blue);}
.btn.sm{font-size:16px;padding:10px 16px;margin-top:0;margin-right:8px;}
.btn.warn{background:var(--warn);}
.btn.danger{background:#fff;color:var(--err);border:2px solid #f3b4b4;}
.btn:disabled{opacity:.5;cursor:not-allowed;}
.hm-tbl-wrap{overflow-x:auto;margin-top:8px;}
table.hm-tbl{width:100%;border-collapse:collapse;font-size:16.5px;}
.hm-tbl th{background:#f3f6fb;text-align:left;padding:12px 12px;color:#46506a;font-weight:700;border-bottom:2px solid var(--line);white-space:nowrap;}
.hm-tbl td{padding:12px 12px;border-bottom:1px solid var(--line);vertical-align:middle;}
.hm-tbl tr:hover td{background:#fafcff;}
.badge{display:inline-block;padding:4px 12px;border-radius:20px;font-size:14px;font-weight:700;}
.b-ok{background:#e7f3ec;color:var(--ok);}
.b-warn{background:#fdf0db;color:var(--warn);}
.b-err{background:#fdeaea;color:var(--err);}
.b-blue{background:#e6f0ff;color:var(--blue);}
.hm-empty{color:var(--mut);text-align:center;padding:24px;font-size:17px;}
.hm-quick{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:14px;margin-top:6px;}
.hm-quick a{display:block;background:#f6f9ff;border:1px solid #dce6fb;border-radius:14px;padding:18px;text-align:center;
  text-decoration:none;color:var(--ink);font-weight:700;font-size:18px;cursor:pointer;}
.hm-quick a .ic{font-size:30px;display:block;margin-bottom:8px;}
.hm-quick a:hover{border-color:var(--blue);color:var(--blue);}
.advice-box{background:#f3fbf7;border:1.5px solid #bfe6cc;border-radius:14px;padding:18px;font-size:17px;line-height:1.9;
  white-space:pre-wrap;color:#15532e;}
.advice-src{font-size:14px;color:var(--mut);margin-top:10px;}
.cmp-table th,.cmp-table td{text-align:center;}
.arrow-up{color:var(--err);font-weight:800;}
.arrow-down{color:var(--ok);font-weight:800;}
.arrow-flat{color:var(--mut);font-weight:800;}
.toast{position:fixed;top:18px;left:50%;transform:translateX(-50%);z-index:99999;background:var(--blue);color:#fff;
  padding:13px 22px;border-radius:10px;font-size:17px;box-shadow:0 6px 20px rgba(0,0,0,.2);max-width:88vw;}
.toast.err{background:var(--err);}.toast.ok{background:var(--ok);}.toast.warn{background:var(--warn);}
/* 弹窗 */
.modal-mask{position:fixed;inset:0;background:rgba(15,30,60,.55);display:none;align-items:center;justify-content:center;z-index:99998;padding:20px;}
.modal-mask.on{display:flex;}
.modal{background:#fff;border-radius:16px;max-width:680px;width:100%;max-height:86vh;overflow-y:auto;padding:24px;}
.modal h3{margin:0 0 14px;font-size:21px;color:var(--blue);}
.modal .x{float:right;cursor:pointer;font-size:24px;color:var(--mut);}
@media (max-width:920px){
  .hm-app{flex-direction:column;}
  .hm-side{width:100%;flex:none;height:auto;position:relative;}
  .hm-pnavs{display:flex;overflow-x:auto;padding:8px;}
  .hm-grp{display:none;}
  .hm-pnav{white-space:nowrap;margin-bottom:0;margin-right:6px;}
  .row2,.row3{grid-template-columns:1fr;}
}

/* ---------- 健康管家并入后的布局收敛：把自带侧栏改成顶部标签条 ---------- */
.hm-app{display:block;}
.hm-side{width:auto;flex:none;background:transparent;padding:0 0 4px;border:none;position:static;
  min-height:0;max-height:none;overflow:visible;}
.hm-brand,.hm-side .foot,.hm-grp,.hm-topbar{display:none;}
.hm-pnavs{display:flex;flex-wrap:wrap;gap:7px;padding:0 0 12px;}
.hm-pnav{width:auto;display:inline-flex;align-items:center;gap:6px;padding:8px 14px;border-radius:9px;
  background:#fff;border:1px solid var(--line);color:var(--ink2);font-size:14px;font-weight:600;}
.hm-pnav:hover{background:#f5f8fe;border-color:var(--blue-b);}
.hm-pnav.on{background:var(--blue);border-color:var(--blue);color:#fff;}
.hm-main{padding:0;}
.hm-content{padding:0;}
.hm-panel{padding:0;}
/* 模块内的输入控件沿用宿主字号（老年友好：16px 以上） */
.eld{font-size:16px;color:var(--ink);}
.eld .wrap{padding:0;max-width:none;}
.eld .card{margin-bottom:13px;}
.eld .banner{margin:0 0 13px;}
