/* 题库插件 —— 前台专题页样式 */

/*
 * 图标字体：主程序 view/vendor/tabler-icons 是 420 图标的精简子集（45K），
 * 缺插件用到的 printer/scan/brain/library/presentation 等 41 个图标，导致按钮前空白。
 * 这里用同名 @font-face 覆盖指向插件自带完整字体（451 图标，是主程序超集，217K），
 * 并补齐缺失类。后定义的 @font-face 覆盖先定义的，浏览器只下载本字体一份；
 * 主程序那 420 个图标也在超集内，渲染一致。
 */
@font-face{
	font-family:"tabler-icons";
	font-style:normal;
	font-weight:400;
	font-display:swap;
	src:url("../vendor/tabler-icons/fonts/tabler-icons.woff2?v20260908c") format("woff2");
}
/* 基础图标类兜底：与 qbank-font.css 同步维护 */
.ti {
	font-family: "tabler-icons", sans-serif;
	speak: none;
	font-style: normal;
	font-weight: 400;
	font-variant: normal;
	text-transform: none;
	line-height: 1;
	display: inline-block;
	-webkit-font-smoothing: antialiased;
	-moz-osx-font-smoothing: grayscale;
}
/* 主程序精简字体缺失、插件页面用到的图标（字形取自插件完整字体） */
.ti-alarm:before{content:"\ea04"}
.ti-book-off:before{content:"\f0bc"}
.ti-brain:before{content:"\f59f"}
.ti-building-store:before{content:"\ea4e"}
.ti-chalkboard:before{content:"\f34d"}
.ti-file-download:before{content:"\ea9d"}
.ti-file-plus:before{content:"\eaa0"}
.ti-files:before{content:"\edef"}
.ti-files-off:before{content:"\edee"}
.ti-flag:before{content:"\eaa6"}
.ti-gauge:before{content:"\eab1"}
.ti-help:before{content:"\eabf"}
.ti-library:before{content:"\fd4c"}
.ti-photo-scan:before{content:"\fca8"}
.ti-presentation:before{content:"\eb70"}
.ti-printer:before{content:"\eb0e"}
.ti-scan:before{content:"\ebc8"}
.ti-scissors:before{content:"\eb1b"}
.ti-shape:before{content:"\eb9c"}

/* ============ 品牌统一视觉层 ============ */
:root {
	--pq-primary: #4f6ef7;
	--pq-primary-2: #6a5ae0;
	--pq-primary-grad: linear-gradient(135deg, #4f6ef7 0%, #6a5ae0 60%, #8a5ae0 100%);
	--pq-success: #10b981;
	--pq-warning: #f59e0b;
	--pq-danger: #ef4444;
	--pq-page-bg: #f4f6fb;
	--pq-card-radius: 14px;
	--pq-shadow-sm: 0 2px 10px rgba(31,45,61,.05);
	--pq-shadow-md: 0 8px 24px rgba(31,45,61,.08);
	--pq-text: #1f2937;
	--pq-text-2: #6b7280;
}

/* 页面头部标题：品牌渐变文字 + 左侧竖条 */
.pq-page-head {
	display: flex; align-items: center; gap: 10px;
	border-left: 4px solid var(--pq-primary);
	padding-left: 12px;
}
.pq-page-head h1, .pq-page-head .h1,
.pq-page-head h2, .pq-page-head .h2,
.pq-page-head .h4 {
	margin: 0; font-weight: 700; letter-spacing: .3px;
	background: var(--pq-primary-grad);
	-webkit-background-clip: text;
	background-clip: text;
	-webkit-text-fill-color: transparent;
	color: var(--pq-primary);
}
.pq-page-head .sub { color: var(--pq-text-2); font-size: .9rem; }
/* 未加 pq-page-head 的页面标题（h1.h4 + sub 结构）也统一美化 */
.pq-h1 {
	font-weight: 700;
	background: var(--pq-primary-grad);
	-webkit-background-clip: text;
	background-clip: text;
	-webkit-text-fill-color: transparent;
	color: var(--pq-primary);
}
.pq-sub { color: var(--pq-text-2); }

/* 统一卡片：圆角 + hover 上浮（qbank.css 仅在题库插件页面引入，作用域天然限定，无全局污染） */
.x-card {
	border-radius: var(--pq-card-radius) !important;
	border: 1px solid rgba(31,45,61,.06);
	box-shadow: var(--pq-shadow-sm);
	transition: transform .2s ease, box-shadow .2s ease;
}
.x-card:hover {
	box-shadow: var(--pq-shadow-md);
}

/* 主按钮：品牌渐变 */
.btn-primary {
	background-image: var(--pq-primary-grad);
	border: 0;
	box-shadow: 0 4px 14px rgba(79,110,247,.25);
}
.btn-primary:hover {
	box-shadow: 0 6px 18px rgba(79,110,247,.35);
	transform: translateY(-1px);
}

/* 链接主色 */
a.link-primary, .text-primary { color: var(--pq-primary) !important; }

/* 表单控件聚焦 */
.form-control:focus, .form-select:focus {
	border-color: var(--pq-primary);
	box-shadow: 0 0 0 .2rem rgba(79,110,247,.15);
}

/* 徽章圆角统一 */
.badge { border-radius: 8px; }

/* 题干/选项内的 SVG 图形自适应（注意：不得命中 KaTeX 公式的根号 SVG，否则根号帽会被拉塌）
   几何图形：前台 JSXGraph 用 .pq-fig 容器；打印/导出用 .pq-geofig 内联 svg，由 .pq-geofig 规则统一控制 */

/* 外部画板导出的内联几何图形（<geofigure> 渲染为 .pq-geofig > svg），按 viewBox 等比自适应，
   只命中 .pq-geofig 容器内的 svg，不影响 KaTeX 公式的根号/积分号等 svg */
.pq-geofig { display: block; width: min(220px, 60%); margin: 6px auto; }
.pq-geofig svg { display: block; width: 100%; height: auto; }
/* 打印/讲评卷：收紧，避免分页时被截断 */
.pq-print-question .pq-geofig,
.pq-sheet .pq-geofig { width: 160px; margin: 4px auto; }
/* 错题本卡片：紧凑 */
.pq-wb-item .pq-geofig,
.pq-wb-due .pq-geofig { width: min(180px, 55%); margin: 4px auto; }

/* 公式行内间距 */
.pq-stem .katex,
.pq-option .katex,
.pq-answer .katex {
	margin: 0 2px;
}

/* 块级公式居中 */
.pq-stem .katex-display {
	text-align: center;
	margin: 8px 0;
}

/* 题干富文本（含 <p> 段落）首尾归零，避免卡片内上下间距过大 */
.pq-stem > p:first-child { margin-top: 0; }
.pq-stem > p:last-child { margin-bottom: 0; }

/* 答案/解析区富文本段落间距 */
.pq-rv-ans p, .pq-sl-feedback .text-secondary p { margin-bottom: 0.5rem; }
.pq-rv-ans p:last-child, .pq-sl-feedback .text-secondary p:last-child { margin-bottom: 0; }

/* 长公式/长解析允许横向滚动，避免手机端被挤成竖条 */
.pq-rv-ans, .pq-sl-feedback .text-secondary { overflow-x: auto; }

/* 答案区 */
.pq-answer-wrap {
	border-top-color: var(--border-color, #dee2e6);
}

/* 打印按钮在打印时隐藏 */
@media print {
	.btn, .header, .footer, .navbar, .sidebar { display: none !important; }
	.pq-paper .x-card { border: none; box-shadow: none; }
}

/* ============ 专题卷单页 · 试卷风格 ============ */
.pq-sheet {
	max-width: 820px;
	margin: 0 auto;
	background: #fff;
	border: 1px solid var(--border-color, #e3e8ef);
	border-radius: 6px;
	box-shadow: 0 2px 12px rgba(31, 45, 61, .06);
	padding: 22px 26px 26px;
}
.pq-sheet-head {
	text-align: center;
	padding-bottom: 14px;
	border-bottom: 2px solid #2c3e50;
	margin-bottom: 20px;
}
.pq-sheet-head .pq-sheet-title {
	font-size: 1.5rem;
	font-weight: 700;
	color: #1f2d3d;
	letter-spacing: .5px;
	margin-bottom: 4px;
}
.pq-sheet-head .pq-sheet-subtitle {
	font-size: .95rem;
	color: #4b5a6a;
	margin-bottom: 8px;
}
.pq-sheet-head .pq-sheet-meta {
	font-size: .82rem;
	color: #7a8794;
	display: flex;
	justify-content: center;
	flex-wrap: wrap;
	gap: 4px 14px;
}
.pq-sheet-head .pq-sheet-meta b { color: #2c3e50; }
.pq-sheet-body {
	position: relative;
}
.pq-sheet-q {
	padding: 16px 4px 18px;
	border-bottom: 1px dashed #e2e8f0;
}
.pq-sheet-q:last-child { border-bottom: none; }
.pq-sheet-qhead {
	display: flex;
	align-items: baseline;
	gap: 8px;
	margin-bottom: 6px;
	font-size: .95rem;
}
.pq-sheet-qno {
	font-weight: 700;
	color: #2c3e50;
	min-width: 22px;
}
.pq-sheet-qscore {
	color: #7a8794;
	font-size: .8rem;
	margin-left: auto;
	flex-shrink: 0;
}
.pq-sheet-qcode {
	font-size: .72rem;
	color: #a3adb8;
	background: #f5f7fa;
	border-radius: 3px;
	padding: 1px 6px;
}
.pq-sheet .pq-stem { font-size: 1rem; color: #24292f; line-height: 1.7; }
.pq-sheet .pq-options { margin-top: 8px; }

/* JSXGraph 几何图形容器（屏幕端，动态渲染）
   max-width 从 480px 收紧到 360px，避免占满整行 */
.pq-fig { width: 100%; max-width: 360px; min-height: 180px; margin: 6px auto; display: block; }
.pq-fig .jxgbox { border: 1px solid #e3e8ef; border-radius: 4px; background: #fff; }
.pq-fig svg, .pq-fig canvas { display: block; }
.pq-sheet .pq-option {
	padding: 4px 10px;
	font-size: .95rem;
	line-height: 1.6;
}
.pq-sheet .pq-option-text { color: #333; }
.pq-sheet-answer {
	margin-top: 10px;
	padding: 10px 12px;
	background: #f8fafc;
	border-left: 3px solid #10b981;
	border-radius: 4px;
	font-size: .92rem;
}
.pq-sheet-answer .pq-answer-label { font-weight: 700; color: #0f9d6e; margin-bottom: 4px; }
.pq-sheet-footer {
	margin-top: 22px;
	padding-top: 12px;
	border-top: 1px solid #e2e8f0;
	text-align: center;
	font-size: .78rem;
	color: #a3adb8;
}
@media (max-width: 575.98px) {
	.pq-sheet { padding: 14px 14px 18px; }
	.pq-sheet-head .pq-sheet-title { font-size: 1.2rem; }
}

/* 错题知识点徽章：显式浅红底+深红字，避免主题 .badge 白字导致看不清 */
.pq-badge-kb{background:#fdecea;color:#a61b38;border:1px solid #f2c2c2;}

/* 错题间隔复习 */
.pq-due-alert { border-color:#f1c4c4; background:linear-gradient(90deg, color-mix(in srgb, var(--bs-danger) 6%, var(--bs-body-bg)), transparent); }
.pq-due-alert .btn { flex-shrink:0; }
.pq-rv-q .pq-opt{cursor:pointer;border:1px solid var(--bs-border-color);border-radius:.5rem;padding:.35rem .7rem;margin:0 .25rem .25rem 0;background:var(--bs-tertiary-bg)}
.pq-rv-q .pq-opt input{margin-right:.25rem}
.pq-rv-q.pq-correct{border-color:#2e9e5b!important;box-shadow:0 0 0 1px #2e9e5b inset}
.pq-rv-q.pq-wrong{border-color:#dc3545!important;box-shadow:0 0 0 1px #dc3545 inset}
/* 只让反馈区的「直接子 span」块级（原先是后代通配 span，会连带命中 KaTeX 渲染出来的
   <span class="katex">，导致解析里的公式每个都独占一行、文字被切碎，严重影响阅读）。
   公式内部的 span 保持行内，排版才正常。 */
.pq-rv-feedback > span{display:block}

/* ============ 移动端体验优化（家长/学生以手机为主） ============ */
@media (max-width: 575.98px) {
	/* 触控目标：判分后生成的引导/操作按钮放大到 40px，避免手指误触 */
	.pq-rv-feedback .btn, .pq-sl-feedback .btn,
	.pq-rv-feedback a.btn, .pq-sl-feedback a.btn {
		display: inline-flex;
		align-items: center;
		justify-content: center;
		min-height: 40px;
		padding: .35rem .75rem !important;
	}
	/* 选项：整行可点、单选/复选框放大，避免点错相邻选项 */
	.pq-opt, .pq-rv-q .pq-opt, .pq-sl-q .pq-opt {
		display: flex;
		align-items: center;
		width: 100%;
		min-height: 44px;
		margin: 0 0 .4rem 0;
		padding: .5rem .75rem;
	}
	.pq-opt input, .pq-rv-q .pq-opt input, .pq-sl-q .pq-opt input {
		width: 18px;
		height: 18px;
		margin-right: .5rem;
		flex-shrink: 0;
	}
	/* 长题干/长公式：允许横向滚动，避免撑破卡片（padding-top 给根号等上伸部分留空间） */
	.pq-stem {
		overflow-x: auto;
		padding-top: 6px;
	}
	/* 卡片底部信息条、按钮行自动换行，避免横向溢出 */
	.pq-due-alert, .pq-rv-feedback .d-flex, .pq-sl-feedback .d-flex { flex-wrap: wrap; }
	.pq-page-actions { flex-wrap: wrap; gap: .5rem; }
	/* 题目卡片内的小操作按钮（列表/错题本/讲评题库等）：py-0 px-2 是它们的共同特征，
	   默认高度仅约 24px，手指极易误触相邻按钮，这里统一抬到 36px 并垂直居中 */
	.btn-sm.py-0.px-2 {
		min-height: 36px;
		display: inline-flex;
		align-items: center;
		padding: .3rem .65rem !important;
	}
	/* 答案/解析区富文本：长公式允许横向滚动，避免撑破卡片导致整页横向滚动 */
	.pq-answer, .pq-analysis, .pq-options { overflow-x: auto; }
}

/* ============ 平板/手机体验增强（1.4.12） ============ */

/* 防止 iOS 输入框聚焦自动缩放：字号 ≥16px（覆盖 form-select-sm/form-control-sm 的 .875rem） */
@media (max-width: 991.98px) {
	.pq-paper .form-select,
	.pq-paper .form-control,
	.pq-paper input[type="text"],
	.pq-paper input[type="search"],
	#pqFilterForm .form-select,
	#pqFilterForm .form-control,
	#pqFilterForm input[type="text"] {
		font-size: 16px;
	}
}

/* 平板（≤991px）：列表顶部按钮组横向滚动，避免 8 个按钮换行撑高页面 */
@media (max-width: 991.98px) {
	.pq-list-actions {
		flex-wrap: nowrap !important;
		overflow-x: auto;
		-webkit-overflow-scrolling: touch;
		padding-bottom: 4px;
		-ms-overflow-style: none;
		scrollbar-width: none;
	}
	.pq-list-actions::-webkit-scrollbar { display: none; }
	.pq-list-actions .btn {
		white-space: nowrap;
		flex-shrink: 0;
	}
}

/* 知识图谱考点 chip：移动端触控目标放大到 ≥36px（原 padding:3px 10px 约 28px，手指易误触相邻考点） */
@media (max-width: 991.98px) {
	.pq-kn-chip {
		padding: 6px 14px !important;
		font-size: .84rem;
		line-height: 1.5;
		margin: 3px;
	}
}

/* 移动端：所有 .btn-sm 触控高度 ≥36px（原约 28px 易误触），文字链接除外 */
@media (max-width: 991.98px) {
	.btn-sm:not(.btn-link) {
		min-height: 36px;
		display: inline-flex;
		align-items: center;
	}
	.pq-paper .btn-sm:not(.pq-rv-feedback .btn):not(.pq-sl-feedback .btn) {
		min-height: 36px;
	}
}

/* 手机（≤575px）：筛选表单两列→单列，下拉框整宽更易点 */
@media (max-width: 575.98px) {
	#pqFilterForm .col-6 {
		flex: 0 0 100%;
		max-width: 100%;
	}
}

/* 手机：筛选折叠按钮触控高度 */
@media (max-width: 991.98px) {
	.pq-filter-toggle {
		min-height: 38px;
		display: inline-flex;
		align-items: center;
		justify-content: center;
	}
}

/* 加载旋转动画（主程序字体无 .ti-spin 定义，用自带 pq-spin 替代） */
.pq-spin { display:inline-block; animation: pqSpin .8s linear infinite; }
@keyframes pqSpin { to { transform: rotate(360deg); } }

/* 手机端吸底保存/交卷栏：长表单不用滚回顶部或底部才能保存 */
.pq-save-bar { display: none; }
@media (max-width: 991.98px) {
	.pq-save-bar {
		display: flex;
		position: fixed;
		left: 0; right: 0; bottom: 0;
		z-index: 1035;
		align-items: center;
		gap: .5rem;
		padding: .5rem .75rem calc(.5rem + env(safe-area-inset-bottom));
		background: var(--bs-body-bg, #fff);
		border-top: 1px solid var(--bs-border-color, #e9ecef);
		box-shadow: 0 -4px 16px rgba(0,0,0,.08);
	}
	.pq-save-bar .btn { min-height: 40px; }
	body.pq-has-savebar { padding-bottom: 74px; }
}

/* 后台分页信息（与全局分页器配套） */
.pq-admin-page-info { font-size: 12px; color: var(--bs-secondary-color, #9ca3af); }

/* 后台表格：手机上横向滚动 + 操作列固定，避免滚到最右才能点按钮 */
.pq-table-hint { display: none; }
@media (max-width: 991.98px) {
	.pq-table-hint {
		display: block;
		font-size: .75rem;
		color: var(--bs-secondary-color, #868e96);
		margin: 0 0 4px;
	}
	.pq-admin-table { min-width: 860px; }
	.pq-admin-table th:last-child,
	.pq-admin-table td:last-child {
		position: sticky;
		right: 0;
		background: var(--bs-body-bg, #fff);
		box-shadow: -8px 0 10px -8px rgba(0, 0, 0, .18);
		z-index: 1;
	}
	.pq-admin-table thead th:last-child { z-index: 2; }
}

/* 手机：后台表格横向滚动顺滑、字号收紧 */
@media (max-width: 575.98px) {
	.table-responsive {
		-webkit-overflow-scrolling: touch;
	}
	.table th, .table td {
		font-size: .82rem;
	}
}

/* 手机：卡片间距收紧，减少滚动距离 */
@media (max-width: 575.98px) {
	.pq-paper .x-card { margin-bottom: .5rem; }
	.pq-paper .card-body { padding: .75rem; }
}

/* 手机：知识图谱概览统计数字缩小，避免 5 列在窄屏溢出 */
@media (max-width: 575.98px) {
	.pq-graph-card .row .col > div:first-child { font-size: 1.2rem !important; }
}

/* ========== 好题体系（GQI）徽章 ========== */
.pq-qbadge { font-weight: 500; border: 1px solid transparent; }
.pq-badge-featured { background: linear-gradient(135deg,#f59e0b,#d97706); color:#fff; }          /* 编辑精选 金 */
.pq-badge-teacher  { background:#fef3c7; color:#92400e; border-color:#fcd34d !important; }     /* 教师推荐 琥珀 */
.pq-badge-hot      { background:#fee2e2; color:#b91c1c; border-color:#fca5a5 !important; }     /* 高频易错 红 */
.pq-badge-multi    { background:#ede9fe; color:#6d28d9; border-color:#c4b5fd !important; }     /* 一题多解 紫 */
.pq-badge-method   { background:#e0f2fe; color:#0369a1; border-color:#7dd3fc !important; }     /* 综合方法 蓝 */
.pq-badge-exam     { background:#dcfce7; color:#15803d; border-color:#86efac !important; }     /* 真题 绿 */

/* 题目页推荐/收藏按钮：默认描边，active 填充 */
.pq-rate-group { display:inline-flex; gap:4px; }
.pq-rate-btn {
	display:inline-flex; align-items:center; gap:2px;
	padding:1px 8px; font-size:.78rem; line-height:1.5;
	border:1px solid var(--bs-border-color,#dee2e6); border-radius:999px;
	background:transparent; color:var(--bs-secondary,#6c757d); cursor:pointer;
	transition:all .15s; min-height:24px;
}
.pq-rate-btn:hover { border-color:#f59e0b; color:#d97706; }
.pq-rate-btn.active { background:#f59e0b; border-color:#f59e0b; color:#fff; }
.pq-rate-btn .ti { font-size:.85rem; }
/* 打印时隐藏推荐按钮（仅屏幕交互） */
@media print { .pq-rate-group { display:none !important; } }

/* ========== 底层范式双轴（Paradigm） ==========
   五范式各自一个主色；组件通过 --pd 变量取色，避免六处重复定义 */
.pq-pd-invariant { --pd:#4f46e5; --pd-soft:#eef2ff; --pd-line:#c7d2fe; }   /* 变中找不变 靛蓝 */
.pq-pd-building  { --pd:#047857; --pd-soft:#d1fae5; --pd-line:#6ee7b7; }   /* 拆积木 翡翠绿 */
.pq-pd-boundary  { --pd:#c2410c; --pd-soft:#ffedd5; --pd-line:#fdba74; }   /* 临界点 橙 */
.pq-pd-pattern   { --pd:#7c3aed; --pd-soft:#ede9fe; --pd-line:#c4b5fd; }   /* 递推 紫 */
.pq-pd-condition { --pd:#be123c; --pd-soft:#ffe4e6; --pd-line:#fda4af; }   /* 多约束 玫瑰红 */

/* 小徽章（列表卡片/题头/切换 chips），链接态无下划线 */
.pq-pd-chip {
	display:inline-flex; align-items:center;
	background:var(--pd-soft); color:var(--pd); border:1px solid var(--pd-line) !important;
	font-weight:500; text-decoration:none;
}
.pq-pd-chip:hover { color:#fff; background:var(--pd); border-color:var(--pd) !important; }

/* 列表页"按底层思维挑题"细条（旧，保留以防引用） */
.pq-pd-strip { display:flex; align-items:center; flex-wrap:wrap; gap:4px; border-left:3px solid #4f46e5; }

/* 列表页"按底层思维挑题"专题入口面板 */
.pq-pd-panel { padding:.9rem 1rem 1rem; border-left:4px solid #4f46e5; }
.pq-pd-panel-head { display:flex; align-items:baseline; gap:.8rem; flex-wrap:wrap; margin-bottom:.55rem; }
.pq-pd-panel-title { font-weight:700; color:#1e1b4b; font-size:1rem; display:inline-flex; align-items:center; }
.pq-pd-panel-title i { color:#4f46e5; }
.pq-pd-panel-tag { font-size:.78rem; color:#6b7280; font-weight:500; display:inline-flex; align-items:center; }
.pq-pd-panel-tag i { color:#9ca3af; }
.pq-pd-entries { margin:0; }
.pq-pd-entry {
	display:flex; flex-direction:column; gap:.18rem;
	padding:.7rem .75rem; border-radius:.6rem;
	border:1px solid var(--pd-line); background:var(--pd-soft);
	color:var(--pd); text-decoration:none;
	transition:transform .12s ease, box-shadow .12s ease, background .12s ease;
}
.pq-pd-entry:hover {
	transform:translateY(-2px);
	box-shadow:0 6px 14px rgba(0,0,0,.08);
	background:var(--pd); color:#fff; text-decoration:none;
}
.pq-pd-entry:hover .pq-pd-e-icon { background:rgba(255,255,255,.25); color:#fff; }
.pq-pd-entry:hover .pq-pd-e-ask, .pq-pd-entry:hover .pq-pd-e-ex { color:rgba(255,255,255,.9); }
.pq-pd-e-top { display:flex; align-items:center; gap:.4rem; }
.pq-pd-e-icon {
	flex:0 0 auto; width:26px; height:26px; border-radius:7px;
	display:flex; align-items:center; justify-content:center;
	background:var(--pd); color:#fff; font-size:1.05rem;
}
.pq-pd-e-label { font-weight:700; font-size:.95rem; line-height:1.2; }
.pq-pd-e-ask { font-size:.76rem; color:#475569; line-height:1.35; }
.pq-pd-e-ex {
	font-size:.72rem; color:#64748b; line-height:1.35;
	margin-top:.1rem; padding-top:.25rem; border-top:1px dashed var(--pd-line);
}
.pq-pd-entry:hover .pq-pd-e-ex { border-top-color:rgba(255,255,255,.3); }

/* 范式专题横幅 */
.pq-pd-banner { border-radius:.75rem; border:1px solid var(--pd-line); background:var(--pd-soft); color:var(--pd); padding:1rem 1.1rem; }
.pq-pd-kicker { font-size:.72rem; font-weight:700; letter-spacing:.08em; background:var(--pd); color:#fff; border-radius:999px; padding:1px 9px; }
.pq-pd-ask { font-size:1.02rem; font-weight:600; }
.pq-pd-icon-lg {
	flex:0 0 auto; width:46px; height:46px; border-radius:12px;
	display:flex; align-items:center; justify-content:center;
	background:var(--pd); color:#fff; font-size:1.5rem;
}
.pq-pd-examples .badge { font-weight:400; }

/* 题目页范式思维卡：出现在题干/选项之后、答案之前，学生也可见 */
.pq-pd-card {
	margin:.7rem 0 .35rem; padding:.65rem .85rem;
	border-radius:.65rem; border:1px solid var(--pd-line,#e5e7eb);
	border-left:4px solid var(--pd,#6366f1);
	background:var(--pd-soft,#f8fafc);
}
.pq-pd-card .pq-pd-row { display:flex; align-items:center; gap:.6rem; flex-wrap:wrap; }
.pq-pd-tag { display:inline-flex; align-items:center; font-weight:700; color:var(--pd); font-size:.92rem; }
.pq-pd-ask { color:#334155; font-size:.9rem; }
.pq-pd-essence { margin-top:.4rem; color:#1f2937; font-size:.92rem; line-height:1.65; }
.pq-pd-transfer { margin-top:.35rem; color:#475569; font-size:.85rem; line-height:1.6; }
/* 打印/PDF 卷面不出现思维卡（route 已不下发数据，此为双保险） */
@media print { .pq-pd-card, .pq-pd-chip, .pq-pd-banner, .pq-pd-strip, .pq-pd-panel, .pq-pd-entry { display:none !important; } }


/* ===== LibreMath 概念档案卡片 / 弹层（CC BY 4.0 署名内容，样式克制简洁） ===== */
.pq-lm-card{border:1px solid var(--bs-border-color);border-radius:.65rem;background:var(--bs-body-bg);padding:.7rem .85rem;font-size:.86rem;line-height:1.65;color:var(--bs-body-color)}
.pq-lm-diag{border-color:#f3d9d4;background:#fffafa}
.pq-lm-diag-head{display:flex;align-items:center;justify-content:space-between;gap:.5rem;font-weight:600;color:#a61b38;margin-bottom:.4rem}
.pq-lm-free{font-weight:400;font-size:.72rem;color:#888}
.pq-lm-head{margin-bottom:.45rem}
.pq-lm-kicker{font-size:.72rem;color:#0a7ea4;letter-spacing:.02em}
.pq-lm-title{font-size:1.02rem;font-weight:700;margin:.15rem 0 .35rem;color:var(--bs-body-color)}
.pq-lm-chips{display:flex;flex-wrap:wrap;gap:.3rem;margin-bottom:.25rem}
.pq-lm-chip{font-size:.72rem;background:var(--bs-tertiary-bg);border-radius:1rem;padding:.05rem .55rem;color:var(--bs-secondary-color)}
.pq-lm-summary{margin:.1rem 0 .45rem;color:#374151}
.pq-lm-sec{margin-top:.5rem}
.pq-lm-sec-t{font-weight:600;font-size:.82rem;color:#374151;margin-bottom:.2rem}
.pq-lm-list{margin:0;padding-left:1.1rem}
.pq-lm-list li{margin:.12rem 0}
.pq-lm-pit{color:#7f1d1d}
.pq-lm-pit li::marker{color:#dc3545}
.pq-lm-ex{display:flex;gap:.4rem;align-items:flex-start;margin:.18rem 0}
.pq-lm-ex .pq-lm-mark{flex:0 0 auto;width:1.1rem;height:1.1rem;line-height:1rem;text-align:center;border-radius:50%;font-size:.72rem;margin-top:.15rem}
.pq-lm-pos .pq-lm-mark{background:#e6f4ea;color:#1e7e34}
.pq-lm-neg .pq-lm-mark{background:#fdecea;color:#c62828}
.pq-lm-faq{border-top:1px dashed var(--bs-border-color);padding:.3rem 0}
.pq-lm-faq summary{cursor:pointer;color:#0a7ea4;font-size:.82rem;list-style:none}
.pq-lm-faq summary::-webkit-details-marker{display:none}
.pq-lm-faq summary::before{content:"▸ ";font-size:.7rem}
.pq-lm-faq[open] summary::before{content:"▾ "}
.pq-lm-faq p{margin:.25rem 0 0;color:#4b5563;font-size:.84rem}
.pq-lm-evidence{margin-top:.5rem;font-size:.72rem;color:var(--bs-secondary-color)}
.pq-lm-foot{display:flex;flex-wrap:wrap;justify-content:space-between;gap:.25rem .8rem;margin-top:.55rem;padding-top:.4rem;border-top:1px solid var(--bs-border-color);font-size:.74rem}
.pq-lm-foot a{color:#0a7ea4;text-decoration:none}
.pq-lm-foot a:hover{text-decoration:underline}
.pq-lm-attr{color:var(--bs-secondary-color)}
.pq-lm-empty{color:var(--bs-secondary-color)}

/* 教材章节页增强（A 档）textbook 紧凑卡 */
.pq-lm-textbook{background:linear-gradient(135deg,#f0f7ff 0%,#fafbff 100%);border-color:#bfdbfe}
.pq-lm-tb-badge{display:inline-block;margin-left:.4rem;padding:.05rem .45rem;border-radius:999px;background:#dbeafe;color:#1d4ed8;font-size:.68rem;font-weight:600;vertical-align:middle}
.pq-lm-tb-meta{margin:.15rem 0 .1rem;color:#64748b;font-size:.72rem;line-height:1.5}
.pq-lm-tb-meta .ti{font-size:.75rem;vertical-align:-1px}
.pq-lm-tb-row{display:flex;gap:.5rem;margin-top:.4rem;align-items:flex-start}
.pq-lm-tb-label{flex:none;padding:.05rem .4rem;border-radius:.3rem;background:#e0f2fe;color:#0369a1;font-size:.72rem;font-weight:600;line-height:1.5}
.pq-lm-tb-val{flex:1;color:var(--bs-body-color)}
.pq-lm-tb-pit{flex:1;margin:0;padding-left:1.1rem}
.pq-lm-tb-ev{margin-top:.45rem}

/* 弹层 */
.pq-lm-modal{position:fixed;inset:0;z-index:1085;background:rgba(0,0,0,.45);display:none;align-items:center;justify-content:center;padding:1rem}
.pq-lm-modal.show{display:flex}
.pq-lm-modal-box{background:var(--bs-body-bg);border-radius:.8rem;width:100%;max-width:680px;max-height:88vh;display:flex;flex-direction:column;box-shadow:0 12px 40px rgba(0,0,0,.2)}
.pq-lm-modal-head{display:flex;align-items:center;justify-content:space-between;padding:.7rem 1rem;border-bottom:1px solid var(--bs-border-color);font-weight:600}
.pq-lm-modal-body{padding:1rem;overflow:auto}
body.pq-lm-modal-open{overflow:hidden}
@media print{.pq-lm-modal{display:none!important}}

/* ===== P1 模型卡（这题用的什么招 · 家长照念版） ===== */
.pq-lm-model{margin-top:.6rem;border:1px solid #d8c7f5;border-left:4px solid #845ef7;border-radius:.5rem;padding:.65rem .8rem;background:#f8f5ff}
.pq-lm-model-head{font-weight:600;color:#5f3dc4;margin-bottom:.35rem;font-size:.9rem}
.pq-lm-chip-model{background:#845ef7;color:#fff;font-weight:600;font-size:.85rem;padding:.2rem .6rem;border-radius:1rem;display:inline-block}
.pq-lm-model-gist{margin:.4rem 0;font-size:.88rem;color:#333;line-height:1.6}
.pq-lm-model-line{display:flex;gap:.45rem;align-items:flex-start;font-size:.82rem;margin-top:.3rem;line-height:1.55}
.pq-lm-model-tag{flex:none;background:#e7f0ff;color:#1864ab;border-radius:.3rem;padding:.05rem .4rem;font-size:.75rem;font-weight:600;margin-top:.1rem}
.pq-lm-model-tag-warn{background:#fff0f0;color:#c92a2a}

/* ===== P2 前置链图谱（这题错，可能是前置没牢） ===== */
.pq-lm-chain{margin-top:.6rem;border:1px solid #c3dafa;border-left:4px solid #3b82f6;border-radius:.5rem;padding:.65rem .8rem;background:#f5f9ff}
.pq-lm-chain-head{font-weight:600;color:#1d4ed8;margin-bottom:.35rem;font-size:.9rem}
.pq-lm-chain-root{font-size:.82rem;color:#555;margin-bottom:.3rem}
.pq-lm-chain-lv{list-style:none;margin:.15rem 0 .15rem 1.1rem;padding:0;font-size:.84rem}
.pq-lm-chain-lv li{margin:.25rem 0;line-height:1.5}
.pq-lm-chain-arrow{color:#93c5fd;margin-right:.25rem}
.pq-lm-chain-node{display:inline-block;background:#dbeafe;color:#1e40af;border-radius:1rem;padding:.1rem .55rem;font-size:.8rem;font-weight:600;cursor:pointer;transition:background .15s}
.pq-lm-chain-node:hover{background:#bfdbfe}
.pq-lm-chain-title{color:#888;font-size:.76rem;margin-left:.35rem}
.pq-lm-chain-soft{margin-left:.35rem;font-size:.68rem;color:#94a3b8;border:1px solid #cbd5e1;border-radius:.9rem;padding:0 .35rem;white-space:nowrap}
.pq-lm-chain-impact{margin-top:.45rem;padding-top:.4rem;border-top:1px dashed #c3dafa;font-size:.78rem;color:#1e40af}
.pq-lm-chain-impact .ti{font-size:.8rem;vertical-align:-1px}
.pq-lm-chain-tip{margin-top:.4rem;font-size:.75rem;color:#64748b}
