/* ==========================================================================
   给药执行卡 · 渲染器样式（render_cards.php 内联注入）
   —— 屏幕版：一张卡一份「页」，密集文本优先可读性
   —— 打印版：A4，一卡一页，每页起首自带药名与文号

   语义色沿用前台 mev-app 的变量值（不直接复用 .mev-app 作用域：
   卡片页要能单独打开、单独打印，不该依赖对话页那棵树）。
   ========================================================================== */

.mev-cards {
	--mdv-primary: #1d6fb8;
	--mdv-primary-dark: #0c447c;
	--mdv-primary-soft: #eaf2fb;
	--mdv-teal: #0f6e56;
	--mdv-teal-soft: #e6f4ef;
	--mdv-amber: #8a5a08;
	--mdv-amber-soft: #fdf3e0;
	--mdv-red: #a32d2d;
	--mdv-red-soft: #fdeceb;
	--mdv-text: #1f2937;
	--mdv-muted: #6b7280;
	--mdv-faint: #9aa3ae;
	--mdv-border: #e4e9f0;
	--mdv-bg: #f5f7fa;
	--mdv-card: #ffffff;
}

.mev-cards, .mev-cards * { box-sizing: border-box; }

/* 插件页里这一块嵌在站点模板中：背景透明、字体沿用本站，
   只把卡片自己的字号行高定下来——离线预览那套「整页独占」的 body 规则不能照搬，
   否则会把站点其他区域一起改掉。 */
.mev-cards {
	color: var(--mdv-text);
	font-size: 15px;
	line-height: 1.75;
}

/* ---------------- 顶部条（仅屏幕） ---------------- */

.mdv-bar {
	position: sticky;
	top: 0;
	z-index: 20;
	background: rgba(255, 255, 255, .94);
	border-bottom: 1px solid var(--mdv-border);
	backdrop-filter: saturate(180%) blur(6px);
}
.mdv-bar-in {
	max-width: 940px;
	margin: 0 auto;
	padding: 10px 20px;
	display: flex;
	align-items: center;
	gap: 12px;
	flex-wrap: wrap;
}
.mdv-bar-t { font-weight: 600; font-size: 15px; }
.mdv-bar-s { color: var(--mdv-muted); font-size: 12.5px; }
.mdv-bar-hint { color: var(--mdv-faint); font-size: 12px; margin-left: auto; }
.mdv-bar button {
	margin-left: auto;
	border: 1px solid var(--mdv-primary);
	background: var(--mdv-primary);
	color: #fff;
	font: inherit;
	font-size: 13px;
	padding: 6px 14px;
	border-radius: 6px;
	cursor: pointer;
}
.mdv-bar button:hover { background: var(--mdv-primary-dark); border-color: var(--mdv-primary-dark); }
.mdv-bar button + .mdv-bar-hint { margin-left: 0; }

/* 插件页（medevid:cards）：站点页头本身吸顶，这一条不再吸顶，
   宽度也交还站点容器——两层吸顶会互相压，940px 居中还会与站点栏错位。
   1.38.0 移植时模板换成了另一套类名（mev-cards-bar*）却没有对应样式，
   顶部条整块裸奔、按钮贴着文字；1.38.2 改回复用 mdv-bar 并加这段覆盖。 */
.mev-cards .mdv-bar { position: static; background: transparent; backdrop-filter: none; border-bottom: none; }
/* 左右 20px：与卡片容器同一视觉内缩，文字不再顶到容器边缘；
   底部 8px：顶部条自身不再往下撑，空隙交给下面一处 margin 控制。 */
.mev-cards .mdv-bar-in { max-width: none; margin: 0; padding: 12px 20px 8px; }
/* 说明文字优先占满剩余宽度，窄屏才换行——不换行就不会凭空多出一行高度。
   1.40.4 起改 0 1 auto：右边多了搜索框，说明文字不再吃掉全部剩余宽度，
   剩余空白交给 .mdv-search 的 margin-left:auto，搜索框才落在标题行右侧。 */
.mev-cards .mdv-bar-s { flex: 0 1 auto; min-width: 0; }

/* 1.40.4 列表搜索：服务端 GET 表单（分页之后前端只拿得到当前 24 张，
   在页内搜等于「第 2 页的药搜不出来」，而这种失败用户不会察觉）。
   位置＝标题行里「说明文字」与「打印按钮」之间，两侧都用 auto 外边距：
   三个 auto（左、右、打印按钮的左）平分剩余空间，于是 1024 宽时它落在中偏右、
   1366 宽时随行宽自动右移——不会像固定左边距那样在大屏上僵在左半屏。
   1.40.4 首版写的是 margin-left:auto（顶到最右，与打印按钮挤成两个并排蓝按钮），
   1.40.5 改成均分。 */
.mdv-search { display: flex; align-items: center; margin-left: auto; margin-right: auto; flex: 0 0 auto; }
.mdv-search input[type="search"] {
	width: 230px; padding: 6px 10px; font: inherit; font-size: 13px;
	border: 1px solid #d8dee6; border-right: none; border-radius: 6px 0 0 6px;
	background: #fff; color: var(--mdv-text); outline: none;
	-webkit-appearance: none; appearance: none;
}
.mdv-search input[type="search"]::placeholder { color: var(--mdv-faint); }
.mdv-search input[type="search"]:focus { border-color: var(--mdv-primary); }
/* 特异性要压过 .mdv-bar button（0,2,1）——那一条带 margin-left:auto 与主色大按钮 */
.mdv-bar .mdv-search button {
	margin-left: 0; padding: 6px 12px; font-size: 13px; line-height: 1.2;
	border-radius: 0 6px 6px 0;
}
@media (max-width: 720px) {
	/* 窄屏三行：标题一行、说明一行、搜索框一行。都给 min-width:0——
	   flex 子项默认 min-width:auto，长串会把容器撑出视口（390 宽实测溢出）。 */
	.mev-cards .mdv-bar-s { flex: 1 1 100%; }
	.mdv-search { margin-left: 0; flex: 1 1 100%; margin-top: 2px; min-width: 0; }
	.mdv-search input[type="search"] { width: auto; flex: 1 1 0; min-width: 0; }
	.mdv-bar .mdv-search button { flex: 0 0 auto; }
	.mev-cards .mdv-bar-in { row-gap: 6px; }
	/* 打印按钮换行后不再右飘：独居一行又贴右侧，看着像被挤出去的 */
	.mdv-bar > .mdv-bar-in > button { margin-left: 0; }
}

/* 搜索无结果：不能只留一片空白——用户会以为页面坏了，而不是「没这个药」 */
.mdv-empty {
	margin: 6px 0 18px; padding: 26px 22px; text-align: center;
	border: 1px dashed var(--mdv-border); border-radius: 10px;
	color: var(--mdv-text); font-size: 14px;
}
.mdv-empty span {
	display: block; margin-top: 6px; color: var(--mdv-muted); font-size: 13px;
}
/* 顶部条与正文之间只留一段距离：条的下内边距 + 卡片的 22px 上外边距
   加在一起像断了一截，1.38.3 把卡片这边收窄。 */
.mev-cards .mdv-card { margin-top: 10px; }
.mev-cards .mdv-list { margin-top: 14px; }

.mdv-wrap {
	max-width: 940px;
	margin: 0 auto;
	padding: 24px 20px 80px;
}

/* ---------------- 列表 ---------------- */

.mdv-list { margin-bottom: 8px; }
.mdv-list h1 { font-size: 24px; margin: 8px 0 6px; letter-spacing: .2px; }

/* 1.40.3 科室筛选条：全部 + 有卡的科室，服务端筛（筛出的卡连续排在同页） */
.mdv-deptbar { display: flex; flex-wrap: wrap; gap: 8px; margin: 12px 0 16px; }
.mdv-deptbar .mdv-dept {
	display: inline-flex; align-items: center; gap: 6px;
	padding: 5px 13px; border: 1px solid #d8dee6; border-radius: 999px;
	font-size: 13px; line-height: 1.4; color: var(--mdv-text);
	text-decoration: none; background: #fff;
}
.mdv-deptbar .mdv-dept:hover { border-color: var(--mdv-primary); color: var(--mdv-primary); }
.mdv-deptbar .mdv-dept.mdv-cur {
	background: var(--mdv-primary); border-color: var(--mdv-primary); color: #fff;
}
.mdv-deptbar .mdv-dept-n {
	font-size: 11.5px; padding: 0 7px; border-radius: 999px;
	background: var(--mdv-primary-soft); color: var(--mdv-primary-dark);
}
.mdv-deptbar .mdv-dept.mdv-cur .mdv-dept-n { background: rgba(255,255,255,.25); color: #fff; }

/* 1.40.3 分页条：每页 24 张（满一屏口径），参数 p */
.mdv-pager { display: flex; align-items: center; gap: 14px; margin: 18px 0 4px; font-size: 13px; }
.mdv-pager a {
	padding: 5px 16px; border: 1px solid #d8dee6; border-radius: 999px;
	color: var(--mdv-text); text-decoration: none; background: #fff;
}
.mdv-pager a:hover { border-color: var(--mdv-primary); color: var(--mdv-primary); }
.mdv-pager-info { color: var(--mdv-muted); }
.mdv-lede { color: var(--mdv-muted); font-size: 13.5px; margin: 0 0 18px; }
.mdv-lede b { color: var(--mdv-text); }

.mdv-items {
	display: grid;
	grid-template-columns: repeat(auto-fill, minmax(280px, 1fr));
	gap: 12px;
}
.mdv-item {
	display: block;
	background: var(--mdv-card);
	border: 1px solid var(--mdv-border);
	border-radius: 10px;
	padding: 12px 14px;
	text-decoration: none;
	color: inherit;
	transition: border-color .15s, box-shadow .15s;
}
.mdv-item:hover { border-color: var(--mdv-primary); box-shadow: 0 2px 10px rgba(29, 111, 184, .08); }
.mdv-item-h { display: flex; align-items: baseline; gap: 6px; flex-wrap: wrap; }
.mdv-item-h b { font-size: 15px; }
.mdv-item-m { color: var(--mdv-muted); font-size: 12.5px; margin-top: 2px; }
.mdv-item-n {
	display: flex; align-items: center; gap: 8px; flex-wrap: wrap;
	margin-top: 6px; color: var(--mdv-muted); font-size: 12px;
}
.mdv-item-k {
	margin-top: 8px;
	padding-top: 8px;
	border-top: 1px dashed var(--mdv-border);
	font-size: 12.5px;
	color: var(--mdv-amber);
}

/* 列表底部的纠错征集：一条旁注，不做成营销横幅——这页的主体是卡片，不是号召 */
.mdv-invite {
	margin: 26px 0 0;
	padding: 15px 20px 16px;
	background: var(--mdv-primary-soft);
	border: 1px solid var(--mdv-border);
	border-left: 3px solid var(--mdv-primary);
	border-radius: 10px;
}
.mdv-invite-t { margin: 0 0 5px; font-size: 15px; font-weight: 600; color: var(--mdv-text); }
.mdv-invite-p { margin: 0; max-width: 720px; font-size: 13px; line-height: 1.85; color: var(--mdv-muted); }

/* ---------------- 卡片 ---------------- */

.mdv-card {
	background: var(--mdv-card);
	border: 1px solid var(--mdv-border);
	border-radius: 12px;
	padding: 22px 24px 20px;
	margin: 22px 0 28px;
	scroll-margin-top: 64px;
}

.mdv-brand {
	color: var(--mdv-muted);
	font-size: 13px;
	font-weight: 400;
}
.mdv-chead { position: relative; }
.mdv-back {
	position: absolute;
	top: -2px;
	right: 0;
	font-size: 12px;
	color: var(--mdv-muted);
	text-decoration: none;
	border: 1px solid var(--mdv-border);
	border-radius: 999px;
	padding: 1px 9px;
	background: #fff;
}
.mdv-back:hover { color: var(--mdv-primary); border-color: var(--mdv-primary); }
.mdv-cname { font-size: 21px; font-weight: 650; line-height: 1.35; padding-right: 62px; }
.mdv-cmeta { color: var(--mdv-muted); font-size: 13px; margin-top: 4px; }
.mdv-note { color: var(--mdv-faint); font-size: 12px; }

/* 复核署名（1.52.0）：页眉里唯一新增的一行，只放「谁核的、哪天核的」。
 * 版次、文号、页数在下面的覆盖清单里逐行列着，这里不重复——
 * 页眉重复正文，是这张卡最容易犯的毛病（1.51.1 横幅刚为此删过一次）。 */
.mdv-signed {
	margin-top: 6px;
	font-size: 12.5px;
	color: var(--mdv-muted);
}
.mdv-signed-k {
	display: inline-block;
	margin-right: 6px;
	padding: 0 6px;
	border-radius: 4px;
	background: #f0f3f7;
	border: 1px solid var(--mdv-border);
	color: var(--mdv-faint);
	font-size: 11.5px;
}
.mdv-signed b { color: var(--mdv-text); font-weight: 600; }
.mdv-badges { display: flex; flex-wrap: wrap; gap: 6px; margin-top: 10px; }

.mdv-badge {
	display: inline-block;
	font-size: 11.5px;
	line-height: 1.6;
	padding: 1px 8px;
	border-radius: 999px;
	background: #f0f3f7;
	color: var(--mdv-muted);
	border: 1px solid var(--mdv-border);
}
.mdv-badge-ok { background: var(--mdv-teal-soft); color: var(--mdv-teal); border-color: #cfe8de; }
.mdv-badge-gap { background: var(--mdv-amber-soft); color: var(--mdv-amber); border-color: #f0dfbe; }
.mdv-badge-risk { background: var(--mdv-red-soft); color: var(--mdv-red); border-color: #f3d3d2; }

.mdv-gap { color: var(--mdv-amber); }

/* ---------------- 覆盖清单（置顶不折叠） ---------------- */

.mdv-cov {
	margin: 16px 0 0;
	padding: 12px 14px;
	background: var(--mdv-primary-soft);
	border-left: 3px solid var(--mdv-primary);
	border-radius: 6px;
}
.mdv-cov-h { font-size: 13px; font-weight: 600; color: var(--mdv-primary-dark); margin-bottom: 6px; }
.mdv-cov-hint { font-weight: 400; color: var(--mdv-muted); font-size: 12px; margin-left: 8px; }
.mdv-cov-row { display: flex; gap: 10px; font-size: 13px; line-height: 1.9; }
.mdv-k { color: var(--mdv-muted); flex: 0 0 68px; font-size: 12.5px; }
.mdv-v { flex: 1 1 auto; min-width: 0; }
.mdv-appr {
	display: inline-block;
	font-family: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;
	font-size: 12.5px;
	background: #fff;
	border: 1px solid #cfe0f3;
	border-radius: 4px;
	padding: 0 6px;
	margin: 0 5px 2px 0;
}
.mdv-cov-note .mdv-v { color: var(--mdv-amber); }
.mdv-cov-foot {
	margin-top: 8px;
	padding-top: 8px;
	border-top: 1px dashed #cfe0f3;
	font-size: 12.5px;
	color: var(--mdv-primary-dark);
}

/* ---------------- 首屏键 ---------------- */

.mdv-keynum {
	margin: 16px 0 0;
	padding: 12px 14px;
	background: var(--mdv-amber-soft);
	border-left: 3px solid var(--mdv-amber);
	border-radius: 6px;
}
.mdv-keynum-h { font-size: 13px; font-weight: 600; color: var(--mdv-amber); margin-bottom: 4px; }

/* ---------------- 正文节 ---------------- */

.mdv-secs { margin-top: 8px; }
.mdv-sec { padding: 4px 0 6px; border-top: 1px solid #f1f4f8; }
.mdv-sec:first-child { border-top: none; }
.mdv-sec h3 {
	display: flex;
	align-items: baseline;
	gap: 8px;
	font-size: 15.5px;
	line-height: 1.5;
	margin: 14px 0 2px;
	padding-left: 9px;
	border-left: 3px solid #cfd8e3;
}
.mdv-sec-fixed h3 { border-left-color: var(--mdv-primary); }
.mdv-sec-quasi h3 { border-left-color: var(--mdv-teal); }
.mdv-sec-optional h3 { border-left-color: #cfd8e3; }
.mdv-sec-extra h3 { border-left-color: var(--mdv-amber); }
.mdv-sec-name { font-weight: 650; }
.mdv-lv {
	font-size: 11px;
	font-weight: 400;
	color: var(--mdv-faint);
	border: 1px solid var(--mdv-border);
	border-radius: 999px;
	padding: 0 7px;
}
.mdv-sec-src { font-size: 11.5px; color: var(--mdv-faint); padding-left: 12px; }
.mdv-extra-h { font-size: 13.5px; font-weight: 600; margin: 12px 0 2px; padding-left: 12px; }

/* 正文排版（由 medevid-md.js 生成的标签） */
.mdv-body { font-size: 14.5px; }

/* 1.47.0 服务端直出的纯文本：JS 还没跑（或爬虫不执行 JS）时按原样换行，
   否则三条易错数字会挤成一整段。cards.js 渲染完会摘掉这个 class。 */
.mdv-body.mdv-raw { white-space: pre-wrap; line-height: 1.7; }

.mdv-body > p { margin: .45em 0; }
.mdv-body ul, .mdv-body ol { margin: .35em 0; padding-left: 1.5em; }
.mdv-body li { margin: .15em 0; }
.mdv-body strong { font-weight: 650; }
.mdv-body code {
	font-family: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;
	font-size: .92em;
	background: #f2f5f9;
	padding: 1px 4px;
	border-radius: 4px;
}
.mdv-body blockquote {
	margin: .5em 0;
	padding: 2px 0 2px 10px;
	border-left: 2px solid #d9e1ea;
	color: var(--mdv-muted);
	font-size: .96em;
}
.mdv-body hr { border: none; border-top: 1px dashed var(--mdv-border); margin: .8em 0; }
.mdv-body table {
	width: 100%;
	border-collapse: collapse;
	margin: .6em 0;
	font-size: 13px;
}
.mdv-body th, .mdv-body td {
	border: 1px solid var(--mdv-border);
	padding: 5px 8px;
	text-align: left;
	vertical-align: top;
}
.mdv-body th { background: #f0f3f7; font-weight: 600; }

/* ---------------- 游客登录引导（仅正式页） ----------------
   正文在服务端就被裁掉了，这里只解释「为什么看不到」并给出下一步。
   用虚线边框 + 浅蓝底：它是说明，不是警告。 */
.mdv-gate {
	margin: 20px 0 0;
	padding: 18px 20px;
	border: 1px dashed var(--mdv-primary);
	border-radius: 10px;
	background: var(--mdv-primary-soft);
}
.mdv-gate-t { font-weight: 650; font-size: 15px; color: var(--mdv-primary-dark); }
.mdv-gate p { font-size: 13.5px; color: var(--mdv-muted); margin: 8px 0 0; line-height: 1.75; }
.mdv-gate-a { display: flex; gap: 10px; flex-wrap: wrap; align-items: center; margin-top: 14px; }

/* ---------------- 纠错入口（1.39.0） ----------------
   平时只是一行链接，点开才是表单——卡片页的主体是执行约束，
   纠错是「发现不对时才用」的旁路，不能抢占首屏。 */
.mdv-fix { margin: 14px 0 10px; }
.mdv-fix details { border-top: 1px dashed var(--mdv-border); padding-top: 12px; }
.mdv-fix summary {
	cursor: pointer;
	color: var(--mdv-primary);
	font-size: 13.5px;
	list-style: none;
	display: inline-flex;
	align-items: center;
	gap: 7px;
}
.mdv-fix summary::-webkit-details-marker { display: none; }
.mdv-fix summary:hover { color: var(--mdv-primary-dark); text-decoration: underline; }
.mdv-fix-form { margin-top: 12px; }
.mdv-fix-row { display: block; margin-bottom: 10px; }
.mdv-fix-row > span {
	display: block;
	font-size: 12.5px;
	color: var(--mdv-muted);
	margin-bottom: 4px;
}
.mdv-fix-row select,
.mdv-fix-row textarea {
	width: 100%;
	max-width: 620px;
	font: inherit;
	font-size: 13.5px;
	color: var(--mdv-text);
	background: #fff;
	border: 1px solid var(--mdv-border);
	border-radius: 8px;
	padding: 7px 10px;
}
.mdv-fix-row textarea { resize: vertical; line-height: 1.65; }
.mdv-fix-row select:focus,
.mdv-fix-row textarea:focus { outline: none; border-color: var(--mdv-primary); }
.mdv-fix-a { display: flex; align-items: center; gap: 12px; flex-wrap: wrap; }
.mdv-fix-a button {
	border: 1px solid var(--mdv-primary);
	background: var(--mdv-primary);
	color: #fff;
	font: inherit;
	font-size: 13px;
	padding: 6px 16px;
	border-radius: 6px;
	cursor: pointer;
}
.mdv-fix-a button:hover { background: var(--mdv-primary-dark); border-color: var(--mdv-primary-dark); }
.mdv-fix-a button[disabled] { opacity: .6; cursor: default; }
.mdv-fix-msg { font-size: 12.5px; color: var(--mdv-muted); }
.mdv-fix-ok  { color: var(--mdv-teal); }
.mdv-fix-bad { color: var(--mdv-red); }
.mdv-fix-hint { font-size: 12px; color: var(--mdv-faint); margin: 8px 0 0; }

/* 问号徽标：替代原先的「全角？+ margin-right」，那 6px 接着全角问号自带的
   右侧留白，看起来像多敲了一个空格。做成圆环后间距是「图形与文字」的距离，
   而不是「标点后跟空格」。 */
.mdv-fix-q {
	width: 18px;
	height: 18px;
	flex: none;
	border-radius: 50%;
	background: var(--mdv-primary-soft);
	border: 1px solid #cfe0f2;
	color: var(--mdv-primary);
	font-size: 11.5px;
	font-weight: 700;
	line-height: 1;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	padding-top: 1px;
}

/* 游客态：一行说明 + 登录链接。原来是单句灰字「登录后可提交纠错」，
   看不出属于什么（1.39.0 线上反馈）。 */
.mdv-fix-login {
	display: inline-flex;
	align-items: center;
	gap: 8px;
	font-size: 13px;
	color: var(--mdv-primary);
	text-decoration: none;
	padding-top: 8px;
}
.mdv-fix-login-t { font-weight: 650; }
.mdv-fix-login-s { color: var(--mdv-muted); font-weight: 400; }
.mdv-fix-login:hover .mdv-fix-login-s { color: var(--mdv-primary); }
.mdv-fix-login:hover { color: var(--mdv-primary-dark); }

/* 右下角浮标：纠错入口原先只在卡尾，读到卡片中部发现数字不对时还要翻到末尾。
   做成固定浮标而不是把入口前置——前置在滚动后同样看不到。
   打印隐藏；移动端缩小并贴边。 */
.mdv-fix-float {
	position: fixed;
	right: 18px;
	bottom: 24px;
	z-index: 90;
	display: inline-flex;
	align-items: center;
	gap: 6px;
	font: inherit;
	font-size: 12.5px;
	color: var(--mdv-muted);
	background: #fff;
	border: 1px solid var(--mdv-border);
	border-radius: 999px;
	padding: 6px 13px 6px 8px;
	cursor: pointer;
	box-shadow: 0 2px 10px rgba(16, 24, 40, .12);
}
.mdv-fix-float:hover {
	color: var(--mdv-primary);
	border-color: #c9dbf0;
	box-shadow: 0 3px 14px rgba(16, 24, 40, .16);
}
.mdv-fix-float .mdv-fix-q { width: 16px; height: 16px; font-size: 11px; }

@media (max-width: 640px) {
	.mdv-fix-float { right: 12px; bottom: 14px; padding: 6px 11px 6px 7px; font-size: 12px; }
}

/* ---------------- 卡尾 ---------------- */

.mdv-cfoot { margin-top: 14px; padding-top: 12px; border-top: 1px solid var(--mdv-border); }
.mdv-risk { display: flex; align-items: center; gap: 6px; flex-wrap: wrap; margin-bottom: 8px; }
.mdv-disc { color: var(--mdv-faint); font-size: 12px; margin: 0; line-height: 1.7; }

/* 卡尾落款（1.44.1）：只在纸上出现，屏幕上完全隐藏——「打印于」这三个字
   在屏幕语境里没有意义。时间是打印瞬间由 cards.js 填的（不是页面生成时间：
   一页开着两小时再打印，写生成时间会把人骗了）。它不是水印：不覆盖正文、
   不压任何数字，只占页脚一行，作用是把这张散页追溯回「哪一版、什么时候印的」。 */
.mdv-stamp { display: none; }

/* 卡→助手入口（1.44.0，L4）：执行卡答「怎么配、怎么给」，循证决策
   （适合吗／要不要减量）交给问答页。预填只填不发送，样式上做成
   一条轻量导引而不是按钮墙——它与纠错、免责声明同住卡尾。 */
.mdv-ask {
	display: flex;
	align-items: center;
	gap: 6px 14px;
	flex-wrap: wrap;
	margin-bottom: 10px;
	padding: 10px 14px;
	border: 1px dashed var(--mdv-primary);
	border-radius: 8px;
	background: var(--mdv-primary-soft);
}
.mdv-ask-t { font-size: 13px; color: var(--mdv-muted); line-height: 1.7; }
.mdv-ask-t b { color: var(--mdv-primary-dark); }
.mdv-ask-btn {
	font-size: 13px;
	font-weight: 600;
	color: var(--mdv-primary-dark);
	text-decoration: none;
	white-space: nowrap;
	border-bottom: 1px solid currentColor;
}
.mdv-ask-btn:hover { opacity: 0.85; }

/* 「每页起首识别条」（.mdv-print-head）这条路线已弃用，选择器与 .mdv-ph-* 规则
   一并删掉（模板里从来没有对应元素，留着只会让人以为它在渲染）。结论留在下面：
   · position:fixed 在 Chromium 打印里会被每页重绘，但定位基准是文档流，
     底边对齐会把它甩到下一页顶部、压住正文（截图验证过一次）；
   · fixed 只能有一份，多卡同页时会全部叠在一起。
   续页识别现在交给两处：打印瞬间把 document.title 换成卡名（浏览器页眉用它，
   见 cards.js），以及卡尾落款 .mdv-stamp（打印时间＋数据版本，见下）。 */

/* ==========================================================================
   打印：A4，一卡一页
   —— 目标不是「能打出来」，而是「打出来后护士站能用一张纸走完一次给药」
   ========================================================================== */

@media print {

	/* 页边距：上 14mm 给浏览器页眉（标题在打印瞬间已换成卡名），下 14mm 放落款与声明，
	   左右 12mm 保证表格不被裁 */
	@page {
		size: A4;
		margin: 14mm 12mm;
	}

	/* 站点骨架不打印——打印出来的应该是一张执行卡，不是「带页眉页脚的网页」。
	   两套选择器都要写：前半是 Discuz 默认模板的 id，后半是本站 X5 模板的类名
	   （1.44.1 补）。只写前者时线上一条都不命中，结果是每张 A4 顶部白扔 1.9cm
	   导航条，正文被推下去一截。选择器在别的主题里不存在即无效，不会出错。 */
	#hd, #ft, #nv, .nv, #toptb, #um, .wp > .bm, .ad, .mev-head,
	.topbox, #dz_btm_layer, .dz_layer_top, .dz_nav, .dz_nav_logo,
	.dz_layer_nav, .dz_layer_dl, #hds, .hds, .header-right, .header-i18n,
	#dz_rnav, .dz_rnav, .dz_rtop, #scrolltop, #fjump_menu, #qmenu_menu,
	.dz_footc, #append_parent, #ajaxwaitid { display: none !important; }

	body, .mev-cards {
		background: #fff !important;
		color: #000;
		font-size: 10.5pt;
		line-height: 1.55;
	}

	/* 屏幕上的导航与列表一律不打印。.mdv-back 是卡名右上角那个「↑ 全部执行卡」，
	   1.44.1 之前会跟着印到纸上，占掉卡名右侧还画出一个框。 */
	.mdv-noprint, .mdv-list, .mdv-bar, .mdv-gate, .mdv-fix, .mdv-fix-float,
	.mdv-deptbar, .mdv-pager, .mdv-back, .mdv-invite, .mdv-lede { display: none !important; }

	.mdv-wrap { max-width: none; margin: 0; padding: 0; }

	/* 一卡一页：第一张不空出首页 */
	.mdv-card {
		border: none !important;
		border-radius: 0;
		box-shadow: none;
		margin: 0;
		padding: 0;
		break-before: page;
		page-break-before: always;
	}
	.mdv-card:first-of-type {
		break-before: auto;
		page-break-before: auto;
	}

	/* 卡片头与覆盖清单：不许被切到两页 */
	.mdv-chead, .mdv-cov, .mdv-keynum { break-inside: avoid; page-break-inside: avoid; }

	/* 卡名不再需要给右上角「↑ 全部执行卡」让位（那个链接已不打印） */
	.mdv-cname { font-size: 15pt; padding-right: 0; }
	.mdv-cmeta { font-size: 8.5pt; }
	.mdv-signed { font-size: 8.5pt; }
	.mdv-signed-k { border: 1px solid #999; background: #fff; color: #000; font-size: 7.5pt; }
	.mdv-badge {
		border: 1px solid #999;
		background: #fff !important;
		color: #000 !important;
		font-size: 7.5pt;
	}
	.mdv-badge-gap { border-color: #333; font-weight: 600; }

	/* 覆盖清单：浅底打印成灰会被当成水印，改白底黑框 */
	.mdv-cov {
		background: #fff !important;
		border: 1px solid #333;
		border-left: 3px solid #000;
		padding: 2mm 3mm;
		margin-top: 2.5mm;
	}
	.mdv-cov-h { color: #000; font-size: 9pt; }
	.mdv-cov-row { font-size: 8.8pt; line-height: 1.6; }
	.mdv-k { flex-basis: 18mm; font-size: 8pt; }
	.mdv-appr { border: 1px solid #666; font-size: 8pt; padding: 0 1mm; }
	.mdv-cov-foot { border-top: 1px solid #999; font-size: 8.2pt; color: #000; }

	/* 首屏键：打印保持浅底提示（print-color-adjust 关掉就变白，反而不易识别） */
	.mdv-keynum {
		background: #f2f2f2 !important;
		border-left: 3px solid #000;
		padding: 2mm 3mm;
		margin-top: 2.5mm;
		-webkit-print-color-adjust: exact;
		print-color-adjust: exact;
	}
	.mdv-keynum-h { color: #000; font-size: 9pt; }

	/* 节标题：跟住下面第一段，不许孤零零留在页脚 */
	.mdv-sec { border-top: none; padding: 0; margin-top: 3mm; }
	.mdv-sec h3 {
		font-size: 10.5pt;
		margin: 0 0 1mm;
		padding-left: 2.5mm;
		border-left: 2px solid #000;
		break-after: avoid;
		page-break-after: avoid;
	}
	.mdv-sec-optional h3 { border-left-color: #999; }
	.mdv-sec-extra h3 { border-left-color: #666; }
	.mdv-lv { border: none; color: #666; font-size: 7.5pt; padding: 0 0 0 2mm; }
	.mdv-sec-src { display: none; }   /* 归一前的原标题属编制信息，不占纸面 */

	.mdv-body { font-size: 9.6pt; }
	.mdv-body > p { margin: .25em 0; }
	.mdv-body ul, .mdv-body ol { margin: .2em 0; padding-left: 1.3em; }
	.mdv-body li { margin: 0; }
	.mdv-body blockquote { border-left: 1px solid #999; color: #333; margin: .3em 0; }
	.mdv-body hr { border-top: 1px solid #ddd; margin: .4em 0; }

	/* 表格：表头跨页重复，整表尽量不切 */
	.mdv-body table { font-size: 8.6pt; margin: .4em 0; break-inside: avoid; page-break-inside: avoid; }
	.mdv-body thead { display: table-header-group; }
	.mdv-body th, .mdv-body td { border: 1px solid #666; padding: 1mm 1.5mm; }
	.mdv-body th { background: #eee !important; -webkit-print-color-adjust: exact; print-color-adjust: exact; }

	.mdv-cfoot { border-top: 1px solid #999; margin-top: 3mm; padding-top: 1.5mm; }
	.mdv-risk .mdv-badge { border-color: #666; }
	.mdv-ask { display: none; }
	.mdv-disc { font-size: 7.8pt; color: #333; line-height: 1.5; }

	/* 落款：一行灰字，排在免责声明之上。字号压到 8pt 是为了不抢正文，
	   但时间加粗——它是散页后判断「这份纸是不是旧的」的第一依据。 */
	.mdv-stamp {
		display: block;
		margin: 0 0 1.2mm;
		font-size: 8pt;
		color: #333;
		line-height: 1.5;
	}
	.mdv-stamp-t { font-weight: 600; margin-right: 2.5mm; }
	.mdv-stamp-s { color: #444; }

	/* 正文里的链接不打印 URL：卡片里全是文号与药名，加 URL 只会挤掉正文 */
	a { color: #000 !important; text-decoration: none !important; }
	a[href]::after { content: "" !important; }

	/* 段落孤行控制 */
	p, li { orphans: 2; widows: 2; }
}
