/* -------------------------------------
 plugin Name: Sajjetti Audit
 plugin URI: https://sajjetti.ai
 Author: Sajjetti
------------------------------------- */

/*
WordPress Admin Responsive Breakpoints:
@media (max-width: 1800px) - Large desktop
@media (max-width: 1500px) - Desktop
@media (max-width: 1280px) - Small desktop
@media (max-width: 960px) - Tablet landscape
@media (max-width: 782px) - Mobile menu breakpoint
@media (max-width: 600px) - Mobile
@media (max-width: 480px) - Small mobile
*/

/* https://cssminifier.com/ */

/* === General Links === */
.sajjetti-audit-href {
	text-decoration: none;
}
.sajjetti-audit-href:hover {
	text-decoration: underline;
}

/* === Wrapper & Layout === */
.sajjetti-audit-backend-main-wrapper {
	/* display: flex; */
	flex-direction: row;
	align-items: flex-start;
	gap: 20px;
	width: 100%;
	margin-bottom: 20px;
	position: relative;
}

.sajjetti-audit-backend-box {
	padding: 5px 10px;
	background-color: #fff;
	/* width: 100%; */
	min-height: 100px;
	border: 1px solid #c3c4c7;
	box-shadow: 0 1px 1px rgba(0, 0, 0, 0.04);
}

.sajjetti-audit-width-full {
	width: 100%;
}

/* === Progress Bar === */
.sajjetti-audit-progress-data {
	margin-bottom: 10px;
}

.sajjetti-audit-progress-bar {
	position: relative;
	width: 100%;
	background: #eee;
	height: 30px;
	border-radius: 5px;
	margin-bottom: 15px;
	overflow: hidden;
}

.sajjetti-audit-progress-fill {
	width: 0%;
	height: 100%;
	background: #0073aa;
	color: #fff;
	text-align: center;
	line-height: 30px;
	border-radius: 5px 0 0 5px;
	transition: width 0.3s ease;
}

/* === Scan History Table === */
.sajjetti-audit-section-wrapper {
	min-width: 380px;
	width: 100%;
	display: block;
}

.sajjetti-audit-flex-table {
	display: flex;
	flex-direction: column;
	border: 1px solid #c3c4c7;
	box-shadow: 0 1px 1px rgba(0, 0, 0, 0.04);
	background: #fff;
	margin-top: 6px;
	margin-bottom: 6px;
	font-size: 13px;
}

.sajjetti-audit-flex-head {
	font-weight: 600;
	background-color: #f6f7f7;
}

.sajjetti-audit-header-sticky {
	position: sticky;
	top: 32px;
	z-index: 100;
	border-bottom: 1px solid #e2e4e7;
}

@media (max-width: 782px) {
	.sajjetti-audit-header-sticky {
		top: 46px;
	}
}

@media (max-width: 600px) {
	.sajjetti-audit-header-sticky {
		position: static;
		top: auto;
		z-index: auto;
	}
}

.sajjetti-audit-flex-row {
	display: flex;
	flex-direction: row;
	border-top: 1px solid #e2e4e7;
	padding: 8px 10px;
}

.sajjetti-audit-flex-table .sajjetti-audit-flex-row:first-child {
	border-top: none;
}

/* === Overview Table Columns === */
.sajjetti-audit-overview-flex-col-id { width: 30px; }
.sajjetti-audit-overview-flex-col-created { width: 150px; }
.sajjetti-audit-overview-flex-col-type { width: 80px; }
.sajjetti-audit-overview-flex-col-name { flex: 1; }
.sajjetti-audit-overview-flex-col-files { width: 60px; }
.sajjetti-audit-overview-flex-col-optimization { width: 110px; }
.sajjetti-audit-overview-flex-col-warning { width: 80px; }
.sajjetti-audit-overview-flex-col-critical { width: 70px; }
.sajjetti-audit-overview-flex-col-progress { width: 70px; }
.sajjetti-audit-overview-flex-col-status { width: 80px; }
.sajjetti-audit-overview-flex-col-completed { width: 80px; }
.sajjetti-audit-overview-flex-col-actions { width: 80px; }
.sajjetti-audit-overview-flex-col-delete { width: 30px; }
.sajjetti-audit-overview-flex-col-view { width: 30px; }

/* Shared styling for all overview columns */
.sajjetti-audit-overview-flex-col-id,
.sajjetti-audit-overview-flex-col-created,
.sajjetti-audit-overview-flex-col-type,
.sajjetti-audit-overview-flex-col-name,
.sajjetti-audit-overview-flex-col-files,
.sajjetti-audit-overview-flex-col-optimization,
.sajjetti-audit-overview-flex-col-warning,
.sajjetti-audit-overview-flex-col-critical,
.sajjetti-audit-overview-flex-col-progress,
.sajjetti-audit-overview-flex-col-status,
.sajjetti-audit-overview-flex-col-completed,
.sajjetti-audit-overview-flex-col-actions,
.sajjetti-audit-overview-flex-col-delete,
.sajjetti-audit-overview-flex-col-view {
	padding: 0 8px;
	display: flex;
	flex-direction: row;
	align-items: center;
}

.sajjetti-audit-overview-no-scans-found {
	padding: 8px;
}

/* === Row Data Styling === */
.sajjetti-audit-flex-row-p {
	margin: 0;
	padding: 5px 5px;
	border-radius: 3px;
	transition: background-color 0.3s ease;
	min-width: 10px;

}

.sajjetti-audit-flex-row-a {
	margin: 0;
	padding: 0;
	cursor: pointer;
}
.sajjetti-audit-flex-row-a:hover {
	text-decoration: none;
}

.sajjetti-audit-flex-row:hover {
	background-color: #f6f7f7;
	transition: background-color 0.2s ease;
}

/* === Flash Highlight Animations === */
@keyframes flashGreen {
	0%   { background-color: #28a745; color: #ffffff; }
	50%  { background-color: #c3e6cb; }
	100% { background-color: transparent; color: inherit; }
}
.st-highlight-flash-green { animation: flashGreen 1s ease-in-out; }

@keyframes flashRed {
	0%   { background-color: #dc3545; color: #ffffff; }
	50%  { background-color: #f8d7da; }
	100% { background-color: transparent; }
}
.st-highlight-flash-red { animation: flashRed 1s ease-in-out; }

@keyframes flashOrange {
	0%   { background-color: #fd7e14; color: #ffffff; }
	50%  { background-color: #ffe5b4; }
	100% { background-color: transparent; }
}
.st-highlight-flash-orange { animation: flashOrange 1s ease-in-out; }

@keyframes flashYellow {
	0%   { background-color: #c9b900; color: #ffffff; }
	50%  { background-color: #fff3cd; }
	100% { background-color: transparent; }
}
.st-highlight-flash-yellow { animation: flashYellow 1s ease-in-out; }

/* === Static Colors for Issue Types === */
.sajjetti-audit-p-yellow { color: #c9b900; }
.sajjetti-audit-p-orange { color: #fd7e14; }
.sajjetti-audit-p-red { color: #dc3545; }

/* === Action Icon Buttons === */
.sajjetti-audit-scan-actions {
	display: flex;
	gap: 8px;
	justify-content: flex-end;
	align-items: center;
}

.sajjetti-audit-icon-button {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	padding: 6px;
	border: none;
	background: transparent;
	cursor: pointer;
	color: #0073aa;
	transition: color 0.2s ease, background-color 0.2s ease;
	border-radius: 4px;
	text-decoration: none;
	width: 18px;
	height: 18px;
}
.sajjetti-audit-icon-button:hover {
	background-color: #e0e0e0;
	color: #2271b1;
}
.sajjetti-audit-icon-button-delete:hover { color: #b32d2e; }
.sajjetti-audit-icon-button-view:hover { color: #006799; }
.sajjetti-audit-icon-button-rescan:hover { color: #006799; }
.sajjetti-audit-icon-button-mark:hover { color: #006799; }

/* === File Detail Columns === */
.sajjetti-audit-flex-label {
	min-width: 120px;
	width: 120px;
	padding: 0 8px;
	display: flex;
	flex-direction: row;
	align-items: center;
}
.sajjetti-audit-flex-value {
	flex: 1;
	padding: 0 8px;
	display: flex;
	flex-direction: row;
	align-items: center;
	overflow: hidden;
}

/* === Scan Detail Columns === */
.sajjetti-audit-scan-flex-col-filename { flex: 1; padding: 0 8px; display: flex; align-items: center; }
.sajjetti-audit-scan-flex-col-status { width: 120px; padding: 0 8px; display: flex; align-items: flex-start; }
.sajjetti-audit-scan-flex-col-progress { width: 150px; max-width: 150px; padding: 0 8px; display: flex; align-items: center; }
.sajjetti-audit-scan-flex-col-optimization { width: 110px; padding: 0 8px; display: flex; align-items: center; }
.sajjetti-audit-scan-flex-col-warning { width: 80px; padding: 0 8px; display: flex; align-items: center; }
.sajjetti-audit-scan-flex-col-critical { width: 70px; padding: 0 8px; display: flex; align-items: center; }
.sajjetti-audit-scan-flex-col-delete { width: 30px; padding: 0 8px; display: flex; align-items: center; }
.sajjetti-audit-scan-flex-col-view { width: 30px; padding: 0 8px; display: flex; align-items: center; }
.sajjetti-audit-scan-flex-col-icon { width: 30px; padding: 0 8px; display: flex; align-items: flex-start; }
.sajjetti-audit-scan-flex-col-type { width: 100px; padding: 0 8px; display: flex; align-items: flex-start; }


.sajjetti-audit-scan-flex-col-result-container-label {
	flex: 1; padding: 0 8px; display: flex; align-items: center;
}

.sajjetti-audit-scan-flex-col-result-container-data {
	flex: 1; padding: 0 8px; display: flex; align-items: center;

}

.sajjetti-audit-scan-flex-col-issue-label,
.sajjetti-audit-scan-flex-col-risk-label,
.sajjetti-audit-scan-flex-col-suggested-fix-label {
	flex: 0.33;
	padding: 0 8px;
	display: flex;
	align-items: flex-start;
	word-break: break-word;
	overflow-wrap: anywhere;
}

.sajjetti-audit-scan-flex-col-issue-data,
.sajjetti-audit-scan-flex-col-risk-data,
.sajjetti-audit-scan-flex-col-suggested-fix-data {
	flex: 0.33;
	padding: 0 8px;
	display: flex;
	align-items: flex-start;
	word-break: break-word;
	overflow-wrap: anywhere;
	flex-direction: column;
}

.sajjetti-audit-scan-flex-col-icon {
padding: 5px 8px 0px 8px;
}

.sajjetti-audit-scan-flex-col-mark { width: 30px; padding: 0 8px; display: flex; align-items: flex-start; }



.sajjetti-audit-flex-row-h {
	display: block;
	width: 100%;
	margin: 0;
	padding: 5px 0px;
	border-radius: 3px;
	transition: background-color 0.3s ease;
	font-weight: bold;

}


@media (min-width: 960px) {
	.sajjetti-audit-scan-flex-col-result-show-960 {
		display: none;
	}
}

@media (max-width: 960px) {
	.sajjetti-audit-scan-flex-col-result-container-data {
		display: block;
	}
	.sajjetti-audit-scan-flex-col-result-hide-960 {
		display: none;
	}
}

.sajjetti-audit-no-issues-found {
	flex: 1;
	padding: 10px;
	display: flex;
	align-items: flex-start;
	flex-direction: row;
}

.sajjetti-audit-no-issues-found svg {
	padding: 10px;
	fill: #28a745;
}

.sajjetti-audit-no-issues-found span {
	padding: 10px;
}

/* === Issue Type Icons === */
.sajjetti-audit-icon-yellow { fill: #c9b900; }
.sajjetti-audit-icon-orange { fill: #fd7e14; }
.sajjetti-audit-icon-red { fill: #dc3545; }

/* === File Data Columns === */
.sajjetti-audit-file-flex-col-data { width: 100px; padding: 0 8px; display: flex; align-items: flex-start; }
.sajjetti-audit-file-flex-col-message { flex: 1; padding: 0 8px; display: flex; align-items: flex-start; }

/* === File Navigation Header === */
.sajjetti-audit-file-nav-header {
	display: flex;
	justify-content: space-between;
	align-items: center;
	margin-bottom: 1rem;
	gap: 1rem;
	flex-wrap: wrap;
}

.sajjetti-audit-file-nav-left { flex: 0 0 30%; }

.sajjetti-audit-file-nav-right { flex: 1; }

.sajjetti-audit-file-nav-right .sajjetti-audit-prev-button { margin-right: 20px; }
.sajjetti-audit-file-nav-right { text-align: right; }

/* === Modal and Overlay Components === */
.sajjetti-audit-overlay {
	display: block;
	position: absolute;
	top: 0;
	left: 0;
	height: 100%;
	width: 100%;
	background-color: rgba(0, 0, 0, 0.7);
	z-index: 99999;
	box-sizing: border-box;
	min-width: 320px;
}
.sajjetti-audit-full-overlay {
	display: block;
	position: absolute;
	top: 0;
	left: 0;
	height: 100%;
	width: 100%;
	background-color: rgba(255, 255, 255, 0.7);
	z-index: 99999;
	box-sizing: border-box;
	min-width: 320px;
}
.sajjetti-audit-row-overlay {
	position: absolute;
	top: 0;
	left: 0;
	width: 100%;
	height: 100%;
	background-color: rgba(255, 255, 255, 0.6);
	z-index: 10;
	pointer-events: all;
}

/* === Loading Indicators === */
.sajjetti-audit-loader {
	display: block;
	width: 30px;
	height: 30px;
	margin: 20px auto;
	text-align: center;
}
.sajjetti-audit-loader-svg {
	position: absolute;
	top: 50%;
	left: 50%;
	min-width: 30px;
	min-height: 30px;
	transform: translate(-50%, -50%);
	width: 30px;
	height: 30px;
	margin: 10px;
	text-align: center;
}
.sajjetti-audit-loader-circle { fill: #F24F00; }

/* === Dialog Box === */
#sajjetti-audit-dialog-box {
	text-align: center;
	display: block;
	position: fixed;
	top: 50%;
	left: 50%;
	transform: translate(-50%, -50%);
	width: 50%;
	max-width: 320px;
	min-width: 320px;
	padding: 14px;
	background-color: #ffffff;
	color: #111;
	border: 1px solid #ccc;
	box-shadow: 0 10px 40px rgba(0, 0, 0, 0.3);
	border-radius: 8px;
	z-index: 99999;
	box-sizing: border-box;
}
.sajjetti-audit-dialog-box-message-container {
	margin-bottom: 20px;
	font-size: 16px;
	line-height: 1.5;
	color: #333;
	text-align: center;
}
.sajjetti-audit-dialog-box-button-container {
	display: flex;
	justify-content: center;
	gap: 10px;
}
.sajjetti-audit-dialog-box-confirm {
	padding: 8px 14px;
	background-color: #d63638;
	color: #fff;
	border: none;
	border-radius: 4px;
	cursor: pointer;
}
.sajjetti-audit-dialog-box-cancel {
	padding: 8px 14px;
	background-color: #757575;
	color: #fff;
	border: none;
	border-radius: 4px;
	cursor: pointer;
}

/* === Error Messaging === */

.sajjetti-audit-error-message {
	padding: 20px;
	color: #b30000;
	font-weight: bold;
	font-size: 15px;
	text-align: center;
}
.sajjetti-audit-error-message-button {
	margin-top: 20px;
	padding: 8px 16px;
	background-color: #757575;
	color: #fff;
	border: none;
	border-radius: 4px;
	cursor: pointer;
}

/* === Utility Classes === */
.ajax-update-row { position: relative; }
.sajjetti-audit-notice { margin-top: 25px; }

/* === Scan History === */

@media (max-width: 1200px) {
	.sajjetti-audit-overview-flex-col-created {
		display: none;
	}
	.ajax-update-created {
		display: none;
	}
	.sajjetti-audit-overview-flex-col-type {
		display: none;
	}
	.ajax-update-type {
		display: none;
	}
}

@media (max-width: 960px) {
	.sajjetti-audit-overview-flex-col-optimization {
		display: none;
	}
	.ajax-update-optimizations {
		display: none;
	}
	.sajjetti-audit-overview-flex-col-warning {
		display: none;
	}
	.ajax-update-warnings {
		display: none;
	}
	.sajjetti-audit-overview-flex-col-critical {
		display: none;
	}
	.ajax-update-criticals {
		display: none;
	}
}

@media (max-width: 782px) {
	.sajjetti-audit-overview-flex-col-created {
		display: none;
	}
	.ajax-update-created {
		display: none;
	}
	.sajjetti-audit-overview-flex-col-type {
		display: none;
	}
	.ajax-update-type {
		display: none;
	}
	.sajjetti-audit-overview-flex-col-files {
		display: none;
	}
	.ajax-update-files {
		display: none;
	}
	.sajjetti-audit-overview-flex-col-progress {
		display: none;
	}
	.ajax-update-progress {
		display: none;
	}
}

/* === Scan Details === */

@media (max-width: 960px) {
	.sajjetti-audit-scan-flex-col-optimization {
		display: none;
	}
	.sajjetti-audit-scan-flex-col-warning {
		display: none;
	}
	.sajjetti-audit-scan-flex-col-critical {
		display: none;
	}
}

/* === File Details === */

@media (max-width: 960px) {
	.sajjetti-audit-scan-flex-col-type {
		display: none;
	}
	.sajjetti-audit-scan-flex-col-status {
		display: none;
	}
}

/* host that the overlay will cover */
.sajjetti-audit-overlay-host { position: relative; }

/* half-transparent white overlay (no text) */
.sajjetti-audit-overlay {
	position: absolute;
	inset: 0;
	background: rgba(255,255,255,0.6);
	z-index: 10;
	pointer-events: auto; /* blocks clicks */
}

