/* GCDC Panel de Marketing — estilos del admin */

/* Montserrat autohospedada (sin depender de Google Fonts en tiempo de
   ejecución): los .woff2 viven en assets/fonts/. Es la tipografía de todo
   el plugin — front-end (.gcdcm-front) y las pantallas de respaldo en
   wp-admin (.gcdcm-wrap) por igual. */
@font-face {
	font-family: "Montserrat";
	font-style: normal;
	font-weight: 400;
	font-display: swap;
	src: url("../fonts/montserrat-400.woff2") format("woff2");
}

@font-face {
	font-family: "Montserrat";
	font-style: normal;
	font-weight: 500;
	font-display: swap;
	src: url("../fonts/montserrat-500.woff2") format("woff2");
}

@font-face {
	font-family: "Montserrat";
	font-style: normal;
	font-weight: 600;
	font-display: swap;
	src: url("../fonts/montserrat-600.woff2") format("woff2");
}

@font-face {
	font-family: "Montserrat";
	font-style: normal;
	font-weight: 700;
	font-display: swap;
	src: url("../fonts/montserrat-700.woff2") format("woff2");
}

@font-face {
	font-family: "Montserrat";
	font-style: normal;
	font-weight: 800;
	font-display: swap;
	src: url("../fonts/montserrat-800.woff2") format("woff2");
}

.gcdcm-wrap {
	--gcdcm-ok: #00a32a;
	--gcdcm-ok-bg: #edfaef;
	--gcdcm-atencion: #b45f06;
	--gcdcm-atencion-bg: #fdf3e2;
	--gcdcm-critico: #d63638;
	--gcdcm-critico-bg: #fbeaea;
	--gcdcm-info: #2271b1;
	--gcdcm-info-bg: #edf4fb;
	--gcdcm-neutro: #50575e;
	--gcdcm-neutro-bg: #f0f0f1;
	--gcdcm-border: #dcdcde;
	--gcdcm-radius: 6px;

	max-width: 1200px;
	font-family: "Montserrat", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;
}

/* Los controles de formulario no heredan el font-family del body por
   default en la mayoría de los navegadores (usan la tipografía nativa del
   sistema) — sin esto, botones/inputs/selects se ven en una tipografía
   distinta a la del resto del texto. Vale tanto para wp-admin (.gcdcm-wrap)
   como para el front-end (.gcdcm-front, que también lleva la clase
   .gcdcm-wrap — ver class-gcdcm-front.php). */
.gcdcm-wrap button,
.gcdcm-wrap input,
.gcdcm-wrap select,
.gcdcm-wrap textarea {
	font-family: inherit;
}

.gcdcm-wrap h1 {
	display: flex;
	align-items: center;
	gap: 0.5em;
}

.gcdcm-wrap h1 .page-title-action,
.gcdcm-wrap h2 .page-title-action,
.gcdcm-wrap h3 .page-title-action {
	margin-left: 0.5em;
	font-size: 0.6em;
	vertical-align: middle;
}

.gcdcm-wrap h2 {
	margin-top: 2.5em;
	margin-bottom: 0.75em;
	padding-bottom: 0.4em;
	border-bottom: 1px solid var(--gcdcm-border);
	font-size: 1.2em;
}

.gcdcm-wrap > p.description {
	font-size: 14px;
	max-width: 70ch;
}

/* Layout */

.gcdcm-wrap .gcdcm-two-columns {
	display: flex;
	gap: 2em;
	flex-wrap: wrap;
	align-items: flex-start;
}

.gcdcm-wrap .gcdcm-two-columns > div {
	flex: 1;
	min-width: 280px;
}

.gcdcm-wrap .gcdcm-panel {
	background: #fff;
	border: 1px solid var(--gcdcm-border);
	border-radius: var(--gcdcm-radius);
	padding: 1.25em 1.5em;
	margin-bottom: 1.5em;
}

/* Cards de resumen */

.gcdcm-wrap .gcdcm-cards {
	display: flex;
	gap: 1em;
	flex-wrap: wrap;
	margin: 1em 0 0.5em;
}

.gcdcm-wrap .gcdcm-card {
	background: #fff;
	border: 1px solid var(--gcdcm-border);
	border-top: 3px solid var(--gcdcm-neutro);
	border-radius: var(--gcdcm-radius);
	box-shadow: 0 1px 2px rgba(0, 0, 0, 0.04);
	padding: 1em 1.25em;
	min-width: 160px;
	flex: 1;
	transition: box-shadow 0.15s ease;
}

.gcdcm-wrap .gcdcm-card:hover {
	box-shadow: 0 2px 8px rgba(0, 0, 0, 0.08);
}

.gcdcm-wrap .gcdcm-card-ok {
	border-top-color: var(--gcdcm-ok);
}

.gcdcm-wrap .gcdcm-card-atencion {
	border-top-color: var(--gcdcm-atencion);
}

.gcdcm-wrap .gcdcm-card-critico {
	border-top-color: var(--gcdcm-critico);
}

.gcdcm-wrap .gcdcm-card-value {
	font-size: 2em;
	font-weight: 600;
	line-height: 1.2;
	color: #1d2327;
}

.gcdcm-wrap .gcdcm-card-label {
	color: var(--gcdcm-neutro);
	font-size: 0.95em;
	margin-top: 0.15em;
}

/* Badges de estado / prioridad / severidad */

.gcdcm-wrap .gcdcm-badge {
	display: inline-flex;
	align-items: center;
	gap: 0.3em;
	padding: 0.2em 0.7em;
	border-radius: 999px;
	font-size: 0.9em;
	font-weight: 500;
	line-height: 1.6;
	white-space: nowrap;
}

.gcdcm-wrap .gcdcm-badge-ok {
	background: var(--gcdcm-ok-bg);
	color: var(--gcdcm-ok);
}

.gcdcm-wrap .gcdcm-badge-atencion {
	background: var(--gcdcm-atencion-bg);
	color: var(--gcdcm-atencion);
}

.gcdcm-wrap .gcdcm-badge-critico {
	background: var(--gcdcm-critico-bg);
	color: var(--gcdcm-critico);
}

.gcdcm-wrap .gcdcm-badge-info {
	background: var(--gcdcm-info-bg);
	color: var(--gcdcm-info);
}

.gcdcm-wrap .gcdcm-badge-neutro {
	background: var(--gcdcm-neutro-bg);
	color: var(--gcdcm-neutro);
}

/* Evolución (historial de cumplimiento) */

.gcdcm-wrap .gcdcm-history {
	font-size: 1.5em;
	letter-spacing: 0.15em;
	background: #fff;
	border: 1px solid var(--gcdcm-border);
	border-radius: var(--gcdcm-radius);
	padding: 0.75em 1em;
	display: inline-block;
}

/* Filtros */

.gcdcm-wrap .gcdcm-filters {
	display: flex;
	gap: 0.6em;
	flex-wrap: wrap;
	align-items: center;
	background: #f6f7f7;
	border: 1px solid var(--gcdcm-border);
	border-radius: var(--gcdcm-radius);
	padding: 0.85em 1em;
	margin: 1em 0 1.5em;
}

.gcdcm-wrap .gcdcm-filters select,
.gcdcm-wrap .gcdcm-filters input[type="date"] {
	min-height: 32px;
}

.gcdcm-wrap .gcdcm-filters a {
	margin-left: 0.25em;
	white-space: nowrap;
}

.gcdcm-wrap .gcdcm-inline-form {
	margin: 1em 0 2em;
	display: flex;
	gap: 0.5em;
	flex-wrap: wrap;
	align-items: center;
}

/* Tablas */

.gcdcm-wrap table.widefat {
	border-radius: var(--gcdcm-radius);
	overflow: hidden;
	border-color: var(--gcdcm-border);
}

.gcdcm-wrap table.widefat thead th {
	background: #f6f7f7;
}

.gcdcm-wrap table.widefat tbody tr:hover {
	background: #f6f8fb;
}

.gcdcm-wrap table.widefat td,
.gcdcm-wrap table.widefat th {
	padding: 0.85em 1em;
	vertical-align: middle;
}

/* Comentarios */

.gcdcm-wrap .gcdcm-comments {
	list-style: none;
	margin: 0 0 1em;
	padding: 0;
}

.gcdcm-wrap .gcdcm-comments li {
	background: #fff;
	border: 1px solid var(--gcdcm-border);
	border-radius: var(--gcdcm-radius);
	padding: 0.85em 1em;
	margin-bottom: 0.6em;
}

.gcdcm-wrap .gcdcm-comments .description {
	color: var(--gcdcm-neutro);
	font-size: 0.9em;
}

.gcdcm-wrap .gcdcm-extras-form {
	margin: 0.5em 0 2em;
}

.gcdcm-wrap .gcdcm-extras-form textarea {
	width: 100%;
	max-width: 640px;
}

/* Notices propios (panel del líder) */

.gcdcm-wrap .notice {
	border-radius: var(--gcdcm-radius);
}

/* Responsive */

@media (max-width: 782px) {
	.gcdcm-wrap .gcdcm-cards {
		flex-direction: column;
	}

	.gcdcm-wrap .gcdcm-card {
		min-width: 0;
	}

	.gcdcm-wrap .gcdcm-two-columns {
		flex-direction: column;
	}

	.gcdcm-wrap .gcdcm-filters {
		flex-direction: column;
		align-items: stretch;
	}

	.gcdcm-wrap .gcdcm-filters select,
	.gcdcm-wrap .gcdcm-filters input {
		width: 100%;
	}
}

/* ==================================================================== */
/* FRONT-END: [gcdc_panel] — interfaz principal del plugin.              */
/* Corre dentro de un Shadow DOM (ver class-gcdcm-front.php), así que      */
/* esta es la ÚNICA hoja de estilos que aplica acá adentro: el tema del   */
/* sitio no puede tocar nada de esto, y esto no puede tocar nada del      */
/* sitio. Sistema de diseño propio, sin depender de las clases de         */
/* wp-admin (aunque se reutilizan los mismos nombres de clase que ya usa  */
/* el PHP: widefat, form-table, button, notice, etc.).                    */
/* ==================================================================== */

.gcdcm-front {
	/* Colores de marca: navy #00243C, verde #38AC6A, blanco, negro, gris #EDEDED. */
	--gcdcm-navy: #00243c;
	--gcdcm-navy-light: #e3e9ed;
	--gcdcm-primary: #38ac6a;
	--gcdcm-primary-dark: #2c8a55;
	--gcdcm-primary-light: #e8f5ee;
	--gcdcm-bg: #ededed;
	--gcdcm-surface: #ffffff;
	--gcdcm-text: #14181c;
	--gcdcm-text-muted: rgba(20, 24, 28, 0.6);
	--gcdcm-border-soft: #dcdcdc;
	--gcdcm-sidebar-bg: var(--gcdcm-navy);
	--gcdcm-sidebar-text: #ffffff;
	--gcdcm-sidebar-text-muted: rgba(255, 255, 255, 0.65);
	--gcdcm-radius-sm: 4px;
	--gcdcm-radius-md: 6px;
	--gcdcm-radius-lg: 8px;
	--gcdcm-shadow-sm: 0 1px 2px rgba(0, 36, 60, 0.06);
	--gcdcm-shadow-md: 0 8px 24px rgba(0, 36, 60, 0.09), 0 2px 6px rgba(0, 36, 60, 0.05);

	/* Semántica de estado: se mantiene distinguible (rojo/ámbar/verde), el
	   "ok" usa directamente el verde de marca para no sumar otro tono. */
	--gcdcm-ok: var(--gcdcm-primary-dark);
	--gcdcm-ok-bg: var(--gcdcm-primary-light);
	--gcdcm-atencion: #9a6b00;
	--gcdcm-atencion-bg: #f7f2e2;
	--gcdcm-critico: #a4272c;
	--gcdcm-critico-bg: #f6e6e6;
	--gcdcm-info: var(--gcdcm-navy);
	--gcdcm-info-bg: var(--gcdcm-navy-light);
	--gcdcm-neutro: var(--gcdcm-text-muted);
	--gcdcm-neutro-bg: #e8e8e8;
	--gcdcm-border: var(--gcdcm-border-soft);

	box-sizing: border-box;
	font-family: "Montserrat", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;
	font-weight: 400;
	font-size: 15.5px;
	line-height: 1.5;
	color: var(--gcdcm-text);
	background: var(--gcdcm-bg);
	max-width: none;
	min-height: 100vh;
	padding: 1.1em;
	overflow-x: hidden;
	-webkit-font-smoothing: antialiased;
}

.gcdcm-front *,
.gcdcm-front *::before,
.gcdcm-front *::after {
	box-sizing: inherit;
}

.gcdcm-front h2,
.gcdcm-front h3 {
	letter-spacing: -0.01em;
	color: var(--gcdcm-text);
}

.gcdcm-front h2 {
	font-size: 1.3em;
	font-weight: 700;
	margin: 0 0 0.7em;
	padding-bottom: 0;
	border-bottom: none;
}

.gcdcm-front h3 {
	margin-top: 1.5em;
	margin-bottom: 0.5em;
	font-size: 1em;
	font-weight: 600;
}

/* Acción secundaria pegada a un título de sección (ej. "Ver todas" al lado
   de "Alertas activas" en el Dashboard, "Importar tareas faltantes" al
   lado de "Tareas existentes" en Plantillas) — sin esto quedaba sin
   estilo acá adentro (la versión de wp-admin de esta misma clase no
   aplica al front-end, que es una hoja de estilos aparte). */
.gcdcm-front h2 .page-title-action,
.gcdcm-front h3 .page-title-action {
	margin-left: 0.6em;
	font-size: 0.6em;
	font-weight: 500;
	vertical-align: middle;
}

.gcdcm-front a {
	color: var(--gcdcm-primary);
	text-decoration: none;
}

.gcdcm-front a:hover {
	text-decoration: underline;
}

.gcdcm-front .description {
	color: var(--gcdcm-text-muted);
	font-size: 0.92em;
}

/* -------------------------------------------------------------- */
/* Pantalla de login                                                */
/* -------------------------------------------------------------- */

.gcdcm-front .gcdcm-login-screen {
	min-height: calc(100vh - 2.2em);
	display: flex;
	align-items: center;
	justify-content: center;
	padding: 2em 1em;
}

.gcdcm-front .gcdcm-login-card {
	background: var(--gcdcm-surface);
	border-radius: var(--gcdcm-radius-lg);
	box-shadow: var(--gcdcm-shadow-md);
	padding: 2em 2em 1.6em;
	max-width: 340px;
	width: 100%;
	text-align: center;
}

.gcdcm-front .gcdcm-login-card h1 {
	display: block;
	font-size: 1.3em;
	font-weight: 700;
	margin: 0.3em 0 0.2em;
}

.gcdcm-front .gcdcm-login-card .gcdcm-brand-mark {
	width: 3.2em;
	height: 3.2em;
	margin: 0 auto 0.3em;
	border-radius: var(--gcdcm-radius-md);
}

.gcdcm-front .gcdcm-login-card .gcdcm-brand-mark svg {
	width: 1.7em;
	height: 1.7em;
}

.gcdcm-front .gcdcm-login-card form {
	text-align: left;
	margin-top: 1.5em;
}

.gcdcm-front #loginform p {
	margin: 0.9em 0;
}

.gcdcm-front #loginform label {
	display: block;
	font-weight: 600;
	font-size: 0.9em;
	margin-bottom: 0.35em;
}

.gcdcm-front #loginform input[type="text"],
.gcdcm-front #loginform input[type="password"] {
	width: 100%;
}

.gcdcm-front #loginform .login-remember label {
	display: flex;
	align-items: center;
	gap: 0.5em;
	font-weight: 400;
	margin-bottom: 0;
}

.gcdcm-front #wp-submit {
	width: 100%;
	justify-content: center;
	margin-top: 0.5em;
}

.gcdcm-front .gcdcm-login-card .notice {
	text-align: left;
	margin: 1.25em 0 0;
}

.gcdcm-front .gcdcm-login-lost {
	text-align: center;
	margin: 1.25em 0 0;
	font-size: 0.9em;
}

/* -------------------------------------------------------------- */
/* Estructura general: sidebar + contenido                          */
/* -------------------------------------------------------------- */

.gcdcm-front .gcdcm-shell {
	display: flex;
	align-items: stretch;
	min-height: calc(100vh - 2.2em);
	max-width: 1320px;
	margin: 0 auto;
	border-radius: var(--gcdcm-radius-lg);
	overflow: hidden;
	box-shadow: var(--gcdcm-shadow-md);
	position: relative;
}

.gcdcm-front .gcdcm-sidebar {
	flex: 0 0 210px;
	background: var(--gcdcm-sidebar-bg);
	color: var(--gcdcm-sidebar-text);
	padding: 1.1em 0.85em;
	display: flex;
	flex-direction: column;
	gap: 1.1em;
}

.gcdcm-front .gcdcm-brand {
	display: flex;
	align-items: center;
	gap: 0.6em;
	padding: 0 0.5em;
}

.gcdcm-front .gcdcm-brand-mark {
	display: flex;
	align-items: center;
	justify-content: center;
	width: 2.1em;
	height: 2.1em;
	flex-shrink: 0;
	border-radius: var(--gcdcm-radius-sm);
	background: var(--gcdcm-primary);
	color: #fff;
}

.gcdcm-front .gcdcm-brand-text {
	font-weight: 800;
	color: #fff;
	font-size: 1.02em;
	letter-spacing: -0.01em;
}

.gcdcm-front .gcdcm-tabs {
	display: flex;
	flex-direction: column;
	gap: 0.15em;
	flex: 1;
	overflow-y: auto;
}

.gcdcm-front .gcdcm-tabs a {
	display: flex;
	align-items: center;
	gap: 0.65em;
	padding: 0.5em 0.65em;
	border-radius: var(--gcdcm-radius-sm);
	color: var(--gcdcm-sidebar-text);
	font-weight: 500;
	font-size: 0.9em;
	border-left: 3px solid transparent;
	transition: background 0.15s ease, color 0.15s ease, border-color 0.15s ease;
}

.gcdcm-front .gcdcm-tabs a:hover {
	background: rgba(255, 255, 255, 0.06);
	text-decoration: none;
	color: #fff;
}

.gcdcm-front .gcdcm-tabs a.is-active {
	color: #fff;
	font-weight: 600;
	border-left-color: var(--gcdcm-primary);
}

.gcdcm-front .gcdcm-tab-icon {
	font-size: 1.1em;
	line-height: 1;
	width: 1.3em;
	text-align: center;
	flex-shrink: 0;
}

/* Buscador del sidebar (ver GCDCM_Front_Search). La lista de resultados
   es más ancha que el sidebar y se superpone al contenido. */
.gcdcm-front .gcdcm-search {
	position: relative;
}

.gcdcm-front .gcdcm-search-input {
	width: 100%;
	box-sizing: border-box;
	padding: 0.5em 0.7em;
	border: 1px solid rgba(255, 255, 255, 0.14);
	border-radius: var(--gcdcm-radius-sm);
	background: rgba(255, 255, 255, 0.08);
	color: #fff;
	font: inherit;
	font-size: 0.88em;
}

.gcdcm-front .gcdcm-search-input::placeholder {
	color: var(--gcdcm-sidebar-text-muted);
}

.gcdcm-front .gcdcm-search-input:focus {
	outline: none;
	border-color: var(--gcdcm-primary);
	background: rgba(255, 255, 255, 0.12);
}

.gcdcm-front .gcdcm-search-results {
	position: absolute;
	top: calc(100% + 0.35em);
	left: 0;
	z-index: 50;
	width: 340px;
	max-width: calc(100vw - 3em);
	max-height: 70vh;
	overflow-y: auto;
	background: var(--gcdcm-surface);
	color: var(--gcdcm-text);
	border: 1px solid var(--gcdcm-border);
	border-radius: var(--gcdcm-radius-md);
	box-shadow: var(--gcdcm-shadow-md);
	padding: 0.35em 0;
}

.gcdcm-front .gcdcm-search-results[hidden] {
	display: none;
}

.gcdcm-front .gcdcm-search-group {
	padding: 0.55em 0.9em 0.2em;
	font-size: 0.72em;
	font-weight: 700;
	letter-spacing: 0.04em;
	text-transform: uppercase;
	color: var(--gcdcm-text-muted);
}

.gcdcm-front .gcdcm-search-item {
	display: flex;
	align-items: center;
	gap: 0.5em;
	padding: 0 0.5em 0 0;
}

.gcdcm-front .gcdcm-search-item.is-active {
	background: var(--gcdcm-primary-light);
}

.gcdcm-front .gcdcm-search-main {
	flex: 1;
	min-width: 0;
	display: flex;
	flex-direction: column;
	padding: 0.4em 0.9em;
	color: var(--gcdcm-text);
	text-decoration: none;
}

.gcdcm-front .gcdcm-search-main:hover {
	text-decoration: none;
}

.gcdcm-front .gcdcm-search-title {
	font-size: 0.9em;
	font-weight: 600;
	overflow: hidden;
	text-overflow: ellipsis;
	white-space: nowrap;
}

.gcdcm-front .gcdcm-search-sub {
	font-size: 0.78em;
	color: var(--gcdcm-text-muted);
	overflow: hidden;
	text-overflow: ellipsis;
	white-space: nowrap;
}

.gcdcm-front .gcdcm-search-alt {
	flex-shrink: 0;
	font-size: 0.78em;
	font-weight: 600;
	color: var(--gcdcm-primary-dark);
	padding: 0.25em 0.5em;
	border-radius: var(--gcdcm-radius-sm);
}

.gcdcm-front .gcdcm-search-alt:hover {
	background: var(--gcdcm-surface);
	text-decoration: none;
}

.gcdcm-front .gcdcm-search-empty {
	padding: 0.6em 0.9em;
	font-size: 0.82em;
	color: var(--gcdcm-text-muted);
}

.gcdcm-front .gcdcm-user-chip {
	display: flex;
	align-items: center;
	gap: 0.6em;
	padding: 0.6em 0.5em;
	border-top: 1px solid rgba(255, 255, 255, 0.08);
}

.gcdcm-front .gcdcm-user-avatar {
	width: 2em;
	height: 2em;
	border-radius: 999px;
	background: var(--gcdcm-primary);
	color: #fff;
	display: flex;
	align-items: center;
	justify-content: center;
	font-weight: 700;
	flex-shrink: 0;
}

.gcdcm-front .gcdcm-user-name {
	font-size: 0.88em;
	color: var(--gcdcm-sidebar-text-muted);
	overflow: hidden;
	text-overflow: ellipsis;
	white-space: nowrap;
	flex: 1;
}

.gcdcm-front .gcdcm-logout {
	display: flex;
	align-items: center;
	justify-content: center;
	flex-shrink: 0;
	width: 1.9em;
	height: 1.9em;
	border-radius: var(--gcdcm-radius-sm);
	color: var(--gcdcm-sidebar-text-muted);
}

.gcdcm-front .gcdcm-logout:hover {
	background: rgba(255, 255, 255, 0.08);
	color: #fff;
	text-decoration: none;
}

.gcdcm-front .gcdcm-main {
	flex: 1;
	min-width: 0;
	background: var(--gcdcm-bg);
	padding: 1.5em 1.75em;
	overflow-x: hidden;
}

.gcdcm-front .gcdcm-menu-toggle {
	display: none;
}

/* -------------------------------------------------------------- */
/* Estado vacío                                                     */
/* -------------------------------------------------------------- */

.gcdcm-front .gcdcm-empty-state {
	text-align: center;
	padding: 2.2em 1.5em;
	color: var(--gcdcm-text-muted);
}

.gcdcm-front .gcdcm-empty-icon {
	display: flex;
	align-items: center;
	justify-content: center;
	width: 2.6em;
	height: 2.6em;
	margin: 0 auto 0.7em;
	border-radius: 50%;
	background: var(--gcdcm-bg);
	color: var(--gcdcm-text-muted);
}

.gcdcm-front .gcdcm-empty-icon svg {
	width: 1.3em;
	height: 1.3em;
}

/* -------------------------------------------------------------- */
/* Cards de resumen                                                 */
/* -------------------------------------------------------------- */

.gcdcm-front .gcdcm-cards {
	display: flex;
	gap: 0.75em;
	flex-wrap: wrap;
	margin: 0 0 0.5em;
}

.gcdcm-front .gcdcm-card {
	background: var(--gcdcm-surface);
	border: 1px solid var(--gcdcm-border-soft);
	border-radius: var(--gcdcm-radius-md);
	box-shadow: var(--gcdcm-shadow-sm);
	padding: 0.8em 1em;
	min-width: 130px;
	max-width: 210px;
	flex: 1;
	position: relative;
	overflow: hidden;
	transition: border-color 0.15s ease;
}

.gcdcm-front .gcdcm-card::before {
	content: "";
	position: absolute;
	top: 0;
	left: 0;
	right: 0;
	height: 3px;
	background: var(--gcdcm-text-muted);
	opacity: 0.35;
}

.gcdcm-front .gcdcm-card:hover {
	border-color: var(--gcdcm-text-muted);
}

.gcdcm-front .gcdcm-card-ok::before {
	background: var(--gcdcm-ok);
	opacity: 1;
}

.gcdcm-front .gcdcm-card-atencion::before {
	background: var(--gcdcm-atencion);
	opacity: 1;
}

.gcdcm-front .gcdcm-card-critico::before {
	background: var(--gcdcm-critico);
	opacity: 1;
}

.gcdcm-front .gcdcm-card-value {
	font-size: 1.6em;
	font-weight: 700;
	line-height: 1.2;
	color: var(--gcdcm-text);
}

.gcdcm-front .gcdcm-card-label {
	color: var(--gcdcm-text-muted);
	font-size: 0.85em;
	margin-top: 0.15em;
}

/* -------------------------------------------------------------- */
/* Paneles/cards de contenido                                       */
/* -------------------------------------------------------------- */

.gcdcm-front .gcdcm-panel {
	background: var(--gcdcm-surface);
	border: 1px solid var(--gcdcm-border-soft);
	border-radius: var(--gcdcm-radius-md);
	box-shadow: var(--gcdcm-shadow-sm);
	padding: 1.1em 1.35em;
	margin-bottom: 1.35em;
}

/* Los formularios (a diferencia de los paneles de contenido/listado, que sí
   aprovechan todo el ancho) se ven perdidos en una tarjeta gigante vacía a
   la derecha en pantallas anchas — se limitan a un ancho de lectura cómodo. */
.gcdcm-front form.gcdcm-panel {
	max-width: 720px;
}

/* Listas largas de checkboxes (concesionarios, responsables asignados):
   contenedor con borde propio en vez de tildes sueltas una debajo de la
   otra sin límite ni jerarquía. */
.gcdcm-front .gcdcm-checkbox-list {
	max-height: 240px;
	overflow-y: auto;
	border: 1px solid var(--gcdcm-border-soft);
	border-radius: var(--gcdcm-radius-sm);
	padding: 0.4em 0.9em;
	background: var(--gcdcm-bg);
}

.gcdcm-front .gcdcm-checkbox-list label {
	display: flex;
	align-items: center;
	gap: 0.6em;
	padding: 0.45em 0;
	font-weight: 400;
}

.gcdcm-front .gcdcm-checkbox-list label:not(:last-child) {
	border-bottom: 1px solid var(--gcdcm-border-soft);
}

.gcdcm-front .gcdcm-select-all {
	display: flex;
	align-items: center;
	gap: 0.6em;
	font-weight: 600;
	margin-bottom: 0.5em;
}

.gcdcm-front .gcdcm-user-cell {
	display: flex;
	align-items: center;
	gap: 0.6em;
}

.gcdcm-front .gcdcm-user-cell .gcdcm-user-avatar {
	width: 1.8em;
	height: 1.8em;
	font-size: 0.85em;
}

.gcdcm-front .gcdcm-two-columns {
	display: flex;
	gap: 1.1em;
	flex-wrap: wrap;
	align-items: flex-start;
}

.gcdcm-front .gcdcm-two-columns > div {
	flex: 1;
	min-width: 280px;
}

/* Grilla de formulario: agrupa campos relacionados de a dos (Periodicidad +
   Prioridad, Concesionario + Marca, etc.) en vez de una columna larga de un
   solo campo por fila — mismo patrón en Plantillas de tareas y donde más
   haga falta. .gcdcm-field-full ocupa las dos columnas (título, checkbox
   lists, etc.). */
.gcdcm-front .gcdcm-form-grid {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 0.9em 1.2em;
	margin-bottom: 1em;
}

.gcdcm-front .gcdcm-field label {
	display: block;
	font-weight: 600;
	font-size: 0.92em;
	margin-bottom: 0.4em;
}

.gcdcm-front .gcdcm-field input[type="text"],
.gcdcm-front .gcdcm-field select {
	width: 100%;
}

.gcdcm-front .gcdcm-field-full {
	grid-column: 1 / -1;
}

@media (max-width: 600px) {
	.gcdcm-front .gcdcm-form-grid {
		grid-template-columns: 1fr;
	}
}

.gcdcm-front .gcdcm-templates-group-title {
	margin: 1.6em 0 0.5em;
	font-size: 1em;
	font-weight: 700;
}

/* Selector de severidad (Nueva alerta): reemplaza un <select> perdido por
   tres opciones grandes y coloreadas con el mismo código de color que ya
   usan los badges de severidad — se elige de un vistazo, no leyendo texto
   de a una opción por vez. El radio nativo queda visible (no se oculta)
   para que funcione igual de bien si el navegador no soporta :has(). */
.gcdcm-front .gcdcm-severity-picker {
	display: flex;
	gap: 0.6em;
	flex-wrap: wrap;
}

.gcdcm-front .gcdcm-severity-option {
	display: inline-flex;
	align-items: center;
	gap: 0.45em;
	padding: 0.5em 0.9em;
	border: 1px solid var(--gcdcm-border-soft);
	border-radius: 999px;
	background: var(--gcdcm-surface);
	font-weight: 500;
	font-size: 0.95em;
	cursor: pointer;
	transition: border-color 0.15s ease, background 0.15s ease, color 0.15s ease;
}

.gcdcm-front .gcdcm-severity-option:hover {
	border-color: var(--gcdcm-text-muted);
}

.gcdcm-front .gcdcm-severity-option input {
	margin: 0;
	cursor: pointer;
}

.gcdcm-front .gcdcm-severity-critico input {
	accent-color: var(--gcdcm-critico);
}

.gcdcm-front .gcdcm-severity-atencion input {
	accent-color: var(--gcdcm-atencion);
}

.gcdcm-front .gcdcm-severity-ok input {
	accent-color: var(--gcdcm-ok);
}

.gcdcm-front .gcdcm-severity-critico:has(input:checked) {
	background: var(--gcdcm-critico-bg);
	border-color: var(--gcdcm-critico);
	color: var(--gcdcm-critico);
}

.gcdcm-front .gcdcm-severity-atencion:has(input:checked) {
	background: var(--gcdcm-atencion-bg);
	border-color: var(--gcdcm-atencion);
	color: var(--gcdcm-atencion);
}

.gcdcm-front .gcdcm-severity-ok:has(input:checked) {
	background: var(--gcdcm-ok-bg);
	border-color: var(--gcdcm-ok);
	color: var(--gcdcm-ok);
}

.gcdcm-front .gcdcm-severity-option:has(input:focus-visible) {
	box-shadow: 0 0 0 2px var(--gcdcm-primary-light);
}

/* -------------------------------------------------------------- */
/* Badges                                                           */
/* -------------------------------------------------------------- */

.gcdcm-front .gcdcm-badge {
	display: inline-flex;
	align-items: center;
	gap: 0.3em;
	padding: 0.25em 0.75em;
	border-radius: 999px;
	font-size: 0.85em;
	font-weight: 600;
	line-height: 1.6;
	white-space: nowrap;
	box-shadow: inset 0 0 0 1px rgba(0, 0, 0, 0.045);
}

/* -------------------------------------------------------------- */
/* Evolución (historial de cumplimiento)                            */
/* -------------------------------------------------------------- */

.gcdcm-front .gcdcm-history-block {
	background: var(--gcdcm-surface);
	border: 1px solid var(--gcdcm-border-soft);
	border-radius: var(--gcdcm-radius-md);
	box-shadow: var(--gcdcm-shadow-sm);
	padding: 0.8em 1em;
	margin: 0 0 1.1em;
}

.gcdcm-front .gcdcm-history-title {
	margin: 0;
	font-size: 0.95em;
	font-weight: 700;
}

.gcdcm-front .gcdcm-history-subtitle {
	margin: 0.25em 0 0.9em;
	font-size: 0.85em;
}

.gcdcm-front .gcdcm-history-days {
	display: flex;
	flex-wrap: wrap;
	gap: 0.5em;
}

.gcdcm-front .gcdcm-history-day {
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: 0.2em;
	min-width: 3.4em;
	padding: 0.5em 0.4em;
	border-radius: var(--gcdcm-radius-sm);
	border: 1px solid var(--gcdcm-border-soft);
	background: var(--gcdcm-bg);
}

.gcdcm-front .gcdcm-history-day-date {
	font-size: 0.78em;
	color: var(--gcdcm-text-muted);
}

.gcdcm-front .gcdcm-history-day-pct {
	font-weight: 700;
	font-variant-numeric: tabular-nums;
}

.gcdcm-front .gcdcm-history-day.is-vacio {
	opacity: 0.55;
}

.gcdcm-front .gcdcm-history-day.is-vacio .gcdcm-history-day-pct {
	color: var(--gcdcm-text-muted);
	font-weight: 400;
}

.gcdcm-front .gcdcm-history-day.is-ok {
	background: var(--gcdcm-ok-bg);
	border-color: transparent;
}

.gcdcm-front .gcdcm-history-day.is-ok .gcdcm-history-day-pct {
	color: var(--gcdcm-ok);
}

.gcdcm-front .gcdcm-history-day.is-atencion {
	background: var(--gcdcm-atencion-bg);
	border-color: transparent;
}

.gcdcm-front .gcdcm-history-day.is-atencion .gcdcm-history-day-pct {
	color: var(--gcdcm-atencion);
}

.gcdcm-front .gcdcm-history-day.is-critico {
	background: var(--gcdcm-critico-bg);
	border-color: transparent;
}

.gcdcm-front .gcdcm-history-day.is-critico .gcdcm-history-day-pct {
	color: var(--gcdcm-critico);
}

/* -------------------------------------------------------------- */
/* Mi checklist: lista de tareas tildables                          */
/* -------------------------------------------------------------- */

/* Cada período (Diaria/Semanal/Mensual) más pegado al anterior que el
   h3 + margen genérico de más arriba — accá se lee de corrido, no como
   secciones separadas de un documento largo. */
.gcdcm-front .gcdcm-period {
	margin-top: 1.5em;
}

.gcdcm-front .gcdcm-period:first-of-type {
	margin-top: 0.25em;
}

.gcdcm-front .gcdcm-period h3 {
	margin-top: 0;
	margin-bottom: 0.5em;
}

/* Solapas Diarias / Semanales / Mensuales del checklist (patrón genérico
   "solapas" de wrap_isolated(): solo se ve el panel con .is-active). */
.gcdcm-front .gcdcm-subtabs {
	display: flex;
	gap: 0.25em;
	margin: 0.25em 0 1em;
	border-bottom: 1px solid var(--gcdcm-border-soft);
	overflow-x: auto;
}

.gcdcm-front .gcdcm-subtab {
	display: flex;
	align-items: center;
	gap: 0.5em;
	padding: 0.6em 1em;
	margin-bottom: -1px;
	border: none;
	border-bottom: 3px solid transparent;
	background: none;
	font: inherit;
	font-weight: 600;
	color: var(--gcdcm-text-muted);
	cursor: pointer;
	white-space: nowrap;
}

.gcdcm-front .gcdcm-subtab:hover {
	color: var(--gcdcm-text);
}

.gcdcm-front .gcdcm-subtab.is-active {
	color: var(--gcdcm-text);
	border-bottom-color: var(--gcdcm-primary);
}

.gcdcm-front .gcdcm-subtab-count {
	font-size: 0.8em;
	font-weight: 600;
	font-variant-numeric: tabular-nums;
	padding: 0.1em 0.55em;
	border-radius: 999px;
	background: var(--gcdcm-neutro-bg);
	color: var(--gcdcm-text-muted);
}

.gcdcm-front .gcdcm-subtab.is-active .gcdcm-subtab-count {
	background: var(--gcdcm-primary-light);
	color: var(--gcdcm-primary-dark);
}

.gcdcm-front .gcdcm-subtab-panel {
	display: none;
}

.gcdcm-front .gcdcm-subtab-panel.is-active {
	display: block;
	margin-top: 0;
}

/* Solapas por marca arriba del checklist ("Todas · Jeep · Ram · General"):
   píldoras, para que no se confundan con las solapas de período de abajo. */
.gcdcm-front .gcdcm-marcas-bar {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 0.4em;
	margin: 0 0 1em;
}

.gcdcm-front .gcdcm-marcas-label {
	font-size: 0.8em;
	font-weight: 600;
	text-transform: uppercase;
	letter-spacing: 0.04em;
	color: var(--gcdcm-text-muted);
	margin-right: 0.2em;
}

.gcdcm-front .gcdcm-marca-form {
	display: contents;
}

.gcdcm-front .gcdcm-marca-tab {
	display: inline-flex;
	align-items: center;
	gap: 0.45em;
	padding: 0.35em 0.85em;
	border: 1px solid var(--gcdcm-border);
	border-radius: 999px;
	background: var(--gcdcm-surface);
	font: inherit;
	font-size: 0.92em;
	font-weight: 600;
	color: var(--gcdcm-text-muted);
	cursor: pointer;
	white-space: nowrap;
}

.gcdcm-front .gcdcm-marca-tab:hover {
	color: var(--gcdcm-text);
	border-color: var(--gcdcm-primary);
}

.gcdcm-front .gcdcm-marca-tab.is-active {
	background: var(--gcdcm-primary);
	border-color: var(--gcdcm-primary);
	color: #fff;
}

.gcdcm-front .gcdcm-marca-count {
	font-size: 0.8em;
	font-variant-numeric: tabular-nums;
	padding: 0.05em 0.5em;
	border-radius: 999px;
	background: var(--gcdcm-neutro-bg);
	color: var(--gcdcm-text-muted);
}

.gcdcm-front .gcdcm-marca-tab.is-active .gcdcm-marca-count {
	background: rgba(255, 255, 255, 0.25);
	color: #fff;
}

.gcdcm-front .gcdcm-marcas-nota {
	margin: -0.4em 0 1em;
}

/* Marca el casillero del período actual en el historial. */
.gcdcm-front .gcdcm-history-day-now {
	font-size: 0.68em;
	font-weight: 600;
	text-transform: uppercase;
	letter-spacing: 0.03em;
	color: var(--gcdcm-text-muted);
}

.gcdcm-front .gcdcm-task-list {
	background: var(--gcdcm-surface);
	border: 1px solid var(--gcdcm-border-soft);
	border-radius: var(--gcdcm-radius-md);
	box-shadow: var(--gcdcm-shadow-sm);
	overflow: hidden;
}

.gcdcm-front .gcdcm-task-row {
	display: flex;
	align-items: center;
	gap: 0.6em;
	padding: 0.5em 0.85em;
	border-bottom: 1px solid var(--gcdcm-border-soft);
	cursor: pointer;
}

.gcdcm-front .gcdcm-task-row:last-child {
	border-bottom: none;
}

.gcdcm-front .gcdcm-task-row:hover {
	background: var(--gcdcm-bg);
}

.gcdcm-front .gcdcm-task-row.is-vencida {
	background: var(--gcdcm-critico-bg);
}

.gcdcm-front .gcdcm-task-row.is-open {
	background: var(--gcdcm-primary-light);
}

.gcdcm-front .gcdcm-task-check {
	display: flex;
	align-items: center;
	flex-shrink: 0;
	margin: 0;
}

.gcdcm-front .gcdcm-task-check input[type="checkbox"] {
	width: 1.2em;
	height: 1.2em;
	flex-shrink: 0;
	accent-color: var(--gcdcm-primary);
	cursor: pointer;
}

.gcdcm-front .gcdcm-task-check input:disabled {
	cursor: default;
	opacity: 0.6;
}

.gcdcm-front .gcdcm-task-title {
	flex: 1;
	min-width: 0;
	overflow: hidden;
	text-overflow: ellipsis;
	white-space: nowrap;
}

.gcdcm-front .gcdcm-task-row.is-done .gcdcm-task-title {
	color: var(--gcdcm-text-muted);
	text-decoration: line-through;
}

.gcdcm-front .gcdcm-task-meta {
	flex-shrink: 0;
	font-size: 0.85em;
	color: var(--gcdcm-text-muted);
	white-space: nowrap;
}

.gcdcm-front .gcdcm-task-detail {
	flex-shrink: 0;
	display: flex;
	color: var(--gcdcm-text-muted);
}

.gcdcm-front .gcdcm-task-row:hover .gcdcm-task-detail,
.gcdcm-front .gcdcm-task-row.is-open .gcdcm-task-detail {
	color: var(--gcdcm-primary);
}

.gcdcm-front .gcdcm-task-detail svg {
	width: 16px;
	height: 16px;
}

/* Panel de comentarios/links/adjuntos que se despliega debajo de una fila
   de tarea (o de una alerta) al clickear su ícono de notas — sin navegar a
   ningún lado, ver el patrón "ajax-expand". */
.gcdcm-front .gcdcm-extras-panel {
	padding: 0.8em 1em 1em;
	background: var(--gcdcm-bg);
	border-bottom: 1px solid var(--gcdcm-border-soft);
	border-top: 1px dashed var(--gcdcm-border-soft);
}

.gcdcm-task-list .gcdcm-extras-panel:last-child {
	border-bottom: none;
}

.gcdcm-front .gcdcm-extras-panel h3 {
	margin-top: 1em;
	margin-bottom: 0.4em;
	font-size: 0.92em;
	text-transform: uppercase;
	letter-spacing: 0.04em;
	color: var(--gcdcm-text-muted);
}

.gcdcm-front .gcdcm-extras-panel h3:first-child {
	margin-top: 0;
}

.gcdcm-front .gcdcm-extras-panel .gcdcm-comments li {
	background: var(--gcdcm-surface);
}

.gcdcm-front .gcdcm-extras-form textarea {
	max-width: 100%;
}

/* -------------------------------------------------------------- */
/* Filtros                                                          */
/* -------------------------------------------------------------- */

.gcdcm-front .gcdcm-filters {
	display: flex;
	gap: 0.5em;
	flex-wrap: wrap;
	align-items: center;
	background: var(--gcdcm-surface);
	border: 1px solid var(--gcdcm-border-soft);
	border-radius: var(--gcdcm-radius-md);
	box-shadow: var(--gcdcm-shadow-sm);
	padding: 0.65em 0.85em;
	margin: 0 0 1.1em;
}

.gcdcm-front .gcdcm-filters select,
.gcdcm-front .gcdcm-filters input[type="date"] {
	min-height: 30px;
	flex: 1 1 150px;
}

.gcdcm-front .gcdcm-filters a {
	margin-left: 0.25em;
	white-space: nowrap;
	font-size: 0.9em;
}

.gcdcm-front .gcdcm-marca-tags {
	display: flex;
	flex-wrap: wrap;
	gap: 0.35em;
	margin-top: 0.4em;
}

.gcdcm-front .gcdcm-inline-form {
	margin: 0 0 2em;
	display: flex;
	gap: 0.5em;
	flex-wrap: wrap;
	align-items: center;
}

/* -------------------------------------------------------------- */
/* Tablas                                                           */
/* -------------------------------------------------------------- */

.gcdcm-front table.widefat {
	width: 100%;
	border-collapse: collapse;
	background: var(--gcdcm-surface);
	border: 1px solid var(--gcdcm-border-soft);
	border-radius: var(--gcdcm-radius-md);
	overflow: hidden;
	margin: 0.4em 0 1.1em;
	box-shadow: var(--gcdcm-shadow-sm);
}

.gcdcm-front table.widefat th,
.gcdcm-front table.widefat td {
	text-align: left;
	padding: 0.6em 0.85em;
	border-bottom: 1px solid var(--gcdcm-border-soft);
}

.gcdcm-front table.widefat thead th {
	background: var(--gcdcm-bg);
	font-weight: 600;
	font-size: 0.85em;
	text-transform: uppercase;
	letter-spacing: 0.04em;
	color: var(--gcdcm-text-muted);
}

.gcdcm-front table.widefat.striped tbody tr:nth-child(odd) {
	background: #fafafa;
}

.gcdcm-front table.widefat tbody tr:hover {
	background: var(--gcdcm-primary-light);
}

.gcdcm-front table.widefat tr:last-child td {
	border-bottom: none;
}

/* "Todas las tareas": una misma tarea asignada a varias personas se ve
   como filas idénticas repetidas si no se agrupa — ver
   GCDCM_Front_Tasks_List::group_occurrences(). Cuando hay un solo
   responsable la fila es un link plano (.gcdcm-task-row-flat); cuando hay
   varios, es un <details> nativo (sin JS propio): el <summary> es la fila
   resumen con el contador de "hechas", y adentro aparece una fila por
   responsable al abrirlo — reusa el mismo look que el panel de
   comentarios/adjuntos (.gcdcm-extras-panel) para esa parte expandida. */
.gcdcm-front .gcdcm-task-row-meta {
	flex-shrink: 0;
	display: flex;
	align-items: center;
	gap: 0.5em;
}

.gcdcm-front .gcdcm-task-row-date {
	font-size: 0.85em;
	color: var(--gcdcm-text-muted);
	white-space: nowrap;
}

.gcdcm-front .gcdcm-task-row-user {
	flex-shrink: 0;
	width: 11em;
	overflow: hidden;
	text-overflow: ellipsis;
	white-space: nowrap;
}

.gcdcm-front .gcdcm-task-row-flat {
	color: inherit;
	text-decoration: none;
}

.gcdcm-front .gcdcm-task-row-flat:hover {
	text-decoration: none;
}

.gcdcm-front .gcdcm-task-group-summary {
	list-style: none;
}

.gcdcm-front .gcdcm-task-group-summary::-webkit-details-marker {
	display: none;
}

.gcdcm-front .gcdcm-task-group-chevron {
	flex-shrink: 0;
	display: flex;
	color: var(--gcdcm-text-muted);
	transition: transform 0.15s ease;
}

.gcdcm-front details[open] > .gcdcm-task-group-summary .gcdcm-task-group-chevron {
	transform: rotate(90deg);
}

.gcdcm-front details[open] > .gcdcm-task-group-summary {
	background: var(--gcdcm-bg);
	border-bottom-color: var(--gcdcm-border-soft);
}

.gcdcm-front .gcdcm-task-group-tally {
	flex-shrink: 0;
}

.gcdcm-front .gcdcm-task-group-body {
	display: flex;
	flex-direction: column;
	gap: 0.4em;
	padding: 0.75em 1em 0.9em 2.9em;
}

.gcdcm-front .gcdcm-task-group-item {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 1em;
	padding: 0.4em 0.75em;
	border-radius: var(--gcdcm-radius-sm);
	background: var(--gcdcm-surface);
	color: inherit;
	text-decoration: none;
	font-size: 0.92em;
}

.gcdcm-front .gcdcm-task-group-item:hover {
	background: var(--gcdcm-primary-light);
	text-decoration: none;
}

.gcdcm-front .gcdcm-tasks-accordion .gcdcm-empty-state {
	padding: 2em 1.5em;
}

/* -------------------------------------------------------------- */
/* Ajustes on/off (switch) — Notificaciones                         */
/* -------------------------------------------------------------- */

.gcdcm-front .gcdcm-setting-row {
	display: flex;
	align-items: flex-start;
	justify-content: space-between;
	gap: 1.2em;
	padding: 0.85em 0;
	border-bottom: 1px solid var(--gcdcm-border-soft);
}

.gcdcm-front .gcdcm-setting-row.is-last {
	border-bottom: none;
	padding-bottom: 0.3em;
}

.gcdcm-front .gcdcm-setting-text strong {
	display: block;
	margin-bottom: 0.2em;
}

.gcdcm-front .gcdcm-setting-text .description {
	max-width: 48ch;
}

.gcdcm-front .gcdcm-setting-subrow {
	display: flex;
	align-items: center;
	gap: 0.75em;
	padding: 0 0 1.1em 0.2em;
	margin-top: -0.3em;
	border-bottom: 1px solid var(--gcdcm-border-soft);
}

.gcdcm-front .gcdcm-setting-subrow label {
	font-size: 0.9em;
	color: var(--gcdcm-text-muted);
}

.gcdcm-front .gcdcm-toggle {
	position: relative;
	display: inline-block;
	flex-shrink: 0;
	width: 2.6em;
	height: 1.5em;
	margin-top: 0.1em;
}

.gcdcm-front .gcdcm-toggle input {
	position: absolute;
	opacity: 0;
	width: 0;
	height: 0;
}

.gcdcm-front .gcdcm-toggle-track {
	position: absolute;
	inset: 0;
	background: var(--gcdcm-border-soft);
	border-radius: 999px;
	cursor: pointer;
	transition: background 0.15s ease;
}

.gcdcm-front .gcdcm-toggle-track::before {
	content: "";
	position: absolute;
	width: 1.1em;
	height: 1.1em;
	left: 0.2em;
	top: 0.2em;
	background: #fff;
	border-radius: 50%;
	box-shadow: 0 1px 2px rgba(0, 0, 0, 0.25);
	transition: transform 0.15s ease;
}

.gcdcm-front .gcdcm-toggle input:checked + .gcdcm-toggle-track {
	background: var(--gcdcm-primary);
}

.gcdcm-front .gcdcm-toggle input:checked + .gcdcm-toggle-track::before {
	transform: translateX(1.1em);
}

.gcdcm-front .gcdcm-toggle input:focus-visible + .gcdcm-toggle-track {
	box-shadow: 0 0 0 2px var(--gcdcm-primary-light);
}

/* -------------------------------------------------------------- */
/* Formularios: convertimos form-table (basado en <table>) a un     */
/* layout apilado moderno sin tocar el PHP que ya lo genera.        */
/* -------------------------------------------------------------- */

.gcdcm-front table.form-table th,
.gcdcm-front table.form-table td {
	display: block;
	width: auto;
}

.gcdcm-front table.form-table tr {
	display: block;
	margin-bottom: 1.3em;
}

.gcdcm-front table.form-table th {
	padding: 0 0 0.4em;
	font-weight: 600;
	font-size: 0.92em;
	text-align: left;
}

.gcdcm-front table.form-table td {
	padding: 0;
}

.gcdcm-front input[type="text"],
.gcdcm-front input[type="email"],
.gcdcm-front input[type="url"],
.gcdcm-front input[type="password"],
.gcdcm-front input[type="date"],
.gcdcm-front input[type="time"],
.gcdcm-front select,
.gcdcm-front textarea {
	border: 1px solid var(--gcdcm-border-soft);
	border-radius: var(--gcdcm-radius-sm);
	padding: 0.45em 0.65em;
	font-size: 15px;
	background: var(--gcdcm-surface);
	color: var(--gcdcm-text);
	transition: border-color 0.15s ease, box-shadow 0.15s ease;
}

.gcdcm-front input:focus,
.gcdcm-front select:focus,
.gcdcm-front textarea:focus {
	outline: none;
	border-color: var(--gcdcm-primary);
	box-shadow: 0 0 0 2px var(--gcdcm-primary-light);
}

.gcdcm-front .regular-text {
	width: 100%;
	max-width: 420px;
}

.gcdcm-front .large-text {
	width: 100%;
	max-width: 640px;
}

/* -------------------------------------------------------------- */
/* Botones                                                          */
/* -------------------------------------------------------------- */

.gcdcm-front .button {
	display: inline-flex;
	align-items: center;
	gap: 0.4em;
	padding: 0.45em 0.9em;
	border: 1px solid var(--gcdcm-border-soft);
	border-radius: var(--gcdcm-radius-sm);
	background: var(--gcdcm-surface);
	color: var(--gcdcm-text);
	cursor: pointer;
	font-size: 15px;
	font-weight: 600;
	text-decoration: none;
	transition: background 0.15s ease, box-shadow 0.15s ease, transform 0.05s ease;
}

.gcdcm-front .button:hover {
	background: var(--gcdcm-bg);
	text-decoration: none;
}

.gcdcm-front .button:active {
	transform: translateY(1px);
}

.gcdcm-front .button-primary {
	background: var(--gcdcm-primary);
	border-color: var(--gcdcm-primary);
	color: #fff;
}

.gcdcm-front .button-primary:hover {
	background: var(--gcdcm-primary-dark);
	border-color: var(--gcdcm-primary-dark);
}

.gcdcm-front .button-link {
	background: none;
	border: none;
	padding: 0;
	color: var(--gcdcm-critico);
	text-decoration: underline;
	cursor: pointer;
	font-size: 15px;
	font-weight: 500;
}

.gcdcm-front p.submit {
	margin-top: 1.2em;
}

/* -------------------------------------------------------------- */
/* Avisos                                                           */
/* -------------------------------------------------------------- */

.gcdcm-front .notice {
	background: var(--gcdcm-surface);
	border-left: 4px solid var(--gcdcm-text-muted);
	border-radius: var(--gcdcm-radius-sm);
	box-shadow: var(--gcdcm-shadow-sm);
	padding: 0.65em 0.9em;
	margin: 0 0 1.1em;
}

.gcdcm-front .notice-success {
	border-left-color: var(--gcdcm-ok);
}

.gcdcm-front .notice-error {
	border-left-color: var(--gcdcm-critico);
}

/* -------------------------------------------------------------- */
/* Comentarios                                                      */
/* -------------------------------------------------------------- */

.gcdcm-front .gcdcm-comments li {
	background: var(--gcdcm-surface);
	box-shadow: var(--gcdcm-shadow-sm);
}

/* -------------------------------------------------------------- */
/* Responsive                                                       */
/* -------------------------------------------------------------- */

@media (max-width: 900px) {
	.gcdcm-front {
		padding: 0.5em;
	}

	.gcdcm-front .gcdcm-login-screen {
		min-height: calc(100vh - 1em);
	}

	.gcdcm-front .gcdcm-shell {
		min-height: 0;
	}

	.gcdcm-front .gcdcm-menu-toggle {
		display: flex;
		flex-direction: column;
		justify-content: center;
		gap: 4px;
		width: 2.4em;
		height: 2.4em;
		border: none;
		background: var(--gcdcm-sidebar-bg);
		border-radius: var(--gcdcm-radius-sm) 0 0 var(--gcdcm-radius-sm);
		position: absolute;
		top: 0.75em;
		right: 0;
		z-index: 2;
		cursor: pointer;
	}

	.gcdcm-front .gcdcm-menu-toggle span {
		display: block;
		height: 2px;
		background: #fff;
		margin: 0 0.6em;
		border-radius: 2px;
	}

	.gcdcm-front .gcdcm-shell {
		flex-direction: column;
	}

	.gcdcm-front .gcdcm-sidebar {
		flex: none;
		flex-direction: row;
		flex-wrap: wrap;
		align-items: center;
		padding: 0.75em 1em;
		gap: 0.75em;
		min-width: 0;
	}

	.gcdcm-front .gcdcm-brand {
		min-width: 0;
	}

	.gcdcm-front .gcdcm-brand-text {
		overflow: hidden;
		text-overflow: ellipsis;
		white-space: nowrap;
	}

	.gcdcm-front .gcdcm-tabs {
		display: none;
		flex-direction: column;
		width: 100%;
		order: 3;
		flex: none;
	}

	.gcdcm-front .gcdcm-sidebar-open .gcdcm-tabs {
		display: flex;
	}

	/* En mobile el buscador queda siempre visible, en su propia fila. */
	.gcdcm-front .gcdcm-search {
		order: 2;
		width: 100%;
	}

	.gcdcm-front .gcdcm-search-results {
		width: 100%;
		max-width: none;
	}

	/* En mobile no hay lugar para el chip completo (avatar + nombre): se deja
	   solo el botón de cerrar sesión, pegado a la izquierda del hamburger,
	   para que siempre haya una forma de salir sin abrir el menú. */
	.gcdcm-front .gcdcm-user-chip {
		border-top: none;
		padding: 0;
		margin-left: auto;
		margin-right: 2.75em;
	}

	.gcdcm-front .gcdcm-user-chip .gcdcm-user-avatar,
	.gcdcm-front .gcdcm-user-chip .gcdcm-user-name {
		display: none;
	}

	.gcdcm-front .gcdcm-main {
		padding: 1.1em 0.9em;
	}

	.gcdcm-front .gcdcm-cards {
		flex-direction: column;
	}

	.gcdcm-front .gcdcm-card {
		min-width: 0;
		max-width: none;
	}

	.gcdcm-front .gcdcm-two-columns {
		flex-direction: column;
	}

	.gcdcm-front .gcdcm-filters {
		flex-direction: column;
		align-items: stretch;
	}

	.gcdcm-front .gcdcm-filters select,
	.gcdcm-front .gcdcm-filters input {
		width: 100%;
	}

	.gcdcm-front table.widefat {
		display: block;
		overflow-x: auto;
		white-space: nowrap;
	}
}

/* ==================================================================== */
/* v0.26: tareas propias, barras de cumplimiento, formularios plegables  */
/* y ajustes de celular.                                                */
/* ==================================================================== */

/* Títulos de página con más jerarquía que los de sección. */
.gcdcm-front .gcdcm-main > h2 {
	font-size: 1.45em;
	margin-bottom: 0.35em;
}

.gcdcm-front .gcdcm-main > h2 + p.description {
	margin-top: 0;
	margin-bottom: 1.2em;
}

.gcdcm-front .gcdcm-section-title {
	margin-top: 2em;
}

/* Formularios de alta plegados: un botón a la vista, el form al abrirlo. */
.gcdcm-front .gcdcm-collapsible {
	margin: 0 0 1.2em;
}

.gcdcm-front .gcdcm-collapsible > summary {
	list-style: none;
	display: inline-flex;
	margin-bottom: 0.8em;
}

.gcdcm-front .gcdcm-collapsible > summary::-webkit-details-marker {
	display: none;
}

.gcdcm-front .gcdcm-collapsible[open] > summary {
	background: var(--gcdcm-surface);
	border-color: var(--gcdcm-border-soft);
	color: var(--gcdcm-text);
}

/* Acciones de cada fila (Editar / Eliminar / ...) en una sola línea. */
.gcdcm-front td.gcdcm-row-actions {
	white-space: nowrap;
}

.gcdcm-front td.gcdcm-row-actions a + a {
	margin-left: 0.9em;
}

.gcdcm-front .gcdcm-link-danger,
.gcdcm-front a.gcdcm-link-danger {
	color: var(--gcdcm-critico);
}

/* Dashboard: barra de cumplimiento dentro de la tabla. Un solo tono
   neutro (navy); el estado va en la etiqueta con texto de la columna de al lado. */
.gcdcm-front .gcdcm-meter-table .gcdcm-meter-col {
	width: 55%;
}

.gcdcm-front .gcdcm-meter-table tr.is-vacio td {
	color: var(--gcdcm-text-muted);
}

.gcdcm-front .gcdcm-meter {
	display: flex;
	align-items: center;
	gap: 0.75em;
}

.gcdcm-front .gcdcm-meter-track {
	flex: 1;
	height: 10px;
	border-radius: 4px;
	background: var(--gcdcm-neutro-bg);
	overflow: hidden;
	min-width: 60px;
}

.gcdcm-front .gcdcm-meter-fill {
	display: block;
	height: 100%;
	border-radius: 4px;
	background: var(--gcdcm-navy);
}

.gcdcm-front .gcdcm-meter-value {
	flex-shrink: 0;
	min-width: 6.5em;
	font-size: 0.9em;
	font-variant-numeric: tabular-nums;
	color: var(--gcdcm-text-muted);
}

.gcdcm-front .gcdcm-meter-value strong {
	color: var(--gcdcm-text);
}

/* Dashboard: vencidas / próximas agrupadas por tarea. */
.gcdcm-front .gcdcm-exception-row {
	display: flex;
	align-items: center;
	gap: 0.75em;
	padding: 0.6em 0.85em;
	border-bottom: 1px solid var(--gcdcm-border-soft);
	color: var(--gcdcm-text);
	text-decoration: none;
}

.gcdcm-front .gcdcm-exception-row:last-child {
	border-bottom: none;
}

.gcdcm-front .gcdcm-exception-row:hover {
	background: var(--gcdcm-bg);
	text-decoration: none;
}

.gcdcm-front .gcdcm-exception-main {
	flex: 1;
	min-width: 0;
	display: flex;
	flex-direction: column;
}

.gcdcm-front .gcdcm-exception-main .gcdcm-task-title {
	white-space: normal;
	font-weight: 500;
}

.gcdcm-front .gcdcm-exception-people,
.gcdcm-front .gcdcm-exception-when {
	font-size: 0.82em;
	color: var(--gcdcm-text-muted);
}

.gcdcm-front .gcdcm-exception-when {
	flex-shrink: 0;
	white-space: nowrap;
}

/* Checklist: las filas de tareas propias no se despliegan. */
.gcdcm-front .gcdcm-task-row-static {
	cursor: default;
}

.gcdcm-front .gcdcm-task-row .gcdcm-badge {
	flex-shrink: 0;
}

.gcdcm-front .gcdcm-propias-intro {
	margin: 0 0 0.9em;
}

/* Alta rápida de tarea propia: todo en una línea en escritorio. */
.gcdcm-front .gcdcm-propia-form {
	display: flex;
	flex-wrap: wrap;
	align-items: flex-end;
	gap: 0.6em 0.8em;
	background: var(--gcdcm-surface);
	border: 1px solid var(--gcdcm-border-soft);
	border-radius: var(--gcdcm-radius-md);
	box-shadow: var(--gcdcm-shadow-sm);
	padding: 0.9em 1em;
	margin: 0 0 1em;
}

.gcdcm-front .gcdcm-propia-titulo {
	flex: 1 1 280px;
	min-width: 0;
}

.gcdcm-front .gcdcm-propia-campo {
	display: flex;
	flex-direction: column;
	gap: 0.2em;
	font-size: 0.8em;
	color: var(--gcdcm-text-muted);
}

.gcdcm-front .gcdcm-propia-campo input,
.gcdcm-front .gcdcm-propia-campo select {
	font-size: 15px;
}

.gcdcm-front .gcdcm-propia-borrar {
	display: contents;
}

.gcdcm-front .gcdcm-icon-button {
	flex-shrink: 0;
	width: 1.8em;
	height: 1.8em;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	border: none;
	border-radius: var(--gcdcm-radius-sm);
	background: none;
	color: var(--gcdcm-text-muted);
	font-size: 1.1em;
	line-height: 1;
	cursor: pointer;
}

.gcdcm-front .gcdcm-icon-button:hover {
	background: var(--gcdcm-critico-bg);
	color: var(--gcdcm-critico);
}

/* Edición de una tarea propia: el lápiz y el formulario, dentro de la misma fila. */
.gcdcm-front .gcdcm-task-row-static {
	flex-wrap: wrap;
}

.gcdcm-front .gcdcm-propia-edit-toggle.gcdcm-icon-button:hover {
	background: var(--gcdcm-primary-light);
	color: var(--gcdcm-primary);
}

.gcdcm-front .gcdcm-propia-edit-form {
	flex: 1 1 100%;
	margin: 0.4em 0 0.2em;
	box-shadow: none;
}

.gcdcm-front .gcdcm-propia-edit-form[hidden] {
	display: none;
}

/* ---------------------------- Celular ---------------------------- */
@media (max-width: 600px) {
	/* Tarjetas de resumen de a dos en vez de una debajo de la otra. */
	.gcdcm-front .gcdcm-cards {
		display: grid;
		grid-template-columns: 1fr 1fr;
		gap: 0.5em;
	}

	.gcdcm-front .gcdcm-card {
		max-width: none;
		min-width: 0;
		padding: 0.6em 0.75em;
	}

	.gcdcm-front .gcdcm-card-value {
		font-size: 1.35em;
	}

	/* Solapas del checklist en dos filas, sin cortar ninguna. */
	.gcdcm-front .gcdcm-subtabs {
		display: grid;
		grid-template-columns: 1fr 1fr;
		overflow: visible;
	}

	.gcdcm-front .gcdcm-subtab {
		justify-content: center;
		padding: 0.55em 0.4em;
		font-size: 0.92em;
	}

	/* Títulos de tarea completos (en dos líneas si hace falta), no cortados. */
	.gcdcm-front .gcdcm-task-row {
		align-items: flex-start;
		flex-wrap: wrap;
	}

	.gcdcm-front .gcdcm-task-title {
		white-space: normal;
		flex-basis: calc(100% - 4em);
	}

	.gcdcm-front .gcdcm-task-row .gcdcm-task-meta,
	.gcdcm-front .gcdcm-task-row .gcdcm-badge {
		margin-left: 2em;
	}

	.gcdcm-front .gcdcm-task-row .gcdcm-badge + .gcdcm-badge,
	.gcdcm-front .gcdcm-task-row .gcdcm-task-meta + .gcdcm-badge {
		margin-left: 0;
	}

	.gcdcm-front .gcdcm-propia-titulo,
	.gcdcm-front .gcdcm-propia-campo,
	.gcdcm-front .gcdcm-propia-form .button {
		flex: 1 1 100%;
	}

	.gcdcm-front .gcdcm-meter-table .gcdcm-meter-col {
		width: auto;
	}

	.gcdcm-front .gcdcm-meter-value {
		min-width: 0;
	}

	.gcdcm-front .gcdcm-exception-row {
		flex-wrap: wrap;
	}
}

/* Acciones de fila: si no entran, pasan a la línea de abajo en vez de salirse. */
.gcdcm-front td.gcdcm-row-actions {
	white-space: normal;
}

.gcdcm-front td.gcdcm-row-actions a {
	display: inline-block;
	white-space: nowrap;
	margin: 0.1em 0.9em 0.1em 0;
}

.gcdcm-front td.gcdcm-row-actions a + a {
	margin-left: 0;
}

@media (max-width: 600px) {
	/* Barras del dashboard: sin scroll lateral; el estado ya se lee en el número. */
	.gcdcm-front table.gcdcm-meter-table {
		display: table;
		white-space: normal;
		table-layout: fixed;
		width: 100%;
	}

	.gcdcm-front .gcdcm-meter-table .gcdcm-meter-estado {
		display: none;
	}

	.gcdcm-front .gcdcm-meter-table td.gcdcm-meter-name {
		width: 40%;
		word-break: break-word;
	}

	.gcdcm-front .gcdcm-meter {
		flex-wrap: wrap;
		gap: 0.25em;
	}

	.gcdcm-front .gcdcm-meter-track {
		flex-basis: 100%;
	}
}

/* ==================================================================== */
/* v0.27: checklist — avance del período, pendientes primero y hechas   */
/* plegadas.                                                            */
/* ==================================================================== */

.gcdcm-front .gcdcm-progress-cards {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr)) minmax(0, 0.75fr);
	gap: 0.75em;
	margin: 0 0 1em;
}

.gcdcm-front .gcdcm-progress-card {
	display: flex;
	flex-direction: column;
	gap: 0.35em;
	background: var(--gcdcm-surface);
	border: 1px solid var(--gcdcm-border-soft);
	border-radius: var(--gcdcm-radius-md);
	box-shadow: var(--gcdcm-shadow-sm);
	padding: 0.85em 1em;
	min-width: 0;
}

.gcdcm-front .gcdcm-progress-head {
	display: flex;
	align-items: baseline;
	justify-content: space-between;
	gap: 0.5em;
}

.gcdcm-front .gcdcm-progress-label {
	font-size: 0.8em;
	font-weight: 700;
	text-transform: uppercase;
	letter-spacing: 0.04em;
	color: var(--gcdcm-text-muted);
}

.gcdcm-front .gcdcm-progress-pct {
	font-size: 0.85em;
	font-weight: 600;
	font-variant-numeric: tabular-nums;
	color: var(--gcdcm-text-muted);
}

.gcdcm-front .gcdcm-progress-count {
	font-size: 0.95em;
	color: var(--gcdcm-text-muted);
}

.gcdcm-front .gcdcm-progress-count strong {
	font-size: 1.6em;
	font-weight: 700;
	line-height: 1.1;
	color: var(--gcdcm-text);
	font-variant-numeric: tabular-nums;
}

.gcdcm-front .gcdcm-progress-card .gcdcm-meter-track {
	flex: none;
	height: 8px;
	min-width: 0;
}

.gcdcm-front .gcdcm-progress-when {
	font-size: 0.8em;
	color: var(--gcdcm-text-muted);
}

.gcdcm-front .gcdcm-progress-card.is-complete .gcdcm-meter-fill {
	background: var(--gcdcm-ok);
}

.gcdcm-front .gcdcm-progress-card.is-complete .gcdcm-progress-when {
	color: var(--gcdcm-ok);
	font-weight: 600;
}

.gcdcm-front .gcdcm-progress-card.is-empty .gcdcm-progress-count {
	font-size: 0.85em;
	margin-top: 0.4em;
}

.gcdcm-front .gcdcm-progress-big {
	font-size: 1.6em;
	font-weight: 700;
	line-height: 1.25;
	color: var(--gcdcm-text-muted);
}

.gcdcm-front .gcdcm-progress-vencidas.is-alert {
	background: var(--gcdcm-critico-bg);
	border-color: transparent;
}

.gcdcm-front .gcdcm-progress-vencidas.is-alert .gcdcm-progress-big,
.gcdcm-front .gcdcm-progress-vencidas.is-alert .gcdcm-progress-label,
.gcdcm-front .gcdcm-progress-vencidas.is-alert .gcdcm-progress-when {
	color: var(--gcdcm-critico);
}

/* Hechas plegadas debajo de las pendientes. */
.gcdcm-front .gcdcm-done-group {
	margin-top: 0.75em;
}

.gcdcm-front .gcdcm-done-group > summary {
	list-style: none;
	display: inline-flex;
	align-items: center;
	gap: 0.45em;
	padding: 0.4em 0.2em;
	font-weight: 600;
	font-size: 0.92em;
	color: var(--gcdcm-text-muted);
	cursor: pointer;
	user-select: none;
}

.gcdcm-front .gcdcm-done-group > summary::-webkit-details-marker {
	display: none;
}

.gcdcm-front .gcdcm-done-group > summary:hover {
	color: var(--gcdcm-text);
}

.gcdcm-front .gcdcm-done-group-chevron {
	width: 0.45em;
	height: 0.45em;
	border-right: 2px solid currentColor;
	border-bottom: 2px solid currentColor;
	transform: rotate(-45deg);
	transition: transform 0.15s ease;
}

.gcdcm-front .gcdcm-done-group[open] .gcdcm-done-group-chevron {
	transform: rotate(45deg);
}

.gcdcm-front .gcdcm-done-group > .gcdcm-task-list {
	margin-top: 0.4em;
}

.gcdcm-front .gcdcm-done-note {
	margin: 0.5em 0 0;
	font-size: 0.8em;
}

/* "¡Listo!" cuando no queda nada pendiente. */
.gcdcm-front .gcdcm-all-done {
	display: flex;
	align-items: center;
	gap: 0.6em;
	padding: 0.9em 1em;
	border-radius: var(--gcdcm-radius-md);
	background: var(--gcdcm-ok-bg);
	color: var(--gcdcm-ok);
	font-weight: 600;
}

.gcdcm-front .gcdcm-all-done-icon {
	display: flex;
}

.gcdcm-front .gcdcm-all-done-icon svg {
	width: 20px;
	height: 20px;
}

.gcdcm-front .gcdcm-history-range {
	font-weight: 400;
	color: var(--gcdcm-text-muted);
}

.gcdcm-front .gcdcm-only-mobile {
	display: none;
}

@media (max-width: 900px) {
	.gcdcm-front .gcdcm-progress-cards {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}
}

@media (max-width: 600px) {
	.gcdcm-front .gcdcm-progress-cards {
		gap: 0.5em;
	}

	.gcdcm-front .gcdcm-progress-card {
		padding: 0.65em 0.75em;
	}

	.gcdcm-front .gcdcm-progress-count strong,
	.gcdcm-front .gcdcm-progress-big {
		font-size: 1.35em;
	}

	/* Historial: los últimos 7 casilleros en una sola fila. */
	.gcdcm-front .gcdcm-history-days {
		flex-wrap: nowrap;
		gap: 0.3em;
	}

	.gcdcm-front .gcdcm-history-day {
		flex: 1 1 0;
		min-width: 0;
		padding: 0.45em 0.1em;
	}

	.gcdcm-front .gcdcm-history-day:nth-last-child(n+8) {
		display: none;
	}

	.gcdcm-front .gcdcm-history-day-date {
		font-size: 0.7em;
	}

	.gcdcm-front .gcdcm-history-day-pct {
		font-size: 0.85em;
	}

	.gcdcm-front .gcdcm-history-day-now {
		font-size: 0.55em;
	}

	.gcdcm-front .gcdcm-only-desktop {
		display: none;
	}

	.gcdcm-front .gcdcm-only-mobile {
		display: inline;
	}
}

.gcdcm-front .gcdcm-history-day.is-now {
	background: var(--gcdcm-navy-light);
	border-color: transparent;
}

.gcdcm-front .gcdcm-history-day.is-now .gcdcm-history-day-pct {
	color: var(--gcdcm-navy);
}

.gcdcm-front .gcdcm-done-group > summary {
	font-size: 0.95em;
	color: var(--gcdcm-text);
	opacity: 0.75;
}

.gcdcm-front .gcdcm-done-group > summary:hover {
	opacity: 1;
}

/* ==================================================================== */
/* v0.27: barras con el color de su estado (el número y la etiqueta con  */
/* texto siguen al lado: el color refuerza, no es la única señal).      */
/* ==================================================================== */

.gcdcm-front .gcdcm-meter-fill.is-ok {
	background: var(--gcdcm-ok);
}

.gcdcm-front .gcdcm-meter-fill.is-atencion {
	background: var(--gcdcm-atencion);
}

.gcdcm-front .gcdcm-meter-fill.is-critico {
	background: var(--gcdcm-critico);
}

/* ==================================================================== */
/* v0.27: Panel del líder                                               */
/* ==================================================================== */

.gcdcm-front .gcdcm-leader-summary {
	display: grid;
	grid-template-columns: repeat(4, minmax(0, 1fr));
	gap: 0.75em;
	margin: 0.25em 0 0.5em;
}

.gcdcm-front .gcdcm-leader-stat {
	display: flex;
	flex-direction: column;
	align-items: flex-start;
	gap: 0.2em;
	padding: 0.85em 1em;
	text-align: left;
	font: inherit;
	color: var(--gcdcm-text);
	background: var(--gcdcm-surface);
	border: 1px solid var(--gcdcm-border-soft);
	border-radius: var(--gcdcm-radius-md);
	box-shadow: var(--gcdcm-shadow-sm);
	cursor: pointer;
	transition: border-color 0.15s ease;
}

.gcdcm-front .gcdcm-leader-stat:hover {
	border-color: var(--gcdcm-text-muted);
}

.gcdcm-front .gcdcm-leader-stat-n {
	font-size: 1.7em;
	font-weight: 700;
	line-height: 1.1;
	font-variant-numeric: tabular-nums;
}

.gcdcm-front .gcdcm-leader-stat-label {
	font-size: 0.85em;
	color: var(--gcdcm-text-muted);
}

.gcdcm-front .gcdcm-leader-stat.is-alert {
	background: var(--gcdcm-critico-bg);
	border-color: transparent;
}

.gcdcm-front .gcdcm-leader-stat.is-alert .gcdcm-leader-stat-n {
	color: var(--gcdcm-critico);
}

.gcdcm-front .gcdcm-leader-stat.is-ok .gcdcm-leader-stat-n {
	color: var(--gcdcm-ok);
}

.gcdcm-front .gcdcm-leader-section {
	margin: 1.9em 0 0.2em;
	font-size: 1.05em;
	scroll-margin-top: 1em;
}

.gcdcm-front .gcdcm-leader-help {
	margin: 0 0 0.7em;
	font-size: 0.85em;
}

.gcdcm-front .gcdcm-leader-section + .gcdcm-task-list,
.gcdcm-front .gcdcm-leader-section + .gcdcm-leader-none {
	margin-top: 0.6em;
}

.gcdcm-front .gcdcm-leader-none {
	margin: 0.4em 0 0;
	color: var(--gcdcm-text-muted);
}

.gcdcm-front .gcdcm-exception-go {
	flex-shrink: 0;
	font-size: 1.3em;
	line-height: 1;
	color: var(--gcdcm-text-muted);
}

.gcdcm-front .gcdcm-leader-person {
	font-weight: 600;
}

.gcdcm-front .gcdcm-leader-meter-row .gcdcm-leader-person {
	flex: 0 0 13em;
	min-width: 0;
}

.gcdcm-front .gcdcm-leader-meter-row .gcdcm-meter {
	flex: 1;
	min-width: 0;
}

.gcdcm-front .gcdcm-leader-meter-row .gcdcm-meter-value {
	min-width: 11em;
}

.gcdcm-front .gcdcm-leader-people {
	display: grid;
	grid-template-columns: repeat(auto-fill, minmax(340px, 1fr));
	gap: 0.75em;
}

.gcdcm-front .gcdcm-leader-person-card {
	background: var(--gcdcm-surface);
	border: 1px solid var(--gcdcm-border-soft);
	border-radius: var(--gcdcm-radius-md);
	box-shadow: var(--gcdcm-shadow-sm);
	overflow: hidden;
}

.gcdcm-front .gcdcm-leader-person-head {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 0.55em;
	padding: 0.7em 0.9em;
	border-bottom: 1px solid var(--gcdcm-border-soft);
	background: var(--gcdcm-bg);
}

.gcdcm-front .gcdcm-leader-person-head .gcdcm-user-avatar {
	width: 1.9em;
	height: 1.9em;
	font-size: 0.85em;
}

.gcdcm-front .gcdcm-leader-person-link {
	margin-left: auto;
	font-size: 0.85em;
	font-weight: 600;
	white-space: nowrap;
}

.gcdcm-front .gcdcm-leader-person-tasks {
	list-style: none;
	margin: 0;
	padding: 0;
}

.gcdcm-front .gcdcm-leader-person-tasks li {
	display: flex;
	align-items: baseline;
	gap: 0.75em;
	margin: 0;
	padding: 0.5em 0.9em;
	border-bottom: 1px solid var(--gcdcm-border-soft);
}

.gcdcm-front .gcdcm-leader-person-tasks li:last-child {
	border-bottom: none;
}

.gcdcm-front .gcdcm-leader-person-tasks .gcdcm-task-title {
	white-space: normal;
}

@media (max-width: 900px) {
	.gcdcm-front .gcdcm-leader-summary {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}
}

@media (max-width: 600px) {
	.gcdcm-front .gcdcm-leader-summary {
		gap: 0.5em;
	}

	.gcdcm-front .gcdcm-leader-stat {
		padding: 0.65em 0.75em;
	}

	.gcdcm-front .gcdcm-leader-people {
		grid-template-columns: 1fr;
	}

	.gcdcm-front .gcdcm-leader-meter-row {
		flex-wrap: wrap;
	}

	.gcdcm-front .gcdcm-leader-meter-row .gcdcm-leader-person {
		flex-basis: calc(100% - 2em);
	}

	.gcdcm-front .gcdcm-leader-meter-row .gcdcm-meter-value {
		min-width: 0;
	}

	.gcdcm-front .gcdcm-leader-person-tasks li {
		flex-wrap: wrap;
		gap: 0.2em 0.75em;
	}
}

.gcdcm-front .gcdcm-leader-person-tasks li.gcdcm-leader-more {
	font-size: 0.85em;
	color: var(--gcdcm-text-muted);
}

/* ==================================================================== */
/* v0.27: Dashboard general                                             */
/* ==================================================================== */

.gcdcm-front .gcdcm-dashboard-cards {
	grid-template-columns: minmax(0, 1.8fr) repeat(3, minmax(0, 1fr));
}

.gcdcm-front .gcdcm-progress-big.gcdcm-progress-big-neutral {
	color: var(--gcdcm-text);
}

/* Links dentro de tablas y listas en color de texto: el verde queda para
   "bien / en objetivo" y deja de competir con cada nombre de la pantalla. */
.gcdcm-front table.widefat td a:not(.button):not(.gcdcm-link-danger):not(.gcdcm-link-quiet-danger),
.gcdcm-front .gcdcm-meter-name a {
	color: var(--gcdcm-text);
	font-weight: 500;
}

.gcdcm-front table.widefat td a:not(.button):not(.gcdcm-link-danger):not(.gcdcm-link-quiet-danger):hover,
.gcdcm-front .gcdcm-meter-name a:hover {
	color: var(--gcdcm-primary-dark);
}

@media (max-width: 900px) {
	.gcdcm-front .gcdcm-dashboard-cards {
		grid-template-columns: repeat(3, minmax(0, 1fr));
	}

	.gcdcm-front .gcdcm-dashboard-main {
		grid-column: 1 / -1;
	}
}

/* ==================================================================== */
/* v0.27: listas de gestión (Todas las tareas, Plantillas, Alertas)     */
/* ==================================================================== */

/* Separador de día/semana/mes dentro de una lista. */
.gcdcm-front .gcdcm-list-separator {
	padding: 0.45em 0.85em;
	background: var(--gcdcm-bg);
	border-bottom: 1px solid var(--gcdcm-border-soft);
	font-size: 0.78em;
	font-weight: 700;
	text-transform: uppercase;
	letter-spacing: 0.04em;
	color: var(--gcdcm-text-muted);
}

.gcdcm-front .gcdcm-list-separator:not(:first-child) {
	border-top: 1px solid var(--gcdcm-border-soft);
}

.gcdcm-front .gcdcm-muted {
	color: var(--gcdcm-text-muted);
	font-size: 0.9em;
}

/* Plantillas: mismas columnas en las tres tablas (Diaria/Semanal/Mensual). */
.gcdcm-front table.gcdcm-templates-table {
	table-layout: fixed;
	width: 100%;
}

.gcdcm-front .gcdcm-templates-table .gcdcm-col-prioridad {
	width: 8.5em;
}

.gcdcm-front .gcdcm-templates-table .gcdcm-col-estado {
	width: 7.5em;
}

.gcdcm-front .gcdcm-templates-table .gcdcm-col-acciones {
	width: 11em;
	text-align: right;
}

.gcdcm-front .gcdcm-templates-table td {
	vertical-align: middle;
}

.gcdcm-front .gcdcm-templates-table tr.is-pausada td:first-child {
	color: var(--gcdcm-text-muted);
}

.gcdcm-front .button.gcdcm-button-small {
	padding: 0.2em 0.8em;
	font-size: 0.85em;
	min-height: 0;
	line-height: 1.6;
}

/* Acción destructiva que no grita: gris, y roja recién al pasar el mouse. */
.gcdcm-front td.gcdcm-row-actions a.gcdcm-link-quiet-danger {
	color: var(--gcdcm-text-muted);
	font-size: 0.85em;
	margin-left: 0.6em;
	margin-right: 0;
}

.gcdcm-front td.gcdcm-row-actions a.gcdcm-link-quiet-danger:hover {
	color: var(--gcdcm-critico);
}

/* Alertas: una fila por alerta con severidad, dónde, quién y cuándo. */
.gcdcm-front .gcdcm-alert-sev {
	flex: 0 0 8.5em;
}

.gcdcm-front .gcdcm-alert-row.is-resuelta .gcdcm-task-title {
	color: var(--gcdcm-text-muted);
}

.gcdcm-front .gcdcm-alert-list + .gcdcm-done-group,
.gcdcm-front .gcdcm-all-done + .gcdcm-done-group {
	margin-top: 1em;
}

@media (max-width: 600px) {
	.gcdcm-front table.gcdcm-templates-table {
		table-layout: auto;
	}

	.gcdcm-front .gcdcm-templates-table .gcdcm-col-prioridad,
	.gcdcm-front .gcdcm-templates-table .gcdcm-col-estado {
		width: auto;
	}

	.gcdcm-front .gcdcm-alert-row {
		flex-wrap: wrap;
	}

	.gcdcm-front .gcdcm-alert-sev {
		flex-basis: 100%;
	}
}

.gcdcm-front .gcdcm-templates-table td.gcdcm-col-acciones {
	white-space: nowrap;
}

.gcdcm-front .gcdcm-templates-table td.gcdcm-col-acciones a {
	display: inline-block;
	vertical-align: middle;
	margin-top: 0;
	margin-bottom: 0;
}

.gcdcm-front .gcdcm-templates-table .gcdcm-col-acciones {
	width: 12.5em;
	padding-right: 1em;
}

.gcdcm-front .notice-warning {
	border-left-color: var(--gcdcm-atencion);
}
