* { box-sizing: border-box; }
html, body { margin: 0; padding: 0; }
body {
	font-family: -apple-system, BlinkMacSystemFont, "PingFang SC", "Microsoft YaHei", sans-serif;
	background: #f5f6f8;
	color: #222;
	font-size: 14px;
	line-height: 1.5;
}

.topbar {
	background: #2c7a4b;
	color: #fff;
	padding: 12px 20px;
	display: flex;
	align-items: center;
	justify-content: space-between;
	box-shadow: 0 1px 4px rgba(0,0,0,.08);
}
.logo { font-size: 16px; font-weight: 600; }
.env-status { font-size: 12px; opacity: .9; }
.env-status.ok { color: #c8f1d3; }
.env-status.warn { color: #ffd479; }

.container {
	max-width: 1100px;
	margin: 16px auto;
	padding: 0 16px 60px;
}

.input-card, .result-card {
	background: #fff;
	border-radius: 8px;
	padding: 16px 20px;
	margin-bottom: 14px;
	box-shadow: 0 1px 3px rgba(0,0,0,.05);
}
.hide { display: none !important; }

.row { margin-bottom: 12px; }
.row label {
	display: block;
	font-size: 12px;
	color: #666;
	margin-bottom: 4px;
}
.row input[type=text], .row input[type=number], textarea, select {
	width: 100%;
	padding: 8px 10px;
	border: 1px solid #d8dce0;
	border-radius: 6px;
	font-size: 14px;
	background: #fff;
}
.row input:focus, textarea:focus, select:focus {
	outline: none;
	border-color: #2c7a4b;
}
.row .req { color: #d33; }
.row.two-col {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 12px;
}
.btn-row { display: flex; gap: 10px; }
.status {
	margin-top: 8px;
	font-size: 13px;
	color: #2c7a4b;
	min-height: 18px;
}
.status.err { color: #d33; }

.btn {
	display: inline-block;
	padding: 9px 18px;
	border: 1px solid #d8dce0;
	background: #fff;
	color: #333;
	border-radius: 6px;
	cursor: pointer;
	font-size: 14px;
	transition: all .15s;
}
.btn:hover { background: #f0f2f4; }
.btn:disabled { opacity: .5; cursor: not-allowed; }
.btn.primary { background: #2c7a4b; border-color: #2c7a4b; color: #fff; }
.btn.primary:hover { background: #25623c; }
.btn.success { background: #1f9254; border-color: #1f9254; color: #fff; }
.btn.success:hover { background: #18743f; }
.btn.ghost { background: #fff; }
.btn.small { padding: 5px 10px; font-size: 12px; }

h2 {
	font-size: 15px;
	margin: 0 0 12px;
	display: flex;
	align-items: center;
	gap: 8px;
}
.count {
	font-size: 12px;
	color: #888;
	font-weight: normal;
}

/* 主景区卡片 */
.main-card {
	padding: 12px 14px;
	background: #f0f7f2;
	border-left: 3px solid #2c7a4b;
	border-radius: 4px;
}
.main-card .mc-name { font-size: 16px; font-weight: 600; margin-bottom: 4px; }
.main-card .mc-meta { font-size: 12px; color: #555; margin-bottom: 8px; }
.main-card .mc-desc { color: #333; margin-bottom: 8px; }
.main-card .mc-tags { display: flex; flex-wrap: wrap; gap: 6px; margin-bottom: 8px; }
.main-card .mc-edit { float: right; }
.tag {
	display: inline-block;
	padding: 2px 8px;
	background: #e6f0e9;
	color: #2c7a4b;
	border-radius: 10px;
	font-size: 12px;
}

/* 子POI 列表 */
.children-head {
	display: flex;
	justify-content: space-between;
	align-items: center;
	margin-bottom: 10px;
}
.children-actions { display: flex; gap: 6px; }
.children-list {
	display: grid;
	grid-template-columns: repeat(auto-fill, minmax(280px, 1fr));
	gap: 10px;
}
.child-card {
	padding: 10px 12px;
	border: 1px solid #e3e6ea;
	border-radius: 6px;
	background: #fff;
	font-size: 13px;
	position: relative;
}
.child-card.outside {
	opacity: .55;
	background: #fafafa;
}
.child-card.selected { border-color: #2c7a4b; background: #f3faf5; }
.child-card .cc-top {
	display: flex;
	align-items: flex-start;
	gap: 8px;
	margin-bottom: 4px;
}
.child-card .cc-top input { margin-top: 3px; }
.child-card .cc-name { font-weight: 600; flex: 1; }
.child-card .cc-cat {
	display: inline-block;
	padding: 1px 6px;
	font-size: 11px;
	border-radius: 8px;
	background: #eef2f5;
	color: #555;
}
.child-card .cc-cat.设施, .child-card .cc-cat.服务设施 { background: #fff4e6; color: #c45500; }
.child-card .cc-cat.餐饮, .child-card .cc-cat.餐厅 { background: #fde7e7; color: #c0392b; }
.child-card .cc-cat.住宿 { background: #e7eefd; color: #2c4fad; }
.child-card .cc-cat.景点, .child-card .cc-cat.打卡点, .child-card .cc-cat.拍照机位 { background: #e6f0e9; color: #2c7a4b; }
.child-card .cc-cat.美食 { background: #fde7e7; color: #c0392b; }
.child-card .cc-cat.娱乐项目 { background: #f5e6fb; color: #8e44ad; }
.tag-dims-block {
	display: block;
	margin-top: 6px;
	padding: 6px 8px;
	background: #f0f5f2;
	border-left: 3px solid #2c7a4b;
	border-radius: 3px;
	font-size: 11px;
}
.tag-dims-block .dim-row { display: block; line-height: 1.7; }
.tag-dims-block .dim-row b { color: #2c7a4b; font-weight: 600; margin-right: 4px; }
.dim-tag {
	display: inline-block;
	padding: 1px 6px;
	margin: 0 2px;
	background: #fff;
	border: 1px solid #b8dac3;
	border-radius: 8px;
	font-size: 10px;
	color: #2c7a4b;
}

.cc-attrs {
	margin-top: 6px;
	padding: 6px 8px;
	background: #f7f9fa;
	border-radius: 4px;
	font-size: 11px;
	color: #555;
}
.cc-attrs .attr-row { display: inline-block; margin-right: 10px; }
.cc-attrs .attr-row b { color: #2c7a4b; font-weight: normal; }
.mc-attrs {
	margin: 6px 0 8px;
	padding: 8px 10px;
	background: #fff;
	border: 1px solid #d8e8de;
	border-radius: 4px;
	font-size: 12px;
}
.mc-attrs .attr-row { display: inline-block; margin-right: 14px; line-height: 1.8; }
.mc-attrs .attr-row b { color: #2c7a4b; font-weight: 600; }
.badge {
	display: inline-block;
	padding: 2px 8px;
	border-radius: 10px;
	font-size: 11px;
}
.badge.ok { background: #e6f0e9; color: #2c7a4b; }
.badge.warn { background: #fff4e6; color: #c45500; }
.cat-summary {
	display: block;
	margin-top: 4px;
	font-size: 11px;
	font-weight: normal;
}
.cat-pill {
	display: inline-block;
	padding: 1px 8px;
	border-radius: 10px;
	background: #eee;
	color: #666;
	margin-right: 4px;
}
.cat-pill.景点, .cat-pill.打卡点 { background: #e6f0e9; color: #2c7a4b; }
.cat-pill.美食 { background: #fde7e7; color: #c0392b; }
.cat-pill.住宿 { background: #e7eefd; color: #2c4fad; }
.cat-pill.娱乐项目 { background: #f5e6fb; color: #8e44ad; }
.cat-pill.服务设施 { background: #fff4e6; color: #c45500; }
.main-card .mc-name .cc-cat { font-size: 11px; padding: 2px 8px; margin-left: 4px; }
.main-card .mc-name .cc-cat.景点, .main-card .mc-name .cc-cat.打卡点 { background: #e6f0e9; color: #2c7a4b; }
.main-card .mc-name .cc-cat.美食 { background: #fde7e7; color: #c0392b; }
.main-card .mc-name .cc-cat.住宿 { background: #e7eefd; color: #2c4fad; }
.child-card .cc-meta { font-size: 11px; color: #888; }
.child-card .cc-desc { margin-top: 4px; color: #444; }
.child-card .cc-foot {
	margin-top: 6px;
	display: flex;
	justify-content: space-between;
	font-size: 11px;
	color: #888;
}
.child-card .cc-edit { color: #2c7a4b; cursor: pointer; }
.child-card.sub-scenic {
	border-color: #d4a017;
	border-width: 2px;
	background: #fffbe6;
}
.child-card .cc-tag-sub {
	position: absolute;
	right: 8px;
	top: 8px;
	background: #d4a017;
	color: #fff;
	padding: 2px 8px;
	border-radius: 8px;
	font-size: 11px;
	font-weight: 600;
}
.child-card .cc-tag-downgrade {
	position: absolute;
	right: 8px;
	top: 8px;
	background: #fff4e6;
	color: #c45500;
	border: 1px solid #c45500;
	padding: 1px 6px;
	border-radius: 8px;
	font-size: 10px;
}
.child-card .cc-tag-sub-soft {
	position: absolute;
	right: 8px;
	top: 8px;
	background: #fff8e1;
	color: #b87600;
	border: 1px dashed #d4a017;
	padding: 1px 6px;
	border-radius: 8px;
	font-size: 10px;
}
.cc-tag-parent {
	display: inline-block;
	margin-left: 6px;
	padding: 1px 6px;
	background: #e6f0f7;
	color: #1c4587;
	border-radius: 8px;
	font-size: 10px;
	font-weight: normal;
}
.child-card .cc-tag-outside {
	position: absolute;
	right: 8px;
	top: 8px;
	background: #fadbd8;
	color: #c0392b;
	padding: 1px 6px;
	border-radius: 8px;
	font-size: 11px;
}

/* 入库栏 */
.commit-bar {
	display: flex;
	justify-content: space-between;
	align-items: center;
	gap: 12px;
	flex-wrap: wrap;
}
.commit-summary { color: #555; font-size: 13px; }
.commit-summary b { color: #2c7a4b; }
.commit-actions { display: flex; gap: 10px; }

/* 编辑弹窗 */
.modal { position: fixed; inset: 0; z-index: 100; }
.modal-mask {
	position: absolute; inset: 0;
	background: rgba(0,0,0,.45);
}
.modal-body {
	position: relative;
	background: #fff;
	border-radius: 10px;
	max-width: 540px;
	margin: 8vh auto 0;
	padding: 20px 24px;
	box-shadow: 0 4px 20px rgba(0,0,0,.2);
	max-height: 84vh;
	overflow-y: auto;
}
.modal-body h3 { margin: 0 0 14px; font-size: 16px; }
.modal-foot {
	margin-top: 16px;
	display: flex;
	justify-content: flex-end;
	gap: 10px;
}
.field { margin-bottom: 10px; }
.field label { font-size: 12px; color: #666; display: block; margin-bottom: 3px; }
.field input, .field textarea, .field select {
	width: 100%;
	padding: 7px 9px;
	border: 1px solid #d8dce0;
	border-radius: 5px;
	font-size: 13px;
	font-family: inherit;
}
.field textarea { resize: vertical; min-height: 60px; }

textarea {
	width: 100%;
	padding: 8px 10px;
	border: 1px solid #d8dce0;
	border-radius: 6px;
	font-size: 14px;
	font-family: inherit;
	resize: vertical;
}

/* 模式切换 */
.mode-tabs {
	display: flex;
	gap: 4px;
	margin-bottom: 12px;
	border-bottom: 1px solid #d8dce0;
}
.mode-tab {
	padding: 9px 18px;
	cursor: pointer;
	font-size: 14px;
	color: #666;
	border-bottom: 2px solid transparent;
	margin-bottom: -1px;
}
.mode-tab.on {
	color: #2c7a4b;
	border-bottom-color: #2c7a4b;
	font-weight: 600;
}
.mode-tab:hover { background: #f5f6f8; }

/* 去重 badge */
.dup-badge {
	display: inline-block;
	margin-left: 8px;
	padding: 1px 8px;
	background: #fadbd8;
	color: #c0392b;
	border-radius: 10px;
	font-size: 11px;
	font-weight: normal;
}
.dup-badge.exists::before { content: "⚠ 已存在 "; }

/* 批量队列 */
.batch-queue {
	margin-top: 14px;
	border-top: 1px solid #eee;
	padding-top: 14px;
}
.bq-head {
	display: flex;
	justify-content: space-between;
	align-items: center;
	margin-bottom: 10px;
	font-size: 13px;
	color: #555;
}
.bq-row {
	display: flex;
	align-items: center;
	gap: 10px;
	padding: 8px 10px;
	margin-bottom: 6px;
	border: 1px solid #e3e6ea;
	border-radius: 6px;
	background: #fff;
	font-size: 13px;
}
.bq-row.queued { background: #fafafa; color: #999; }
.bq-row.running { background: #fff8e1; }
.bq-row.done { background: #f0f7f2; }
.bq-row.failed { background: #fdecea; }
.bq-row.exists { background: #fdf3e8; }
.bq-name { flex: 1; font-weight: 500; }
.task-badge {
	display: inline-flex;
	align-items: center;
	margin-left: 8px;
	padding: 2px 7px;
	border-radius: 999px;
	background: #e6f0e9;
	color: #2c7a4b;
	font-size: 12px;
	font-weight: 600;
}
.bq-state {
	display: inline-block;
	padding: 2px 8px;
	border-radius: 10px;
	font-size: 11px;
	background: #eee;
	color: #666;
}
.bq-row.queued .bq-state { background: #eee; color: #888; }
.bq-row.running .bq-state { background: #fff3cd; color: #b87600; }
.bq-row.done .bq-state { background: #e6f0e9; color: #2c7a4b; }
.bq-row.failed .bq-state { background: #f8d7da; color: #c0392b; }
.bq-row.exists .bq-state { background: #fce4cc; color: #c45500; }
.bq-actions { display: flex; gap: 6px; }
.bq-row .btn.small { padding: 3px 8px; font-size: 11px; }
.bq-row { display: block; padding: 0; overflow: hidden; }
.bq-main {
	display: flex;
	align-items: center;
	gap: 10px;
	padding: 8px 10px;
}
.bq-error {
	border-top: 1px dashed #e9b4ad;
	padding: 7px 10px;
	color: #b42318;
	background: #fff7f6;
	font-size: 12px;
	line-height: 1.45;
}
.batch-flow-hint {
	margin: -4px 0 10px;
	color: #666;
	background: #f6fbf8;
	border: 1px solid #dfeee5;
	border-radius: 6px;
	padding: 8px 10px;
	font-size: 12px;
	line-height: 1.5;
}
.bq-phases {
	display: grid;
	grid-template-columns: repeat(4, minmax(0, 1fr));
	gap: 6px;
	padding: 0 10px 8px;
}
.bq-phase {
	display: block;
	min-width: 0;
	overflow: hidden;
	text-overflow: ellipsis;
	white-space: nowrap;
	border: 1px solid #e2e6ea;
	border-radius: 6px;
	background: #fff;
	color: #60656b;
	padding: 5px 7px;
	font-size: 11px;
}
.bq-phase.running { border-color: #f6d28b; background: #fff8e1; color: #9a6200; }
.bq-phase.done { border-color: #cfe8d8; background: #edf8f1; color: #2c7a4b; }
.bq-phase.failed { border-color: #efc0ba; background: #fff2f0; color: #b42318; }
.bq-row.suggesting { background: #fff8e1; }
.bq-row.suggesting .bq-state { background: #fff3cd; color: #b87600; }
.bq-sub-panel {
	border-top: 1px dashed #ddd;
	padding: 8px 10px;
	background: #fcfdfc;
}
.bq-sub-head {
	font-size: 12px;
	color: #555;
	margin-bottom: 6px;
	display: flex;
	justify-content: space-between;
	align-items: center;
	gap: 6px;
}
.bq-sub-actions { display: flex; gap: 4px; }
.bq-sub-list {
	display: flex;
	flex-wrap: wrap;
	gap: 6px;
}
.bq-sub-item {
	display: inline-flex;
	align-items: center;
	gap: 4px;
	padding: 3px 8px;
	border: 1px solid #e3e6ea;
	border-radius: 12px;
	font-size: 12px;
	background: #fff;
	cursor: pointer;
}
.bq-sub-item.conf-high { border-left: 3px solid #2c7a4b; }
.bq-sub-item.conf-medium { border-left: 3px solid #f59e0b; }
.bq-sub-item.conf-low { border-left: 3px solid #ccc; opacity: .75; }
.bq-sub-item input { margin: 0; }
.bq-sub-item:has(input:checked) { background: #eaf6ee; border-color: #2c7a4b; }

/* 3 阶段 */
.phases {
	margin-top: 14px;
	border-top: 1px solid #eee;
	padding-top: 14px;
	display: grid;
	gap: 14px;
}
.phase {
	border-radius: 8px;
	padding: 12px 14px;
	border: 1.5px solid transparent;
}
.phase.vpn-phase {
	background: #fdf3e8;
	border-color: #f5cba7;
}
.phase.novpn-phase {
	background: #eaf3ec;
	border-color: #b8dac3;
}
.phase.running {
	border-color: #ffc107;
	background: #fffaf0;
}
.phase.done {
	border-color: #2c7a4b;
	background: #eaf6ee;
}
.phase-head {
	display: flex;
	justify-content: space-between;
	align-items: center;
	margin-bottom: 4px;
}
.phase-title {
	font-weight: 600;
	font-size: 14px;
}
.phase-tag {
	display: inline-block;
	margin-left: 6px;
	padding: 2px 8px;
	border-radius: 10px;
	font-size: 11px;
	font-weight: 500;
}
.phase-tag.tag-vpn { background: #fadbd8; color: #c0392b; }
.phase-tag.tag-novpn { background: #d4efdf; color: #1f7a44; }
.phase-sub {
	color: #777;
	font-size: 12px;
	margin-bottom: 8px;
}
.phase-steps {
	display: grid;
	gap: 6px;
}
.phase-btn { white-space: nowrap; }

/* 智能识别候选 panel */
.suggest-panel {
	margin-top: 4px;
	padding: 10px 12px;
	background: #f6faf7;
	border: 1px dashed #b8dac3;
	border-radius: 6px;
	font-size: 13px;
}
.suggest-panel.loading { background: #fff8e1; border-color: #ffc107; }
.suggest-panel.empty { background: #fafafa; border-color: #ddd; color: #888; }
.suggest-head {
	display: flex;
	justify-content: space-between;
	align-items: center;
	margin-bottom: 8px;
	font-size: 12px;
	color: #555;
}
.suggest-actions { display: flex; gap: 4px; }
.suggest-actions .btn.small { padding: 2px 8px; font-size: 11px; }
.suggest-list {
	display: grid;
	grid-template-columns: repeat(auto-fill, minmax(220px, 1fr));
	gap: 6px;
}
.sugg-item {
	display: flex;
	align-items: center;
	gap: 6px;
	padding: 6px 8px;
	border-radius: 4px;
	border: 1px solid transparent;
	cursor: pointer;
	background: #fff;
	transition: all .15s;
}
.sugg-item:hover { background: #f0f5f2; }
.sugg-item.selected { border-color: #2c7a4b; background: #eaf6ee; }
.sugg-item.conf-high { border-left: 4px solid #2c7a4b; }
.sugg-item.conf-medium { border-left: 4px solid #f59e0b; }
.sugg-item.conf-low { border-left: 4px solid #ccc; opacity: .8; }
.sugg-name { flex: 1; font-weight: 500; }
.sugg-meta { font-size: 11px; color: #999; }
.sugg-badge {
	display: inline-block;
	padding: 1px 6px;
	border-radius: 8px;
	font-size: 10px;
	font-weight: 600;
}
.sugg-badge.high { background: #d4efdf; color: #1f7a44; }
.sugg-badge.medium { background: #fef3cd; color: #856404; }
.sugg-badge.low { background: #f5f5f5; color: #888; }
.sugg-badge.boundary { background: #d4e7f7; color: #1c4587; margin-left: 6px; }
.sugg-badge.no-boundary { background: #fff4e6; color: #c45500; margin-left: 6px; }
.sugg-item.has-boundary { background: #f4faf6; }

.advanced-toggle {
	margin-top: 6px;
}
.advanced-toggle summary {
	cursor: pointer;
	color: #2c7a4b;
	font-size: 12px;
	padding: 4px 0;
}
.advanced-toggle[open] summary { margin-bottom: 4px; }

/* 按区域搜景区 */
.area-search {
	background: #f6faf7;
	border: 1px solid #d0e6d7;
	border-radius: 8px;
	padding: 12px 14px;
	margin-bottom: 14px;
}
.area-search-head { margin-bottom: 8px; }
.area-search-title { font-weight: 600; font-size: 14px; }
.area-results {
	max-height: 360px;
	overflow-y: auto;
	margin-top: 8px;
	padding: 8px;
	background: #fff;
	border: 1px solid #e3e6ea;
	border-radius: 6px;
}
.area-row {
	display: flex;
	align-items: center;
	gap: 8px;
	padding: 6px 8px;
	border-bottom: 1px solid #f0f0f0;
	font-size: 13px;
}
.area-row:last-child { border: 0; }
.area-row:hover { background: #f5f9f6; }
.area-row input[type=checkbox] { margin: 0; }
.area-row .ar-name { font-weight: 500; flex: 1; }
.area-row .ar-meta { color: #888; font-size: 11px; }
.area-row.exists { background: #fdf3e8; }
.area-row.exists::after { content: '⚠ 已入库'; color: #c45500; font-size: 11px; margin-left: 6px; }
.area-actions {
	margin-top: 8px;
	display: flex;
	gap: 8px;
	align-items: center;
	flex-wrap: wrap;
}
.area-pager {
	margin-top: 8px;
	display: flex;
	gap: 8px;
	align-items: center;
	font-size: 12px;
}
.area-pager .page-jump { width: 80px; padding: 4px 8px; font-size: 12px; }
.area-row .ar-rating {
	display: inline-block;
	padding: 1px 6px;
	background: #fef3cd;
	color: #856404;
	border-radius: 8px;
	font-size: 11px;
	font-weight: 600;
	margin-left: 4px;
}
.area-row .ar-ticket {
	display: inline-block;
	padding: 1px 6px;
	background: #fadbd8;
	color: #c0392b;
	border-radius: 8px;
	font-size: 11px;
	margin-left: 4px;
}
.area-row.has-rating { background: #fffdf0; }

/* Stepper */
.stepper {
	margin-top: 14px;
	border-top: 1px solid #eee;
	padding-top: 14px;
	display: grid;
	gap: 8px;
}
.step {
	display: flex;
	gap: 12px;
	padding: 10px 12px;
	border: 1px solid #e3e6ea;
	border-radius: 6px;
	background: #fafbfc;
}
.step.running { background: #fff8e1; border-color: #ffc107; }
.step.done { background: #f0f7f2; border-color: #2c7a4b; }
.step.failed { background: #fdecea; border-color: #c0392b; }
.step.skipped { background: #fff4e6; border-color: #c45500; }
.step-num {
	width: 28px; height: 28px;
	border-radius: 50%;
	background: #ccc;
	color: #fff;
	display: flex; align-items: center; justify-content: center;
	font-weight: bold;
	flex-shrink: 0;
}
.step.running .step-num { background: #ffc107; }
.step.done .step-num { background: #2c7a4b; }
.step.failed .step-num { background: #c0392b; }
.step.skipped .step-num { background: #c45500; }
.step-content { flex: 1; font-size: 13px; }
.step-title { font-weight: 600; }
.step-vpn {
	display: inline-block;
	margin-left: 6px;
	padding: 1px 6px;
	background: #fadbd8;
	color: #c0392b;
	border-radius: 8px;
	font-size: 10px;
	font-weight: normal;
}
.step-sub { color: #888; margin-top: 2px; font-size: 12px; }
.step-state { margin-top: 4px; color: #2c7a4b; font-size: 12px; font-family: monospace; }
.step.failed .step-state { color: #c0392b; }
.step.skipped .step-state { color: #c45500; }

/* 配图网格 */
.images-grid {
	display: grid;
	grid-template-columns: repeat(auto-fill, minmax(180px, 1fr));
	gap: 10px;
	margin-top: 8px;
}
.img-card {
	border: 2px solid #e3e6ea;
	border-radius: 6px;
	overflow: hidden;
	background: #fff;
	cursor: pointer;
	transition: border-color .15s;
	position: relative;
}
.img-card.selected { border-color: #2c7a4b; }
.img-card .img-wrap {
	aspect-ratio: 4/3;
	background: #f0f0f0;
	display: flex; align-items: center; justify-content: center;
	overflow: hidden;
}
.img-card img { width: 100%; height: 100%; object-fit: cover; display: block; }
.img-card .img-info {
	padding: 6px 8px;
	font-size: 11px;
	color: #666;
	background: #fafafa;
}
.img-card .img-source {
	position: absolute;
	top: 6px; right: 6px;
	padding: 1px 6px;
	border-radius: 8px;
	font-size: 10px;
	font-weight: 600;
	color: #fff;
}
.img-card .img-source.wikimedia { background: #2c4fad; }
.img-card .img-source.pixabay { background: #1f9254; }
.img-card .img-check {
	position: absolute;
	top: 6px; left: 6px;
	width: 20px; height: 20px;
	border-radius: 50%;
	background: rgba(255,255,255,.9);
	display: flex; align-items: center; justify-content: center;
	font-size: 12px;
	color: #2c7a4b;
}
.img-card.selected .img-check { background: #2c7a4b; color: #fff; }
.img-card.selected .img-check::before { content: '✓'; }
.img-card.cover {
	border-color: #d4a017;
	border-width: 3px;
}
.img-card.cover::after {
	content: '封面';
	position: absolute;
	bottom: 30px; left: 0;
	background: #d4a017;
	color: #fff;
	padding: 2px 8px;
	font-size: 10px;
	border-top-right-radius: 4px;
}
