/* Nástroj na úpravu obrázků. Doplňuje dev.css, které řeší panely, tlačítka
   a formulářové prvky společné všem vývojářským nástrojům. */

.img-head {
	display: flex;
	align-items: flex-start;
	justify-content: space-between;
	gap: 1rem;
	margin-bottom: 1.25rem;
	flex-wrap: wrap;
}

/* Nastavení vlevo v pevném sloupci, výsledky vpravo v tom, co zbude. */
.img-layout {
	display: grid;
	grid-template-columns: 340px minmax(0, 1fr);
	gap: 1.5rem;
	align-items: start;
}

@media (max-width: 991px) {
	.img-layout { grid-template-columns: minmax(0, 1fr); }
}

.img-side { min-width: 0; }
.img-main { min-width: 0; }

.img-sep { border-color: var(--dev-border); margin: 1.25rem 0 1rem; }

/* ── Vstup souborů ───────────────────────────────────────────────────────── */

.dropzone {
	display: flex;
	flex-direction: column;
	align-items: center;
	justify-content: center;
	gap: 4px;
	padding: 1.75rem 1rem;
	border: 2px dashed var(--dev-border-strong);
	border-radius: 8px;
	background: rgba(20, 20, 20, 0.45);
	color: var(--dev-text);
	text-align: center;
	cursor: pointer;
	transition: all 0.15s ease-in-out;
}

.dropzone:hover, .dropzone:focus { border-color: var(--dev-accent); outline: none; }
.dropzone.is-over { border-color: var(--dev-accent); background: rgba(41, 148, 165, 0.18); }

.dropzone-icon { font-size: 1.8rem; color: var(--dev-accent); opacity: 0.8; margin-bottom: 4px; }
.dropzone-hint { font-size: 0.78rem; color: var(--dev-faint); }

.queue-head {
	display: flex;
	align-items: center;
	justify-content: space-between;
	margin-top: 0.75rem;
	font-size: 0.78rem;
	color: var(--dev-dim);
}

.link-button {
	background: none;
	border: 0;
	padding: 0;
	color: var(--dev-accent);
	font-size: 0.78rem;
	cursor: pointer;
}
.link-button:hover { text-decoration: underline; }

.queue { max-height: 190px; overflow-y: auto; margin-top: 6px; }
.queue:empty { margin-top: 0; }

.queue-item {
	display: flex;
	align-items: center;
	gap: 8px;
	padding: 5px 6px;
	border-radius: 5px;
	font-size: 0.78rem;
	color: var(--dev-dim);
}
.queue-item:hover { background: rgba(255, 255, 255, 0.06); }

.queue-thumb {
	width: 30px;
	height: 30px;
	flex: 0 0 30px;
	border-radius: 4px;
	object-fit: cover;
	background: rgba(255, 255, 255, 0.05);
}

.queue-name {
	flex: 1 1 auto;
	min-width: 0;
	overflow: hidden;
	text-overflow: ellipsis;
	white-space: nowrap;
	color: var(--dev-text);
}

.queue-size { color: var(--dev-faint); white-space: nowrap; }

.queue-remove {
	background: none;
	border: 0;
	padding: 0 2px;
	color: var(--dev-faint);
	cursor: pointer;
	line-height: 1;
}
.queue-remove:hover { color: #dc3545; }

.btn-block-tool { display: block; width: 100%; margin-left: 0; padding: 9px 12px; }

/* ── Průběh ──────────────────────────────────────────────────────────────── */

.results-head {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 1rem;
	margin-bottom: 1rem;
	flex-wrap: wrap;
}

.progress-wrap { display: flex; align-items: center; gap: 10px; flex: 1 1 220px; min-width: 0; }

.progress-track {
	flex: 1 1 auto;
	height: 6px;
	border-radius: 3px;
	background: rgba(255, 255, 255, 0.1);
	overflow: hidden;
}

.progress-fill {
	height: 100%;
	width: 0;
	border-radius: 3px;
	background: linear-gradient(90deg, #2994a5, #a1edf8);
	transition: width 0.3s ease-in-out;
}

.progress-label { font-size: 0.78rem; color: var(--dev-dim); white-space: nowrap; }

.results-actions { display: flex; align-items: center; }

.results-empty {
	text-align: center;
	padding: 3.5rem 1rem;
	color: var(--dev-faint);
}
.results-empty i { font-size: 2.2rem; opacity: 0.35; margin-bottom: 0.75rem; display: block; }
.results-empty p { margin: 0; font-size: 0.85rem; }

/* ── Výsledky ────────────────────────────────────────────────────────────── */

.results {
	display: grid;
	grid-template-columns: repeat(auto-fill, minmax(190px, 1fr));
	gap: 12px;
	max-height: 68vh;
	overflow-y: auto;
	padding-right: 4px;
}

.result-card {
	border: 1px solid var(--dev-border);
	border-radius: 8px;
	background: var(--dev-card);
	overflow: hidden;
	display: flex;
	flex-direction: column;
}

.result-card.is-failed { border-color: rgba(220, 53, 69, 0.6); }
.result-card.is-selected { border-color: var(--dev-accent); box-shadow: 0 0 0 1px var(--dev-accent) inset; }

/* Šachovnice pod náhledem — bez ní není poznat, co je průhledné a co bílé. */
.result-preview {
	position: relative;
	height: 150px;
	display: flex;
	align-items: center;
	justify-content: center;
	background-color: #2a2a2c;
	background-image:
		linear-gradient(45deg, #232325 25%, transparent 25%),
		linear-gradient(-45deg, #232325 25%, transparent 25%),
		linear-gradient(45deg, transparent 75%, #232325 75%),
		linear-gradient(-45deg, transparent 75%, #232325 75%);
	background-size: 16px 16px;
	background-position: 0 0, 0 8px, 8px -8px, -8px 0;
}

.result-preview img { max-width: 92%; max-height: 92%; object-fit: contain; }

.result-badge {
	position: absolute;
	top: 6px;
	left: 6px;
	padding: 2px 6px;
	border-radius: 4px;
	font-size: 10px;
	text-transform: uppercase;
	letter-spacing: 0.4px;
	background: rgba(0, 0, 0, 0.65);
	color: var(--dev-dim);
}
.result-badge.is-ai { color: #cdb0ff; }
.result-badge.is-flat { color: #a1edf8; }

.result-check { position: absolute; top: 6px; right: 6px; }

.result-body { padding: 8px 10px 10px; font-size: 0.75rem; color: var(--dev-dim); }

.result-name {
	color: var(--dev-text);
	font-size: 0.8rem;
	overflow: hidden;
	text-overflow: ellipsis;
	white-space: nowrap;
	margin-bottom: 3px;
}

.result-meta { display: flex; justify-content: space-between; gap: 6px; }
.result-saving { color: #59c46f; }
.result-saving.is-worse { color: #d99b3f; }
.result-error { color: #ff8a94; font-size: 0.73rem; word-break: break-word; }

.result-spinner {
	width: 1.5rem;
	height: 1.5rem;
	border: 0.2em solid rgba(255, 255, 255, 0.2);
	border-right-color: #fff;
	border-radius: 50%;
	animation: admin-spin 0.75s linear infinite;
}

/* ── Modal publikace ─────────────────────────────────────────────────────── */

.dev-modal {
	background: #17171a;
	border: 1px solid var(--dev-border-strong);
	color: var(--dev-text);
}
.dev-modal .modal-header, .dev-modal .modal-footer { border-color: var(--dev-border); }
.dev-modal code { color: var(--dev-accent); background: rgba(255, 255, 255, 0.06); padding: 1px 4px; border-radius: 3px; }

.publish-list {
	max-height: 180px;
	overflow-y: auto;
	border: 1px solid var(--dev-border);
	border-radius: 6px;
	padding: 6px;
	font-size: 0.78rem;
}
.publish-list div { padding: 2px 4px; color: var(--dev-dim); }
.publish-list .is-conflict { color: #d99b3f; }

.publish-result { font-size: 0.78rem; }
.publish-result a { color: var(--dev-accent); word-break: break-all; }
.publish-result .copy-all { margin-top: 8px; }
