.iccu-upload {
	margin: 18px 0;
	padding: 14px;
	border: 1px dashed #c9a36a;
	border-radius: 8px;
	background: #fffdf8;
}
.iccu-label {
	display: block;
	font-weight: 600;
	margin-bottom: 8px;
	color: #333;
}
.iccu-drop {
	border: 1px dashed #bbb;
	border-radius: 6px;
	padding: 18px;
	text-align: center;
	cursor: pointer;
	color: #666;
	background: #fafafa;
}
.iccu-drop:hover {
	background: #f0f6ff;
	border-color: #6c8cff;
}
.iccu-drop a {
	color: #cf3e3e;
	text-decoration: underline;
}
.iccu-hint {
	font-size: 12px;
	color: #888;
	margin-top: 8px;
	line-height: 1.4;
}
.iccu-status {
	font-size: 13px;
	margin-top: 8px;
	color: #2a7d2a;
}
.iccu-sep {
	text-align: center;
	color: #c9a36a;
	margin: 16px 0 6px;
	font-size: 12px;
	font-weight: 600;
	letter-spacing: 0.5px;
}
.iccu-row {
	display: flex;
	gap: 12px;
	margin-top: 8px;
	flex-wrap: wrap;
}
.iccu-field {
	flex: 1;
	min-width: 140px;
}
.iccu-field label {
	display: block;
	font-size: 13px;
	margin-bottom: 4px;
	color: #555;
}
.iccu-text {
	width: 100%;
	box-sizing: border-box;
	padding: 8px;
	border: 1px solid #ccc;
	border-radius: 6px;
	font-size: 14px;
	font-family: inherit;
	resize: vertical;
}
.iccu-font {
	width: 100%;
	box-sizing: border-box;
	padding: 8px;
	border: 1px solid #ccc;
	border-radius: 6px;
	font-size: 14px;
	background: #fff;
}
.iccu-color {
	width: 100%;
	height: 38px;
	padding: 2px;
	border: 1px solid #ccc;
	border-radius: 6px;
	background: #fff;
	cursor: pointer;
}
.iccu-preview-wrap {
	margin-top: 12px;
}
.iccu-preview-label {
	display: block;
	font-size: 12px;
	color: #888;
	margin-bottom: 4px;
}
.iccu-preview {
	position: relative;
	min-height: 200px;
	border: 1px solid #e3e3e3;
	border-radius: 6px;
	background: #f7f7f7;
	padding: 0;
	display: flex;
	align-items: center;
	justify-content: center;
	overflow: hidden;
}
.iccu-preview-empty {
	color: #bbb;
	font-size: 14px;
	font-style: italic;
	padding: 14px;
	text-align: center;
}
.iccu-preview-img {
	display: block;
	max-width: 100%;
	max-height: 360px;
	width: auto;
	height: auto;
	object-fit: contain;
}
/* 文字组卡片 */
.iccu-group {
	border: 1px solid #eee;
	border-radius: 6px;
	padding: 10px;
	margin-bottom: 10px;
	background: #fff;
}
.iccu-group-head {
	display: flex;
	justify-content: space-between;
	align-items: center;
	margin-bottom: 6px;
}
.iccu-group-title {
	font-weight: 600;
	font-size: 13px;
	color: #444;
}
.iccu-del {
	font-size: 12px;
	color: #cf3e3e;
	text-decoration: underline;
}
.iccu-text {
	width: 100%;
	box-sizing: border-box;
	padding: 8px;
	border: 1px solid #ccc;
	border-radius: 6px;
	font-size: 14px;
	font-family: inherit;
	resize: vertical;
}
.iccu-add {
	width: 100%;
	background: #fff;
	border: 1px dashed #c9a36a;
	color: #8a6d3b;
	padding: 8px 12px;
	border-radius: 6px;
	cursor: pointer;
	font-size: 13px;
	margin-bottom: 4px;
}
.iccu-add:hover:not(:disabled) {
	background: #fffdf8;
}
.iccu-add:disabled {
	opacity: .55;
	cursor: not-allowed;
}

/* 预览层容器（铺满预览区，本身不吃事件，层自己吃） */
#iccu-layers {
	position: absolute;
	left: 0;
	top: 0;
	right: 0;
	bottom: 0;
	pointer-events: none;
}
.iccu-pt {
	position: absolute;
	transform: translate(-50%, -50%);
	max-width: 92%;
	text-align: center;
	font-size: clamp(16px, 4.4vw, 30px);
	line-height: 1.25;
	white-space: pre-wrap;
	word-break: break-word;
	cursor: move;
	user-select: none;
	-webkit-user-select: none;
	touch-action: none;
	padding: 4px 8px;
	border: 1px dashed transparent;
	border-radius: 4px;
	pointer-events: auto;
	transition: border-color .15s, background-color .15s;
}
.iccu-pt:hover {
	border-color: rgba(0, 0, 0, .18);
	background: rgba(255, 255, 255, .12);
}
.iccu-pt.iccu-dragging {
	border-color: #cf3e3e;
	background: rgba(255, 255, 255, .18);
	opacity: .9;
}
.iccu-preview-label em {
	font-style: normal;
	color: #cf3e3e;
	font-size: 11px;
}
.iccu-progress {
	height: 8px;
	background: #eee;
	border-radius: 4px;
	overflow: hidden;
	margin-top: 8px;
}
.iccu-progress-bar {
	height: 100%;
	width: 0%;
	background: #6c8cff;
	transition: width .2s;
}

/* ===== 裁剪弹窗（Cropper.js） ===== */
.iccu-modal-backdrop {
	position: fixed;
	left: 0;
	top: 0;
	right: 0;
	bottom: 0;
	background: rgba(0, 0, 0, .62);
	z-index: 99999;
	display: flex;
	align-items: center;
	justify-content: center;
	padding: 16px;
	box-sizing: border-box;
}
.iccu-modal {
	background: #fff;
	border-radius: 10px;
	width: 100%;
	max-width: 720px;
	max-height: 94vh;
	overflow: auto;
	padding: 16px 18px 18px;
	box-sizing: border-box;
	box-shadow: 0 12px 40px rgba(0, 0, 0, .35);
}
.iccu-modal-head {
	display: flex;
	align-items: center;
	justify-content: space-between;
	font-size: 16px;
	margin-bottom: 6px;
}
.iccu-modal-close {
	font-size: 24px;
	line-height: 1;
	color: #888;
	text-decoration: none;
	padding: 0 4px;
}
.iccu-modal-close:hover { color: #cf3e3e; }
.iccu-modal-row {
	display: flex;
	align-items: center;
	gap: 10px;
	margin: 10px 0;
	flex-wrap: wrap;
}
.iccu-shape-label {
	font-size: 13px;
	color: #555;
	font-weight: 600;
}
.iccu-shape {
	flex: 1;
	min-width: 180px;
	padding: 8px;
	border: 1px solid #ccc;
	border-radius: 6px;
	font-size: 14px;
	background: #fff;
}
.iccu-crop-stage {
	background: #2b2b2b;
	border-radius: 6px;
	overflow: hidden;
	max-height: 52vh;
}
.iccu-crop-stage img {
	display: block;
	max-width: 100%;
}
.iccu-zoomrow .iccu-btn {
	min-width: 62px;
}
.iccu-modal-actions {
	display: flex;
	justify-content: flex-end;
	gap: 8px;
	margin-top: 14px;
	flex-wrap: wrap;
}
.iccu-btn {
	background: #fff;
	border: 1px solid #ccc;
	color: #444;
	border-radius: 6px;
	padding: 9px 14px;
	font-size: 14px;
	cursor: pointer;
}
.iccu-btn:hover { background: #f5f5f5; }
.iccu-btn:disabled { opacity: .6; cursor: not-allowed; }
.iccu-btn-primary {
	background: #cf3e3e;
	border-color: #cf3e3e;
	color: #fff;
	font-weight: 600;
}
.iccu-btn-primary:hover { background: #b93333; }
.iccu-status a {
	color: #1a73e8;
	text-decoration: underline;
	margin-left: 4px;
}
@media (max-width: 600px) {
	.iccu-crop-stage { max-height: 42vh; }
	.iccu-modal-actions .iccu-btn { flex: 1; min-width: 96px; }
}
