﻿/* ============================================================
   KFMap 气体地图模块样式 - 复刻目标站 B2B 数据平台风格
   ============================================================ */

/* ===== Hero 标题区 ===== */
.kfmap-hero {
	background:#fff;
	border-bottom:1px solid #eee;
	padding:28px 0 20px;
	margin-bottom:0;
}
.kfmap-hero-inner {
	max-width:1200px;
	margin:0 auto;
	padding:0 20px;
	display:flex;
	justify-content:space-between;
	align-items:center;
}
.kfmap-hero-title {
	font-size:20px;
	font-weight:700;
	color:#1a1a1a;
}
.kfmap-hero-sub {
	font-size:13px;
	font-weight:400;
	color:#999;
	margin-left:12px;
}
.kfmap-hero-actions {
	display:flex;
	gap:10px;
}
.kfmap-hero-btn {
	display:inline-flex;
	align-items:center;
	padding:8px 20px;
	font-size:13px;
	border-radius:4px;
	text-decoration:none;
	transition:all .2s;
	border:1px solid #d9d9d9;
	color:#555;
	background:#fff;
}
.kfmap-hero-btn:hover {
	border-color:#06c;
	color:#06c;
}
.kfmap-hero-btn-primary {
	background:#06c;
	color:#fff;
	border-color:#06c;
}
.kfmap-hero-btn-primary:hover {
	background:#0052a3;
	border-color:#0052a3;
	color:#fff;
}

/* ===== 分类导航 胶囊式 ===== */
.kfmap-catnav {
	display:flex;
	flex-wrap:wrap;
	gap:8px;
	padding:16px 0;
}
.kfmap-cat-item {
	display:inline-flex;
	align-items:center;
	gap:6px;
	padding:7px 16px;
	font-size:13px;
	color:#666;
	background:#f5f6f8;
	border-radius:20px;
	text-decoration:none;
	transition:all .25s;
	border:1px solid transparent;
}
.kfmap-cat-item:hover {
	color:#06c;
	background:#e8f3ff;
	border-color:#b3d4ff;
}
.kfmap-cat-item.kfmap-cat-active {
	color:#fff;
	background:#06c;
	border-color:#06c;
}
.kfmap-cat-cnt {
	font-size:11px;
	background:rgba(0,0,0,.06);
	padding:1px 7px;
	border-radius:10px;
	min-width:18px;
	text-align:center;
}
.kfmap-cat-active .kfmap-cat-cnt {
	background:rgba(255,255,255,.25);
}

/* ===== 双栏布局 ===== */
.kfmap-layout {
	display:flex;
	gap:20px;
	padding:20px 0;
}

/* ===== 左侧栏 ===== */
.kfmap-sidebar {
	width:200px;
	flex-shrink:0;
	align-self:flex-start;
	position:sticky;
	top:10px;
}
.kfmap-sidebox {
	background:#fff;
	border-radius:6px;
	box-shadow:0 1px 3px rgba(0,0,0,.06);
	overflow:hidden;
	margin-bottom:16px;
}
.kfmap-sidebox-hd {
	padding:14px 16px 10px;
	font-size:14px;
	font-weight:600;
	color:#333;
	border-bottom:1px solid #f0f0f0;
}
.kfmap-sidebox-bd {
	padding:6px 0;
}
.kfmap-side-link {
	display:flex;
	justify-content:space-between;
	align-items:center;
	padding:9px 16px;
	font-size:13px;
	color:#555;
	text-decoration:none;
	border-left:3px solid transparent;
	transition:all .2s;
}
.kfmap-side-link:hover {
	background:#f5f8ff;
	color:#06c;
}
.kfmap-side-link.active {
	background:#f0f5ff;
	color:#06c;
	border-left-color:#06c;
	font-weight:600;
}
.kfmap-side-link em {
	font-size:11px;
	color:#bbb;
	background:#f5f5f5;
	padding:1px 7px;
	border-radius:10px;
	font-style:normal;
	min-width:18px;
	text-align:center;
}
.kfmap-side-link.active em {
	background:#e6f7ff;
	color:#06c;
}
.kfmap-desc-text {
	padding:12px 16px;
	font-size:12px;
	color:#999;
	line-height:1.7;
}
.kfmap-desc-text p {
	margin:0 0 6px;
}
.kfmap-desc-text p:last-child {
	margin-bottom:0;
}

/* ===== 右侧主内容 ===== */
.kfmap-main {
	flex:1;
	min-width:0;
}

/* ===== 统计卡片行 ===== */
.kfmap-stats-row {
	display:flex;
	gap:16px;
	margin-bottom:20px;
}
.kfmap-stat-card {
	flex:1;
	background:#fff;
	border-radius:8px;
	padding:20px 24px;
	display:flex;
	align-items:center;
	gap:16px;
	box-shadow:0 1px 4px rgba(0,0,0,.06);
	transition:transform .2s, box-shadow .2s;
}
.kfmap-stat-card:hover {
	transform:translateY(-2px);
	box-shadow:0 4px 16px rgba(0,0,0,.08);
}
.kfmap-stat-icon {
	width:52px;
	height:52px;
	border-radius:12px;
	display:flex;
	align-items:center;
	justify-content:center;
	flex-shrink:0;
}
.kfmap-stat-icon-blue {
	background:#e6f0ff;
	color:#06c;
}
.kfmap-stat-icon-green {
	background:#e6f9ee;
	color:#07c160;
}
.kfmap-stat-icon-orange {
	background:#fff3e6;
	color:#fa8c16;
}
.kfmap-stat-icon-purple {
	background:#f3e6ff;
	color:#722ed1;
}
.kfmap-stat-num {
	font-size:30px;
	font-weight:700;
	color:#1a1a1a;
	line-height:1.2;
}
.kfmap-stat-label {
	font-size:12px;
	color:#999;
	margin-top:2px;
}

/* ===== 面板通用 ===== */
.kfmap-panel {
	background:#fff;
	border-radius:8px;
	box-shadow:0 1px 4px rgba(0,0,0,.06);
	margin-bottom:20px;
	overflow:hidden;
}
.kfmap-panel-hd {
	display:flex;
	justify-content:space-between;
	align-items:center;
	padding:18px 24px;
	border-bottom:1px solid #f0f0f0;
}
.kfmap-panel-title {
	font-size:15px;
	font-weight:600;
	color:#333;
	display:flex;
	align-items:center;
	gap:8px;
}
.kfmap-dot {
	width:4px;
	height:16px;
	border-radius:2px;
	display:inline-block;
	flex-shrink:0;
}
.kfmap-dot-blue { background:#06c; }
.kfmap-dot-green { background:#07c160; }
.kfmap-panel-extra {
	font-size:12px;
	color:#999;
}
.kfmap-panel-more {
	font-size:12px;
	color:#06c;
	text-decoration:none;
}
.kfmap-panel-more:hover {
	text-decoration:underline;
}
.kfmap-panel-ft {
	padding:12px 24px;
	font-size:12px;
	color:#999;
	background:#fafafa;
	border-top:1px solid #f0f0f0;
}
.kfmap-panel-ft strong {
	color:#333;
}

/* ===== 省份网格 ===== */
.kfmap-province-grid {
	display:grid;
	grid-template-columns:repeat(12, 1fr);
	gap:10px;
	padding:16px 20px;
}
.kfmap-province-card {
	display:flex;
	flex-direction:column;
	align-items:center;
	justify-content:center;
	padding:14px 6px 12px;
	border-radius:8px;
	text-decoration:none;
	transition:all .25s;
	border:1px solid transparent;
	min-height:72px;
}
.kfmap-province-card:hover {
	transform:translateY(-3px);
	box-shadow:0 6px 18px rgba(0,0,0,.1);
	border-color:#06c;
}
.kfmap-province-name {
	font-size:13px;
	color:#555;
	line-height:1.3;
	margin-bottom:4px;
	font-weight:500;
}
.kfmap-province-count {
	font-size:24px;
	font-weight:700;
	line-height:1.2;
}
.kfmap-province-tag {
	font-size:10px;
	margin-top:1px;
}

/* 颜色层级 (绿色系 - 对标目标站的分布色) */
.kfmap-pc-0 { background:#f5f6f8; }
.kfmap-pc-0 .kfmap-province-count { color:#bbb; }

.kfmap-pc-1 { background:#e8f5e9; }
.kfmap-pc-1 .kfmap-province-count { color:#43a047; }

.kfmap-pc-2 { background:#c8e6c9; }
.kfmap-pc-2 .kfmap-province-count { color:#2e7d32; }

.kfmap-pc-3 { background:#a5d6a7; }
.kfmap-pc-3 .kfmap-province-count { color:#1b5e20; }
.kfmap-pc-3 .kfmap-province-name { color:#444; }

.kfmap-pc-4 { background:#66bb6a; }
.kfmap-pc-4 .kfmap-province-count { color:#fff; }
.kfmap-pc-4 .kfmap-province-name { color:rgba(255,255,255,.9); }
.kfmap-pc-4 .kfmap-province-tag { color:rgba(255,255,255,.7); }

.kfmap-pc-5 { background:#2e7d32; }
.kfmap-pc-5 .kfmap-province-count { color:#fff; }
.kfmap-pc-5 .kfmap-province-name { color:rgba(255,255,255,.9); }
.kfmap-pc-5 .kfmap-province-tag { color:rgba(255,255,255,.7); }

/* 图例条 */
.kfmap-legend {
	display:flex;
	align-items:center;
	gap:10px;
	padding:12px 20px 16px;
	font-size:11px;
	color:#999;
	border-top:1px dashed #eee;
	margin:0 20px;
}
.kfmap-legend-grad {
	display:flex;
	height:8px;
	border-radius:4px;
	overflow:hidden;
	flex:1;
	max-width:180px;
}
.kfmap-legend-grad span {
	flex:1;
}
.kfmap-legend-g0 { background:#f5f6f8; }
.kfmap-legend-g1 { background:#e8f5e9; }
.kfmap-legend-g2 { background:#c8e6c9; }
.kfmap-legend-g3 { background:#a5d6a7; }
.kfmap-legend-g4 { background:#66bb6a; }
.kfmap-legend-g5 { background:#2e7d32; }
.kfmap-legend-note {
	margin-left:auto;
}

/* ===== 数据表格 ===== */
.kfmap-table-wrap {
	overflow-x:auto;
	-webkit-overflow-scrolling:touch;
}
.kfmap-table {
	width:100%;
	border-collapse:collapse;
	font-size:13px;
}
.kfmap-table thead {
	background:#f7f8fa;
}
.kfmap-table th {
	padding:12px 16px;
	text-align:left;
	font-weight:600;
	color:#555;
	border-bottom:2px solid #e8e8e8;
	white-space:nowrap;
}
.kfmap-table td {
	padding:12px 16px;
	border-bottom:1px solid #f0f0f0;
	color:#333;
}
.kfmap-table tbody tr:hover {
	background:#f8f9fb;
}
.kfmap-table tbody tr:nth-child(even) {
	background:#fafbfc;
}
.kfmap-table tbody tr:nth-child(even):hover {
	background:#f0f2f5;
}
.kfmap-td-title {
	max-width:300px;
	overflow:hidden;
	text-overflow:ellipsis;
	white-space:nowrap;
}
.kfmap-td-title a {
	color:#333;
	text-decoration:none;
}
.kfmap-td-title a:hover {
	color:#06c;
}
.kfmap-td-tag {
	display:inline-block;
	padding:2px 10px;
	background:#f0f5ff;
	color:#06c;
	border-radius:3px;
	font-size:12px;
	font-weight:500;
}
.kfmap-td-badge {
	display:inline-block;
	padding:2px 10px;
	background:#f5f5f5;
	color:#888;
	border-radius:3px;
	font-size:12px;
}
.kfmap-td-mono {
	font-family:'SF Mono', 'Menlo', 'Consolas', monospace;
	font-size:12px;
	color:#999;
}
.kfmap-td-capacity {
	font-weight:700;
	color:#2875e8;
	font-family:'SF Mono', 'Menlo', 'Consolas', monospace;
}
.kfmap-td-link {
	color:#06c;
	text-decoration:none;
	font-size:12px;
}
.kfmap-td-link:hover {
	text-decoration:underline;
}
.kfmap-td-empty {
	text-align:center;
	color:#bbb;
	padding:40px 0 !important;
}

/* ===== 标题栏 ===== */
.kfmap-head-bar {
	display:flex;
	align-items:center;
	padding:18px 0 14px;
	gap:12px;
}
.kfmap-head-title {
	font-size:16px;
	font-weight:600;
	color:#333;
	flex-shrink:0;
}
.kfmap-head-line {
	flex:1;
	height:1px;
	background:#eee;
}
.kfmap-head-more {
	font-size:12px;
	color:#999;
	text-decoration:none;
	flex-shrink:0;
}
.kfmap-head-more:hover {
	color:#06c;
}

/* ===== 卡片网格 ===== */
.kfmap-card-grid {
	display:flex;
	flex-wrap:wrap;
	gap:16px;
	padding-bottom:16px;
}
.kfmap-card-grid .list-item {
	width:calc(25% - 12px);
	background:#fff;
	border-radius:8px;
	overflow:hidden;
	box-shadow:0 1px 4px rgba(0,0,0,.06);
	transition:all .3s;
}
.kfmap-card-grid .list-item:hover {
	transform:translateY(-4px);
	box-shadow:0 8px 24px rgba(0,0,0,.1);
}
.kfmap-card-grid .list-item img {
	width:100%;
	height:140px;
	object-fit:cover;
	display:block;
}
.kfmap-card-grid .list-info {
	padding:12px;
}
.kfmap-card-grid .list-title {
	font-size:13px;
	font-weight:600;
	color:#333;
	line-height:1.4;
	margin-bottom:6px;
	height:36px;
	overflow:hidden;
	display:-webkit-box;
	-webkit-line-clamp:2;
	-webkit-box-orient:vertical;
}
.kfmap-card-grid .list-desc {
	font-size:11px;
	color:#999;
	line-height:1.4;
	margin-top:4px;
}

/* ===== 悬停提示 ===== */
.kfmap-hover-tip {
	display:none;
	position:fixed;
	background:rgba(0,0,0,.85);
	color:#fff;
	padding:8px 12px;
	border-radius:6px;
	font-size:12px;
	z-index:9999;
	pointer-events:none;
}

/* ===== 列表页 ===== */
.kfmap-list-layout {
	display:flex;
	gap:16px;
	padding:16px 0;
}
.kfmap-list-main {
	flex:1;
	min-width:0;
}
.kfmap-list-sidebar {
	width:200px;
	flex-shrink:0;
	align-self:flex-start;
	position:sticky;
	top:10px;
}
.kfmap-list-sidebar .side {
	background:#fff;
	border-radius:6px;
	box-shadow:0 1px 3px rgba(0,0,0,.06);
}
.kfmap-list-sidebar .side ul {
	list-style:none;
	margin:0;
	padding:8px 0;
}
.kfmap-list-sidebar .side li {
	margin:0;
	border:none;
}
.kfmap-list-sidebar .side li a {
	display:flex;
	justify-content:space-between;
	align-items:center;
	padding:10px 16px;
	font-size:13px;
	color:#555;
	text-decoration:none;
	border-left:3px solid transparent;
	transition:all .2s;
}
.kfmap-list-sidebar .side li a:hover {
	background:#f5f8ff;
	color:#06c;
}
.kfmap-list-sidebar .side li.side_on a {
	background:#f0f5ff;
	color:#06c;
	border-left-color:#06c;
	font-weight:600;
}
.kfmap-list-sidebar .side li a em {
	font-size:11px;
	color:#bbb;
	background:#f5f5f5;
	padding:1px 7px;
	border-radius:10px;
	font-style:normal;
	min-width:18px;
	text-align:center;
}
.kfmap-list-sidebar .side li.side_on a em {
	background:#e6f7ff;
	color:#06c;
}

/* 列表筛选 */
.kfmap-list-filter {
	background:#fff;
	border-radius:6px;
	box-shadow:0 1px 3px rgba(0,0,0,.06);
	padding:16px 20px;
	margin-bottom:16px;
}
.sf-row {
	display:flex;
	flex-wrap:wrap;
	gap:12px;
	align-items:flex-start;
}
.sf-row .sort {
	display:flex;
	align-items:flex-start;
	font-size:13px;
}
.sf-row .sort-k {
	flex-shrink:0;
	color:#888;
	padding-top:4px;
	margin-right:8px;
}
.sf-row .sort-v ul {
	list-style:none;
	margin:0;
	padding:0;
	display:flex;
	flex-wrap:wrap;
	gap:6px;
}
.sf-row .sort-v li a {
	display:inline-block;
	padding:4px 12px;
	color:#555;
	text-decoration:none;
	border-radius:3px;
	transition:all .2s;
}
.sf-row .sort-v li a:hover {
	color:#06c;
	background:#f0f5ff;
}
.sf-row .sort-v li.on a {
	background:#06c;
	color:#fff;
}
.kfmap-list-grid {
	display:grid;
	grid-template-columns:repeat(3, 1fr);
	gap:16px;
	margin-bottom:16px;
}
.kfmap-list-item {
	background:#fff;
	border-radius:8px;
	overflow:hidden;
	box-shadow:0 1px 4px rgba(0,0,0,.06);
	transition:all .3s;
	text-decoration:none;
	color:inherit;
	display:block;
}
.kfmap-list-item:hover {
	transform:translateY(-3px);
	box-shadow:0 6px 20px rgba(0,0,0,.1);
}
.kfmap-list-item-img {
	position:relative;
	width:100%;
	height:160px;
	overflow:hidden;
	background:#f5f5f5;
}
.kfmap-list-item-img img {
	width:100%;
	height:100%;
	object-fit:cover;
	display:block;
}
.kfmap-list-item-placeholder {
	width:100%;
	height:100%;
	display:flex;
	align-items:center;
	justify-content:center;
	font-size:16px;
	color:#bbb;
	background:linear-gradient(135deg, #e8edf2 0%, #dce3ea 100%);
}
.kfmap-list-item-coord {
	position:absolute;
	bottom:8px;
	left:8px;
	background:rgba(0,0,0,.5);
	color:#fff;
	padding:2px 8px;
	border-radius:3px;
	font-size:11px;
}
.kfmap-list-item-body {
	padding:14px 16px;
}
.kfmap-list-item-title {
	font-size:14px;
	font-weight:600;
	color:#1a1a1a;
	margin:0 0 8px 0;
	line-height:1.4;
	height:38px;
	overflow:hidden;
	display:-webkit-box;
	-webkit-line-clamp:2;
	-webkit-box-orient:vertical;
}
.kfmap-list-item-meta {
	font-size:12px;
	color:#999;
	display:flex;
	justify-content:space-between;
	align-items:center;
}
.kfmap-list-item-cat {
	display:inline-block;
	padding:2px 10px;
	background:#f0f5ff;
	color:#06c;
	border-radius:3px;
	font-size:11px;
}
.kfmap-list-item-views {
	color:#bbb;
}
.kfmap-list-empty {
	background:#fff;
	border-radius:8px;
	padding:60px 20px;
	text-align:center;
	color:#999;
	font-size:14px;
	box-shadow:0 1px 3px rgba(0,0,0,.06);
}
.kfmap-list-empty svg {
	display:block;
	margin:0 auto 16px;
}
.kfmap-list-empty p {
	margin:0;
}
.kfmap-list-pages {
	padding:8px 0;
}

/* ===== 详情页 ===== */
.kfmap-detail-wrap {
	padding:0;
}
.kfmap-detail-card {
	background:#fff;
	border-radius:8px;
	box-shadow:0 1px 4px rgba(0,0,0,.06);
	margin-bottom:16px;
	overflow:hidden;
}
.kfmap-detail-header {
	padding:24px 28px;
}
.kfmap-detail-header h1 {
	font-size:22px;
	font-weight:700;
	color:#1a1a1a;
	margin:0 0 14px 0;
	line-height:1.5;
}
.kfmap-detail-meta {
	display:flex;
	flex-wrap:wrap;
	align-items:center;
	gap:6px 20px;
	font-size:13px;
	color:#888;
}
.kfmap-detail-meta-item {
	white-space:nowrap;
}
.kfmap-detail-meta-item a {
	color:#06c;
	text-decoration:none;
}
.kfmap-detail-meta-item a:hover {
	text-decoration:underline;
}
.kfmap-detail-badge {
	flex-shrink:0;
}
.kfmap-detail-section {
	padding:24px 28px;
}
.kfmap-detail-section-title {
	font-size:17px;
	font-weight:600;
	color:#333;
	margin:0 0 18px 0;
	display:flex;
	align-items:center;
	gap:8px;
}
.kfmap-detail-section-title .dot {
	width:4px;
	height:16px;
	background:#06c;
	border-radius:2px;
	display:inline-block;
	flex-shrink:0;
}
.kfmap-detail-section-title .kfmap-count {
	font-size:13px;
	font-weight:400;
	color:#999;
	margin-left:6px;
}
.kfmap-detail-section-title .kfmap-more {
	margin-left:auto;
	font-size:12px;
	color:#999;
	text-decoration:none;
}
.kfmap-detail-section-title .kfmap-more:hover {
	color:#06c;
}
.kfmap-map-box {
	width:100%;
	border-radius:6px;
	overflow:hidden;
	background:#f0f2f5;
}
.kfmap-map-md {
	height:320px;
}
.kfmap-related-grid {
	display:flex;
	flex-wrap:wrap;
	gap:16px;
}
.kfmap-related-grid > div {
	flex:0 0 auto;
}
.kfmap-content {
	line-height:1.8;
	color:#444;
	font-size:15px;
}
.kfmap-content img {
	max-width:100%;
	height:auto;
}
.kfmap-tags {
	padding:0;
}
.kfmap-tags a {
	display:inline-block;
	padding:4px 14px;
	margin:0 8px 8px 0;
	background:#f0f5ff;
	color:#06c;
	border-radius:20px;
	font-size:13px;
	text-decoration:none;
	transition:all .2s;
}
.kfmap-tags a:hover {
	background:#06c;
	color:#fff;
}

/* ===== Badge 标签 ===== */
.badge {
	display:inline-block;
	padding:2px 10px;
	border-radius:3px;
	font-size:12px;
	font-weight:500;
	line-height:1.6;
}
.badge-info { background:#e6f7ff; color:#1890ff; }
.badge-success { background:#f6ffed; color:#52c41a; }
.badge-warning { background:#fffbe6; color:#faad14; }
.badge-danger { background:#fff2f0; color:#ff4d4f; }
.badge-default { background:#f5f5f5; color:#999; }
.kfmap-badge {
	display:inline-block;
	padding:3px 12px;
	border-radius:3px;
	font-size:12px;
	font-weight:500;
}
.kfmap-badge-cat {
	background:#e6f7ff;
	color:#1890ff;
	border:1px solid #91d5ff;
}

/* ===== 搜索页 ===== */
.kfmap-search-layout {
	display:flex;
	gap:16px;
	padding:16px 0;
}
.kfmap-search-main {
	flex:1;
	min-width:0;
}
.kfmap-search-side {
	width:200px;
	flex-shrink:0;
	position:sticky;
	top:10px;
	align-self:flex-start;
}
.kfmap-search-side-card {
	background:#fff;
	border-radius:6px;
	box-shadow:0 1px 3px rgba(0,0,0,.06);
	margin-bottom:16px;
	overflow:hidden;
}
.kfmap-search-side-title {
	padding:14px 16px 10px;
	font-size:14px;
	font-weight:600;
	color:#333;
	border-bottom:1px solid #f0f0f0;
}
.kfmap-search-side-list ul {
	list-style:none;
	margin:0;
	padding:8px 0;
}
.kfmap-search-side-list li a {
	display:block;
	padding:8px 16px;
	font-size:13px;
	color:#555;
	text-decoration:none;
	transition:all .2s;
	overflow:hidden;
	text-overflow:ellipsis;
	white-space:nowrap;
}
.kfmap-search-side-list li a:hover {
	background:#f5f8ff;
	color:#06c;
}
.kfmap-search-filter {
	background:#fff;
	border-radius:6px;
	box-shadow:0 1px 3px rgba(0,0,0,.06);
	padding:16px 20px;
	margin-bottom:16px;
}
.kfmap-search-form-wrap {
	padding:16px 0;
}
.kfmap-search-form-card {
	background:#fff;
	border-radius:8px;
	box-shadow:0 1px 4px rgba(0,0,0,.06);
	padding:24px 28px;
}
.kfmap-search-form-title {
	font-size:17px;
	font-weight:600;
	color:#333;
	margin-bottom:20px;
	padding-bottom:14px;
	border-bottom:1px solid #f0f0f0;
	display:flex;
	align-items:center;
	gap:8px;
}
.kfmap-search-form-title .dot {
	width:4px;
	height:16px;
	background:#06c;
	border-radius:2px;
	display:inline-block;
	flex-shrink:0;
}
.kfmap-search-form-card .sf {
	display:flex;
	align-items:flex-start;
	margin-bottom:16px;
	font-size:13px;
}
.kfmap-search-form-card .sf-k {
	flex-shrink:0;
	width:60px;
	color:#888;
	padding-top:6px;
}
.kfmap-search-form-card .sf-v {
	flex:1;
}
.kfmap-search-form-card .sf-v .kw {
	width:50%;
	max-width:360px;
	padding:8px 12px;
	border:1px solid #d9d9d9;
	border-radius:4px;
	font-size:13px;
	transition:border-color .2s;
}
.kfmap-search-form-card .sf-v .kw:focus {
	border-color:#06c;
	outline:none;
	box-shadow:0 0 0 2px rgba(0,102,204,.1);
}
.kfmap-search-form-card .sf-v select {
	padding:6px 10px;
	border:1px solid #d9d9d9;
	border-radius:4px;
	font-size:13px;
}
.kfmap-search-form-card .btn-blue {
	padding:8px 28px;
}

/* ===== 响应式 ===== */
@media (max-width:960px) {
	.kfmap-layout,
	.kfmap-list-layout,
	.kfmap-search-layout {
		flex-direction:column;
	}
	.kfmap-sidebar,
	.kfmap-list-sidebar,
	.kfmap-search-side {
		width:100%;
		position:static;
	}
	.kfmap-stats-row {
		flex-wrap:wrap;
	}
	.kfmap-stat-card {
		flex:0 0 calc(50% - 8px);
	}
	.kfmap-province-grid {
		grid-template-columns:repeat(4, 1fr);
	}
	.kfmap-list-grid {
		grid-template-columns:repeat(2, 1fr);
	}
	.kfmap-hero-inner {
		flex-direction:column;
		gap:16px;
		align-items:flex-start;
	}
	.kfmap-card-grid .list-item {
		width:calc(33.33% - 11px);
	}
}

@media (max-width:600px) {
	.kfmap-stat-card {
		flex:0 0 100%;
	}
	.kfmap-province-grid {
		grid-template-columns:repeat(3, 1fr);
		gap:6px;
	}
	.kfmap-province-card {
		min-height:60px;
		padding:10px 4px 8px;
	}
	.kfmap-province-name {
		font-size:11px;
	}
	.kfmap-province-count {
		font-size:18px;
	}
	.kfmap-list-grid {
		grid-template-columns:1fr;
	}
	.kfmap-list-item-img {
		height:140px;
	}
	.kfmap-card-grid .list-item {
		width:calc(50% - 8px);
	}
	.kfmap-hero-title {
		font-size:17px;
	}
	.kfmap-panel-hd {
		padding:14px 16px;
	}
}

/* ===== 全图模态框 ===== */
.kfmap-modal {
	position:fixed;
	top:0;
	left:0;
	width:100%;
	height:100%;
	z-index:9999;
	display:flex;
	align-items:center;
	justify-content:center;
	opacity:0;
	transition:opacity .3s ease;
}
.kfmap-modal-show {
	opacity:1;
}
.kfmap-modal-overlay {
	position:absolute;
	top:0;
	left:0;
	width:100%;
	height:100%;
	background:rgba(0,0,0,.55);
}
.kfmap-modal-box {
	position:relative;
	z-index:2;
	width:90%;
	max-width:1100px;
	max-height:88vh;
	background:#fff;
	border-radius:12px;
	box-shadow:0 20px 60px rgba(0,0,0,.25);
	display:flex;
	flex-direction:column;
	transform:scale(.95);
	transition:transform .3s ease;
}
.kfmap-modal-show .kfmap-modal-box {
	transform:scale(1);
}
.kfmap-modal-head {
	display:flex;
	align-items:center;
	justify-content:space-between;
	padding:18px 24px;
	border-bottom:1px solid #eee;
	flex-shrink:0;
}
.kfmap-modal-head h3 {
	margin:0;
	font-size:18px;
	font-weight:700;
	color:#1a1a1a;
}
.kfmap-modal-close {
	width:36px;
	height:36px;
	border:none;
	background:#f5f5f5;
	border-radius:50%;
	font-size:22px;
	color:#888;
	cursor:pointer;
	display:flex;
	align-items:center;
	justify-content:center;
	transition:all .2s;
	line-height:1;
	padding:0;
}
.kfmap-modal-close:hover {
	background:#e8e8e8;
	color:#333;
}
.kfmap-modal-body {
	padding:24px;
	overflow-y:auto;
	flex:1;
}
/* 模态框内省份网格 */
.kfmap-modal-grid {
	display:grid;
	grid-template-columns:repeat(7, 1fr);
	gap:10px;
	margin-bottom:20px;
}
.kfmap-modal-pc {
	display:flex;
	flex-direction:column;
	align-items:center;
	justify-content:center;
	padding:16px 6px 12px;
	border-radius:8px;
	text-decoration:none;
	text-align:center;
	transition:transform .2s, box-shadow .2s;
	min-height:72px;
	border:1px solid rgba(0,0,0,.04);
}
.kfmap-modal-pc:hover {
	transform:translateY(-2px);
	box-shadow:0 4px 12px rgba(0,0,0,.1);
}
.kfmap-modal-pc-0 { background:#f7faf8; color:#bbb; }
.kfmap-modal-pc-1 { background:#e8f5e4; color:#6ab06a; }
.kfmap-modal-pc-2 { background:#c5e8ba; color:#4a984a; }
.kfmap-modal-pc-3 { background:#9dd991; color:#388038; }
.kfmap-modal-pc-4 { background:#6fc964; color:#286828; }
.kfmap-modal-pc-5 { background:#3db83e; color:#fff; font-weight:700; }
.kfmap-modal-pn {
	font-size:13px;
	font-weight:600;
	margin-bottom:4px;
	white-space:nowrap;
	overflow:hidden;
	text-overflow:ellipsis;
	width:100%;
}
.kfmap-modal-pc-0 .kfmap-modal-pn { color:#aaa; }
.kfmap-modal-pc-1 .kfmap-modal-pn,
.kfmap-modal-pc-2 .kfmap-modal-pn,
.kfmap-modal-pc-3 .kfmap-modal-pn { color:#2d6e2d; }
.kfmap-modal-pc-4 .kfmap-modal-pn,
.kfmap-modal-pc-5 .kfmap-modal-pn { color:#fff; }
.kfmap-modal-pc-num {
	font-size:18px;
	font-weight:700;
	line-height:1.2;
}
.kfmap-modal-pc-0 .kfmap-modal-pc-num { color:#ccc; }
.kfmap-modal-legend {
	display:flex;
	align-items:center;
	gap:10px;
	font-size:12px;
	color:#888;
	padding-top:14px;
	border-top:1px solid #f0f0f0;
}
.kfmap-modal-legend-bar {
	flex:1;
	max-width:300px;
	height:10px;
	border-radius:5px;
	background:linear-gradient(to right, #f7faf8, #e8f5e4, #c5e8ba, #9dd991, #6fc964, #3db83e);
}
.kfmap-modal-legend-note {
	margin-left:auto;
	font-size:11px;
	color:#bbb;
}

/* ===== 图表区域：柱状图 / 热力图（上下堆叠） ===== */
.kfmap-chart-body {
	width:100%;
	height:400px;
	padding:10px 16px;
	box-sizing:border-box;
}
.kfmap-heat-height {
	height:650px;
	min-width:540px;
}

@media (max-width:768px) {
	.kfmap-chart-body {
		height:320px;
	}
}
