*{box-sizing:border-box;margin:0;padding:0;-webkit-tap-highlight-color:transparent}
:root{--gold:#C8A96E;--gold-light:#E8C97E;--gold-dim:#9B8A66;--ink:#0A0A0F;--ink-mid:#12121A;--ink-light:#1C1C2A;--ivory:#F2EBD9;--ivory-dim:#B8AA90;--nav-h:58px;--safe-top:env(safe-area-inset-top,0px);--safe-bot:env(safe-area-inset-bottom,0px)}
html{-webkit-text-size-adjust:100%}
body{font-family:-apple-system,'Noto Serif SC','PingFang SC','Hiragino Sans GB','Microsoft YaHei',serif;background:#04040a;color:var(--ivory);line-height:1.7}
.app{max-width:480px;margin:0 auto;min-height:100vh;position:relative;background:var(--ink);box-shadow:0 0 40px rgba(0,0,0,.6)}
.topbar{position:sticky;top:0;z-index:20;background:rgba(10,10,15,.93);backdrop-filter:blur(10px);color:var(--ivory);padding:calc(var(--safe-top) + 13px) 14px 13px;border-bottom:1px solid rgba(200,169,110,.12);text-align:center}
.topbar .title{font-size:18px;font-weight:600;color:var(--gold);font-family:'Ma Shan Zheng','Noto Serif SC',serif;letter-spacing:2px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.content{max-width:480px;margin:0 auto;padding:14px 14px calc(var(--nav-h) + var(--safe-bot) + 24px);min-height:60vh}
.nav{position:fixed;left:0;right:0;bottom:0;z-index:30;max-width:480px;margin:0 auto;height:calc(var(--nav-h) + var(--safe-bot));padding-bottom:var(--safe-bot);background:rgba(10,10,15,.96);border-top:1px solid rgba(200,169,110,.16);display:flex;backdrop-filter:blur(10px)}
.nav button{flex:1;background:none;border:none;color:var(--ivory-dim);font-size:20px;font-family:'Ma Shan Zheng','Noto Serif SC',serif;cursor:pointer;position:relative}
.nav button .ic{display:block;font-style:normal}
.nav button.on{color:var(--gold)}
.nav button.on::before{content:"";position:absolute;top:0;left:28%;right:28%;height:2px;background:linear-gradient(90deg,transparent,var(--gold),transparent)}

/* 通用 */
h3.sec-t{color:var(--gold);font-size:17px;font-family:'Ma Shan Zheng','Noto Serif SC',serif;letter-spacing:1px;margin:0 0 4px}
.sec{padding:6px 0 14px;border-bottom:1px solid rgba(200,169,110,.08)}
.hintx{color:var(--ivory-dim);font-size:13px;margin-bottom:8px}
.hero{text-align:center;padding:24px 14px;margin-bottom:8px;border:1px solid rgba(200,169,110,.16);border-radius:16px;background:linear-gradient(160deg,var(--ink-mid),var(--ink-light))}
.hero.slim{padding:16px 14px}
.hero-title{font-size:24px;color:var(--gold);font-family:'Ma Shan Zheng','Noto Serif SC',serif;letter-spacing:4px}
.hero-sub{font-size:12.5px;color:var(--ivory-dim);margin-top:4px;letter-spacing:1px}
.muted{color:var(--ivory-dim);font-size:12.5px;padding:6px 0}

/* 人体 */
.bodybox{display:flex;justify-content:center;padding:6px 0}
svg.body{display:block;width:auto;height:auto;max-height:68vh;max-width:100%}
.region{fill:url(#gFill);stroke:url(#gStroke);stroke-width:1.1;cursor:pointer;transition:fill .25s,stroke .25s}
.region:hover,.region.on{fill:rgba(200,169,110,.45);stroke:#efd69a;stroke-width:1.8}
.region.on{filter:url(#glow)}

/* 部位自查：左人偶 + 右树状选择（紧凑） */
.bodyrow{display:flex;gap:8px;align-items:flex-start}
.bodyrow .fig{flex:0 0 42%;min-width:0}
.bodyrow .fig svg.body{width:100%;height:auto;max-height:58vh}
.bodyrow .tree{flex:1;min-width:0;max-height:58vh;overflow:auto;padding:0 2px 4px 0}
.tree-empty{color:var(--ivory-dim);font-size:12px;text-align:center;padding:34px 6px;border:1px dashed rgba(200,169,110,.25);border-radius:12px;line-height:1.8;margin-top:2px}
.rtitle{display:flex;align-items:center;color:var(--gold-light);font-size:14px;font-weight:700;font-family:'Ma Shan Zheng','Noto Serif SC',serif;margin-bottom:4px;letter-spacing:.5px}
.rtitle .selc{margin-left:auto;font-size:10.5px;font-weight:400;color:var(--gold-dim);border:1px solid rgba(200,169,110,.32);border-radius:20px;padding:0 8px}
.tg{border:1px solid rgba(200,169,110,.16);border-radius:9px;margin:5px 0;overflow:hidden;background:var(--ink-mid)}
.tg-h{display:flex;align-items:center;gap:6px;padding:7px 10px;color:var(--gold-light);font-size:12.5px;letter-spacing:.5px;cursor:pointer;user-select:none}
.tg-h .tg-n{margin-left:auto;font-size:10.5px;color:var(--gold-dim);border:1px solid rgba(200,169,110,.25);border-radius:20px;padding:0 7px}
.tg-a{display:inline-block;width:7px;height:7px;border-right:2px solid var(--gold);border-bottom:2px solid var(--gold);transform:rotate(-45deg);transition:transform .2s;margin-top:-3px;flex:0 0 auto}
.tg-a.open{transform:rotate(45deg)}
.tg-b{padding:1px 0 4px}
.srow{display:flex;align-items:center;gap:6px;padding:5px 10px;font-size:12.5px;color:var(--ivory);cursor:pointer;border-top:1px solid rgba(200,169,110,.07)}
.srow input{accent-color:var(--gold);width:14px;height:14px;flex:0 0 auto;cursor:pointer}
.srow.on{background:rgba(200,169,110,.1)}
.srow.on span{color:var(--gold-light)}

/* 已选症状卡片 */
.hz{font-style:normal;font-size:11px;color:var(--gold-dim);font-weight:400;margin-left:3px}
.selcards{margin-top:8px}
.sel-head{color:var(--gold-light);font-size:13px;margin:4px 0 6px;font-family:'Ma Shan Zheng','Noto Serif SC',serif;letter-spacing:1px}
.sel-head b{color:var(--gold);font-size:15px}
.sel-card{background:var(--ink-mid);border:1px solid rgba(200,169,110,.16);border-radius:12px;padding:8px 10px;margin-bottom:8px}
.sel-card .sel-t{color:var(--gold-light);font-size:12.5px;margin-bottom:5px;font-family:'Ma Shan Zheng','Noto Serif SC',serif;letter-spacing:.5px}
.sel-item{display:inline-flex;align-items:center;gap:3px;background:rgba(200,169,110,.12);border:1px solid rgba(200,169,110,.35);color:var(--ivory);border-radius:20px;padding:2px 4px 2px 9px;font-size:11.5px;margin:0 4px 4px 0}
.sel-item .x{font-style:normal;cursor:pointer;color:var(--gold);width:16px;text-align:center;border-left:1px solid rgba(200,169,110,.3)}

/* 顶部：阳历 · 阴历 · 天干地支 */
.hero-cal{color:var(--gold-dim);font-size:12px;margin-top:6px;line-height:1.8;letter-spacing:.5px}
.hero-cal .cal-lunar{color:var(--ivory)}
.hero-cal .cal-gz{color:var(--ivory-dim);font-size:11.5px}
.hero-cal .cal-gz b{color:var(--gold);font-family:'Ma Shan Zheng','Noto Serif SC',serif;font-size:13px}

/* 舌诊 / 脉诊：标签缩小紧凑 */
#tongueChips,#pulseChips{display:flex;flex-wrap:wrap;gap:5px;margin-top:2px}
#tongueChips .chip,#pulseChips .chip{padding:3px 8px;font-size:11.5px;border-radius:8px}
.syminfo{margin-top:2px}
.syminfo .note{font-size:12px;padding:5px 2px}
.bresult{margin-top:10px}
.rcard{background:var(--ink-mid);border:1px solid rgba(200,169,110,.16);border-radius:14px;padding:14px}
.rtitle{color:var(--gold-light);font-size:17px;font-weight:700;font-family:'Ma Shan Zheng','Noto Serif SC',serif;margin-bottom:8px;letter-spacing:1px}
.grp{margin:10px 0}
.grp .gl{display:inline-block;color:var(--gold-light);font-size:12.5px;margin-bottom:6px;border:1px solid rgba(200,169,110,.35);border-radius:20px;padding:1px 12px}
.chips{display:flex;flex-wrap:wrap;gap:8px}
.chip{background:var(--ink-mid);border:1px solid rgba(200,169,110,.18);color:var(--ivory);border-radius:10px;padding:6px 11px;font-size:13.5px;font-family:inherit;cursor:pointer}
.chip.hl{border-color:var(--gold);color:var(--gold-light)}
button.chip{padding:7px 12px}
.note{color:var(--ivory-dim);font-size:13px;line-height:1.9;padding:9px 12px;border-left:3px solid var(--gold);background:rgba(200,169,110,.05);border-radius:0 8px 8px 0;margin-top:8px}
.catg{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:10px}

/* 选择器 */
.select-row{display:flex;gap:8px;flex-wrap:wrap}
.select-row select{flex:1;min-width:150px;background:var(--ink-mid);color:var(--ivory);border:1px solid rgba(200,169,110,.3);border-radius:10px;padding:11px 12px;font-size:15px;font-family:inherit;outline:none}
.select-row select:focus{border-color:var(--gold)}

/* 搜索/列表 */
.search-box{position:sticky;top:52px;z-index:12;padding:8px 0;background:var(--ink)}
.search-box input{width:100%;padding:11px 14px;font-size:15px;border:1px solid rgba(200,169,110,.22);border-radius:10px;background:var(--ink-mid);color:var(--ivory);outline:none;font-family:inherit}
.search-box input::placeholder{color:var(--gold-dim)}
.search-box input:focus{border-color:var(--gold)}
.vlist{list-style:none}
.vlist li{background:var(--ink-mid);border:1px solid rgba(200,169,110,.12);border-radius:12px;margin:8px 0;padding:11px 13px}
.vlist li a b{color:var(--gold);text-decoration:none;font-size:15.5px;font-weight:600}
.vlist li a,.vlist li a:visited{text-decoration:none}
.vlist li .sum{color:var(--ivory-dim);font-size:12.5px;line-height:1.7;margin-top:3px;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}

/* 分类卡片(方/药/针/养/案) */
.grid2{display:grid;grid-template-columns:repeat(2,1fr);gap:12px;padding-top:6px}
.gcard{background:var(--ink-mid);border:1px solid rgba(200,169,110,.16);border-radius:14px;padding:28px 10px;text-align:center;color:var(--gold);font-size:18px;font-family:'Ma Shan Zheng','Noto Serif SC',serif;letter-spacing:2px;cursor:pointer;transition:transform .15s}
.gcard:active{transform:scale(.97)}

/* 标签 */
.tag{display:inline-block;font-size:11px;font-weight:400;border-radius:10px;padding:0 7px;margin-left:4px;vertical-align:2px}
.tag.ok{color:#7fd6a0;border:1px solid rgba(127,214,160,.5)}
.tag.wip{color:var(--gold-dim);border:1px solid rgba(155,138,102,.5)}

/* 详情查看器 */
.viewer{position:fixed;top:0;left:0;right:0;bottom:0;z-index:50;max-width:480px;margin:0 auto;background:var(--ink);flex-direction:column}
.vbar{display:flex;align-items:center;gap:8px;padding:calc(var(--safe-top) + 10px) 12px 10px;border-bottom:1px solid rgba(200,169,110,.14);background:rgba(10,10,15,.95)}
.vback{background:none;border:1px solid rgba(200,169,110,.4);color:var(--gold);border-radius:8px;padding:6px 12px;font-size:14px;font-family:inherit}
.vtitle{flex:1;text-align:center;color:var(--gold);font-size:16px;font-family:'Ma Shan Zheng','Noto Serif SC',serif;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.vframe{flex:1;background:#fff}
.vframe iframe{width:100%;height:100%;border:0}

/* 设置按钮（hero 右上角） */
.hero{position:relative}
.setbtn{position:absolute;top:12px;right:12px;width:34px;height:34px;border-radius:12px;border:1px solid rgba(200,169,110,.4);background:rgba(200,169,110,.1);color:var(--gold-light);font-size:17px;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:background .2s}
.setbtn:active{background:rgba(200,169,110,.25)}

/* 病例下拉（部位自查上方） */
.casepick{display:flex;align-items:center;gap:10px;background:var(--ink-mid);border:1px solid rgba(200,169,110,.18);border-radius:12px;padding:8px 12px;margin-bottom:12px}
.casepick label{flex:0 0 auto;color:var(--gold-light);font-size:13px;font-family:'Ma Shan Zheng','Noto Serif SC',serif;letter-spacing:1px}
.casepick select{flex:1;min-width:0;background:var(--ink-light);color:var(--ivory);border:1px solid rgba(200,169,110,.28);border-radius:9px;padding:8px 10px;font-size:13px;font-family:inherit;outline:none;color-scheme:dark}
.casepick select:focus{border-color:var(--gold)}

/* 实时诊断结果 */
.diag{margin-top:10px}
.diag-empty{border:1px dashed rgba(200,169,110,.3);border-radius:14px;padding:26px 14px;text-align:center;color:var(--gold-dim);font-size:12.5px;line-height:1.9;background:rgba(200,169,110,.03)}
.diag-t{display:flex;align-items:center;gap:8px;margin:4px 0 8px}
.diag-t span{color:var(--gold);font-size:15px;font-family:'Ma Shan Zheng','Noto Serif SC',serif;letter-spacing:2px}
.diag-t small{color:var(--gold-dim);font-size:11px;border:1px solid rgba(200,169,110,.3);border-radius:20px;padding:0 8px}
.diag-card{background:var(--ink-mid);border:1px solid rgba(200,169,110,.16);border-left:3px solid var(--gold);border-radius:12px;padding:10px 13px;margin-bottom:8px}
.diag-card h4{color:var(--gold-light);font-size:14px;font-family:'Ma Shan Zheng','Noto Serif SC',serif;letter-spacing:1px;margin-bottom:4px}
.diag-card ul{list-style:none}
.diag-card li{font-size:13px;color:var(--ivory);padding:5px 0;border-top:1px dashed rgba(200,169,110,.14)}
.diag-card li:first-child{border-top:none}
.diag-card li b{color:var(--gold);font-family:'Ma Shan Zheng','Noto Serif SC',serif;font-size:14px}
.diag-card li small{color:var(--gold-dim);font-size:11px;margin-left:3px}
.diag-card li p{color:var(--ivory-dim);font-size:12px;line-height:1.7}
.diag-none{color:var(--gold-dim);font-size:12px;padding:4px 0}

/* 模态框：设置 & 病例 */
.modal{position:fixed;top:0;left:0;right:0;bottom:0;z-index:60;max-width:480px;margin:0 auto;background:rgba(0,0,0,.62);backdrop-filter:blur(3px);display:flex;align-items:flex-end;justify-content:center}
.mwrap{width:100%;max-height:88vh;overflow:auto;background:var(--ink);border-top:1px solid rgba(200,169,110,.2);border-radius:18px 18px 0 0;padding:14px 16px calc(18px + var(--safe-bot))}
.mhead{display:flex;align-items:center;justify-content:space-between;padding-bottom:12px;border-bottom:1px solid rgba(200,169,110,.14);margin-bottom:12px}
.mhead b{color:var(--gold);font-size:17px;font-family:'Ma Shan Zheng','Noto Serif SC',serif;letter-spacing:2px}
.mclose{background:none;border:1px solid rgba(200,169,110,.4);color:var(--gold);border-radius:8px;width:30px;height:30px;font-size:16px;cursor:pointer}
.btn{font-family:inherit;cursor:pointer;border-radius:10px;padding:10px 16px;font-size:14px;border:1px solid rgba(200,169,110,.4);font-family:'Ma Shan Zheng','Noto Serif SC',serif;letter-spacing:1px}
.btn.primary{background:linear-gradient(160deg,var(--gold),var(--gold-light));color:#221d12;border:none;font-weight:700}
.btn.ghost{background:none;color:var(--ivory-dim)}
.mbox{display:block}
.case-n{color:var(--gold-light);font-size:13.5px;margin:14px 0 8px;font-family:'Ma Shan Zheng','Noto Serif SC',serif;letter-spacing:1px}
.case-n b{color:var(--gold);font-size:15px}
.case-list .case-r{background:var(--ink-mid);border:1px solid rgba(200,169,110,.16);border-radius:12px;padding:10px 12px;margin-bottom:9px}
.case-r .case-top{display:flex;align-items:center;gap:8px;margin-bottom:6px}
.case-top b{color:var(--gold);font-size:13.5px}
.case-top span{color:var(--gold-dim);font-size:11.5px;border:1px solid rgba(200,169,110,.3);border-radius:20px;padding:0 8px}
.case-top .del{margin-left:auto;background:none;border:1px solid rgba(220,120,120,.4);color:#e08b8b;border-radius:8px;padding:2px 9px;font-size:11.5px;cursor:pointer;font-family:inherit}
.case-r p{font-size:12px;color:var(--ivory-dim);line-height:1.7}
.case-r p b{color:var(--ivory);font-weight:600}

/* 病例表单 */
#caseForm .frow{margin-bottom:10px}
.frow label{display:block;color:var(--gold-light);font-size:12.5px;margin-bottom:4px;font-family:'Ma Shan Zheng','Noto Serif SC',serif}
.frow input,.frow select,.frow textarea{width:100%;padding:9px 11px;font-size:14px;border:1px solid rgba(200,169,110,.26);border-radius:9px;background:var(--ink-light);color:var(--ivory);outline:none;font-family:inherit;color-scheme:dark}
.frow textarea{resize:vertical;line-height:1.6}
.frow input:focus,.frow select:focus,.frow textarea:focus{border-color:var(--gold)}
.fbtn{display:flex;gap:10px;margin-top:14px}
.fbtn .btn{flex:1}
/* 子系统同步（家庭就诊记录系统 Bridge） */
.syncbox{margin-top:18px;padding-top:14px;border-top:1px dashed rgba(200,169,110,.28)}
.syncbox h4{color:var(--gold);font-family:'Ma Shan Zheng','Noto Serif SC',serif;font-size:14.5px;letter-spacing:1px;margin:0 0 10px}
.sync-st{color:var(--gold-dim);font-size:12px;margin:10px 0 0;line-height:1.6}
.sync-st.ok{color:#8fbf7f}