/* ==========================================================================
   Gestión de Envíos — Estilos frontend + admin
   Usa variables CSS definidas dinámicamente en wp_head desde el panel.
   ========================================================================== */

.ge-wrap, .ge-wrap * {
	box-sizing: border-box;
}

.ge-wrap {
	font-family: var(--ge-fuente, 'Segoe UI', sans-serif);
	font-size: var(--ge-fuente-tamano, 15px);
	color: var(--ge-color-texto, #0f172a);
	max-width: var(--ge-ancho-maximo, 720px);
	margin: 24px auto;
}

.ge-card {
	background: #ffffff;
	border: 1px solid var(--ge-color-borde, #e2e8f0);
	border-radius: var(--ge-radio-bordes, 10px);
	padding: 28px;
	margin-bottom: 20px;
	box-shadow: 0 1px 3px rgba(0,0,0,0.06), 0 1px 2px rgba(0,0,0,0.04);
}

.ge-title {
	margin: 0 0 6px;
	font-size: 1.5em;
	font-weight: 700;
	color: var(--ge-color-secundario, #1e293b);
}

.ge-subtitle {
	margin: 0 0 20px;
	color: #64748b;
	font-size: 0.95em;
}

.ge-form-subtitulo {
	margin: 20px 0 12px;
	font-size: 1.05em;
	font-weight: 600;
	color: var(--ge-color-secundario, #1e293b);
	border-bottom: 2px solid #f1f5f9;
	padding-bottom: 6px;
}

.ge-grid-2 {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 14px;
}

@media (max-width: 600px) {
	.ge-grid-2 { grid-template-columns: 1fr; }
}

.ge-field {
	margin-bottom: 14px;
	display: flex;
	flex-direction: column;
}

.ge-field label {
	font-weight: 600;
	margin-bottom: 6px;
	font-size: 0.9em;
	color: var(--ge-color-secundario, #1e293b);
}

.ge-field input,
.ge-field select,
.ge-field textarea {
	padding: 10px 12px;
	border: 1px solid #cbd5e1;
	border-radius: calc(var(--ge-radio-bordes, 10px) - 4px);
	font-size: 1em;
	font-family: inherit;
	background: var(--ge-color-fondo, #f8fafc);
	color: var(--ge-color-texto, #0f172a);
	transition: border-color .15s ease, box-shadow .15s ease;
}

.ge-field input:focus,
.ge-field select:focus,
.ge-field textarea:focus {
	outline: none;
	border-color: var(--ge-color-primario, #2563eb);
	box-shadow: 0 0 0 3px rgba(37,99,235,0.15);
}

.ge-btn {
	display: inline-block;
	padding: 11px 22px;
	border: none;
	border-radius: calc(var(--ge-radio-bordes, 10px) - 2px);
	font-size: 1em;
	font-weight: 600;
	cursor: pointer;
	transition: transform .1s ease, opacity .15s ease;
}
.ge-btn:hover { opacity: 0.92; }
.ge-btn:active { transform: scale(0.98); }

.ge-btn-primario {
	background: var(--ge-color-primario, #2563eb);
	color: var(--ge-color-boton-texto, #fff);
}

.ge-btn-exito {
	background: var(--ge-color-exito, #16a34a);
	color: var(--ge-color-boton-texto, #fff);
}

.ge-mensaje {
	margin-top: 12px;
	font-weight: 600;
	font-size: 0.92em;
}
.ge-mensaje.ge-exito { color: var(--ge-color-exito, #16a34a); }
.ge-mensaje.ge-error { color: var(--ge-color-error, #dc2626); }

.ge-resultado {
	margin-top: 18px;
	padding: 16px;
	border-radius: calc(var(--ge-radio-bordes, 10px) - 2px);
	background: var(--ge-color-fondo, #f8fafc);
	border: 1px solid var(--ge-color-borde, #e2e8f0);
}

.ge-tabla {
	width: 100%;
	border-collapse: collapse;
	margin-top: 12px;
	font-size: 0.92em;
}
.ge-tabla th, .ge-tabla td {
	text-align: left;
	padding: 10px 8px;
	border-bottom: 1px solid var(--ge-color-borde, #e2e8f0);
}
.ge-tabla th {
	color: var(--ge-color-secundario, #1e293b);
	font-weight: 700;
}

.ge-badge {
	display: inline-block;
	padding: 3px 10px;
	border-radius: 999px;
	font-size: 0.82em;
	font-weight: 700;
}
.ge-badge-pendiente { background: #fef9c3; color: #854d0e; }
.ge-badge-en_transito { background: #dbeafe; color: #1e40af; }
.ge-badge-recibido { background: #dcfce7; color: #166534; }

.ge-panel-filtros { margin-bottom: 14px; }
.ge-panel-filtros select,
.ge-panel-filtros input {
	padding: 9px 12px;
	border: 1px solid #cbd5e1;
	border-radius: calc(var(--ge-radio-bordes, 10px) - 4px);
	background: var(--ge-color-fondo, #f8fafc);
	color: var(--ge-color-texto, #0f172a);
	font-family: inherit;
	font-size: 0.95em;
}
.ge-panel-filtros input[type="text"] { flex: 1; min-width: 180px; }

.ge-tabla-responsive { overflow-x: auto; }
.ge-tabla-responsive .ge-tabla { min-width: 900px; }

.ge-paginacion { display: flex; gap: 6px; margin-top: 14px; flex-wrap: wrap; }
.ge-paginacion button {
	padding: 6px 12px;
	border: 1px solid #cbd5e1;
	background: #fff;
	border-radius: 6px;
	cursor: pointer;
	font-weight: 600;
	font-size: 0.9em;
}
.ge-paginacion button.ge-pagina-activa {
	background: var(--ge-color-primario, #2563eb);
	color: #fff;
	border-color: var(--ge-color-primario, #2563eb);
}

/* ---------------- Ticket imprimible ---------------- */
.ge-ticket-contenedor { padding: 0; }

.ge-ticket {
	border: 2px dashed #cbd5e1;
	border-radius: calc(var(--ge-radio-bordes, 10px) - 2px);
	padding: 22px;
	max-width: 380px;
	margin: 0 auto;
}
.ge-ticket-header { text-align: center; margin-bottom: 14px; }
.ge-ticket-header h3 { margin: 0 0 4px; color: var(--ge-color-secundario, #1e293b); }
.ge-ticket-header p { margin: 0; color: #64748b; font-size: 0.85em; }
.ge-ticket-body p { margin: 6px 0; font-size: 0.95em; }
.ge-ticket-pin {
	text-align: center;
	font-size: 1.4em !important;
	margin: 14px 0 !important;
	padding: 10px;
	background: var(--ge-color-fondo, #f8fafc);
	border-radius: 6px;
}
.ge-ticket-pin span { color: var(--ge-color-primario, #2563eb); letter-spacing: 3px; }
.ge-ticket-footer {
	text-align: center;
	border-top: 1px dashed #cbd5e1;
	margin-top: 14px;
	padding-top: 10px;
	font-size: 0.82em;
	color: #64748b;
}
.ge-ticket-acciones { text-align: center; margin-top: 16px; }

@media print {
	body * { visibility: hidden; }
	.ge-ticket, .ge-ticket * { visibility: visible; }
	.ge-ticket {
		position: absolute;
		left: 0; top: 0;
		border: none;
		width: 100%;
	}
	.no-imprimir { display: none !important; }
}

/* ---------------- Admin (wp-admin) ---------------- */
.ge-admin-wrap .ge-cards-grid {
	display: grid;
	grid-template-columns: repeat(4, 1fr);
	gap: 16px;
	margin: 18px 0;
}
@media (max-width: 1100px) {
	.ge-admin-wrap .ge-cards-grid { grid-template-columns: repeat(2, 1fr); }
}
.ge-stat-card { padding: 18px; display: flex; flex-direction: column; gap: 6px; }
.ge-stat-label { font-size: 0.85em; color: #64748b; font-weight: 600; text-transform: uppercase; letter-spacing: .03em; }
.ge-stat-value { font-size: 1.8em; font-weight: 800; color: var(--ge-color-secundario, #1e293b); }
.ge-text-exito { color: var(--ge-color-exito, #16a34a) !important; }
.ge-text-error { color: var(--ge-color-error, #dc2626) !important; }

.ge-section-title { margin-top: 30px; }

.ge-admin-table { margin-top: 10px; }
.ge-editable, .ge-editable-ruta { cursor: text; }
.ge-editable:hover, .ge-editable-ruta:hover { background: #fffbeb; }

.ge-filtros-form { display: flex; gap: 10px; margin: 16px 0; flex-wrap: wrap; }
.ge-form-inline { display: flex; gap: 10px; flex-wrap: wrap; align-items: center; }

.ge-form-estilos .ge-field label { color: #1e293b; }

.ge-estilos-layout {
	display: grid;
	grid-template-columns: 1.3fr 1fr;
	gap: 24px;
	align-items: start;
	margin-top: 18px;
}
@media (max-width: 1100px) {
	.ge-estilos-layout { grid-template-columns: 1fr; }
}

.ge-panel-config { margin-bottom: 18px; }
.ge-config-titulo {
	margin: 0 0 14px;
	font-size: 1.05em;
	color: #1e293b;
}
.ge-ayuda { font-weight: 400; color: #94a3b8; font-size: 0.85em; }

.ge-acciones-estilos {
	display: flex;
	gap: 10px;
	margin-top: 10px;
	flex-wrap: wrap;
}

.ge-panel-preview-sticky { position: sticky; top: 40px; }
.ge-preview-contenedor { margin: 0; max-width: 100%; }
.ge-preview-contenedor .ge-field input[readonly] { cursor: default; }
