@import url("compliance-dashboard-escalon.css");

:root {
	--gps-accent: #203952;
	--gps-accent-hover: #172A3C;
	--gps-accent-soft: rgba(32, 57, 82, 0.08);
	--gps-accent-gold: #B89558;

	--gps-cd-bg-card: #ffffff;
	--gps-cd-bg-sunken: #f8fafc;
	--gps-cd-bg-hover: #f1f5f9;
	--gps-cd-border: #e2e8f0;
	--gps-cd-border-subtle: #cbd5e1;
	--gps-cd-border-strong: #94a3b8;
	--gps-cd-text-main: #0f172a;
	--gps-cd-text-muted: #64748b;
	--gps-cd-text-heading: #1e293b;
	--gps-cd-shadow: 0 1px 3px rgba(0, 0, 0, 0.04);
}

/* WP-Admin Compliance Dashboard: estrictamente tema claro siempre */
body.wp-admin,
body.wp-admin :root,
body.wp-admin .gps-compliance-page,
body.wp-admin .gps-sst-dashboard,
body.wp-admin .gps-analytics-card,
body.wp-admin .gps-stat-card {
	--gps-accent: #203952 !important;
	--gps-accent-hover: #172A3C !important;
	--gps-accent-soft: rgba(32, 57, 82, 0.08) !important;
	--gps-accent-gold: #B89558 !important;

	--gps-cd-bg-card: #ffffff !important;
	--gps-cd-bg-sunken: #f8fafc !important;
	--gps-cd-bg-hover: #f1f5f9 !important;
	--gps-cd-border: #e2e8f0 !important;
	--gps-cd-border-subtle: #cbd5e1 !important;
	--gps-cd-border-strong: #94a3b8 !important;
	--gps-cd-text-main: #0f172a !important;
	--gps-cd-text-muted: #64748b !important;
	--gps-cd-text-heading: #1e293b !important;
	--gps-cd-shadow: 0 1px 3px rgba(0, 0, 0, 0.04) !important;
}

/* Modo oscuro: exclusivo del Portal de Clientes con data-theme="dark" explícito */
body.gps-portal[data-theme="dark"],
body.gps-portal [data-theme="dark"],
body:not(.wp-admin)[data-theme="dark"],
[data-theme="dark"] .gps-compliance-page {
	--gps-accent: #B89558;
	--gps-accent-hover: #C9A96E;
	--gps-accent-soft: rgba(184, 149, 88, 0.15);

	--gps-cd-bg-card: #1A1820;
	--gps-cd-bg-sunken: #14131A;
	--gps-cd-bg-hover: #23202C;
	--gps-cd-border: #2E2A38;
	--gps-cd-border-subtle: #3E384D;
	--gps-cd-border-strong: #544D63;
	--gps-cd-text-main: #F4F2EB;
	--gps-cd-text-muted: #A8A3B2;
	--gps-cd-text-heading: #FFFFFF;
	--gps-cd-shadow: 0 4px 20px rgba(0, 0, 0, 0.35);
}

.gps-compliance-page .gps-compliance-client-header {
			margin: 24px 0 16px;
			padding: 16px 20px;
			background: var(--gps-cd-bg-card);
			border: 1px solid var(--gps-cd-border);
			border-radius: 8px;
			box-shadow: var(--gps-cd-shadow);
		}
		.gps-compliance-page .gps-client-name {
			margin: 0 0 4px;
			font-size: 18px;
			font-weight: 600;
			color: var(--gps-cd-text-heading);
			display: flex;
			align-items: center;
			gap: 8px;
		}
		.gps-compliance-page .gps-client-name .dashicons {
			color: var(--gps-accent);
			font-size: 22px;
			width: 22px;
			height: 22px;
		}
		.gps-compliance-page .gps-last-update {
			margin: 0 0 8px;
			font-size: 12px;
			color: var(--gps-cd-text-muted);
		}
		/* ─── Contenedor Unificado y Sobrio de Cumplimiento Global y Estadísticas ─── */
		.gps-compliance-page .gps-compliance-top {
			display: grid;
			grid-template-columns: 200px 1fr;
			gap: 24px;
			align-items: center;
			background: var(--gps-cd-bg-card);
			border: 1px solid var(--gps-cd-border);
			border-radius: 12px;
			padding: 20px 24px;
			box-shadow: var(--gps-cd-shadow);
			margin-bottom: 24px;
			box-sizing: border-box;
		}
		.gps-compliance-page .gps-circular-progress {
			display: flex;
			flex-direction: column;
			align-items: center;
			justify-content: center;
			gap: 8px;
			padding: 4px 20px 4px 0;
			border-right: 1px solid var(--gps-cd-border);
			background: transparent;
			border-top: none;
			border-left: none;
			border-bottom: none;
			border-radius: 0;
			box-shadow: none;
		}
		.gps-compliance-page .gps-circular-progress svg circle:first-child {
			stroke: var(--gps-cd-border);
		}
		.gps-compliance-page .gps-circular-pct {
			font-size: 22px;
			font-weight: 700;
			color: var(--gps-cd-text-heading);
			font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;
		}
		.gps-compliance-page .gps-circular-label {
			font-size: 11px;
			color: var(--gps-cd-text-muted);
			text-transform: uppercase;
			letter-spacing: 0.05em;
			font-weight: 600;
		}

		.gps-compliance-page .gps-compliance-top-details {
			display: flex;
			flex-direction: column;
			gap: 14px;
			min-width: 0;
		}

		/* ─── Stats Grid Unificado Canónico (Fuente Única: Admin & Portal) ─── */
		.gps-compliance-page .gps-stats-grid,
		.gps-compliance-page .gps-compliance-stats,
		.gps-sst-dashboard .gps-compliance-page .gps-stats-grid,
		.gps-sst-dashboard .gps-compliance-page .gps-compliance-stats {
			display: grid;
			grid-template-columns: repeat(4, 1fr);
			gap: 14px;
			margin-bottom: 0;
			box-sizing: border-box;
		}
		.gps-compliance-page .gps-stat-card,
		.gps-sst-dashboard .gps-compliance-page .gps-stat-card {
			display: flex;
			align-items: center;
			gap: 14px;
			padding: 14px 16px;
			background: #ffffff !important;
			border: 1px solid #e2e8f0 !important;
			border-radius: 10px !important;
			box-shadow: 0 1px 3px rgba(0, 0, 0, 0.05), 0 1px 2px rgba(0, 0, 0, 0.03) !important;
			transition: box-shadow 0.2s ease, transform 0.2s ease, border-color 0.2s ease;
			min-width: 0;
			box-sizing: border-box;
			position: relative;
			overflow: hidden;
		}
		.gps-compliance-page .gps-stat-card:hover,
		.gps-sst-dashboard .gps-compliance-page .gps-stat-card:hover {
			background: #ffffff !important;
			border-color: #cbd5e1 !important;
			transform: translateY(-1px);
			box-shadow: 0 4px 6px -1px rgba(0, 0, 0, 0.08), 0 2px 4px -1px rgba(0, 0, 0, 0.04) !important;
		}
		.gps-compliance-page .gps-stat-icon,
		.gps-sst-dashboard .gps-compliance-page .gps-stat-icon {
			display: inline-flex;
			align-items: center;
			justify-content: center;
			width: 44px;
			height: 44px;
			border-radius: 10px;
			font-size: 22px;
			line-height: 1;
			flex-shrink: 0;
			box-sizing: border-box;
		}
		.gps-compliance-page .gps-stat-icon.dashicons::before,
		.gps-sst-dashboard .gps-compliance-page .gps-stat-icon.dashicons::before {
			font-size: 22px;
			width: 22px;
			height: 22px;
			line-height: 22px;
			display: inline-block;
		}
		.gps-compliance-page .gps-stat-content,
		.gps-sst-dashboard .gps-compliance-page .gps-stat-content {
			min-width: 0;
			flex: 1;
			box-sizing: border-box;
		}
		.gps-compliance-page .gps-stat-number,
		.gps-sst-dashboard .gps-compliance-page .gps-stat-number {
			font-size: 24px;
			font-weight: 700;
			line-height: 1.1;
			color: #0f172a !important;
		}
		.gps-compliance-page .gps-stat-label,
		.gps-sst-dashboard .gps-compliance-page .gps-stat-label {
			margin-top: 3px;
			font-size: 12px;
			color: #64748b !important;
			font-weight: 600;
			white-space: nowrap;
			overflow: hidden;
			text-overflow: ellipsis;
		}

		/* Bordes de estado e iconos de alto contraste (Light Mode Canónico) */
		.gps-compliance-page .gps-stat-card.gps-stat-entregados,
		.gps-sst-dashboard .gps-compliance-page .gps-stat-card.gps-stat-entregados {
			border-left: 4px solid #16a34a !important;
		}
		.gps-compliance-page .gps-stat-card.gps-stat-entregados .gps-stat-icon,
		.gps-sst-dashboard .gps-compliance-page .gps-stat-card.gps-stat-entregados .gps-stat-icon {
			background: #dcfce7 !important;
			border: 1px solid #bbf7d0 !important;
			color: #15803d !important;
		}

		.gps-compliance-page .gps-stat-card.gps-stat-pendientes,
		.gps-sst-dashboard .gps-compliance-page .gps-stat-card.gps-stat-pendientes {
			border-left: 4px solid #ca8a04 !important;
		}
		.gps-compliance-page .gps-stat-card.gps-stat-pendientes .gps-stat-icon,
		.gps-sst-dashboard .gps-compliance-page .gps-stat-card.gps-stat-pendientes .gps-stat-icon {
			background: #fef9c3 !important;
			border: 1px solid #fef08a !important;
			color: #a16207 !important;
		}

		.gps-compliance-page .gps-stat-card.gps-stat-no-cumple,
		.gps-sst-dashboard .gps-compliance-page .gps-stat-card.gps-stat-no-cumple {
			border-left: 4px solid #dc2626 !important;
		}
		.gps-compliance-page .gps-stat-card.gps-stat-no-cumple .gps-stat-icon,
		.gps-sst-dashboard .gps-compliance-page .gps-stat-card.gps-stat-no-cumple .gps-stat-icon {
			background: #fee2e2 !important;
			border: 1px solid #fecaca !important;
			color: #b91c1c !important;
		}

		.gps-compliance-page .gps-stat-card.gps-stat-clientes,
		.gps-sst-dashboard .gps-compliance-page .gps-stat-card.gps-stat-clientes {
			border-left: 4px solid #64748b !important;
		}
		.gps-compliance-page .gps-stat-card.gps-stat-clientes .gps-stat-icon,
		.gps-sst-dashboard .gps-compliance-page .gps-stat-card.gps-stat-clientes .gps-stat-icon {
			background: #f1f5f9 !important;
			border: 1px solid #cbd5e1 !important;
			color: #475569 !important;
		}

		/* Dark Mode para Stat Cards (Exclusivo con data-theme="dark") */
		[data-theme="dark"] .gps-compliance-page .gps-stat-card,
		body.gps-portal[data-theme="dark"] .gps-compliance-page .gps-stat-card {
			background: #14131A !important;
			border-color: #2E2A38 !important;
			box-shadow: none !important;
		}
		[data-theme="dark"] .gps-compliance-page .gps-stat-card:hover,
		body.gps-portal[data-theme="dark"] .gps-compliance-page .gps-stat-card:hover {
			background: #1e1c26 !important;
			border-color: #3E384D !important;
		}
		[data-theme="dark"] .gps-compliance-page .gps-stat-number,
		body.gps-portal[data-theme="dark"] .gps-compliance-page .gps-stat-number {
			color: #F4F2EB !important;
		}
		[data-theme="dark"] .gps-compliance-page .gps-stat-label,
		body.gps-portal[data-theme="dark"] .gps-compliance-page .gps-stat-label {
			color: #A8A3B2 !important;
		}
		[data-theme="dark"] .gps-compliance-page .gps-stat-card.gps-stat-entregados .gps-stat-icon,
		body.gps-portal[data-theme="dark"] .gps-compliance-page .gps-stat-card.gps-stat-entregados .gps-stat-icon {
			background: rgba(34, 197, 94, 0.18) !important;
			border-color: rgba(34, 197, 94, 0.35) !important;
			color: #86efac !important;
		}
		[data-theme="dark"] .gps-compliance-page .gps-stat-card.gps-stat-pendientes .gps-stat-icon,
		body.gps-portal[data-theme="dark"] .gps-compliance-page .gps-stat-card.gps-stat-pendientes .gps-stat-icon {
			background: rgba(234, 179, 8, 0.18) !important;
			border-color: rgba(234, 179, 8, 0.35) !important;
			color: #fde047 !important;
		}
		[data-theme="dark"] .gps-compliance-page .gps-stat-card.gps-stat-no-cumple .gps-stat-icon,
		body.gps-portal[data-theme="dark"] .gps-compliance-page .gps-stat-card.gps-stat-no-cumple .gps-stat-icon {
			background: rgba(239, 68, 68, 0.18) !important;
			border-color: rgba(239, 68, 68, 0.35) !important;
			color: #fca5a5 !important;
		}
		[data-theme="dark"] .gps-compliance-page .gps-stat-card.gps-stat-clientes .gps-stat-icon,
		body.gps-portal[data-theme="dark"] .gps-compliance-page .gps-stat-card.gps-stat-clientes .gps-stat-icon {
			background: rgba(148, 163, 184, 0.15) !important;
			border-color: rgba(148, 163, 184, 0.25) !important;
			color: #cbd5e1 !important;
		}

		.gps-compliance-page .gps-compliance-progress-summary {
			font-size: 12.5px;
			color: var(--gps-cd-text-muted);
			margin-top: 0;
			padding: 10px 0 0;
			border-top: 1px solid var(--gps-cd-border);
			border-bottom: none;
			border-left: none;
			border-right: none;
			background: transparent;
			border-radius: 0;
			display: flex;
			align-items: center;
			gap: 6px;
		}
		.gps-compliance-page .gps-compliance-progress-summary .gps-summary-icon {
			font-size: 16px;
			width: 16px;
			height: 16px;
			color: #94a3b8;
			flex-shrink: 0;
		}
		.gps-compliance-page .gps-phva-breakdown {
			margin-bottom: 24px;
		}
		.gps-compliance-page .gps-phva-grid {
			display: grid;
			grid-template-columns: repeat(4, 1fr);
			gap: 14px;
			margin-top: 12px;
		}
		.gps-compliance-page .gps-phva-card {
			padding: 16px;
			background: #ffffff !important;
			border: 1px solid #e2e8f0 !important;
			border-radius: 10px !important;
			box-shadow: 0 1px 3px rgba(0, 0, 0, 0.05) !important;
			border-top: 4px solid var(--gps-accent) !important;
			transition: transform 0.2s ease, box-shadow 0.2s ease;
			box-sizing: border-box;
		}
		.gps-compliance-page .gps-phva-card:hover {
			transform: translateY(-1px);
			box-shadow: 0 4px 6px -1px rgba(0, 0, 0, 0.08), 0 2px 4px -1px rgba(0, 0, 0, 0.04) !important;
		}
		.gps-compliance-page .gps-phva-card.gps-phva-p {
			border-top: 4px solid #1e3a8a !important;
		}
		.gps-compliance-page .gps-phva-card.gps-phva-p .dashicons {
			color: #1e3a8a !important;
		}
		.gps-compliance-page .gps-phva-card.gps-phva-p .gps-phva-bar-fill {
			background: #1e3a8a !important;
		}

		.gps-compliance-page .gps-phva-card.gps-phva-h {
			border-top: 4px solid #15803d !important;
		}
		.gps-compliance-page .gps-phva-card.gps-phva-h .dashicons {
			color: #15803d !important;
		}
		.gps-compliance-page .gps-phva-card.gps-phva-h .gps-phva-bar-fill {
			background: #15803d !important;
		}

		.gps-compliance-page .gps-phva-card.gps-phva-v {
			border-top: 4px solid #7e22ce !important;
		}
		.gps-compliance-page .gps-phva-card.gps-phva-v .dashicons {
			color: #7e22ce !important;
		}
		.gps-compliance-page .gps-phva-card.gps-phva-v .gps-phva-bar-fill {
			background: #7e22ce !important;
		}

		.gps-compliance-page .gps-phva-card.gps-phva-a {
			border-top: 4px solid #b45309 !important;
		}
		.gps-compliance-page .gps-phva-card.gps-phva-a .dashicons {
			color: #b45309 !important;
		}
		.gps-compliance-page .gps-phva-card.gps-phva-a .gps-phva-bar-fill {
			background: #b45309 !important;
		}
		.gps-compliance-page .gps-phva-header {
			display: flex;
			align-items: center;
			gap: 6px;
			margin-bottom: 8px;
		}
		.gps-compliance-page .gps-phva-header .dashicons {
			color: var(--gps-accent);
			font-size: 18px;
			width: 18px;
			height: 18px;
		}
		.gps-compliance-page .gps-phva-name {
			font-weight: 600;
			font-size: 14px;
			color: var(--gps-cd-text-heading);
		}
		.gps-compliance-page .gps-phva-range {
			margin-left: auto;
			font-size: 11px;
			color: var(--gps-cd-text-muted);
		}
		.gps-compliance-page .gps-phva-pct {
			font-size: 26px;
			font-weight: 700;
			color: #0f172a !important;
			line-height: 1.1;
			margin-bottom: 8px;
		}
		.gps-compliance-page .gps-phva-bar {
			height: 6px;
			background: #f1f5f9 !important;
			border-radius: 3px;
			overflow: hidden;
			margin-bottom: 12px;
		}
		.gps-compliance-page .gps-phva-bar-fill {
			height: 100%;
			background: var(--gps-accent);
			transition: width 0.3s ease;
		}
		.gps-compliance-page .gps-phva-detail {
			display: flex;
			gap: 6px;
			flex-wrap: wrap;
		}

		/* Chips PHVA canónicos de alto contraste (Light Mode) */
		.gps-compliance-page .gps-phva-chip,
		.gps-phva-chip {
			font-size: 11px;
			font-weight: 700;
			padding: 3px 8px;
			border-radius: 6px;
			line-height: 1.2;
			display: inline-flex;
			align-items: center;
			gap: 3px;
			box-sizing: border-box;
		}
		.gps-compliance-page .gps-phva-chip-ok,
		.gps-phva-chip-ok { background: #dcfce7 !important; color: #15803d !important; border: 1px solid #bbf7d0 !important; }
		.gps-compliance-page .gps-phva-chip-warn,
		.gps-phva-chip-warn { background: #fef9c3 !important; color: #a16207 !important; border: 1px solid #fef08a !important; }
		.gps-compliance-page .gps-phva-chip-bad,
		.gps-phva-chip-bad { background: #fee2e2 !important; color: #b91c1c !important; border: 1px solid #fecaca !important; }
		.gps-compliance-page .gps-phva-chip-na,
		.gps-phva-chip-na { background: #f1f5f9 !important; color: #475569 !important; border: 1px solid #cbd5e1 !important; }

		/* Dark Mode para PHVA Cards y Chips (Exclusivo con data-theme="dark") */
		[data-theme="dark"] .gps-compliance-page .gps-phva-card,
		body.gps-portal[data-theme="dark"] .gps-compliance-page .gps-phva-card {
			background: #1A1820 !important;
			border-color: #2E2A38 !important;
			box-shadow: none !important;
		}
		[data-theme="dark"] .gps-compliance-page .gps-phva-card:hover,
		body.gps-portal[data-theme="dark"] .gps-compliance-page .gps-phva-card:hover {
			background: #1e1c26 !important;
			border-color: #3E384D !important;
		}
		[data-theme="dark"] .gps-compliance-page .gps-phva-pct,
		body.gps-portal[data-theme="dark"] .gps-compliance-page .gps-phva-pct {
			color: #F4F2EB !important;
		}
		[data-theme="dark"] .gps-compliance-page .gps-phva-bar,
		body.gps-portal[data-theme="dark"] .gps-compliance-page .gps-phva-bar {
			background: #14131A !important;
		}
		[data-theme="dark"] .gps-compliance-page .gps-phva-chip-ok,
		body.gps-portal[data-theme="dark"] .gps-compliance-page .gps-phva-chip-ok {
			background: rgba(34, 197, 94, 0.18) !important;
			color: #86efac !important;
			border-color: rgba(34, 197, 94, 0.35) !important;
		}
		[data-theme="dark"] .gps-compliance-page .gps-phva-chip-warn,
		body.gps-portal[data-theme="dark"] .gps-compliance-page .gps-phva-chip-warn {
			background: rgba(234, 179, 8, 0.18) !important;
			color: #fde047 !important;
			border-color: rgba(234, 179, 8, 0.35) !important;
		}
		[data-theme="dark"] .gps-compliance-page .gps-phva-chip-bad,
		body.gps-portal[data-theme="dark"] .gps-compliance-page .gps-phva-chip-bad {
			background: rgba(239, 68, 68, 0.18) !important;
			color: #fca5a5 !important;
			border-color: rgba(239, 68, 68, 0.35) !important;
		}
		[data-theme="dark"] .gps-compliance-page .gps-phva-chip-na,
		body.gps-portal[data-theme="dark"] .gps-compliance-page .gps-phva-chip-na {
			background: rgba(148, 163, 184, 0.15) !important;
			color: #cbd5e1 !important;
			border-color: rgba(148, 163, 184, 0.25) !important;
		}
		.gps-compliance-page .gps-estandares-list-wrap,
		.gps-sst-dashboard .gps-compliance-page .gps-estandares-list-wrap {
			margin-bottom: 24px;
			background: var(--gps-cd-bg-card);
			border: 1px solid var(--gps-cd-border);
			border-radius: 8px;
			overflow: hidden;
			box-shadow: var(--gps-cd-shadow);
		}
		.gps-compliance-page .gps-section-title,
		.gps-sst-dashboard .gps-compliance-page .gps-section-title {
			margin: 0;
			padding: 16px 20px;
			font-size: 14px;
			font-weight: 600;
			color: var(--gps-cd-text-heading);
			border-bottom: 1px solid var(--gps-cd-border);
			background: var(--gps-cd-bg-sunken);
			display: flex;
			align-items: center;
			line-height: 1.4;
		}
		.gps-compliance-page .gps-section-title .gps-estandares-count,
		.gps-sst-dashboard .gps-compliance-page .gps-section-title .gps-estandares-count {
			display: inline-block;
			margin-left: 8px;
			padding: 2px 10px;
			border-radius: 10px;
			background: var(--gps-accent-soft);
			color: var(--gps-accent);
			font-size: 12px;
			font-weight: 600;
		}
		.gps-compliance-page .gps-estandares-table {
			width: 100%;
			border-collapse: collapse;
			font-size: 13px;
		}
		.gps-compliance-page .gps-estandares-table thead th {
			padding: 10px 12px;
			text-align: left;
			font-weight: 600;
			color: var(--gps-cd-text-heading);
			background: var(--gps-cd-bg-sunken);
			border-bottom: 1px solid var(--gps-cd-border);
		}
		.gps-compliance-page .gps-estandares-table tbody td {
			padding: 10px 12px;
			border-bottom: 1px solid var(--gps-cd-border);
			color: var(--gps-cd-text-main);
			vertical-align: top;
		}
		.gps-compliance-page .gps-estandares-table tbody tr:last-child td {
			border-bottom: none;
		}
		.gps-compliance-page .gps-estandares-table .gps-col-num { width: 75px; text-align: center; font-weight: 600; color: var(--gps-cd-text-muted); }
		.gps-compliance-page .gps-estandares-table .gps-col-ciclo { width: 50px; text-align: center; }
		.gps-compliance-page .gps-estandares-table .gps-col-estado { width: 165px; }
		.gps-compliance-page .gps-estandares-table .gps-col-evidencia { width: 200px; }
		.gps-compliance-page .gps-estandares-table .gps-col-obs { width: 180px; }
		.gps-compliance-page .gps-row-save-status {
			font-size: 11px;
			margin-top: 4px;
			line-height: 1.2;
			min-height: 14px;
			transition: all 0.2s ease;
		}
		.gps-compliance-page .gps-row-save-status.gps-save-saving {
			color: var(--gps-accent);
			font-weight: 500;
		}
		.gps-compliance-page .gps-row-save-status.gps-save-saved {
			color: #15803d;
			font-weight: 600;
		}
		.gps-compliance-page .gps-row-save-status.gps-save-error {
			color: #b91c1c;
			font-weight: 600;
		}
		select.gps-eval-estado,
		select.gps-matriz-estado,
		.gps-compliance-page select.gps-eval-estado,
		.gps-compliance-page select.gps-matriz-estado {
			width: 100%;
			font-size: 12px;
			font-weight: 600;
			padding: 6px 8px;
			border-radius: 6px;
			border: 1.5px solid var(--gps-cd-border-subtle);
			background-color: var(--gps-cd-bg-card);
			color: var(--gps-cd-text-main);
			cursor: pointer;
		}
		tr.gps-row-status-cumple select.gps-eval-estado,
		tr.gps-row-status-cumple select.gps-matriz-estado,
		.gps-compliance-page tr.gps-row-status-cumple select.gps-eval-estado,
		.gps-compliance-page tr.gps-row-status-cumple select.gps-matriz-estado {
			border-color: #16a34a;
			color: #15803d;
			background-color: #f0fdf4;
		}
		tr.gps-row-status-no_cumple select.gps-eval-estado,
		tr.gps-row-status-no_cumple select.gps-matriz-estado,
		.gps-compliance-page tr.gps-row-status-no_cumple select.gps-eval-estado,
		.gps-compliance-page tr.gps-row-status-no_cumple select.gps-matriz-estado {
			border-color: #dc2626;
			color: #b91c1c;
			background-color: #fef2f2;
		}
		tr.gps-row-status-no_aplica select.gps-eval-estado,
		tr.gps-row-status-no_aplica select.gps-matriz-estado,
		.gps-compliance-page tr.gps-row-status-no_aplica select.gps-eval-estado,
		.gps-compliance-page tr.gps-row-status-no_aplica select.gps-matriz-estado {
			border-color: #64748b;
			color: #334155;
			background-color: #f1f5f9;
		}
		tr.gps-row-status-parcial select.gps-eval-estado,
		tr.gps-row-status-parcial select.gps-matriz-estado,
		.gps-compliance-page tr.gps-row-status-parcial select.gps-eval-estado,
		.gps-compliance-page tr.gps-row-status-parcial select.gps-matriz-estado {
			border-color: #d97706;
			color: #b45309;
			background-color: #fffbeb;
		}
		tr.gps-row-status-pendiente select.gps-eval-estado,
		tr.gps-row-status-pendiente select.gps-matriz-estado,
		.gps-compliance-page tr.gps-row-status-pendiente select.gps-eval-estado,
		.gps-compliance-page tr.gps-row-status-pendiente select.gps-matriz-estado {
			border-color: #cbd5e1;
			color: #64748b;
			background-color: #f8fafc;
		}
		tr.gps-row-status-cumple,
		.gps-compliance-page tr.gps-row-status-cumple {
			background-color: #f6fbf8;
		}
		tr.gps-row-status-no_cumple,
		.gps-compliance-page tr.gps-row-status-no_cumple {
			background-color: #fdf7f7;
		}
		tr.gps-row-status-no_aplica,
		.gps-compliance-page tr.gps-row-status-no_aplica {
			background-color: #f8f9fa;
		}
		.gps-compliance-page tr.gps-row-status-parcial {
			background-color: #fffdf5;
		}
		.gps-compliance-page tr.gps-row-status-pendiente {
			background-color: #ffffff;
		}
		.gps-compliance-page .gps-estandares-table select,
		.gps-compliance-page .gps-estandares-table input[type="text"],
		.gps-compliance-page .gps-estandares-table textarea {
			width: 100%;
			font-size: 12px;
			border-radius: 4px;
			border-color: #dcdcde;
		}
		.gps-compliance-page .gps-estandares-table textarea {
			resize: vertical;
			min-height: 36px;
		}
		.gps-compliance-page .gps-num-seq {
			display: block;
			font-size: 10px;
			color: #94a3b8;
			line-height: 1;
			margin-bottom: 2px;
		}
		.gps-compliance-page .gps-item-badge {
			display: inline-block;
			background: #e0f2fe;
			color: #0369a1;
			font-size: 12px;
			font-weight: 700;
			padding: 2px 6px;
			border-radius: 4px;
			border: 1px solid #bae6fd;
			white-space: nowrap;
		}
		.gps-compliance-page tr.gps-table-group-ciclo td,
		.gps-compliance-page tr.gps-row-ciclo-header td {
			padding: 10px 14px;
			font-size: 13px;
			font-weight: 700;
			letter-spacing: 0.5px;
			border-top: 2px solid #cbd5e1;
			border-bottom: 1px solid #cbd5e1;
		}
		.gps-compliance-page tr.gps-table-group-ciclo-p td,
		.gps-compliance-page tr[data-ciclo="p"] td { background: #eff6ff !important; color: #1e3a8a !important; border-left: 6px solid #1e3a8a !important; }
		.gps-compliance-page tr.gps-table-group-ciclo-h td,
		.gps-compliance-page tr[data-ciclo="h"] td { background: #f0fdf4 !important; color: #14532d !important; border-left: 6px solid #15803d !important; }
		.gps-compliance-page tr.gps-table-group-ciclo-v td,
		.gps-compliance-page tr[data-ciclo="v"] td { background: #faf5ff !important; color: #581c87 !important; border-left: 6px solid #7e22ce !important; }
		.gps-compliance-page tr.gps-table-group-ciclo-a td,
		.gps-compliance-page tr[data-ciclo="a"] td { background: #fffbeb !important; color: #78350f !important; border-left: 6px solid #b45309 !important; }
		.gps-compliance-page .gps-ciclo-header-content,
		.gps-compliance-page .gps-group-ciclo-content {
			display: flex;
			align-items: center;
			gap: 8px;
		}
		.gps-compliance-page .gps-group-ciclo-badge {
			display: inline-flex;
			align-items: center;
			justify-content: center;
			width: 22px;
			height: 22px;
			border-radius: 50%;
			font-size: 11px;
			font-weight: 800;
			background: rgba(0, 0, 0, 0.08);
		}
		.gps-compliance-page tr.gps-table-group-seccion td,
		.gps-compliance-page tr.gps-row-seccion-header td {
			background: var(--gps-cd-bg-sunken);
			color: var(--gps-cd-text-heading);
			padding: 8px 14px;
			border-bottom: 1px solid var(--gps-cd-border);
			border-left: 4px solid var(--gps-cd-border-strong);
			font-size: 12px;
			font-weight: 700;
			text-transform: uppercase;
			letter-spacing: 0.3px;
		}
		.gps-compliance-page .gps-group-seccion-content {
			display: flex;
			align-items: center;
			gap: 6px;
			font-size: 12px;
			font-weight: 700;
			text-transform: uppercase;
			letter-spacing: 0.3px;
		}
		.gps-compliance-page .gps-group-seccion-content .dashicons {
			font-size: 16px;
			width: 16px;
			height: 16px;
			color: var(--gps-cd-text-muted);
		}
		.gps-compliance-page tr.gps-table-group-subseccion td,
		.gps-compliance-page tr.gps-row-subestandar-header td {
			background: var(--gps-cd-bg-hover);
			color: var(--gps-cd-text-muted);
			padding: 6px 14px 6px 20px;
			border-bottom: 1px solid var(--gps-cd-border);
			font-size: 12px;
			font-weight: 600;
			font-style: italic;
		}
		.gps-compliance-page .gps-group-subseccion-content {
			display: flex;
			align-items: center;
			gap: 6px;
		}
		.gps-compliance-page .gps-group-subseccion-content .dashicons {
			font-size: 14px;
			width: 14px;
			height: 14px;
			color: var(--gps-cd-text-muted);
		}
		.gps-compliance-page .gps-estandar-titulo-wrap {
			display: flex;
			align-items: baseline;
			flex-wrap: wrap;
			gap: 6px;
			margin-bottom: 4px;
		}
		.gps-compliance-page .gps-estandar-titulo {
			font-size: 13px;
			color: var(--gps-cd-text-heading);
		}
		.gps-compliance-page .gps-estandar-valor-badge {
			display: inline-block;
			background: #fef3c7;
			color: #92400e;
			font-size: 10px;
			font-weight: 700;
			padding: 1px 5px;
			border-radius: 3px;
			border: 1px solid #fde68a;
			white-space: nowrap;
		}
		.gps-compliance-page .gps-estandar-criterio,
		.gps-compliance-page .gps-estandar-modo {
			font-size: 11.5px;
			line-height: 1.45;
			margin-top: 4px;
			color: var(--gps-cd-text-muted);
		}
		.gps-compliance-page .gps-meta-label {
			font-weight: 700;
			color: var(--gps-cd-text-heading);
			margin-right: 4px;
		}
		.gps-compliance-page .gps-estandar-modo {
			background: var(--gps-cd-bg-sunken);
			padding: 5px 8px;
			border-radius: 4px;
			border-left: 2px solid var(--gps-cd-border-subtle);
		}
		.gps-compliance-page .gps-estandar-desc {
			font-size: 12px;
			color: var(--gps-cd-text-muted);
			margin-top: 4px;
			line-height: 1.4;
		}
		.gps-compliance-page .gps-estandar-meta {
			font-size: 11px;
			margin-top: 4px;
		}
		.gps-compliance-page .gps-phva-pill {
			display: inline-flex;
			align-items: center;
			justify-content: center;
			width: 28px;
			height: 28px;
			border-radius: 50%;
			font-size: 12px;
			font-weight: 800;
			color: #ffffff !important;
			box-shadow: 0 1px 2px rgba(0, 0, 0, 0.15);
		}
		.gps-compliance-page .gps-phva-pill.gps-phva-pill-large {
			width: 26px;
			height: 26px;
			font-size: 11px;
		}
		.gps-compliance-page .gps-phva-pill-p { background: #1e3a8a !important; color: #ffffff !important; }
		.gps-compliance-page .gps-phva-pill-h { background: #15803d !important; color: #ffffff !important; }
		.gps-compliance-page .gps-phva-pill-v { background: #7e22ce !important; color: #ffffff !important; }
		.gps-compliance-page .gps-phva-pill-a { background: #b45309 !important; color: #ffffff !important; }

		/* Badges de Estado canónicos para Autoevaluación (Admin y Portal) */
		.gps-compliance-page .gps-portal-badge,
		.gps-portal-badge {
			display: inline-block;
			font-size: 11px;
			font-weight: 600;
			line-height: 1.2;
			border-radius: 6px;
			text-align: center;
			white-space: nowrap;
		}
		.gps-compliance-page .gps-portal-badge--estado,
		.gps-portal-badge--estado {
			padding: 4px 10px;
			letter-spacing: normal;
			text-transform: none;
		}
		.gps-compliance-page .gps-badge-cumple,
		.gps-badge-cumple {
			background: #dcfce7 !important;
			color: #15803d !important;
			border: 1px solid #bbf7d0 !important;
		}
		.gps-compliance-page .gps-badge-parcial,
		.gps-badge-parcial {
			background: #fef9c3 !important;
			color: #a16207 !important;
			border: 1px solid #fef08a !important;
		}
		.gps-compliance-page .gps-badge-no_cumple,
		.gps-badge-no_cumple {
			background: #fee2e2 !important;
			color: #b91c1c !important;
			border: 1px solid #fecaca !important;
		}
		.gps-compliance-page .gps-badge-no_aplica,
		.gps-badge-no_aplica {
			background: #f1f5f9 !important;
			color: #475569 !important;
			border: 1px solid #cbd5e1 !important;
		}
		.gps-compliance-page .gps-badge-sin-evaluar,
		.gps-badge-sin-evaluar {
			background: #f8fafc !important;
			color: #94a3b8 !important;
			border: 1px dashed #cbd5e1 !important;
		}

		/* Dark mode para badges de estado */
		body.gps-portal[data-theme="dark"] .gps-badge-cumple,
		[data-theme="dark"] .gps-badge-cumple {
			background: rgba(34, 197, 94, 0.18) !important;
			color: #86efac !important;
			border-color: rgba(34, 197, 94, 0.35) !important;
		}
		body.gps-portal[data-theme="dark"] .gps-badge-parcial,
		[data-theme="dark"] .gps-badge-parcial {
			background: rgba(234, 179, 8, 0.18) !important;
			color: #fde047 !important;
			border-color: rgba(234, 179, 8, 0.35) !important;
		}
		body.gps-portal[data-theme="dark"] .gps-badge-no_cumple,
		[data-theme="dark"] .gps-badge-no_cumple {
			background: rgba(239, 68, 68, 0.18) !important;
			color: #fca5a5 !important;
			border-color: rgba(239, 68, 68, 0.35) !important;
		}
		body.gps-portal[data-theme="dark"] .gps-badge-no_aplica,
		[data-theme="dark"] .gps-badge-no_aplica {
			background: rgba(148, 163, 184, 0.12) !important;
			color: #cbd5e1 !important;
			border-color: rgba(148, 163, 184, 0.25) !important;
		}
		body.gps-portal[data-theme="dark"] .gps-badge-sin-evaluar,
		[data-theme="dark"] .gps-badge-sin-evaluar {
			background: rgba(148, 163, 184, 0.08) !important;
			color: #94a3b8 !important;
			border-color: rgba(148, 163, 184, 0.2) !important;
		}

		.gps-compliance-page .gps-eval-save.gps-saved {
			background: #2a9d6b !important;
			border-color: #1f7d52 !important;
		}
		.gps-compliance-page .gps-eval-save.gps-error {
			background: #d63638 !important;
			border-color: #b32d2e !important;
		}
		.gps-compliance-page .gps-compliance-export {
			padding: 16px 20px;
			background: var(--gps-cd-bg-card);
			border: 1px solid var(--gps-cd-border);
			border-radius: 8px;
		}
		.gps-compliance-page .gps-compliance-export h3 {
			margin: 0 0 8px;
			font-size: 14px;
		}
		.gps-compliance-page .gps-export-buttons {
			display: flex;
			flex-wrap: wrap;
			align-items: center;
			gap: 12px;
			margin-top: 14px;
		}
		.gps-compliance-page .gps-btn {
			display: inline-flex;
			align-items: center;
			justify-content: center;
			gap: 6px;
			padding: 8px 16px;
			border-radius: 6px;
			font-size: 13px;
			font-weight: 600;
			text-decoration: none;
			cursor: pointer;
			border: 1px solid transparent;
			line-height: 1.4;
			transition: all 0.2s ease-in-out;
		}
		.gps-compliance-page .gps-btn-ghost {
			background: var(--gps-cd-bg-card);
			color: var(--gps-accent);
			border-color: var(--gps-cd-border);
		}
		.gps-compliance-page .gps-btn-ghost:hover {
			background: var(--gps-cd-bg-hover);
			border-color: var(--gps-accent);
			color: var(--gps-accent-hover);
		}
		.gps-compliance-page .gps-btn-archive-autoeval {
			background: linear-gradient(135deg, #059669 0%, #10b981 100%);
			color: #ffffff !important;
			border: 1px solid #047857;
			box-shadow: 0 2px 6px rgba(5, 150, 105, 0.35);
			font-weight: 700;
			letter-spacing: 0.2px;
			padding: 9px 18px;
		}
		.gps-compliance-page .gps-btn-archive-autoeval:hover:not(:disabled) {
			background: linear-gradient(135deg, #047857 0%, #059669 100%);
			box-shadow: 0 4px 12px rgba(5, 150, 105, 0.45);
			transform: translateY(-1px);
			color: #ffffff !important;
		}
		.gps-compliance-page .gps-btn-archive-autoeval:active:not(:disabled) {
			transform: translateY(0);
			box-shadow: 0 1px 3px rgba(5, 150, 105, 0.35);
		}
		.gps-compliance-page .gps-btn-archive-autoeval .dashicons {
			font-size: 18px;
			width: 18px;
			height: 18px;
			line-height: 1;
		}
		.gps-compliance-page .gps-export-buttons .gps-btn[disabled] {
			opacity: 0.55;
			cursor: not-allowed;
			transform: none;
		}
		.gps-compliance-page .gps-archivar-status .gps-notice-inline {
			padding: 10px 14px;
			border-radius: 6px;
			font-size: 13px;
			display: flex;
			align-items: center;
			gap: 8px;
			margin-top: 8px;
		}
		.gps-compliance-page .gps-archivar-status .gps-notice-success {
			background: #ecfdf5;
			border: 1px solid #a7f3d0;
			color: #065f46;
		}
		.gps-compliance-page .gps-archivar-status .gps-notice-info {
			background: #eff6ff;
			border: 1px solid #bfdbfe;
			color: #1e40af;
		}
		.gps-compliance-page .gps-archivar-status .gps-notice-error {
			background: #fef2f2;
			border: 1px solid #fecaca;
			color: #991b1b;
		}
		.gps-compliance-page .gps-muted {
			color: var(--gps-cd-text-muted);
			font-size: 12px;
		}
		.gps-compliance-page .gps-empty-state {
			padding: 40px 20px;
			text-align: center;
			color: var(--gps-cd-text-muted);
		}
		.gps-compliance-page .gps-empty-icon {
			font-size: 36px;
			margin-bottom: 8px;
		}
		/* v1.9.0: layout para las nuevas secciones enriquecidas (trend, indicadores, etc.). */
		.gps-compliance-page .gps-analytics-card {
			margin-bottom: 16px;
		}
		.gps-compliance-page .gps-trend-svg {
			display: block;
			width: 100%;
			max-width: 480px;
			height: auto;
			margin: 8px auto;
		}

		/* ─── Botones Primarios y Secundarios con Dashicons Centrados ─── */
		.gps-compliance-page .button,
		.gps-compliance-page .button-primary,
		.gps-compliance-page .button-secondary {
			display: inline-flex !important;
			align-items: center !important;
			justify-content: center !important;
			gap: 6px !important;
			vertical-align: middle !important;
			box-sizing: border-box !important;
			line-height: 1.4 !important;
			padding: 0 12px !important;
		}
		.gps-compliance-page .button .dashicons {
			font-size: 16px !important;
			width: 16px !important;
			height: 16px !important;
			line-height: 16px !important;
			display: inline-flex !important;
			align-items: center !important;
			justify-content: center !important;
			margin: 0 !important;
			padding: 0 !important;
			flex-shrink: 0 !important;
			vertical-align: middle !important;
		}
		.gps-compliance-page .button .dashicons::before {
			font-size: 16px !important;
			width: 16px !important;
			height: 16px !important;
			line-height: 16px !important;
			display: inline-block !important;
			text-align: center !important;
			vertical-align: top !important;
			margin: 0 !important;
			padding: 0 !important;
		}
		.gps-compliance-page .button-small { padding: 0 8px !important; min-height: 26px !important; font-size: 11px !important; gap: 4px !important; }
		.gps-compliance-page .button-small .dashicons,
		.gps-compliance-page .button-small .dashicons::before { font-size: 14px !important; width: 14px !important; height: 14px !important; line-height: 14px !important; }
		@media (max-width: 1200px) {
			.gps-compliance-page .gps-compliance-top { grid-template-columns: 1fr; gap: 20px; }
			.gps-compliance-page .gps-circular-progress {
				padding: 0 0 16px 0;
				border-right: none;
				border-bottom: 1px solid #e2e8f0;
			}
			.gps-compliance-page .gps-compliance-stats { grid-template-columns: repeat(2, 1fr); }
			.gps-compliance-page .gps-phva-grid { grid-template-columns: repeat(2, 1fr); }
		}
		@media (max-width: 782px) {
			.gps-compliance-page .gps-compliance-stats { grid-template-columns: 1fr; }
			.gps-compliance-page .gps-phva-grid { grid-template-columns: 1fr; }
		}