/* ============================================================
   cockpit.css — occ 运营驾驶舱（深墨青大屏 · 品牌青主色 · 暖金点缀）
   ------------------------------------------------------------
   · 底色：深墨青（#05161c → #082028 → #0c2a34），冷调低眩光、
     贴合院徽品牌青，暗部够暗不刺眼，适合指挥中心长时间盯屏。
   · 主色：医疗青 / 亮青 / 青碧 / 薄荷 / 翠绿（冷 · 数据与品牌锚点）；
     暖金 / 琥珀橙 / 柔珊瑚（暖 · 激活态 / 关键数字 / 实时脉冲 / 警示）。
   · 令牌与 views-cockpit.js 的 C 色板、AX / TIP 逐一对齐（同色温、
     同明度），杜绝「壳层暖、图表冷」的割裂感。
   · 顶部冷青主辉光 + 极弱暖金补光；面板标题竖条走薄荷→医疗青，
     激活态 / 加载条走金→铜→珊瑚，冷暖有节奏而不花哨。
   · 独立类名（ck-*）与独立令牌（--ck-*），不污染 main.css。
   · 无顶栏：仅右上角极简浮动控制簇；全屏态「退出全屏」始终可见。
   ============================================================ */

:root {
  /* ── 深墨青底（四级，冷调、暗部够暗、低眩光）── */
  --ck-bg-0: #05161c; --ck-bg-1: #082028; --ck-bg-2: #0c2a34; --ck-bg-3: #113540;
  /* 分隔线：与 JS 坐标轴同色 rgba(103,190,204)，壳层与图表网格融为一体 */
  --ck-line: rgba(103,190,204,.16); --ck-line-soft: rgba(103,190,204,.07);
  /* 文字：冷白，与 JS 提示框/图例/坐标轴标签逐一对齐 */
  --ck-ink: #e6f4f7; --ck-ink-2: #adcbd2; --ck-muted: #7e9ea6;
  /* ── 冷色主族（品牌青 · 数据 hero）── */
  --ck-cyan:   #63cddb;   /* 青碧 */
  --ck-teal-l: #38b6c9;   /* 亮青 · 品牌锚点 */
  --ck-teal:   #1b95aa;   /* 医疗青 */
  --ck-teal-d: #0e6b7c;   /* 深青 */
  --ck-mint:   #31bd97;   /* 薄荷 */
  --ck-jade:   #219c80;   /* 翠绿 */
  --ck-lime:   #94c246;   /* 竹青 */
  /* ── 暖色点缀族（激活态 / 关键数字 / 警示）── */
  --ck-gold:   #d5a845;   /* 暖金 · 点缀主色 */
  --ck-amber:  #d5a845;   /* 琥珀（= 暖金）*/
  --ck-orange: #d97f3c;   /* 琥珀橙 */
  --ck-copper: #c96a26;   /* 铜 */
  --ck-coral:  #e57a6c;   /* 柔珊瑚 · 警示/死亡 */
  --ck-red:    #d7524a;   /* 警示红 */
  /* 兼容别名（旧类名引用不破） */
  --ck-emerald: #219c80; --ck-green: #31bd97; --ck-amber-alias: #d5a845;
  /* 冷青主辉光 + 极弱暖金补光：冷调而有纵深、点缀暖意 */
  --ck-glow: rgba(56,182,201,.15); --ck-glow-2: rgba(213,168,69,.05);
  --ck-sh: 0 10px 32px rgba(2,10,14,.55);
  /* 面板渐层与顶部高光（冷质感） */
  --ck-panel-g: linear-gradient(180deg, rgba(12,42,52,.5), rgba(5,22,28,.72));
  --ck-panel-hl: inset 0 1px 0 rgba(150,220,235,.05);
}

/* ---- 壳层暗色接管（进入驾驶舱时）---- */
body.occ-ck-on { background: var(--ck-bg-1); }
body.occ-ck-on .main {
  background:
    radial-gradient(1100px 520px at 12% -8%, var(--ck-glow), transparent 60%),
    radial-gradient(900px 460px at 100% 0%, var(--ck-glow-2), transparent 55%),
    linear-gradient(180deg, var(--ck-bg-1), var(--ck-bg-0) 65%);
}
/* 看板沉浸态：隐藏顶栏（面包屑 / 消息 / 用户菜单），把整条高度让给数据大屏；
   .content 为 flex:1 会自动撑满。侧栏导航仍在，切到普通页面顶栏自动恢复；
   下方 .hd 深色子样式保留备用（去掉 display:none 即恢复）。 */
body.occ-ck-on .hd { display: none; background: rgba(8,32,40,.76); border-bottom: 1px solid var(--ck-line); backdrop-filter: blur(6px); }
body.occ-ck-on .hd .crumb { color: var(--ck-muted); }
body.occ-ck-on .hd .crumb b { color: var(--ck-ink); }
body.occ-ck-on .hd .iconbtn { color: var(--ck-muted); }
body.occ-ck-on .hd .iconbtn:hover { background: rgba(56,182,201,.14); color: var(--ck-teal-l); }
body.occ-ck-on .hd .bell .dot { border-color: var(--ck-bg-1); }
body.occ-ck-on .hd .user { border-color: var(--ck-line); }
body.occ-ck-on .hd .user:hover { background: rgba(56,182,201,.12); border-color: var(--ck-teal-l); }
body.occ-ck-on .hd .user .nm { color: var(--ck-ink); }
body.occ-ck-on .hd .user .nm small { color: var(--ck-muted); }
body.occ-ck-on .content { padding: 16px 20px; }
body.occ-ck-on .ft { display: none; }

.occ-ck { position: relative; color: var(--ck-ink); }
.occ-ck * { box-sizing: border-box; }
.occ-ck::backdrop { background: var(--ck-bg-0); }

/* 全屏态：铺满深墨青大屏背景，控制簇固定可见 */
body.occ-ck-fs .occ-ck {
  background:
    radial-gradient(1200px 600px at 15% -10%, var(--ck-glow), transparent 60%),
    radial-gradient(1000px 520px at 100% 0%, var(--ck-glow-2), transparent 55%),
    linear-gradient(180deg, var(--ck-bg-1), var(--ck-bg-0) 65%);
  min-height: 100vh; padding: 16px 20px; overflow: auto;
}
body.occ-ck-fs .ck-fab { position: fixed; top: 14px; right: 22px; z-index: 9999; margin: 0; }
body.occ-ck-fs .ck-body { padding-top: 44px; }

/* ---- 浮动控制簇（替代顶栏，右对齐、无条状背景）---- */
.ck-fab { display: flex; align-items: center; justify-content: flex-end; gap: 8px; margin-bottom: -4px; }
.ck-clock { display: inline-flex; align-items: center; gap: 7px; font-size: 12.5px; color: var(--ck-muted); font-variant-numeric: tabular-nums; margin-right: 2px; }
/* 实时脉冲点走暖金：冷底上的一点暖，标记「在线」并呼应暖金点缀 */
.ck-clock::before { content: ""; width: 7px; height: 7px; border-radius: 50%; background: var(--ck-gold); box-shadow: 0 0 8px rgba(213,168,69,.8); animation: ckPulse 1.8s infinite; }
@keyframes ckPulse { 0%{box-shadow:0 0 0 0 rgba(213,168,69,.5);} 70%{box-shadow:0 0 0 7px rgba(213,168,69,0);} 100%{box-shadow:0 0 0 0 rgba(213,168,69,0);} }
.ck-clock .d { opacity: .8; }
.ck-fbtn { height: 32px; padding: 0 12px; display: inline-flex; align-items: center; gap: 6px; border-radius: 8px; border: 1px solid var(--ck-line); background: rgba(12,42,52,.72); color: var(--ck-ink-2); font-size: 12.5px; transition: .16s; cursor: pointer; }
.ck-fbtn:hover { border-color: var(--ck-teal-l); color: var(--ck-teal-l); background: rgba(56,182,201,.13); }
.ck-fbtn .ic { width: 15px; height: 15px; }
/* 激活态走暖金→铜：冷底上的高对比选中态，暖金点缀在此最出彩 */
.ck-fbtn.on { background: linear-gradient(135deg, var(--ck-gold), var(--ck-copper)); border-color: transparent; color: #241a06; box-shadow: 0 0 14px rgba(213,168,69,.35); }
.ck-fbtn .ck-dot { width: 7px; height: 7px; border-radius: 50%; background: #3d5b62; transition: .16s; }
.ck-fbtn.auto-on .ck-dot { background: var(--ck-gold); box-shadow: 0 0 0 3px rgba(213,168,69,.18); }

/* ---- 主体网格 ---- */
.ck-body { display: grid; gap: 16px; }
.ck-panel { background: var(--ck-panel-g); border: 1px solid var(--ck-line); border-radius: 16px; box-shadow: var(--ck-sh), var(--ck-panel-hl); overflow: hidden; }
.ck-panel-hd { display: flex; align-items: center; justify-content: space-between; gap: 12px; padding: 14px 18px; border-bottom: 1px solid var(--ck-line-soft); }
.ck-panel-hd h3 { font-size: 14.5px; font-weight: 600; color: var(--ck-ink); display: flex; align-items: center; gap: 8px; margin: 0; }
/* 标题竖条：薄荷→医疗青（冷·品牌锚点），柔和辉光不刺眼 */
.ck-panel-hd h3::before { content: ""; width: 3px; height: 14px; border-radius: 2px; background: linear-gradient(180deg, var(--ck-mint), var(--ck-teal)); box-shadow: 0 0 8px rgba(49,189,151,.5); }
.ck-panel-hd .ck-more { font-size: 12px; color: var(--ck-muted); }
.ck-panel-bd { padding: 14px 16px; }
.ck-g2 { display: grid; grid-template-columns: 2fr 1fr; gap: 16px; }
.ck-g3 { display: grid; grid-template-columns: 1.3fr 1fr 1fr; gap: 16px; }
.ck-chart { width: 100%; height: 288px; }
.ck-chart-sm { width: 100%; height: 250px; }

/* ---- KPI 条（左侧色条 + 大号数字，tone 决定色，取自 C 色板）---- */
.ck-kpi-strip { display: flex; flex-wrap: nowrap; gap: 14px; overflow-x: auto; scrollbar-width: none; }
.ck-kpi-strip::-webkit-scrollbar { display: none; }
.ck-kpi-strip > * { flex: 0 0 calc((100% - 126px) / 10); min-width: 122px; }
.ck-kpi { position: relative; overflow: hidden; background: var(--ck-panel-g); border: 1px solid var(--ck-line); border-radius: 12px; padding: 14px 16px 14px 18px; box-shadow: var(--ck-panel-hl); transition: .2s; }
.ck-kpi:hover { transform: translateY(-3px); border-color: rgba(56,182,201,.32); box-shadow: 0 14px 34px rgba(2,10,14,.6), var(--ck-panel-hl); }
.ck-kpi::before { content: ""; position: absolute; left: 0; top: 0; bottom: 0; width: 4px; background: var(--tone, var(--ck-teal-l)); box-shadow: 0 0 14px var(--tone, var(--ck-teal-l)); }
.ck-kpi.t-gold   { --tone: var(--ck-gold); }
.ck-kpi.t-amber  { --tone: var(--ck-amber); }
.ck-kpi.t-copper { --tone: var(--ck-copper); }
.ck-kpi.t-orange { --tone: var(--ck-orange); }
.ck-kpi.t-teal   { --tone: var(--ck-teal-l); }
.ck-kpi.t-cyan   { --tone: var(--ck-cyan); }
.ck-kpi.t-mint   { --tone: var(--ck-mint); }
.ck-kpi.t-green  { --tone: var(--ck-jade); }
.ck-kpi.t-jade   { --tone: var(--ck-jade); }
.ck-kpi.t-lime   { --tone: var(--ck-lime); }
.ck-kpi.t-red    { --tone: var(--ck-coral); }
.ck-kpi.t-ink    { --tone: var(--ck-ink-2); }
.ck-kpi .ico { position: absolute; right: 10px; top: 8px; font-size: 20px; opacity: .16; }
.ck-kpi .lbl { font-size: 12px; color: var(--ck-muted); }
.ck-kpi .val { font-size: 26px; font-weight: 700; letter-spacing: -.5px; margin: 4px 0 2px; font-variant-numeric: tabular-nums; color: var(--tone, var(--ck-ink)); }
.ck-kpi .val .u { font-size: 12px; font-weight: 500; color: var(--ck-muted); margin-left: 3px; }
.ck-kpi .tr { font-size: 11px; color: var(--ck-muted); }
.ck-kpi.danger { border-color: rgba(229,122,108,.34); background: linear-gradient(180deg, rgba(52,24,22,.5), rgba(5,22,28,.74)); }

/* ---- 实时动态（四色语义事件点，取自 C 色板）---- */
.ck-feed { max-height: 258px; overflow-y: auto; display: flex; flex-direction: column; gap: 2px; }
.ck-feed::-webkit-scrollbar { width: 6px; } .ck-feed::-webkit-scrollbar-thumb { background: rgba(56,182,201,.24); border-radius: 6px; }
.ck-feed-item { display: flex; gap: 10px; padding: 9px 8px; border-radius: 8px; align-items: flex-start; }
.ck-feed-item:hover { background: rgba(56,182,201,.06); }
.ck-feed-dot { width: 8px; height: 8px; border-radius: 50%; margin-top: 6px; flex-shrink: 0; background: var(--ck-teal-l); box-shadow: 0 0 8px rgba(56,182,201,.6); }
.ck-feed-dot.green { background: var(--ck-mint); box-shadow: 0 0 8px rgba(49,189,151,.6); }
.ck-feed-dot.blue { background: var(--ck-teal-l); box-shadow: 0 0 8px rgba(56,182,201,.6); }
.ck-feed-dot.yellow { background: var(--ck-gold); box-shadow: 0 0 8px rgba(213,168,69,.6); }
.ck-feed-dot.red { background: var(--ck-coral); box-shadow: 0 0 8px rgba(229,122,108,.6); }
.ck-feed-tx { flex: 1; font-size: 12.5px; color: var(--ck-ink-2); line-height: 1.5; }
.ck-feed-tx b { color: var(--ck-ink); font-weight: 600; }
.ck-feed-lbl { font-size: 11px; font-weight: 600; color: var(--ck-muted); margin-right: 4px; }
.ck-feed-time { font-size: 11px; color: var(--ck-muted); flex-shrink: 0; font-variant-numeric: tabular-nums; }
@keyframes ckFeedPulse { 0% { background: rgba(56,182,201,.14); } 100% { background: transparent; } }
.ck-feed-item.ck-new { animation: ckFeedPulse 3s ease-out; }

/* ---- 运营关注 / 预警（柔珊瑚 / 暖金 / 医疗青 三级语义）---- */
.ck-alert { display: flex; align-items: center; gap: 11px; padding: 11px 12px; border-radius: 10px; margin-bottom: 9px; border: 1px solid transparent; }
.ck-alert.red { background: rgba(229,122,108,.1); border-color: rgba(229,122,108,.26); }
.ck-alert.amber { background: rgba(213,168,69,.1); border-color: rgba(213,168,69,.24); }
.ck-alert.blue { background: rgba(27,149,170,.12); border-color: rgba(56,182,201,.26); }
.ck-alert .ai { font-size: 18px; }
.ck-alert .at { flex: 1; }
.ck-alert .at .t1 { font-size: 13px; font-weight: 600; color: var(--ck-ink); }
.ck-alert .at .t2 { font-size: 11px; color: var(--ck-muted); margin-top: 2px; }
.ck-alert .lv { font-size: 10px; padding: 2px 8px; border-radius: 999px; font-weight: 600; }
.ck-alert.red .lv { background: rgba(229,122,108,.18); color: #f3c6bd; }
.ck-alert.amber .lv { background: rgba(213,168,69,.18); color: #eedcb0; }
.ck-alert.blue .lv { background: rgba(56,182,201,.18); color: #a9dfe6; }

/* ---- 疾病谱 tab ---- */
.ck-diag-wrap { display: flex; flex-direction: column; height: 100%; }
.ck-diag-tabs { display: flex; align-items: center; gap: 6px; padding: 2px 2px 8px; border-bottom: 1px dashed var(--ck-line); margin-bottom: 4px; }
.ck-diag-tab { padding: 3px 10px; font-size: 11.5px; cursor: pointer; border-radius: 20px; color: var(--ck-ink-2); background: rgba(255,255,255,.03); border: 1px solid var(--ck-line); transition: .15s; }
.ck-diag-tab:hover { border-color: var(--ck-gold); color: var(--ck-gold); }
/* 选中态走暖金→铜：与 fab.on 一致的高对比激活语言 */
.ck-diag-tab.on { color: #241a06; background: linear-gradient(135deg, var(--ck-gold), var(--ck-copper)); border-color: transparent; font-weight: 600; box-shadow: 0 0 14px rgba(213,168,69,.3); }
.ck-diag-stat { margin-left: auto; font-size: 11px; color: var(--ck-muted); }
.ck-diag-stat b { color: var(--ck-gold); font-size: 13px; margin: 0 2px; }
.ck-diag-chart { flex: 1; min-height: 224px; }

/* ---- 顶部加载条（医疗青 → 暖金 → 珊瑚：冷→暖→警示的扫光）---- */
.ck-loading { position: absolute; top: 0; left: 0; height: 2px; background: linear-gradient(90deg, var(--ck-teal-l), var(--ck-gold) 55%, var(--ck-coral)); box-shadow: 0 0 10px rgba(56,182,201,.5); width: 0; transition: width .3s; z-index: 5; border-radius: 2px; }

/* ---- 空 / 错误态 ---- */
.ck-empty { height: 100%; min-height: 120px; display: flex; align-items: center; justify-content: center; color: var(--ck-muted); font-size: 13px; }

/* ---- 响应式 ---- */
@media (max-width: 1700px) { .ck-g3 { grid-template-columns: 1fr 1fr; } .ck-kpi-strip > * { flex: 0 0 calc((100% - 112px) / 9); } }
@media (max-width: 1400px) { .ck-kpi-strip > * { flex: 0 0 calc((100% - 98px) / 8); } }
@media (max-width: 1100px) { .ck-g2, .ck-g3 { grid-template-columns: 1fr; } .ck-kpi-strip > * { flex: 0 0 calc((100% - 84px) / 7); } }

/* ============================================================
   运营日报（occ-dk）—— 复用 --ck-* 令牌与 .ck-* 组件；新增 .dk-* 段
   ============================================================ */
/* 8 张 KPI 卡铺满整行（覆盖驾驶舱为 10 卡设计的等分） */
.occ-dk .ck-kpi-strip > * { flex: 1 1 0; min-width: 124px; }
/* 统计卡：左列标签+环比竖排、右侧大数字垂直居中；tone 光晕+内高光提质感，无图标/彩条 */
.occ-dk .ck-kpi-strip { gap: 10px; }
.occ-dk .ck-kpi .ico { display: none; }
.occ-dk .ck-kpi { display: flex; align-items: center; justify-content: space-between; gap: 8px; padding: 5px 11px 5px 12px; border-color: rgba(103,190,204,.20); box-shadow: inset 0 1px 0 rgba(255,255,255,.05), 0 3px 10px rgba(0,0,0,.28); }
.occ-dk .ck-kpi::before { content: ""; position: absolute; inset: 0; z-index: 0; background: linear-gradient(150deg, var(--tone) 0%, transparent 55%); opacity: .12; pointer-events: none; }
.occ-dk .ck-kpi .colL, .occ-dk .ck-kpi .val { position: relative; z-index: 1; }
.occ-dk .ck-kpi .colL { display: flex; flex-direction: column; gap: 2px; min-width: 0; }
.occ-dk .ck-kpi .lbl { font-size: 10.5px; letter-spacing: .05em; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.occ-dk .ck-kpi .tr { font-size: 9.5px; white-space: nowrap; }
.occ-dk .ck-kpi .val { font-size: 19px; margin: 0 0 0 auto; line-height: 1.1; text-align: right; flex-shrink: 0; }
.occ-dk .ck-kpi .val .u { font-size: 10px; opacity: .8; margin-left: 2px; }

/* ---- 顶栏：左日期标签 + 右浮动控制簇 ---- */
.dk-top { display: flex; align-items: center; justify-content: space-between; gap: 14px; flex-wrap: wrap; }
.dk-when { display: inline-flex; align-items: baseline; gap: 12px; flex-wrap: wrap; }
.dk-when .d { font-size: 20px; font-weight: 700; color: var(--ck-ink); letter-spacing: .3px; }
.dk-when .t { font-size: 14px; color: var(--ck-teal-l); font-variant-numeric: tabular-nums; }
.dk-when .asof { font-size: 11.5px; color: var(--ck-muted); }
/* 深色日期控件 */
.dk-date { height: 32px; padding: 0 9px; border-radius: 8px; border: 1px solid var(--ck-line); background: rgba(12,42,52,.72); color: var(--ck-ink); font-size: 12.5px; color-scheme: dark; cursor: pointer; transition: .16s; }
.dk-date:hover { border-color: var(--ck-teal-l); }
.dk-date::-webkit-calendar-picker-indicator { filter: invert(.72) sepia(.4) saturate(3) hue-rotate(150deg); cursor: pointer; }

/* ---- KPI 脚注：较前一日环比 ▲▼＝ ---- */
.ck-kpi .tr .up { color: var(--ck-mint); font-weight: 600; }
.ck-kpi .tr .down { color: var(--ck-coral); font-weight: 600; }
.ck-kpi .tr .flat { color: var(--ck-ink-2); }
.ck-kpi .tr .mut { color: var(--ck-muted); }

/* ---- 四院区栏 ---- */
.dk-camps { display: grid; grid-template-columns: repeat(4, 1fr); gap: 14px; align-items: stretch; }
.dk-camp { position: relative; background: var(--ck-panel-g); border: 1px solid var(--ck-line); border-radius: 14px; box-shadow: var(--ck-sh), var(--ck-panel-hl); overflow: hidden; }
.dk-camp::before { content: ""; position: absolute; left: 0; right: 0; top: 0; height: 3px; background: var(--camp, var(--ck-teal-l)); box-shadow: 0 0 12px var(--camp, var(--ck-teal-l)); }
.dk-camp.camp-nan { --camp: var(--ck-teal-l); }
.dk-camp.camp-bei { --camp: var(--ck-mint); }
.dk-camp.camp-hexi { --camp: var(--ck-gold); }
.dk-camp.camp-zxy { --camp: var(--ck-cyan); }
/* 院区头部：单行高密度（院区名居左、门诊/在院指标居右），压缩垂直占用 */
.dk-camp-hd { display: flex; align-items: baseline; flex-wrap: wrap; gap: 3px 10px; padding: 9px 13px; border-bottom: 1px solid var(--ck-line-soft); }
.dk-camp-hd h3 { margin: 0 auto 0 0; font-size: 14px; font-weight: 700; color: var(--ck-ink); }
.camp-visit { font-size: 11px; color: var(--ck-muted); }
.camp-visit b { color: var(--ck-gold); font-size: 13px; margin: 0 2px; font-variant-numeric: tabular-nums; }
.camp-tot { font-size: 11px; color: var(--ck-muted); }
.camp-tot b { color: var(--ck-ink); font-size: 13px; margin-right: 2px; font-variant-numeric: tabular-nums; }

/* ---- 院区汇总 chips ---- */
.dk-chips { display: flex; flex-wrap: wrap; gap: 6px; padding: 10px 13px; border-bottom: 1px solid var(--ck-line-soft); }
.dk-chips .chip { display: inline-flex; align-items: center; gap: 4px; font-size: 11px; color: var(--ck-muted); background: rgba(255,255,255,.035); border: 1px solid var(--ck-line); border-radius: 7px; padding: 3px 8px; }
.dk-chips .chip b { color: var(--ck-ink); font-size: 12.5px; font-variant-numeric: tabular-nums; }
.dk-chips .chip.sv b { color: var(--ck-coral); }

/* ---- 病区明细表（高密度，行高≈22px）----
   全部病区展开、不做内部滚动：卡片随病区数自然撑高，整屏截图即可一键截全。 */
.dk-wt { width: 100%; border-collapse: collapse; table-layout: fixed; font-size: 12px; }
.dk-wt th { background: var(--ck-bg-2); color: var(--ck-muted); font-weight: 600; text-align: left; padding: 6px 9px; border-bottom: 1px solid var(--ck-line); white-space: nowrap; font-size: 11px; }
.dk-wt td { padding: 3px 9px; color: var(--ck-ink-2); line-height: 1.6; }
.dk-wt tbody tr:hover td { background: rgba(56,182,201,.06); }
.dk-wt th.c-in, .dk-wt td.c-in, .dk-wt th.c-open, .dk-wt td.c-open { width: 46px; }
.dk-wt th.c-sev, .dk-wt td.c-sev { width: 44px; }
.dk-wt th.c-use, .dk-wt td.c-use { width: 58px; }
.dk-wt .c-in, .dk-wt .c-sev, .dk-wt .c-open, .dk-wt .c-use { text-align: right; font-variant-numeric: tabular-nums; white-space: nowrap; }
.dk-wt .c-name { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; color: var(--ck-ink); }
.dk-wt .c-sev .sv { color: var(--ck-coral); font-weight: 700; }
.dk-wt .nil { color: var(--ck-muted); opacity: .5; }
.dk-wt td.c-use.u-hi { color: var(--ck-gold); font-weight: 700; background: rgba(213,168,69,.12); }
.dk-nil { padding: 16px; text-align: center; color: var(--ck-muted); font-size: 12px; }

/* ---- 看板错误态 ---- */
.dk-err { display: flex; align-items: center; gap: 14px; justify-content: center; padding: 48px 20px; color: var(--ck-coral); }
.dk-err .ic { width: 34px; height: 34px; }
.dk-err b { color: var(--ck-ink); font-size: 15px; display: block; }
.dk-err .mut { color: var(--ck-muted); font-size: 12px; margin-top: 4px; }

/* ---- 响应式：四栏 → 二栏 → 一栏 ---- */
@media (max-width: 1500px) { .dk-camps { grid-template-columns: repeat(2, 1fr); } }
@media (max-width: 820px) { .dk-camps { grid-template-columns: 1fr; } .dk-when .d { font-size: 17px; } }

/* ============================================================
   日报「统计设置」页（浅色常规页）—— 紧凑表格控件，仅作用于 .dkc-tbl
   ============================================================ */
.dkc .dkc-tbl td, .dkc .dkc-tbl th { padding: 6px 12px; }
.dkc-tbl .input, .dkc-tbl .select { height: 30px; font-size: 13px; }
.dkc-tbl .select { padding-right: 28px; background-position: right 8px center; }
.dkc-tbl .c-chk { text-align: center; }
.dkc-tbl .c-num { text-align: right; }
.dkc-tbl input[type="checkbox"] { width: 16px; height: 16px; cursor: pointer; accent-color: var(--teal-500); }
.dkc-tbl .c-nm b { font-weight: 600; }

/* ============================================================
   打印：整页截全、去浮动簇、四栏铺平，强制纸面浅色（深底白字在纸上不可读）
   ============================================================ */
@media print {
  body.occ-ck-on, body.occ-ck-on .main { background: #fff !important; }
  body.occ-ck-on .sb, body.occ-ck-on .hd { display: none !important; }
  body.occ-ck-on .content { padding: 0 !important; overflow: visible !important; }
  .ck-fab, .dk-date { display: none !important; }
  body.occ-ck-fs .occ-ck { min-height: 0 !important; padding: 0 !important; overflow: visible !important; background: #fff !important; }
  body.occ-ck-fs .ck-body { padding-top: 0 !important; }
  .occ-ck, .occ-dk { color: #14333c !important; }
  .dk-when .d { color: #14333c !important; }
  .dk-when .t, .dk-when .asof { color: #3c5b64 !important; }
  .ck-kpi-strip { overflow: visible !important; flex-wrap: wrap !important; gap: 8px !important; }
  .occ-dk .ck-kpi-strip > * { flex: 0 0 24% !important; min-width: 0 !important; }
  .ck-kpi, .dk-camp { background: #fff !important; box-shadow: none !important; border: 1px solid #cbd6da !important; }
  .ck-kpi .lbl, .ck-kpi .tr, .ck-kpi .tr .flat, .ck-kpi .tr .mut { color: #3c5b64 !important; }
  .ck-kpi .val { color: #14333c !important; } .ck-kpi .val .u { color: #71909a !important; }
  .ck-kpi .tr .up { color: #0b7a4b !important; } .ck-kpi .tr .down { color: #c0392b !important; }
  .ck-kpi::before, .dk-camp::before { -webkit-print-color-adjust: exact; print-color-adjust: exact; }
  .dk-camps { grid-template-columns: repeat(2, 1fr) !important; gap: 10px !important; }
  .dk-camp { break-inside: avoid; page-break-inside: avoid; }
  .dk-camp-hd h3, .camp-tot b { color: #14333c !important; }
  .camp-visit, .camp-tot, .dk-chips .chip { color: #3c5b64 !important; }
  .camp-visit b { color: #b8860b !important; }
  .dk-chips .chip { background: #f4f8f9 !important; border-color: #dfe9ec !important; }
  .dk-chips .chip b { color: #14333c !important; }
  .dk-wt-wrap { max-height: none !important; overflow: visible !important; }
  .dk-wt th { background: #f2f6f7 !important; color: #3c5b64 !important; border-color: #dfe9ec !important; position: static !important; }
  .dk-wt td { color: #14333c !important; border-color: #eef4f5 !important; }
  .dk-wt .c-name { color: #14333c !important; }
  .dk-wt td.c-use.u-hi { color: #b8860b !important; background: #fff6e0 !important; }
  .dk-wt .c-sev .sv { color: #c0392b !important; }
}

/* ============================================================
   在院管理（床位看板） ih-* —— 深色壳层内，床形床位可视化
   ------------------------------------------------------------
   · 每张床 = 床头板 + 床垫 + 枕头(睡颜) + 被子(姓名/性别年龄) + 床腿 + 床号角标；
     男被=青、女被=珊瑚；当日出院整床置灰；睡颜带呼吸微动效。
   ============================================================ */
.ih-top .dk-when { gap: 12px; flex-wrap: wrap; }
.ih-title { display: inline-flex; align-items: center; gap: 7px; font-size: 17px; font-weight: 700; color: var(--ck-ink); }
.ih-title .ic { color: var(--ck-teal-l); width: 19px; height: 19px; }
.ih-sel, .ih-date { height: 32px; background: var(--ck-bg-2); color: var(--ck-ink); border: 1px solid var(--ck-line); border-radius: 8px; padding: 0 10px; font-size: 13px; }
.ih-sel { max-width: 250px; }
.ih-sel option { background: var(--ck-bg-1); color: var(--ck-ink); }
.ih-sel:focus, .ih-date:focus { outline: none; border-color: var(--ck-teal-l); }

.ih-wards { display: flex; flex-direction: column; gap: 14px; padding: 4px 2px 28px; }
.ih-ward { background: rgba(8,32,40,.5); border: 1px solid var(--ck-line); border-radius: 12px; padding: 10px 12px 12px; }
.ih-ward header { display: flex; align-items: center; gap: 10px; margin-bottom: 10px; flex-wrap: wrap; }
.ih-wnm { font-size: 14px; font-weight: 600; color: var(--ck-ink); }
.ih-wnm::before { content: ''; display: inline-block; width: 3px; height: 14px; border-radius: 2px; background: linear-gradient(180deg, var(--ck-mint), var(--ck-teal)); margin-right: 8px; vertical-align: -2px; }
.ih-wcnt { font-size: 12px; color: var(--ck-muted); }
.ih-wnew { font-size: 11px; color: var(--ck-gold); background: rgba(213,168,69,.15); border: 1px solid rgba(213,168,69,.4); border-radius: 6px; padding: 1px 7px; }
.ih-beds { display: flex; flex-wrap: wrap; gap: 12px; }

/* ---- 单张床（床体纯图形 + 下方高对比文字说明）---- */
.ih-bed { position: relative; width: 152px; padding: 8px 9px 9px; border-radius: 12px; background: var(--ck-bg-2); border: 1px solid var(--ck-line); transition: transform .15s, border-color .15s, box-shadow .15s; }
.ih-bed:hover { transform: translateY(-3px); border-color: var(--ck-teal-l); box-shadow: 0 8px 20px rgba(0,0,0,.4); z-index: 2; }
.ih-toprow { display: flex; align-items: center; justify-content: space-between; gap: 6px; min-height: 20px; }
.ih-tags { display: flex; gap: 4px; }
.ih-bedno { font-family: ui-monospace, Menlo, Consolas, monospace; font-size: 11px; color: var(--ck-gold); background: rgba(213,168,69,.15); border: 1px solid rgba(213,168,69,.4); border-radius: 6px; padding: 1px 6px; }
.ih-tag { font-size: 10px; font-style: normal; border-radius: 5px; padding: 1px 5px; }
.ih-tag.new { background: rgba(213,168,69,.2); color: var(--ck-gold); border: 1px solid rgba(213,168,69,.5); }
.ih-tag.out { background: rgba(126,158,166,.2); color: var(--ck-muted); border: 1px solid var(--ck-line); }
/* 床体图形（侧视插画：床头板 + 床垫 + 枕头 + 人头 + 被子 + 床腿 + 地影）*/
.ih-scene { position: relative; height: 64px; margin-top: 6px; }
.ih-headboard { position: absolute; left: 0; top: 12px; width: 10px; height: 40px; border-radius: 6px 6px 3px 3px; background: linear-gradient(180deg, #2a6f7f, #123f4a); box-shadow: inset -2px 0 0 rgba(255,255,255,.08); }
.ih-base { position: absolute; left: 8px; right: 0; top: 34px; height: 16px; border-radius: 4px 8px 8px 4px; background: linear-gradient(180deg, #eaf7f9, #b9dbe2); box-shadow: 0 2px 5px rgba(0,0,0,.35); }
.ih-pillow { position: absolute; left: 12px; top: 26px; width: 32px; height: 10px; border-radius: 6px; background: #fff; transform: rotate(-4deg); box-shadow: 0 1px 2px rgba(0,0,0,.3); }
.ih-phead { position: absolute; left: 20px; top: 16px; width: 16px; height: 16px; border-radius: 50%; background: radial-gradient(circle at 35% 30%, #ffe0bd, #e0aa7e); box-shadow: 0 1px 2px rgba(0,0,0,.3); }
.ih-duvet { position: absolute; left: 40px; right: 2px; top: 27px; height: 15px; border-radius: 8px 8px 3px 3px; box-shadow: 0 1px 3px rgba(0,0,0,.3); transform-origin: bottom center; }
.ih-bed.m .ih-duvet { background: linear-gradient(180deg, #3fb6ca, #177f92); }
.ih-bed.f .ih-duvet { background: linear-gradient(180deg, #f0937f, #c96a4a); }
.ih-bed.u .ih-duvet { background: linear-gradient(180deg, #9db6bc, #6f8b92); }
@keyframes ih-breathe { 0%,100% { transform: scaleY(1); } 50% { transform: scaleY(1.12); } }
.ih-bed:not(.out) .ih-duvet { animation: ih-breathe 2.8s ease-in-out infinite; }
.ih-legs i { position: absolute; top: 50px; width: 5px; height: 8px; background: #0d3742; border-radius: 0 0 2px 2px; }
.ih-legs i:first-child { left: 12px; } .ih-legs i:last-child { right: 6px; }
.ih-shadow { position: absolute; left: 6px; right: 6px; top: 58px; height: 6px; border-radius: 50%; background: rgba(0,0,0,.4); filter: blur(2px); }
.ih-zz { position: absolute; left: 40px; top: 4px; font-size: 11px; font-weight: 700; color: var(--ck-cyan); letter-spacing: 2px; opacity: .8; }
@keyframes ih-zz { 0%,100% { transform: translateY(0); opacity: .45; } 50% { transform: translateY(-4px); opacity: .95; } }
.ih-bed:not(.out) .ih-zz { animation: ih-zz 2.4s ease-in-out infinite; }
/* 文字说明（高对比，置于床下方，不再塞进被子）*/
.ih-cap { margin-top: 8px; display: flex; flex-direction: column; gap: 2px; min-width: 0; }
.ih-cap b { color: var(--ck-ink); font-size: 14px; font-weight: 700; line-height: 1.25; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.ih-cap span { color: var(--ck-ink-2); font-size: 12px; line-height: 1.3; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.ih-bed.out { opacity: .55; filter: grayscale(.5); }
.ih-bed.out .ih-phead, .ih-bed.out .ih-duvet, .ih-bed.out .ih-zz { display: none; }   /* 已出院 = 空床 */
