/**
 * SEO Page Analyzer Admin Styles
 *
 * Provides styling for the admin page, including the input form, button,
 * and the final report layout to make it readable.
 *
 * @package    SEO_Page_Analyzer
 * @subpackage SEO_Page_Analyzer/assets/css
 * @author     WP-Autoplugin <support@wp-autoplugin.com>
 * @version    1.0.0
 */

/* ==========================================================================
   Variables
   ========================================================================== */

:root {
	--spa-color-good: #46b450;
	--spa-color-warning: #ffb900;
	--spa-color-error: #dc3232;
	--spa-color-border: #ccd0d4;
	--spa-color-bg: #f0f0f1;
	--spa-color-text-light: #50575e;
}

/* ==========================================================================
   Main Container & Form
   ========================================================================== */

.spa-container {
	background: #fff;
	border: 1px solid var(--spa-color-border);
	padding: 20px;
	margin-top: 20px;
	max-width: 900px;
	box-shadow: 0 1px 1px rgba(0, 0, 0, .04);
}

.spa-form .regular-text {
	width: 100%;
	max-width: 500px;
}

.spa-form .submit {
	margin-top: 10px;
}

#spa-analyze-button .spinner {
	float: none;
	vertical-align: middle;
	margin-left: 8px;
}

/* ==========================================================================
   Results Container
   ========================================================================== */

.spa-results-container {
	margin-top: 20px;
}

/* WordPress notices for errors */
.spa-results-container .notice {
	margin: 0;
}

/* ==========================================================================
   Score Display
   ========================================================================== */

.spa-score-wrapper {
	text-align: center;
	margin-bottom: 30px;
	padding-bottom: 20px;
	border-bottom: 1px solid var(--spa-color-border);
}

.spa-score-wrapper h3 {
	font-size: 16px;
	color: var(--spa-color-text-light);
	margin-bottom: 20px;
}

.spa-score-wrapper h3 a {
	word-break: break-all;
}

.spa-score-circle {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 150px;
	height: 150px;
	border-radius: 50%;
	border: 8px solid var(--spa-color-border);
	font-weight: 600;
	transition: border-color 0.3s ease-in-out;
}

.spa-score-circle.spa-status-good {
	border-color: var(--spa-color-good);
	color: var(--spa-color-good);
}

.spa-score-circle.spa-status-warning {
	border-color: var(--spa-color-warning);
	color: var(--spa-color-warning);
}

.spa-score-circle.spa-status-error {
	border-color: var(--spa-color-error);
	color: var(--spa-color-error);
}

.spa-score-number {
	font-size: 52px;
	line-height: 1;
}

.spa-score-label {
	font-size: 18px;
	line-height: 1;
	margin-left: 2px;
	align-self: flex-end;
	margin-bottom: 10px;
	opacity: 0.7;
}

/* ==========================================================================
   Collapsible Sections
   ========================================================================== */

.spa-section {
	border: 1px solid var(--spa-color-border);
	margin-bottom: 15px;
	border-radius: 3px;
	overflow: hidden; /* Ensures border-radius is respected */
}

.spa-section-header {
	display: flex;
	align-items: center;
	padding: 12px 15px;
	background-color: var(--spa-color-bg);
	cursor: pointer;
	font-size: 16px;
	font-weight: 600;
	margin: 0;
	transition: background-color 0.2s ease;
}

.spa-section-header:hover {
	background-color: #e5e5e5;
}

.spa-section-header .dashicons {
	margin-right: 10px;
	font-size: 20px;
	height: 20px;
	width: 20px;
}

.spa-toggle-icon {
	margin-left: auto;
	transition: transform 0.25s ease-in-out;
}

.spa-section-header.open .spa-toggle-icon {
	transform: rotate(180deg);
}

.spa-section-content {
	padding: 15px;
	background: #fff;
	border-top: 1px solid var(--spa-color-border);
}

/* ==========================================================================
   Individual Check Items
   ========================================================================== */

.spa-check-item {
	padding: 12px;
	margin-bottom: 10px;
	border-left: 4px solid var(--spa-color-border);
	background-color: #fdfdfd;
}

.spa-check-item:last-child {
	margin-bottom: 0;
}

/* Status colors for the left border */
.spa-check-item.spa-status-good {
	border-left-color: var(--spa-color-good);
}

.spa-check-item.spa-status-warning {
	border-left-color: var(--spa-color-warning);
}

.spa-check-item.spa-status-error {
	border-left-color: var(--spa-color-error);
}

.spa-item-header {
	display: flex;
	align-items: center;
	margin-bottom: 8px;
}

.spa-item-icon {
	font-size: 18px;
	margin-right: 10px;
	line-height: 1;
}

.spa-item-name {
	font-size: 14px;
	font-weight: 600;
	color: #2c3338;
}

.spa-item-body p {
	margin: 0;
	padding: 0;
	font-size: 13px;
	color: var(--spa-color-text-light);
}

.spa-item-recommendation {
	margin-top: 8px !important;
	padding-top: 8px !important;
	border-top: 1px dashed #e0e0e0;
}

.spa-item-recommendation strong {
	color: #2c3338;
}


/* ==========================================================================
   Responsive Design
   ========================================================================== */

@media screen and (max-width: 782px) {
	.spa-container {
		padding: 15px;
	}

	.spa-form .regular-text {
		max-width: 100%;
	}

	.spa-score-circle {
		width: 120px;
		height: 120px;
		border-width: 6px;
	}

	.spa-score-number {
		font-size: 42px;
	}

	.spa-score-label {
		font-size: 16px;
		margin-bottom: 8px;
	}

	.spa-section-header {
		font-size: 14px;
	}
}

@media screen and (max-width: 480px) {
	.spa-score-wrapper h3 {
		font-size: 14px;
	}

	.spa-item-header {
		flex-direction: column;
		align-items: flex-start;
	}

	.spa-item-icon {
		margin-right: 0;
		margin-bottom: 5px;
	}
}