/* 成果评鉴 · Ant Design Pro 风格 */
.appraisal-hub-pro.ap-page,
.ap-page.appraisal-hub-pro {
	--ap-primary: #1677ff;
	--ap-success: #52c41a;
	--ap-warning: #faad14;
	--ap-error: #ff4d4f;
	--ap-border: #f0f0f0;
}
.ap-stat-row {
	display: grid;
	grid-template-columns: repeat(4, 1fr);
	gap: 12px;
	margin-bottom: 16px;
}
@media (max-width: 1100px) {
	.ap-stat-row { grid-template-columns: repeat(2, 1fr); }
}
.ap-stat-card {
	background: #fff;
	border: 1px solid var(--ap-border);
	border-radius: 8px;
	padding: 16px 20px;
	box-shadow: 0 1px 2px rgba(0, 0, 0, 0.03);
}
.ap-stat-card--primary .ap-stat-value { color: var(--ap-primary); }
.ap-stat-card--success .ap-stat-value { color: var(--ap-success); }
.ap-stat-card--warning .ap-stat-value { color: var(--ap-warning); }
.ap-stat-card--danger .ap-stat-value { color: var(--ap-error); }
.ap-stat-label { font-size: 13px; color: rgba(0, 0, 0, 0.45); margin-bottom: 4px; }
.ap-stat-value { font-size: 28px; font-weight: 600; line-height: 1.2; }
.ap-tag {
	display: inline-block;
	padding: 0 8px;
	font-size: 12px;
	line-height: 20px;
	border-radius: 4px;
	border: 1px solid transparent;
}
.ap-tag--default { background: #fafafa; border-color: #d9d9d9; color: rgba(0,0,0,.65); }
.ap-tag--blue { background: #e6f4ff; border-color: #91caff; color: #1677ff; }
.ap-tag--gold { background: #fffbe6; border-color: #ffe58f; color: #d48806; }
.ap-tag--cyan { background: #e6fffb; border-color: #87e8de; color: #08979c; }
.ap-tag--green { background: #f6ffed; border-color: #b7eb8f; color: #389e0d; }
.ap-tag--red { background: #fff2f0; border-color: #ffccc7; color: #cf1322; }
.ap-toolbar { display: flex; justify-content: space-between; align-items: center; padding: 12px 16px; flex-wrap: wrap; gap: 8px; }
.ap-form-section-title { font-size: 14px; font-weight: 600; margin: 16px 0 8px; color: rgba(0,0,0,.88); border-left: 3px solid var(--ap-primary); padding-left: 8px; }
.ap-empty-hint { text-align: center; padding: 48px 16px; color: rgba(0,0,0,.45); }
.ap-table-actions .pro-link { margin-right: 12px; }
.ap-case-detail-tabs { margin-top: 12px; }
.ap-case-meta-grid { display: grid; grid-template-columns: repeat(2, 1fr); gap: 8px 24px; padding: 16px; }
.ap-case-meta-grid dt { color: rgba(0,0,0,.45); font-size: 13px; }
.ap-case-meta-grid dd { margin: 0 0 8px; font-size: 14px; }
.layui-layer.appraisal-layer-pro .layui-layer-title { border-radius: 8px 8px 0 0; font-weight: 600; }
.layui-layer.appraisal-layer-pro .layui-layer-content { padding: 16px; }
.ap-portal-banner { background: #fffbe6; border: 1px solid #ffe58f; border-radius: 8px; padding: 12px 16px; margin-bottom: 16px; color: #d48806; }
.ap-wizard-steps { display: flex; gap: 8px; margin-bottom: 20px; flex-wrap: wrap; }
.ap-wizard-step { padding: 6px 12px; border-radius: 4px; background: #fafafa; font-size: 13px; }
.ap-wizard-step.is-active { background: #e6f4ff; color: #1677ff; font-weight: 600; }

/* 侧栏表单（评价计划编辑等） */
.ap-side-form-pro {
	background: #f5f7fa;
	min-height: 100%;
	padding-bottom: 72px;
	box-sizing: border-box;
}
.ap-side-form-pro .ap-req { color: var(--ap-error); font-style: normal; margin-left: 2px; }
.ap-side-form-head {
	display: flex;
	align-items: flex-start;
	justify-content: space-between;
	gap: 12px;
	padding: 16px 20px;
	background: linear-gradient(135deg, #e6f4ff 0%, #f0f5ff 55%, #fff 100%);
	border-bottom: 1px solid var(--ap-border);
}
.ap-side-form-badge {
	display: inline-block;
	font-size: 12px;
	line-height: 20px;
	padding: 0 8px;
	border-radius: 4px;
	background: #1677ff;
	color: #fff;
	margin-bottom: 8px;
}
.ap-side-form-title {
	margin: 0 0 6px;
	font-size: 18px;
	font-weight: 600;
	color: rgba(0, 0, 0, 0.88);
	line-height: 1.35;
}
.ap-side-form-desc {
	margin: 0;
	font-size: 13px;
	color: rgba(0, 0, 0, 0.45);
	line-height: 1.6;
	max-width: 520px;
}
.ap-side-form-head-meta { flex-shrink: 0; padding-top: 4px; }
.ap-side-form-body { padding: 12px 16px 0; }
.ap-side-form-pro .ap-side-section {
	margin-bottom: 12px;
	border-radius: 8px;
	overflow: hidden;
	box-shadow: 0 1px 2px rgba(0, 0, 0, 0.04);
}
.ap-side-form-pro .pro-card-head {
	font-size: 14px;
	font-weight: 600;
	color: rgba(0, 0, 0, 0.88);
}
.ap-side-form-pro .pro-card-head .layui-icon { margin-right: 6px; color: var(--ap-primary); }
.ap-side-section-toggle {
	cursor: pointer;
	user-select: none;
	display: flex;
	align-items: center;
	justify-content: space-between;
}
.ap-side-section-toggle:hover { background: #fafafa; }
.ap-side-toggle-icon { transition: transform 0.2s; color: rgba(0, 0, 0, 0.35); }
.ap-side-toggle-icon.is-open { transform: rotate(180deg); }
.ap-side-form-pro .ms-form-grid { grid-template-columns: repeat(2, 1fr); gap: 0 16px; }
.ap-side-form-pro .ms-field-hint { margin-top: 4px; font-size: 12px; color: rgba(0, 0, 0, 0.45); line-height: 1.5; }
.ap-date-range { display: flex; align-items: center; gap: 8px; flex-wrap: wrap; }
.ap-date-range .ap-date-input { flex: 1; min-width: 120px; }
.ap-date-range-sep { color: rgba(0, 0, 0, 0.35); font-size: 13px; flex-shrink: 0; }
.ap-select-with-action { display: flex; align-items: center; gap: 12px; flex-wrap: wrap; }
.ap-select-with-action select { flex: 1; min-width: 200px; }
.ap-preview-link { white-space: nowrap; font-size: 13px; }
.ap-side-form-foot {
	position: fixed;
	left: 0;
	right: 0;
	bottom: 0;
	z-index: 10;
	display: flex;
	justify-content: flex-end;
	align-items: center;
	gap: 10px;
	padding: 12px 20px;
	background: #fff;
	border-top: 1px solid var(--ap-border);
	box-shadow: 0 -2px 8px rgba(0, 0, 0, 0.06);
}
.ap-side-form-pro .ap-side-advanced-body { display: none; }
.ap-side-form-pro .ap-side-advanced-body.is-open { display: block; }
@media (max-width: 640px) {
	.ap-side-form-pro .ms-form-grid { grid-template-columns: 1fr; }
}

/* 模板新建/编辑侧栏 */
.ap-template-form-pro {
	padding-bottom: 88px;
	background: #f5f7fa;
}
.ap-template-form-pro .ap-side-section,
.ap-template-form-pro .pro-card-body {
	overflow: visible;
}
.ap-template-form-head {
	background: linear-gradient(135deg, #e6f4ff 0%, #f6ffed 100%);
}
.ap-template-form-body { padding: 14px 16px 24px; }
.ap-template-section { margin-bottom: 14px; }
.ap-template-section .pro-card-head {
	display: flex;
	align-items: center;
	justify-content: space-between;
	flex-wrap: wrap;
	gap: 10px;
}
.ap-template-field { margin-bottom: 16px; }
.ap-template-field:last-child { margin-bottom: 0; }
.ap-template-field label {
	display: block;
	font-size: 13px;
	font-weight: 500;
	color: rgba(0, 0, 0, 0.88);
	margin-bottom: 8px;
}
.ap-template-input,
.ap-template-textarea {
	border-radius: 8px;
	border-color: #d9d9d9;
}
.ap-template-textarea { min-height: 88px; resize: vertical; }
.ap-template-pills {
	display: flex;
	flex-wrap: wrap;
	gap: 8px;
}
.ap-template-pill {
	position: relative;
	margin: 0;
	cursor: pointer;
}
.ap-template-pill input {
	position: absolute;
	opacity: 0;
	pointer-events: none;
}
.ap-template-pill span {
	display: inline-block;
	padding: 6px 14px;
	font-size: 13px;
	border-radius: 999px;
	border: 1px solid #d9d9d9;
	background: #fff;
	color: rgba(0, 0, 0, 0.65);
	transition: all 0.15s;
}
.ap-template-pill.is-active span,
.ap-template-pill input:checked + span {
	border-color: var(--ap-primary, #1677ff);
	background: #e6f4ff;
	color: var(--ap-primary, #1677ff);
	font-weight: 500;
}
.ap-template-copy-filter { flex: 1; max-width: 220px; min-width: 140px; }
.ap-template-copy-search {
	height: 32px;
	font-size: 12px;
	border-radius: 6px;
	padding-left: 10px;
}
.ap-template-copy-intro {
	margin: 0 0 12px;
	font-size: 12px;
	color: rgba(0, 0, 0, 0.45);
	line-height: 1.55;
}
.ap-template-copy-list {
	display: flex;
	flex-direction: column;
	gap: 8px;
	max-height: min(360px, 52vh);
	overflow-y: auto;
	overflow-x: hidden;
	padding-right: 4px;
	scrollbar-width: thin;
}
.ap-template-copy-card {
	display: flex;
	align-items: flex-start;
	gap: 12px;
	padding: 12px 14px;
	border: 1px solid #e8e8e8;
	border-radius: 10px;
	background: #fff;
	cursor: pointer;
	transition: border-color 0.15s, box-shadow 0.15s, background 0.15s;
	margin: 0;
}
.ap-template-copy-card.is-hidden { display: none; }
.ap-template-copy-card:hover {
	border-color: rgba(22, 119, 255, 0.35);
	box-shadow: 0 2px 8px rgba(22, 119, 255, 0.06);
}
.ap-template-copy-card.is-active {
	border-color: var(--ap-primary, #1677ff);
	background: linear-gradient(180deg, #f0f7ff 0%, #fff 100%);
	box-shadow: 0 0 0 1px rgba(22, 119, 255, 0.12);
}
.ap-template-copy-card input {
	position: absolute;
	opacity: 0;
	pointer-events: none;
}
.ap-template-copy-card__icon {
	flex-shrink: 0;
	width: 36px;
	height: 36px;
	border-radius: 10px;
	background: #f5f5f5;
	color: rgba(0, 0, 0, 0.45);
	display: flex;
	align-items: center;
	justify-content: center;
}
.ap-template-copy-card__icon--proc { background: #e6f4ff; color: var(--ap-primary); }
.ap-template-copy-card__icon--mat { background: #f6ffed; color: #389e0d; }
.ap-template-copy-card__body { flex: 1; min-width: 0; }
.ap-template-copy-card__title {
	display: block;
	font-size: 14px;
	font-weight: 600;
	color: rgba(0, 0, 0, 0.88);
	margin-bottom: 4px;
	line-height: 1.35;
}
.ap-template-copy-card__meta {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 6px;
	font-size: 12px;
	color: rgba(0, 0, 0, 0.45);
}
.ap-template-copy-card__desc {
	display: -webkit-box;
	margin-top: 6px;
	font-size: 12px;
	color: rgba(0, 0, 0, 0.55);
	line-height: 1.5;
	-webkit-line-clamp: 2;
	-webkit-box-orient: vertical;
	overflow: hidden;
}
.ap-template-copy-card__check {
	flex-shrink: 0;
	width: 22px;
	height: 22px;
	border-radius: 50%;
	border: 1px solid #d9d9d9;
	display: flex;
	align-items: center;
	justify-content: center;
	color: transparent;
	font-size: 12px;
	margin-top: 2px;
	transition: all 0.15s;
}
.ap-template-copy-card.is-active .ap-template-copy-card__check {
	background: var(--ap-primary, #1677ff);
	border-color: var(--ap-primary, #1677ff);
	color: #fff;
}
.ap-template-copy-empty {
	margin: 8px 0 0;
	text-align: center;
	font-size: 13px;
	color: rgba(0, 0, 0, 0.45);
	padding: 16px;
}
.ap-template-copy-empty.is-hidden { display: none; }
.ap-template-form-foot {
	z-index: 20;
}
.ap-template-form-pro .layui-form-select dl {
	z-index: 9999;
}

/* 评价计划列表页 */
.ap-program-page .pro-page-header-desc { max-width: 640px; }
.ap-program-layout {
	display: grid;
	grid-template-columns: minmax(0, 1fr) 280px;
	gap: 16px;
	align-items: start;
}
@media (max-width: 1200px) {
	.ap-program-layout { grid-template-columns: 1fr; }
	.ap-program-aside { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; }
}
@media (max-width: 768px) {
	.ap-program-aside { grid-template-columns: 1fr; }
}
.ap-program-main.pro-table-card { padding: 0; overflow: hidden; }
.ap-program-toolbar {
	border-bottom: 1px solid var(--ap-border);
	background: #fafafa;
}
.ap-program-filters {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 8px;
	width: 100%;
}
.ap-filter-select,
.ap-filter-input {
	height: 32px;
	line-height: 32px;
	border: 1px solid #d9d9d9;
	border-radius: 6px;
	padding: 0 10px;
	font-size: 13px;
	background: #fff;
	box-sizing: border-box;
}
.ap-filter-select { min-width: 120px; }
.ap-filter-input { width: 200px; }
.ap-filter-select:focus,
.ap-filter-input:focus {
	border-color: var(--ap-primary);
	outline: none;
	box-shadow: 0 0 0 2px rgba(22, 119, 255, 0.1);
}
.ap-program-guide,
.ap-program-tip {
	padding: 16px 18px;
	border-radius: 8px;
}
.ap-program-guide__head {
	font-size: 14px;
	font-weight: 600;
	color: rgba(0, 0, 0, 0.88);
	margin-bottom: 14px;
}
.ap-program-guide__head .layui-icon {
	margin-right: 6px;
	color: var(--ap-primary);
}
.ap-program-guide__steps {
	margin: 0;
	padding: 0;
	list-style: none;
}
.ap-program-guide__steps li {
	display: flex;
	gap: 10px;
	align-items: flex-start;
	padding: 10px 0;
	border-bottom: 1px dashed #f0f0f0;
}
.ap-program-guide__steps li:last-child { border-bottom: none; padding-bottom: 0; }
.ap-program-guide__num {
	flex-shrink: 0;
	width: 22px;
	height: 22px;
	border-radius: 50%;
	background: #e6f4ff;
	color: var(--ap-primary);
	font-size: 12px;
	font-weight: 600;
	line-height: 22px;
	text-align: center;
}
.ap-program-guide__steps strong {
	display: block;
	font-size: 13px;
	color: rgba(0, 0, 0, 0.88);
	margin-bottom: 2px;
}
.ap-program-guide__steps span {
	display: block;
	font-size: 12px;
	color: rgba(0, 0, 0, 0.45);
	line-height: 1.45;
}
.ap-program-tip {
	display: flex;
	gap: 10px;
	align-items: flex-start;
	margin-top: 12px;
	background: #fffbe6;
	border-color: #ffe58f;
}
.ap-program-tip__icon {
	flex-shrink: 0;
	width: 28px;
	height: 28px;
	border-radius: 50%;
	background: #fff1b8;
	color: #d48806;
	display: flex;
	align-items: center;
	justify-content: center;
}
.ap-program-tip p {
	margin: 0;
	font-size: 12px;
	color: rgba(0, 0, 0, 0.65);
	line-height: 1.6;
}
.ap-program-cell-title__main {
	display: flex;
	align-items: center;
	gap: 8px;
	flex-wrap: wrap;
}
.ap-program-cell-name {
	font-size: 14px;
	font-weight: 600;
	color: rgba(0, 0, 0, 0.88);
}
.ap-program-cell-year {
	font-size: 11px;
	padding: 0 6px;
	line-height: 18px;
	border-radius: 4px;
	background: #f5f5f5;
	color: rgba(0, 0, 0, 0.45);
}
.ap-program-cell-notice {
	margin: 4px 0 0;
	font-size: 12px;
	color: rgba(0, 0, 0, 0.45);
	line-height: 1.45;
}
.ap-program-cell-templates {
	display: flex;
	flex-direction: column;
	gap: 4px;
	font-size: 12px;
	color: rgba(0, 0, 0, 0.65);
	line-height: 1.4;
}
.ap-program-cell-templates .layui-icon {
	font-size: 12px;
	margin-right: 4px;
	color: rgba(0, 0, 0, 0.35);
}
.ap-program-window {
	display: inline-block;
	font-size: 12px;
	line-height: 20px;
	padding: 0 8px;
	border-radius: 4px;
	white-space: nowrap;
}
.ap-program-window--open { background: #f6ffed; color: #389e0d; }
.ap-program-window--closed { background: #fff2f0; color: #cf1322; }
.ap-program-window--upcoming { background: #fffbe6; color: #d48806; }
.ap-program-window--draft { background: #fafafa; color: rgba(0, 0, 0, 0.45); }
.ap-program-page .ap-table-actions .pro-link { margin-right: 10px; }
.ap-program-page .ap-table-actions .pro-link:last-child { margin-right: 0; }

/* 科技平台离线导出 */
.ap-export-page .pro-page-header-desc code { font-size: 12px; background: rgba(22,119,255,.08); padding: 1px 6px; border-radius: 4px; }
.ap-export-profile-badge {
	display: inline-flex;
	align-items: center;
	gap: 6px;
	font-size: 12px;
	padding: 4px 10px;
	border-radius: 6px;
	background: #f6ffed;
	border: 1px solid #b7eb8f;
	color: #389e0d;
	margin-right: 8px;
}
.ap-export-stat-row { grid-template-columns: repeat(6, 1fr); }
@media (max-width: 1200px) { .ap-export-stat-row { grid-template-columns: repeat(3, 1fr); } }
@media (max-width: 640px) { .ap-export-stat-row { grid-template-columns: repeat(2, 1fr); } }
.ap-export-layout {
	display: grid;
	grid-template-columns: minmax(0, 1fr) 300px;
	gap: 16px;
	align-items: start;
}
@media (max-width: 1100px) {
	.ap-export-layout { grid-template-columns: 1fr; }
	.ap-export-aside { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; }
}
@media (max-width: 768px) { .ap-export-aside { grid-template-columns: 1fr; } }
.ap-export-card-head {
	font-size: 14px;
	font-weight: 600;
	color: rgba(0, 0, 0, 0.88);
	padding: 14px 18px;
	border-bottom: 1px solid var(--ap-border);
}
.ap-export-card-head .layui-icon { margin-right: 6px; color: var(--ap-primary); }
.ap-export-card-head--row {
	display: flex;
	justify-content: space-between;
	align-items: center;
	flex-wrap: wrap;
	gap: 8px;
}
.ap-export-filter-card { margin-bottom: 16px; overflow: hidden; }
.ap-export-form { padding: 16px 18px 18px; }
.ap-export-form-grid {
	display: grid;
	grid-template-columns: repeat(2, 1fr);
	gap: 14px 20px;
}
@media (max-width: 768px) { .ap-export-form-grid { grid-template-columns: 1fr; } }
.ap-export-field label {
	display: block;
	font-size: 13px;
	font-weight: 500;
	color: rgba(0, 0, 0, 0.88);
	margin-bottom: 6px;
}
.ap-export-field select,
.ap-export-field .layui-input {
	height: 36px;
	border-radius: 6px;
	border: 1px solid #d9d9d9;
}
.ap-export-hint {
	margin: 4px 0 0;
	font-size: 12px;
	color: rgba(0, 0, 0, 0.45);
	line-height: 1.45;
}
.ap-export-actions {
	display: flex;
	flex-wrap: wrap;
	gap: 10px;
	margin-top: 18px;
	padding-top: 16px;
	border-top: 1px dashed var(--ap-border);
}
.ap-export-preview-card { padding: 0; overflow: hidden; }
.ap-export-table-wrap { overflow-x: auto; }
.ap-export-table { margin: 0; }
.ap-export-table th { background: #fafafa; font-size: 13px; white-space: nowrap; }
.ap-export-table td { font-size: 13px; vertical-align: middle; }
.ap-export-empty {
	text-align: center;
	padding: 32px 16px !important;
	color: rgba(0, 0, 0, 0.45);
}
.ap-export-guide-body,
.ap-export-fields { padding: 14px 16px 16px; }
.ap-export-meta-block {
	margin-bottom: 14px;
	font-size: 13px;
	color: rgba(0, 0, 0, 0.65);
	line-height: 1.6;
}
.ap-export-meta-block:last-child { margin-bottom: 0; }
.ap-export-meta-block strong { display: block; margin-bottom: 4px; color: rgba(0, 0, 0, 0.88); }
.ap-export-meta-block code { font-size: 12px; background: #f5f5f5; padding: 1px 4px; border-radius: 3px; }
.ap-export-meta-block--soft {
	background: #fafafa;
	border: 1px solid #f0f0f0;
	border-radius: 8px;
	padding: 10px 12px;
}
.ap-export-meta-json {
	margin: 8px 0 0;
	font-size: 11px;
	line-height: 1.45;
	max-height: 160px;
	overflow: auto;
	background: #fff;
	border: 1px solid #f0f0f0;
	border-radius: 6px;
	padding: 8px;
	white-space: pre-wrap;
	word-break: break-all;
}
.ap-export-field-list {
	margin: 0;
	padding: 0;
	list-style: none;
	max-height: 420px;
	overflow-y: auto;
}
.ap-export-field-list li {
	padding: 8px 0;
	border-bottom: 1px dashed #f0f0f0;
	font-size: 12px;
}
.ap-export-field-list li:last-child { border-bottom: none; }
.ap-export-field-list code {
	display: inline-block;
	min-width: 120px;
	font-size: 11px;
	color: #1677ff;
	background: #e6f4ff;
	padding: 1px 6px;
	border-radius: 4px;
	margin-right: 6px;
}
.ap-export-field-list span { font-weight: 500; color: rgba(0, 0, 0, 0.88); }
.ap-export-field-list em {
	display: block;
	margin-top: 2px;
	font-style: normal;
	color: rgba(0, 0, 0, 0.45);
	padding-left: 0;
}

/* 形式审查 */
.ap-review-page .pro-page-header-desc { max-width: 640px; }
.ap-stat-card--danger .ap-stat-value { color: var(--ap-error); }
.ap-stat-card--gold .ap-stat-value { color: #d48806; }
.ap-review-stat-row { grid-template-columns: repeat(5, 1fr); }
@media (max-width: 1100px) { .ap-review-stat-row { grid-template-columns: repeat(3, 1fr); } }
@media (max-width: 640px) { .ap-review-stat-row { grid-template-columns: repeat(2, 1fr); } }
.ap-review-layout {
	display: grid;
	grid-template-columns: minmax(0, 1fr) 280px;
	gap: 16px;
	align-items: start;
}
@media (max-width: 1100px) {
	.ap-review-layout { grid-template-columns: 1fr; }
	.ap-review-aside { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; }
}
@media (max-width: 768px) { .ap-review-aside { grid-template-columns: 1fr; } }
.ap-review-main.pro-table-card { padding: 0; overflow: hidden; }
.ap-review-toolbar {
	border-bottom: 1px solid var(--ap-border);
	background: #fafafa;
	flex-wrap: wrap;
}
.ap-review-filters {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 8px;
}
.ap-review-toolbar-hint {
	font-size: 12px;
	color: rgba(0, 0, 0, 0.45);
}
.ap-review-toolbar-hint .layui-icon { margin-right: 4px; }
.ap-review-cell-case .ap-case-no { display: block; margin-bottom: 2px; }
.ap-review-cell-case .ap-case-title {
	display: block;
	font-size: 13px;
	color: rgba(0, 0, 0, 0.88);
	max-width: 280px;
	overflow: hidden;
	text-overflow: ellipsis;
	white-space: nowrap;
}
.ap-review-card-head {
	font-size: 14px;
	font-weight: 600;
	padding: 14px 16px;
	border-bottom: 1px solid var(--ap-border);
}
.ap-review-card-head .layui-icon { margin-right: 6px; color: var(--ap-primary); }
.ap-review-guide__steps {
	margin: 0;
	padding: 14px 16px 16px;
	list-style: none;
}
.ap-review-guide__steps li {
	display: flex;
	gap: 10px;
	padding: 10px 0;
	border-bottom: 1px dashed #f0f0f0;
}
.ap-review-guide__steps li:last-child { border-bottom: none; }
.ap-review-guide__num {
	width: 22px;
	height: 22px;
	border-radius: 50%;
	background: #e6f4ff;
	color: var(--ap-primary);
	font-size: 12px;
	font-weight: 600;
	line-height: 22px;
	text-align: center;
	flex-shrink: 0;
}
.ap-review-guide__steps strong { display: block; font-size: 13px; margin-bottom: 2px; }
.ap-review-guide__steps span { font-size: 12px; color: rgba(0, 0, 0, 0.45); }
.ap-review-tip {
	display: flex;
	gap: 10px;
	padding: 14px 16px;
	margin-top: 12px;
	background: #fffbe6;
	border-color: #ffe58f;
}
.ap-review-tip__icon {
	width: 28px;
	height: 28px;
	border-radius: 50%;
	background: #fff1b8;
	color: #d48806;
	display: flex;
	align-items: center;
	justify-content: center;
	flex-shrink: 0;
}
.ap-review-tip p { margin: 0; font-size: 12px; line-height: 1.6; color: rgba(0, 0, 0, 0.65); }

/* 形式审查侧栏 */
.ap-review-desk { padding-bottom: 72px; }
.ap-review-desk-sep { margin: 0 6px; color: rgba(0, 0, 0, 0.25); }
.ap-review-desk-alert {
	display: flex;
	gap: 10px;
	align-items: flex-start;
	margin: 0 16px 12px;
	padding: 12px 14px;
	border-radius: 8px;
	font-size: 13px;
	line-height: 1.55;
}
.ap-review-desk-alert ul { margin: 6px 0 0; padding-left: 18px; }
.ap-review-desk-alert--warn { background: #fffbe6; border: 1px solid #ffe58f; color: #ad6800; }
.ap-review-desk-alert--danger { background: #fff2f0; border: 1px solid #ffccc7; color: #cf1322; }
.ap-review-section-head {
	display: flex;
	align-items: center;
	justify-content: space-between;
}
.ap-review-meta-grid {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 12px 20px;
	margin: 0;
}
.ap-review-meta-grid dt { font-size: 12px; color: rgba(0, 0, 0, 0.45); margin-bottom: 4px; }
.ap-review-meta-grid dd { margin: 0; font-size: 14px; color: rgba(0, 0, 0, 0.88); }
.ap-review-material-list { display: flex; flex-direction: column; gap: 10px; }
.ap-review-material-item {
	padding: 10px 12px;
	border: 1px solid #f0f0f0;
	border-radius: 8px;
	background: #fafafa;
}
.ap-review-material-item.is-latest {
	border-color: #91caff;
	background: #f0f5ff;
}
.ap-review-material-item__head {
	display: flex;
	align-items: center;
	gap: 8px;
	flex-wrap: wrap;
}
.ap-review-material-ver { font-weight: 600; font-size: 13px; }
.ap-review-material-latest {
	font-size: 11px;
	color: var(--ap-primary);
	background: #e6f4ff;
	padding: 0 6px;
	border-radius: 4px;
}
.ap-review-material-remark {
	margin: 6px 0 0;
	font-size: 12px;
	color: rgba(0, 0, 0, 0.55);
}
.ap-review-attach-wrap { overflow-x: auto; }
.ap-review-attach-table { margin: 0; font-size: 13px; }
.ap-review-decision-grid {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: 10px;
	margin-bottom: 16px;
}
@media (max-width: 720px) { .ap-review-decision-grid { grid-template-columns: 1fr; } }
.ap-review-decision {
	display: flex;
	flex-direction: column;
	align-items: center;
	text-align: center;
	padding: 14px 10px;
	border: 2px solid #f0f0f0;
	border-radius: 10px;
	cursor: pointer;
	transition: border-color 0.15s, background 0.15s;
}
.ap-review-decision input { position: absolute; opacity: 0; pointer-events: none; }
.ap-review-decision.is-active { border-color: var(--ap-primary); background: #f0f5ff; }
.ap-review-decision__icon {
	width: 36px;
	height: 36px;
	border-radius: 50%;
	display: flex;
	align-items: center;
	justify-content: center;
	margin-bottom: 8px;
	font-size: 20px;
}
.ap-review-decision__icon--ok { background: #f6ffed; color: #52c41a; }
.ap-review-decision__icon--warn { background: #fffbe6; color: #faad14; }
.ap-review-decision__icon--stop { background: #fff2f0; color: #ff4d4f; }
.ap-review-decision strong { font-size: 14px; margin-bottom: 4px; }
.ap-review-decision em { font-size: 11px; font-style: normal; color: rgba(0, 0, 0, 0.45); line-height: 1.4; }
.ap-review-remark-field label {
	display: block;
	font-size: 13px;
	font-weight: 500;
	margin-bottom: 6px;
}
.ap-review-notice-preview {
	padding: 16px 20px;
	line-height: 1.75;
	font-size: 14px;
	color: rgba(0, 0, 0, 0.88);
}
.ap-review-desk-foot .pro-btn[disabled] { opacity: 0.5; cursor: not-allowed; }

/* 模板设置 */
.ap-setting-page .pro-page-header-desc { max-width: 640px; }
.ap-setting-stat-row { grid-template-columns: repeat(3, 1fr); }
@media (max-width: 640px) { .ap-setting-stat-row { grid-template-columns: 1fr; } }
.ap-setting-layout {
	display: grid;
	grid-template-columns: minmax(0, 1fr) 320px;
	gap: 16px;
	align-items: start;
}
@media (max-width: 1100px) {
	.ap-setting-layout { grid-template-columns: 1fr; }
	.ap-setting-aside { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; }
}
@media (max-width: 768px) { .ap-setting-aside { grid-template-columns: 1fr; } }
.ap-setting-main { display: flex; flex-direction: column; gap: 16px; }
.ap-setting-panel { padding: 0; overflow: hidden; }
.ap-setting-panel__head {
	display: flex;
	justify-content: space-between;
	align-items: flex-start;
	gap: 12px;
	padding: 16px 18px;
	border-bottom: 1px solid var(--ap-border, #f0f0f0);
	background: linear-gradient(180deg, #fafafa 0%, #fff 100%);
}
.ap-setting-panel__title {
	margin: 0;
	font-size: 15px;
	font-weight: 600;
	color: rgba(0, 0, 0, 0.88);
}
.ap-setting-panel__title .layui-icon { margin-right: 6px; color: var(--ap-primary, #1677ff); }
.ap-setting-panel__desc {
	margin: 4px 0 0;
	font-size: 12px;
	color: rgba(0, 0, 0, 0.45);
	line-height: 1.45;
}
.ap-setting-panel__actions {
	display: flex;
	align-items: center;
	gap: 8px;
	flex-shrink: 0;
}
.ap-setting-template-list {
	display: grid;
	grid-template-columns: repeat(2, 1fr);
	gap: 12px;
	padding: 16px 18px 18px;
}
@media (max-width: 900px) { .ap-setting-template-list { grid-template-columns: 1fr; } }
.ap-setting-template-card {
	display: flex;
	flex-direction: column;
	position: relative;
	border: 1px solid #f0f0f0;
	border-radius: 10px;
	background: #fff;
	transition: border-color 0.15s, box-shadow 0.15s;
	color: inherit;
	overflow: hidden;
}
.ap-setting-template-card:hover {
	border-color: rgba(22, 119, 255, 0.35);
	box-shadow: 0 4px 12px rgba(22, 119, 255, 0.08);
}
.ap-setting-template-card--material:hover { border-color: rgba(82, 196, 26, 0.35); box-shadow: 0 4px 12px rgba(82, 196, 26, 0.08); }
.ap-setting-template-card__main {
	display: block;
	padding: 14px 16px 10px;
	text-decoration: none;
	color: inherit;
	flex: 1;
}
.ap-setting-template-card__foot {
	display: flex;
	align-items: center;
	justify-content: space-between;
	padding: 0 14px 12px;
	gap: 8px;
}
.ap-setting-template-card__ops { display: flex; gap: 4px; }
.ap-setting-template-card__op {
	border: 0;
	background: transparent;
	font-size: 12px;
	color: rgba(0, 0, 0, 0.45);
	cursor: pointer;
	padding: 2px 6px;
	border-radius: 4px;
}
.ap-setting-template-card__op:hover { color: var(--ap-primary, #1677ff); background: #f0f5ff; }
.ap-setting-template-card--material .ap-setting-template-card__op:hover { color: #389e0d; background: #f6ffed; }
.ap-setting-empty .pro-btn { margin: 0 4px; }
.ap-setting-template-card__top {
	display: flex;
	align-items: flex-start;
	justify-content: space-between;
	gap: 8px;
	margin-bottom: 8px;
}
.ap-setting-template-card__title {
	font-size: 14px;
	font-weight: 600;
	color: rgba(0, 0, 0, 0.88);
	line-height: 1.4;
}
.ap-setting-template-card__summary {
	margin: 0 0 10px;
	font-size: 12px;
	color: rgba(0, 0, 0, 0.55);
	line-height: 1.55;
	display: -webkit-box;
	-webkit-line-clamp: 2;
	-webkit-box-orient: vertical;
	overflow: hidden;
}
.ap-setting-template-card__meta {
	display: flex;
	flex-wrap: wrap;
	gap: 10px 14px;
	font-size: 12px;
	color: rgba(0, 0, 0, 0.45);
}
.ap-setting-template-card__meta .layui-icon { font-size: 12px; margin-right: 2px; }
.ap-setting-template-card__ref {
	max-width: 120px;
	overflow: hidden;
	text-overflow: ellipsis;
	white-space: nowrap;
}
.ap-setting-template-card__link {
	font-size: 12px;
	color: var(--ap-primary, #1677ff);
	text-decoration: none;
}
.ap-setting-template-card--material .ap-setting-template-card__link { color: #389e0d; }
.ap-setting-empty {
	grid-column: 1 / -1;
	text-align: center;
	padding: 36px 16px;
	color: rgba(0, 0, 0, 0.45);
}
.ap-setting-empty .layui-icon { font-size: 36px; display: block; margin-bottom: 8px; color: rgba(0, 0, 0, 0.15); }
.ap-setting-empty p { margin: 0 0 12px; }
.ap-setting-seed-card { padding: 16px; }
.ap-setting-seed-card__head {
	font-size: 14px;
	font-weight: 600;
	margin-bottom: 8px;
	color: rgba(0, 0, 0, 0.88);
}
.ap-setting-seed-card__head .layui-icon { margin-right: 6px; color: var(--ap-primary); }
.ap-setting-seed-card__intro {
	margin: 0 0 14px;
	font-size: 12px;
	line-height: 1.6;
	color: rgba(0, 0, 0, 0.55);
}
.ap-setting-seed-list { display: flex; flex-direction: column; gap: 10px; margin-bottom: 14px; }
.ap-setting-seed-item {
	padding: 10px 12px;
	border: 1px solid #f0f0f0;
	border-radius: 8px;
	background: #fafafa;
}
.ap-setting-seed-item__org { font-size: 11px; color: rgba(0, 0, 0, 0.45); margin-bottom: 2px; }
.ap-setting-seed-item__title { font-size: 13px; font-weight: 600; color: rgba(0, 0, 0, 0.88); }
.ap-setting-seed-item__desc { margin: 4px 0 0; font-size: 12px; color: rgba(0, 0, 0, 0.55); line-height: 1.45; }
.pro-btn-block { width: 100%; justify-content: center; }
.ap-setting-guide { padding: 16px; }
.ap-setting-guide__head { font-size: 14px; font-weight: 600; margin-bottom: 12px; }
.ap-setting-guide__head .layui-icon { margin-right: 6px; color: var(--ap-primary); }
.ap-setting-guide__steps { list-style: none; margin: 0; padding: 0; }
.ap-setting-guide__steps li {
	display: flex;
	gap: 10px;
	padding: 10px 0;
	border-bottom: 1px dashed #f0f0f0;
}
.ap-setting-guide__steps li:last-child { border-bottom: 0; padding-bottom: 0; }
.ap-setting-guide__num {
	flex-shrink: 0;
	width: 22px;
	height: 22px;
	border-radius: 50%;
	background: #f0f5ff;
	color: var(--ap-primary);
	font-size: 12px;
	font-weight: 600;
	display: flex;
	align-items: center;
	justify-content: center;
}
.ap-setting-guide__steps strong { display: block; font-size: 13px; margin-bottom: 2px; }
.ap-setting-guide__steps span { font-size: 12px; color: rgba(0, 0, 0, 0.45); }
.ap-setting-more { padding: 12px 16px; display: flex; flex-direction: column; gap: 4px; }
.ap-setting-more__link {
	display: flex;
	align-items: center;
	gap: 8px;
	padding: 8px 0;
	font-size: 13px;
	color: rgba(0, 0, 0, 0.65);
	text-decoration: none;
}
.ap-setting-more__link:hover { color: var(--ap-primary); }
.ap-setting-more__link .layui-icon { color: rgba(0, 0, 0, 0.35); }

/* 模板预览 */
.ap-setting-preview-layout {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 16px;
	align-items: start;
}
@media (max-width: 960px) { .ap-setting-preview-layout { grid-template-columns: 1fr; } }
.ap-setting-preview-panel { padding: 0; overflow: hidden; }
.ap-setting-preview-panel__head {
	display: flex;
	justify-content: space-between;
	align-items: center;
	flex-wrap: wrap;
	gap: 10px;
	padding: 14px 18px;
	border-bottom: 1px solid var(--ap-border, #f0f0f0);
}
.ap-setting-preview-panel__head h3 {
	margin: 0;
	font-size: 15px;
	font-weight: 600;
}
.ap-setting-preview-panel__head h3 .layui-icon { margin-right: 6px; color: var(--ap-primary); }
.ap-setting-preview-filter { min-width: 200px; }
.ap-setting-preview-filter select { height: 34px; border-radius: 6px; }
.ap-setting-preview-summary {
	margin: 12px 18px 0;
	padding: 10px 12px;
	font-size: 13px;
	line-height: 1.6;
	color: rgba(0, 0, 0, 0.65);
	background: #fafafa;
	border-radius: 8px;
	border: 1px solid #f0f0f0;
}
.ap-setting-preview-source {
	margin: 8px 18px 0;
	font-size: 12px;
	color: rgba(0, 0, 0, 0.45);
	line-height: 1.5;
}
.ap-setting-preview-source .layui-icon { margin-right: 4px; }
.ap-proc-timeline { padding: 16px 18px 20px; }
.ap-proc-node {
	display: flex;
	gap: 14px;
	padding: 0 0 16px;
}
.ap-proc-node:last-child { padding-bottom: 0; }
.ap-proc-node__rail {
	display: flex;
	flex-direction: column;
	align-items: center;
	width: 28px;
	flex-shrink: 0;
}
.ap-proc-node__num {
	width: 28px;
	height: 28px;
	border-radius: 50%;
	background: var(--ap-primary, #1677ff);
	color: #fff;
	font-size: 12px;
	font-weight: 600;
	display: flex;
	align-items: center;
	justify-content: center;
}
.ap-proc-node__line {
	flex: 1;
	width: 2px;
	min-height: 12px;
	margin-top: 4px;
	background: #e6f4ff;
}
.ap-proc-node:last-child .ap-proc-node__line { display: none; }
.ap-proc-node__body { flex: 1; min-width: 0; padding-top: 2px; }
.ap-proc-node__title { font-weight: 600; font-size: 14px; color: rgba(0, 0, 0, 0.88); }
.ap-proc-node__meta {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 6px;
	margin-top: 6px;
}
.ap-proc-node__sla { font-size: 12px; color: rgba(0, 0, 0, 0.45); }
.ap-proc-node__sla .layui-icon { font-size: 12px; margin-right: 2px; }
.ap-proc-node__desc {
	margin-top: 8px;
	font-size: 13px;
	line-height: 1.55;
	color: rgba(0, 0, 0, 0.65);
}
.ap-mat-steps { padding: 12px 18px 18px; }
.ap-mat-step {
	display: flex;
	gap: 12px;
	padding: 12px 0;
	border-bottom: 1px solid #f5f5f5;
}
.ap-mat-step:last-child { border-bottom: 0; }
.ap-mat-step__index {
	flex-shrink: 0;
	width: 28px;
	height: 28px;
	border-radius: 8px;
	background: #f6ffed;
	color: #389e0d;
	font-size: 13px;
	font-weight: 600;
	display: flex;
	align-items: center;
	justify-content: center;
}
.ap-mat-step__title {
	font-size: 14px;
	font-weight: 600;
	color: rgba(0, 0, 0, 0.88);
	display: flex;
	align-items: center;
	flex-wrap: wrap;
	gap: 6px;
}
.ap-mat-step__meta { margin-top: 6px; }
.ap-mat-step__subtitle {
	margin-top: 6px;
	font-size: 12px;
	line-height: 1.5;
	color: rgba(0, 0, 0, 0.55);
}
.ap-setting-preview-empty {
	text-align: center;
	padding: 40px 16px;
	color: rgba(0, 0, 0, 0.45);
}
.ap-setting-preview-empty .layui-icon { font-size: 32px; display: block; margin-bottom: 8px; color: rgba(0, 0, 0, 0.12); }
.ap-setting-preview-empty p { margin: 0; font-size: 13px; }

/* 申报门户装修 */
.ap-portal-setting-page .pro-page-header-desc { max-width: 640px; }
.ap-portal-setting-stat-row { grid-template-columns: repeat(4, 1fr); }
.ap-stat-value--text { font-size: 18px; }
.ap-stat-value--sm { font-size: 14px; line-height: 1.35; }
@media (max-width: 960px) { .ap-portal-setting-stat-row { grid-template-columns: repeat(2, 1fr); } }
@media (max-width: 480px) { .ap-portal-setting-stat-row { grid-template-columns: 1fr; } }
.ap-portal-setting-layout {
	display: grid;
	grid-template-columns: minmax(0, 1fr) 340px;
	gap: 16px;
	align-items: start;
}
@media (max-width: 1100px) {
	.ap-portal-setting-layout { grid-template-columns: 1fr; }
	.ap-portal-setting-aside { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; }
}
@media (max-width: 768px) { .ap-portal-setting-aside { grid-template-columns: 1fr; } }
.ap-portal-setting-main { display: flex; flex-direction: column; gap: 16px; }
.ap-portal-setting-section { padding: 0; overflow: hidden; }
.ap-portal-setting-section__head {
	display: flex;
	gap: 12px;
	padding: 16px 18px;
	border-bottom: 1px solid var(--ap-border, #f0f0f0);
	background: linear-gradient(180deg, #fafafa 0%, #fff 100%);
}
.ap-portal-setting-section__icon {
	width: 36px;
	height: 36px;
	border-radius: 10px;
	background: #f0f5ff;
	color: var(--ap-primary, #1677ff);
	display: flex;
	align-items: center;
	justify-content: center;
	flex-shrink: 0;
}
.ap-portal-setting-section__icon--home { background: #f6ffed; color: #389e0d; }
.ap-portal-setting-section__icon--theme { background: #f9f0ff; color: #722ed1; }
.ap-portal-setting-section__title { margin: 0; font-size: 15px; font-weight: 600; color: rgba(0, 0, 0, 0.88); }
.ap-portal-setting-section__desc { margin: 4px 0 0; font-size: 12px; color: rgba(0, 0, 0, 0.45); line-height: 1.45; }
.ap-portal-setting-section__body { padding: 16px 18px 18px; }
.ap-portal-setting-switch {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 16px;
	padding: 14px 16px;
	border: 1px solid #f0f0f0;
	border-radius: 10px;
	margin-bottom: 10px;
	background: #fafafa;
}
.ap-portal-setting-switch:last-child { margin-bottom: 0; }
.ap-portal-setting-switch__text strong { display: block; font-size: 14px; margin-bottom: 4px; color: rgba(0, 0, 0, 0.88); }
.ap-portal-setting-switch__text span { font-size: 12px; color: rgba(0, 0, 0, 0.45); line-height: 1.5; }
.ap-portal-setting-grid { display: grid; gap: 14px 18px; }
.ap-portal-setting-grid--2 { grid-template-columns: repeat(2, 1fr); }
@media (max-width: 640px) { .ap-portal-setting-grid--2 { grid-template-columns: 1fr; } }
.ap-portal-setting-field label {
	display: block;
	font-size: 13px;
	font-weight: 500;
	color: rgba(0, 0, 0, 0.88);
	margin-bottom: 6px;
}
.ap-portal-setting-field .layui-input,
.ap-portal-setting-field .layui-textarea {
	border-radius: 6px;
	border-color: #d9d9d9;
}
.ap-portal-setting-field + .ap-portal-setting-field { margin-top: 14px; }
.ap-portal-setting-grid .ap-portal-setting-field { margin-top: 0; }
.ap-portal-setting-hint { margin: 6px 0 0; font-size: 12px; color: rgba(0, 0, 0, 0.45); }
.ap-portal-setting-color-row {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 10px;
}
.ap-portal-setting-color-picker {
	width: 44px;
	height: 36px;
	padding: 2px;
	border: 1px solid #d9d9d9;
	border-radius: 6px;
	cursor: pointer;
	background: #fff;
}
.ap-portal-setting-color-input { width: 120px; font-family: ui-monospace, monospace; }
.ap-portal-setting-color-presets { display: flex; gap: 6px; }
.ap-portal-setting-color-swatch {
	width: 28px;
	height: 28px;
	border: 2px solid #fff;
	border-radius: 6px;
	box-shadow: 0 0 0 1px #d9d9d9;
	cursor: pointer;
	padding: 0;
}
.ap-portal-setting-color-swatch:hover { transform: scale(1.08); }
.ap-portal-setting-actions {
	display: flex;
	flex-wrap: wrap;
	gap: 10px;
	justify-content: flex-end;
	padding: 4px 0 8px;
}
.ap-portal-setting-preview-card { padding: 0; overflow: hidden; }
.ap-portal-setting-preview-card__head {
	display: flex;
	justify-content: space-between;
	align-items: center;
	padding: 12px 16px;
	border-bottom: 1px solid var(--ap-border, #f0f0f0);
	font-size: 13px;
	font-weight: 600;
}
.ap-portal-setting-preview-card__head .layui-icon { margin-right: 4px; color: var(--ap-primary); }
.ap-portal-setting-preview { padding: 14px; background: #f5f7fa; }
.ap-portal-setting-preview__nav {
	display: flex;
	align-items: baseline;
	gap: 6px;
	margin-bottom: 10px;
	font-size: 13px;
}
.ap-portal-setting-preview__brand { font-weight: 700; color: var(--ap-primary, #1677ff); }
.ap-portal-setting-preview__sub { color: rgba(0, 0, 0, 0.45); }
.ap-portal-setting-preview__hero {
	padding: 16px 14px;
	border-radius: 10px;
	background: linear-gradient(120deg, #1677ff 0%, #4096ff 55%, #69b1ff 100%);
	color: #fff;
	margin-bottom: 10px;
}
.ap-portal-setting-preview__eyebrow {
	margin: 0 0 6px;
	font-size: 10px;
	font-weight: 600;
	letter-spacing: 0.06em;
	text-transform: uppercase;
	opacity: 0.85;
}
.ap-portal-setting-preview__title {
	margin: 0 0 8px;
	font-size: 16px;
	font-weight: 600;
	line-height: 1.35;
	color: #fff;
}
.ap-portal-setting-preview__desc {
	margin: 0 0 12px;
	font-size: 12px;
	line-height: 1.55;
	opacity: 0.9;
}
.ap-portal-setting-preview__btns { display: flex; gap: 8px; flex-wrap: wrap; }
.ap-portal-setting-preview__btn {
	font-size: 11px;
	padding: 4px 10px;
	border-radius: 6px;
	background: rgba(255, 255, 255, 0.2);
	border: 1px solid rgba(255, 255, 255, 0.35);
}
.ap-portal-setting-preview__btn--primary { background: #fff; color: var(--ap-primary, #1677ff); border-color: #fff; }
.ap-portal-setting-preview__notice {
	background: #fff;
	border: 1px solid #f0f0f0;
	border-radius: 8px;
	padding: 10px 12px;
	margin-bottom: 10px;
}
.ap-portal-setting-preview__notice-item {
	font-size: 11px;
	line-height: 1.5;
	color: rgba(0, 0, 0, 0.65);
	padding: 3px 0;
}
.ap-portal-setting-preview__notice-item .layui-icon { font-size: 11px; color: #52c41a; margin-right: 4px; }
.ap-portal-setting-preview__notice-more,
.ap-portal-setting-preview__notice-empty {
	font-size: 11px;
	color: rgba(0, 0, 0, 0.45);
	padding-top: 4px;
}
.ap-portal-setting-preview__footer {
	font-size: 11px;
	text-align: center;
	color: rgba(0, 0, 0, 0.45);
}
.ap-portal-setting-link-card { padding: 16px; }
.ap-portal-setting-link-card__head { font-size: 14px; font-weight: 600; margin-bottom: 6px; }
.ap-portal-setting-link-card__head .layui-icon { margin-right: 6px; color: var(--ap-primary); }
.ap-portal-setting-link-card__desc { margin: 0 0 12px; font-size: 12px; color: rgba(0, 0, 0, 0.55); line-height: 1.5; }
.ap-portal-setting-link-row { display: flex; gap: 8px; margin-bottom: 12px; }
.ap-portal-setting-link-row .layui-input { flex: 1; font-size: 12px; background: #fafafa; }
.ap-portal-setting-link-list { list-style: none; margin: 0; padding: 0; }
.ap-portal-setting-link-list li {
	padding: 8px 0;
	border-bottom: 1px dashed #f0f0f0;
	font-size: 12px;
}
.ap-portal-setting-link-list li:last-child { border-bottom: 0; }
.ap-portal-setting-link-list strong { display: block; color: rgba(0, 0, 0, 0.88); margin-bottom: 2px; }
.ap-portal-setting-link-list span { color: rgba(0, 0, 0, 0.45); }
.ap-portal-setting-guide { padding: 16px; }
.ap-portal-setting-guide__head { font-size: 14px; font-weight: 600; margin-bottom: 12px; }
.ap-portal-setting-guide__head .layui-icon { margin-right: 6px; color: var(--ap-primary); }
.ap-portal-setting-guide__steps { list-style: none; margin: 0; padding: 0; }
.ap-portal-setting-guide__steps li {
	display: flex;
	gap: 10px;
	padding: 10px 0;
	border-bottom: 1px dashed #f0f0f0;
}
.ap-portal-setting-guide__steps li:last-child { border-bottom: 0; }
.ap-portal-setting-guide__steps li.is-done .ap-portal-setting-guide__num { background: #f6ffed; color: #389e0d; }
.ap-portal-setting-guide__num {
	flex-shrink: 0;
	width: 22px;
	height: 22px;
	border-radius: 50%;
	background: #f0f5ff;
	color: var(--ap-primary);
	font-size: 12px;
	font-weight: 600;
	display: flex;
	align-items: center;
	justify-content: center;
}
.ap-portal-setting-guide__steps strong { display: block; font-size: 13px; margin-bottom: 2px; }
.ap-portal-setting-guide__steps span { font-size: 12px; color: rgba(0, 0, 0, 0.45); }
.pro-btn.is-loading { opacity: 0.7; pointer-events: none; }

/* 项目验收 · 评鉴合并视图 */
.ap-unified-page .pro-page-header-desc { max-width: 640px; }
.ap-unified-filter-card { margin-bottom: 16px; padding: 16px 18px; overflow: hidden; }
.ap-unified-filter { display: flex; flex-wrap: wrap; align-items: flex-end; gap: 16px; justify-content: space-between; }
.ap-unified-filter__field label {
	display: block;
	font-size: 13px;
	font-weight: 500;
	margin-bottom: 8px;
	color: rgba(0, 0, 0, 0.88);
}
.ap-unified-filter__input-row { display: flex; flex-wrap: wrap; gap: 10px; align-items: center; }
.ap-unified-filter__input-row .layui-input {
	width: 200px;
	height: 36px;
	border-radius: 8px;
}
.ap-unified-project-chip {
	display: flex;
	align-items: center;
	flex-wrap: wrap;
	gap: 8px 12px;
	padding: 10px 14px;
	border-radius: 10px;
	background: linear-gradient(135deg, #f0f5ff 0%, #f6ffed 100%);
	border: 1px solid #d6e4ff;
	font-size: 13px;
	color: rgba(0, 0, 0, 0.65);
}
.ap-unified-project-chip .layui-icon { color: var(--ap-primary); }
.ap-unified-stat-row { grid-template-columns: repeat(4, 1fr); margin-bottom: 16px; }
.ap-unified-stat-row--hub { grid-template-columns: repeat(2, 1fr); max-width: 480px; }
@media (max-width: 960px) { .ap-unified-stat-row { grid-template-columns: repeat(2, 1fr); } }
@media (max-width: 480px) { .ap-unified-stat-row { grid-template-columns: 1fr; } }
.ap-unified-layout {
	display: grid;
	grid-template-columns: minmax(0, 1fr) 280px;
	gap: 16px;
	align-items: start;
}
.ap-unified-layout--hub { grid-template-columns: minmax(0, 1fr) 300px; }
@media (max-width: 1100px) {
	.ap-unified-layout,
	.ap-unified-layout--hub { grid-template-columns: 1fr; }
}
.ap-unified-main { display: flex; flex-direction: column; gap: 16px; }
.ap-unified-card-head {
	display: flex;
	align-items: center;
	justify-content: space-between;
	flex-wrap: wrap;
	gap: 8px;
	padding: 14px 18px;
	border-bottom: 1px solid var(--ap-border, #f0f0f0);
}
.ap-unified-card-head h3 {
	margin: 0;
	font-size: 15px;
	font-weight: 600;
	color: rgba(0, 0, 0, 0.88);
}
.ap-unified-card-head h3 .layui-icon { margin-right: 6px; color: var(--ap-primary); }
.ap-unified-card-head-hint { font-size: 12px; color: rgba(0, 0, 0, 0.45); font-weight: 400; }
.ap-unified-timeline { padding: 16px 18px 20px; }
.ap-unified-timeline-item {
	display: flex;
	gap: 14px;
	padding-bottom: 18px;
}
.ap-unified-timeline-item:last-child { padding-bottom: 0; }
.ap-unified-timeline-item__rail {
	display: flex;
	flex-direction: column;
	align-items: center;
	width: 32px;
	flex-shrink: 0;
}
.ap-unified-timeline-item__dot {
	width: 32px;
	height: 32px;
	border-radius: 50%;
	display: flex;
	align-items: center;
	justify-content: center;
	font-size: 14px;
	background: #f5f5f5;
	color: rgba(0, 0, 0, 0.45);
}
.ap-unified-timeline-item--blue .ap-unified-timeline-item__dot { background: #e6f4ff; color: var(--ap-primary); }
.ap-unified-timeline-item--gold .ap-unified-timeline-item__dot { background: #fffbe6; color: #d48806; }
.ap-unified-timeline-item--green .ap-unified-timeline-item__dot { background: #f6ffed; color: #389e0d; }
.ap-unified-timeline-item__line {
	flex: 1;
	width: 2px;
	min-height: 12px;
	margin-top: 4px;
	background: #f0f0f0;
}
.ap-unified-timeline-item:last-child .ap-unified-timeline-item__line { display: none; }
.ap-unified-timeline-item__body { flex: 1; min-width: 0; padding-top: 2px; }
.ap-unified-timeline-item__top {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 8px;
	flex-wrap: wrap;
	margin-bottom: 6px;
}
.ap-unified-timeline-item__time { font-size: 12px; color: rgba(0, 0, 0, 0.45); }
.ap-unified-timeline-item__title {
	font-size: 14px;
	font-weight: 600;
	color: rgba(0, 0, 0, 0.88);
	line-height: 1.4;
}
.ap-unified-timeline-item__sub {
	margin-top: 4px;
	font-size: 12px;
	color: rgba(0, 0, 0, 0.55);
}
.ap-unified-timeline-item__link {
	display: inline-flex;
	align-items: center;
	gap: 2px;
	margin-top: 8px;
	font-size: 12px;
}
.ap-unified-case-list { padding: 0 18px 16px; }
.ap-unified-case-row {
	display: flex;
	align-items: flex-start;
	justify-content: space-between;
	gap: 16px;
	padding: 14px 0;
	border-bottom: 1px solid #f5f5f5;
}
.ap-unified-case-row:last-child { border-bottom: 0; }
.ap-unified-case-row__top {
	display: flex;
	align-items: center;
	flex-wrap: wrap;
	gap: 8px;
	margin-bottom: 6px;
}
.ap-unified-case-row__title {
	margin: 0 0 8px;
	font-size: 14px;
	font-weight: 600;
	color: rgba(0, 0, 0, 0.88);
	line-height: 1.4;
}
.ap-unified-case-row__meta {
	display: flex;
	flex-wrap: wrap;
	gap: 10px 14px;
	font-size: 12px;
	color: rgba(0, 0, 0, 0.45);
}
.ap-unified-case-row__meta .layui-icon { font-size: 12px; margin-right: 2px; }
.ap-unified-case-row__side {
	flex-shrink: 0;
	text-align: right;
	display: flex;
	flex-direction: column;
	align-items: flex-end;
	gap: 8px;
}
.ap-unified-case-row__conclusion-label {
	display: block;
	font-size: 11px;
	color: rgba(0, 0, 0, 0.45);
	margin-bottom: 2px;
}
.ap-unified-case-row__conclusion strong { font-size: 14px; color: rgba(0, 0, 0, 0.88); }
.ap-unified-perf-list { padding: 12px 18px 16px; }
.ap-unified-perf-row {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 12px;
	padding: 10px 0;
	border-bottom: 1px dashed #f0f0f0;
	font-size: 13px;
}
.ap-unified-perf-row:last-child { border-bottom: 0; }
.ap-unified-project-list { padding: 12px 16px 16px; display: flex; flex-direction: column; gap: 10px; }
.ap-unified-project-card {
	display: flex;
	align-items: center;
	gap: 12px;
	padding: 14px 16px;
	border: 1px solid #f0f0f0;
	border-radius: 10px;
	background: #fff;
	text-decoration: none;
	color: inherit;
	transition: border-color 0.15s, box-shadow 0.15s;
}
.ap-unified-project-card:hover {
	border-color: rgba(22, 119, 255, 0.35);
	box-shadow: 0 4px 12px rgba(22, 119, 255, 0.08);
}
.ap-unified-project-card__icon {
	width: 40px;
	height: 40px;
	border-radius: 10px;
	background: #f0f5ff;
	color: var(--ap-primary);
	display: flex;
	align-items: center;
	justify-content: center;
	flex-shrink: 0;
}
.ap-unified-project-card__body { flex: 1; min-width: 0; }
.ap-unified-project-card__title {
	display: block;
	font-size: 14px;
	font-weight: 600;
	color: rgba(0, 0, 0, 0.88);
	margin-bottom: 4px;
}
.ap-unified-project-card__meta {
	display: flex;
	flex-wrap: wrap;
	gap: 10px;
	font-size: 12px;
	color: rgba(0, 0, 0, 0.45);
}
.ap-unified-project-card__arrow { color: rgba(0, 0, 0, 0.25); }
.ap-unified-empty {
	text-align: center;
	padding: 40px 20px;
	color: rgba(0, 0, 0, 0.45);
}
.ap-unified-empty--compact { padding: 28px 20px; }
.ap-unified-empty .layui-icon { font-size: 36px; display: block; margin-bottom: 10px; color: rgba(0, 0, 0, 0.12); }
.ap-unified-empty p { margin: 0 0 6px; font-size: 14px; color: rgba(0, 0, 0, 0.65); }
.ap-unified-empty span { font-size: 12px; line-height: 1.5; }
.ap-unified-empty .pro-btn { margin-top: 12px; }
.ap-unified-guide { padding: 16px; }
.ap-unified-guide__head { font-size: 14px; font-weight: 600; margin-bottom: 12px; }
.ap-unified-guide__head .layui-icon { margin-right: 6px; color: var(--ap-primary); }
.ap-unified-guide__steps { list-style: none; margin: 0; padding: 0; }
.ap-unified-guide__steps li {
	display: flex;
	gap: 10px;
	padding: 10px 0;
	border-bottom: 1px dashed #f0f0f0;
}
.ap-unified-guide__steps li:last-child { border-bottom: 0; }
.ap-unified-guide__num {
	flex-shrink: 0;
	width: 22px;
	height: 22px;
	border-radius: 50%;
	background: #f0f5ff;
	color: var(--ap-primary);
	font-size: 12px;
	font-weight: 600;
	display: flex;
	align-items: center;
	justify-content: center;
}
.ap-unified-guide__steps strong { display: block; font-size: 13px; margin-bottom: 2px; }
.ap-unified-guide__steps span { font-size: 12px; color: rgba(0, 0, 0, 0.45); }
.ap-unified-scene-list { list-style: none; margin: 0; padding: 0; }
.ap-unified-scene-list li { padding: 10px 0; border-bottom: 1px dashed #f0f0f0; font-size: 12px; }
.ap-unified-scene-list li:last-child { border-bottom: 0; }
.ap-unified-scene-list strong { display: block; font-size: 13px; margin-bottom: 2px; color: rgba(0, 0, 0, 0.88); }
.ap-unified-scene-list span { color: rgba(0, 0, 0, 0.45); }
.ap-unified-tip { padding: 16px; }
.ap-unified-tip__icon { font-size: 22px; color: var(--ap-primary); margin-bottom: 8px; }
.ap-unified-tip p { margin: 0; font-size: 12px; line-height: 1.65; color: rgba(0, 0, 0, 0.55); }
.ap-case-no {
	font-size: 12px;
	padding: 2px 8px;
	border-radius: 4px;
	background: #f5f5f5;
	color: rgba(0, 0, 0, 0.65);
}

/* 项目关联 — 案件列表 / 工作台 / 详情 */
.ap-case-page .ap-case-stat-row--project { grid-template-columns: repeat(3, 1fr); margin-bottom: 16px; }
.ap-case-layout {
	display: grid;
	grid-template-columns: minmax(0, 1fr) 280px;
	gap: 16px;
	align-items: start;
}
@media (max-width: 1100px) { .ap-case-layout { grid-template-columns: 1fr; } }
.ap-case-toolbar .ap-case-filters { display: flex; flex-wrap: wrap; gap: 8px; align-items: center; }
.ap-case-project-card { padding: 16px; }
.ap-case-project-card__head {
	font-size: 14px;
	font-weight: 600;
	margin-bottom: 8px;
}
.ap-case-project-card__head .layui-icon { margin-right: 6px; color: var(--ap-primary); }
.ap-case-project-card__desc {
	font-size: 12px;
	color: rgba(0, 0, 0, 0.45);
	line-height: 1.6;
	margin: 0 0 12px;
}
.ap-case-project-recent { margin-top: 16px; padding-top: 12px; border-top: 1px dashed #f0f0f0; }
.ap-case-project-recent__label {
	font-size: 12px;
	color: rgba(0, 0, 0, 0.45);
	margin-bottom: 8px;
}
.ap-case-project-recent__item {
	display: flex;
	justify-content: space-between;
	align-items: center;
	padding: 8px 0;
	border-bottom: 1px dashed #f5f5f5;
	font-size: 13px;
	color: rgba(0, 0, 0, 0.88);
	text-decoration: none;
}
.ap-case-project-recent__item:last-child { border-bottom: 0; }
.ap-case-project-recent__item em {
	font-style: normal;
	font-size: 12px;
	color: rgba(0, 0, 0, 0.45);
}
.ap-case-project-chip {
	display: inline-flex;
	align-items: center;
	gap: 8px;
	flex-wrap: wrap;
}
.ap-case-project-panel__head {
	display: flex;
	justify-content: space-between;
	align-items: flex-start;
	gap: 12px;
	margin-bottom: 8px;
}
.ap-case-project-panel__current { margin: 4px 0 0; font-size: 14px; }
.ap-case-project-panel__actions { display: flex; flex-wrap: wrap; gap: 8px; }
.pro-link-btn {
	border: 0;
	background: none;
	padding: 0;
	cursor: pointer;
	font-size: inherit;
}
.ap-hub-project-panel {
	padding: 18px 20px;
	margin-bottom: 16px;
}
.ap-hub-project-panel__head {
	display: flex;
	justify-content: space-between;
	align-items: flex-start;
	gap: 16px;
	margin-bottom: 16px;
}
.ap-hub-project-panel__head h3 {
	margin: 0 0 4px;
	font-size: 15px;
	font-weight: 600;
}
.ap-hub-project-panel__head h3 .layui-icon { margin-right: 6px; color: var(--ap-primary); }
.ap-hub-project-panel__head p {
	margin: 0;
	font-size: 12px;
	color: rgba(0, 0, 0, 0.45);
	max-width: 520px;
	line-height: 1.6;
}
.ap-hub-project-panel__stats {
	display: flex;
	flex-wrap: wrap;
	gap: 24px;
	margin-bottom: 14px;
}
.ap-hub-project-panel__stat strong {
	display: block;
	font-size: 22px;
	line-height: 1.2;
	color: rgba(0, 0, 0, 0.88);
}
.ap-hub-project-panel__stat span {
	font-size: 12px;
	color: rgba(0, 0, 0, 0.45);
}
.ap-hub-project-panel__stat--warn strong { color: #d48806; }
.ap-hub-project-panel__recent-label {
	display: block;
	font-size: 12px;
	color: rgba(0, 0, 0, 0.45);
	margin-bottom: 8px;
}
.ap-hub-project-panel__recent-list {
	display: flex;
	flex-wrap: wrap;
	gap: 8px;
}
.ap-hub-project-chip {
	display: inline-flex;
	align-items: center;
	gap: 6px;
	padding: 4px 10px;
	border-radius: 999px;
	background: #f5f5f5;
	font-size: 12px;
	color: rgba(0, 0, 0, 0.88);
	text-decoration: none;
}
.ap-hub-project-chip em {
	font-style: normal;
	color: rgba(0, 0, 0, 0.45);
}
.ap-hub-project-panel__foot {
	margin-top: 12px;
	padding-top: 12px;
	border-top: 1px dashed #f0f0f0;
	font-size: 12px;
	color: rgba(0, 0, 0, 0.45);
}
.ap-text-muted { color: rgba(0, 0, 0, 0.35); }

/* 案件详情页 */
.ap-case-view-page { padding-bottom: 24px; }
.ap-case-view-crumb {
	display: flex;
	align-items: center;
	flex-wrap: wrap;
	gap: 6px;
	font-size: 13px;
	color: rgba(0, 0, 0, 0.45);
	margin-bottom: 12px;
}
.ap-case-view-crumb a { color: rgba(0, 0, 0, 0.65); text-decoration: none; }
.ap-case-view-crumb a:hover { color: var(--ap-primary); }
.ap-case-view-crumb em { font-style: normal; color: rgba(0, 0, 0, 0.88); }
.ap-case-view-hero {
	display: flex;
	justify-content: space-between;
	align-items: flex-start;
	gap: 20px;
	padding: 20px 22px;
	margin-bottom: 16px;
	background: linear-gradient(135deg, #e6f4ff 0%, #f0f5ff 45%, #fff 100%);
	border: 1px solid var(--ap-border);
	border-radius: 10px;
	box-shadow: 0 1px 2px rgba(0, 0, 0, 0.04);
}
@media (max-width: 960px) {
	.ap-case-view-hero { flex-direction: column; }
}
.ap-case-view-hero__tags {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 8px;
	margin-bottom: 10px;
}
.ap-case-view-hero__title {
	margin: 0 0 8px;
	font-size: 22px;
	font-weight: 600;
	line-height: 1.35;
	color: rgba(0, 0, 0, 0.88);
}
.ap-case-view-hero__sub {
	display: flex;
	flex-wrap: wrap;
	gap: 14px;
	margin: 0;
	font-size: 13px;
	color: rgba(0, 0, 0, 0.55);
}
.ap-case-view-hero__sub span { display: inline-flex; align-items: center; gap: 4px; }
.ap-case-view-hero__sub .layui-icon { font-size: 14px; color: rgba(0, 0, 0, 0.35); }
.ap-case-view-hero__actions {
	display: flex;
	flex-wrap: wrap;
	gap: 8px;
	flex-shrink: 0;
}
.ap-case-view-stat-row { grid-template-columns: repeat(4, 1fr); }
.ap-case-view-stat-row .ap-stat-value--sm { font-size: 22px; }
@media (max-width: 768px) { .ap-case-view-stat-row { grid-template-columns: repeat(2, 1fr); } }
.ap-case-view-tabs-card {
	border-radius: 10px;
	overflow: hidden;
	box-shadow: 0 1px 2px rgba(0, 0, 0, 0.04);
}
.ap-case-detail-tabs--pro { margin: 0; }
.ap-case-detail-tabs--pro > .layui-tab-title {
	display: flex;
	flex-wrap: nowrap;
	overflow-x: auto;
	padding: 0 12px;
	background: #fafafa;
	border-bottom: 1px solid var(--ap-border);
}
.ap-case-detail-tabs--pro > .layui-tab-title li {
	flex-shrink: 0;
	display: inline-flex;
	align-items: center;
	gap: 4px;
	font-size: 13px;
	padding: 0 14px;
	line-height: 44px;
}
.ap-case-detail-tabs--pro > .layui-tab-title li .layui-icon { font-size: 14px; }
.ap-case-detail-tabs--pro > .layui-tab-title .layui-this {
	color: var(--ap-primary);
	font-weight: 600;
}
.ap-tab-count {
	display: inline-block;
	min-width: 18px;
	padding: 0 5px;
	margin-left: 2px;
	font-style: normal;
	font-size: 11px;
	line-height: 18px;
	text-align: center;
	border-radius: 9px;
	background: #e6f4ff;
	color: var(--ap-primary);
	font-weight: 600;
}
.ap-case-tab-content { padding: 20px 22px 24px; }
.ap-case-view-overview {
	display: grid;
	grid-template-columns: minmax(0, 1fr) 300px;
	gap: 20px;
	align-items: start;
}
.ap-case-view-overview--single { grid-template-columns: 1fr; max-width: 720px; }
@media (max-width: 1100px) {
	.ap-case-view-overview { grid-template-columns: 1fr; }
}
.ap-case-view-section {
	background: #fafafa;
	border: 1px solid #f0f0f0;
	border-radius: 8px;
	padding: 16px 18px;
	margin-bottom: 16px;
}
.ap-case-view-section:last-child { margin-bottom: 0; }
.ap-case-view-section--accent {
	background: linear-gradient(180deg, #f0f5ff 0%, #fafafa 100%);
	border-color: #d6e4ff;
}
.ap-case-view-section__head {
	display: flex;
	align-items: center;
	gap: 6px;
	font-size: 14px;
	font-weight: 600;
	color: rgba(0, 0, 0, 0.88);
	margin-bottom: 14px;
	padding-bottom: 10px;
	border-bottom: 1px dashed #e8e8e8;
}
.ap-case-view-section__head .layui-icon { color: var(--ap-primary); }
.ap-case-view-section__head--toolbar {
	justify-content: space-between;
	flex-wrap: wrap;
	gap: 8px;
}
.ap-case-kv-grid {
	display: grid;
	grid-template-columns: repeat(2, 1fr);
	gap: 14px 24px;
	margin: 0;
}
@media (max-width: 640px) { .ap-case-kv-grid { grid-template-columns: 1fr; } }
.ap-case-kv-grid > div { min-width: 0; }
.ap-case-kv-grid dt,
.ap-case-kv-list dt {
	font-size: 12px;
	color: rgba(0, 0, 0, 0.45);
	margin-bottom: 4px;
}
.ap-case-kv-grid dd,
.ap-case-kv-list dd {
	margin: 0;
	font-size: 14px;
	color: rgba(0, 0, 0, 0.88);
	word-break: break-word;
}
.ap-case-kv-list > div { padding: 8px 0; border-bottom: 1px dashed #f0f0f0; }
.ap-case-kv-list > div:last-child { border-bottom: 0; }
.ap-case-view-summary {
	font-size: 14px;
	line-height: 1.75;
	color: rgba(0, 0, 0, 0.65);
	white-space: pre-wrap;
}
.ap-case-project-link-card {
	display: flex;
	flex-direction: column;
	gap: 10px;
}
.ap-case-project-link-card__name {
	font-size: 15px;
	font-weight: 600;
	color: var(--ap-primary);
	text-decoration: none;
}
.ap-case-view-note { margin: 0 0 8px; font-size: 13px; line-height: 1.6; }
.ap-case-view-material-time {
	margin-left: auto;
	font-size: 12px;
	color: rgba(0, 0, 0, 0.45);
}
.ap-case-view-toolbar-btns {
	display: flex;
	flex-wrap: wrap;
	gap: 8px;
	margin-top: 12px;
}
.ap-case-inline-form .ms-form-grid {
	display: grid;
	grid-template-columns: repeat(2, 1fr);
	gap: 12px 16px;
	margin-bottom: 12px;
}
.ap-case-inline-form .ms-form-grid--3 { grid-template-columns: repeat(3, 1fr); }
@media (max-width: 900px) {
	.ap-case-inline-form .ms-form-grid--3 { grid-template-columns: repeat(2, 1fr); }
}
@media (max-width: 560px) {
	.ap-case-inline-form .ms-form-grid,
	.ap-case-inline-form .ms-form-grid--3 { grid-template-columns: 1fr; }
}
.ap-case-inline-form .ms-form-item label {
	display: block;
	font-size: 12px;
	color: rgba(0, 0, 0, 0.55);
	margin-bottom: 6px;
}
.ap-case-inline-form .ms-form-item--full { grid-column: 1 / -1; }
.ap-case-member-grid {
	display: grid;
	grid-template-columns: repeat(auto-fill, minmax(200px, 1fr));
	gap: 12px;
}
.ap-case-member-card {
	display: flex;
	align-items: center;
	gap: 12px;
	padding: 12px 14px;
	background: #fff;
	border: 1px solid #f0f0f0;
	border-radius: 8px;
}
.ap-case-member-card__avatar {
	width: 40px;
	height: 40px;
	border-radius: 50%;
	background: #e6f4ff;
	color: var(--ap-primary);
	display: flex;
	align-items: center;
	justify-content: center;
	font-size: 20px;
	flex-shrink: 0;
}
.ap-case-member-card__body strong { display: block; font-size: 14px; margin-bottom: 2px; }
.ap-case-member-card__body span { font-size: 12px; color: rgba(0, 0, 0, 0.45); }
.ap-case-view-finance-grid {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: 16px;
}
@media (max-width: 960px) { .ap-case-view-finance-grid { grid-template-columns: 1fr; } }
.ap-case-view-finance-line { margin: 0 0 8px; font-size: 14px; color: rgba(0, 0, 0, 0.65); }
.ap-case-table { margin: 0; }
.ap-case-opinion-text { max-width: 360px; line-height: 1.6; }
.ap-case-empty {
	text-align: center;
	padding: 40px 20px;
	color: rgba(0, 0, 0, 0.45);
}
.ap-case-empty--compact { padding: 24px 16px; }
.ap-case-empty .layui-icon { font-size: 36px; display: block; margin-bottom: 10px; color: rgba(0, 0, 0, 0.12); }
.ap-case-empty p { margin: 0 0 6px; font-size: 14px; color: rgba(0, 0, 0, 0.65); }
.ap-case-empty span { font-size: 12px; line-height: 1.5; }
.ap-case-log-timeline { padding: 4px 0; }
.ap-case-log-item {
	display: flex;
	gap: 12px;
	padding-bottom: 16px;
}
.ap-case-log-item:last-child { padding-bottom: 0; }
.ap-case-log-item__rail { width: 12px; flex-shrink: 0; position: relative; }
.ap-case-log-item__dot {
	display: block;
	width: 8px;
	height: 8px;
	margin-top: 6px;
	margin-left: 2px;
	border-radius: 50%;
	background: var(--ap-primary);
	box-shadow: 0 0 0 3px #e6f4ff;
}
.ap-case-log-item__body { flex: 1; min-width: 0; }
.ap-case-log-item__top {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 12px;
	flex-wrap: wrap;
}
.ap-case-log-item__top time { font-size: 12px; color: rgba(0, 0, 0, 0.45); }
.ap-stage-cell--block { display: inline-block; }
