.dsr-cupon-grid {
	display: grid;
	gap: 20px;
	grid-template-columns: repeat(3, 1fr);
}
.dsr-cols-1 { grid-template-columns: repeat(1, 1fr); }
.dsr-cols-2 { grid-template-columns: repeat(2, 1fr); }
.dsr-cols-3 { grid-template-columns: repeat(3, 1fr); }
.dsr-cols-4 { grid-template-columns: repeat(4, 1fr); }

@media (max-width: 767px) {
	.dsr-cupon-grid { grid-template-columns: repeat(1, 1fr) !important; }
}

.dsr-cupon-card {
	border: 1px solid #e5e5e5;
	border-radius: 12px;
	background: #fff;
	overflow: hidden;
	display: flex;
	flex-direction: column;
	transition: box-shadow .2s ease;
}
.dsr-cupon-card:hover { box-shadow: 0 4px 14px rgba(0,0,0,.08); }

.dsr-cupon-foto-wrap {
	position: relative;
	width: 100%;
	aspect-ratio: 4 / 3;
	background: #eee;
	overflow: hidden;
}
.dsr-cupon-foto {
	position: absolute;
	inset: 0;
	width: 100%;
	height: 100%;
	object-fit: cover;
	display: block;
	aspect-ratio: auto;
}
.dsr-cupon-foto-placeholder {
	width: 100%;
	height: 100%;
	background: linear-gradient(135deg, #eee, #ddd);
}
.dsr-cupon-insignia {
	position: absolute;
	top: 12px;
	left: 12px;
	padding: 6px 12px;
	border-radius: 6px;
	font-weight: 800;
	font-size: 15px;
	color: #fff;
	letter-spacing: .02em;
}
.dsr-insignia-descuento { background: #d32f2f; }
.dsr-insignia-gratis { background: #1a7a3c; }
.dsr-insignia-publicidad {
	background: #555;
	font-size: 11px;
	letter-spacing: .08em;
	padding: 5px 10px;
}

.dsr-cupon-info {
	padding: 14px 16px 18px;
	display: flex;
	flex-direction: column;
	gap: 4px;
}
.dsr-cupon-linea-grande { font-size: 22px; font-weight: 800; color: #1a7a3c; margin: 0; }
.dsr-dcto-texto { color: #555; font-weight: 700; font-size: 18px; }
.dsr-cupon-tienda { font-size: 17px; font-weight: 700; margin: 2px 0 0; color: #111; }
.dsr-cupon-categoria-texto { font-size: 14px; color: #777; margin: 0 0 10px; }
.dsr-cupon-escanear-btn {
	background: #1a7a3c;
	color: #fff;
	border: none;
	padding: 11px 16px;
	border-radius: 8px;
	font-weight: 700;
	font-size: 14px;
	cursor: pointer;
	width: 100%;
}
.dsr-cupon-escanear-btn:hover { background: #156530; }
.dsr-cupon-vence { font-size: 12px; opacity: .6; margin: 6px 0 0; }
.dsr-cupon-expirado { color: #b3261e; font-weight: 600; margin: 0; }
.dsr-cupon-card.dsr-vencido { opacity: .55; }

/* Tarjeta de anuncio: mismo formato, se distingue por color neutro y borde punteado */
.dsr-anuncio-card {
	border-style: dashed;
	border-color: #cfcfcf;
	background: #fafafa;
}
.dsr-anuncio-btn {
	display: block;
	text-align: center;
	background: #555;
	color: #fff;
	border: none;
	padding: 11px 16px;
	border-radius: 8px;
	font-weight: 700;
	font-size: 14px;
	cursor: pointer;
	text-decoration: none;
}
.dsr-anuncio-btn:hover { background: #444; color: #fff; }

.dsr-filter-bar { margin-bottom: 20px; }
.dsr-search-input {
	width: 100%;
	padding: 12px;
	font-size: 16px;
	margin-bottom: 12px;
	box-sizing: border-box;
	border: 1px solid #ddd;
	border-radius: 8px;
}
.dsr-cat-buttons { display: flex; flex-wrap: wrap; gap: 8px; }
.dsr-cat-btn {
	padding: 8px 14px;
	border: 1px solid #ccc;
	background: #fff;
	border-radius: 20px;
	cursor: pointer;
}
.dsr-cat-btn.active { background: #222; color: #fff; border-color: #222; }

.dsr-qr-modal-overlay {
	display: none;
	position: fixed;
	inset: 0;
	background: rgba(0,0,0,.6);
	z-index: 999999;
	align-items: center;
	justify-content: center;
	padding: 20px;
}
.dsr-qr-modal-overlay.dsr-qr-modal-visible { display: flex; }
.dsr-qr-modal-box {
	background: #fff;
	border-radius: 14px;
	padding: 28px 24px;
	max-width: 340px;
	width: 100%;
	text-align: center;
	position: relative;
}
.dsr-qr-modal-close {
	position: absolute;
	top: 8px;
	right: 12px;
	background: none;
	border: none;
	font-size: 26px;
	line-height: 1;
	cursor: pointer;
	color: #666;
}
.dsr-qr-modal-title { margin: 0 0 16px; font-size: 18px; }
.dsr-qr-code-container {
	display: flex;
	align-items: center;
	justify-content: center;
	min-height: 220px;
	margin-bottom: 14px;
}
.dsr-qr-modal-hint { font-size: 13px; color: #666; margin-bottom: 16px; }
.dsr-qr-modal-botones { display: flex; gap: 10px; }
.dsr-qr-download-btn,
.dsr-pdf-download-btn {
	background: #1a7a3c;
	color: #fff;
	border: none;
	padding: 12px 16px;
	border-radius: 8px;
	font-weight: 600;
	cursor: pointer;
	flex: 1;
	font-size: 13px;
}
.dsr-pdf-download-btn { background: #222; }
.dsr-pdf-download-btn:disabled { opacity: .6; cursor: default; }

.dsr-perfil-wrap { max-width: 640px; margin: 0 auto; }
.dsr-perfil-saludo { margin-bottom: 24px; }
.dsr-perfil-seccion {
	background: #fafafa;
	border: 1px solid #e5e5e5;
	border-radius: 12px;
	padding: 20px;
	margin-bottom: 20px;
}
.dsr-perfil-seccion h3 { margin-top: 0; }
.dsr-perfil-vacio { color: #777; font-style: italic; }
.dsr-vehiculos-lista { display: flex; flex-direction: column; gap: 10px; margin-bottom: 14px; }
.dsr-vehiculo-card {
	background: #fff;
	border: 1px solid #e0e0e0;
	border-radius: 8px;
	padding: 12px 14px;
	display: flex;
	align-items: center;
	justify-content: space-between;
}
.dsr-vehiculo-info { display: flex; flex-direction: column; gap: 2px; }
.dsr-vehiculo-detalle { font-size: 13px; color: #777; }
.dsr-vehiculo-eliminar {
	background: none;
	border: none;
	color: #b3261e;
	font-size: 20px;
	cursor: pointer;
	line-height: 1;
	padding: 4px 8px;
}
.dsr-btn-mostrar-form-vehiculo,
.dsr-btn-guardar-vehiculo,
.dsr-btn-guardar-info {
	background: #1a7a3c;
	color: #fff;
	border: none;
	padding: 10px 16px;
	border-radius: 8px;
	font-weight: 600;
	cursor: pointer;
}
.dsr-btn-cancelar-vehiculo {
	background: #fff;
	color: #555;
	border: 1px solid #ccc;
	padding: 10px 16px;
	border-radius: 8px;
	cursor: pointer;
}
.dsr-form-vehiculo { margin-top: 14px; padding-top: 14px; border-top: 1px dashed #ddd; }
.dsr-form-grid { display: grid; grid-template-columns: repeat(2, 1fr); gap: 10px; margin-bottom: 12px; }
.dsr-form-grid input, .dsr-form-grid select { padding: 10px; border: 1px solid #ccc; border-radius: 6px; font-size: 14px; }
@media (max-width: 600px) { .dsr-form-grid { grid-template-columns: 1fr; } }
.dsr-form-botones { display: flex; gap: 10px; }
.dsr-info-adicional-textarea {
	width: 100%;
	box-sizing: border-box;
	padding: 10px;
	border: 1px solid #ccc;
	border-radius: 6px;
	font-family: inherit;
	font-size: 14px;
	margin-bottom: 10px;
}
.dsr-info-guardado-msg { color: #1a7a3c; font-weight: 600; margin-left: 10px; }
.dsr-perfil-aviso { max-width: 480px; margin: 0 auto; text-align: center; padding: 30px; }
