
/* ═══ 两个标签页（主任 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-main b{font-size:17px}
.row-dx{color:#71818C;font-size:14px}
.row-side{position:relative;z-index:3;display:flex;align-items:center;gap:6px;
 flex-shrink:0;pointer-events:none}
.star-btn{pointer-events:auto}
.doc-chip{font-size:12.5px;color:#1F6FB2;background:#EAF3FB;border:1px solid #D3E6F6;
 border-radius:7px;padding:2px 7px;white-space:nowrap}
.doc-chip.doc-none{color:#96A2AB;background:#F2F4F6;border-color:#E5E9EC}
.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-09-24）—— 15 项从 30 行压到 8 行 ═══ */
.ck-grid{display:grid;grid-template-columns:1fr 1fr;gap:9px 12px;margin-top:9px}
.ck-cell{background:#FBFCFD;border:1px solid #EDF1F4;border-radius:10px;padding:9px 10px}
.ck-cell .lb{font-size:14.5px;font-weight:600;color:#1F3D52;margin-bottom:6px}
.ck-cell .opts{display:flex;flex-wrap:wrap;gap:5px}
.ck-cell .opt{font-size:13.5px;padding:5px 9px;border-radius:8px}
.ck-cell .opt.on{font-weight:700}
@media(max-width:420px){.ck-grid{gap:7px}.ck-cell{padding:7px 8px}.ck-cell .opt{font-size:13px;padding:4px 7px}}
/* ═══ 床旁评估：一行一项密排（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 .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 配色（同权重会后来者胜、易失效）。*/
table.rptbl td.rpab{color:#B4232A;font-weight:600}
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}
.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}
/* 🚨 全科点不进去的真因（2026-09-24）：这条老规则在文件后面，覆盖了新写的
   .row{position:relative} → a.row-hit 的 inset:0 失去定位参照 → 点不动。
   已合并进上面的 .row 规则（见「第一屏名单」区块），此处只留 display:flex 兜底，
   不再重设 justify-content（那会把 .row-main/.row-side 的布局打乱）。 */
.row{display:flex;align-items:center}   /* 兜底（a.row 已显式 flex；此条仅防旧页面元素） */
.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:baseline;gap:6px 10px;flex-wrap:wrap;margin-bottom:9px}
.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}
/* 医嘱两栏：窄屏上下叠，宽屏左右并排 */
.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 .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}
/* 2026-09-28：折叠后只保留「床号/进度 + 收起按钮 + 操作按钮行」。
   .dept-bar / .doc-bar 原来不随折叠收起 —— 加上按钮行常驻之后，
   点「收起」几乎看不出变化（主任：「无法折叠」）。
   注：真正让折叠彻底失效的是脚本崩溃（见 page() 上方的 COMMON_JS 注释），
   这条是把「能折了之后」的手感一并修到位。 */
#lhead.slim .dept-bar,#lhead.slim .doc-bar{display:none!important}
.hd.slim .opts{margin-top:4px!important}
.hd.slim .opt{padding:4px 10px;font-size:13px}
#lhead.slim .bed{font-size:19px}
.hd .bed{font-size:26px;letter-spacing:.5px}.hd .nm{font-size:18px;color:#E7F2F8}.hd .hos{color:#EAF5FA;background:rgba(255,255,255,.14);border-color:rgba(255,255,255,.2)}
.hd .dg{color:#C5DDE8;font-size:13.5px}.hd .dg:last-child{color:#FFD7D2!important;font-size:12px;margin-top:8px}
.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，不是肉眼看有没有换行。 */
.dept-bar{display:flex;gap:8px;margin-top:9px;flex-wrap:wrap}
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}
.mobile-section-title{font-size:12px;color:#73828D;font-weight:700;letter-spacing:.08em;text-transform:uppercase;margin:2px 2px 9px}
#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)}
.action-kicker{font-size:11px;letter-spacing:.13em;color:#6D8491;font-weight:800;margin-bottom:4px}
.action-title{font-size:20px;font-weight:750;color:#173A52;margin-bottom:14px}
.action-grid{display:grid;grid-template-columns:1fr 1fr;gap:9px}
.action-grid>div{background:#F5F8FA;border-radius:12px;padding:10px 11px;min-height:49px}
.action-label{display:block;font-size:13px;color:#6B7E8A;margin-bottom:3px}
.action-grid strong{font-size:15.5px;color:#28495B}.action-grid .ok-text{color:#2D7652}
/* 2026-09-24：四格可点执行（主任口径：不是跳转，是执行功能） */
.action-grid .ag-act{cursor:pointer;position:relative;transition:background .15s,transform .1s;
  border:1px solid #DCE8F0}
.action-grid .ag-act:active{transform:scale(.97);background:#EAF2F8}
.action-grid .ag-act.ag-busy{background:#FBF3E2;border-color:#E8D6A8}
/* 2026-09-24 主任：胶囊字显示不全 → 不再 float 于标签右侧，改为独占一行，
   允许两行显示（「完成查房」4 字在窄屏折成两行也不截断） */
.action-grid .ag-go{display:block;margin-top:3px;font-size:13.5px;color:#155C8C;
  background:#DCEBF7;border-radius:9px;padding:3px 8px;line-height:1.35;font-weight:500;
  text-align:center;white-space:normal;word-break:break-all}
.action-grid .ag-act .action-label{margin-bottom:1px}
.action-grid .ag-static.ag-todo{background:#F7F0F0}
#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 四格太占地方（更新数据时尤甚）→ 压成一行状态条 */
.ag-strip{display:flex;flex-wrap:wrap;gap:6px 8px;align-items:center}
.ag-title{font-size:13px;font-weight:700;color:#173A52;margin-right:2px}
.ag-chip{display:inline-flex;align-items:center;gap:5px;background:#F5F8FA;border-radius:999px;padding:5px 11px;min-height:30px;font-size:13.5px}
.ag-chip .action-label{margin:0;font-size:12.5px;color:#6B7E8A}
.ag-chip strong{font-size:13.5px;color:#28495B}
.ag-chip.ag-act{cursor:pointer;background:#EAF2F8;box-shadow:inset 0 0 0 1px #CFE0EC}
.ag-chip.ag-act:active{transform:scale(.97)}
.ag-chip.ag-act.ag-busy{background:#FBF3E2;box-shadow:inset 0 0 0 1px #E8D6A8}
/* 2026-10-20：出稿进行中把「完成查房 / 重新生成」置灰锁住（防手抖/断网重试白烧一稿） */
.ag-chip.ag-act.ag-lock{pointer-events:none;opacity:.45;filter:grayscale(.6);
  background:#F0F2F4;box-shadow:inset 0 0 0 1px #DDE2E6}
.ag-chip.ag-act strong::after{content:' ›';color:#155C8C;font-weight:600}
@media(max-width:420px){.action-title{font-size:18px}}
/* ── 患者页 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}
/* overview 四格：动作统一为描边外观（纯视觉 span，不新增事件，整格 onclick 不变） */
.ag-foot-btn{display:inline-block;margin-top:9px;padding:7px 13px;border:1px solid #C9D6E0;border-radius:9px;
  font-size:13px;font-weight:600;color:#173A52;background:#fff}
.ag-item.ag-act:hover .ag-foot-btn{border-color:#185FA5;color:#185FA5}
/* ① 查房简报标题右三链接 → 描边按钮外观（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}
