
/* ═══ 两个标签页（主任 2026-09-24）：病情简报 / 床边查房 ═══ */
/* 🚨 闪烁根因（2026-09-24）：.hd（患者头部）本来就是 sticky top:0，我又给 .tabs 加了
   sticky top:0 —— 两层同时钉在同一位置互相覆盖，滚动时反复抢位 = 闪。
   修复：标签栏不吸顶（进页面时选一次即可，不需要滚动中一直粘着），
   从根上消除两层 sticky 叠加。 */
/* ═══ 第一屏名单（主任 2026-09-24）═══════════════════════════
   ① 整条横条可点（原来只有文字可点，床旁太难点）—— a.row-hit 绝对定位铺满整行；
   ② 主管医师徽标；③ 手动标记管床的 ☆/★ */
/* 🚨 整条可点：<a class="row"> 本身就是整行（<a> 默认 display:inline，必须显式 flex）。
   不再用绝对定位空链接那套 —— 父级 position 被覆盖就失效（实测踩过）。 */
a.row{display:flex;align-items:center;gap:9px;padding:13px 4px;
 border-bottom:1px solid #F0F3F6;text-decoration:none;color:inherit;
 -webkit-tap-highlight-color:transparent}
a.row:last-child{border-bottom:none}
a.row:active{background:rgba(24,95,165,.07)}
a.row.mine{background:#F7FBFF}
.row-main{flex:1;min-width:0}
.row-main b{font-size:17px}
.row-dx{color:#71818C;font-size:14px}
.star-btn{pointer-events:auto}
.star-btn{background:none;border:none;padding:2px 4px;cursor:pointer;line-height:1;
 -webkit-tap-highlight-color:transparent}
.star{font-size:20px;color:#C9D2D8}
.star.on{color:#E8A33D}
.del-btn{background:none;border:none;color:#B0483A;font-size:15px;line-height:1;
 padding:2px 5px;cursor:pointer;pointer-events:auto;-webkit-tap-highlight-color:transparent}
.del-btn:active{opacity:.5}
.tab-n{font-size:13.5px;opacity:.8}
/* 🚨 标签下半部分闪烁（2026-09-24 主任反馈）：
   .tab.on 的 box-shadow 向下投 8px，正好压在标签下边缘与下方卡片交界处，
   滚动时该区域反复重绘（阴影层 + 卡片背景层叠）→ 下半部分闪。
   修法：高亮不用外投影，改 inset 内阴影 + 加粗边框，完全落在元素内部，不压到下层。 */
.tabs{display:flex;gap:8px;margin:0 0 12px;padding:0;isolation:isolate}
.tab{flex:1;text-align:center;padding:11px 0;border-radius:11px;font-size:16.5px;font-weight:600;
 background:#fff;border:1px solid #E3E8EC;color:#5A6B76;
 -webkit-tap-highlight-color:transparent}
.tab.on{background:#185FA5;border-color:#185FA5;color:#fff;
 box-shadow:inset 0 0 0 1px rgba(255,255,255,.18)}
/* ═══ 底部翻页条（主任 2026-09-24）：上一个病人 / 转到查房 / 下一个病人 ═══
   ⚠️ 刻意不用 position:fixed / sticky —— 本页刚把全部吸顶/浮动层清掉（滚动闪烁的教训），
   这里就正常占位放在页面最底部，滚到底即可看到，不引入任何叠加层。 */
.nav-bar{display:flex;gap:8px;margin:18px 0 8px}
.nav-b{flex:1;display:flex;align-items:center;justify-content:center;gap:5px;
 padding:14px 6px;border-radius:12px;background:#fff;border:1px solid #D8E2EA;
 color:#1F6FB2;font-size:15px;font-weight:600;text-decoration:none;
 -webkit-tap-highlight-color:transparent}
.nav-b:active{background:#EAF3FB}
.nav-b.nav-mid{background:#185FA5;border-color:#185FA5;color:#fff}
.nav-b.nav-mid:active{background:#134A82}
.nav-b.off{color:#B7C2CB;background:#F7F9FA;border-color:#EDF1F4}
.nav-pos{text-align:center;color:#8A98A3;font-size:13px;padding-bottom:6px}
.pane{display:none}
.pane.on{display:block}
.chk-head h4{margin:0 0 7px;font-size:15.5px;font-weight:700;color:#1F3D52}
.chk-head .chk-n{font-size:13px;color:#71818C;font-weight:400;margin-left:7px}
.chk-sep{border-top:1px solid #EEF1F4;margin:4px 0 12px}
/* ═══ 床旁评估：一行一项密排（2026-10-10 主任）—— 原 2 列大方块每项占 2 行、15 项要 8 行高，
   改「左标签 + 右选项」一行一项，15 项一屏排下；选项按钮压到 30px 高（覆盖 button.opt 的 44px）。 */
.ck-list{display:flex;flex-direction:column}
.ck-row{display:flex;align-items:center;gap:8px;padding:5px 0;border-bottom:1px solid #F0F3F6}
.ck-row:last-child{border-bottom:none}
.ck-row .lb{font-size:13.5px;font-weight:600;color:#1F3D52;width:86px;flex:none}
.ck-row .opts{display:flex;gap:5px;flex-wrap:wrap;justify-content:flex-end;flex:1}
.ck-row .opt{font-size:12.5px;padding:3px 10px;border-radius:8px;min-height:30px}
.ck-all{border:1px solid #185FA5;background:#EAF3FB;color:#185FA5;border-radius:9px;
 padding:6px 12px;font-size:13.5px;font-weight:700;font-family:inherit;min-height:34px}
.ck-all:active{background:#D6E8F8}
@media(max-width:420px){.ck-row .lb{width:78px;font-size:13px}.ck-row .opt{padding:3px 8px}}
body{margin:0;background:#F5F7FA;color:#16232E;font-family:-apple-system,BlinkMacSystemFont,"PingFang SC",sans-serif;
 font-size:17px;line-height:1.6;-webkit-text-size-adjust:100%}
.wrap{max-width:720px;margin:0 auto;padding:14px 14px 120px}
a{color:#185FA5;text-decoration:none}
.hd{background:#fff;border:1px solid #E3E8EC;border-radius:14px;padding:16px 18px;margin-bottom:14px}
.hd .bed{font-size:22px;font-weight:600}
.hd .nm{font-size:19px;margin-left:10px}
.hd .hos{font-family:Menlo,monospace;font-size:15px;color:#A32D2D;background:#FCEBEB;border:1px solid #F7C1C1;
 border-radius:6px;padding:2px 8px;margin-left:8px}
.hd .dg{color:#44555F;font-size:15px;margin-top:6px}
.card{background:#fff;border:1px solid #E3E8EC;border-radius:14px;padding:14px 16px;margin-bottom:14px}
.card h3{margin:0 0 10px;font-size:16px}
.item{padding:12px 0;border-bottom:1px solid #F0F3F6}
.item:last-child{border-bottom:none}
.item .lb{font-size:16px;font-weight:600;margin-bottom:8px}
.opts{display:flex;flex-wrap:wrap;gap:8px}
button.opt{border:1px solid #D2DAE0;background:#fff;color:#16232E;border-radius:10px;
 padding:10px 16px;font-size:16px;min-height:44px;font-family:inherit}
button.opt.on{background:#185FA5;border-color:#185FA5;color:#fff}
button.go{background:#185FA5;color:#fff;border:none;border-radius:12px;padding:14px 18px;
 font-size:17px;width:100%;min-height:50px;font-family:inherit}
textarea{width:100%;box-sizing:border-box;border:1px solid #D2DAE0;border-radius:10px;padding:12px;
 font-size:17px;min-height:110px;font-family:inherit}
pre.brief{white-space:pre-wrap;word-break:break-word;margin:0;font-size:14.5px;line-height:1.65;color:#2C3E50}
ul.log{list-style:none;padding:0;margin:0;font-size:15px}
ul.log li{padding:8px 0;border-bottom:1px solid #F0F3F6;color:#44555F}
ul.log b{color:#16232E}
/* ── 已上传文书：可展开看内容与排版、可就地删除（2026-09-28 主任需求）── */
details.rpdoc{border:1px solid #E3E8EC;border-radius:9px;background:#FBFCFD;margin:6px 0;padding:0 10px}
details.rpdoc>summary{cursor:pointer;list-style:none;padding:9px 0;font-size:14.5px;color:#243B49;
 display:flex;align-items:baseline;gap:6px;flex-wrap:wrap}
details.rpdoc>summary::-webkit-details-marker{display:none}
details.rpdoc .rpwhen{color:#71818C}
details.rpdoc .rpwsrc{color:#1F5FA8;font-size:12px;margin-left:2px}
details.rpdoc .rpchg{color:#2E7D32;font-size:12px;margin-left:6px}
details.rpdoc .rpchg-warn{color:#C62828;font-weight:bold}
details.rpdoc .rpsrc{color:#71818C;font-size:13.5px}
details.rpdoc .rphint{color:#1F5FA8;font-size:13px;margin-left:auto}
details.rpdoc[open]>summary{border-bottom:1px solid #E9EEF2}
.rpbody{padding:8px 0 10px}
.rpscroll{overflow-x:auto;border:1px solid #E3E8EC;border-radius:8px;background:#fff}
table.rptbl{border-collapse:collapse;font-size:14px;width:100%}
table.rptbl td{border:1px solid #EDF1F5;padding:5px 9px;white-space:pre-wrap;color:#2C3E50;vertical-align:top}
table.rptbl tr.rphd td{background:#F2F6F9;font-weight:600;color:#1F3D52}
/* 2026-09-29（主任口径 B）：结构化检验单里**定性非正常**的格子标红 ——
   选择器必须带 table.rptbl 前缀才压得住上面的 td 配色（同权重会后来者胜、易失效）。*/
pre.rppre{white-space:pre-wrap;word-break:break-word;margin:0;padding:10px;background:#fff;
 border:1px solid #E3E8EC;border-radius:8px;font-size:14px;line-height:1.7;color:#2C3E50;font-family:inherit}
.rpact{margin-top:8px;display:flex;align-items:center;gap:10px;flex-wrap:wrap}
button.rpd{background:#fff;border:1px solid #E0C3C6;color:#B4232A;border-radius:8px;
 padding:6px 14px;font-size:14px;font-family:inherit;cursor:pointer}
button.rpd:disabled{opacity:.55;cursor:default}
/* 患者页「更新数据」置灰（2026-10-08）：患者已不在在院名单 / 床号已变时，
   按床号采集必然失败，按钮锁死并给原因，别让主任白点一次再吃个报错。 */
button.opt:disabled{opacity:.45;cursor:default;background:#F1F4F6;color:#71818C;border-color:#DCE3E8}
/* 2026-10-23：单患者更新入口做成实心主按钮 —— 和旁边「刷新/展开/收起」的小链接分层，
   一眼看出哪个是动作、哪个是辅助。 */
button.opt.primary{background:#185FA5;border-color:#185FA5;color:#fff;font-weight:600}
button.opt.primary:active{background:#134A82}
button.opt.primary:disabled{opacity:1;background:#EFF2F4;border-color:#DCE3E8;color:#98A5AE}
.rpdelmsg{font-size:13.5px;color:#71818C}
/* 康复科连续拍摄 + 手机端裁剪/涂抹编辑器（2026-09-29） */
.rpq{display:none;margin-top:10px;padding:10px;border:1px solid #DCE5EB;border-radius:10px;background:#F8FAFB}
.rpq.on{display:block}.rpq-head{display:flex;justify-content:space-between;align-items:center;gap:8px}
.rpq-list{display:flex;gap:8px;overflow-x:auto;margin-top:8px;padding-bottom:3px}
.rpq-item{flex:0 0 92px;position:relative;text-align:center}.rpq-item img{width:90px;height:88px;object-fit:contain;border-radius:7px;border:1px solid #CBD7DF;background:#fff}
.rpq-size{display:block;margin-top:2px;font-size:10.5px;color:#71818C;white-space:nowrap}
.rpq-num{position:absolute;left:4px;top:4px;background:rgba(0,0,0,.65);color:#fff;border-radius:9px;padding:1px 6px;font-size:11px}
.rpq-del{position:absolute;right:3px;top:3px;border:0;background:#B4232A;color:#fff;border-radius:50%;width:23px;height:23px;line-height:21px;padding:0;font-size:16px}
.rpq-actions{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-top:9px}.rpq-actions button{min-height:42px;border-radius:9px;border:0;font-size:15px;font-family:inherit}
.rpq-more{background:#fff;color:#185FA5;border:1px solid #AFC5D5!important}.rpq-finish{background:#185FA5;color:#fff}
.rpedit{display:none;position:fixed;inset:0;z-index:9999;background:#10171C;color:#fff;flex-direction:column}.rpedit.on{display:flex}
.rpedit-head{padding:10px 12px;display:flex;justify-content:space-between;align-items:center;background:#18242C;font-size:15px}
.rpedit-stage{flex:1;min-height:0;display:flex;align-items:center;justify-content:center;overflow:hidden;touch-action:none;padding:8px}
#rpCanvas{max-width:100%;max-height:100%;background:#fff;touch-action:none;box-shadow:0 2px 16px rgba(0,0,0,.45)}
.rpedit-tools{background:#18242C;padding:8px 10px calc(8px + env(safe-area-inset-bottom));display:grid;grid-template-columns:repeat(4,1fr);gap:7px}
.rpedit-tools button{min-height:42px;border-radius:8px;border:1px solid #526875;background:#263844;color:#fff;font-size:14px;font-family:inherit}
.rpedit-tools button.on{background:#185FA5;border-color:#67A7D1}.rpedit-tools .save{background:#2D7652;border-color:#5AA076}.rpedit-tools .cancel{background:#71383B;border-color:#9A555A}
.rpedit-tip{grid-column:1/-1;text-align:center;color:#C9D7DF;font-size:12.5px;line-height:1.4}
/* 名单行只有 a.row 一种（已显式 flex/gap/padding，见「第一屏名单」区块），
   此处不再重复定义 .row 布局 —— 重复定义曾把 a.row 的 justify-content 覆盖掉。 */
.row:last-child{border-bottom:none}
.tag{font-size:13px;padding:2px 9px;border-radius:20px;font-weight:600}
.t-no{background:#F1EFE8;color:#5F5E5A}
.t-ok{background:#EAF3DE;color:#27500A}
.empty{color:#71818C;font-size:15px;padding:8px 0}

/* ── 查房简报 ── */
.b-top{display:flex;justify-content:space-between;align-items:center;gap:6px 10px;flex-wrap:wrap;margin-bottom:9px}
/* 2026-10-23：简报卡里的更新按钮行 —— 等宽一排，长度统一、边缘对齐；
   单个按钮（康复科「重建简报」）自动占满整行；超窄屏折成两列。 */
.upd-row{display:flex;gap:8px;margin:9px 0 0}
.upd-row>button,.upd-row>a{flex:1 1 0;min-width:0;min-height:42px;font-size:14.5px;
 padding:0 8px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;
 display:inline-flex;align-items:center;justify-content:center}
@media(max-width:359px){.upd-row{flex-wrap:wrap}.upd-row>button{flex:1 1 46%}}
.b-top h3{margin:0;white-space:nowrap}
.b-top a{font-size:13.5px;color:#185FA5}
.b-sum{background:#F0F5FA;border-left:3px solid #185FA5;border-radius:0 8px 8px 0;
 padding:10px 12px;font-size:15.5px;line-height:1.55;color:#16232E}
.b-sub{color:#71818C;font-size:13.5px;margin-top:8px;line-height:1.5}
.b-sec{margin-top:16px}
.b-sec>.t{font-size:12.5px;font-weight:700;color:#6B7A85;letter-spacing:.5px;margin-bottom:7px}
.hl{display:flex;flex-wrap:wrap;align-items:baseline;gap:8px;padding:9px 11px;border-radius:9px;margin-bottom:6px}
.hl.bad{background:#FCEBEB}.hl.bad .n,.hl.bad .v{color:#8C2323}
.hl.mid{background:#FBF3E2}.hl.mid .n,.hl.mid .v{color:#6B4A0D}
.hl.good{background:#EAF3DE}.hl.good .n,.hl.good .v{color:#27500A}
.hl.mute{background:#F2F5F7}.hl.mute .n,.hl.mute .v{color:#44555F}
.hl .n{font-weight:600;font-size:15px;flex:0 0 auto}
.hl .v{font-family:Menlo,monospace;font-size:14px;flex:1 1 auto}
.hl .k{font-size:11.5px;padding:2px 7px;border-radius:20px;background:rgba(0,0,0,.055);color:#44555F;flex:0 0 auto}
.an{background:#FFFBEF;border:1px solid #F1E3C4;border-radius:10px;padding:9px 11px;margin-bottom:7px}
.an .tx{font-size:14.5px;line-height:1.5;color:#4E3F14}
.an .bs{font-size:12.5px;color:#8B7A4C;margin-top:4px;line-height:1.45}
.an.alert{background:#FCEBEB;border-color:#F1C4C4}
.an.alert .tx{color:#8C2323}
details{border-top:1px solid #EEF1F4;padding:10px 0}
details:first-of-type{border-top:none;padding-top:0}
details>summary{cursor:pointer;font-size:14.5px;font-weight:600;color:#2C3E50;list-style:none}
details>summary::-webkit-details-marker{display:none}
details>summary::before{content:"▸";color:#93A1AB;margin-right:6px;font-size:12px}
details[open]>summary::before{content:"▾"}
details .bd{padding:8px 0 2px;font-size:14px;color:#33454F}
.tb{width:100%;border-collapse:collapse;font-size:14px}
.tb th{text-align:left;font-weight:600;color:#6B7A85;font-size:12.5px;padding:4px 6px;border-bottom:1px solid #E7ECEF}
.tb td{padding:6px;border-bottom:1px solid #F3F6F8;vertical-align:top;line-height:1.45}
.tb tr:last-child td{border-bottom:none}
.tb .mono{font-family:Menlo,monospace;font-size:13.5px;white-space:nowrap}
.tb .abn{color:#A32D2D;font-weight:600}
.tb .ref{color:#93A1AB;font-size:12px;font-weight:400}
.tb .date{color:#8A97A1;font-size:12.5px}
.b-chip{display:inline-block;font-size:12.5px;padding:3px 9px;border-radius:20px;background:#EEF2F5;
 color:#44555F;margin:0 6px 6px 0}
.b-note{color:#71818C;font-size:13.5px}
/* 2026-10-23：标题下的解释说明统一收进可点开的小标签（原生 details，无 JS） */
.tip{font-size:12.5px;color:#71818C;margin:4px 0 8px}
.wsk-tg{display:inline-flex;align-items:center;gap:5px;font-family:inherit;font-size:12.5px;
 color:#6A8290;background:#FAFCFD;border:1px solid #E3E8EC;border-radius:999px;
 min-height:28px;padding:4px 11px;cursor:pointer;touch-action:manipulation;
 -webkit-tap-highlight-color:transparent}
.wsk-tg:active{background:#EAF2F8}
.wsk-tg b{color:#28495B;font-weight:600}
.wsk-tg .wsk-ar{color:#9AA8B2;font-size:11px}
.wsk-tg.on{color:#185FA5;border-color:#CFE0EC;background:#EAF2F8}
.wsk-tg.on .wsk-ar{transform:rotate(180deg)}
.tip>summary{list-style:none;cursor:pointer;display:inline-flex;align-items:center;gap:4px;min-height:28px;padding:4px 11px;touch-action:manipulation;color:#6A8290;border:1px solid #E3E8EC;background:#FAFCFD;border-radius:999px}
.tip>summary::-webkit-details-marker{display:none}
.tip>summary::before{content:"ⓘ"}
.tip[open]>summary{color:#185FA5;border-color:#CFE0EC;background:#EAF2F8}
.tip>div{margin-top:6px;line-height:1.65;color:#71818C}
/* 首次/后续 分段选择（2026-10-23 主任：交给医生选） */
.seg{display:inline-flex;border:1px solid #D8E2EA;border-radius:10px;overflow:hidden;background:#fff}
.seg button{border:0;background:none;font-family:inherit;font-size:14px;color:#52636D;
 padding:7px 13px;min-height:36px;cursor:pointer;touch-action:manipulation;
 -webkit-tap-highlight-color:transparent}
.seg button+button{border-left:1px solid #E6EDF2}
.seg button.on{background:#185FA5;color:#fff;font-weight:600}
/* 医嘱两栏：窄屏上下叠，宽屏左右并排 */
.ord2{display:grid;grid-template-columns:1fr;gap:10px}
@media(min-width:660px){.ord2{grid-template-columns:1fr 1fr}}
.ordcol{border:1px solid #E7ECEF;border-radius:10px;overflow:hidden;background:#FCFDFE}
.ordcol>h4{margin:0;padding:7px 10px;font-size:13px;font-weight:600;border-bottom:1px solid #E7ECEF}
.ordcol>h4.s-long{background:#EDF4EF;color:#2F5D45}
.ordcol>h4.s-short{background:#FBF3EA;color:#7A4A22}
.o-grp{padding:6px 10px 3px;font-size:11.5px;color:#71818C;font-weight:600;letter-spacing:.5px}
.o-it{padding:4px 10px;font-size:13.5px;line-height:1.5;border-top:1px solid #F3F6F8;
 display:flex;gap:6px;align-items:baseline;flex-wrap:wrap}
.o-it .o-n{color:#2A3B45;flex:1;min-width:60%}
.o-it .o-x{color:#8A97A1;font-size:12px;white-space:nowrap}
.o-it.wait{background:#FFFCF5}
.o-tag{font-size:11px;padding:1px 6px;border-radius:8px;background:#EDF1F3;color:#5A6B75;white-space:nowrap}
.o-tag.t-wait{background:#FBE3C0;color:#8A5A12;font-weight:600}
/* 医嘱起止时间列 + 状态标签 + 历史折叠（2026-09-28 主任口径 A/B）——
   时间列等宽等宽对齐成一条竖线，扫起来才不跳。 */
.o-it .o-time{color:#6B7A85;font-size:11.5px;font-family:Menlo,monospace;
 white-space:nowrap;flex:0 0 auto}
.o-it.dead{background:#FAFBFC}
.o-it.dead .o-n{color:#94A1AB}
.o-it.dead .o-x{color:#AAB5BC}
.o-tag.t-dead{background:#EFF1F3;color:#8A97A1}
.o-tag.t-on{background:#E7F2EC;color:#2F6B4A}
/* 医嘱处置按钮（2026-09-30 主任需求：长期医嘱手动停用 / 误录删除）——
   尺寸是 §12 那套描边按钮的行内缩小版（内联在医嘱行里，不能占满高 36px）。
   二次确认由 JS 走**两段式**（再点一次），不用 confirm()：iOS「添加到主屏幕」
   独立模式下系统弹窗常被拦，点了没反馈，医生会以为按钮坏了。 */
.o-act{display:inline-flex;gap:5px;flex:0 0 auto}
.o-act b{font-weight:500;font-size:12px;line-height:1;padding:4px 9px;border-radius:7px;
 border:1px solid #C9D6E0;background:#fff;color:#173A52;cursor:pointer;white-space:nowrap}
.o-act b.danger{border-color:#E7C4BE;color:#A33A2A}
.o-act b.armed{border-color:#D9534F;background:#FDF2EF;color:#A33A2A;font-weight:600}
.o-act b[disabled]{opacity:.55;cursor:default}
.o-tag.t-pend{background:#FBE3C0;color:#8A5A12;font-weight:600}
.o-it.pending{background:#FFFCF5}
.o-it.pending .o-n{color:#6B7A85;text-decoration:line-through;
 text-decoration-color:#C9AE86;text-decoration-thickness:1px}
.o-undo{font-size:11.5px;color:#8A97A1;text-decoration:underline;
 cursor:pointer;flex:0 0 auto}
.o-hist{border-top:1px solid #EEF1F4}
.o-hist>summary{padding:6px 10px;font-size:12.5px;color:#71818C;cursor:pointer;
 list-style:none;background:#F8FAFB}
.o-hist>summary::-webkit-details-marker{display:none}
.o-hist>summary::before{content:"▸ ";color:#9AA7B0}
.o-hist[open]>summary::before{content:"▾ "}
.o-hist[open]>summary{border-bottom:1px solid #F3F6F8}
.o-hist .o-empty-h{padding:6px 10px}
.o-empty{padding:9px 10px;font-size:13px;color:#7A8791}
.o-empty-h{padding:0 10px 9px;font-size:11.5px;color:#9AA7B0;line-height:1.5}
.o-empty.t-alert{color:#A33A2A;font-weight:600;background:#FDF2EF;border-left:3px solid #D9534F}
.b-foot{color:#93A1AB;font-size:12px;margin-top:14px;line-height:1.5;border-top:1px solid #EEF1F4;padding-top:10px}

/* ── mobile product polish ── */
body{background:#F4F6F8;color:#17212B}
.wrap{max-width:760px;padding:0 14px 132px}
/* 🚨 患者页标签闪烁（2026-09-24 主任第二次反馈，最终定案）：
   根因：.hd 是 position:sticky + box-shadow:0 4px 18px（向下投 18px 阴影），
   吸顶不动时这块阴影正好压在下方的标签栏上，滚动中两者反复合成 → 标签闪。
   前面改 .tabs（不吸顶）+ .tab.on（inset 阴影）都没治本，因为病根在 .hd。
   定案（主任口径：「直接让它固定跟随列表滑动吧」）：
   **整个页面取消吸顶**，头部与标签栏一起自然滚走，不存在任何 sticky 与阴影叠加。 */
.hd{margin:0 -14px 14px;padding:16px 18px 14px;border:0;border-radius:0 0 18px 18px;
 background:linear-gradient(135deg,#123B5D,#1B5C7E);color:#fff;
 backface-visibility:hidden}
/* 首页“今日待查”属于名单内容本身，随列表自然滚出，不做悬浮遮挡。 */
#lhead{position:relative;top:auto;z-index:1;border-radius:0 0 18px 18px}
/* 滚动后收成一行：只留床号+姓名+住院号，其余折叠 —— 省纵向空间，仍能随时核对身份 */
/* 🚨 闪烁修复（2026-09-24）：slim 原改 padding+border-radius → 触发布局重排，
   慢滑时类反复切换 = 整个头部及下方内容重排 → 闪。
   改为只动不引起重排的属性：字号可保留（行高固定时影响小），padding 固定不变。 */
.hd.slim{border-radius:0 0 18px 18px;box-shadow:0 2px 10px rgba(20,60,90,.18);
 will-change:transform;transform:translateZ(0)}
.hd.slim .dg,.hd.slim .hd-l2,.hd.slim .opts,.hd.slim #pmsg{display:none!important}
.hd.slim .bed{font-size:19px}
.hd.slim .nm{font-size:15px}
.hd.slim .hos{font-size:13px;padding:1px 6px}
.hd.slim .hdmore{display:inline}
.hdmore{display:inline-block;font:inherit;font-size:12.5px;color:#C5DDE8;margin-left:8px;cursor:pointer;user-select:none;touch-action:manipulation;
 border:1px solid rgba(255,255,255,.28);border-radius:999px;padding:2px 8px;background:rgba(255,255,255,.08)}
button.hdmore{appearance:none;-webkit-appearance:none;line-height:1.3}
/* 首页：只收日期/名单时间/版本号，按钮区（只看未查/同步/自动生成）必须留着 —— 那是常驻操作 */
#lhead.slim{padding:10px 18px 10px}
/* 2026-09-28：上面那句注释的原意一直没被 CSS 兑现 ——
   规则 `.hd.slim .opts{display:none!important}` 把**整排按钮**藏掉了，
   于是滚动一次，康复科「拍照生成名单 / 手动添加患者」就和它一起消失（主任：「被吃了」）。
   用 id 选择器（优先级更高）显式恢复，兑现「按钮区常驻」。 */
#lhead.slim .opts{display:flex!important;flex-wrap:wrap}
.hd.slim .opts{margin-top:4px!important}
.hd.slim .opt{padding:4px 10px;font-size:13px}
#lhead.slim .bed{font-size:19px}
.hd .dg{color:#C5DDE8;font-size:13.5px}
/* ── 患者身份栏（2026-10-23 重做）─────────────────────────────
   一行身份 + 一行次要；住院号加「住院号」标签、白底深字（原来半透明底、
   24 位数字糊成一片，核对时反而看不清）；诊断单行省略，完整版在 title。 */
/* 悬浮可拖动的返回按钮（2026-10-23 主任：悬浮、可移动、吸附边）
   ⚠ 本页此前拆掉过所有悬浮层（sticky+阴影叠加导致滚动闪烁），这里只加**一层**、
     靠 transform 位移（不改 left/top，不触发重排），不叠 sticky，不会复发。
   位置存在 localStorage，下次进来还在原处；拖到哪边就吸附哪边。 */
#hdback{position:fixed;left:0;top:0;z-index:80;display:inline-flex;align-items:center;
 gap:6px;min-height:44px;padding:0 14px 0 11px;border-radius:999px;
 background:rgba(255,255,255,.96);border:1px solid #D8E2EA;color:#185FA5;
 font-size:15.5px;font-weight:600;text-decoration:none;
 box-shadow:0 3px 12px rgba(20,50,70,.20);
 touch-action:none;user-select:none;-webkit-user-select:none;
 -webkit-tap-highlight-color:transparent;will-change:transform}
#hdback:active{background:#EAF3FB}
#hdback.drag{box-shadow:0 6px 20px rgba(20,50,70,.30);background:#fff}
#hdback .ar{font-size:19px;line-height:1;margin-top:-2px}
#phead{padding:13px 16px 11px}
#phead .hd-l1{display:flex;align-items:baseline;gap:10px;flex-wrap:nowrap}
#phead .hd-l1 .bed{font-size:26px;letter-spacing:.5px;font-weight:600;white-space:nowrap;line-height:1.1}
#phead .hd-l1 .bed-u{font-size:12.5px;font-weight:500;opacity:.7;margin-left:1px}
#phead .hd-l1 .nm{font-size:19px;color:#fff;font-weight:600;white-space:nowrap;
 overflow:hidden;text-overflow:ellipsis;min-width:0}
#phead .hd-l1 .hos{flex:none;display:inline-flex;align-items:baseline;gap:5px;font-family:Menlo,monospace;
 font-size:14.5px;color:#123B5D;background:rgba(255,255,255,.94);
 border:1px solid rgba(255,255,255,.5);border-radius:8px;padding:3px 8px;white-space:nowrap}
#phead .hd-l1 .hos i{font-style:normal;font-family:inherit;font-size:10.5px;color:#5A7285;letter-spacing:.5px}
#phead .hd-l1 .hdmore{margin-left:auto;align-self:center;flex:none}
#phead .hd-l2{display:flex;align-items:baseline;gap:8px;margin-top:7px}
#phead .hd-l2 .dx{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
#phead .hd-l2 .din{flex:none;color:#9FBECC;font-size:12.5px;white-space:nowrap}
#phead.slim .hd-l2{display:none}
/* 窄屏（多数手机 360~412px）：整体再压一档，保证一行放得下 床号+姓名+住院号+收起 */
@media(max-width:420px){#phead .hd-l1{gap:7px}#phead .hd-l1 .bed{font-size:22px}#phead .hd-l1 .nm{font-size:17px}#phead .hd-l1 .hos{font-size:13px;padding:2px 6px}#phead .hd-l1 .hos i{font-size:10px}#phead .hd-l1 .hdmore{font-size:11.5px;padding:2px 6px}}
.card{border:0;border-radius:18px;padding:17px 17px;margin-bottom:13px;box-shadow:0 2px 12px rgba(31,50,64,.055)}
.card h3{font-size:17px;color:#1D3342;margin-bottom:12px}
.b-top h3{font-size:18px}.b-top a{font-weight:600}
.item{padding:15px 0}.item .lb{font-size:16px;color:#243B49}.opts{gap:7px}
button.opt{border-radius:12px;padding:9px 13px;min-height:42px;font-size:15px}
/* 2026-09-24：手机连接卡压缩（主任：标签缩小、内容压缩） */
.card.lankard{padding:12px 14px;margin-bottom:11px}
.card.lankard h3{font-size:15px;margin-bottom:7px}
/* 2026-09-24：按钮做小；允许换行不截断（主任：字要完整看得清） */
.optrow{display:flex;flex-wrap:wrap;gap:5px}
/* ── 科室切换条（2026-09-25）─────────────────────────────────
   首页身份行：当前在看哪个科室。放在日期行下方、按钮区上方。
   ⚠️ 窄容器里的胶囊不能 float、要独占一行（已踩过：float 会串行）；
      验收看 scrollWidth>clientWidth，不是肉眼看有没有换行。 */
a.dept-btn{flex:1 1 0;min-width:0;text-align:center;text-decoration:none;
  padding:7px 10px;border-radius:10px;font-size:14px;font-weight:600;
  border:1px solid rgba(255,255,255,.45);color:#fff;background:rgba(255,255,255,.14);
  white-space:nowrap;overflow:hidden;text-overflow:ellipsis;box-sizing:border-box}
a.dept-btn.on{background:#fff;color:#123B5D;border-color:#fff}
.optrow .opt{padding:4px 7px;min-height:30px;font-size:12.5px;border-radius:8px;
  white-space:nowrap;flex:0 0 auto}
button.opt.on{box-shadow:0 2px 6px rgba(24,95,165,.24)}
button.go{border-radius:13px;font-weight:600;box-shadow:0 4px 10px rgba(24,95,165,.18)}
textarea{border-radius:13px;background:#FBFCFD;line-height:1.55}
select#rtype{background:#F7FAFC!important;border-radius:12px!important}
#rres .an{border-radius:12px}.an{border-radius:12px}
.b-sum{border-radius:0 12px 12px 0}.b-sec{margin-top:18px}
#brief{font-size:15px}
#brief>.b-sum{font-size:16px;font-weight:600;line-height:1.6;padding:13px 14px;background:#EEF6FB;border-left-width:4px}
#brief>.b-sub{padding:0 2px 3px}
#brief>.b-sec{padding-top:14px;border-top:1px solid #EDF1F3}
#brief>.b-sec:first-of-type{border-top:0;padding-top:4px}
#brief details{background:#FBFCFD;border:1px solid #E9EEF1;border-radius:12px;padding:0;margin:9px 0;overflow:hidden}
#brief details>summary{padding:12px 13px;font-size:15px;color:#243B49;background:#fff}
#brief details[open]>summary{background:#F4F8FA;border-bottom:1px solid #E7EDF0}
#brief details .bd{padding:11px 13px}
#brief .an.alert{box-shadow:inset 3px 0 #C84A4A}
#brief .hl{margin:7px 0;border-radius:10px}
#brief .ord2{gap:9px}
#brief .ordcol{border-radius:12px;background:#fff}
#brief .b-foot{margin-top:12px}
.action-card{background:#FFFFFF;border:1px solid #E5EDF2;box-shadow:0 5px 18px rgba(25,61,83,.08)}
#ag-note{margin-left:6px;color:#1E6FA8}
.action-hint{margin-top:12px;font-size:13px;color:#71818C;line-height:1.5}
/* 2026-10-13 主任：「今日查房」原 2×2 四格太占地方 → 压成一行状态条。
   2026-10-23 再改（主任：框里看不出该点哪个）：原四个胶囊里「文书/资料」不可点，
   而可点的「采集」「草稿」其实调的是**同一个** confirmAndGenerate —— 外观一样、
   结果也一样，等于同一件事摆两个按钮，医生只能猜。
   现在拆成：上面一行纯状态文字（一律不可点）+ 下面一个主按钮。 */
.ag-strip{display:flex;flex-wrap:wrap;align-items:center;gap:6px 10px}
.ag-title{font-size:13.5px;font-weight:700;color:#173A52;margin-right:0}
.ag-s{font-size:12px;color:#6B7E8A;white-space:nowrap;display:inline-flex;align-items:baseline;gap:3px;
 min-width:0;max-width:100%;overflow:hidden;text-overflow:ellipsis}
.ag-s::before{content:"·";margin-right:6px;color:#C2CCD4}
.ag-title+.ag-s::before{content:none;margin:0}
.ag-s b{font-weight:600;color:#28495B;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
/* 提示行可能带日志末行（含长路径/英文串）—— 强制可折，绝不撑出屏幕 */
#ag-note{word-break:break-all}
/* ── 患者页 v2（2026-09-29）：结构优化，纯 CSS，不碰 HTML/onclick/id ── */
/* 床边查房：已是一张 .card 外壳，给内部各 .chk-head 段加顶分隔线 + 左色条，形成清晰分段 */
.bed-round .chk-head{position:relative;padding-left:13px;margin-top:16px;padding-top:14px;border-top:1px solid #EDF1F5}
.bed-round .chk-head:first-of-type{margin-top:2px;padding-top:4px;border-top:0}
.bed-round .chk-head::before{content:"";position:absolute;left:0;top:4px;bottom:2px;width:4px;border-radius:3px;background:#185FA5}
/* 状态语义圆点（与名单页一致；⚪ emoji 灯涉及 hos.js 动态更新，本轮回退保留） */
.dot{display:inline-block;width:8px;height:8px;border-radius:50%;margin-right:7px;vertical-align:middle}
.dot.todo{background:#C9892F}.dot.run{background:#185FA5}.dot.ok{background:#2D7652}.dot.off{background:#B9C4CC}
/* ① 查房简报标题右三链接 → 描边按钮外观（onclick 不变） */
.b-top a{display:inline-block;padding:5px 11px;border:1px solid #C9D6E0;border-radius:8px;
  font-size:13px;color:#173A52;font-weight:600}
.b-top a:hover{border-color:#185FA5;color:#185FA5}
@media(max-width:520px){.wrap{padding-left:12px;padding-right:12px}.hd{margin-left:-12px;margin-right:-12px}.card{padding:15px}.hl{padding:10px}.tb{font-size:13px}}
/* ═══ 名单页头部与列表重构（2026-09-29 主任确认 A 方案）═══════════════════
   只调版式：onclick / id / 接口 / 折叠逻辑一律未动。
   头部由「一整坨 7 类元素」收成四层：
     ① 主标题行（今日待查 + 进度 + 收起）
     ② 信息 chips（日期 / 名单新鲜度 / 数据新鲜度）
     ③ 操作行（按钮统一 36px）
     ④ 身份行（当前身份 + 同科医生 + 入口链接 + 版本，细线分隔、弱化） */
#lhead .hd-l1{display:flex;align-items:baseline;justify-content:space-between;gap:10px}
#lhead .bed-cnt{font-size:15px;font-weight:500;color:#BFD8E6;margin-left:8px}
#lhead .hd-chips{display:flex;flex-wrap:wrap;gap:6px;margin-top:11px}
#lhead .hd-chip{font-size:12.5px;border-radius:999px;padding:3px 10px;
  background:rgba(255,255,255,.12);border:1px solid rgba(255,255,255,.2);color:#DCEAF3;white-space:nowrap}
/* 按钮行用 grid（不依赖 flex-wrap）：窄屏 2×2、宽屏一行四个 —— 任何宽度都不溢出。
   🚨 2026-09-29 实测：此处原来靠 flex-wrap，在 375px 下不换行，把整页横向撑开
      （连标签栏都被推出视口）。grid 不依赖换行计算，稳定。 */
#lhead .opts{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-top:12px}
#lhead .opts .opt{min-height:36px;border-radius:9px;font-size:13px;font-weight:600;
  padding:5px 8px;border-color:rgba(255,255,255,.5);background:#fff;color:#16395A;
  white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
@media(min-width:560px){
  #lhead .opts{grid-template-columns:repeat(4,auto);justify-content:start}
  #lhead .opts .opt{padding:5px 13px}
}
#lhead .opts .opt.primary{border-color:#fff;font-weight:700;box-shadow:0 3px 10px rgba(0,0,0,.14)}
#lhead .hd-hr{height:1px;background:rgba(255,255,255,.16);margin:12px 0 0}
#lhead .hd-idrow{display:flex;align-items:center;flex-wrap:wrap;gap:9px;
  margin-top:11px;font-size:12.5px;color:#B9CEDB}
#lhead .hd-idrow .me{font-weight:700;color:#fff}
#lhead .hd-idrow a{color:#B9CEDB;text-decoration:none;
  border-bottom:1px solid rgba(185,206,219,.32);padding-bottom:1px}
#lhead .hd-doc{font-size:11.5px;border-radius:999px;padding:2px 8px;
  background:rgba(255,255,255,.1);border:1px solid rgba(255,255,255,.18);color:#CFE0EA}
#lhead .hd-doc.on{background:rgba(45,118,82,.28);border-color:rgba(185,236,197,.4);color:#C6F0D2}
#lhead .hd-doc-label{font-size:11.5px;color:rgba(255,255,255,.5)}
/* 折叠（slim）：与原有口径一致 —— 只留主标题行 + 常驻操作行 */
#lhead.slim .hd-chips,#lhead.slim .hd-idrow,#lhead.slim .hd-hr{display:none!important}

/* ═══ 名单行三列（2026-09-29）：床号块 / 主体（姓名+主管+诊断）/ 状态列 / 操作列 ═══
   原来右侧把「主管 chip + 已查未查 tag + 星标 + 删除」四样并排，
   核心状态「已查/未查」被夹在中间，扫一眼抓不到。现拆成两列并在窄屏保持对齐线。 */
a.row{gap:12px;align-items:stretch;padding:12px 2px}
.row .bedbox{flex:0 0 70px;display:flex;flex-direction:column;align-items:center;
  justify-content:center;background:#F2F7FB;border-radius:10px;padding:6px 4px}
/* 床号必须单行 —— 实测「08-+09」在 18px/62px 下会被折成两行（主任床号带「+」） */
.row .bedbox b{font-size:16px;color:#173A52;line-height:1.15;white-space:nowrap}
.row .bedbox span{font-size:10.5px;color:#7E8E99;margin-top:2px}
.row .row-main{display:flex;flex-direction:column;justify-content:center;gap:3px}
/* 姓名必须单行（实测 320px 下会被挤成一字一行）；主管胶囊放不下时整体换行 */
.row .nm-line{display:flex;align-items:center;gap:8px;min-width:0;flex-wrap:wrap}
.row .nm-line b{font-size:17px;color:#173A52;white-space:nowrap}
.row .docmini{font-size:12px;color:#5A7285;background:#EFF4F8;border:1px solid #E1E9EF;
  border-radius:6px;padding:1px 6px;white-space:nowrap}
.row .docmini.none{color:#96A2AB;background:#F2F4F6;border-color:#E5E9EC}
.row .statcol{flex:0 0 58px;display:flex;align-items:center;justify-content:center}
.row .opcol{flex:0 0 28px;display:flex;flex-direction:column;align-items:center;
  justify-content:center;gap:5px}
.row .opcol .star-btn,.row .opcol .del-btn{width:28px;height:28px;border-radius:8px;
  border:1px solid #E3EAEF;background:#FBFCFD;display:flex;align-items:center;
  justify-content:center;font-size:14px;padding:0;line-height:1}
.row .opcol .star{font-size:14px}
@media(max-width:420px){
  a.row{gap:8px}
  .row .bedbox{flex:0 0 56px}
  .row .bedbox b{font-size:14px}
  .row .statcol{flex:0 0 46px}
  .row .opcol{flex:0 0 26px}
}

.pd-wrap{margin-top:10px}
.pd{border:1px solid #D2DAE0;border-radius:12px;background:#fff;overflow:hidden}
.pd>summary{padding:12px 14px;cursor:pointer;list-style:none;background:#F7F9FA}
.pd>summary::-webkit-details-marker{display:none}
.pd-t{display:block;font-weight:700;font-size:15px;color:#1F3D52}
.pd-sum{display:block;margin-top:4px;font-size:12.5px;color:#5A6B76;line-height:1.6}
.pd-sum b{color:#185FA5}
.pd-body{padding:4px 14px 14px}
.pd-sec{margin-top:12px}
.pd-h{font-size:13.5px;font-weight:700;color:#1F3D52;border-bottom:1px solid #EEF1F4;padding-bottom:5px}
.pd-sub{font-size:12.5px;color:#5A6B76;margin:8px 0 4px}
.pd-tb{width:100%;border-collapse:collapse;font-size:13px}
.pd-tb td{padding:4px 2px;border-bottom:1px solid #F4F6F8;vertical-align:top}
.pd-n{color:#33444E;width:46%}
.pd-v{text-align:right;white-space:nowrap;font-variant-numeric:tabular-nums}
.pd-r{text-align:right;white-space:nowrap;font-size:12px}
.pd-tb tr.hi .pd-v,.pd-tb tr.hi .pd-mk{color:#B4232A;font-weight:700}
.pd-tb tr.lo .pd-v,.pd-tb tr.lo .pd-mk{color:#185FA5;font-weight:700}
.pd-tb tr.ab .pd-v,.pd-tb tr.ab .pd-mk{color:#8C5A11;font-weight:700}
.pd-u{font-size:11.5px;color:#7A8894;font-weight:400}
.pd-ref{font-size:12px;color:#7A8894}
.pd-mk{margin-left:6px}
.pd-ex{margin:8px 0;padding:8px 10px;background:#F7F9FA;border-radius:8px}
.pd-exh{font-size:13.5px;font-weight:600;color:#1F3D52}
.pd-exh .pd-ref{margin-left:8px;font-weight:400}
.pd-ext{font-size:13px;color:#33444E;line-height:1.65;margin-top:4px}
.pd-od{display:flex;gap:8px;align-items:baseline;font-size:13px;padding:5px 2px;border-bottom:1px solid #F4F6F8}
.pd-tt{color:#7A8894;font-size:12px;white-space:nowrap;font-variant-numeric:tabular-nums}
.pd-oc{flex:1;color:#33444E}
.pd-fee{display:flex;gap:10px;align-items:baseline;margin:8px 0}
.pd-ft{font-size:19px;font-weight:700;color:#B4232A}
