/**
 * Reskin del plugin ZentryGate para el tema AGJ_Editorial.
 *
 * Cubre únicamente lo que el plugin renderiza en el frontend, dentro de la
 * plantilla del tema (Bloque A: asistente público de login/registro/
 * recuperación; Bloque B: panel embebido de administración). wp-admin
 * (Bloque C) no carga esta hoja y mantiene su piel nativa.
 *
 * Solo se usan las clases que el plugin ya genera (o las pocas añadidas sin
 * cambiar comportamiento, ver ZentryGate/ZentryGate/{Auth,UserPage,
 * AdministratorPage}.php) — ninguna regla de aquí depende de marcado
 * exclusivo de este tema.
 */

/* ===================================================================
 * 01. Tokens
 * =================================================================== */

:root {
	--agj-mono: 'IBM Plex Mono', 'SFMono-Regular', Consolas, monospace;
	--agj-alt-bg: #F2EFEA;
	--agj-line-soft: #EDE9E3;
	--agj-field-border: #D6D0C7;
	--agj-success: #1F6B4A;
	--agj-success-bg: #F1F6F2;
	--agj-warn: #8A5A12;
	--agj-warn-bg: #FAF4EA;
	--agj-info: #245A7A;
	--agj-info-bg: #EFF4F7;
	--agj-error-bg: #FBEFEF;
	--agj-error-border: #E4C4C6;
}

/* ===================================================================
 * 01b. Envoltorio del plugin
 * =================================================================== */

/* El plugin envuelve todas sus pantallas en ".zg-shell" y le da un ancho
   máximo propio para verse bien en cualquier tema. Aquí sobra: el ancho y el
   margen los pone ya ".content" de la plantilla (ver template-zentrygate.php). */
.zg-shell {
	max-width: none;
	margin: 0;
	padding: 0;
}

/* ===================================================================
 * 02. Botones
 * =================================================================== */

.zg-cookie-form .button,
.zg-login-form .button,
.zg-register-form .button,
.zg-recovery-ask-email-form .button,
.zg-recovery-change-password-form .button,
.zg-user-page .button,
.zg-admin-page .button {
	font-family: var(--agj-sans);
	border-radius: 0;
	cursor: pointer;
	transition: background-color .15s ease, border-color .15s ease, color .15s ease;
}

.zg-cookie-form .button-primary,
.zg-login-form .button-primary,
.zg-register-form .button-primary,
.zg-recovery-ask-email-form .button-primary,
.zg-recovery-change-password-form .button-primary,
.zg-user-page .button-primary,
.zg-admin-page .button-primary {
	padding: 13px 24px;
	background: var(--agj-red);
	border: 0;
	color: #fff;
	font-size: 15px;
	font-weight: 500;
}
.zg-cookie-form .button-primary:hover,
.zg-login-form .button-primary:hover,
.zg-register-form .button-primary:hover,
.zg-recovery-ask-email-form .button-primary:hover,
.zg-recovery-change-password-form .button-primary:hover,
.zg-user-page .button-primary:hover,
.zg-admin-page .button-primary:hover {
	background: var(--agj-red-hover);
}

.zg-cookie-form .button-secondary,
.zg-login-form .button-secondary,
.zg-register-form .button-secondary,
.zg-user-page .button-secondary,
.zg-admin-page .button-secondary {
	padding: 12px 22px;
	background: transparent;
	border: 1px solid #C9C4BD;
	color: var(--agj-ink);
	font-size: 14px;
}
.zg-user-page .button-secondary:hover,
.zg-admin-page .button-secondary:hover {
	border-color: var(--agj-ink);
}

.zg-user-page .button[disabled],
.zg-admin-page .button[disabled] {
	background: #EDE9E3;
	border-color: transparent;
	color: #A6A099;
	cursor: not-allowed;
}

.zg-admin-page .zg-btn-danger {
	color: var(--agj-red);
	border-color: var(--agj-error-border);
}
.zg-admin-page .zg-btn-danger:hover {
	background: var(--agj-error-bg);
	border-color: var(--agj-red);
}

/* ===================================================================
 * 03. Avisos y alertas
 * =================================================================== */

.zg-notice {
	display: flex;
	gap: 12px;
	align-items: flex-start;
	max-width: none;
	margin: 0 0 16px;
	padding: 14px 16px;
	background: var(--agj-alt-bg);
	border: 0;
	border-left: 3px solid var(--agj-muted);
	border-radius: 0;
	box-shadow: none;
	font-family: var(--agj-sans);
	font-size: 14.5px;
	line-height: 1.55;
	color: var(--agj-ink);
}
.zg-notice::before {
	flex: none;
	font-weight: 600;
}
.zg-notice.zg-notice-success { background: var(--agj-success-bg); border-left-color: var(--agj-success); }
.zg-notice.zg-notice-success::before { content: "✓"; color: var(--agj-success); }
.zg-notice.zg-notice-error { background: var(--agj-error-bg); border-left-color: var(--agj-red); }
.zg-notice.zg-notice-error::before { content: "!"; color: var(--agj-red); }
.zg-notice.zg-notice-warn { background: var(--agj-warn-bg); border-left-color: var(--agj-warn); }
.zg-notice.zg-notice-warn::before { content: "△"; color: var(--agj-warn); }
.zg-notice.zg-notice-info { background: var(--agj-info-bg); border-left-color: var(--agj-info); }
.zg-notice.zg-notice-info::before { content: "i"; color: var(--agj-info); }

.zg-notice strong { font-family: var(--agj-serif); font-weight: 600; font-size: 17px; display: block; margin-bottom: 6px; }
.zg-notice p { margin: 0 0 8px; }
.zg-notice p:last-child { margin-bottom: 0; }
.zg-notice .zg-auth-links { margin: 4px 0 0; font-size: 14.5px; font-weight: 500; }

.zg-alert {
	border: 1px solid var(--agj-error-border);
	border-left: 3px solid var(--agj-red);
	background: var(--agj-error-bg);
	border-radius: 0;
	padding: 18px 20px;
}
.zg-alert strong {
	display: block;
	margin-bottom: 10px;
	font-family: var(--agj-serif);
	font-weight: 600;
	font-size: 17px;
	color: var(--agj-ink);
}
.zg-alert-list {
	display: flex;
	flex-direction: column;
	gap: 6px;
	font-size: 14.5px;
	line-height: 1.55;
	color: var(--agj-ink-soft);
}

/* ===================================================================
 * 04. Campos
 * =================================================================== */

.zg-cookie-form label,
.zg-login-form label,
.zg-register-form label,
.zg-recovery-ask-email-form label,
.zg-recovery-change-password-form label,
.zg-admin-page label {
	display: block;
	font-family: var(--agj-sans);
	font-size: 11px;
	letter-spacing: .14em;
	text-transform: uppercase;
	color: var(--agj-muted);
	font-weight: 600;
	margin-bottom: 8px;
}

.zg-cookie-form input,
.zg-login-form input,
.zg-register-form input,
.zg-recovery-ask-email-form input,
.zg-recovery-change-password-form input,
.zg-user-page input,
.zg-admin-page input:not([type=checkbox]):not([type=radio]):not([type=file]):not([type=hidden]) {
	width: 100%;
	padding: 13px 15px;
	background: #fff;
	border: 1px solid var(--agj-field-border);
	border-radius: 0;
	font-family: var(--agj-sans);
	font-size: 15px;
	color: var(--agj-ink);
}
.zg-cookie-form input:focus,
.zg-login-form input:focus,
.zg-register-form input:focus,
.zg-recovery-ask-email-form input:focus,
.zg-recovery-change-password-form input:focus,
.zg-user-page input:focus,
.zg-admin-page input:focus {
	outline: 0;
	border-color: var(--agj-ink);
}

.zg-register-form input[type=checkbox],
.zg-register-form input[type=radio],
.zg-user-page input[type=checkbox],
.zg-admin-page input[type=checkbox] {
	width: 16px;
	height: 16px;
	accent-color: var(--agj-red);
}

.zg-register-form .zg-checkbox {
	display: flex;
	align-items: center;
	gap: 10px;
	text-transform: none;
	letter-spacing: normal;
	font-size: 14.5px;
	color: var(--agj-ink);
	font-weight: 400;
}

/* ===================================================================
 * 05. Pestañas .nav-tab-wrapper
 * =================================================================== */

.zg-admin-page .nav-tab-wrapper {
	display: flex;
	gap: 0;
	flex-wrap: wrap;
	margin: 0;
	padding: 0 clamp(10px, 2vw, 16px);
	background: #FDFCFA;
	border-bottom: 1px solid var(--agj-line);
}
.zg-admin-page .nav-tab {
	padding: 14px 18px;
	margin: 0;
	background: transparent;
	border: 0;
	border-bottom: 2px solid transparent;
	border-radius: 0;
	color: var(--agj-muted);
	font-family: var(--agj-sans);
	font-size: 14px;
	font-weight: 400;
}
.zg-admin-page .nav-tab:hover { background: transparent; color: var(--agj-ink); }
.zg-admin-page .nav-tab-active,
.zg-admin-page .nav-tab-active:hover {
	background: transparent;
	border-bottom-color: var(--agj-red);
	color: var(--agj-ink);
	font-weight: 600;
	top: 0;
}

/* ===================================================================
 * 06. Bloque A — carcasa de tarjeta (login, registro, cookies, recuperación)
 * =================================================================== */

.zg-cookie-form,
.zg-login-form,
.zg-register-form,
.zg-recovery-ask-email-form,
.zg-recovery-change-password-form {
	max-width: 520px;
	margin: clamp(32px, 6vw, 64px) auto;
	padding: 0;
	background: #fff;
	border: 1px solid var(--agj-line);
	border-radius: 0;
	box-shadow: none;
	font-family: var(--agj-sans);
	color: var(--agj-ink);
}

.zg-form-header {
	padding: 24px 28px 0;
	margin-bottom: 0;
	border-bottom: 0;
}
.zg-form-eyebrow {
	font-size: 11px;
	letter-spacing: .14em;
	text-transform: uppercase;
	color: var(--agj-red);
	font-weight: 600;
	margin-bottom: 8px;
}
.zg-form-header h2 {
	font-family: var(--agj-serif);
	font-weight: 400;
	font-size: 24px;
	color: var(--agj-ink);
	margin: 0;
}

.zg-form-body {
	padding: 20px 28px 0;
	display: flex;
	flex-direction: column;
	gap: 18px;
}
.zg-form-body > p:first-child {
	margin: 0;
	font-size: 14.5px;
	line-height: 1.65;
	color: var(--agj-ink-soft);
}

.zg-field-divider {
	display: flex;
	align-items: center;
	gap: 14px;
	margin: 6px 0 0;
}
.zg-field-divider span {
	font-size: 11px;
	letter-spacing: .14em;
	text-transform: uppercase;
	color: var(--agj-muted);
	font-weight: 600;
	white-space: nowrap;
}
.zg-field-divider::after {
	content: "";
	flex: 1;
	height: 1px;
	background: var(--agj-line-soft);
}

.zg-form-footer {
	padding: 24px 28px 28px;
	margin-top: 0;
	display: flex;
	flex-direction: column;
	align-items: flex-start;
	gap: 16px;
	text-align: left;
}
.zg-form-footer .zg-auth-links {
	display: flex;
	flex-direction: column;
	gap: 8px;
	padding-top: 16px;
	border-top: 1px solid var(--agj-line-soft);
	font-size: 14px;
	margin: 0;
	width: 100%;
}

#zg_hp_label { display: none !important; }

/* ===================================================================
 * 07. Bloque B — panel embebido (AdministratorPage.php)
 * =================================================================== */

.zg-admin-page {
	max-width: 1000px;
	margin: clamp(32px, 6vw, 64px) auto;
	padding: 0;
	background: #fff;
	border: 1px solid var(--agj-line);
	font-family: var(--agj-sans);
	color: var(--agj-ink);
}
.zg-admin-page > h1 {
	margin: 0;
	padding: 20px clamp(18px, 3vw, 28px);
	background: var(--agj-ink);
	color: var(--agj-cream);
	font-family: var(--agj-serif);
	font-weight: 400;
	font-size: 22px;
	border-bottom: 0;
}
.zg-admin-content { padding: clamp(24px, 4vw, 40px); }

.zg-admin-page h2,
.zg-admin-page h3 {
	font-family: var(--agj-serif);
	font-weight: 400;
	color: var(--agj-ink);
	margin-top: 0;
}
.zg-admin-page h3 { font-size: 26px; margin-bottom: 24px; }

.zg-page-eyebrow {
	font-size: 11px;
	letter-spacing: .14em;
	text-transform: uppercase;
	color: var(--agj-red);
	font-weight: 600;
	margin-bottom: 10px;
}

.zg-box {
	background: transparent;
	border: 0;
	border-radius: 0;
	padding: 0;
	margin-bottom: 30px;
	box-shadow: none;
}
.zg-box > h2 {
	font-family: var(--agj-serif);
	font-weight: 400;
	font-size: 26px;
	margin: 0 0 20px;
}

.zg-field-hint {
	font-size: 14.5px;
	line-height: 1.7;
	color: var(--agj-ink-soft);
	margin: 0 0 16px;
}

.zg-search-form {
	display: flex;
	flex-wrap: wrap;
	gap: 10px;
	align-items: center;
	margin-bottom: 24px;
}
.zg-search-form input[type=search] {
	min-width: 240px;
	padding: 12px 15px;
	border: 1px solid var(--agj-field-border);
	font-family: var(--agj-sans);
	font-size: 14.5px;
}
.zg-search-form .button {
	padding: 12px 22px;
	background: transparent;
	border: 1px solid #C9C4BD;
	color: var(--agj-ink);
	font-size: 14px;
}

/* Tabla de usuarios (B4) */
.zg-admin-page table.wp-list-table {
	border: 1px solid var(--agj-line);
	border-collapse: collapse;
}
.zg-admin-page table.wp-list-table thead th {
	background: #FDFCFA;
	border-bottom: 1px solid var(--agj-line);
	font-size: 11px;
	letter-spacing: .12em;
	text-transform: uppercase;
	color: var(--agj-muted);
	font-weight: 600;
	padding: 14px 18px;
}
.zg-admin-page table.wp-list-table tbody td {
	border-bottom: 1px solid var(--agj-line-soft);
	padding: 16px 18px;
	font-size: 14.5px;
	vertical-align: middle;
}
.zg-admin-page table.wp-list-table tbody tr:last-child td { border-bottom: 0; }
.zg-actions-cell { display: flex; gap: 8px; flex-wrap: wrap; justify-content: flex-end; align-items: center; }
.zg-actions-cell .button { padding: 8px 14px; font-size: 13px; }

.zg-admin-page .tablenav {
	margin-top: 20px;
	text-align: left;
	display: flex;
	align-items: center;
	justify-content: flex-end;
}
.zg-admin-page .tablenav-pages .page-numbers {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-width: 34px;
	padding: 9px 10px;
	margin-left: 6px;
	border: 1px solid #C9C4BD;
	font-size: 13.5px;
	color: var(--agj-ink);
}
.zg-admin-page .tablenav-pages .page-numbers.current {
	background: var(--agj-ink);
	border-color: var(--agj-ink);
	color: var(--agj-cream);
}
.zg-admin-page .tablenav-pages .page-numbers.dots { border: 0; }

.zg-modify-form {
	margin-top: 24px;
	padding: 20px 18px;
	background: #FDFCFA;
	border-left: 3px solid var(--agj-red);
}
.zg-modify-form input[type=password] { max-width: 300px; }

/* Estadísticas del dashboard (B1) */
.zg-stat-tiles {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(140px, 1fr));
	gap: 1px;
	background: var(--agj-line);
	border: 1px solid var(--agj-line);
	margin-top: 24px;
}
.zg-stat-tile { background: #fff; padding: 20px; }
.zg-stat-tile-label {
	font-size: 11px;
	letter-spacing: .14em;
	text-transform: uppercase;
	color: var(--agj-muted);
	margin-bottom: 8px;
}
.zg-stat-tile-value { font-family: var(--agj-serif); font-size: 26px; color: var(--agj-ink); }

/* Zona de arrastre (B2) */
.zg-dropzone {
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: 6px;
	text-align: center;
	padding: 28px;
	margin-bottom: 20px;
	background: #FDFCFA;
	border: 1px dashed var(--agj-field-border);
	cursor: pointer;
}
.zg-dropzone-title { font-size: 15px; color: var(--agj-ink); }
.zg-dropzone-hint { font-size: 13.5px; color: var(--agj-muted); margin-bottom: 10px; }
.zg-dropzone .button-secondary { pointer-events: none; }
.zg-dropzone-filename {
	font-family: var(--agj-mono);
	font-size: 12px;
	color: var(--agj-muted);
	margin-top: 6px;
	min-height: 1.4em;
}

/* ===================================================================
 * 08. Bloque B — inscripción a evento (UserPage.php)
 * =================================================================== */

.zg-user-page {
	max-width: 1180px;
	margin: 0 auto;
	padding: clamp(20px, 4vw, 40px);
	background: transparent;
	border: 0;
	box-shadow: none;
	font-family: var(--agj-sans);
	color: var(--agj-ink);
}
.zg-user-content {
	max-width: 760px;
	margin: 0 auto;
	background: var(--agj-cream);
	color: var(--agj-ink);
	border: 1px solid var(--agj-line);
	padding: clamp(20px, 4vw, 40px);
	display: flex;
	flex-direction: column;
	gap: 28px;
}

.zg-user-page > h1 {
	font-family: var(--agj-serif);
	font-weight: 400;
	font-size: clamp(24px, 5vw, 30px);
	line-height: 1.15;
	margin: 0 0 6px;
}

.zg-empty-state {
	font-family: var(--agj-serif);
	font-size: 19px;
	line-height: 1.4;
	color: var(--agj-ink-soft);
}

.zg-section-list { display: flex; flex-direction: column; }
.zg-section-row {
	margin: 0;
	padding: 22px 0;
	border: 0;
	border-top: 1px solid var(--agj-line);
	border-radius: 0;
}
.zg-section-row:last-child { border-bottom: 1px solid var(--agj-line); }
.zg-section-row-inner { justify-content: space-between; align-items: center; }
.zg-section-row-label strong {
	font-family: var(--agj-serif);
	font-weight: 600;
	font-size: 19px;
	line-height: 1.3;
	color: var(--agj-ink);
}
.zg-badge-rule {
	display: inline-block;
	font-family: var(--agj-mono);
	font-size: 10.5px;
	letter-spacing: .06em;
	text-transform: uppercase;
	color: var(--agj-red);
	border: 1px solid var(--agj-error-border);
	padding: 3px 7px;
	margin-left: 4px;
	vertical-align: middle;
}
.zg-section-row-meta {
	display: flex;
	align-items: center;
	gap: 14px;
	flex-wrap: wrap;
	margin-top: 8px;
}
.zg-price { font-family: var(--agj-mono); font-size: 13px; color: var(--agj-ink); }
.zg-status-text { font-size: 13.5px; }
/* Los sufijos son los códigos de ZentryGate\Ui::paymentState() */
.zg-status-text.zg-status-ok,
.zg-status-text.zg-status-free { color: var(--agj-success); font-weight: 500; }
.zg-status-text.zg-status-pending,
.zg-status-text.zg-status-processing,
.zg-status-text.zg-status-action { color: var(--agj-warn); }
.zg-status-text.zg-status-error { color: var(--agj-red); font-weight: 500; }
.zg-status-text.zg-status-refunded { color: var(--agj-muted); }
.zg-availability { font-size: 13.5px; }
.zg-availability-available { color: var(--agj-success); }
.zg-availability-few { color: var(--agj-warn); }
.zg-availability-none { color: var(--agj-muted); }

.zg-total-due {
	margin-top: 0;
	padding: 24px 28px;
	background: var(--agj-ink);
	color: var(--agj-cream);
	border: 0;
	border-radius: 0;
}
.zg-total-due-label {
	font-size: 11px;
	letter-spacing: .14em;
	text-transform: uppercase;
	color: #9C978F;
	margin-bottom: 8px;
}
.zg-total-due-amount { font-family: var(--agj-serif); font-size: 30px; line-height: 1; }
.zg-total-due .button-primary { padding: 14px 28px; }

/* ===================================================================
 * 09. Responsive
 * =================================================================== */

@media (max-width: 640px) {
	.zg-cookie-form,
	.zg-login-form,
	.zg-register-form,
	.zg-recovery-ask-email-form,
	.zg-recovery-change-password-form {
		margin: 0;
		border-left: 0;
		border-right: 0;
	}

	.zg-admin-page table.wp-list-table thead { display: none; }
	.zg-admin-page table.wp-list-table,
	.zg-admin-page table.wp-list-table tbody,
	.zg-admin-page table.wp-list-table tr,
	.zg-admin-page table.wp-list-table td {
		display: block;
		width: 100%;
	}
	.zg-admin-page table.wp-list-table tr {
		margin-bottom: 16px;
		border: 1px solid var(--agj-line);
	}
	.zg-admin-page table.wp-list-table td {
		border-bottom: 1px solid var(--agj-line-soft);
		padding: 10px 14px;
	}
	.zg-admin-page table.wp-list-table td::before {
		content: attr(data-label);
		display: block;
		font-size: 10.5px;
		letter-spacing: .12em;
		text-transform: uppercase;
		color: var(--agj-muted);
		margin-bottom: 4px;
	}
	.zg-actions-cell { justify-content: flex-start; }
	.zg-actions-cell .button { width: 100%; text-align: center; }
}
